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	Subsetting *Subsetting `json:"subsetting,omitempty"`
5288
5289	// TimeoutSec: Not supported when the backend service is referenced by a
5290	// URL map that is bound to target gRPC proxy that has
5291	// validateForProxyless field set to true. Instead, use
5292	// maxStreamDuration.
5293	TimeoutSec int64 `json:"timeoutSec,omitempty"`
5294
5295	// ServerResponse contains the HTTP response code and headers from the
5296	// server.
5297	googleapi.ServerResponse `json:"-"`
5298
5299	// ForceSendFields is a list of field names (e.g.
5300	// "AffinityCookieTtlSec") to unconditionally include in API requests.
5301	// By default, fields with empty or default values are omitted from API
5302	// requests. However, any non-pointer, non-interface field appearing in
5303	// ForceSendFields will be sent to the server regardless of whether the
5304	// field is empty or not. This may be used to include empty fields in
5305	// Patch requests.
5306	ForceSendFields []string `json:"-"`
5307
5308	// NullFields is a list of field names (e.g. "AffinityCookieTtlSec") to
5309	// include in API requests with the JSON null value. By default, fields
5310	// with empty values are omitted from API requests. However, any field
5311	// with an empty value appearing in NullFields will be sent to the
5312	// server as null. It is an error if a field in this list has a
5313	// non-empty value. This may be used to include null fields in Patch
5314	// requests.
5315	NullFields []string `json:"-"`
5316}
5317
5318func (s *BackendService) MarshalJSON() ([]byte, error) {
5319	type NoMethod BackendService
5320	raw := NoMethod(*s)
5321	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5322}
5323
5324// BackendServiceAggregatedList: Contains a list of
5325// BackendServicesScopedList.
5326type BackendServiceAggregatedList struct {
5327	// Id: [Output Only] Unique identifier for the resource; defined by the
5328	// server.
5329	Id string `json:"id,omitempty"`
5330
5331	// Items: A list of BackendServicesScopedList resources.
5332	Items map[string]BackendServicesScopedList `json:"items,omitempty"`
5333
5334	// Kind: Type of resource.
5335	Kind string `json:"kind,omitempty"`
5336
5337	// NextPageToken: [Output Only] This token allows you to get the next
5338	// page of results for list requests. If the number of results is larger
5339	// than maxResults, use the nextPageToken as a value for the query
5340	// parameter pageToken in the next list request. Subsequent list
5341	// requests will have their own nextPageToken to continue paging through
5342	// the results.
5343	NextPageToken string `json:"nextPageToken,omitempty"`
5344
5345	// SelfLink: [Output Only] Server-defined URL for this resource.
5346	SelfLink string `json:"selfLink,omitempty"`
5347
5348	// Unreachables: [Output Only] Unreachable resources.
5349	Unreachables []string `json:"unreachables,omitempty"`
5350
5351	// Warning: [Output Only] Informational warning message.
5352	Warning *BackendServiceAggregatedListWarning `json:"warning,omitempty"`
5353
5354	// ServerResponse contains the HTTP response code and headers from the
5355	// server.
5356	googleapi.ServerResponse `json:"-"`
5357
5358	// ForceSendFields is a list of field names (e.g. "Id") to
5359	// unconditionally include in API requests. By default, fields with
5360	// empty or default values are omitted from API requests. However, any
5361	// non-pointer, non-interface field appearing in ForceSendFields will be
5362	// sent to the server regardless of whether the field is empty or not.
5363	// This may be used to include empty fields in Patch requests.
5364	ForceSendFields []string `json:"-"`
5365
5366	// NullFields is a list of field names (e.g. "Id") to include in API
5367	// requests with the JSON null value. By default, fields with empty
5368	// values are omitted from API requests. However, any field with an
5369	// empty value appearing in NullFields will be sent to the server as
5370	// null. It is an error if a field in this list has a non-empty value.
5371	// This may be used to include null fields in Patch requests.
5372	NullFields []string `json:"-"`
5373}
5374
5375func (s *BackendServiceAggregatedList) MarshalJSON() ([]byte, error) {
5376	type NoMethod BackendServiceAggregatedList
5377	raw := NoMethod(*s)
5378	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5379}
5380
5381// BackendServiceAggregatedListWarning: [Output Only] Informational
5382// warning message.
5383type BackendServiceAggregatedListWarning struct {
5384	// Code: [Output Only] A warning code, if applicable. For example,
5385	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5386	// the response.
5387	//
5388	// Possible values:
5389	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
5390	// changes made by a failed operation.
5391	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
5392	// created.
5393	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
5394	// resources has a type marked as deprecated
5395	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
5396	// that is larger than image size.
5397	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
5398	// resources has a type marked as experimental
5399	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
5400	// call
5401	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
5402	// overridden. Deprecated unused field.
5403	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
5404	// injected kernel, which is deprecated.
5405	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
5406	// exceedingly large number of resources
5407	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
5408	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
5409	// not assigned to an instance on the network.
5410	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
5411	// ip forward.
5412	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
5413	// refers to an instance that does not exist.
5414	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
5415	// URL refers to an instance that is not on the same network as the
5416	// route.
5417	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
5418	// have a status of RUNNING.
5419	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
5420	// continue the process despite the mentioned error.
5421	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
5422	// page.
5423	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
5424	// missing due to errors
5425	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
5426	// that requires a TOS they have not accepted.
5427	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
5428	// resource is in use.
5429	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
5430	// auto-delete could not be deleted because they were in use.
5431	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
5432	// ignored.
5433	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
5434	// instance group manager is valid as such, but its application does not
5435	// make a lot of sense, because it allows only single instance in
5436	// instance group.
5437	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
5438	// are present
5439	//   "UNREACHABLE" - A given scope cannot be reached.
5440	Code string `json:"code,omitempty"`
5441
5442	// Data: [Output Only] Metadata about this warning in key: value format.
5443	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
5444	// }
5445	Data []*BackendServiceAggregatedListWarningData `json:"data,omitempty"`
5446
5447	// Message: [Output Only] A human-readable description of the warning
5448	// code.
5449	Message string `json:"message,omitempty"`
5450
5451	// ForceSendFields is a list of field names (e.g. "Code") to
5452	// unconditionally include in API requests. By default, fields with
5453	// empty or default values are omitted from API requests. However, any
5454	// non-pointer, non-interface field appearing in ForceSendFields will be
5455	// sent to the server regardless of whether the field is empty or not.
5456	// This may be used to include empty fields in Patch requests.
5457	ForceSendFields []string `json:"-"`
5458
5459	// NullFields is a list of field names (e.g. "Code") to include in API
5460	// requests with the JSON null value. By default, fields with empty
5461	// values are omitted from API requests. However, any field with an
5462	// empty value appearing in NullFields will be sent to the server as
5463	// null. It is an error if a field in this list has a non-empty value.
5464	// This may be used to include null fields in Patch requests.
5465	NullFields []string `json:"-"`
5466}
5467
5468func (s *BackendServiceAggregatedListWarning) MarshalJSON() ([]byte, error) {
5469	type NoMethod BackendServiceAggregatedListWarning
5470	raw := NoMethod(*s)
5471	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5472}
5473
5474type BackendServiceAggregatedListWarningData struct {
5475	// Key: [Output Only] A key that provides more detail on the warning
5476	// being returned. For example, for warnings where there are no results
5477	// in a list request for a particular zone, this key might be scope and
5478	// the key value might be the zone name. Other examples might be a key
5479	// indicating a deprecated resource and a suggested replacement, or a
5480	// warning about invalid network settings (for example, if an instance
5481	// attempts to perform IP forwarding but is not enabled for IP
5482	// forwarding).
5483	Key string `json:"key,omitempty"`
5484
5485	// Value: [Output Only] A warning data value corresponding to the key.
5486	Value string `json:"value,omitempty"`
5487
5488	// ForceSendFields is a list of field names (e.g. "Key") to
5489	// unconditionally include in API requests. By default, fields with
5490	// empty or default values are omitted from API requests. However, any
5491	// non-pointer, non-interface field appearing in ForceSendFields will be
5492	// sent to the server regardless of whether the field is empty or not.
5493	// This may be used to include empty fields in Patch requests.
5494	ForceSendFields []string `json:"-"`
5495
5496	// NullFields is a list of field names (e.g. "Key") to include in API
5497	// requests with the JSON null value. By default, fields with empty
5498	// values are omitted from API requests. However, any field with an
5499	// empty value appearing in NullFields will be sent to the server as
5500	// null. It is an error if a field in this list has a non-empty value.
5501	// This may be used to include null fields in Patch requests.
5502	NullFields []string `json:"-"`
5503}
5504
5505func (s *BackendServiceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
5506	type NoMethod BackendServiceAggregatedListWarningData
5507	raw := NoMethod(*s)
5508	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5509}
5510
5511// BackendServiceCdnPolicy: Message containing Cloud CDN configuration
5512// for a backend service.
5513type BackendServiceCdnPolicy struct {
5514	// BypassCacheOnRequestHeaders: Bypass the cache when the specified
5515	// request headers are matched - e.g. Pragma or Authorization headers.
5516	// Up to 5 headers can be specified. The cache is bypassed for all
5517	// cdnPolicy.cacheMode settings.
5518	BypassCacheOnRequestHeaders []*BackendServiceCdnPolicyBypassCacheOnRequestHeader `json:"bypassCacheOnRequestHeaders,omitempty"`
5519
5520	// CacheKeyPolicy: The CacheKeyPolicy for this CdnPolicy.
5521	CacheKeyPolicy *CacheKeyPolicy `json:"cacheKeyPolicy,omitempty"`
5522
5523	// CacheMode: Specifies the cache setting for all responses from this
5524	// backend. The possible values are: USE_ORIGIN_HEADERS Requires the
5525	// origin to set valid caching headers to cache content. Responses
5526	// without these headers will not be cached at Google's edge, and will
5527	// require a full trip to the origin on every request, potentially
5528	// impacting performance and increasing load on the origin server.
5529	// FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store"
5530	// or "no-cache" directives in Cache-Control response headers. Warning:
5531	// this may result in Cloud CDN caching private, per-user (user
5532	// identifiable) content. CACHE_ALL_STATIC Automatically cache static
5533	// content, including common image formats, media (video and audio), and
5534	// web assets (JavaScript and CSS). Requests and responses that are
5535	// marked as uncacheable, as well as dynamic content (including HTML),
5536	// will not be cached.
5537	//
5538	// Possible values:
5539	//   "CACHE_ALL_STATIC" - Automatically cache static content, including
5540	// common image formats, media (video and audio), and web assets
5541	// (JavaScript and CSS). Requests and responses that are marked as
5542	// uncacheable, as well as dynamic content (including HTML), will not be
5543	// cached.
5544	//   "FORCE_CACHE_ALL" - Cache all content, ignoring any "private",
5545	// "no-store" or "no-cache" directives in Cache-Control response
5546	// headers. Warning: this may result in Cloud CDN caching private,
5547	// per-user (user identifiable) content.
5548	//   "INVALID_CACHE_MODE"
5549	//   "USE_ORIGIN_HEADERS" - Requires the origin to set valid caching
5550	// headers to cache content. Responses without these headers will not be
5551	// cached at Google's edge, and will require a full trip to the origin
5552	// on every request, potentially impacting performance and increasing
5553	// load on the origin server.
5554	CacheMode string `json:"cacheMode,omitempty"`
5555
5556	// ClientTtl: Specifies a separate client (e.g. browser client) maximum
5557	// TTL. This is used to clamp the max-age (or Expires) value sent to the
5558	// client. With FORCE_CACHE_ALL, the lesser of client_ttl and
5559	// default_ttl is used for the response max-age directive, along with a
5560	// "public" directive. For cacheable content in CACHE_ALL_STATIC mode,
5561	// client_ttl clamps the max-age from the origin (if specified), or else
5562	// sets the response max-age directive to the lesser of the client_ttl
5563	// and default_ttl, and also ensures a "public" cache-control directive
5564	// is present. If a client TTL is not specified, a default value (1
5565	// hour) will be used. The maximum allowed value is 86400s (1 day).
5566	ClientTtl int64 `json:"clientTtl,omitempty"`
5567
5568	// DefaultTtl: Specifies the default TTL for cached content served by
5569	// this origin for responses that do not have an existing valid TTL
5570	// (max-age or s-max-age). Setting a TTL of "0" means "always
5571	// revalidate". The value of defaultTTL cannot be set to a value greater
5572	// than that of maxTTL, but can be equal. When the cacheMode is set to
5573	// FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all
5574	// responses. The maximum allowed value is 31,622,400s (1 year), noting
5575	// that infrequently accessed objects may be evicted from the cache
5576	// before the defined TTL.
5577	DefaultTtl int64 `json:"defaultTtl,omitempty"`
5578
5579	// MaxTtl: Specifies the maximum allowed TTL for cached content served
5580	// by this origin. Cache directives that attempt to set a max-age or
5581	// s-maxage higher than this, or an Expires header more than maxTTL
5582	// seconds in the future will be capped at the value of maxTTL, as if it
5583	// were the value of an s-maxage Cache-Control directive. Headers sent
5584	// to the client will not be modified. Setting a TTL of "0" means
5585	// "always revalidate". The maximum allowed value is 31,622,400s (1
5586	// year), noting that infrequently accessed objects may be evicted from
5587	// the cache before the defined TTL.
5588	MaxTtl int64 `json:"maxTtl,omitempty"`
5589
5590	// NegativeCaching: Negative caching allows per-status code TTLs to be
5591	// set, in order to apply fine-grained caching for common errors or
5592	// redirects. This can reduce the load on your origin and improve
5593	// end-user experience by reducing response latency. When the cache mode
5594	// is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching
5595	// applies to responses with the specified response code that lack any
5596	// Cache-Control, Expires, or Pragma: no-cache directives. When the
5597	// cache mode is set to FORCE_CACHE_ALL, negative caching applies to all
5598	// responses with the specified response code, and override any caching
5599	// headers. By default, Cloud CDN will apply the following default TTLs
5600	// to these status codes: HTTP 300 (Multiple Choice), 301, 308
5601	// (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451
5602	// (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found),
5603	// 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults
5604	// can be overridden in negative_caching_policy.
5605	NegativeCaching bool `json:"negativeCaching,omitempty"`
5606
5607	// NegativeCachingPolicy: Sets a cache TTL for the specified HTTP status
5608	// code. negative_caching must be enabled to configure
5609	// negative_caching_policy. Omitting the policy and leaving
5610	// negative_caching enabled will use Cloud CDN's default cache TTLs.
5611	// Note that when specifying an explicit negative_caching_policy, you
5612	// should take care to specify a cache TTL for all response codes that
5613	// you wish to cache. Cloud CDN will not apply any default negative
5614	// caching when a policy exists.
5615	NegativeCachingPolicy []*BackendServiceCdnPolicyNegativeCachingPolicy `json:"negativeCachingPolicy,omitempty"`
5616
5617	// RequestCoalescing: If true then Cloud CDN will combine multiple
5618	// concurrent cache fill requests into a small number of requests to the
5619	// origin.
5620	RequestCoalescing bool `json:"requestCoalescing,omitempty"`
5621
5622	// ServeWhileStale: Serve existing content from the cache (if available)
5623	// when revalidating content with the origin, or when an error is
5624	// encountered when refreshing the cache. This setting defines the
5625	// default "max-stale" duration for any cached responses that do not
5626	// specify a max-stale directive. Stale responses that exceed the TTL
5627	// configured here will not be served. The default limit (max-stale) is
5628	// 86400s (1 day), which will allow stale content to be served up to
5629	// this limit beyond the max-age (or s-max-age) of a cached response.
5630	// The maximum allowed value is 604800 (1 week). Set this to zero (0) to
5631	// disable serve-while-stale.
5632	ServeWhileStale int64 `json:"serveWhileStale,omitempty"`
5633
5634	// SignedUrlCacheMaxAgeSec: Maximum number of seconds the response to a
5635	// signed URL request will be considered fresh. After this time period,
5636	// the response will be revalidated before being served. Defaults to 1hr
5637	// (3600s). When serving responses to signed URL requests, Cloud CDN
5638	// will internally behave as though all responses from this backend had
5639	// a "Cache-Control: public, max-age=[TTL]" header, regardless of any
5640	// existing Cache-Control header. The actual headers served in responses
5641	// will not be altered.
5642	SignedUrlCacheMaxAgeSec int64 `json:"signedUrlCacheMaxAgeSec,omitempty,string"`
5643
5644	// SignedUrlKeyNames: [Output Only] Names of the keys for signing
5645	// request URLs.
5646	SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"`
5647
5648	// ForceSendFields is a list of field names (e.g.
5649	// "BypassCacheOnRequestHeaders") to unconditionally include in API
5650	// requests. By default, fields with empty or default values are omitted
5651	// from API requests. However, any non-pointer, non-interface field
5652	// appearing in ForceSendFields will be sent to the server regardless of
5653	// whether the field is empty or not. This may be used to include empty
5654	// fields in Patch requests.
5655	ForceSendFields []string `json:"-"`
5656
5657	// NullFields is a list of field names (e.g.
5658	// "BypassCacheOnRequestHeaders") to include in API requests with the
5659	// JSON null value. By default, fields with empty values are omitted
5660	// from API requests. However, any field with an empty value appearing
5661	// in NullFields will be sent to the server as null. It is an error if a
5662	// field in this list has a non-empty value. This may be used to include
5663	// null fields in Patch requests.
5664	NullFields []string `json:"-"`
5665}
5666
5667func (s *BackendServiceCdnPolicy) MarshalJSON() ([]byte, error) {
5668	type NoMethod BackendServiceCdnPolicy
5669	raw := NoMethod(*s)
5670	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5671}
5672
5673// BackendServiceCdnPolicyBypassCacheOnRequestHeader: Bypass the cache
5674// when the specified request headers are present, e.g. Pragma or
5675// Authorization headers. Values are case insensitive. The presence of
5676// such a header overrides the cache_mode setting.
5677type BackendServiceCdnPolicyBypassCacheOnRequestHeader struct {
5678	// HeaderName: The header field name to match on when bypassing cache.
5679	// Values are case-insensitive.
5680	HeaderName string `json:"headerName,omitempty"`
5681
5682	// ForceSendFields is a list of field names (e.g. "HeaderName") to
5683	// unconditionally include in API requests. By default, fields with
5684	// empty or default values are omitted from API requests. However, any
5685	// non-pointer, non-interface field appearing in ForceSendFields will be
5686	// sent to the server regardless of whether the field is empty or not.
5687	// This may be used to include empty fields in Patch requests.
5688	ForceSendFields []string `json:"-"`
5689
5690	// NullFields is a list of field names (e.g. "HeaderName") to include in
5691	// API requests with the JSON null value. By default, fields with empty
5692	// values are omitted from API requests. However, any field with an
5693	// empty value appearing in NullFields will be sent to the server as
5694	// null. It is an error if a field in this list has a non-empty value.
5695	// This may be used to include null fields in Patch requests.
5696	NullFields []string `json:"-"`
5697}
5698
5699func (s *BackendServiceCdnPolicyBypassCacheOnRequestHeader) MarshalJSON() ([]byte, error) {
5700	type NoMethod BackendServiceCdnPolicyBypassCacheOnRequestHeader
5701	raw := NoMethod(*s)
5702	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5703}
5704
5705// BackendServiceCdnPolicyNegativeCachingPolicy: Specify CDN TTLs for
5706// response error codes.
5707type BackendServiceCdnPolicyNegativeCachingPolicy struct {
5708	// Code: The HTTP status code to define a TTL against. Only HTTP status
5709	// codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are
5710	// can be specified as values, and you cannot specify a status code more
5711	// than once.
5712	Code int64 `json:"code,omitempty"`
5713
5714	// Ttl: The TTL (in seconds) for which to cache responses with the
5715	// corresponding status code. The maximum allowed value is 1800s (30
5716	// minutes), noting that infrequently accessed objects may be evicted
5717	// from the cache before the defined TTL.
5718	Ttl int64 `json:"ttl,omitempty"`
5719
5720	// ForceSendFields is a list of field names (e.g. "Code") to
5721	// unconditionally include in API requests. By default, fields with
5722	// empty or default values are omitted from API requests. However, any
5723	// non-pointer, non-interface field appearing in ForceSendFields will be
5724	// sent to the server regardless of whether the field is empty or not.
5725	// This may be used to include empty fields in Patch requests.
5726	ForceSendFields []string `json:"-"`
5727
5728	// NullFields is a list of field names (e.g. "Code") to include in API
5729	// requests with the JSON null value. By default, fields with empty
5730	// values are omitted from API requests. However, any field with an
5731	// empty value appearing in NullFields will be sent to the server as
5732	// null. It is an error if a field in this list has a non-empty value.
5733	// This may be used to include null fields in Patch requests.
5734	NullFields []string `json:"-"`
5735}
5736
5737func (s *BackendServiceCdnPolicyNegativeCachingPolicy) MarshalJSON() ([]byte, error) {
5738	type NoMethod BackendServiceCdnPolicyNegativeCachingPolicy
5739	raw := NoMethod(*s)
5740	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5741}
5742
5743// BackendServiceFailoverPolicy: For load balancers that have
5744// configurable failover: Internal TCP/UDP Load Balancing
5745// (https://cloud.google.com/load-balancing/docs/internal/failover-overview)
5746// and external TCP/UDP Load Balancing
5747// (/network/networklb-failover-overview). On failover or failback, this
5748// field indicates whether connection draining will be honored. Google
5749// Cloud has a fixed connection draining timeout of 10 minutes. A
5750// setting of true terminates existing TCP connections to the active
5751// pool during failover and failback, immediately draining traffic. A
5752// setting of false allows existing TCP connections to persist, even on
5753// VMs no longer in the active pool, for up to the duration of the
5754// connection draining timeout (10 minutes).
5755type BackendServiceFailoverPolicy struct {
5756	// DisableConnectionDrainOnFailover: This can be set to true only if the
5757	// protocol is TCP. The default is false.
5758	DisableConnectionDrainOnFailover bool `json:"disableConnectionDrainOnFailover,omitempty"`
5759
5760	// DropTrafficIfUnhealthy: If set to true, connections to the load
5761	// balancer are dropped when all primary and all backup backend VMs are
5762	// unhealthy.If set to false, connections are distributed among all
5763	// primary VMs when all primary and all backup backend VMs are
5764	// unhealthy. For load balancers that have configurable failover:
5765	// Internal TCP/UDP Load Balancing
5766	// (https://cloud.google.com/load-balancing/docs/internal/failover-overview)
5767	// and external TCP/UDP Load Balancing
5768	// (/network/networklb-failover-overview). The default is false.
5769	DropTrafficIfUnhealthy bool `json:"dropTrafficIfUnhealthy,omitempty"`
5770
5771	// FailoverRatio: The value of the field must be in the range [0, 1]. If
5772	// the value is 0, the load balancer performs a failover when the number
5773	// of healthy primary VMs equals zero. For all other values, the load
5774	// balancer performs a failover when the total number of healthy primary
5775	// VMs is less than this ratio. For load balancers that have
5776	// configurable failover: Internal TCP/UDP Load Balancing
5777	// (https://cloud.google.com/load-balancing/docs/internal/failover-overview)
5778	// and external TCP/UDP Load Balancing
5779	// (/network/networklb-failover-overview).
5780	FailoverRatio float64 `json:"failoverRatio,omitempty"`
5781
5782	// ForceSendFields is a list of field names (e.g.
5783	// "DisableConnectionDrainOnFailover") to unconditionally include in API
5784	// requests. By default, fields with empty or default values are omitted
5785	// from API requests. However, any non-pointer, non-interface field
5786	// appearing in ForceSendFields will be sent to the server regardless of
5787	// whether the field is empty or not. This may be used to include empty
5788	// fields in Patch requests.
5789	ForceSendFields []string `json:"-"`
5790
5791	// NullFields is a list of field names (e.g.
5792	// "DisableConnectionDrainOnFailover") to include in API requests with
5793	// the JSON null value. By default, fields with empty values are omitted
5794	// from API requests. However, any field with an empty value appearing
5795	// in NullFields will be sent to the server as null. It is an error if a
5796	// field in this list has a non-empty value. This may be used to include
5797	// null fields in Patch requests.
5798	NullFields []string `json:"-"`
5799}
5800
5801func (s *BackendServiceFailoverPolicy) MarshalJSON() ([]byte, error) {
5802	type NoMethod BackendServiceFailoverPolicy
5803	raw := NoMethod(*s)
5804	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5805}
5806
5807func (s *BackendServiceFailoverPolicy) UnmarshalJSON(data []byte) error {
5808	type NoMethod BackendServiceFailoverPolicy
5809	var s1 struct {
5810		FailoverRatio gensupport.JSONFloat64 `json:"failoverRatio"`
5811		*NoMethod
5812	}
5813	s1.NoMethod = (*NoMethod)(s)
5814	if err := json.Unmarshal(data, &s1); err != nil {
5815		return err
5816	}
5817	s.FailoverRatio = float64(s1.FailoverRatio)
5818	return nil
5819}
5820
5821type BackendServiceGroupHealth struct {
5822	// Annotations: Metadata defined as annotations on the network endpoint
5823	// group.
5824	Annotations map[string]string `json:"annotations,omitempty"`
5825
5826	// HealthStatus: Health state of the backend instances or endpoints in
5827	// requested instance or network endpoint group, determined based on
5828	// configured health checks.
5829	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
5830
5831	// Kind: [Output Only] Type of resource. Always
5832	// compute#backendServiceGroupHealth for the health of backend services.
5833	Kind string `json:"kind,omitempty"`
5834
5835	// ServerResponse contains the HTTP response code and headers from the
5836	// server.
5837	googleapi.ServerResponse `json:"-"`
5838
5839	// ForceSendFields is a list of field names (e.g. "Annotations") to
5840	// unconditionally include in API requests. By default, fields with
5841	// empty or default values are omitted from API requests. However, any
5842	// non-pointer, non-interface field appearing in ForceSendFields will be
5843	// sent to the server regardless of whether the field is empty or not.
5844	// This may be used to include empty fields in Patch requests.
5845	ForceSendFields []string `json:"-"`
5846
5847	// NullFields is a list of field names (e.g. "Annotations") to include
5848	// in API requests with the JSON null value. By default, fields with
5849	// empty values are omitted from API requests. However, any field with
5850	// an empty value appearing in NullFields will be sent to the server as
5851	// null. It is an error if a field in this list has a non-empty value.
5852	// This may be used to include null fields in Patch requests.
5853	NullFields []string `json:"-"`
5854}
5855
5856func (s *BackendServiceGroupHealth) MarshalJSON() ([]byte, error) {
5857	type NoMethod BackendServiceGroupHealth
5858	raw := NoMethod(*s)
5859	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5860}
5861
5862// BackendServiceIAP: Identity-Aware Proxy
5863type BackendServiceIAP struct {
5864	// Enabled: Whether the serving infrastructure will authenticate and
5865	// authorize all incoming requests. If true, the oauth2ClientId and
5866	// oauth2ClientSecret fields must be non-empty.
5867	Enabled bool `json:"enabled,omitempty"`
5868
5869	// Oauth2ClientId: OAuth2 client ID to use for the authentication flow.
5870	Oauth2ClientId string `json:"oauth2ClientId,omitempty"`
5871
5872	// Oauth2ClientSecret: OAuth2 client secret to use for the
5873	// authentication flow. For security reasons, this value cannot be
5874	// retrieved via the API. Instead, the SHA-256 hash of the value is
5875	// returned in the oauth2ClientSecretSha256 field. @InputOnly
5876	Oauth2ClientSecret string `json:"oauth2ClientSecret,omitempty"`
5877
5878	// Oauth2ClientSecretSha256: [Output Only] SHA256 hash value for the
5879	// field oauth2_client_secret above.
5880	Oauth2ClientSecretSha256 string `json:"oauth2ClientSecretSha256,omitempty"`
5881
5882	// ForceSendFields is a list of field names (e.g. "Enabled") to
5883	// unconditionally include in API requests. By default, fields with
5884	// empty or default values are omitted from API requests. However, any
5885	// non-pointer, non-interface field appearing in ForceSendFields will be
5886	// sent to the server regardless of whether the field is empty or not.
5887	// This may be used to include empty fields in Patch requests.
5888	ForceSendFields []string `json:"-"`
5889
5890	// NullFields is a list of field names (e.g. "Enabled") to include in
5891	// API requests with the JSON null value. By default, fields with empty
5892	// values are omitted from API requests. However, any field with an
5893	// empty value appearing in NullFields will be sent to the server as
5894	// null. It is an error if a field in this list has a non-empty value.
5895	// This may be used to include null fields in Patch requests.
5896	NullFields []string `json:"-"`
5897}
5898
5899func (s *BackendServiceIAP) MarshalJSON() ([]byte, error) {
5900	type NoMethod BackendServiceIAP
5901	raw := NoMethod(*s)
5902	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5903}
5904
5905// BackendServiceList: Contains a list of BackendService resources.
5906type BackendServiceList struct {
5907	// Id: [Output Only] Unique identifier for the resource; defined by the
5908	// server.
5909	Id string `json:"id,omitempty"`
5910
5911	// Items: A list of BackendService resources.
5912	Items []*BackendService `json:"items,omitempty"`
5913
5914	// Kind: [Output Only] Type of resource. Always
5915	// compute#backendServiceList for lists of backend services.
5916	Kind string `json:"kind,omitempty"`
5917
5918	// NextPageToken: [Output Only] This token allows you to get the next
5919	// page of results for list requests. If the number of results is larger
5920	// than maxResults, use the nextPageToken as a value for the query
5921	// parameter pageToken in the next list request. Subsequent list
5922	// requests will have their own nextPageToken to continue paging through
5923	// the results.
5924	NextPageToken string `json:"nextPageToken,omitempty"`
5925
5926	// SelfLink: [Output Only] Server-defined URL for this resource.
5927	SelfLink string `json:"selfLink,omitempty"`
5928
5929	// Warning: [Output Only] Informational warning message.
5930	Warning *BackendServiceListWarning `json:"warning,omitempty"`
5931
5932	// ServerResponse contains the HTTP response code and headers from the
5933	// server.
5934	googleapi.ServerResponse `json:"-"`
5935
5936	// ForceSendFields is a list of field names (e.g. "Id") to
5937	// unconditionally include in API requests. By default, fields with
5938	// empty or default values are omitted from API requests. However, any
5939	// non-pointer, non-interface field appearing in ForceSendFields will be
5940	// sent to the server regardless of whether the field is empty or not.
5941	// This may be used to include empty fields in Patch requests.
5942	ForceSendFields []string `json:"-"`
5943
5944	// NullFields is a list of field names (e.g. "Id") to include in API
5945	// requests with the JSON null value. By default, fields with empty
5946	// values are omitted from API requests. However, any field with an
5947	// empty value appearing in NullFields will be sent to the server as
5948	// null. It is an error if a field in this list has a non-empty value.
5949	// This may be used to include null fields in Patch requests.
5950	NullFields []string `json:"-"`
5951}
5952
5953func (s *BackendServiceList) MarshalJSON() ([]byte, error) {
5954	type NoMethod BackendServiceList
5955	raw := NoMethod(*s)
5956	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5957}
5958
5959// BackendServiceListWarning: [Output Only] Informational warning
5960// message.
5961type BackendServiceListWarning struct {
5962	// Code: [Output Only] A warning code, if applicable. For example,
5963	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5964	// the response.
5965	//
5966	// Possible values:
5967	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
5968	// changes made by a failed operation.
5969	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
5970	// created.
5971	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
5972	// resources has a type marked as deprecated
5973	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
5974	// that is larger than image size.
5975	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
5976	// resources has a type marked as experimental
5977	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
5978	// call
5979	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
5980	// overridden. Deprecated unused field.
5981	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
5982	// injected kernel, which is deprecated.
5983	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
5984	// exceedingly large number of resources
5985	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
5986	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
5987	// not assigned to an instance on the network.
5988	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
5989	// ip forward.
5990	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
5991	// refers to an instance that does not exist.
5992	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
5993	// URL refers to an instance that is not on the same network as the
5994	// route.
5995	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
5996	// have a status of RUNNING.
5997	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
5998	// continue the process despite the mentioned error.
5999	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
6000	// page.
6001	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
6002	// missing due to errors
6003	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
6004	// that requires a TOS they have not accepted.
6005	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
6006	// resource is in use.
6007	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
6008	// auto-delete could not be deleted because they were in use.
6009	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
6010	// ignored.
6011	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
6012	// instance group manager is valid as such, but its application does not
6013	// make a lot of sense, because it allows only single instance in
6014	// instance group.
6015	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
6016	// are present
6017	//   "UNREACHABLE" - A given scope cannot be reached.
6018	Code string `json:"code,omitempty"`
6019
6020	// Data: [Output Only] Metadata about this warning in key: value format.
6021	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
6022	// }
6023	Data []*BackendServiceListWarningData `json:"data,omitempty"`
6024
6025	// Message: [Output Only] A human-readable description of the warning
6026	// code.
6027	Message string `json:"message,omitempty"`
6028
6029	// ForceSendFields is a list of field names (e.g. "Code") to
6030	// unconditionally include in API requests. By default, fields with
6031	// empty or default values are omitted from API requests. However, any
6032	// non-pointer, non-interface field appearing in ForceSendFields will be
6033	// sent to the server regardless of whether the field is empty or not.
6034	// This may be used to include empty fields in Patch requests.
6035	ForceSendFields []string `json:"-"`
6036
6037	// NullFields is a list of field names (e.g. "Code") to include in API
6038	// requests with the JSON null value. By default, fields with empty
6039	// values are omitted from API requests. However, any field with an
6040	// empty value appearing in NullFields will be sent to the server as
6041	// null. It is an error if a field in this list has a non-empty value.
6042	// This may be used to include null fields in Patch requests.
6043	NullFields []string `json:"-"`
6044}
6045
6046func (s *BackendServiceListWarning) MarshalJSON() ([]byte, error) {
6047	type NoMethod BackendServiceListWarning
6048	raw := NoMethod(*s)
6049	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6050}
6051
6052type BackendServiceListWarningData struct {
6053	// Key: [Output Only] A key that provides more detail on the warning
6054	// being returned. For example, for warnings where there are no results
6055	// in a list request for a particular zone, this key might be scope and
6056	// the key value might be the zone name. Other examples might be a key
6057	// indicating a deprecated resource and a suggested replacement, or a
6058	// warning about invalid network settings (for example, if an instance
6059	// attempts to perform IP forwarding but is not enabled for IP
6060	// forwarding).
6061	Key string `json:"key,omitempty"`
6062
6063	// Value: [Output Only] A warning data value corresponding to the key.
6064	Value string `json:"value,omitempty"`
6065
6066	// ForceSendFields is a list of field names (e.g. "Key") to
6067	// unconditionally include in API requests. By default, fields with
6068	// empty or default values are omitted from API requests. However, any
6069	// non-pointer, non-interface field appearing in ForceSendFields will be
6070	// sent to the server regardless of whether the field is empty or not.
6071	// This may be used to include empty fields in Patch requests.
6072	ForceSendFields []string `json:"-"`
6073
6074	// NullFields is a list of field names (e.g. "Key") to include in API
6075	// requests with the JSON null value. By default, fields with empty
6076	// values are omitted from API requests. However, any field with an
6077	// empty value appearing in NullFields will be sent to the server as
6078	// null. It is an error if a field in this list has a non-empty value.
6079	// This may be used to include null fields in Patch requests.
6080	NullFields []string `json:"-"`
6081}
6082
6083func (s *BackendServiceListWarningData) MarshalJSON() ([]byte, error) {
6084	type NoMethod BackendServiceListWarningData
6085	raw := NoMethod(*s)
6086	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6087}
6088
6089// BackendServiceLogConfig: The available logging options for the load
6090// balancer traffic served by this backend service.
6091type BackendServiceLogConfig struct {
6092	// Enable: This field denotes whether to enable logging for the load
6093	// balancer traffic served by this backend service.
6094	Enable bool `json:"enable,omitempty"`
6095
6096	// SampleRate: This field can only be specified if logging is enabled
6097	// for this backend service. The value of the field must be in [0, 1].
6098	// This configures the sampling rate of requests to the load balancer
6099	// where 1.0 means all logged requests are reported and 0.0 means no
6100	// logged requests are reported. The default value is 1.0.
6101	SampleRate float64 `json:"sampleRate,omitempty"`
6102
6103	// ForceSendFields is a list of field names (e.g. "Enable") to
6104	// unconditionally include in API requests. By default, fields with
6105	// empty or default values are omitted from API requests. However, any
6106	// non-pointer, non-interface field appearing in ForceSendFields will be
6107	// sent to the server regardless of whether the field is empty or not.
6108	// This may be used to include empty fields in Patch requests.
6109	ForceSendFields []string `json:"-"`
6110
6111	// NullFields is a list of field names (e.g. "Enable") to include in API
6112	// requests with the JSON null value. By default, fields with empty
6113	// values are omitted from API requests. However, any field with an
6114	// empty value appearing in NullFields will be sent to the server as
6115	// null. It is an error if a field in this list has a non-empty value.
6116	// This may be used to include null fields in Patch requests.
6117	NullFields []string `json:"-"`
6118}
6119
6120func (s *BackendServiceLogConfig) MarshalJSON() ([]byte, error) {
6121	type NoMethod BackendServiceLogConfig
6122	raw := NoMethod(*s)
6123	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6124}
6125
6126func (s *BackendServiceLogConfig) UnmarshalJSON(data []byte) error {
6127	type NoMethod BackendServiceLogConfig
6128	var s1 struct {
6129		SampleRate gensupport.JSONFloat64 `json:"sampleRate"`
6130		*NoMethod
6131	}
6132	s1.NoMethod = (*NoMethod)(s)
6133	if err := json.Unmarshal(data, &s1); err != nil {
6134		return err
6135	}
6136	s.SampleRate = float64(s1.SampleRate)
6137	return nil
6138}
6139
6140type BackendServiceReference struct {
6141	BackendService string `json:"backendService,omitempty"`
6142
6143	// ForceSendFields is a list of field names (e.g. "BackendService") to
6144	// unconditionally include in API requests. By default, fields with
6145	// empty or default values are omitted from API requests. However, any
6146	// non-pointer, non-interface field appearing in ForceSendFields will be
6147	// sent to the server regardless of whether the field is empty or not.
6148	// This may be used to include empty fields in Patch requests.
6149	ForceSendFields []string `json:"-"`
6150
6151	// NullFields is a list of field names (e.g. "BackendService") to
6152	// include in API requests with the JSON null value. By default, fields
6153	// with empty values are omitted from API requests. However, any field
6154	// with an empty value appearing in NullFields will be sent to the
6155	// server as null. It is an error if a field in this list has a
6156	// non-empty value. This may be used to include null fields in Patch
6157	// requests.
6158	NullFields []string `json:"-"`
6159}
6160
6161func (s *BackendServiceReference) MarshalJSON() ([]byte, error) {
6162	type NoMethod BackendServiceReference
6163	raw := NoMethod(*s)
6164	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6165}
6166
6167type BackendServicesScopedList struct {
6168	// BackendServices: A list of BackendServices contained in this scope.
6169	BackendServices []*BackendService `json:"backendServices,omitempty"`
6170
6171	// Warning: Informational warning which replaces the list of backend
6172	// services when the list is empty.
6173	Warning *BackendServicesScopedListWarning `json:"warning,omitempty"`
6174
6175	// ForceSendFields is a list of field names (e.g. "BackendServices") to
6176	// unconditionally include in API requests. By default, fields with
6177	// empty or default values are omitted from API requests. However, any
6178	// non-pointer, non-interface field appearing in ForceSendFields will be
6179	// sent to the server regardless of whether the field is empty or not.
6180	// This may be used to include empty fields in Patch requests.
6181	ForceSendFields []string `json:"-"`
6182
6183	// NullFields is a list of field names (e.g. "BackendServices") to
6184	// include in API requests with the JSON null value. By default, fields
6185	// with empty values are omitted from API requests. However, any field
6186	// with an empty value appearing in NullFields will be sent to the
6187	// server as null. It is an error if a field in this list has a
6188	// non-empty value. This may be used to include null fields in Patch
6189	// requests.
6190	NullFields []string `json:"-"`
6191}
6192
6193func (s *BackendServicesScopedList) MarshalJSON() ([]byte, error) {
6194	type NoMethod BackendServicesScopedList
6195	raw := NoMethod(*s)
6196	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6197}
6198
6199// BackendServicesScopedListWarning: Informational warning which
6200// replaces the list of backend services when the list is empty.
6201type BackendServicesScopedListWarning struct {
6202	// Code: [Output Only] A warning code, if applicable. For example,
6203	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6204	// the response.
6205	//
6206	// Possible values:
6207	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
6208	// changes made by a failed operation.
6209	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
6210	// created.
6211	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
6212	// resources has a type marked as deprecated
6213	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
6214	// that is larger than image size.
6215	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
6216	// resources has a type marked as experimental
6217	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
6218	// call
6219	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
6220	// overridden. Deprecated unused field.
6221	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
6222	// injected kernel, which is deprecated.
6223	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
6224	// exceedingly large number of resources
6225	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
6226	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
6227	// not assigned to an instance on the network.
6228	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
6229	// ip forward.
6230	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
6231	// refers to an instance that does not exist.
6232	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
6233	// URL refers to an instance that is not on the same network as the
6234	// route.
6235	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
6236	// have a status of RUNNING.
6237	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
6238	// continue the process despite the mentioned error.
6239	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
6240	// page.
6241	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
6242	// missing due to errors
6243	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
6244	// that requires a TOS they have not accepted.
6245	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
6246	// resource is in use.
6247	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
6248	// auto-delete could not be deleted because they were in use.
6249	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
6250	// ignored.
6251	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
6252	// instance group manager is valid as such, but its application does not
6253	// make a lot of sense, because it allows only single instance in
6254	// instance group.
6255	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
6256	// are present
6257	//   "UNREACHABLE" - A given scope cannot be reached.
6258	Code string `json:"code,omitempty"`
6259
6260	// Data: [Output Only] Metadata about this warning in key: value format.
6261	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
6262	// }
6263	Data []*BackendServicesScopedListWarningData `json:"data,omitempty"`
6264
6265	// Message: [Output Only] A human-readable description of the warning
6266	// code.
6267	Message string `json:"message,omitempty"`
6268
6269	// ForceSendFields is a list of field names (e.g. "Code") to
6270	// unconditionally include in API requests. By default, fields with
6271	// empty or default values are omitted from API requests. However, any
6272	// non-pointer, non-interface field appearing in ForceSendFields will be
6273	// sent to the server regardless of whether the field is empty or not.
6274	// This may be used to include empty fields in Patch requests.
6275	ForceSendFields []string `json:"-"`
6276
6277	// NullFields is a list of field names (e.g. "Code") to include in API
6278	// requests with the JSON null value. By default, fields with empty
6279	// values are omitted from API requests. However, any field with an
6280	// empty value appearing in NullFields will be sent to the server as
6281	// null. It is an error if a field in this list has a non-empty value.
6282	// This may be used to include null fields in Patch requests.
6283	NullFields []string `json:"-"`
6284}
6285
6286func (s *BackendServicesScopedListWarning) MarshalJSON() ([]byte, error) {
6287	type NoMethod BackendServicesScopedListWarning
6288	raw := NoMethod(*s)
6289	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6290}
6291
6292type BackendServicesScopedListWarningData struct {
6293	// Key: [Output Only] A key that provides more detail on the warning
6294	// being returned. For example, for warnings where there are no results
6295	// in a list request for a particular zone, this key might be scope and
6296	// the key value might be the zone name. Other examples might be a key
6297	// indicating a deprecated resource and a suggested replacement, or a
6298	// warning about invalid network settings (for example, if an instance
6299	// attempts to perform IP forwarding but is not enabled for IP
6300	// forwarding).
6301	Key string `json:"key,omitempty"`
6302
6303	// Value: [Output Only] A warning data value corresponding to the key.
6304	Value string `json:"value,omitempty"`
6305
6306	// ForceSendFields is a list of field names (e.g. "Key") to
6307	// unconditionally include in API requests. By default, fields with
6308	// empty or default values are omitted from API requests. However, any
6309	// non-pointer, non-interface field appearing in ForceSendFields will be
6310	// sent to the server regardless of whether the field is empty or not.
6311	// This may be used to include empty fields in Patch requests.
6312	ForceSendFields []string `json:"-"`
6313
6314	// NullFields is a list of field names (e.g. "Key") to include in API
6315	// requests with the JSON null value. By default, fields with empty
6316	// values are omitted from API requests. However, any field with an
6317	// empty value appearing in NullFields will be sent to the server as
6318	// null. It is an error if a field in this list has a non-empty value.
6319	// This may be used to include null fields in Patch requests.
6320	NullFields []string `json:"-"`
6321}
6322
6323func (s *BackendServicesScopedListWarningData) MarshalJSON() ([]byte, error) {
6324	type NoMethod BackendServicesScopedListWarningData
6325	raw := NoMethod(*s)
6326	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6327}
6328
6329// Binding: Associates `members` with a `role`.
6330type Binding struct {
6331	// BindingId: This is deprecated and has no effect. Do not use.
6332	BindingId string `json:"bindingId,omitempty"`
6333
6334	// Condition: The condition that is associated with this binding. If the
6335	// condition evaluates to `true`, then this binding applies to the
6336	// current request. If the condition evaluates to `false`, then this
6337	// binding does not apply to the current request. However, a different
6338	// role binding might grant the same role to one or more of the members
6339	// in this binding. To learn which resources support conditions in their
6340	// IAM policies, see the IAM documentation
6341	// (https://cloud.google.com/iam/help/conditions/resource-policies).
6342	Condition *Expr `json:"condition,omitempty"`
6343
6344	// Members: Specifies the identities requesting access for a Cloud
6345	// Platform resource. `members` can have the following values: *
6346	// `allUsers`: A special identifier that represents anyone who is on the
6347	// internet; with or without a Google account. *
6348	// `allAuthenticatedUsers`: A special identifier that represents anyone
6349	// who is authenticated with a Google account or a service account. *
6350	// `user:{emailid}`: An email address that represents a specific Google
6351	// account. For example, `alice@example.com` . *
6352	// `serviceAccount:{emailid}`: An email address that represents a
6353	// service account. For example,
6354	// `my-other-app@appspot.gserviceaccount.com`. * `group:{emailid}`: An
6355	// email address that represents a Google group. For example,
6356	// `admins@example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An
6357	// email address (plus unique identifier) representing a user that has
6358	// been recently deleted. For example,
6359	// `alice@example.com?uid=123456789012345678901`. If the user is
6360	// recovered, this value reverts to `user:{emailid}` and the recovered
6361	// user retains the role in the binding. *
6362	// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address
6363	// (plus unique identifier) representing a service account that has been
6364	// recently deleted. For example,
6365	// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
6366	// If the service account is undeleted, this value reverts to
6367	// `serviceAccount:{emailid}` and the undeleted service account retains
6368	// the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`:
6369	// An email address (plus unique identifier) representing a Google group
6370	// that has been recently deleted. For example,
6371	// `admins@example.com?uid=123456789012345678901`. If the group is
6372	// recovered, this value reverts to `group:{emailid}` and the recovered
6373	// group retains the role in the binding. * `domain:{domain}`: The G
6374	// Suite domain (primary) that represents all the users of that domain.
6375	// For example, `google.com` or `example.com`.
6376	Members []string `json:"members,omitempty"`
6377
6378	// Role: Role that is assigned to `members`. For example,
6379	// `roles/viewer`, `roles/editor`, or `roles/owner`.
6380	Role string `json:"role,omitempty"`
6381
6382	// ForceSendFields is a list of field names (e.g. "BindingId") to
6383	// unconditionally include in API requests. By default, fields with
6384	// empty or default values are omitted from API requests. However, any
6385	// non-pointer, non-interface field appearing in ForceSendFields will be
6386	// sent to the server regardless of whether the field is empty or not.
6387	// This may be used to include empty fields in Patch requests.
6388	ForceSendFields []string `json:"-"`
6389
6390	// NullFields is a list of field names (e.g. "BindingId") to include in
6391	// API requests with the JSON null value. By default, fields with empty
6392	// values are omitted from API requests. However, any field with an
6393	// empty value appearing in NullFields will be sent to the server as
6394	// null. It is an error if a field in this list has a non-empty value.
6395	// This may be used to include null fields in Patch requests.
6396	NullFields []string `json:"-"`
6397}
6398
6399func (s *Binding) MarshalJSON() ([]byte, error) {
6400	type NoMethod Binding
6401	raw := NoMethod(*s)
6402	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6403}
6404
6405// BulkInsertInstanceResource: A transient resource used in
6406// compute.instances.bulkInsert and compute.regionInstances.bulkInsert .
6407// This resource is not persisted anywhere, it is used only for
6408// processing the requests.
6409type BulkInsertInstanceResource struct {
6410	// Count: The maximum number of instances to create.
6411	Count int64 `json:"count,omitempty,string"`
6412
6413	// InstanceProperties: The instance properties defining the VM instances
6414	// to be created. Required if sourceInstanceTemplate is not provided.
6415	InstanceProperties *InstanceProperties `json:"instanceProperties,omitempty"`
6416
6417	// LocationPolicy: Policy for chosing target zone.
6418	LocationPolicy *LocationPolicy `json:"locationPolicy,omitempty"`
6419
6420	// MinCount: The minimum number of instances to create. If no min_count
6421	// is specified then count is used as the default value. If min_count
6422	// instances cannot be created, then no instances will be created and
6423	// instances already created will be deleted.
6424	MinCount int64 `json:"minCount,omitempty,string"`
6425
6426	// NamePattern: The string pattern used for the names of the VMs. Either
6427	// name_pattern or per_instance_properties must be set. The pattern must
6428	// contain one continuous sequence of placeholder hash characters (#)
6429	// with each character corresponding to one digit of the generated
6430	// instance name. Example: a name_pattern of inst-#### generates
6431	// instance names such as inst-0001 and inst-0002. If existing instances
6432	// in the same project and zone have names that match the name pattern
6433	// then the generated instance numbers start after the biggest existing
6434	// number. For example, if there exists an instance with name inst-0050,
6435	// then instance names generated using the pattern inst-#### begin with
6436	// inst-0051. The name pattern placeholder #...# can contain up to 18
6437	// characters.
6438	NamePattern string `json:"namePattern,omitempty"`
6439
6440	// PerInstanceProperties: Per-instance properties to be set on
6441	// individual instances. Keys of this map specify requested instance
6442	// names. Can be empty if name_pattern is used.
6443	PerInstanceProperties map[string]BulkInsertInstanceResourcePerInstanceProperties `json:"perInstanceProperties,omitempty"`
6444
6445	// SourceInstanceTemplate: Specifies the instance template from which to
6446	// create instances. You may combine sourceInstanceTemplate with
6447	// instanceProperties to override specific values from an existing
6448	// instance template. Bulk API follows the semantics of JSON Merge Patch
6449	// described by RFC 7396. It can be a full or partial URL. For example,
6450	// the following are all valid URLs to an instance template: -
6451	// https://www.googleapis.com/compute/v1/projects/project
6452	// /global/instanceTemplates/instanceTemplate -
6453	// projects/project/global/instanceTemplates/instanceTemplate -
6454	// global/instanceTemplates/instanceTemplate This field is optional.
6455	SourceInstanceTemplate string `json:"sourceInstanceTemplate,omitempty"`
6456
6457	// ForceSendFields is a list of field names (e.g. "Count") to
6458	// unconditionally include in API requests. By default, fields with
6459	// empty or default values are omitted from API requests. However, any
6460	// non-pointer, non-interface field appearing in ForceSendFields will be
6461	// sent to the server regardless of whether the field is empty or not.
6462	// This may be used to include empty fields in Patch requests.
6463	ForceSendFields []string `json:"-"`
6464
6465	// NullFields is a list of field names (e.g. "Count") to include in API
6466	// requests with the JSON null value. By default, fields with empty
6467	// values are omitted from API requests. However, any field with an
6468	// empty value appearing in NullFields will be sent to the server as
6469	// null. It is an error if a field in this list has a non-empty value.
6470	// This may be used to include null fields in Patch requests.
6471	NullFields []string `json:"-"`
6472}
6473
6474func (s *BulkInsertInstanceResource) MarshalJSON() ([]byte, error) {
6475	type NoMethod BulkInsertInstanceResource
6476	raw := NoMethod(*s)
6477	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6478}
6479
6480// BulkInsertInstanceResourcePerInstanceProperties: Per-instance
6481// properties to be set on individual instances. To be extended in the
6482// future.
6483type BulkInsertInstanceResourcePerInstanceProperties struct {
6484	// Name: This field is only temporary. It will be removed. Do not use
6485	// it.
6486	Name string `json:"name,omitempty"`
6487
6488	// ForceSendFields is a list of field names (e.g. "Name") to
6489	// unconditionally include in API requests. By default, fields with
6490	// empty or default values are omitted from API requests. However, any
6491	// non-pointer, non-interface field appearing in ForceSendFields will be
6492	// sent to the server regardless of whether the field is empty or not.
6493	// This may be used to include empty fields in Patch requests.
6494	ForceSendFields []string `json:"-"`
6495
6496	// NullFields is a list of field names (e.g. "Name") to include in API
6497	// requests with the JSON null value. By default, fields with empty
6498	// values are omitted from API requests. However, any field with an
6499	// empty value appearing in NullFields will be sent to the server as
6500	// null. It is an error if a field in this list has a non-empty value.
6501	// This may be used to include null fields in Patch requests.
6502	NullFields []string `json:"-"`
6503}
6504
6505func (s *BulkInsertInstanceResourcePerInstanceProperties) MarshalJSON() ([]byte, error) {
6506	type NoMethod BulkInsertInstanceResourcePerInstanceProperties
6507	raw := NoMethod(*s)
6508	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6509}
6510
6511type CacheInvalidationRule struct {
6512	// Host: If set, this invalidation rule will only apply to requests with
6513	// a Host header matching host.
6514	Host string `json:"host,omitempty"`
6515
6516	Path string `json:"path,omitempty"`
6517
6518	// ForceSendFields is a list of field names (e.g. "Host") to
6519	// unconditionally include in API requests. By default, fields with
6520	// empty or default values are omitted from API requests. However, any
6521	// non-pointer, non-interface field appearing in ForceSendFields will be
6522	// sent to the server regardless of whether the field is empty or not.
6523	// This may be used to include empty fields in Patch requests.
6524	ForceSendFields []string `json:"-"`
6525
6526	// NullFields is a list of field names (e.g. "Host") to include in API
6527	// requests with the JSON null value. By default, fields with empty
6528	// values are omitted from API requests. However, any field with an
6529	// empty value appearing in NullFields will be sent to the server as
6530	// null. It is an error if a field in this list has a non-empty value.
6531	// This may be used to include null fields in Patch requests.
6532	NullFields []string `json:"-"`
6533}
6534
6535func (s *CacheInvalidationRule) MarshalJSON() ([]byte, error) {
6536	type NoMethod CacheInvalidationRule
6537	raw := NoMethod(*s)
6538	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6539}
6540
6541// CacheKeyPolicy: Message containing what to include in the cache key
6542// for a request for Cloud CDN.
6543type CacheKeyPolicy struct {
6544	// IncludeHost: If true, requests to different hosts will be cached
6545	// separately.
6546	IncludeHost bool `json:"includeHost,omitempty"`
6547
6548	// IncludeProtocol: If true, http and https requests will be cached
6549	// separately.
6550	IncludeProtocol bool `json:"includeProtocol,omitempty"`
6551
6552	// IncludeQueryString: If true, include query string parameters in the
6553	// cache key according to query_string_whitelist and
6554	// query_string_blacklist. If neither is set, the entire query string
6555	// will be included. If false, the query string will be excluded from
6556	// the cache key entirely.
6557	IncludeQueryString bool `json:"includeQueryString,omitempty"`
6558
6559	// QueryStringBlacklist: Names of query string parameters to exclude in
6560	// cache keys. All other parameters will be included. Either specify
6561	// query_string_whitelist or query_string_blacklist, not both. '&' and
6562	// '=' will be percent encoded and not treated as delimiters.
6563	QueryStringBlacklist []string `json:"queryStringBlacklist,omitempty"`
6564
6565	// QueryStringWhitelist: Names of query string parameters to include in
6566	// cache keys. All other parameters will be excluded. Either specify
6567	// query_string_whitelist or query_string_blacklist, not both. '&' and
6568	// '=' will be percent encoded and not treated as delimiters.
6569	QueryStringWhitelist []string `json:"queryStringWhitelist,omitempty"`
6570
6571	// ForceSendFields is a list of field names (e.g. "IncludeHost") to
6572	// unconditionally include in API requests. By default, fields with
6573	// empty or default values are omitted from API requests. However, any
6574	// non-pointer, non-interface field appearing in ForceSendFields will be
6575	// sent to the server regardless of whether the field is empty or not.
6576	// This may be used to include empty fields in Patch requests.
6577	ForceSendFields []string `json:"-"`
6578
6579	// NullFields is a list of field names (e.g. "IncludeHost") to include
6580	// in API requests with the JSON null value. By default, fields with
6581	// empty values are omitted from API requests. However, any field with
6582	// an empty value appearing in NullFields will be sent to the server as
6583	// null. It is an error if a field in this list has a non-empty value.
6584	// This may be used to include null fields in Patch requests.
6585	NullFields []string `json:"-"`
6586}
6587
6588func (s *CacheKeyPolicy) MarshalJSON() ([]byte, error) {
6589	type NoMethod CacheKeyPolicy
6590	raw := NoMethod(*s)
6591	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6592}
6593
6594// CircuitBreakers: Settings controlling the volume of requests,
6595// connections and retries to this backend service.
6596type CircuitBreakers struct {
6597	// MaxConnections: Not supported when the backend service is referenced
6598	// by a URL map that is bound to target gRPC proxy that has
6599	// validateForProxyless field set to true.
6600	MaxConnections int64 `json:"maxConnections,omitempty"`
6601
6602	// MaxPendingRequests: Not supported when the backend service is
6603	// referenced by a URL map that is bound to target gRPC proxy that has
6604	// validateForProxyless field set to true.
6605	MaxPendingRequests int64 `json:"maxPendingRequests,omitempty"`
6606
6607	// MaxRequests: The maximum number of parallel requests that allowed to
6608	// the backend service. If not specified, there is no limit.
6609	MaxRequests int64 `json:"maxRequests,omitempty"`
6610
6611	// MaxRequestsPerConnection: Not supported when the backend service is
6612	// referenced by a URL map that is bound to target gRPC proxy that has
6613	// validateForProxyless field set to true.
6614	MaxRequestsPerConnection int64 `json:"maxRequestsPerConnection,omitempty"`
6615
6616	// MaxRetries: Not supported when the backend service is referenced by a
6617	// URL map that is bound to target gRPC proxy that has
6618	// validateForProxyless field set to true.
6619	MaxRetries int64 `json:"maxRetries,omitempty"`
6620
6621	// ForceSendFields is a list of field names (e.g. "MaxConnections") to
6622	// unconditionally include in API requests. By default, fields with
6623	// empty or default values are omitted from API requests. However, any
6624	// non-pointer, non-interface field appearing in ForceSendFields will be
6625	// sent to the server regardless of whether the field is empty or not.
6626	// This may be used to include empty fields in Patch requests.
6627	ForceSendFields []string `json:"-"`
6628
6629	// NullFields is a list of field names (e.g. "MaxConnections") to
6630	// include in API requests with the JSON null value. By default, fields
6631	// with empty values are omitted from API requests. However, any field
6632	// with an empty value appearing in NullFields will be sent to the
6633	// server as null. It is an error if a field in this list has a
6634	// non-empty value. This may be used to include null fields in Patch
6635	// requests.
6636	NullFields []string `json:"-"`
6637}
6638
6639func (s *CircuitBreakers) MarshalJSON() ([]byte, error) {
6640	type NoMethod CircuitBreakers
6641	raw := NoMethod(*s)
6642	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6643}
6644
6645// Commitment: Represents a regional Commitment resource. Creating a
6646// commitment resource means that you are purchasing a committed use
6647// contract with an explicit start and end time. You can create
6648// commitments based on vCPUs and memory usage and receive discounted
6649// rates. For full details, read Signing Up for Committed Use Discounts.
6650type Commitment struct {
6651	// Category: The category of the commitment. Category MACHINE specifies
6652	// commitments composed of machine resources such as VCPU or MEMORY,
6653	// listed in resources. Category LICENSE specifies commitments composed
6654	// of software licenses, listed in licenseResources. Note that only
6655	// MACHINE commitments should have a Type specified.
6656	//
6657	// Possible values:
6658	//   "CATEGORY_UNSPECIFIED"
6659	//   "LICENSE"
6660	//   "MACHINE"
6661	Category string `json:"category,omitempty"`
6662
6663	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
6664	// format.
6665	CreationTimestamp string `json:"creationTimestamp,omitempty"`
6666
6667	// Description: An optional description of this resource. Provide this
6668	// property when you create the resource.
6669	Description string `json:"description,omitempty"`
6670
6671	// EndTimestamp: [Output Only] Commitment end time in RFC3339 text
6672	// format.
6673	EndTimestamp string `json:"endTimestamp,omitempty"`
6674
6675	// Id: [Output Only] The unique identifier for the resource. This
6676	// identifier is defined by the server.
6677	Id uint64 `json:"id,omitempty,string"`
6678
6679	// Kind: [Output Only] Type of the resource. Always compute#commitment
6680	// for commitments.
6681	Kind string `json:"kind,omitempty"`
6682
6683	// LicenseResource: The license specification required as part of a
6684	// license commitment.
6685	LicenseResource *LicenseResourceCommitment `json:"licenseResource,omitempty"`
6686
6687	// Name: Name of the resource. Provided by the client when the resource
6688	// is created. The name must be 1-63 characters long, and comply with
6689	// RFC1035. Specifically, the name must be 1-63 characters long and
6690	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
6691	// the first character must be a lowercase letter, and all following
6692	// characters must be a dash, lowercase letter, or digit, except the
6693	// last character, which cannot be a dash.
6694	Name string `json:"name,omitempty"`
6695
6696	// Plan: The plan for this commitment, which determines duration and
6697	// discount rate. The currently supported plans are TWELVE_MONTH (1
6698	// year), and THIRTY_SIX_MONTH (3 years).
6699	//
6700	// Possible values:
6701	//   "INVALID"
6702	//   "THIRTY_SIX_MONTH"
6703	//   "TWELVE_MONTH"
6704	Plan string `json:"plan,omitempty"`
6705
6706	// Region: [Output Only] URL of the region where this commitment may be
6707	// used.
6708	Region string `json:"region,omitempty"`
6709
6710	// Reservations: List of reservations in this commitment.
6711	Reservations []*Reservation `json:"reservations,omitempty"`
6712
6713	// Resources: A list of commitment amounts for particular resources.
6714	// Note that VCPU and MEMORY resource commitments must occur together.
6715	Resources []*ResourceCommitment `json:"resources,omitempty"`
6716
6717	// SelfLink: [Output Only] Server-defined URL for the resource.
6718	SelfLink string `json:"selfLink,omitempty"`
6719
6720	// StartTimestamp: [Output Only] Commitment start time in RFC3339 text
6721	// format.
6722	StartTimestamp string `json:"startTimestamp,omitempty"`
6723
6724	// Status: [Output Only] Status of the commitment with regards to
6725	// eventual expiration (each commitment has an end date defined). One of
6726	// the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
6727	//
6728	// Possible values:
6729	//   "ACTIVE"
6730	//   "CREATING"
6731	//   "EXPIRED"
6732	//   "NOT_YET_ACTIVE"
6733	Status string `json:"status,omitempty"`
6734
6735	// StatusMessage: [Output Only] An optional, human-readable explanation
6736	// of the status.
6737	StatusMessage string `json:"statusMessage,omitempty"`
6738
6739	// Type: The type of commitment, which affects the discount rate and the
6740	// eligible resources. Type MEMORY_OPTIMIZED specifies a commitment that
6741	// will only apply to memory optimized machines. Type
6742	// ACCELERATOR_OPTIMIZED specifies a commitment that will only apply to
6743	// accelerator optimized machines.
6744	//
6745	// Possible values:
6746	//   "ACCELERATOR_OPTIMIZED"
6747	//   "COMPUTE_OPTIMIZED"
6748	//   "GENERAL_PURPOSE"
6749	//   "GENERAL_PURPOSE_E2"
6750	//   "GENERAL_PURPOSE_N2"
6751	//   "GENERAL_PURPOSE_N2D"
6752	//   "GENERAL_PURPOSE_T2D"
6753	//   "MEMORY_OPTIMIZED"
6754	//   "TYPE_UNSPECIFIED"
6755	Type string `json:"type,omitempty"`
6756
6757	// ServerResponse contains the HTTP response code and headers from the
6758	// server.
6759	googleapi.ServerResponse `json:"-"`
6760
6761	// ForceSendFields is a list of field names (e.g. "Category") to
6762	// unconditionally include in API requests. By default, fields with
6763	// empty or default values are omitted from API requests. However, any
6764	// non-pointer, non-interface field appearing in ForceSendFields will be
6765	// sent to the server regardless of whether the field is empty or not.
6766	// This may be used to include empty fields in Patch requests.
6767	ForceSendFields []string `json:"-"`
6768
6769	// NullFields is a list of field names (e.g. "Category") to include in
6770	// API requests with the JSON null value. By default, fields with empty
6771	// values are omitted from API requests. However, any field with an
6772	// empty value appearing in NullFields will be sent to the server as
6773	// null. It is an error if a field in this list has a non-empty value.
6774	// This may be used to include null fields in Patch requests.
6775	NullFields []string `json:"-"`
6776}
6777
6778func (s *Commitment) MarshalJSON() ([]byte, error) {
6779	type NoMethod Commitment
6780	raw := NoMethod(*s)
6781	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6782}
6783
6784type CommitmentAggregatedList struct {
6785	// Id: [Output Only] Unique identifier for the resource; defined by the
6786	// server.
6787	Id string `json:"id,omitempty"`
6788
6789	// Items: A list of CommitmentsScopedList resources.
6790	Items map[string]CommitmentsScopedList `json:"items,omitempty"`
6791
6792	// Kind: [Output Only] Type of resource. Always
6793	// compute#commitmentAggregatedList for aggregated lists of commitments.
6794	Kind string `json:"kind,omitempty"`
6795
6796	// NextPageToken: [Output Only] This token allows you to get the next
6797	// page of results for list requests. If the number of results is larger
6798	// than maxResults, use the nextPageToken as a value for the query
6799	// parameter pageToken in the next list request. Subsequent list
6800	// requests will have their own nextPageToken to continue paging through
6801	// the results.
6802	NextPageToken string `json:"nextPageToken,omitempty"`
6803
6804	// SelfLink: [Output Only] Server-defined URL for this resource.
6805	SelfLink string `json:"selfLink,omitempty"`
6806
6807	// Unreachables: [Output Only] Unreachable resources.
6808	Unreachables []string `json:"unreachables,omitempty"`
6809
6810	// Warning: [Output Only] Informational warning message.
6811	Warning *CommitmentAggregatedListWarning `json:"warning,omitempty"`
6812
6813	// ServerResponse contains the HTTP response code and headers from the
6814	// server.
6815	googleapi.ServerResponse `json:"-"`
6816
6817	// ForceSendFields is a list of field names (e.g. "Id") to
6818	// unconditionally include in API requests. By default, fields with
6819	// empty or default values are omitted from API requests. However, any
6820	// non-pointer, non-interface field appearing in ForceSendFields will be
6821	// sent to the server regardless of whether the field is empty or not.
6822	// This may be used to include empty fields in Patch requests.
6823	ForceSendFields []string `json:"-"`
6824
6825	// NullFields is a list of field names (e.g. "Id") to include in API
6826	// requests with the JSON null value. By default, fields with empty
6827	// values are omitted from API requests. However, any field with an
6828	// empty value appearing in NullFields will be sent to the server as
6829	// null. It is an error if a field in this list has a non-empty value.
6830	// This may be used to include null fields in Patch requests.
6831	NullFields []string `json:"-"`
6832}
6833
6834func (s *CommitmentAggregatedList) MarshalJSON() ([]byte, error) {
6835	type NoMethod CommitmentAggregatedList
6836	raw := NoMethod(*s)
6837	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6838}
6839
6840// CommitmentAggregatedListWarning: [Output Only] Informational warning
6841// message.
6842type CommitmentAggregatedListWarning struct {
6843	// Code: [Output Only] A warning code, if applicable. For example,
6844	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6845	// the response.
6846	//
6847	// Possible values:
6848	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
6849	// changes made by a failed operation.
6850	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
6851	// created.
6852	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
6853	// resources has a type marked as deprecated
6854	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
6855	// that is larger than image size.
6856	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
6857	// resources has a type marked as experimental
6858	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
6859	// call
6860	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
6861	// overridden. Deprecated unused field.
6862	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
6863	// injected kernel, which is deprecated.
6864	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
6865	// exceedingly large number of resources
6866	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
6867	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
6868	// not assigned to an instance on the network.
6869	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
6870	// ip forward.
6871	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
6872	// refers to an instance that does not exist.
6873	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
6874	// URL refers to an instance that is not on the same network as the
6875	// route.
6876	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
6877	// have a status of RUNNING.
6878	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
6879	// continue the process despite the mentioned error.
6880	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
6881	// page.
6882	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
6883	// missing due to errors
6884	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
6885	// that requires a TOS they have not accepted.
6886	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
6887	// resource is in use.
6888	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
6889	// auto-delete could not be deleted because they were in use.
6890	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
6891	// ignored.
6892	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
6893	// instance group manager is valid as such, but its application does not
6894	// make a lot of sense, because it allows only single instance in
6895	// instance group.
6896	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
6897	// are present
6898	//   "UNREACHABLE" - A given scope cannot be reached.
6899	Code string `json:"code,omitempty"`
6900
6901	// Data: [Output Only] Metadata about this warning in key: value format.
6902	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
6903	// }
6904	Data []*CommitmentAggregatedListWarningData `json:"data,omitempty"`
6905
6906	// Message: [Output Only] A human-readable description of the warning
6907	// code.
6908	Message string `json:"message,omitempty"`
6909
6910	// ForceSendFields is a list of field names (e.g. "Code") to
6911	// unconditionally include in API requests. By default, fields with
6912	// empty or default values are omitted from API requests. However, any
6913	// non-pointer, non-interface field appearing in ForceSendFields will be
6914	// sent to the server regardless of whether the field is empty or not.
6915	// This may be used to include empty fields in Patch requests.
6916	ForceSendFields []string `json:"-"`
6917
6918	// NullFields is a list of field names (e.g. "Code") to include in API
6919	// requests with the JSON null value. By default, fields with empty
6920	// values are omitted from API requests. However, any field with an
6921	// empty value appearing in NullFields will be sent to the server as
6922	// null. It is an error if a field in this list has a non-empty value.
6923	// This may be used to include null fields in Patch requests.
6924	NullFields []string `json:"-"`
6925}
6926
6927func (s *CommitmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
6928	type NoMethod CommitmentAggregatedListWarning
6929	raw := NoMethod(*s)
6930	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6931}
6932
6933type CommitmentAggregatedListWarningData struct {
6934	// Key: [Output Only] A key that provides more detail on the warning
6935	// being returned. For example, for warnings where there are no results
6936	// in a list request for a particular zone, this key might be scope and
6937	// the key value might be the zone name. Other examples might be a key
6938	// indicating a deprecated resource and a suggested replacement, or a
6939	// warning about invalid network settings (for example, if an instance
6940	// attempts to perform IP forwarding but is not enabled for IP
6941	// forwarding).
6942	Key string `json:"key,omitempty"`
6943
6944	// Value: [Output Only] A warning data value corresponding to the key.
6945	Value string `json:"value,omitempty"`
6946
6947	// ForceSendFields is a list of field names (e.g. "Key") to
6948	// unconditionally include in API requests. By default, fields with
6949	// empty or default values are omitted from API requests. However, any
6950	// non-pointer, non-interface field appearing in ForceSendFields will be
6951	// sent to the server regardless of whether the field is empty or not.
6952	// This may be used to include empty fields in Patch requests.
6953	ForceSendFields []string `json:"-"`
6954
6955	// NullFields is a list of field names (e.g. "Key") to include in API
6956	// requests with the JSON null value. By default, fields with empty
6957	// values are omitted from API requests. However, any field with an
6958	// empty value appearing in NullFields will be sent to the server as
6959	// null. It is an error if a field in this list has a non-empty value.
6960	// This may be used to include null fields in Patch requests.
6961	NullFields []string `json:"-"`
6962}
6963
6964func (s *CommitmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
6965	type NoMethod CommitmentAggregatedListWarningData
6966	raw := NoMethod(*s)
6967	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6968}
6969
6970// CommitmentList: Contains a list of Commitment resources.
6971type CommitmentList struct {
6972	// Id: [Output Only] Unique identifier for the resource; defined by the
6973	// server.
6974	Id string `json:"id,omitempty"`
6975
6976	// Items: A list of Commitment resources.
6977	Items []*Commitment `json:"items,omitempty"`
6978
6979	// Kind: [Output Only] Type of resource. Always compute#commitmentList
6980	// for lists of commitments.
6981	Kind string `json:"kind,omitempty"`
6982
6983	// NextPageToken: [Output Only] This token allows you to get the next
6984	// page of results for list requests. If the number of results is larger
6985	// than maxResults, use the nextPageToken as a value for the query
6986	// parameter pageToken in the next list request. Subsequent list
6987	// requests will have their own nextPageToken to continue paging through
6988	// the results.
6989	NextPageToken string `json:"nextPageToken,omitempty"`
6990
6991	// SelfLink: [Output Only] Server-defined URL for this resource.
6992	SelfLink string `json:"selfLink,omitempty"`
6993
6994	// Warning: [Output Only] Informational warning message.
6995	Warning *CommitmentListWarning `json:"warning,omitempty"`
6996
6997	// ServerResponse contains the HTTP response code and headers from the
6998	// server.
6999	googleapi.ServerResponse `json:"-"`
7000
7001	// ForceSendFields is a list of field names (e.g. "Id") to
7002	// unconditionally include in API requests. By default, fields with
7003	// empty or default values are omitted from API requests. However, any
7004	// non-pointer, non-interface field appearing in ForceSendFields will be
7005	// sent to the server regardless of whether the field is empty or not.
7006	// This may be used to include empty fields in Patch requests.
7007	ForceSendFields []string `json:"-"`
7008
7009	// NullFields is a list of field names (e.g. "Id") to include in API
7010	// requests with the JSON null value. By default, fields with empty
7011	// values are omitted from API requests. However, any field with an
7012	// empty value appearing in NullFields will be sent to the server as
7013	// null. It is an error if a field in this list has a non-empty value.
7014	// This may be used to include null fields in Patch requests.
7015	NullFields []string `json:"-"`
7016}
7017
7018func (s *CommitmentList) MarshalJSON() ([]byte, error) {
7019	type NoMethod CommitmentList
7020	raw := NoMethod(*s)
7021	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7022}
7023
7024// CommitmentListWarning: [Output Only] Informational warning message.
7025type CommitmentListWarning struct {
7026	// Code: [Output Only] A warning code, if applicable. For example,
7027	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7028	// the response.
7029	//
7030	// Possible values:
7031	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
7032	// changes made by a failed operation.
7033	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
7034	// created.
7035	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
7036	// resources has a type marked as deprecated
7037	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
7038	// that is larger than image size.
7039	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
7040	// resources has a type marked as experimental
7041	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
7042	// call
7043	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
7044	// overridden. Deprecated unused field.
7045	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
7046	// injected kernel, which is deprecated.
7047	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
7048	// exceedingly large number of resources
7049	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
7050	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
7051	// not assigned to an instance on the network.
7052	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
7053	// ip forward.
7054	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
7055	// refers to an instance that does not exist.
7056	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
7057	// URL refers to an instance that is not on the same network as the
7058	// route.
7059	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
7060	// have a status of RUNNING.
7061	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
7062	// continue the process despite the mentioned error.
7063	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
7064	// page.
7065	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
7066	// missing due to errors
7067	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
7068	// that requires a TOS they have not accepted.
7069	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
7070	// resource is in use.
7071	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
7072	// auto-delete could not be deleted because they were in use.
7073	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
7074	// ignored.
7075	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
7076	// instance group manager is valid as such, but its application does not
7077	// make a lot of sense, because it allows only single instance in
7078	// instance group.
7079	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
7080	// are present
7081	//   "UNREACHABLE" - A given scope cannot be reached.
7082	Code string `json:"code,omitempty"`
7083
7084	// Data: [Output Only] Metadata about this warning in key: value format.
7085	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
7086	// }
7087	Data []*CommitmentListWarningData `json:"data,omitempty"`
7088
7089	// Message: [Output Only] A human-readable description of the warning
7090	// code.
7091	Message string `json:"message,omitempty"`
7092
7093	// ForceSendFields is a list of field names (e.g. "Code") to
7094	// unconditionally include in API requests. By default, fields with
7095	// empty or default values are omitted from API requests. However, any
7096	// non-pointer, non-interface field appearing in ForceSendFields will be
7097	// sent to the server regardless of whether the field is empty or not.
7098	// This may be used to include empty fields in Patch requests.
7099	ForceSendFields []string `json:"-"`
7100
7101	// NullFields is a list of field names (e.g. "Code") to include in API
7102	// requests with the JSON null value. By default, fields with empty
7103	// values are omitted from API requests. However, any field with an
7104	// empty value appearing in NullFields will be sent to the server as
7105	// null. It is an error if a field in this list has a non-empty value.
7106	// This may be used to include null fields in Patch requests.
7107	NullFields []string `json:"-"`
7108}
7109
7110func (s *CommitmentListWarning) MarshalJSON() ([]byte, error) {
7111	type NoMethod CommitmentListWarning
7112	raw := NoMethod(*s)
7113	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7114}
7115
7116type CommitmentListWarningData struct {
7117	// Key: [Output Only] A key that provides more detail on the warning
7118	// being returned. For example, for warnings where there are no results
7119	// in a list request for a particular zone, this key might be scope and
7120	// the key value might be the zone name. Other examples might be a key
7121	// indicating a deprecated resource and a suggested replacement, or a
7122	// warning about invalid network settings (for example, if an instance
7123	// attempts to perform IP forwarding but is not enabled for IP
7124	// forwarding).
7125	Key string `json:"key,omitempty"`
7126
7127	// Value: [Output Only] A warning data value corresponding to the key.
7128	Value string `json:"value,omitempty"`
7129
7130	// ForceSendFields is a list of field names (e.g. "Key") to
7131	// unconditionally include in API requests. By default, fields with
7132	// empty or default values are omitted from API requests. However, any
7133	// non-pointer, non-interface field appearing in ForceSendFields will be
7134	// sent to the server regardless of whether the field is empty or not.
7135	// This may be used to include empty fields in Patch requests.
7136	ForceSendFields []string `json:"-"`
7137
7138	// NullFields is a list of field names (e.g. "Key") to include in API
7139	// requests with the JSON null value. By default, fields with empty
7140	// values are omitted from API requests. However, any field with an
7141	// empty value appearing in NullFields will be sent to the server as
7142	// null. It is an error if a field in this list has a non-empty value.
7143	// This may be used to include null fields in Patch requests.
7144	NullFields []string `json:"-"`
7145}
7146
7147func (s *CommitmentListWarningData) MarshalJSON() ([]byte, error) {
7148	type NoMethod CommitmentListWarningData
7149	raw := NoMethod(*s)
7150	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7151}
7152
7153type CommitmentsScopedList struct {
7154	// Commitments: [Output Only] A list of commitments contained in this
7155	// scope.
7156	Commitments []*Commitment `json:"commitments,omitempty"`
7157
7158	// Warning: [Output Only] Informational warning which replaces the list
7159	// of commitments when the list is empty.
7160	Warning *CommitmentsScopedListWarning `json:"warning,omitempty"`
7161
7162	// ForceSendFields is a list of field names (e.g. "Commitments") to
7163	// unconditionally include in API requests. By default, fields with
7164	// empty or default values are omitted from API requests. However, any
7165	// non-pointer, non-interface field appearing in ForceSendFields will be
7166	// sent to the server regardless of whether the field is empty or not.
7167	// This may be used to include empty fields in Patch requests.
7168	ForceSendFields []string `json:"-"`
7169
7170	// NullFields is a list of field names (e.g. "Commitments") to include
7171	// in API requests with the JSON null value. By default, fields with
7172	// empty values are omitted from API requests. However, any field with
7173	// an empty value appearing in NullFields will be sent to the server as
7174	// null. It is an error if a field in this list has a non-empty value.
7175	// This may be used to include null fields in Patch requests.
7176	NullFields []string `json:"-"`
7177}
7178
7179func (s *CommitmentsScopedList) MarshalJSON() ([]byte, error) {
7180	type NoMethod CommitmentsScopedList
7181	raw := NoMethod(*s)
7182	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7183}
7184
7185// CommitmentsScopedListWarning: [Output Only] Informational warning
7186// which replaces the list of commitments when the list is empty.
7187type CommitmentsScopedListWarning struct {
7188	// Code: [Output Only] A warning code, if applicable. For example,
7189	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7190	// the response.
7191	//
7192	// Possible values:
7193	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
7194	// changes made by a failed operation.
7195	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
7196	// created.
7197	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
7198	// resources has a type marked as deprecated
7199	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
7200	// that is larger than image size.
7201	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
7202	// resources has a type marked as experimental
7203	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
7204	// call
7205	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
7206	// overridden. Deprecated unused field.
7207	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
7208	// injected kernel, which is deprecated.
7209	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
7210	// exceedingly large number of resources
7211	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
7212	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
7213	// not assigned to an instance on the network.
7214	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
7215	// ip forward.
7216	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
7217	// refers to an instance that does not exist.
7218	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
7219	// URL refers to an instance that is not on the same network as the
7220	// route.
7221	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
7222	// have a status of RUNNING.
7223	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
7224	// continue the process despite the mentioned error.
7225	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
7226	// page.
7227	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
7228	// missing due to errors
7229	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
7230	// that requires a TOS they have not accepted.
7231	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
7232	// resource is in use.
7233	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
7234	// auto-delete could not be deleted because they were in use.
7235	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
7236	// ignored.
7237	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
7238	// instance group manager is valid as such, but its application does not
7239	// make a lot of sense, because it allows only single instance in
7240	// instance group.
7241	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
7242	// are present
7243	//   "UNREACHABLE" - A given scope cannot be reached.
7244	Code string `json:"code,omitempty"`
7245
7246	// Data: [Output Only] Metadata about this warning in key: value format.
7247	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
7248	// }
7249	Data []*CommitmentsScopedListWarningData `json:"data,omitempty"`
7250
7251	// Message: [Output Only] A human-readable description of the warning
7252	// code.
7253	Message string `json:"message,omitempty"`
7254
7255	// ForceSendFields is a list of field names (e.g. "Code") to
7256	// unconditionally include in API requests. By default, fields with
7257	// empty or default values are omitted from API requests. However, any
7258	// non-pointer, non-interface field appearing in ForceSendFields will be
7259	// sent to the server regardless of whether the field is empty or not.
7260	// This may be used to include empty fields in Patch requests.
7261	ForceSendFields []string `json:"-"`
7262
7263	// NullFields is a list of field names (e.g. "Code") to include in API
7264	// requests with the JSON null value. By default, fields with empty
7265	// values are omitted from API requests. However, any field with an
7266	// empty value appearing in NullFields will be sent to the server as
7267	// null. It is an error if a field in this list has a non-empty value.
7268	// This may be used to include null fields in Patch requests.
7269	NullFields []string `json:"-"`
7270}
7271
7272func (s *CommitmentsScopedListWarning) MarshalJSON() ([]byte, error) {
7273	type NoMethod CommitmentsScopedListWarning
7274	raw := NoMethod(*s)
7275	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7276}
7277
7278type CommitmentsScopedListWarningData struct {
7279	// Key: [Output Only] A key that provides more detail on the warning
7280	// being returned. For example, for warnings where there are no results
7281	// in a list request for a particular zone, this key might be scope and
7282	// the key value might be the zone name. Other examples might be a key
7283	// indicating a deprecated resource and a suggested replacement, or a
7284	// warning about invalid network settings (for example, if an instance
7285	// attempts to perform IP forwarding but is not enabled for IP
7286	// forwarding).
7287	Key string `json:"key,omitempty"`
7288
7289	// Value: [Output Only] A warning data value corresponding to the key.
7290	Value string `json:"value,omitempty"`
7291
7292	// ForceSendFields is a list of field names (e.g. "Key") to
7293	// unconditionally include in API requests. By default, fields with
7294	// empty or default values are omitted from API requests. However, any
7295	// non-pointer, non-interface field appearing in ForceSendFields will be
7296	// sent to the server regardless of whether the field is empty or not.
7297	// This may be used to include empty fields in Patch requests.
7298	ForceSendFields []string `json:"-"`
7299
7300	// NullFields is a list of field names (e.g. "Key") to include in API
7301	// requests with the JSON null value. By default, fields with empty
7302	// values are omitted from API requests. However, any field with an
7303	// empty value appearing in NullFields will be sent to the server as
7304	// null. It is an error if a field in this list has a non-empty value.
7305	// This may be used to include null fields in Patch requests.
7306	NullFields []string `json:"-"`
7307}
7308
7309func (s *CommitmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
7310	type NoMethod CommitmentsScopedListWarningData
7311	raw := NoMethod(*s)
7312	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7313}
7314
7315// Condition: This is deprecated and has no effect. Do not use.
7316type Condition struct {
7317	// Iam: This is deprecated and has no effect. Do not use.
7318	//
7319	// Possible values:
7320	//   "APPROVER" - This is deprecated and has no effect. Do not use.
7321	//   "ATTRIBUTION" - This is deprecated and has no effect. Do not use.
7322	//   "AUTHORITY" - This is deprecated and has no effect. Do not use.
7323	//   "CREDENTIALS_TYPE" - This is deprecated and has no effect. Do not
7324	// use.
7325	//   "CREDS_ASSERTION" - This is deprecated and has no effect. Do not
7326	// use.
7327	//   "JUSTIFICATION_TYPE" - This is deprecated and has no effect. Do not
7328	// use.
7329	//   "NO_ATTR" - This is deprecated and has no effect. Do not use.
7330	//   "SECURITY_REALM" - This is deprecated and has no effect. Do not
7331	// use.
7332	Iam string `json:"iam,omitempty"`
7333
7334	// Op: This is deprecated and has no effect. Do not use.
7335	//
7336	// Possible values:
7337	//   "DISCHARGED" - This is deprecated and has no effect. Do not use.
7338	//   "EQUALS" - This is deprecated and has no effect. Do not use.
7339	//   "IN" - This is deprecated and has no effect. Do not use.
7340	//   "NOT_EQUALS" - This is deprecated and has no effect. Do not use.
7341	//   "NOT_IN" - This is deprecated and has no effect. Do not use.
7342	//   "NO_OP" - This is deprecated and has no effect. Do not use.
7343	Op string `json:"op,omitempty"`
7344
7345	// Svc: This is deprecated and has no effect. Do not use.
7346	Svc string `json:"svc,omitempty"`
7347
7348	// Sys: This is deprecated and has no effect. Do not use.
7349	//
7350	// Possible values:
7351	//   "IP" - This is deprecated and has no effect. Do not use.
7352	//   "NAME" - This is deprecated and has no effect. Do not use.
7353	//   "NO_ATTR" - This is deprecated and has no effect. Do not use.
7354	//   "REGION" - This is deprecated and has no effect. Do not use.
7355	//   "SERVICE" - This is deprecated and has no effect. Do not use.
7356	Sys string `json:"sys,omitempty"`
7357
7358	// Values: This is deprecated and has no effect. Do not use.
7359	Values []string `json:"values,omitempty"`
7360
7361	// ForceSendFields is a list of field names (e.g. "Iam") to
7362	// unconditionally include in API requests. By default, fields with
7363	// empty or default values are omitted from API requests. However, any
7364	// non-pointer, non-interface field appearing in ForceSendFields will be
7365	// sent to the server regardless of whether the field is empty or not.
7366	// This may be used to include empty fields in Patch requests.
7367	ForceSendFields []string `json:"-"`
7368
7369	// NullFields is a list of field names (e.g. "Iam") to include in API
7370	// requests with the JSON null value. By default, fields with empty
7371	// values are omitted from API requests. However, any field with an
7372	// empty value appearing in NullFields will be sent to the server as
7373	// null. It is an error if a field in this list has a non-empty value.
7374	// This may be used to include null fields in Patch requests.
7375	NullFields []string `json:"-"`
7376}
7377
7378func (s *Condition) MarshalJSON() ([]byte, error) {
7379	type NoMethod Condition
7380	raw := NoMethod(*s)
7381	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7382}
7383
7384// ConfidentialInstanceConfig: A set of Confidential Instance options.
7385type ConfidentialInstanceConfig struct {
7386	// EnableConfidentialCompute: Defines whether the instance should have
7387	// confidential compute enabled.
7388	EnableConfidentialCompute bool `json:"enableConfidentialCompute,omitempty"`
7389
7390	// ForceSendFields is a list of field names (e.g.
7391	// "EnableConfidentialCompute") to unconditionally include in API
7392	// requests. By default, fields with empty or default values are omitted
7393	// from API requests. However, any non-pointer, non-interface field
7394	// appearing in ForceSendFields will be sent to the server regardless of
7395	// whether the field is empty or not. This may be used to include empty
7396	// fields in Patch requests.
7397	ForceSendFields []string `json:"-"`
7398
7399	// NullFields is a list of field names (e.g.
7400	// "EnableConfidentialCompute") to include in API requests with the JSON
7401	// null value. By default, fields with empty values are omitted from API
7402	// requests. However, any field with an empty value appearing in
7403	// NullFields will be sent to the server as null. It is an error if a
7404	// field in this list has a non-empty value. This may be used to include
7405	// null fields in Patch requests.
7406	NullFields []string `json:"-"`
7407}
7408
7409func (s *ConfidentialInstanceConfig) MarshalJSON() ([]byte, error) {
7410	type NoMethod ConfidentialInstanceConfig
7411	raw := NoMethod(*s)
7412	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7413}
7414
7415// ConnectionDraining: Message containing connection draining
7416// configuration.
7417type ConnectionDraining struct {
7418	// DrainingTimeoutSec: Configures a duration timeout for existing
7419	// requests on a removed backend instance. For supported load balancers
7420	// and protocols, as described in Enabling connection draining.
7421	DrainingTimeoutSec int64 `json:"drainingTimeoutSec,omitempty"`
7422
7423	// ForceSendFields is a list of field names (e.g. "DrainingTimeoutSec")
7424	// to unconditionally include in API requests. By default, fields with
7425	// empty or default values are omitted from API requests. However, any
7426	// non-pointer, non-interface field appearing in ForceSendFields will be
7427	// sent to the server regardless of whether the field is empty or not.
7428	// This may be used to include empty fields in Patch requests.
7429	ForceSendFields []string `json:"-"`
7430
7431	// NullFields is a list of field names (e.g. "DrainingTimeoutSec") to
7432	// include in API requests with the JSON null value. By default, fields
7433	// with empty values are omitted from API requests. However, any field
7434	// with an empty value appearing in NullFields will be sent to the
7435	// server as null. It is an error if a field in this list has a
7436	// non-empty value. This may be used to include null fields in Patch
7437	// requests.
7438	NullFields []string `json:"-"`
7439}
7440
7441func (s *ConnectionDraining) MarshalJSON() ([]byte, error) {
7442	type NoMethod ConnectionDraining
7443	raw := NoMethod(*s)
7444	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7445}
7446
7447// ConsistentHashLoadBalancerSettings: This message defines settings for
7448// a consistent hash style load balancer.
7449type ConsistentHashLoadBalancerSettings struct {
7450	// HttpCookie: Hash is based on HTTP Cookie. This field describes a HTTP
7451	// cookie that will be used as the hash key for the consistent hash load
7452	// balancer. If the cookie is not present, it will be generated. This
7453	// field is applicable if the sessionAffinity is set to HTTP_COOKIE.
7454	HttpCookie *ConsistentHashLoadBalancerSettingsHttpCookie `json:"httpCookie,omitempty"`
7455
7456	// HttpHeaderName: The hash based on the value of the specified header
7457	// field. This field is applicable if the sessionAffinity is set to
7458	// HEADER_FIELD.
7459	HttpHeaderName string `json:"httpHeaderName,omitempty"`
7460
7461	// MinimumRingSize: The minimum number of virtual nodes to use for the
7462	// hash ring. Defaults to 1024. Larger ring sizes result in more
7463	// granular load distributions. If the number of hosts in the load
7464	// balancing pool is larger than the ring size, each host will be
7465	// assigned a single virtual node.
7466	MinimumRingSize int64 `json:"minimumRingSize,omitempty,string"`
7467
7468	// ForceSendFields is a list of field names (e.g. "HttpCookie") to
7469	// unconditionally include in API requests. By default, fields with
7470	// empty or default values are omitted from API requests. However, any
7471	// non-pointer, non-interface field appearing in ForceSendFields will be
7472	// sent to the server regardless of whether the field is empty or not.
7473	// This may be used to include empty fields in Patch requests.
7474	ForceSendFields []string `json:"-"`
7475
7476	// NullFields is a list of field names (e.g. "HttpCookie") to include in
7477	// API requests with the JSON null value. By default, fields with empty
7478	// values are omitted from API requests. However, any field with an
7479	// empty value appearing in NullFields will be sent to the server as
7480	// null. It is an error if a field in this list has a non-empty value.
7481	// This may be used to include null fields in Patch requests.
7482	NullFields []string `json:"-"`
7483}
7484
7485func (s *ConsistentHashLoadBalancerSettings) MarshalJSON() ([]byte, error) {
7486	type NoMethod ConsistentHashLoadBalancerSettings
7487	raw := NoMethod(*s)
7488	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7489}
7490
7491// ConsistentHashLoadBalancerSettingsHttpCookie: The information about
7492// the HTTP Cookie on which the hash function is based for load
7493// balancing policies that use a consistent hash.
7494type ConsistentHashLoadBalancerSettingsHttpCookie struct {
7495	// Name: Name of the cookie.
7496	Name string `json:"name,omitempty"`
7497
7498	// Path: Path to set for the cookie.
7499	Path string `json:"path,omitempty"`
7500
7501	// Ttl: Lifetime of the cookie.
7502	Ttl *Duration `json:"ttl,omitempty"`
7503
7504	// ForceSendFields is a list of field names (e.g. "Name") to
7505	// unconditionally include in API requests. By default, fields with
7506	// empty or default values are omitted from API requests. However, any
7507	// non-pointer, non-interface field appearing in ForceSendFields will be
7508	// sent to the server regardless of whether the field is empty or not.
7509	// This may be used to include empty fields in Patch requests.
7510	ForceSendFields []string `json:"-"`
7511
7512	// NullFields is a list of field names (e.g. "Name") to include in API
7513	// requests with the JSON null value. By default, fields with empty
7514	// values are omitted from API requests. However, any field with an
7515	// empty value appearing in NullFields will be sent to the server as
7516	// null. It is an error if a field in this list has a non-empty value.
7517	// This may be used to include null fields in Patch requests.
7518	NullFields []string `json:"-"`
7519}
7520
7521func (s *ConsistentHashLoadBalancerSettingsHttpCookie) MarshalJSON() ([]byte, error) {
7522	type NoMethod ConsistentHashLoadBalancerSettingsHttpCookie
7523	raw := NoMethod(*s)
7524	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7525}
7526
7527// CorsPolicy: The specification for allowing client side cross-origin
7528// requests. Please see W3C Recommendation for Cross Origin Resource
7529// Sharing
7530type CorsPolicy struct {
7531	// AllowCredentials: In response to a preflight request, setting this to
7532	// true indicates that the actual request can include user credentials.
7533	// This translates to the Access-Control-Allow-Credentials header.
7534	// Default is false.
7535	AllowCredentials bool `json:"allowCredentials,omitempty"`
7536
7537	// AllowHeaders: Specifies the content for the
7538	// Access-Control-Allow-Headers header.
7539	AllowHeaders []string `json:"allowHeaders,omitempty"`
7540
7541	// AllowMethods: Specifies the content for the
7542	// Access-Control-Allow-Methods header.
7543	AllowMethods []string `json:"allowMethods,omitempty"`
7544
7545	// AllowOriginRegexes: Specifies the regualar expression patterns that
7546	// match allowed origins. For regular expression grammar please see
7547	// github.com/google/re2/wiki/Syntax An origin is allowed if it matches
7548	// either an item in allowOrigins or an item in allowOriginRegexes.
7549	AllowOriginRegexes []string `json:"allowOriginRegexes,omitempty"`
7550
7551	// AllowOrigins: Specifies the list of origins that will be allowed to
7552	// do CORS requests. An origin is allowed if it matches either an item
7553	// in allowOrigins or an item in allowOriginRegexes.
7554	AllowOrigins []string `json:"allowOrigins,omitempty"`
7555
7556	// Disabled: If true, specifies the CORS policy is disabled. The default
7557	// value of false, which indicates that the CORS policy is in effect.
7558	Disabled bool `json:"disabled,omitempty"`
7559
7560	// ExposeHeaders: Specifies the content for the
7561	// Access-Control-Expose-Headers header.
7562	ExposeHeaders []string `json:"exposeHeaders,omitempty"`
7563
7564	// MaxAge: Specifies how long results of a preflight request can be
7565	// cached in seconds. This translates to the Access-Control-Max-Age
7566	// header.
7567	MaxAge int64 `json:"maxAge,omitempty"`
7568
7569	// ForceSendFields is a list of field names (e.g. "AllowCredentials") to
7570	// unconditionally include in API requests. By default, fields with
7571	// empty or default values are omitted from API requests. However, any
7572	// non-pointer, non-interface field appearing in ForceSendFields will be
7573	// sent to the server regardless of whether the field is empty or not.
7574	// This may be used to include empty fields in Patch requests.
7575	ForceSendFields []string `json:"-"`
7576
7577	// NullFields is a list of field names (e.g. "AllowCredentials") to
7578	// include in API requests with the JSON null value. By default, fields
7579	// with empty values are omitted from API requests. However, any field
7580	// with an empty value appearing in NullFields will be sent to the
7581	// server as null. It is an error if a field in this list has a
7582	// non-empty value. This may be used to include null fields in Patch
7583	// requests.
7584	NullFields []string `json:"-"`
7585}
7586
7587func (s *CorsPolicy) MarshalJSON() ([]byte, error) {
7588	type NoMethod CorsPolicy
7589	raw := NoMethod(*s)
7590	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7591}
7592
7593type CustomerEncryptionKey struct {
7594	// KmsKeyName: The name of the encryption key that is stored in Google
7595	// Cloud KMS. For example: "kmsKeyName":
7596	// "projects/kms_project_id/locations/region/keyRings/
7597	// key_region/cryptoKeys/key
7598	KmsKeyName string `json:"kmsKeyName,omitempty"`
7599
7600	// KmsKeyServiceAccount: The service account being used for the
7601	// encryption request for the given KMS key. If absent, the Compute
7602	// Engine default service account is used. For example:
7603	// "kmsKeyServiceAccount": "name@project_id.iam.gserviceaccount.com/
7604	KmsKeyServiceAccount string `json:"kmsKeyServiceAccount,omitempty"`
7605
7606	// RawKey: Specifies a 256-bit customer-supplied encryption key, encoded
7607	// in RFC 4648 base64 to either encrypt or decrypt this resource. You
7608	// can provide either the rawKey or the rsaEncryptedKey. For example:
7609	// "rawKey": "SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0="
7610	RawKey string `json:"rawKey,omitempty"`
7611
7612	// RsaEncryptedKey: Specifies an RFC 4648 base64 encoded, RSA-wrapped
7613	// 2048-bit customer-supplied encryption key to either encrypt or
7614	// decrypt this resource. You can provide either the rawKey or the
7615	// rsaEncryptedKey. For example: "rsaEncryptedKey":
7616	// "ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JF
7617	// H
7618	// z0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUi
7619	// FoD
7620	// D6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe=
7621	// =" The key must meet the following requirements before you can
7622	// provide it to Compute Engine: 1. The key is wrapped using a RSA
7623	// public key certificate provided by Google. 2. After being wrapped,
7624	// the key must be encoded in RFC 4648 base64 encoding. Gets the RSA
7625	// public key certificate provided by Google at:
7626	// https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
7627	RsaEncryptedKey string `json:"rsaEncryptedKey,omitempty"`
7628
7629	// Sha256: [Output only] The RFC 4648 base64 encoded SHA-256 hash of the
7630	// customer-supplied encryption key that protects this resource.
7631	Sha256 string `json:"sha256,omitempty"`
7632
7633	// ForceSendFields is a list of field names (e.g. "KmsKeyName") to
7634	// unconditionally include in API requests. By default, fields with
7635	// empty or default values are omitted from API requests. However, any
7636	// non-pointer, non-interface field appearing in ForceSendFields will be
7637	// sent to the server regardless of whether the field is empty or not.
7638	// This may be used to include empty fields in Patch requests.
7639	ForceSendFields []string `json:"-"`
7640
7641	// NullFields is a list of field names (e.g. "KmsKeyName") to include in
7642	// API requests with the JSON null value. By default, fields with empty
7643	// values are omitted from API requests. However, any field with an
7644	// empty value appearing in NullFields will be sent to the server as
7645	// null. It is an error if a field in this list has a non-empty value.
7646	// This may be used to include null fields in Patch requests.
7647	NullFields []string `json:"-"`
7648}
7649
7650func (s *CustomerEncryptionKey) MarshalJSON() ([]byte, error) {
7651	type NoMethod CustomerEncryptionKey
7652	raw := NoMethod(*s)
7653	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7654}
7655
7656type CustomerEncryptionKeyProtectedDisk struct {
7657	// DiskEncryptionKey: Decrypts data associated with the disk with a
7658	// customer-supplied encryption key.
7659	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
7660
7661	// Source: Specifies a valid partial or full URL to an existing
7662	// Persistent Disk resource. This field is only applicable for
7663	// persistent disks. For example: "source":
7664	// "/compute/v1/projects/project_id/zones/zone/disks/ disk_name
7665	Source string `json:"source,omitempty"`
7666
7667	// ForceSendFields is a list of field names (e.g. "DiskEncryptionKey")
7668	// to unconditionally include in API requests. By default, fields with
7669	// empty or default values are omitted from API requests. However, any
7670	// non-pointer, non-interface field appearing in ForceSendFields will be
7671	// sent to the server regardless of whether the field is empty or not.
7672	// This may be used to include empty fields in Patch requests.
7673	ForceSendFields []string `json:"-"`
7674
7675	// NullFields is a list of field names (e.g. "DiskEncryptionKey") to
7676	// include in API requests with the JSON null value. By default, fields
7677	// with empty values are omitted from API requests. However, any field
7678	// with an empty value appearing in NullFields will be sent to the
7679	// server as null. It is an error if a field in this list has a
7680	// non-empty value. This may be used to include null fields in Patch
7681	// requests.
7682	NullFields []string `json:"-"`
7683}
7684
7685func (s *CustomerEncryptionKeyProtectedDisk) MarshalJSON() ([]byte, error) {
7686	type NoMethod CustomerEncryptionKeyProtectedDisk
7687	raw := NoMethod(*s)
7688	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7689}
7690
7691// DeprecationStatus: Deprecation status for a public resource.
7692type DeprecationStatus struct {
7693	// Deleted: An optional RFC3339 timestamp on or after which the state of
7694	// this resource is intended to change to DELETED. This is only
7695	// informational and the status will not change unless the client
7696	// explicitly changes it.
7697	Deleted string `json:"deleted,omitempty"`
7698
7699	// Deprecated -- An optional RFC3339 timestamp on or after which the
7700	// state of this resource is intended to change to DEPRECATED. This is
7701	// only informational and the status will not change unless the client
7702	// explicitly changes it.
7703	Deprecated string `json:"deprecated,omitempty"`
7704
7705	// Obsolete: An optional RFC3339 timestamp on or after which the state
7706	// of this resource is intended to change to OBSOLETE. This is only
7707	// informational and the status will not change unless the client
7708	// explicitly changes it.
7709	Obsolete string `json:"obsolete,omitempty"`
7710
7711	// Replacement: The URL of the suggested replacement for a deprecated
7712	// resource. The suggested replacement resource must be the same kind of
7713	// resource as the deprecated resource.
7714	Replacement string `json:"replacement,omitempty"`
7715
7716	// State: The deprecation state of this resource. This can be ACTIVE,
7717	// DEPRECATED, OBSOLETE, or DELETED. Operations which communicate the
7718	// end of life date for an image, can use ACTIVE. Operations which
7719	// create a new resource using a DEPRECATED resource will return
7720	// successfully, but with a warning indicating the deprecated resource
7721	// and recommending its replacement. Operations which use OBSOLETE or
7722	// DELETED resources will be rejected and result in an error.
7723	//
7724	// Possible values:
7725	//   "ACTIVE"
7726	//   "DELETED"
7727	//   "DEPRECATED"
7728	//   "OBSOLETE"
7729	State string `json:"state,omitempty"`
7730
7731	// ForceSendFields is a list of field names (e.g. "Deleted") to
7732	// unconditionally include in API requests. By default, fields with
7733	// empty or default values are omitted from API requests. However, any
7734	// non-pointer, non-interface field appearing in ForceSendFields will be
7735	// sent to the server regardless of whether the field is empty or not.
7736	// This may be used to include empty fields in Patch requests.
7737	ForceSendFields []string `json:"-"`
7738
7739	// NullFields is a list of field names (e.g. "Deleted") to include in
7740	// API requests with the JSON null value. By default, fields with empty
7741	// values are omitted from API requests. However, any field with an
7742	// empty value appearing in NullFields will be sent to the server as
7743	// null. It is an error if a field in this list has a non-empty value.
7744	// This may be used to include null fields in Patch requests.
7745	NullFields []string `json:"-"`
7746}
7747
7748func (s *DeprecationStatus) MarshalJSON() ([]byte, error) {
7749	type NoMethod DeprecationStatus
7750	raw := NoMethod(*s)
7751	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7752}
7753
7754// Disk: Represents a Persistent Disk resource. Google Compute Engine
7755// has two Disk resources: * Zonal
7756// (/compute/docs/reference/rest/v1/disks) * Regional
7757// (/compute/docs/reference/rest/v1/regionDisks) Persistent disks are
7758// required for running your VM instances. Create both boot and non-boot
7759// (data) persistent disks. For more information, read Persistent Disks.
7760// For more storage options, read Storage options. The disks resource
7761// represents a zonal persistent disk. For more information, read Zonal
7762// persistent disks. The regionDisks resource represents a regional
7763// persistent disk. For more information, read Regional resources.
7764type Disk struct {
7765	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
7766	// format.
7767	CreationTimestamp string `json:"creationTimestamp,omitempty"`
7768
7769	// Description: An optional description of this resource. Provide this
7770	// property when you create the resource.
7771	Description string `json:"description,omitempty"`
7772
7773	// DiskEncryptionKey: Encrypts the disk using a customer-supplied
7774	// encryption key or a customer-managed encryption key. Encryption keys
7775	// do not protect access to metadata of the disk. After you encrypt a
7776	// disk with a customer-supplied key, you must provide the same key if
7777	// you use the disk later. For example, to create a disk snapshot, to
7778	// create a disk image, to create a machine image, or to attach the disk
7779	// to a virtual machine. After you encrypt a disk with a
7780	// customer-managed key, the diskEncryptionKey.kmsKeyName is set to a
7781	// key *version* name once the disk is created. The disk is encrypted
7782	// with this version of the key. In the response,
7783	// diskEncryptionKey.kmsKeyName appears in the following format:
7784	// "diskEncryptionKey.kmsKeyName":
7785	// "projects/kms_project_id/locations/region/keyRings/
7786	// key_region/cryptoKeys/key /cryptoKeysVersions/version If you do not
7787	// provide an encryption key when creating the disk, then the disk is
7788	// encrypted using an automatically generated key and you don't need to
7789	// provide a key to use the disk later.
7790	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
7791
7792	// GuestOsFeatures: A list of features to enable on the guest operating
7793	// system. Applicable only for bootable images. Read Enabling guest
7794	// operating system features to see a list of available options.
7795	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
7796
7797	// Id: [Output Only] The unique identifier for the resource. This
7798	// identifier is defined by the server.
7799	Id uint64 `json:"id,omitempty,string"`
7800
7801	// Kind: [Output Only] Type of the resource. Always compute#disk for
7802	// disks.
7803	Kind string `json:"kind,omitempty"`
7804
7805	// LabelFingerprint: A fingerprint for the labels being applied to this
7806	// disk, which is essentially a hash of the labels set used for
7807	// optimistic locking. The fingerprint is initially generated by Compute
7808	// Engine and changes after every request to modify or update labels.
7809	// You must always provide an up-to-date fingerprint hash in order to
7810	// update or change labels, otherwise the request will fail with error
7811	// 412 conditionNotMet. To see the latest fingerprint, make a get()
7812	// request to retrieve a disk.
7813	LabelFingerprint string `json:"labelFingerprint,omitempty"`
7814
7815	// Labels: Labels to apply to this disk. These can be later modified by
7816	// the setLabels method.
7817	Labels map[string]string `json:"labels,omitempty"`
7818
7819	// LastAttachTimestamp: [Output Only] Last attach timestamp in RFC3339
7820	// text format.
7821	LastAttachTimestamp string `json:"lastAttachTimestamp,omitempty"`
7822
7823	// LastDetachTimestamp: [Output Only] Last detach timestamp in RFC3339
7824	// text format.
7825	LastDetachTimestamp string `json:"lastDetachTimestamp,omitempty"`
7826
7827	// LicenseCodes: Integer license codes indicating which licenses are
7828	// attached to this disk.
7829	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
7830
7831	// Licenses: A list of publicly visible licenses. Reserved for Google's
7832	// use.
7833	Licenses []string `json:"licenses,omitempty"`
7834
7835	// LocationHint: An opaque location hint used to place the disk close to
7836	// other resources. This field is for use by internal tools that use the
7837	// public API.
7838	LocationHint string `json:"locationHint,omitempty"`
7839
7840	// Name: Name of the resource. Provided by the client when the resource
7841	// is created. The name must be 1-63 characters long, and comply with
7842	// RFC1035. Specifically, the name must be 1-63 characters long and
7843	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
7844	// the first character must be a lowercase letter, and all following
7845	// characters must be a dash, lowercase letter, or digit, except the
7846	// last character, which cannot be a dash.
7847	Name string `json:"name,omitempty"`
7848
7849	// Options: Internal use only.
7850	Options string `json:"options,omitempty"`
7851
7852	// PhysicalBlockSizeBytes: Physical block size of the persistent disk,
7853	// in bytes. If not present in a request, a default value is used. The
7854	// currently supported size is 4096, other sizes may be added in the
7855	// future. If an unsupported value is requested, the error message will
7856	// list the supported values for the caller's project.
7857	PhysicalBlockSizeBytes int64 `json:"physicalBlockSizeBytes,omitempty,string"`
7858
7859	// ProvisionedIops: Indicates how many IOPS to provision for the disk.
7860	// This sets the number of I/O operations per second that the disk can
7861	// handle. Values must be between 10,000 and 120,000. For more details,
7862	// see the Extreme persistent disk documentation.
7863	ProvisionedIops int64 `json:"provisionedIops,omitempty,string"`
7864
7865	// Region: [Output Only] URL of the region where the disk resides. Only
7866	// applicable for regional resources. You must specify this field as
7867	// part of the HTTP request URL. It is not settable as a field in the
7868	// request body.
7869	Region string `json:"region,omitempty"`
7870
7871	// ReplicaZones: URLs of the zones where the disk should be replicated
7872	// to. Only applicable for regional resources.
7873	ReplicaZones []string `json:"replicaZones,omitempty"`
7874
7875	// ResourcePolicies: Resource policies applied to this disk for
7876	// automatic snapshot creations.
7877	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
7878
7879	// SatisfiesPzs: [Output Only] Reserved for future use.
7880	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
7881
7882	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
7883	// resource.
7884	SelfLink string `json:"selfLink,omitempty"`
7885
7886	// SizeGb: Size, in GB, of the persistent disk. You can specify this
7887	// field when creating a persistent disk using the sourceImage,
7888	// sourceSnapshot, or sourceDisk parameter, or specify it alone to
7889	// create an empty persistent disk. If you specify this field along with
7890	// a source, the value of sizeGb must not be less than the size of the
7891	// source. Acceptable values are 1 to 65536, inclusive.
7892	SizeGb int64 `json:"sizeGb,omitempty,string"`
7893
7894	// SourceDisk: The source disk used to create this disk. You can provide
7895	// this as a partial or full URL to the resource. For example, the
7896	// following are valid values: -
7897	// https://www.googleapis.com/compute/v1/projects/project/zones/zone
7898	// /disks/disk -
7899	// https://www.googleapis.com/compute/v1/projects/project/regions/region
7900	// /disks/disk - projects/project/zones/zone/disks/disk -
7901	// projects/project/regions/region/disks/disk - zones/zone/disks/disk -
7902	// regions/region/disks/disk
7903	SourceDisk string `json:"sourceDisk,omitempty"`
7904
7905	// SourceDiskId: [Output Only] The unique ID of the disk used to create
7906	// this disk. This value identifies the exact disk that was used to
7907	// create this persistent disk. For example, if you created the
7908	// persistent disk from a disk that was later deleted and recreated
7909	// under the same name, the source disk ID would identify the exact
7910	// version of the disk that was used.
7911	SourceDiskId string `json:"sourceDiskId,omitempty"`
7912
7913	// SourceImage: The source image used to create this disk. If the source
7914	// image is deleted, this field will not be set. To create a disk with
7915	// one of the public operating system images, specify the image by its
7916	// family name. For example, specify family/debian-9 to use the latest
7917	// Debian 9 image: projects/debian-cloud/global/images/family/debian-9
7918	// Alternatively, use a specific version of a public operating system
7919	// image: projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD
7920	// To create a disk with a custom image that you created, specify the
7921	// image name in the following format: global/images/my-custom-image You
7922	// can also specify a custom image by its image family, which returns
7923	// the latest version of the image in that family. Replace the image
7924	// name with family/family-name: global/images/family/my-image-family
7925	SourceImage string `json:"sourceImage,omitempty"`
7926
7927	// SourceImageEncryptionKey: The customer-supplied encryption key of the
7928	// source image. Required if the source image is protected by a
7929	// customer-supplied encryption key.
7930	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
7931
7932	// SourceImageId: [Output Only] The ID value of the image used to create
7933	// this disk. This value identifies the exact image that was used to
7934	// create this persistent disk. For example, if you created the
7935	// persistent disk from an image that was later deleted and recreated
7936	// under the same name, the source image ID would identify the exact
7937	// version of the image that was used.
7938	SourceImageId string `json:"sourceImageId,omitempty"`
7939
7940	// SourceSnapshot: The source snapshot used to create this disk. You can
7941	// provide this as a partial or full URL to the resource. For example,
7942	// the following are valid values: -
7943	// https://www.googleapis.com/compute/v1/projects/project
7944	// /global/snapshots/snapshot -
7945	// projects/project/global/snapshots/snapshot -
7946	// global/snapshots/snapshot
7947	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
7948
7949	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
7950	// the source snapshot. Required if the source snapshot is protected by
7951	// a customer-supplied encryption key.
7952	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
7953
7954	// SourceSnapshotId: [Output Only] The unique ID of the snapshot used to
7955	// create this disk. This value identifies the exact snapshot that was
7956	// used to create this persistent disk. For example, if you created the
7957	// persistent disk from a snapshot that was later deleted and recreated
7958	// under the same name, the source snapshot ID would identify the exact
7959	// version of the snapshot that was used.
7960	SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
7961
7962	// SourceStorageObject: The full Google Cloud Storage URI where the disk
7963	// image is stored. This file must be a gzip-compressed tarball whose
7964	// name ends in .tar.gz or virtual machine disk whose name ends in vmdk.
7965	// Valid URIs may start with gs:// or https://storage.googleapis.com/.
7966	// This flag is not optimized for creating multiple disks from a source
7967	// storage object. To create many disks from a source storage object,
7968	// use gcloud compute images import instead.
7969	SourceStorageObject string `json:"sourceStorageObject,omitempty"`
7970
7971	// Status: [Output Only] The status of disk creation. - CREATING: Disk
7972	// is provisioning. - RESTORING: Source data is being copied into the
7973	// disk. - FAILED: Disk creation failed. - READY: Disk is ready for use.
7974	// - DELETING: Disk is deleting.
7975	//
7976	// Possible values:
7977	//   "CREATING" - Disk is provisioning
7978	//   "DELETING" - Disk is deleting.
7979	//   "FAILED" - Disk creation failed.
7980	//   "READY" - Disk is ready for use.
7981	//   "RESTORING" - Source data is being copied into the disk.
7982	Status string `json:"status,omitempty"`
7983
7984	// Type: URL of the disk type resource describing which disk type to use
7985	// to create the disk. Provide this when creating the disk. For example:
7986	// projects/project /zones/zone/diskTypes/pd-ssd . See Persistent disk
7987	// types.
7988	Type string `json:"type,omitempty"`
7989
7990	// Users: [Output Only] Links to the users of the disk (attached
7991	// instances) in form: projects/project/zones/zone/instances/instance
7992	Users []string `json:"users,omitempty"`
7993
7994	// Zone: [Output Only] URL of the zone where the disk resides. You must
7995	// specify this field as part of the HTTP request URL. It is not
7996	// settable as a field in the request body.
7997	Zone string `json:"zone,omitempty"`
7998
7999	// ServerResponse contains the HTTP response code and headers from the
8000	// server.
8001	googleapi.ServerResponse `json:"-"`
8002
8003	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
8004	// to unconditionally include in API requests. By default, fields with
8005	// empty or default values are omitted from API requests. However, any
8006	// non-pointer, non-interface field appearing in ForceSendFields will be
8007	// sent to the server regardless of whether the field is empty or not.
8008	// This may be used to include empty fields in Patch requests.
8009	ForceSendFields []string `json:"-"`
8010
8011	// NullFields is a list of field names (e.g. "CreationTimestamp") to
8012	// include in API requests with the JSON null value. By default, fields
8013	// with empty values are omitted from API requests. However, any field
8014	// with an empty value appearing in NullFields will be sent to the
8015	// server as null. It is an error if a field in this list has a
8016	// non-empty value. This may be used to include null fields in Patch
8017	// requests.
8018	NullFields []string `json:"-"`
8019}
8020
8021func (s *Disk) MarshalJSON() ([]byte, error) {
8022	type NoMethod Disk
8023	raw := NoMethod(*s)
8024	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8025}
8026
8027type DiskAggregatedList struct {
8028	// Id: [Output Only] Unique identifier for the resource; defined by the
8029	// server.
8030	Id string `json:"id,omitempty"`
8031
8032	// Items: A list of DisksScopedList resources.
8033	Items map[string]DisksScopedList `json:"items,omitempty"`
8034
8035	// Kind: [Output Only] Type of resource. Always
8036	// compute#diskAggregatedList for aggregated lists of persistent disks.
8037	Kind string `json:"kind,omitempty"`
8038
8039	// NextPageToken: [Output Only] This token allows you to get the next
8040	// page of results for list requests. If the number of results is larger
8041	// than maxResults, use the nextPageToken as a value for the query
8042	// parameter pageToken in the next list request. Subsequent list
8043	// requests will have their own nextPageToken to continue paging through
8044	// the results.
8045	NextPageToken string `json:"nextPageToken,omitempty"`
8046
8047	// SelfLink: [Output Only] Server-defined URL for this resource.
8048	SelfLink string `json:"selfLink,omitempty"`
8049
8050	// Unreachables: [Output Only] Unreachable resources.
8051	Unreachables []string `json:"unreachables,omitempty"`
8052
8053	// Warning: [Output Only] Informational warning message.
8054	Warning *DiskAggregatedListWarning `json:"warning,omitempty"`
8055
8056	// ServerResponse contains the HTTP response code and headers from the
8057	// server.
8058	googleapi.ServerResponse `json:"-"`
8059
8060	// ForceSendFields is a list of field names (e.g. "Id") to
8061	// unconditionally include in API requests. By default, fields with
8062	// empty or default values are omitted from API requests. However, any
8063	// non-pointer, non-interface field appearing in ForceSendFields will be
8064	// sent to the server regardless of whether the field is empty or not.
8065	// This may be used to include empty fields in Patch requests.
8066	ForceSendFields []string `json:"-"`
8067
8068	// NullFields is a list of field names (e.g. "Id") to include in API
8069	// requests with the JSON null value. By default, fields with empty
8070	// values are omitted from API requests. However, any field with an
8071	// empty value appearing in NullFields will be sent to the server as
8072	// null. It is an error if a field in this list has a non-empty value.
8073	// This may be used to include null fields in Patch requests.
8074	NullFields []string `json:"-"`
8075}
8076
8077func (s *DiskAggregatedList) MarshalJSON() ([]byte, error) {
8078	type NoMethod DiskAggregatedList
8079	raw := NoMethod(*s)
8080	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8081}
8082
8083// DiskAggregatedListWarning: [Output Only] Informational warning
8084// message.
8085type DiskAggregatedListWarning struct {
8086	// Code: [Output Only] A warning code, if applicable. For example,
8087	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8088	// the response.
8089	//
8090	// Possible values:
8091	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
8092	// changes made by a failed operation.
8093	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
8094	// created.
8095	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
8096	// resources has a type marked as deprecated
8097	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
8098	// that is larger than image size.
8099	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
8100	// resources has a type marked as experimental
8101	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
8102	// call
8103	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
8104	// overridden. Deprecated unused field.
8105	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
8106	// injected kernel, which is deprecated.
8107	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
8108	// exceedingly large number of resources
8109	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
8110	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
8111	// not assigned to an instance on the network.
8112	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
8113	// ip forward.
8114	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
8115	// refers to an instance that does not exist.
8116	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
8117	// URL refers to an instance that is not on the same network as the
8118	// route.
8119	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
8120	// have a status of RUNNING.
8121	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
8122	// continue the process despite the mentioned error.
8123	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
8124	// page.
8125	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
8126	// missing due to errors
8127	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
8128	// that requires a TOS they have not accepted.
8129	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
8130	// resource is in use.
8131	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
8132	// auto-delete could not be deleted because they were in use.
8133	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
8134	// ignored.
8135	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
8136	// instance group manager is valid as such, but its application does not
8137	// make a lot of sense, because it allows only single instance in
8138	// instance group.
8139	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
8140	// are present
8141	//   "UNREACHABLE" - A given scope cannot be reached.
8142	Code string `json:"code,omitempty"`
8143
8144	// Data: [Output Only] Metadata about this warning in key: value format.
8145	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
8146	// }
8147	Data []*DiskAggregatedListWarningData `json:"data,omitempty"`
8148
8149	// Message: [Output Only] A human-readable description of the warning
8150	// code.
8151	Message string `json:"message,omitempty"`
8152
8153	// ForceSendFields is a list of field names (e.g. "Code") to
8154	// unconditionally include in API requests. By default, fields with
8155	// empty or default values are omitted from API requests. However, any
8156	// non-pointer, non-interface field appearing in ForceSendFields will be
8157	// sent to the server regardless of whether the field is empty or not.
8158	// This may be used to include empty fields in Patch requests.
8159	ForceSendFields []string `json:"-"`
8160
8161	// NullFields is a list of field names (e.g. "Code") to include in API
8162	// requests with the JSON null value. By default, fields with empty
8163	// values are omitted from API requests. However, any field with an
8164	// empty value appearing in NullFields will be sent to the server as
8165	// null. It is an error if a field in this list has a non-empty value.
8166	// This may be used to include null fields in Patch requests.
8167	NullFields []string `json:"-"`
8168}
8169
8170func (s *DiskAggregatedListWarning) MarshalJSON() ([]byte, error) {
8171	type NoMethod DiskAggregatedListWarning
8172	raw := NoMethod(*s)
8173	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8174}
8175
8176type DiskAggregatedListWarningData struct {
8177	// Key: [Output Only] A key that provides more detail on the warning
8178	// being returned. For example, for warnings where there are no results
8179	// in a list request for a particular zone, this key might be scope and
8180	// the key value might be the zone name. Other examples might be a key
8181	// indicating a deprecated resource and a suggested replacement, or a
8182	// warning about invalid network settings (for example, if an instance
8183	// attempts to perform IP forwarding but is not enabled for IP
8184	// forwarding).
8185	Key string `json:"key,omitempty"`
8186
8187	// Value: [Output Only] A warning data value corresponding to the key.
8188	Value string `json:"value,omitempty"`
8189
8190	// ForceSendFields is a list of field names (e.g. "Key") to
8191	// unconditionally include in API requests. By default, fields with
8192	// empty or default values are omitted from API requests. However, any
8193	// non-pointer, non-interface field appearing in ForceSendFields will be
8194	// sent to the server regardless of whether the field is empty or not.
8195	// This may be used to include empty fields in Patch requests.
8196	ForceSendFields []string `json:"-"`
8197
8198	// NullFields is a list of field names (e.g. "Key") to include in API
8199	// requests with the JSON null value. By default, fields with empty
8200	// values are omitted from API requests. However, any field with an
8201	// empty value appearing in NullFields will be sent to the server as
8202	// null. It is an error if a field in this list has a non-empty value.
8203	// This may be used to include null fields in Patch requests.
8204	NullFields []string `json:"-"`
8205}
8206
8207func (s *DiskAggregatedListWarningData) MarshalJSON() ([]byte, error) {
8208	type NoMethod DiskAggregatedListWarningData
8209	raw := NoMethod(*s)
8210	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8211}
8212
8213// DiskInstantiationConfig: A specification of the desired way to
8214// instantiate a disk in the instance template when its created from a
8215// source instance.
8216type DiskInstantiationConfig struct {
8217	// AutoDelete: Specifies whether the disk will be auto-deleted when the
8218	// instance is deleted (but not when the disk is detached from the
8219	// instance).
8220	AutoDelete bool `json:"autoDelete,omitempty"`
8221
8222	// CustomImage: The custom source image to be used to restore this disk
8223	// when instantiating this instance template.
8224	CustomImage string `json:"customImage,omitempty"`
8225
8226	// DeviceName: Specifies the device name of the disk to which the
8227	// configurations apply to.
8228	DeviceName string `json:"deviceName,omitempty"`
8229
8230	// InstantiateFrom: Specifies whether to include the disk and what image
8231	// to use. Possible values are: - source-image: to use the same image
8232	// that was used to create the source instance's corresponding disk.
8233	// Applicable to the boot disk and additional read-write disks. -
8234	// source-image-family: to use the same image family that was used to
8235	// create the source instance's corresponding disk. Applicable to the
8236	// boot disk and additional read-write disks. - custom-image: to use a
8237	// user-provided image url for disk creation. Applicable to the boot
8238	// disk and additional read-write disks. - attach-read-only: to attach a
8239	// read-only disk. Applicable to read-only disks. - do-not-include: to
8240	// exclude a disk from the template. Applicable to additional read-write
8241	// disks, local SSDs, and read-only disks.
8242	//
8243	// Possible values:
8244	//   "ATTACH_READ_ONLY" - Attach the existing disk in read-only mode.
8245	// The request will fail if the disk was attached in read-write mode on
8246	// the source instance. Applicable to: read-only disks.
8247	//   "BLANK" - Create a blank disk. The disk will be created
8248	// unformatted. Applicable to: additional read-write disks, local SSDs.
8249	//   "CUSTOM_IMAGE" - Use the custom image specified in the custom_image
8250	// field. Applicable to: boot disk, additional read-write disks.
8251	//   "DEFAULT" - Use the default instantiation option for the
8252	// corresponding type of disk. For boot disk and any other R/W disks,
8253	// new custom images will be created from each disk. For read-only
8254	// disks, they will be attached in read-only mode. Local SSD disks will
8255	// be created as blank volumes.
8256	//   "DO_NOT_INCLUDE" - Do not include the disk in the instance
8257	// template. Applicable to: additional read-write disks, local SSDs,
8258	// read-only disks.
8259	//   "SOURCE_IMAGE" - Use the same source image used for creation of the
8260	// source instance's corresponding disk. The request will fail if the
8261	// source VM's disk was created from a snapshot. Applicable to: boot
8262	// disk, additional read-write disks.
8263	//   "SOURCE_IMAGE_FAMILY" - Use the same source image family used for
8264	// creation of the source instance's corresponding disk. The request
8265	// will fail if the source image of the source disk does not belong to
8266	// any image family. Applicable to: boot disk, additional read-write
8267	// disks.
8268	InstantiateFrom string `json:"instantiateFrom,omitempty"`
8269
8270	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
8271	// unconditionally include in API requests. By default, fields with
8272	// empty or default values are omitted from API requests. However, any
8273	// non-pointer, non-interface field appearing in ForceSendFields will be
8274	// sent to the server regardless of whether the field is empty or not.
8275	// This may be used to include empty fields in Patch requests.
8276	ForceSendFields []string `json:"-"`
8277
8278	// NullFields is a list of field names (e.g. "AutoDelete") to include in
8279	// API requests with the JSON null value. By default, fields with empty
8280	// values are omitted from API requests. However, any field with an
8281	// empty value appearing in NullFields will be sent to the server as
8282	// null. It is an error if a field in this list has a non-empty value.
8283	// This may be used to include null fields in Patch requests.
8284	NullFields []string `json:"-"`
8285}
8286
8287func (s *DiskInstantiationConfig) MarshalJSON() ([]byte, error) {
8288	type NoMethod DiskInstantiationConfig
8289	raw := NoMethod(*s)
8290	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8291}
8292
8293// DiskList: A list of Disk resources.
8294type DiskList struct {
8295	// Id: [Output Only] Unique identifier for the resource; defined by the
8296	// server.
8297	Id string `json:"id,omitempty"`
8298
8299	// Items: A list of Disk resources.
8300	Items []*Disk `json:"items,omitempty"`
8301
8302	// Kind: [Output Only] Type of resource. Always compute#diskList for
8303	// lists of disks.
8304	Kind string `json:"kind,omitempty"`
8305
8306	// NextPageToken: [Output Only] This token allows you to get the next
8307	// page of results for list requests. If the number of results is larger
8308	// than maxResults, use the nextPageToken as a value for the query
8309	// parameter pageToken in the next list request. Subsequent list
8310	// requests will have their own nextPageToken to continue paging through
8311	// the results.
8312	NextPageToken string `json:"nextPageToken,omitempty"`
8313
8314	// SelfLink: [Output Only] Server-defined URL for this resource.
8315	SelfLink string `json:"selfLink,omitempty"`
8316
8317	// Warning: [Output Only] Informational warning message.
8318	Warning *DiskListWarning `json:"warning,omitempty"`
8319
8320	// ServerResponse contains the HTTP response code and headers from the
8321	// server.
8322	googleapi.ServerResponse `json:"-"`
8323
8324	// ForceSendFields is a list of field names (e.g. "Id") to
8325	// unconditionally include in API requests. By default, fields with
8326	// empty or default values are omitted from API requests. However, any
8327	// non-pointer, non-interface field appearing in ForceSendFields will be
8328	// sent to the server regardless of whether the field is empty or not.
8329	// This may be used to include empty fields in Patch requests.
8330	ForceSendFields []string `json:"-"`
8331
8332	// NullFields is a list of field names (e.g. "Id") to include in API
8333	// requests with the JSON null value. By default, fields with empty
8334	// values are omitted from API requests. However, any field with an
8335	// empty value appearing in NullFields will be sent to the server as
8336	// null. It is an error if a field in this list has a non-empty value.
8337	// This may be used to include null fields in Patch requests.
8338	NullFields []string `json:"-"`
8339}
8340
8341func (s *DiskList) MarshalJSON() ([]byte, error) {
8342	type NoMethod DiskList
8343	raw := NoMethod(*s)
8344	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8345}
8346
8347// DiskListWarning: [Output Only] Informational warning message.
8348type DiskListWarning struct {
8349	// Code: [Output Only] A warning code, if applicable. For example,
8350	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8351	// the response.
8352	//
8353	// Possible values:
8354	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
8355	// changes made by a failed operation.
8356	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
8357	// created.
8358	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
8359	// resources has a type marked as deprecated
8360	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
8361	// that is larger than image size.
8362	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
8363	// resources has a type marked as experimental
8364	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
8365	// call
8366	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
8367	// overridden. Deprecated unused field.
8368	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
8369	// injected kernel, which is deprecated.
8370	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
8371	// exceedingly large number of resources
8372	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
8373	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
8374	// not assigned to an instance on the network.
8375	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
8376	// ip forward.
8377	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
8378	// refers to an instance that does not exist.
8379	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
8380	// URL refers to an instance that is not on the same network as the
8381	// route.
8382	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
8383	// have a status of RUNNING.
8384	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
8385	// continue the process despite the mentioned error.
8386	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
8387	// page.
8388	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
8389	// missing due to errors
8390	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
8391	// that requires a TOS they have not accepted.
8392	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
8393	// resource is in use.
8394	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
8395	// auto-delete could not be deleted because they were in use.
8396	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
8397	// ignored.
8398	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
8399	// instance group manager is valid as such, but its application does not
8400	// make a lot of sense, because it allows only single instance in
8401	// instance group.
8402	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
8403	// are present
8404	//   "UNREACHABLE" - A given scope cannot be reached.
8405	Code string `json:"code,omitempty"`
8406
8407	// Data: [Output Only] Metadata about this warning in key: value format.
8408	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
8409	// }
8410	Data []*DiskListWarningData `json:"data,omitempty"`
8411
8412	// Message: [Output Only] A human-readable description of the warning
8413	// code.
8414	Message string `json:"message,omitempty"`
8415
8416	// ForceSendFields is a list of field names (e.g. "Code") to
8417	// unconditionally include in API requests. By default, fields with
8418	// empty or default values are omitted from API requests. However, any
8419	// non-pointer, non-interface field appearing in ForceSendFields will be
8420	// sent to the server regardless of whether the field is empty or not.
8421	// This may be used to include empty fields in Patch requests.
8422	ForceSendFields []string `json:"-"`
8423
8424	// NullFields is a list of field names (e.g. "Code") to include in API
8425	// requests with the JSON null value. By default, fields with empty
8426	// values are omitted from API requests. However, any field with an
8427	// empty value appearing in NullFields will be sent to the server as
8428	// null. It is an error if a field in this list has a non-empty value.
8429	// This may be used to include null fields in Patch requests.
8430	NullFields []string `json:"-"`
8431}
8432
8433func (s *DiskListWarning) MarshalJSON() ([]byte, error) {
8434	type NoMethod DiskListWarning
8435	raw := NoMethod(*s)
8436	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8437}
8438
8439type DiskListWarningData struct {
8440	// Key: [Output Only] A key that provides more detail on the warning
8441	// being returned. For example, for warnings where there are no results
8442	// in a list request for a particular zone, this key might be scope and
8443	// the key value might be the zone name. Other examples might be a key
8444	// indicating a deprecated resource and a suggested replacement, or a
8445	// warning about invalid network settings (for example, if an instance
8446	// attempts to perform IP forwarding but is not enabled for IP
8447	// forwarding).
8448	Key string `json:"key,omitempty"`
8449
8450	// Value: [Output Only] A warning data value corresponding to the key.
8451	Value string `json:"value,omitempty"`
8452
8453	// ForceSendFields is a list of field names (e.g. "Key") to
8454	// unconditionally include in API requests. By default, fields with
8455	// empty or default values are omitted from API requests. However, any
8456	// non-pointer, non-interface field appearing in ForceSendFields will be
8457	// sent to the server regardless of whether the field is empty or not.
8458	// This may be used to include empty fields in Patch requests.
8459	ForceSendFields []string `json:"-"`
8460
8461	// NullFields is a list of field names (e.g. "Key") to include in API
8462	// requests with the JSON null value. By default, fields with empty
8463	// values are omitted from API requests. However, any field with an
8464	// empty value appearing in NullFields will be sent to the server as
8465	// null. It is an error if a field in this list has a non-empty value.
8466	// This may be used to include null fields in Patch requests.
8467	NullFields []string `json:"-"`
8468}
8469
8470func (s *DiskListWarningData) MarshalJSON() ([]byte, error) {
8471	type NoMethod DiskListWarningData
8472	raw := NoMethod(*s)
8473	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8474}
8475
8476type DiskMoveRequest struct {
8477	// DestinationZone: The URL of the destination zone to move the disk.
8478	// This can be a full or partial URL. For example, the following are all
8479	// valid URLs to a zone: -
8480	// https://www.googleapis.com/compute/v1/projects/project/zones/zone -
8481	// projects/project/zones/zone - zones/zone
8482	DestinationZone string `json:"destinationZone,omitempty"`
8483
8484	// TargetDisk: The URL of the target disk to move. This can be a full or
8485	// partial URL. For example, the following are all valid URLs to a disk:
8486	// - https://www.googleapis.com/compute/v1/projects/project/zones/zone
8487	// /disks/disk - projects/project/zones/zone/disks/disk -
8488	// zones/zone/disks/disk
8489	TargetDisk string `json:"targetDisk,omitempty"`
8490
8491	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
8492	// unconditionally include in API requests. By default, fields with
8493	// empty or default values are omitted from API requests. However, any
8494	// non-pointer, non-interface field appearing in ForceSendFields will be
8495	// sent to the server regardless of whether the field is empty or not.
8496	// This may be used to include empty fields in Patch requests.
8497	ForceSendFields []string `json:"-"`
8498
8499	// NullFields is a list of field names (e.g. "DestinationZone") to
8500	// include in API requests with the JSON null value. By default, fields
8501	// with empty values are omitted from API requests. However, any field
8502	// with an empty value appearing in NullFields will be sent to the
8503	// server as null. It is an error if a field in this list has a
8504	// non-empty value. This may be used to include null fields in Patch
8505	// requests.
8506	NullFields []string `json:"-"`
8507}
8508
8509func (s *DiskMoveRequest) MarshalJSON() ([]byte, error) {
8510	type NoMethod DiskMoveRequest
8511	raw := NoMethod(*s)
8512	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8513}
8514
8515// DiskType: Represents a Disk Type resource. Google Compute Engine has
8516// two Disk Type resources: * Regional
8517// (/compute/docs/reference/rest/v1/regionDiskTypes) * Zonal
8518// (/compute/docs/reference/rest/v1/diskTypes) You can choose from a
8519// variety of disk types based on your needs. For more information, read
8520// Storage options. The diskTypes resource represents disk types for a
8521// zonal persistent disk. For more information, read Zonal persistent
8522// disks. The regionDiskTypes resource represents disk types for a
8523// regional persistent disk. For more information, read Regional
8524// persistent disks.
8525type DiskType struct {
8526	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
8527	// format.
8528	CreationTimestamp string `json:"creationTimestamp,omitempty"`
8529
8530	// DefaultDiskSizeGb: [Output Only] Server-defined default disk size in
8531	// GB.
8532	DefaultDiskSizeGb int64 `json:"defaultDiskSizeGb,omitempty,string"`
8533
8534	// Deprecated -- [Output Only] The deprecation status associated with
8535	// this disk type.
8536	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
8537
8538	// Description: [Output Only] An optional description of this resource.
8539	Description string `json:"description,omitempty"`
8540
8541	// Id: [Output Only] The unique identifier for the resource. This
8542	// identifier is defined by the server.
8543	Id uint64 `json:"id,omitempty,string"`
8544
8545	// Kind: [Output Only] Type of the resource. Always compute#diskType for
8546	// disk types.
8547	Kind string `json:"kind,omitempty"`
8548
8549	// Name: [Output Only] Name of the resource.
8550	Name string `json:"name,omitempty"`
8551
8552	// Region: [Output Only] URL of the region where the disk type resides.
8553	// Only applicable for regional resources. You must specify this field
8554	// as part of the HTTP request URL. It is not settable as a field in the
8555	// request body.
8556	Region string `json:"region,omitempty"`
8557
8558	// SelfLink: [Output Only] Server-defined URL for the resource.
8559	SelfLink string `json:"selfLink,omitempty"`
8560
8561	// ValidDiskSize: [Output Only] An optional textual description of the
8562	// valid disk size, such as "10GB-10TB".
8563	ValidDiskSize string `json:"validDiskSize,omitempty"`
8564
8565	// Zone: [Output Only] URL of the zone where the disk type resides. You
8566	// must specify this field as part of the HTTP request URL. It is not
8567	// settable as a field in the request body.
8568	Zone string `json:"zone,omitempty"`
8569
8570	// ServerResponse contains the HTTP response code and headers from the
8571	// server.
8572	googleapi.ServerResponse `json:"-"`
8573
8574	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
8575	// to unconditionally include in API requests. By default, fields with
8576	// empty or default values are omitted from API requests. However, any
8577	// non-pointer, non-interface field appearing in ForceSendFields will be
8578	// sent to the server regardless of whether the field is empty or not.
8579	// This may be used to include empty fields in Patch requests.
8580	ForceSendFields []string `json:"-"`
8581
8582	// NullFields is a list of field names (e.g. "CreationTimestamp") to
8583	// include in API requests with the JSON null value. By default, fields
8584	// with empty values are omitted from API requests. However, any field
8585	// with an empty value appearing in NullFields will be sent to the
8586	// server as null. It is an error if a field in this list has a
8587	// non-empty value. This may be used to include null fields in Patch
8588	// requests.
8589	NullFields []string `json:"-"`
8590}
8591
8592func (s *DiskType) MarshalJSON() ([]byte, error) {
8593	type NoMethod DiskType
8594	raw := NoMethod(*s)
8595	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8596}
8597
8598type DiskTypeAggregatedList struct {
8599	// Id: [Output Only] Unique identifier for the resource; defined by the
8600	// server.
8601	Id string `json:"id,omitempty"`
8602
8603	// Items: A list of DiskTypesScopedList resources.
8604	Items map[string]DiskTypesScopedList `json:"items,omitempty"`
8605
8606	// Kind: [Output Only] Type of resource. Always
8607	// compute#diskTypeAggregatedList.
8608	Kind string `json:"kind,omitempty"`
8609
8610	// NextPageToken: [Output Only] This token allows you to get the next
8611	// page of results for list requests. If the number of results is larger
8612	// than maxResults, use the nextPageToken as a value for the query
8613	// parameter pageToken in the next list request. Subsequent list
8614	// requests will have their own nextPageToken to continue paging through
8615	// the results.
8616	NextPageToken string `json:"nextPageToken,omitempty"`
8617
8618	// SelfLink: [Output Only] Server-defined URL for this resource.
8619	SelfLink string `json:"selfLink,omitempty"`
8620
8621	// Unreachables: [Output Only] Unreachable resources.
8622	Unreachables []string `json:"unreachables,omitempty"`
8623
8624	// Warning: [Output Only] Informational warning message.
8625	Warning *DiskTypeAggregatedListWarning `json:"warning,omitempty"`
8626
8627	// ServerResponse contains the HTTP response code and headers from the
8628	// server.
8629	googleapi.ServerResponse `json:"-"`
8630
8631	// ForceSendFields is a list of field names (e.g. "Id") to
8632	// unconditionally include in API requests. By default, fields with
8633	// empty or default values are omitted from API requests. However, any
8634	// non-pointer, non-interface field appearing in ForceSendFields will be
8635	// sent to the server regardless of whether the field is empty or not.
8636	// This may be used to include empty fields in Patch requests.
8637	ForceSendFields []string `json:"-"`
8638
8639	// NullFields is a list of field names (e.g. "Id") to include in API
8640	// requests with the JSON null value. By default, fields with empty
8641	// values are omitted from API requests. However, any field with an
8642	// empty value appearing in NullFields will be sent to the server as
8643	// null. It is an error if a field in this list has a non-empty value.
8644	// This may be used to include null fields in Patch requests.
8645	NullFields []string `json:"-"`
8646}
8647
8648func (s *DiskTypeAggregatedList) MarshalJSON() ([]byte, error) {
8649	type NoMethod DiskTypeAggregatedList
8650	raw := NoMethod(*s)
8651	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8652}
8653
8654// DiskTypeAggregatedListWarning: [Output Only] Informational warning
8655// message.
8656type DiskTypeAggregatedListWarning struct {
8657	// Code: [Output Only] A warning code, if applicable. For example,
8658	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8659	// the response.
8660	//
8661	// Possible values:
8662	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
8663	// changes made by a failed operation.
8664	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
8665	// created.
8666	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
8667	// resources has a type marked as deprecated
8668	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
8669	// that is larger than image size.
8670	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
8671	// resources has a type marked as experimental
8672	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
8673	// call
8674	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
8675	// overridden. Deprecated unused field.
8676	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
8677	// injected kernel, which is deprecated.
8678	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
8679	// exceedingly large number of resources
8680	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
8681	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
8682	// not assigned to an instance on the network.
8683	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
8684	// ip forward.
8685	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
8686	// refers to an instance that does not exist.
8687	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
8688	// URL refers to an instance that is not on the same network as the
8689	// route.
8690	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
8691	// have a status of RUNNING.
8692	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
8693	// continue the process despite the mentioned error.
8694	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
8695	// page.
8696	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
8697	// missing due to errors
8698	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
8699	// that requires a TOS they have not accepted.
8700	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
8701	// resource is in use.
8702	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
8703	// auto-delete could not be deleted because they were in use.
8704	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
8705	// ignored.
8706	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
8707	// instance group manager is valid as such, but its application does not
8708	// make a lot of sense, because it allows only single instance in
8709	// instance group.
8710	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
8711	// are present
8712	//   "UNREACHABLE" - A given scope cannot be reached.
8713	Code string `json:"code,omitempty"`
8714
8715	// Data: [Output Only] Metadata about this warning in key: value format.
8716	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
8717	// }
8718	Data []*DiskTypeAggregatedListWarningData `json:"data,omitempty"`
8719
8720	// Message: [Output Only] A human-readable description of the warning
8721	// code.
8722	Message string `json:"message,omitempty"`
8723
8724	// ForceSendFields is a list of field names (e.g. "Code") to
8725	// unconditionally include in API requests. By default, fields with
8726	// empty or default values are omitted from API requests. However, any
8727	// non-pointer, non-interface field appearing in ForceSendFields will be
8728	// sent to the server regardless of whether the field is empty or not.
8729	// This may be used to include empty fields in Patch requests.
8730	ForceSendFields []string `json:"-"`
8731
8732	// NullFields is a list of field names (e.g. "Code") to include in API
8733	// requests with the JSON null value. By default, fields with empty
8734	// values are omitted from API requests. However, any field with an
8735	// empty value appearing in NullFields will be sent to the server as
8736	// null. It is an error if a field in this list has a non-empty value.
8737	// This may be used to include null fields in Patch requests.
8738	NullFields []string `json:"-"`
8739}
8740
8741func (s *DiskTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
8742	type NoMethod DiskTypeAggregatedListWarning
8743	raw := NoMethod(*s)
8744	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8745}
8746
8747type DiskTypeAggregatedListWarningData struct {
8748	// Key: [Output Only] A key that provides more detail on the warning
8749	// being returned. For example, for warnings where there are no results
8750	// in a list request for a particular zone, this key might be scope and
8751	// the key value might be the zone name. Other examples might be a key
8752	// indicating a deprecated resource and a suggested replacement, or a
8753	// warning about invalid network settings (for example, if an instance
8754	// attempts to perform IP forwarding but is not enabled for IP
8755	// forwarding).
8756	Key string `json:"key,omitempty"`
8757
8758	// Value: [Output Only] A warning data value corresponding to the key.
8759	Value string `json:"value,omitempty"`
8760
8761	// ForceSendFields is a list of field names (e.g. "Key") to
8762	// unconditionally include in API requests. By default, fields with
8763	// empty or default values are omitted from API requests. However, any
8764	// non-pointer, non-interface field appearing in ForceSendFields will be
8765	// sent to the server regardless of whether the field is empty or not.
8766	// This may be used to include empty fields in Patch requests.
8767	ForceSendFields []string `json:"-"`
8768
8769	// NullFields is a list of field names (e.g. "Key") to include in API
8770	// requests with the JSON null value. By default, fields with empty
8771	// values are omitted from API requests. However, any field with an
8772	// empty value appearing in NullFields will be sent to the server as
8773	// null. It is an error if a field in this list has a non-empty value.
8774	// This may be used to include null fields in Patch requests.
8775	NullFields []string `json:"-"`
8776}
8777
8778func (s *DiskTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
8779	type NoMethod DiskTypeAggregatedListWarningData
8780	raw := NoMethod(*s)
8781	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8782}
8783
8784// DiskTypeList: Contains a list of disk types.
8785type DiskTypeList struct {
8786	// Id: [Output Only] Unique identifier for the resource; defined by the
8787	// server.
8788	Id string `json:"id,omitempty"`
8789
8790	// Items: A list of DiskType resources.
8791	Items []*DiskType `json:"items,omitempty"`
8792
8793	// Kind: [Output Only] Type of resource. Always compute#diskTypeList for
8794	// disk types.
8795	Kind string `json:"kind,omitempty"`
8796
8797	// NextPageToken: [Output Only] This token allows you to get the next
8798	// page of results for list requests. If the number of results is larger
8799	// than maxResults, use the nextPageToken as a value for the query
8800	// parameter pageToken in the next list request. Subsequent list
8801	// requests will have their own nextPageToken to continue paging through
8802	// the results.
8803	NextPageToken string `json:"nextPageToken,omitempty"`
8804
8805	// SelfLink: [Output Only] Server-defined URL for this resource.
8806	SelfLink string `json:"selfLink,omitempty"`
8807
8808	// Warning: [Output Only] Informational warning message.
8809	Warning *DiskTypeListWarning `json:"warning,omitempty"`
8810
8811	// ServerResponse contains the HTTP response code and headers from the
8812	// server.
8813	googleapi.ServerResponse `json:"-"`
8814
8815	// ForceSendFields is a list of field names (e.g. "Id") to
8816	// unconditionally include in API requests. By default, fields with
8817	// empty or default values are omitted from API requests. However, any
8818	// non-pointer, non-interface field appearing in ForceSendFields will be
8819	// sent to the server regardless of whether the field is empty or not.
8820	// This may be used to include empty fields in Patch requests.
8821	ForceSendFields []string `json:"-"`
8822
8823	// NullFields is a list of field names (e.g. "Id") to include in API
8824	// requests with the JSON null value. By default, fields with empty
8825	// values are omitted from API requests. However, any field with an
8826	// empty value appearing in NullFields will be sent to the server as
8827	// null. It is an error if a field in this list has a non-empty value.
8828	// This may be used to include null fields in Patch requests.
8829	NullFields []string `json:"-"`
8830}
8831
8832func (s *DiskTypeList) MarshalJSON() ([]byte, error) {
8833	type NoMethod DiskTypeList
8834	raw := NoMethod(*s)
8835	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8836}
8837
8838// DiskTypeListWarning: [Output Only] Informational warning message.
8839type DiskTypeListWarning struct {
8840	// Code: [Output Only] A warning code, if applicable. For example,
8841	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8842	// the response.
8843	//
8844	// Possible values:
8845	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
8846	// changes made by a failed operation.
8847	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
8848	// created.
8849	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
8850	// resources has a type marked as deprecated
8851	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
8852	// that is larger than image size.
8853	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
8854	// resources has a type marked as experimental
8855	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
8856	// call
8857	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
8858	// overridden. Deprecated unused field.
8859	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
8860	// injected kernel, which is deprecated.
8861	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
8862	// exceedingly large number of resources
8863	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
8864	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
8865	// not assigned to an instance on the network.
8866	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
8867	// ip forward.
8868	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
8869	// refers to an instance that does not exist.
8870	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
8871	// URL refers to an instance that is not on the same network as the
8872	// route.
8873	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
8874	// have a status of RUNNING.
8875	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
8876	// continue the process despite the mentioned error.
8877	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
8878	// page.
8879	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
8880	// missing due to errors
8881	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
8882	// that requires a TOS they have not accepted.
8883	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
8884	// resource is in use.
8885	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
8886	// auto-delete could not be deleted because they were in use.
8887	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
8888	// ignored.
8889	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
8890	// instance group manager is valid as such, but its application does not
8891	// make a lot of sense, because it allows only single instance in
8892	// instance group.
8893	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
8894	// are present
8895	//   "UNREACHABLE" - A given scope cannot be reached.
8896	Code string `json:"code,omitempty"`
8897
8898	// Data: [Output Only] Metadata about this warning in key: value format.
8899	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
8900	// }
8901	Data []*DiskTypeListWarningData `json:"data,omitempty"`
8902
8903	// Message: [Output Only] A human-readable description of the warning
8904	// code.
8905	Message string `json:"message,omitempty"`
8906
8907	// ForceSendFields is a list of field names (e.g. "Code") to
8908	// unconditionally include in API requests. By default, fields with
8909	// empty or default values are omitted from API requests. However, any
8910	// non-pointer, non-interface field appearing in ForceSendFields will be
8911	// sent to the server regardless of whether the field is empty or not.
8912	// This may be used to include empty fields in Patch requests.
8913	ForceSendFields []string `json:"-"`
8914
8915	// NullFields is a list of field names (e.g. "Code") to include in API
8916	// requests with the JSON null value. By default, fields with empty
8917	// values are omitted from API requests. However, any field with an
8918	// empty value appearing in NullFields will be sent to the server as
8919	// null. It is an error if a field in this list has a non-empty value.
8920	// This may be used to include null fields in Patch requests.
8921	NullFields []string `json:"-"`
8922}
8923
8924func (s *DiskTypeListWarning) MarshalJSON() ([]byte, error) {
8925	type NoMethod DiskTypeListWarning
8926	raw := NoMethod(*s)
8927	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8928}
8929
8930type DiskTypeListWarningData struct {
8931	// Key: [Output Only] A key that provides more detail on the warning
8932	// being returned. For example, for warnings where there are no results
8933	// in a list request for a particular zone, this key might be scope and
8934	// the key value might be the zone name. Other examples might be a key
8935	// indicating a deprecated resource and a suggested replacement, or a
8936	// warning about invalid network settings (for example, if an instance
8937	// attempts to perform IP forwarding but is not enabled for IP
8938	// forwarding).
8939	Key string `json:"key,omitempty"`
8940
8941	// Value: [Output Only] A warning data value corresponding to the key.
8942	Value string `json:"value,omitempty"`
8943
8944	// ForceSendFields is a list of field names (e.g. "Key") to
8945	// unconditionally include in API requests. By default, fields with
8946	// empty or default values are omitted from API requests. However, any
8947	// non-pointer, non-interface field appearing in ForceSendFields will be
8948	// sent to the server regardless of whether the field is empty or not.
8949	// This may be used to include empty fields in Patch requests.
8950	ForceSendFields []string `json:"-"`
8951
8952	// NullFields is a list of field names (e.g. "Key") to include in API
8953	// requests with the JSON null value. By default, fields with empty
8954	// values are omitted from API requests. However, any field with an
8955	// empty value appearing in NullFields will be sent to the server as
8956	// null. It is an error if a field in this list has a non-empty value.
8957	// This may be used to include null fields in Patch requests.
8958	NullFields []string `json:"-"`
8959}
8960
8961func (s *DiskTypeListWarningData) MarshalJSON() ([]byte, error) {
8962	type NoMethod DiskTypeListWarningData
8963	raw := NoMethod(*s)
8964	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8965}
8966
8967type DiskTypesScopedList struct {
8968	// DiskTypes: [Output Only] A list of disk types contained in this
8969	// scope.
8970	DiskTypes []*DiskType `json:"diskTypes,omitempty"`
8971
8972	// Warning: [Output Only] Informational warning which replaces the list
8973	// of disk types when the list is empty.
8974	Warning *DiskTypesScopedListWarning `json:"warning,omitempty"`
8975
8976	// ForceSendFields is a list of field names (e.g. "DiskTypes") to
8977	// unconditionally include in API requests. By default, fields with
8978	// empty or default values are omitted from API requests. However, any
8979	// non-pointer, non-interface field appearing in ForceSendFields will be
8980	// sent to the server regardless of whether the field is empty or not.
8981	// This may be used to include empty fields in Patch requests.
8982	ForceSendFields []string `json:"-"`
8983
8984	// NullFields is a list of field names (e.g. "DiskTypes") to include in
8985	// API requests with the JSON null value. By default, fields with empty
8986	// values are omitted from API requests. However, any field with an
8987	// empty value appearing in NullFields will be sent to the server as
8988	// null. It is an error if a field in this list has a non-empty value.
8989	// This may be used to include null fields in Patch requests.
8990	NullFields []string `json:"-"`
8991}
8992
8993func (s *DiskTypesScopedList) MarshalJSON() ([]byte, error) {
8994	type NoMethod DiskTypesScopedList
8995	raw := NoMethod(*s)
8996	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8997}
8998
8999// DiskTypesScopedListWarning: [Output Only] Informational warning which
9000// replaces the list of disk types when the list is empty.
9001type DiskTypesScopedListWarning struct {
9002	// Code: [Output Only] A warning code, if applicable. For example,
9003	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9004	// the response.
9005	//
9006	// Possible values:
9007	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
9008	// changes made by a failed operation.
9009	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
9010	// created.
9011	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
9012	// resources has a type marked as deprecated
9013	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
9014	// that is larger than image size.
9015	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
9016	// resources has a type marked as experimental
9017	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
9018	// call
9019	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
9020	// overridden. Deprecated unused field.
9021	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
9022	// injected kernel, which is deprecated.
9023	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
9024	// exceedingly large number of resources
9025	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
9026	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
9027	// not assigned to an instance on the network.
9028	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
9029	// ip forward.
9030	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
9031	// refers to an instance that does not exist.
9032	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
9033	// URL refers to an instance that is not on the same network as the
9034	// route.
9035	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
9036	// have a status of RUNNING.
9037	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
9038	// continue the process despite the mentioned error.
9039	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
9040	// page.
9041	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
9042	// missing due to errors
9043	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
9044	// that requires a TOS they have not accepted.
9045	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
9046	// resource is in use.
9047	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
9048	// auto-delete could not be deleted because they were in use.
9049	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
9050	// ignored.
9051	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
9052	// instance group manager is valid as such, but its application does not
9053	// make a lot of sense, because it allows only single instance in
9054	// instance group.
9055	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
9056	// are present
9057	//   "UNREACHABLE" - A given scope cannot be reached.
9058	Code string `json:"code,omitempty"`
9059
9060	// Data: [Output Only] Metadata about this warning in key: value format.
9061	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
9062	// }
9063	Data []*DiskTypesScopedListWarningData `json:"data,omitempty"`
9064
9065	// Message: [Output Only] A human-readable description of the warning
9066	// code.
9067	Message string `json:"message,omitempty"`
9068
9069	// ForceSendFields is a list of field names (e.g. "Code") to
9070	// unconditionally include in API requests. By default, fields with
9071	// empty or default values are omitted from API requests. However, any
9072	// non-pointer, non-interface field appearing in ForceSendFields will be
9073	// sent to the server regardless of whether the field is empty or not.
9074	// This may be used to include empty fields in Patch requests.
9075	ForceSendFields []string `json:"-"`
9076
9077	// NullFields is a list of field names (e.g. "Code") to include in API
9078	// requests with the JSON null value. By default, fields with empty
9079	// values are omitted from API requests. However, any field with an
9080	// empty value appearing in NullFields will be sent to the server as
9081	// null. It is an error if a field in this list has a non-empty value.
9082	// This may be used to include null fields in Patch requests.
9083	NullFields []string `json:"-"`
9084}
9085
9086func (s *DiskTypesScopedListWarning) MarshalJSON() ([]byte, error) {
9087	type NoMethod DiskTypesScopedListWarning
9088	raw := NoMethod(*s)
9089	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9090}
9091
9092type DiskTypesScopedListWarningData struct {
9093	// Key: [Output Only] A key that provides more detail on the warning
9094	// being returned. For example, for warnings where there are no results
9095	// in a list request for a particular zone, this key might be scope and
9096	// the key value might be the zone name. Other examples might be a key
9097	// indicating a deprecated resource and a suggested replacement, or a
9098	// warning about invalid network settings (for example, if an instance
9099	// attempts to perform IP forwarding but is not enabled for IP
9100	// forwarding).
9101	Key string `json:"key,omitempty"`
9102
9103	// Value: [Output Only] A warning data value corresponding to the key.
9104	Value string `json:"value,omitempty"`
9105
9106	// ForceSendFields is a list of field names (e.g. "Key") to
9107	// unconditionally include in API requests. By default, fields with
9108	// empty or default values are omitted from API requests. However, any
9109	// non-pointer, non-interface field appearing in ForceSendFields will be
9110	// sent to the server regardless of whether the field is empty or not.
9111	// This may be used to include empty fields in Patch requests.
9112	ForceSendFields []string `json:"-"`
9113
9114	// NullFields is a list of field names (e.g. "Key") to include in API
9115	// requests with the JSON null value. By default, fields with empty
9116	// values are omitted from API requests. However, any field with an
9117	// empty value appearing in NullFields will be sent to the server as
9118	// null. It is an error if a field in this list has a non-empty value.
9119	// This may be used to include null fields in Patch requests.
9120	NullFields []string `json:"-"`
9121}
9122
9123func (s *DiskTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
9124	type NoMethod DiskTypesScopedListWarningData
9125	raw := NoMethod(*s)
9126	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9127}
9128
9129type DisksAddResourcePoliciesRequest struct {
9130	// ResourcePolicies: Full or relative path to the resource policy to be
9131	// added to this disk. You can only specify one resource policy.
9132	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
9133
9134	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
9135	// unconditionally include in API requests. By default, fields with
9136	// empty or default values are omitted from API requests. However, any
9137	// non-pointer, non-interface field appearing in ForceSendFields will be
9138	// sent to the server regardless of whether the field is empty or not.
9139	// This may be used to include empty fields in Patch requests.
9140	ForceSendFields []string `json:"-"`
9141
9142	// NullFields is a list of field names (e.g. "ResourcePolicies") to
9143	// include in API requests with the JSON null value. By default, fields
9144	// with empty values are omitted from API requests. However, any field
9145	// with an empty value appearing in NullFields will be sent to the
9146	// server as null. It is an error if a field in this list has a
9147	// non-empty value. This may be used to include null fields in Patch
9148	// requests.
9149	NullFields []string `json:"-"`
9150}
9151
9152func (s *DisksAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
9153	type NoMethod DisksAddResourcePoliciesRequest
9154	raw := NoMethod(*s)
9155	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9156}
9157
9158type DisksRemoveResourcePoliciesRequest struct {
9159	// ResourcePolicies: Resource policies to be removed from this disk.
9160	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
9161
9162	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
9163	// unconditionally include in API requests. By default, fields with
9164	// empty or default values are omitted from API requests. However, any
9165	// non-pointer, non-interface field appearing in ForceSendFields will be
9166	// sent to the server regardless of whether the field is empty or not.
9167	// This may be used to include empty fields in Patch requests.
9168	ForceSendFields []string `json:"-"`
9169
9170	// NullFields is a list of field names (e.g. "ResourcePolicies") to
9171	// include in API requests with the JSON null value. By default, fields
9172	// with empty values are omitted from API requests. However, any field
9173	// with an empty value appearing in NullFields will be sent to the
9174	// server as null. It is an error if a field in this list has a
9175	// non-empty value. This may be used to include null fields in Patch
9176	// requests.
9177	NullFields []string `json:"-"`
9178}
9179
9180func (s *DisksRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
9181	type NoMethod DisksRemoveResourcePoliciesRequest
9182	raw := NoMethod(*s)
9183	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9184}
9185
9186type DisksResizeRequest struct {
9187	// SizeGb: The new size of the persistent disk, which is specified in
9188	// GB.
9189	SizeGb int64 `json:"sizeGb,omitempty,string"`
9190
9191	// ForceSendFields is a list of field names (e.g. "SizeGb") to
9192	// unconditionally include in API requests. By default, fields with
9193	// empty or default values are omitted from API requests. However, any
9194	// non-pointer, non-interface field appearing in ForceSendFields will be
9195	// sent to the server regardless of whether the field is empty or not.
9196	// This may be used to include empty fields in Patch requests.
9197	ForceSendFields []string `json:"-"`
9198
9199	// NullFields is a list of field names (e.g. "SizeGb") to include in API
9200	// requests with the JSON null value. By default, fields with empty
9201	// values are omitted from API requests. However, any field with an
9202	// empty value appearing in NullFields will be sent to the server as
9203	// null. It is an error if a field in this list has a non-empty value.
9204	// This may be used to include null fields in Patch requests.
9205	NullFields []string `json:"-"`
9206}
9207
9208func (s *DisksResizeRequest) MarshalJSON() ([]byte, error) {
9209	type NoMethod DisksResizeRequest
9210	raw := NoMethod(*s)
9211	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9212}
9213
9214type DisksScopedList struct {
9215	// Disks: [Output Only] A list of disks contained in this scope.
9216	Disks []*Disk `json:"disks,omitempty"`
9217
9218	// Warning: [Output Only] Informational warning which replaces the list
9219	// of disks when the list is empty.
9220	Warning *DisksScopedListWarning `json:"warning,omitempty"`
9221
9222	// ForceSendFields is a list of field names (e.g. "Disks") to
9223	// unconditionally include in API requests. By default, fields with
9224	// empty or default values are omitted from API requests. However, any
9225	// non-pointer, non-interface field appearing in ForceSendFields will be
9226	// sent to the server regardless of whether the field is empty or not.
9227	// This may be used to include empty fields in Patch requests.
9228	ForceSendFields []string `json:"-"`
9229
9230	// NullFields is a list of field names (e.g. "Disks") to include in API
9231	// requests with the JSON null value. By default, fields with empty
9232	// values are omitted from API requests. However, any field with an
9233	// empty value appearing in NullFields will be sent to the server as
9234	// null. It is an error if a field in this list has a non-empty value.
9235	// This may be used to include null fields in Patch requests.
9236	NullFields []string `json:"-"`
9237}
9238
9239func (s *DisksScopedList) MarshalJSON() ([]byte, error) {
9240	type NoMethod DisksScopedList
9241	raw := NoMethod(*s)
9242	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9243}
9244
9245// DisksScopedListWarning: [Output Only] Informational warning which
9246// replaces the list of disks when the list is empty.
9247type DisksScopedListWarning struct {
9248	// Code: [Output Only] A warning code, if applicable. For example,
9249	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9250	// the response.
9251	//
9252	// Possible values:
9253	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
9254	// changes made by a failed operation.
9255	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
9256	// created.
9257	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
9258	// resources has a type marked as deprecated
9259	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
9260	// that is larger than image size.
9261	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
9262	// resources has a type marked as experimental
9263	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
9264	// call
9265	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
9266	// overridden. Deprecated unused field.
9267	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
9268	// injected kernel, which is deprecated.
9269	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
9270	// exceedingly large number of resources
9271	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
9272	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
9273	// not assigned to an instance on the network.
9274	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
9275	// ip forward.
9276	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
9277	// refers to an instance that does not exist.
9278	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
9279	// URL refers to an instance that is not on the same network as the
9280	// route.
9281	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
9282	// have a status of RUNNING.
9283	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
9284	// continue the process despite the mentioned error.
9285	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
9286	// page.
9287	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
9288	// missing due to errors
9289	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
9290	// that requires a TOS they have not accepted.
9291	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
9292	// resource is in use.
9293	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
9294	// auto-delete could not be deleted because they were in use.
9295	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
9296	// ignored.
9297	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
9298	// instance group manager is valid as such, but its application does not
9299	// make a lot of sense, because it allows only single instance in
9300	// instance group.
9301	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
9302	// are present
9303	//   "UNREACHABLE" - A given scope cannot be reached.
9304	Code string `json:"code,omitempty"`
9305
9306	// Data: [Output Only] Metadata about this warning in key: value format.
9307	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
9308	// }
9309	Data []*DisksScopedListWarningData `json:"data,omitempty"`
9310
9311	// Message: [Output Only] A human-readable description of the warning
9312	// code.
9313	Message string `json:"message,omitempty"`
9314
9315	// ForceSendFields is a list of field names (e.g. "Code") to
9316	// unconditionally include in API requests. By default, fields with
9317	// empty or default values are omitted from API requests. However, any
9318	// non-pointer, non-interface field appearing in ForceSendFields will be
9319	// sent to the server regardless of whether the field is empty or not.
9320	// This may be used to include empty fields in Patch requests.
9321	ForceSendFields []string `json:"-"`
9322
9323	// NullFields is a list of field names (e.g. "Code") to include in API
9324	// requests with the JSON null value. By default, fields with empty
9325	// values are omitted from API requests. However, any field with an
9326	// empty value appearing in NullFields will be sent to the server as
9327	// null. It is an error if a field in this list has a non-empty value.
9328	// This may be used to include null fields in Patch requests.
9329	NullFields []string `json:"-"`
9330}
9331
9332func (s *DisksScopedListWarning) MarshalJSON() ([]byte, error) {
9333	type NoMethod DisksScopedListWarning
9334	raw := NoMethod(*s)
9335	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9336}
9337
9338type DisksScopedListWarningData struct {
9339	// Key: [Output Only] A key that provides more detail on the warning
9340	// being returned. For example, for warnings where there are no results
9341	// in a list request for a particular zone, this key might be scope and
9342	// the key value might be the zone name. Other examples might be a key
9343	// indicating a deprecated resource and a suggested replacement, or a
9344	// warning about invalid network settings (for example, if an instance
9345	// attempts to perform IP forwarding but is not enabled for IP
9346	// forwarding).
9347	Key string `json:"key,omitempty"`
9348
9349	// Value: [Output Only] A warning data value corresponding to the key.
9350	Value string `json:"value,omitempty"`
9351
9352	// ForceSendFields is a list of field names (e.g. "Key") to
9353	// unconditionally include in API requests. By default, fields with
9354	// empty or default values are omitted from API requests. However, any
9355	// non-pointer, non-interface field appearing in ForceSendFields will be
9356	// sent to the server regardless of whether the field is empty or not.
9357	// This may be used to include empty fields in Patch requests.
9358	ForceSendFields []string `json:"-"`
9359
9360	// NullFields is a list of field names (e.g. "Key") to include in API
9361	// requests with the JSON null value. By default, fields with empty
9362	// values are omitted from API requests. However, any field with an
9363	// empty value appearing in NullFields will be sent to the server as
9364	// null. It is an error if a field in this list has a non-empty value.
9365	// This may be used to include null fields in Patch requests.
9366	NullFields []string `json:"-"`
9367}
9368
9369func (s *DisksScopedListWarningData) MarshalJSON() ([]byte, error) {
9370	type NoMethod DisksScopedListWarningData
9371	raw := NoMethod(*s)
9372	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9373}
9374
9375// DisplayDevice: A set of Display Device options
9376type DisplayDevice struct {
9377	// EnableDisplay: Defines whether the instance has Display enabled.
9378	EnableDisplay bool `json:"enableDisplay,omitempty"`
9379
9380	// ForceSendFields is a list of field names (e.g. "EnableDisplay") to
9381	// unconditionally include in API requests. By default, fields with
9382	// empty or default values are omitted from API requests. However, any
9383	// non-pointer, non-interface field appearing in ForceSendFields will be
9384	// sent to the server regardless of whether the field is empty or not.
9385	// This may be used to include empty fields in Patch requests.
9386	ForceSendFields []string `json:"-"`
9387
9388	// NullFields is a list of field names (e.g. "EnableDisplay") to include
9389	// in API requests with the JSON null value. By default, fields with
9390	// empty values are omitted from API requests. However, any field with
9391	// an empty value appearing in NullFields will be sent to the server as
9392	// null. It is an error if a field in this list has a non-empty value.
9393	// This may be used to include null fields in Patch requests.
9394	NullFields []string `json:"-"`
9395}
9396
9397func (s *DisplayDevice) MarshalJSON() ([]byte, error) {
9398	type NoMethod DisplayDevice
9399	raw := NoMethod(*s)
9400	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9401}
9402
9403type DistributionPolicy struct {
9404	// TargetShape: The distribution shape to which the group converges
9405	// either proactively or on resize events (depending on the value set in
9406	// updatePolicy.instanceRedistributionType).
9407	//
9408	// Possible values:
9409	//   "ANY" - The group picks zones for creating VM instances to fulfill
9410	// the requested number of VMs within present resource constraints and
9411	// to maximize utilization of unused zonal reservations. Recommended for
9412	// batch workloads that do not require high availability.
9413	//   "BALANCED" - The group prioritizes acquisition of resources,
9414	// scheduling VMs in zones where resources are available while
9415	// distributing VMs as evenly as possible across selected zones to
9416	// minimize the impact of zonal failure. Recommended for highly
9417	// available serving workloads.
9418	//   "EVEN" - The group schedules VM instance creation and deletion to
9419	// achieve and maintain an even number of managed instances across the
9420	// selected zones. The distribution is even when the number of managed
9421	// instances does not differ by more than 1 between any two zones.
9422	// Recommended for highly available serving workloads.
9423	TargetShape string `json:"targetShape,omitempty"`
9424
9425	// Zones: Zones where the regional managed instance group will create
9426	// and manage its instances.
9427	Zones []*DistributionPolicyZoneConfiguration `json:"zones,omitempty"`
9428
9429	// ForceSendFields is a list of field names (e.g. "TargetShape") to
9430	// unconditionally include in API requests. By default, fields with
9431	// empty or default values are omitted from API requests. However, any
9432	// non-pointer, non-interface field appearing in ForceSendFields will be
9433	// sent to the server regardless of whether the field is empty or not.
9434	// This may be used to include empty fields in Patch requests.
9435	ForceSendFields []string `json:"-"`
9436
9437	// NullFields is a list of field names (e.g. "TargetShape") to include
9438	// in API requests with the JSON null value. By default, fields with
9439	// empty values are omitted from API requests. However, any field with
9440	// an empty value appearing in NullFields will be sent to the server as
9441	// null. It is an error if a field in this list has a non-empty value.
9442	// This may be used to include null fields in Patch requests.
9443	NullFields []string `json:"-"`
9444}
9445
9446func (s *DistributionPolicy) MarshalJSON() ([]byte, error) {
9447	type NoMethod DistributionPolicy
9448	raw := NoMethod(*s)
9449	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9450}
9451
9452type DistributionPolicyZoneConfiguration struct {
9453	// Zone: The URL of the zone. The zone must exist in the region where
9454	// the managed instance group is located.
9455	Zone string `json:"zone,omitempty"`
9456
9457	// ForceSendFields is a list of field names (e.g. "Zone") to
9458	// unconditionally include in API requests. By default, fields with
9459	// empty or default values are omitted from API requests. However, any
9460	// non-pointer, non-interface field appearing in ForceSendFields will be
9461	// sent to the server regardless of whether the field is empty or not.
9462	// This may be used to include empty fields in Patch requests.
9463	ForceSendFields []string `json:"-"`
9464
9465	// NullFields is a list of field names (e.g. "Zone") to include in API
9466	// requests with the JSON null value. By default, fields with empty
9467	// values are omitted from API requests. However, any field with an
9468	// empty value appearing in NullFields will be sent to the server as
9469	// null. It is an error if a field in this list has a non-empty value.
9470	// This may be used to include null fields in Patch requests.
9471	NullFields []string `json:"-"`
9472}
9473
9474func (s *DistributionPolicyZoneConfiguration) MarshalJSON() ([]byte, error) {
9475	type NoMethod DistributionPolicyZoneConfiguration
9476	raw := NoMethod(*s)
9477	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9478}
9479
9480// Duration: A Duration represents a fixed-length span of time
9481// represented as a count of seconds and fractions of seconds at
9482// nanosecond resolution. It is independent of any calendar and concepts
9483// like "day" or "month". Range is approximately 10,000 years.
9484type Duration struct {
9485	// Nanos: Span of time that's a fraction of a second at nanosecond
9486	// resolution. Durations less than one second are represented with a 0
9487	// `seconds` field and a positive `nanos` field. Must be from 0 to
9488	// 999,999,999 inclusive.
9489	Nanos int64 `json:"nanos,omitempty"`
9490
9491	// Seconds: Span of time at a resolution of a second. Must be from 0 to
9492	// 315,576,000,000 inclusive. Note: these bounds are computed from: 60
9493	// sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
9494	Seconds int64 `json:"seconds,omitempty,string"`
9495
9496	// ForceSendFields is a list of field names (e.g. "Nanos") to
9497	// unconditionally include in API requests. By default, fields with
9498	// empty or default values are omitted from API requests. However, any
9499	// non-pointer, non-interface field appearing in ForceSendFields will be
9500	// sent to the server regardless of whether the field is empty or not.
9501	// This may be used to include empty fields in Patch requests.
9502	ForceSendFields []string `json:"-"`
9503
9504	// NullFields is a list of field names (e.g. "Nanos") to include in API
9505	// requests with the JSON null value. By default, fields with empty
9506	// values are omitted from API requests. However, any field with an
9507	// empty value appearing in NullFields will be sent to the server as
9508	// null. It is an error if a field in this list has a non-empty value.
9509	// This may be used to include null fields in Patch requests.
9510	NullFields []string `json:"-"`
9511}
9512
9513func (s *Duration) MarshalJSON() ([]byte, error) {
9514	type NoMethod Duration
9515	raw := NoMethod(*s)
9516	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9517}
9518
9519type ExchangedPeeringRoute struct {
9520	// DestRange: The destination range of the route.
9521	DestRange string `json:"destRange,omitempty"`
9522
9523	// Imported: True if the peering route has been imported from a peer.
9524	// The actual import happens if the field
9525	// networkPeering.importCustomRoutes is true for this network, and
9526	// networkPeering.exportCustomRoutes is true for the peer network, and
9527	// the import does not result in a route conflict.
9528	Imported bool `json:"imported,omitempty"`
9529
9530	// NextHopRegion: The region of peering route next hop, only applies to
9531	// dynamic routes.
9532	NextHopRegion string `json:"nextHopRegion,omitempty"`
9533
9534	// Priority: The priority of the peering route.
9535	Priority int64 `json:"priority,omitempty"`
9536
9537	// Type: The type of the peering route.
9538	//
9539	// Possible values:
9540	//   "DYNAMIC_PEERING_ROUTE" - For routes exported from local network.
9541	//   "STATIC_PEERING_ROUTE" - The peering route.
9542	//   "SUBNET_PEERING_ROUTE" - The peering route corresponding to
9543	// subnetwork range.
9544	Type string `json:"type,omitempty"`
9545
9546	// ForceSendFields is a list of field names (e.g. "DestRange") to
9547	// unconditionally include in API requests. By default, fields with
9548	// empty or default values are omitted from API requests. However, any
9549	// non-pointer, non-interface field appearing in ForceSendFields will be
9550	// sent to the server regardless of whether the field is empty or not.
9551	// This may be used to include empty fields in Patch requests.
9552	ForceSendFields []string `json:"-"`
9553
9554	// NullFields is a list of field names (e.g. "DestRange") to include in
9555	// API requests with the JSON null value. By default, fields with empty
9556	// values are omitted from API requests. However, any field with an
9557	// empty value appearing in NullFields will be sent to the server as
9558	// null. It is an error if a field in this list has a non-empty value.
9559	// This may be used to include null fields in Patch requests.
9560	NullFields []string `json:"-"`
9561}
9562
9563func (s *ExchangedPeeringRoute) MarshalJSON() ([]byte, error) {
9564	type NoMethod ExchangedPeeringRoute
9565	raw := NoMethod(*s)
9566	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9567}
9568
9569type ExchangedPeeringRoutesList struct {
9570	// Id: [Output Only] Unique identifier for the resource; defined by the
9571	// server.
9572	Id string `json:"id,omitempty"`
9573
9574	// Items: A list of ExchangedPeeringRoute resources.
9575	Items []*ExchangedPeeringRoute `json:"items,omitempty"`
9576
9577	// Kind: [Output Only] Type of resource. Always
9578	// compute#exchangedPeeringRoutesList for exchanged peering routes
9579	// lists.
9580	Kind string `json:"kind,omitempty"`
9581
9582	// NextPageToken: [Output Only] This token allows you to get the next
9583	// page of results for list requests. If the number of results is larger
9584	// than maxResults, use the nextPageToken as a value for the query
9585	// parameter pageToken in the next list request. Subsequent list
9586	// requests will have their own nextPageToken to continue paging through
9587	// the results.
9588	NextPageToken string `json:"nextPageToken,omitempty"`
9589
9590	// SelfLink: [Output Only] Server-defined URL for this resource.
9591	SelfLink string `json:"selfLink,omitempty"`
9592
9593	// Warning: [Output Only] Informational warning message.
9594	Warning *ExchangedPeeringRoutesListWarning `json:"warning,omitempty"`
9595
9596	// ServerResponse contains the HTTP response code and headers from the
9597	// server.
9598	googleapi.ServerResponse `json:"-"`
9599
9600	// ForceSendFields is a list of field names (e.g. "Id") to
9601	// unconditionally include in API requests. By default, fields with
9602	// empty or default values are omitted from API requests. However, any
9603	// non-pointer, non-interface field appearing in ForceSendFields will be
9604	// sent to the server regardless of whether the field is empty or not.
9605	// This may be used to include empty fields in Patch requests.
9606	ForceSendFields []string `json:"-"`
9607
9608	// NullFields is a list of field names (e.g. "Id") to include in API
9609	// requests with the JSON null value. By default, fields with empty
9610	// values are omitted from API requests. However, any field with an
9611	// empty value appearing in NullFields will be sent to the server as
9612	// null. It is an error if a field in this list has a non-empty value.
9613	// This may be used to include null fields in Patch requests.
9614	NullFields []string `json:"-"`
9615}
9616
9617func (s *ExchangedPeeringRoutesList) MarshalJSON() ([]byte, error) {
9618	type NoMethod ExchangedPeeringRoutesList
9619	raw := NoMethod(*s)
9620	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9621}
9622
9623// ExchangedPeeringRoutesListWarning: [Output Only] Informational
9624// warning message.
9625type ExchangedPeeringRoutesListWarning struct {
9626	// Code: [Output Only] A warning code, if applicable. For example,
9627	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9628	// the response.
9629	//
9630	// Possible values:
9631	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
9632	// changes made by a failed operation.
9633	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
9634	// created.
9635	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
9636	// resources has a type marked as deprecated
9637	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
9638	// that is larger than image size.
9639	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
9640	// resources has a type marked as experimental
9641	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
9642	// call
9643	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
9644	// overridden. Deprecated unused field.
9645	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
9646	// injected kernel, which is deprecated.
9647	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
9648	// exceedingly large number of resources
9649	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
9650	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
9651	// not assigned to an instance on the network.
9652	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
9653	// ip forward.
9654	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
9655	// refers to an instance that does not exist.
9656	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
9657	// URL refers to an instance that is not on the same network as the
9658	// route.
9659	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
9660	// have a status of RUNNING.
9661	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
9662	// continue the process despite the mentioned error.
9663	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
9664	// page.
9665	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
9666	// missing due to errors
9667	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
9668	// that requires a TOS they have not accepted.
9669	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
9670	// resource is in use.
9671	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
9672	// auto-delete could not be deleted because they were in use.
9673	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
9674	// ignored.
9675	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
9676	// instance group manager is valid as such, but its application does not
9677	// make a lot of sense, because it allows only single instance in
9678	// instance group.
9679	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
9680	// are present
9681	//   "UNREACHABLE" - A given scope cannot be reached.
9682	Code string `json:"code,omitempty"`
9683
9684	// Data: [Output Only] Metadata about this warning in key: value format.
9685	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
9686	// }
9687	Data []*ExchangedPeeringRoutesListWarningData `json:"data,omitempty"`
9688
9689	// Message: [Output Only] A human-readable description of the warning
9690	// code.
9691	Message string `json:"message,omitempty"`
9692
9693	// ForceSendFields is a list of field names (e.g. "Code") to
9694	// unconditionally include in API requests. By default, fields with
9695	// empty or default values are omitted from API requests. However, any
9696	// non-pointer, non-interface field appearing in ForceSendFields will be
9697	// sent to the server regardless of whether the field is empty or not.
9698	// This may be used to include empty fields in Patch requests.
9699	ForceSendFields []string `json:"-"`
9700
9701	// NullFields is a list of field names (e.g. "Code") to include in API
9702	// requests with the JSON null value. By default, fields with empty
9703	// values are omitted from API requests. However, any field with an
9704	// empty value appearing in NullFields will be sent to the server as
9705	// null. It is an error if a field in this list has a non-empty value.
9706	// This may be used to include null fields in Patch requests.
9707	NullFields []string `json:"-"`
9708}
9709
9710func (s *ExchangedPeeringRoutesListWarning) MarshalJSON() ([]byte, error) {
9711	type NoMethod ExchangedPeeringRoutesListWarning
9712	raw := NoMethod(*s)
9713	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9714}
9715
9716type ExchangedPeeringRoutesListWarningData struct {
9717	// Key: [Output Only] A key that provides more detail on the warning
9718	// being returned. For example, for warnings where there are no results
9719	// in a list request for a particular zone, this key might be scope and
9720	// the key value might be the zone name. Other examples might be a key
9721	// indicating a deprecated resource and a suggested replacement, or a
9722	// warning about invalid network settings (for example, if an instance
9723	// attempts to perform IP forwarding but is not enabled for IP
9724	// forwarding).
9725	Key string `json:"key,omitempty"`
9726
9727	// Value: [Output Only] A warning data value corresponding to the key.
9728	Value string `json:"value,omitempty"`
9729
9730	// ForceSendFields is a list of field names (e.g. "Key") to
9731	// unconditionally include in API requests. By default, fields with
9732	// empty or default values are omitted from API requests. However, any
9733	// non-pointer, non-interface field appearing in ForceSendFields will be
9734	// sent to the server regardless of whether the field is empty or not.
9735	// This may be used to include empty fields in Patch requests.
9736	ForceSendFields []string `json:"-"`
9737
9738	// NullFields is a list of field names (e.g. "Key") to include in API
9739	// requests with the JSON null value. By default, fields with empty
9740	// values are omitted from API requests. However, any field with an
9741	// empty value appearing in NullFields will be sent to the server as
9742	// null. It is an error if a field in this list has a non-empty value.
9743	// This may be used to include null fields in Patch requests.
9744	NullFields []string `json:"-"`
9745}
9746
9747func (s *ExchangedPeeringRoutesListWarningData) MarshalJSON() ([]byte, error) {
9748	type NoMethod ExchangedPeeringRoutesListWarningData
9749	raw := NoMethod(*s)
9750	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9751}
9752
9753// Expr: Represents a textual expression in the Common Expression
9754// Language (CEL) syntax. CEL is a C-like expression language. The
9755// syntax and semantics of CEL are documented at
9756// https://github.com/google/cel-spec. Example (Comparison): title:
9757// "Summary size limit" description: "Determines if a summary is less
9758// than 100 chars" expression: "document.summary.size() < 100" Example
9759// (Equality): title: "Requestor is owner" description: "Determines if
9760// requestor is the document owner" expression: "document.owner ==
9761// request.auth.claims.email" Example (Logic): title: "Public documents"
9762// description: "Determine whether the document should be publicly
9763// visible" expression: "document.type != 'private' && document.type !=
9764// 'internal'" Example (Data Manipulation): title: "Notification string"
9765// description: "Create a notification string with a timestamp."
9766// expression: "'New message received at ' +
9767// string(document.create_time)" The exact variables and functions that
9768// may be referenced within an expression are determined by the service
9769// that evaluates it. See the service documentation for additional
9770// information.
9771type Expr struct {
9772	// Description: Optional. Description of the expression. This is a
9773	// longer text which describes the expression, e.g. when hovered over it
9774	// in a UI.
9775	Description string `json:"description,omitempty"`
9776
9777	// Expression: Textual representation of an expression in Common
9778	// Expression Language syntax.
9779	Expression string `json:"expression,omitempty"`
9780
9781	// Location: Optional. String indicating the location of the expression
9782	// for error reporting, e.g. a file name and a position in the file.
9783	Location string `json:"location,omitempty"`
9784
9785	// Title: Optional. Title for the expression, i.e. a short string
9786	// describing its purpose. This can be used e.g. in UIs which allow to
9787	// enter the expression.
9788	Title string `json:"title,omitempty"`
9789
9790	// ForceSendFields is a list of field names (e.g. "Description") to
9791	// unconditionally include in API requests. By default, fields with
9792	// empty or default values are omitted from API requests. However, any
9793	// non-pointer, non-interface field appearing in ForceSendFields will be
9794	// sent to the server regardless of whether the field is empty or not.
9795	// This may be used to include empty fields in Patch requests.
9796	ForceSendFields []string `json:"-"`
9797
9798	// NullFields is a list of field names (e.g. "Description") to include
9799	// in API requests with the JSON null value. By default, fields with
9800	// empty values are omitted from API requests. However, any field with
9801	// an empty value appearing in NullFields will be sent to the server as
9802	// null. It is an error if a field in this list has a non-empty value.
9803	// This may be used to include null fields in Patch requests.
9804	NullFields []string `json:"-"`
9805}
9806
9807func (s *Expr) MarshalJSON() ([]byte, error) {
9808	type NoMethod Expr
9809	raw := NoMethod(*s)
9810	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9811}
9812
9813// ExternalVpnGateway: Represents an external VPN gateway. External VPN
9814// gateway is the on-premises VPN gateway(s) or another cloud provider's
9815// VPN gateway that connects to your Google Cloud VPN gateway. To create
9816// a highly available VPN from Google Cloud Platform to your VPN gateway
9817// or another cloud provider's VPN gateway, you must create a external
9818// VPN gateway resource with information about the other gateway. For
9819// more information about using external VPN gateways, see Creating an
9820// HA VPN gateway and tunnel pair to a peer VPN.
9821type ExternalVpnGateway struct {
9822	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
9823	// format.
9824	CreationTimestamp string `json:"creationTimestamp,omitempty"`
9825
9826	// Description: An optional description of this resource. Provide this
9827	// property when you create the resource.
9828	Description string `json:"description,omitempty"`
9829
9830	// Id: [Output Only] The unique identifier for the resource. This
9831	// identifier is defined by the server.
9832	Id *uint64 `json:"id,omitempty,string"`
9833
9834	// Interfaces: A list of interfaces for this external VPN gateway. If
9835	// your peer-side gateway is an on-premises gateway and non-AWS cloud
9836	// providers' gateway, at most two interfaces can be provided for an
9837	// external VPN gateway. If your peer side is an AWS virtual private
9838	// gateway, four interfaces should be provided for an external VPN
9839	// gateway.
9840	Interfaces []*ExternalVpnGatewayInterface `json:"interfaces,omitempty"`
9841
9842	// Kind: [Output Only] Type of the resource. Always
9843	// compute#externalVpnGateway for externalVpnGateways.
9844	Kind string `json:"kind,omitempty"`
9845
9846	// LabelFingerprint: A fingerprint for the labels being applied to this
9847	// ExternalVpnGateway, which is essentially a hash of the labels set
9848	// used for optimistic locking. The fingerprint is initially generated
9849	// by Compute Engine and changes after every request to modify or update
9850	// labels. You must always provide an up-to-date fingerprint hash in
9851	// order to update or change labels, otherwise the request will fail
9852	// with error 412 conditionNotMet. To see the latest fingerprint, make a
9853	// get() request to retrieve an ExternalVpnGateway.
9854	LabelFingerprint string `json:"labelFingerprint,omitempty"`
9855
9856	// Labels: Labels for this resource. These can only be added or modified
9857	// by the setLabels method. Each label key/value pair must comply with
9858	// RFC1035. Label values may be empty.
9859	Labels map[string]string `json:"labels,omitempty"`
9860
9861	// Name: Name of the resource. Provided by the client when the resource
9862	// is created. The name must be 1-63 characters long, and comply with
9863	// RFC1035. Specifically, the name must be 1-63 characters long and
9864	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
9865	// the first character must be a lowercase letter, and all following
9866	// characters must be a dash, lowercase letter, or digit, except the
9867	// last character, which cannot be a dash.
9868	Name string `json:"name,omitempty"`
9869
9870	// RedundancyType: Indicates the user-supplied redundancy type of this
9871	// external VPN gateway.
9872	//
9873	// Possible values:
9874	//   "FOUR_IPS_REDUNDANCY" - The external VPN gateway has four public IP
9875	// addresses; at the time of writing this API, the AWS virtual private
9876	// gateway is an example which has four public IP addresses for high
9877	// availability connections; there should be two VPN connections in the
9878	// AWS virtual private gateway , each AWS VPN connection has two public
9879	// IP addresses; please make sure to put two public IP addresses from
9880	// one AWS VPN connection into interfaces 0 and 1 of this external VPN
9881	// gateway, and put the other two public IP addresses from another AWS
9882	// VPN connection into interfaces 2 and 3 of this external VPN gateway.
9883	// When displaying highly available configuration status for the VPN
9884	// tunnels connected to FOUR_IPS_REDUNDANCY external VPN gateway, Google
9885	// will always detect whether interfaces 0 and 1 are connected on one
9886	// interface of HA Cloud VPN gateway, and detect whether interfaces 2
9887	// and 3 are connected to another interface of the HA Cloud VPN gateway.
9888	//   "SINGLE_IP_INTERNALLY_REDUNDANT" - The external VPN gateway has
9889	// only one public IP address which internally provide redundancy or
9890	// failover.
9891	//   "TWO_IPS_REDUNDANCY" - The external VPN gateway has two public IP
9892	// addresses which are redundant with each other, the following two
9893	// types of setup on your on-premises side would have this type of
9894	// redundancy: (1) Two separate on-premises gateways, each with one
9895	// public IP address, the two on-premises gateways are redundant with
9896	// each other. (2) A single on-premise gateway with two public IP
9897	// addresses that are redundant with eatch other.
9898	RedundancyType string `json:"redundancyType,omitempty"`
9899
9900	// SelfLink: [Output Only] Server-defined URL for the resource.
9901	SelfLink string `json:"selfLink,omitempty"`
9902
9903	// ServerResponse contains the HTTP response code and headers from the
9904	// server.
9905	googleapi.ServerResponse `json:"-"`
9906
9907	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
9908	// to unconditionally include in API requests. By default, fields with
9909	// empty or default values are omitted from API requests. However, any
9910	// non-pointer, non-interface field appearing in ForceSendFields will be
9911	// sent to the server regardless of whether the field is empty or not.
9912	// This may be used to include empty fields in Patch requests.
9913	ForceSendFields []string `json:"-"`
9914
9915	// NullFields is a list of field names (e.g. "CreationTimestamp") to
9916	// include in API requests with the JSON null value. By default, fields
9917	// with empty values are omitted from API requests. However, any field
9918	// with an empty value appearing in NullFields will be sent to the
9919	// server as null. It is an error if a field in this list has a
9920	// non-empty value. This may be used to include null fields in Patch
9921	// requests.
9922	NullFields []string `json:"-"`
9923}
9924
9925func (s *ExternalVpnGateway) MarshalJSON() ([]byte, error) {
9926	type NoMethod ExternalVpnGateway
9927	raw := NoMethod(*s)
9928	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9929}
9930
9931// ExternalVpnGatewayInterface: The interface for the external VPN
9932// gateway.
9933type ExternalVpnGatewayInterface struct {
9934	// Id: The numeric ID of this interface. The allowed input values for
9935	// this id for different redundancy types of external VPN gateway: -
9936	// SINGLE_IP_INTERNALLY_REDUNDANT - 0 - TWO_IPS_REDUNDANCY - 0, 1 -
9937	// FOUR_IPS_REDUNDANCY - 0, 1, 2, 3
9938	Id int64 `json:"id,omitempty"`
9939
9940	// IpAddress: IP address of the interface in the external VPN gateway.
9941	// Only IPv4 is supported. This IP address can be either from your
9942	// on-premise gateway or another Cloud provider's VPN gateway, it cannot
9943	// be an IP address from Google Compute Engine.
9944	IpAddress string `json:"ipAddress,omitempty"`
9945
9946	// ForceSendFields is a list of field names (e.g. "Id") to
9947	// unconditionally include in API requests. By default, fields with
9948	// empty or default values are omitted from API requests. However, any
9949	// non-pointer, non-interface field appearing in ForceSendFields will be
9950	// sent to the server regardless of whether the field is empty or not.
9951	// This may be used to include empty fields in Patch requests.
9952	ForceSendFields []string `json:"-"`
9953
9954	// NullFields is a list of field names (e.g. "Id") to include in API
9955	// requests with the JSON null value. By default, fields with empty
9956	// values are omitted from API requests. However, any field with an
9957	// empty value appearing in NullFields will be sent to the server as
9958	// null. It is an error if a field in this list has a non-empty value.
9959	// This may be used to include null fields in Patch requests.
9960	NullFields []string `json:"-"`
9961}
9962
9963func (s *ExternalVpnGatewayInterface) MarshalJSON() ([]byte, error) {
9964	type NoMethod ExternalVpnGatewayInterface
9965	raw := NoMethod(*s)
9966	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9967}
9968
9969// ExternalVpnGatewayList: Response to the list request, and contains a
9970// list of externalVpnGateways.
9971type ExternalVpnGatewayList struct {
9972	Etag string `json:"etag,omitempty"`
9973
9974	// Id: [Output Only] Unique identifier for the resource; defined by the
9975	// server.
9976	Id string `json:"id,omitempty"`
9977
9978	// Items: A list of ExternalVpnGateway resources.
9979	Items []*ExternalVpnGateway `json:"items,omitempty"`
9980
9981	// Kind: [Output Only] Type of resource. Always
9982	// compute#externalVpnGatewayList for lists of externalVpnGateways.
9983	Kind string `json:"kind,omitempty"`
9984
9985	// NextPageToken: [Output Only] This token allows you to get the next
9986	// page of results for list requests. If the number of results is larger
9987	// than maxResults, use the nextPageToken as a value for the query
9988	// parameter pageToken in the next list request. Subsequent list
9989	// requests will have their own nextPageToken to continue paging through
9990	// the results.
9991	NextPageToken string `json:"nextPageToken,omitempty"`
9992
9993	// SelfLink: [Output Only] Server-defined URL for this resource.
9994	SelfLink string `json:"selfLink,omitempty"`
9995
9996	// Warning: [Output Only] Informational warning message.
9997	Warning *ExternalVpnGatewayListWarning `json:"warning,omitempty"`
9998
9999	// ServerResponse contains the HTTP response code and headers from the
10000	// server.
10001	googleapi.ServerResponse `json:"-"`
10002
10003	// ForceSendFields is a list of field names (e.g. "Etag") to
10004	// unconditionally include in API requests. By default, fields with
10005	// empty or default values are omitted from API requests. However, any
10006	// non-pointer, non-interface field appearing in ForceSendFields will be
10007	// sent to the server regardless of whether the field is empty or not.
10008	// This may be used to include empty fields in Patch requests.
10009	ForceSendFields []string `json:"-"`
10010
10011	// NullFields is a list of field names (e.g. "Etag") to include in API
10012	// requests with the JSON null value. By default, fields with empty
10013	// values are omitted from API requests. However, any field with an
10014	// empty value appearing in NullFields will be sent to the server as
10015	// null. It is an error if a field in this list has a non-empty value.
10016	// This may be used to include null fields in Patch requests.
10017	NullFields []string `json:"-"`
10018}
10019
10020func (s *ExternalVpnGatewayList) MarshalJSON() ([]byte, error) {
10021	type NoMethod ExternalVpnGatewayList
10022	raw := NoMethod(*s)
10023	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10024}
10025
10026// ExternalVpnGatewayListWarning: [Output Only] Informational warning
10027// message.
10028type ExternalVpnGatewayListWarning struct {
10029	// Code: [Output Only] A warning code, if applicable. For example,
10030	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10031	// the response.
10032	//
10033	// Possible values:
10034	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
10035	// changes made by a failed operation.
10036	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
10037	// created.
10038	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
10039	// resources has a type marked as deprecated
10040	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
10041	// that is larger than image size.
10042	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
10043	// resources has a type marked as experimental
10044	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
10045	// call
10046	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
10047	// overridden. Deprecated unused field.
10048	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
10049	// injected kernel, which is deprecated.
10050	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
10051	// exceedingly large number of resources
10052	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
10053	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
10054	// not assigned to an instance on the network.
10055	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
10056	// ip forward.
10057	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
10058	// refers to an instance that does not exist.
10059	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
10060	// URL refers to an instance that is not on the same network as the
10061	// route.
10062	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
10063	// have a status of RUNNING.
10064	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
10065	// continue the process despite the mentioned error.
10066	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
10067	// page.
10068	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
10069	// missing due to errors
10070	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
10071	// that requires a TOS they have not accepted.
10072	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
10073	// resource is in use.
10074	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
10075	// auto-delete could not be deleted because they were in use.
10076	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
10077	// ignored.
10078	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
10079	// instance group manager is valid as such, but its application does not
10080	// make a lot of sense, because it allows only single instance in
10081	// instance group.
10082	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
10083	// are present
10084	//   "UNREACHABLE" - A given scope cannot be reached.
10085	Code string `json:"code,omitempty"`
10086
10087	// Data: [Output Only] Metadata about this warning in key: value format.
10088	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
10089	// }
10090	Data []*ExternalVpnGatewayListWarningData `json:"data,omitempty"`
10091
10092	// Message: [Output Only] A human-readable description of the warning
10093	// code.
10094	Message string `json:"message,omitempty"`
10095
10096	// ForceSendFields is a list of field names (e.g. "Code") to
10097	// unconditionally include in API requests. By default, fields with
10098	// empty or default values are omitted from API requests. However, any
10099	// non-pointer, non-interface field appearing in ForceSendFields will be
10100	// sent to the server regardless of whether the field is empty or not.
10101	// This may be used to include empty fields in Patch requests.
10102	ForceSendFields []string `json:"-"`
10103
10104	// NullFields is a list of field names (e.g. "Code") to include in API
10105	// requests with the JSON null value. By default, fields with empty
10106	// values are omitted from API requests. However, any field with an
10107	// empty value appearing in NullFields will be sent to the server as
10108	// null. It is an error if a field in this list has a non-empty value.
10109	// This may be used to include null fields in Patch requests.
10110	NullFields []string `json:"-"`
10111}
10112
10113func (s *ExternalVpnGatewayListWarning) MarshalJSON() ([]byte, error) {
10114	type NoMethod ExternalVpnGatewayListWarning
10115	raw := NoMethod(*s)
10116	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10117}
10118
10119type ExternalVpnGatewayListWarningData struct {
10120	// Key: [Output Only] A key that provides more detail on the warning
10121	// being returned. For example, for warnings where there are no results
10122	// in a list request for a particular zone, this key might be scope and
10123	// the key value might be the zone name. Other examples might be a key
10124	// indicating a deprecated resource and a suggested replacement, or a
10125	// warning about invalid network settings (for example, if an instance
10126	// attempts to perform IP forwarding but is not enabled for IP
10127	// forwarding).
10128	Key string `json:"key,omitempty"`
10129
10130	// Value: [Output Only] A warning data value corresponding to the key.
10131	Value string `json:"value,omitempty"`
10132
10133	// ForceSendFields is a list of field names (e.g. "Key") to
10134	// unconditionally include in API requests. By default, fields with
10135	// empty or default values are omitted from API requests. However, any
10136	// non-pointer, non-interface field appearing in ForceSendFields will be
10137	// sent to the server regardless of whether the field is empty or not.
10138	// This may be used to include empty fields in Patch requests.
10139	ForceSendFields []string `json:"-"`
10140
10141	// NullFields is a list of field names (e.g. "Key") to include in API
10142	// requests with the JSON null value. By default, fields with empty
10143	// values are omitted from API requests. However, any field with an
10144	// empty value appearing in NullFields will be sent to the server as
10145	// null. It is an error if a field in this list has a non-empty value.
10146	// This may be used to include null fields in Patch requests.
10147	NullFields []string `json:"-"`
10148}
10149
10150func (s *ExternalVpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
10151	type NoMethod ExternalVpnGatewayListWarningData
10152	raw := NoMethod(*s)
10153	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10154}
10155
10156type FileContentBuffer struct {
10157	// Content: The raw content in the secure keys file.
10158	Content string `json:"content,omitempty"`
10159
10160	// FileType: The file type of source file.
10161	//
10162	// Possible values:
10163	//   "BIN"
10164	//   "UNDEFINED"
10165	//   "X509"
10166	FileType string `json:"fileType,omitempty"`
10167
10168	// ForceSendFields is a list of field names (e.g. "Content") to
10169	// unconditionally include in API requests. By default, fields with
10170	// empty or default values are omitted from API requests. However, any
10171	// non-pointer, non-interface field appearing in ForceSendFields will be
10172	// sent to the server regardless of whether the field is empty or not.
10173	// This may be used to include empty fields in Patch requests.
10174	ForceSendFields []string `json:"-"`
10175
10176	// NullFields is a list of field names (e.g. "Content") to include in
10177	// API requests with the JSON null value. By default, fields with empty
10178	// values are omitted from API requests. However, any field with an
10179	// empty value appearing in NullFields will be sent to the server as
10180	// null. It is an error if a field in this list has a non-empty value.
10181	// This may be used to include null fields in Patch requests.
10182	NullFields []string `json:"-"`
10183}
10184
10185func (s *FileContentBuffer) MarshalJSON() ([]byte, error) {
10186	type NoMethod FileContentBuffer
10187	raw := NoMethod(*s)
10188	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10189}
10190
10191// Firewall: Represents a Firewall Rule resource. Firewall rules allow
10192// or deny ingress traffic to, and egress traffic from your instances.
10193// For more information, read Firewall rules.
10194type Firewall struct {
10195	// Allowed: The list of ALLOW rules specified by this firewall. Each
10196	// rule specifies a protocol and port-range tuple that describes a
10197	// permitted connection.
10198	Allowed []*FirewallAllowed `json:"allowed,omitempty"`
10199
10200	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
10201	// format.
10202	CreationTimestamp string `json:"creationTimestamp,omitempty"`
10203
10204	// Denied: The list of DENY rules specified by this firewall. Each rule
10205	// specifies a protocol and port-range tuple that describes a denied
10206	// connection.
10207	Denied []*FirewallDenied `json:"denied,omitempty"`
10208
10209	// Description: An optional description of this resource. Provide this
10210	// field when you create the resource.
10211	Description string `json:"description,omitempty"`
10212
10213	// DestinationRanges: If destination ranges are specified, the firewall
10214	// rule applies only to traffic that has destination IP address in these
10215	// ranges. These ranges must be expressed in CIDR format. Both IPv4 and
10216	// IPv6 are supported.
10217	DestinationRanges []string `json:"destinationRanges,omitempty"`
10218
10219	// Direction: Direction of traffic to which this firewall applies,
10220	// either `INGRESS` or `EGRESS`. The default is `INGRESS`. For `INGRESS`
10221	// traffic, you cannot specify the destinationRanges field, and for
10222	// `EGRESS` traffic, you cannot specify the sourceRanges or sourceTags
10223	// fields.
10224	//
10225	// Possible values:
10226	//   "EGRESS" - Indicates that firewall should apply to outgoing
10227	// traffic.
10228	//   "INGRESS" - Indicates that firewall should apply to incoming
10229	// traffic.
10230	Direction string `json:"direction,omitempty"`
10231
10232	// Disabled: Denotes whether the firewall rule is disabled. When set to
10233	// true, the firewall rule is not enforced and the network behaves as if
10234	// it did not exist. If this is unspecified, the firewall rule will be
10235	// enabled.
10236	Disabled bool `json:"disabled,omitempty"`
10237
10238	// Id: [Output Only] The unique identifier for the resource. This
10239	// identifier is defined by the server.
10240	Id uint64 `json:"id,omitempty,string"`
10241
10242	// Kind: [Output Only] Type of the resource. Always compute#firewall for
10243	// firewall rules.
10244	Kind string `json:"kind,omitempty"`
10245
10246	// LogConfig: This field denotes the logging options for a particular
10247	// firewall rule. If logging is enabled, logs will be exported to Cloud
10248	// Logging.
10249	LogConfig *FirewallLogConfig `json:"logConfig,omitempty"`
10250
10251	// Name: Name of the resource; provided by the client when the resource
10252	// is created. The name must be 1-63 characters long, and comply with
10253	// RFC1035. Specifically, the name must be 1-63 characters long and
10254	// match the regular expression a-z ([-a-z0-9]*[a-z0-9])?. The first
10255	// character must be a lowercase letter, and all following characters
10256	// (except for the last character) must be a dash, lowercase letter, or
10257	// digit. The last character must be a lowercase letter or digit.
10258	Name string `json:"name,omitempty"`
10259
10260	// Network: URL of the network resource for this firewall rule. If not
10261	// specified when creating a firewall rule, the default network is used:
10262	// global/networks/default If you choose to specify this field, you can
10263	// specify the network as a full or partial URL. For example, the
10264	// following are all valid URLs: -
10265	// https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network
10266	// - projects/myproject/global/networks/my-network -
10267	// global/networks/default
10268	Network string `json:"network,omitempty"`
10269
10270	// Priority: Priority for this rule. This is an integer between `0` and
10271	// `65535`, both inclusive. The default value is `1000`. Relative
10272	// priorities determine which rule takes effect if multiple rules apply.
10273	// Lower values indicate higher priority. For example, a rule with
10274	// priority `0` has higher precedence than a rule with priority `1`.
10275	// DENY rules take precedence over ALLOW rules if they have equal
10276	// priority. Note that VPC networks have implied rules with a priority
10277	// of `65535`. To avoid conflicts with the implied rules, use a priority
10278	// number less than `65535`.
10279	Priority int64 `json:"priority,omitempty"`
10280
10281	// SelfLink: [Output Only] Server-defined URL for the resource.
10282	SelfLink string `json:"selfLink,omitempty"`
10283
10284	// SourceRanges: If source ranges are specified, the firewall rule
10285	// applies only to traffic that has a source IP address in these ranges.
10286	// These ranges must be expressed in CIDR format. One or both of
10287	// sourceRanges and sourceTags may be set. If both fields are set, the
10288	// rule applies to traffic that has a source IP address within
10289	// sourceRanges OR a source IP from a resource with a matching tag
10290	// listed in the sourceTags field. The connection does not need to match
10291	// both fields for the rule to apply. Both IPv4 and IPv6 are supported.
10292	SourceRanges []string `json:"sourceRanges,omitempty"`
10293
10294	// SourceServiceAccounts: If source service accounts are specified, the
10295	// firewall rules apply only to traffic originating from an instance
10296	// with a service account in this list. Source service accounts cannot
10297	// be used to control traffic to an instance's external IP address
10298	// because service accounts are associated with an instance, not an IP
10299	// address. sourceRanges can be set at the same time as
10300	// sourceServiceAccounts. If both are set, the firewall applies to
10301	// traffic that has a source IP address within the sourceRanges OR a
10302	// source IP that belongs to an instance with service account listed in
10303	// sourceServiceAccount. The connection does not need to match both
10304	// fields for the firewall to apply. sourceServiceAccounts cannot be
10305	// used at the same time as sourceTags or targetTags.
10306	SourceServiceAccounts []string `json:"sourceServiceAccounts,omitempty"`
10307
10308	// SourceTags: If source tags are specified, the firewall rule applies
10309	// only to traffic with source IPs that match the primary network
10310	// interfaces of VM instances that have the tag and are in the same VPC
10311	// network. Source tags cannot be used to control traffic to an
10312	// instance's external IP address, it only applies to traffic between
10313	// instances in the same virtual network. Because tags are associated
10314	// with instances, not IP addresses. One or both of sourceRanges and
10315	// sourceTags may be set. If both fields are set, the firewall applies
10316	// to traffic that has a source IP address within sourceRanges OR a
10317	// source IP from a resource with a matching tag listed in the
10318	// sourceTags field. The connection does not need to match both fields
10319	// for the firewall to apply.
10320	SourceTags []string `json:"sourceTags,omitempty"`
10321
10322	// TargetServiceAccounts: A list of service accounts indicating sets of
10323	// instances located in the network that may make network connections as
10324	// specified in allowed[]. targetServiceAccounts cannot be used at the
10325	// same time as targetTags or sourceTags. If neither
10326	// targetServiceAccounts nor targetTags are specified, the firewall rule
10327	// applies to all instances on the specified network.
10328	TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"`
10329
10330	// TargetTags: A list of tags that controls which instances the firewall
10331	// rule applies to. If targetTags are specified, then the firewall rule
10332	// applies only to instances in the VPC network that have one of those
10333	// tags. If no targetTags are specified, the firewall rule applies to
10334	// all instances on the specified network.
10335	TargetTags []string `json:"targetTags,omitempty"`
10336
10337	// ServerResponse contains the HTTP response code and headers from the
10338	// server.
10339	googleapi.ServerResponse `json:"-"`
10340
10341	// ForceSendFields is a list of field names (e.g. "Allowed") to
10342	// unconditionally include in API requests. By default, fields with
10343	// empty or default values are omitted from API requests. However, any
10344	// non-pointer, non-interface field appearing in ForceSendFields will be
10345	// sent to the server regardless of whether the field is empty or not.
10346	// This may be used to include empty fields in Patch requests.
10347	ForceSendFields []string `json:"-"`
10348
10349	// NullFields is a list of field names (e.g. "Allowed") to include in
10350	// API requests with the JSON null value. By default, fields with empty
10351	// values are omitted from API requests. However, any field with an
10352	// empty value appearing in NullFields will be sent to the server as
10353	// null. It is an error if a field in this list has a non-empty value.
10354	// This may be used to include null fields in Patch requests.
10355	NullFields []string `json:"-"`
10356}
10357
10358func (s *Firewall) MarshalJSON() ([]byte, error) {
10359	type NoMethod Firewall
10360	raw := NoMethod(*s)
10361	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10362}
10363
10364type FirewallAllowed struct {
10365	// IPProtocol: The IP protocol to which this rule applies. The protocol
10366	// type is required when creating a firewall rule. This value can either
10367	// be one of the following well known protocol strings (tcp, udp, icmp,
10368	// esp, ah, ipip, sctp) or the IP protocol number.
10369	IPProtocol string `json:"IPProtocol,omitempty"`
10370
10371	// Ports: An optional list of ports to which this rule applies. This
10372	// field is only applicable for the UDP or TCP protocol. Each entry must
10373	// be either an integer or a range. If not specified, this rule applies
10374	// to connections through any port. Example inputs include: ["22"],
10375	// ["80","443"], and ["12345-12349"].
10376	Ports []string `json:"ports,omitempty"`
10377
10378	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
10379	// unconditionally include in API requests. By default, fields with
10380	// empty or default values are omitted from API requests. However, any
10381	// non-pointer, non-interface field appearing in ForceSendFields will be
10382	// sent to the server regardless of whether the field is empty or not.
10383	// This may be used to include empty fields in Patch requests.
10384	ForceSendFields []string `json:"-"`
10385
10386	// NullFields is a list of field names (e.g. "IPProtocol") to include in
10387	// API requests with the JSON null value. By default, fields with empty
10388	// values are omitted from API requests. However, any field with an
10389	// empty value appearing in NullFields will be sent to the server as
10390	// null. It is an error if a field in this list has a non-empty value.
10391	// This may be used to include null fields in Patch requests.
10392	NullFields []string `json:"-"`
10393}
10394
10395func (s *FirewallAllowed) MarshalJSON() ([]byte, error) {
10396	type NoMethod FirewallAllowed
10397	raw := NoMethod(*s)
10398	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10399}
10400
10401type FirewallDenied struct {
10402	// IPProtocol: The IP protocol to which this rule applies. The protocol
10403	// type is required when creating a firewall rule. This value can either
10404	// be one of the following well known protocol strings (tcp, udp, icmp,
10405	// esp, ah, ipip, sctp) or the IP protocol number.
10406	IPProtocol string `json:"IPProtocol,omitempty"`
10407
10408	// Ports: An optional list of ports to which this rule applies. This
10409	// field is only applicable for the UDP or TCP protocol. Each entry must
10410	// be either an integer or a range. If not specified, this rule applies
10411	// to connections through any port. Example inputs include: ["22"],
10412	// ["80","443"], and ["12345-12349"].
10413	Ports []string `json:"ports,omitempty"`
10414
10415	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
10416	// unconditionally include in API requests. By default, fields with
10417	// empty or default values are omitted from API requests. However, any
10418	// non-pointer, non-interface field appearing in ForceSendFields will be
10419	// sent to the server regardless of whether the field is empty or not.
10420	// This may be used to include empty fields in Patch requests.
10421	ForceSendFields []string `json:"-"`
10422
10423	// NullFields is a list of field names (e.g. "IPProtocol") to include in
10424	// API requests with the JSON null value. By default, fields with empty
10425	// values are omitted from API requests. However, any field with an
10426	// empty value appearing in NullFields will be sent to the server as
10427	// null. It is an error if a field in this list has a non-empty value.
10428	// This may be used to include null fields in Patch requests.
10429	NullFields []string `json:"-"`
10430}
10431
10432func (s *FirewallDenied) MarshalJSON() ([]byte, error) {
10433	type NoMethod FirewallDenied
10434	raw := NoMethod(*s)
10435	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10436}
10437
10438// FirewallList: Contains a list of firewalls.
10439type FirewallList struct {
10440	// Id: [Output Only] Unique identifier for the resource; defined by the
10441	// server.
10442	Id string `json:"id,omitempty"`
10443
10444	// Items: A list of Firewall resources.
10445	Items []*Firewall `json:"items,omitempty"`
10446
10447	// Kind: [Output Only] Type of resource. Always compute#firewallList for
10448	// lists of firewalls.
10449	Kind string `json:"kind,omitempty"`
10450
10451	// NextPageToken: [Output Only] This token allows you to get the next
10452	// page of results for list requests. If the number of results is larger
10453	// than maxResults, use the nextPageToken as a value for the query
10454	// parameter pageToken in the next list request. Subsequent list
10455	// requests will have their own nextPageToken to continue paging through
10456	// the results.
10457	NextPageToken string `json:"nextPageToken,omitempty"`
10458
10459	// SelfLink: [Output Only] Server-defined URL for this resource.
10460	SelfLink string `json:"selfLink,omitempty"`
10461
10462	// Warning: [Output Only] Informational warning message.
10463	Warning *FirewallListWarning `json:"warning,omitempty"`
10464
10465	// ServerResponse contains the HTTP response code and headers from the
10466	// server.
10467	googleapi.ServerResponse `json:"-"`
10468
10469	// ForceSendFields is a list of field names (e.g. "Id") to
10470	// unconditionally include in API requests. By default, fields with
10471	// empty or default values are omitted from API requests. However, any
10472	// non-pointer, non-interface field appearing in ForceSendFields will be
10473	// sent to the server regardless of whether the field is empty or not.
10474	// This may be used to include empty fields in Patch requests.
10475	ForceSendFields []string `json:"-"`
10476
10477	// NullFields is a list of field names (e.g. "Id") to include in API
10478	// requests with the JSON null value. By default, fields with empty
10479	// values are omitted from API requests. However, any field with an
10480	// empty value appearing in NullFields will be sent to the server as
10481	// null. It is an error if a field in this list has a non-empty value.
10482	// This may be used to include null fields in Patch requests.
10483	NullFields []string `json:"-"`
10484}
10485
10486func (s *FirewallList) MarshalJSON() ([]byte, error) {
10487	type NoMethod FirewallList
10488	raw := NoMethod(*s)
10489	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10490}
10491
10492// FirewallListWarning: [Output Only] Informational warning message.
10493type FirewallListWarning struct {
10494	// Code: [Output Only] A warning code, if applicable. For example,
10495	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10496	// the response.
10497	//
10498	// Possible values:
10499	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
10500	// changes made by a failed operation.
10501	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
10502	// created.
10503	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
10504	// resources has a type marked as deprecated
10505	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
10506	// that is larger than image size.
10507	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
10508	// resources has a type marked as experimental
10509	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
10510	// call
10511	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
10512	// overridden. Deprecated unused field.
10513	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
10514	// injected kernel, which is deprecated.
10515	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
10516	// exceedingly large number of resources
10517	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
10518	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
10519	// not assigned to an instance on the network.
10520	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
10521	// ip forward.
10522	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
10523	// refers to an instance that does not exist.
10524	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
10525	// URL refers to an instance that is not on the same network as the
10526	// route.
10527	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
10528	// have a status of RUNNING.
10529	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
10530	// continue the process despite the mentioned error.
10531	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
10532	// page.
10533	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
10534	// missing due to errors
10535	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
10536	// that requires a TOS they have not accepted.
10537	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
10538	// resource is in use.
10539	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
10540	// auto-delete could not be deleted because they were in use.
10541	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
10542	// ignored.
10543	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
10544	// instance group manager is valid as such, but its application does not
10545	// make a lot of sense, because it allows only single instance in
10546	// instance group.
10547	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
10548	// are present
10549	//   "UNREACHABLE" - A given scope cannot be reached.
10550	Code string `json:"code,omitempty"`
10551
10552	// Data: [Output Only] Metadata about this warning in key: value format.
10553	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
10554	// }
10555	Data []*FirewallListWarningData `json:"data,omitempty"`
10556
10557	// Message: [Output Only] A human-readable description of the warning
10558	// code.
10559	Message string `json:"message,omitempty"`
10560
10561	// ForceSendFields is a list of field names (e.g. "Code") to
10562	// unconditionally include in API requests. By default, fields with
10563	// empty or default values are omitted from API requests. However, any
10564	// non-pointer, non-interface field appearing in ForceSendFields will be
10565	// sent to the server regardless of whether the field is empty or not.
10566	// This may be used to include empty fields in Patch requests.
10567	ForceSendFields []string `json:"-"`
10568
10569	// NullFields is a list of field names (e.g. "Code") to include in API
10570	// requests with the JSON null value. By default, fields with empty
10571	// values are omitted from API requests. However, any field with an
10572	// empty value appearing in NullFields will be sent to the server as
10573	// null. It is an error if a field in this list has a non-empty value.
10574	// This may be used to include null fields in Patch requests.
10575	NullFields []string `json:"-"`
10576}
10577
10578func (s *FirewallListWarning) MarshalJSON() ([]byte, error) {
10579	type NoMethod FirewallListWarning
10580	raw := NoMethod(*s)
10581	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10582}
10583
10584type FirewallListWarningData struct {
10585	// Key: [Output Only] A key that provides more detail on the warning
10586	// being returned. For example, for warnings where there are no results
10587	// in a list request for a particular zone, this key might be scope and
10588	// the key value might be the zone name. Other examples might be a key
10589	// indicating a deprecated resource and a suggested replacement, or a
10590	// warning about invalid network settings (for example, if an instance
10591	// attempts to perform IP forwarding but is not enabled for IP
10592	// forwarding).
10593	Key string `json:"key,omitempty"`
10594
10595	// Value: [Output Only] A warning data value corresponding to the key.
10596	Value string `json:"value,omitempty"`
10597
10598	// ForceSendFields is a list of field names (e.g. "Key") to
10599	// unconditionally include in API requests. By default, fields with
10600	// empty or default values are omitted from API requests. However, any
10601	// non-pointer, non-interface field appearing in ForceSendFields will be
10602	// sent to the server regardless of whether the field is empty or not.
10603	// This may be used to include empty fields in Patch requests.
10604	ForceSendFields []string `json:"-"`
10605
10606	// NullFields is a list of field names (e.g. "Key") to include in API
10607	// requests with the JSON null value. By default, fields with empty
10608	// values are omitted from API requests. However, any field with an
10609	// empty value appearing in NullFields will be sent to the server as
10610	// null. It is an error if a field in this list has a non-empty value.
10611	// This may be used to include null fields in Patch requests.
10612	NullFields []string `json:"-"`
10613}
10614
10615func (s *FirewallListWarningData) MarshalJSON() ([]byte, error) {
10616	type NoMethod FirewallListWarningData
10617	raw := NoMethod(*s)
10618	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10619}
10620
10621// FirewallLogConfig: The available logging options for a firewall rule.
10622type FirewallLogConfig struct {
10623	// Enable: This field denotes whether to enable logging for a particular
10624	// firewall rule.
10625	Enable bool `json:"enable,omitempty"`
10626
10627	// Metadata: This field can only be specified for a particular firewall
10628	// rule if logging is enabled for that rule. This field denotes whether
10629	// to include or exclude metadata for firewall logs.
10630	//
10631	// Possible values:
10632	//   "EXCLUDE_ALL_METADATA"
10633	//   "INCLUDE_ALL_METADATA"
10634	Metadata string `json:"metadata,omitempty"`
10635
10636	// ForceSendFields is a list of field names (e.g. "Enable") to
10637	// unconditionally include in API requests. By default, fields with
10638	// empty or default values are omitted from API requests. However, any
10639	// non-pointer, non-interface field appearing in ForceSendFields will be
10640	// sent to the server regardless of whether the field is empty or not.
10641	// This may be used to include empty fields in Patch requests.
10642	ForceSendFields []string `json:"-"`
10643
10644	// NullFields is a list of field names (e.g. "Enable") to include in API
10645	// requests with the JSON null value. By default, fields with empty
10646	// values are omitted from API requests. However, any field with an
10647	// empty value appearing in NullFields will be sent to the server as
10648	// null. It is an error if a field in this list has a non-empty value.
10649	// This may be used to include null fields in Patch requests.
10650	NullFields []string `json:"-"`
10651}
10652
10653func (s *FirewallLogConfig) MarshalJSON() ([]byte, error) {
10654	type NoMethod FirewallLogConfig
10655	raw := NoMethod(*s)
10656	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10657}
10658
10659type FirewallPoliciesListAssociationsResponse struct {
10660	// Associations: A list of associations.
10661	Associations []*FirewallPolicyAssociation `json:"associations,omitempty"`
10662
10663	// Kind: [Output Only] Type of firewallPolicy associations. Always
10664	// compute#FirewallPoliciesListAssociations for lists of firewallPolicy
10665	// associations.
10666	Kind string `json:"kind,omitempty"`
10667
10668	// ServerResponse contains the HTTP response code and headers from the
10669	// server.
10670	googleapi.ServerResponse `json:"-"`
10671
10672	// ForceSendFields is a list of field names (e.g. "Associations") to
10673	// unconditionally include in API requests. By default, fields with
10674	// empty or default values are omitted from API requests. However, any
10675	// non-pointer, non-interface field appearing in ForceSendFields will be
10676	// sent to the server regardless of whether the field is empty or not.
10677	// This may be used to include empty fields in Patch requests.
10678	ForceSendFields []string `json:"-"`
10679
10680	// NullFields is a list of field names (e.g. "Associations") to include
10681	// in API requests with the JSON null value. By default, fields with
10682	// empty values are omitted from API requests. However, any field with
10683	// an empty value appearing in NullFields will be sent to the server as
10684	// null. It is an error if a field in this list has a non-empty value.
10685	// This may be used to include null fields in Patch requests.
10686	NullFields []string `json:"-"`
10687}
10688
10689func (s *FirewallPoliciesListAssociationsResponse) MarshalJSON() ([]byte, error) {
10690	type NoMethod FirewallPoliciesListAssociationsResponse
10691	raw := NoMethod(*s)
10692	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10693}
10694
10695// FirewallPolicy: Represents a Firewall Policy resource.
10696type FirewallPolicy struct {
10697	// Associations: A list of associations that belong to this firewall
10698	// policy.
10699	Associations []*FirewallPolicyAssociation `json:"associations,omitempty"`
10700
10701	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
10702	// format.
10703	CreationTimestamp string `json:"creationTimestamp,omitempty"`
10704
10705	// Description: An optional description of this resource. Provide this
10706	// property when you create the resource.
10707	Description string `json:"description,omitempty"`
10708
10709	// DisplayName: Deprecated, please use short name instead. User-provided
10710	// name of the Organization firewall policy. The name should be unique
10711	// in the organization in which the firewall policy is created. This
10712	// name must be set on creation and cannot be changed. The name must be
10713	// 1-63 characters long, and comply with RFC1035. Specifically, the name
10714	// must be 1-63 characters long and match the regular expression
10715	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
10716	// a lowercase letter, and all following characters must be a dash,
10717	// lowercase letter, or digit, except the last character, which cannot
10718	// be a dash.
10719	DisplayName string `json:"displayName,omitempty"`
10720
10721	// Fingerprint: Specifies a fingerprint for this resource, which is
10722	// essentially a hash of the metadata's contents and used for optimistic
10723	// locking. The fingerprint is initially generated by Compute Engine and
10724	// changes after every request to modify or update metadata. You must
10725	// always provide an up-to-date fingerprint hash in order to update or
10726	// change metadata, otherwise the request will fail with error 412
10727	// conditionNotMet. To see the latest fingerprint, make get() request to
10728	// the firewall policy.
10729	Fingerprint string `json:"fingerprint,omitempty"`
10730
10731	// Id: [Output Only] The unique identifier for the resource. This
10732	// identifier is defined by the server.
10733	Id uint64 `json:"id,omitempty,string"`
10734
10735	// Kind: [Output only] Type of the resource. Always
10736	// compute#firewallPolicyfor firewall policies
10737	Kind string `json:"kind,omitempty"`
10738
10739	// Name: [Output Only] Name of the resource. It is a numeric ID
10740	// allocated by GCP which uniquely identifies the Firewall Policy.
10741	Name string `json:"name,omitempty"`
10742
10743	// Parent: [Output Only] The parent of the firewall policy.
10744	Parent string `json:"parent,omitempty"`
10745
10746	// RuleTupleCount: [Output Only] Total count of all firewall policy rule
10747	// tuples. A firewall policy can not exceed a set number of tuples.
10748	RuleTupleCount int64 `json:"ruleTupleCount,omitempty"`
10749
10750	// Rules: A list of rules that belong to this policy. There must always
10751	// be a default rule (rule with priority 2147483647 and match "*"). If
10752	// no rules are provided when creating a firewall policy, a default rule
10753	// with action "allow" will be added.
10754	Rules []*FirewallPolicyRule `json:"rules,omitempty"`
10755
10756	// SelfLink: [Output Only] Server-defined URL for the resource.
10757	SelfLink string `json:"selfLink,omitempty"`
10758
10759	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
10760	// with the resource id.
10761	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
10762
10763	// ShortName: User-provided name of the Organization firewall plicy. The
10764	// name should be unique in the organization in which the firewall
10765	// policy is created. This name must be set on creation and cannot be
10766	// changed. The name must be 1-63 characters long, and comply with
10767	// RFC1035. Specifically, the name must be 1-63 characters long and
10768	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
10769	// the first character must be a lowercase letter, and all following
10770	// characters must be a dash, lowercase letter, or digit, except the
10771	// last character, which cannot be a dash.
10772	ShortName string `json:"shortName,omitempty"`
10773
10774	// ServerResponse contains the HTTP response code and headers from the
10775	// server.
10776	googleapi.ServerResponse `json:"-"`
10777
10778	// ForceSendFields is a list of field names (e.g. "Associations") to
10779	// unconditionally include in API requests. By default, fields with
10780	// empty or default values are omitted from API requests. However, any
10781	// non-pointer, non-interface field appearing in ForceSendFields will be
10782	// sent to the server regardless of whether the field is empty or not.
10783	// This may be used to include empty fields in Patch requests.
10784	ForceSendFields []string `json:"-"`
10785
10786	// NullFields is a list of field names (e.g. "Associations") to include
10787	// in API requests with the JSON null value. By default, fields with
10788	// empty values are omitted from API requests. However, any field with
10789	// an empty value appearing in NullFields will be sent to the server as
10790	// null. It is an error if a field in this list has a non-empty value.
10791	// This may be used to include null fields in Patch requests.
10792	NullFields []string `json:"-"`
10793}
10794
10795func (s *FirewallPolicy) MarshalJSON() ([]byte, error) {
10796	type NoMethod FirewallPolicy
10797	raw := NoMethod(*s)
10798	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10799}
10800
10801type FirewallPolicyAssociation struct {
10802	// AttachmentTarget: The target that the firewall policy is attached to.
10803	AttachmentTarget string `json:"attachmentTarget,omitempty"`
10804
10805	// DisplayName: [Output Only] Deprecated, please use short name instead.
10806	// The display name of the firewall policy of the association.
10807	DisplayName string `json:"displayName,omitempty"`
10808
10809	// FirewallPolicyId: [Output Only] The firewall policy ID of the
10810	// association.
10811	FirewallPolicyId string `json:"firewallPolicyId,omitempty"`
10812
10813	// Name: The name for an association.
10814	Name string `json:"name,omitempty"`
10815
10816	// ShortName: [Output Only] The short name of the firewall policy of the
10817	// association.
10818	ShortName string `json:"shortName,omitempty"`
10819
10820	// ServerResponse contains the HTTP response code and headers from the
10821	// server.
10822	googleapi.ServerResponse `json:"-"`
10823
10824	// ForceSendFields is a list of field names (e.g. "AttachmentTarget") to
10825	// unconditionally include in API requests. By default, fields with
10826	// empty or default values are omitted from API requests. However, any
10827	// non-pointer, non-interface field appearing in ForceSendFields will be
10828	// sent to the server regardless of whether the field is empty or not.
10829	// This may be used to include empty fields in Patch requests.
10830	ForceSendFields []string `json:"-"`
10831
10832	// NullFields is a list of field names (e.g. "AttachmentTarget") to
10833	// include in API requests with the JSON null value. By default, fields
10834	// with empty values are omitted from API requests. However, any field
10835	// with an empty value appearing in NullFields will be sent to the
10836	// server as null. It is an error if a field in this list has a
10837	// non-empty value. This may be used to include null fields in Patch
10838	// requests.
10839	NullFields []string `json:"-"`
10840}
10841
10842func (s *FirewallPolicyAssociation) MarshalJSON() ([]byte, error) {
10843	type NoMethod FirewallPolicyAssociation
10844	raw := NoMethod(*s)
10845	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10846}
10847
10848type FirewallPolicyList struct {
10849	// Id: [Output Only] Unique identifier for the resource; defined by the
10850	// server.
10851	Id string `json:"id,omitempty"`
10852
10853	// Items: A list of FirewallPolicy resources.
10854	Items []*FirewallPolicy `json:"items,omitempty"`
10855
10856	// Kind: [Output Only] Type of resource. Always
10857	// compute#firewallPolicyList for listsof FirewallPolicies
10858	Kind string `json:"kind,omitempty"`
10859
10860	// NextPageToken: [Output Only] This token allows you to get the next
10861	// page of results for list requests. If the number of results is larger
10862	// than maxResults, use the nextPageToken as a value for the query
10863	// parameter pageToken in the next list request. Subsequent list
10864	// requests will have their own nextPageToken to continue paging through
10865	// the results.
10866	NextPageToken string `json:"nextPageToken,omitempty"`
10867
10868	// Warning: [Output Only] Informational warning message.
10869	Warning *FirewallPolicyListWarning `json:"warning,omitempty"`
10870
10871	// ServerResponse contains the HTTP response code and headers from the
10872	// server.
10873	googleapi.ServerResponse `json:"-"`
10874
10875	// ForceSendFields is a list of field names (e.g. "Id") to
10876	// unconditionally include in API requests. By default, fields with
10877	// empty or default values are omitted from API requests. However, any
10878	// non-pointer, non-interface field appearing in ForceSendFields will be
10879	// sent to the server regardless of whether the field is empty or not.
10880	// This may be used to include empty fields in Patch requests.
10881	ForceSendFields []string `json:"-"`
10882
10883	// NullFields is a list of field names (e.g. "Id") to include in API
10884	// requests with the JSON null value. By default, fields with empty
10885	// values are omitted from API requests. However, any field with an
10886	// empty value appearing in NullFields will be sent to the server as
10887	// null. It is an error if a field in this list has a non-empty value.
10888	// This may be used to include null fields in Patch requests.
10889	NullFields []string `json:"-"`
10890}
10891
10892func (s *FirewallPolicyList) MarshalJSON() ([]byte, error) {
10893	type NoMethod FirewallPolicyList
10894	raw := NoMethod(*s)
10895	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10896}
10897
10898// FirewallPolicyListWarning: [Output Only] Informational warning
10899// message.
10900type FirewallPolicyListWarning struct {
10901	// Code: [Output Only] A warning code, if applicable. For example,
10902	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10903	// the response.
10904	//
10905	// Possible values:
10906	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
10907	// changes made by a failed operation.
10908	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
10909	// created.
10910	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
10911	// resources has a type marked as deprecated
10912	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
10913	// that is larger than image size.
10914	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
10915	// resources has a type marked as experimental
10916	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
10917	// call
10918	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
10919	// overridden. Deprecated unused field.
10920	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
10921	// injected kernel, which is deprecated.
10922	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
10923	// exceedingly large number of resources
10924	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
10925	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
10926	// not assigned to an instance on the network.
10927	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
10928	// ip forward.
10929	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
10930	// refers to an instance that does not exist.
10931	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
10932	// URL refers to an instance that is not on the same network as the
10933	// route.
10934	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
10935	// have a status of RUNNING.
10936	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
10937	// continue the process despite the mentioned error.
10938	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
10939	// page.
10940	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
10941	// missing due to errors
10942	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
10943	// that requires a TOS they have not accepted.
10944	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
10945	// resource is in use.
10946	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
10947	// auto-delete could not be deleted because they were in use.
10948	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
10949	// ignored.
10950	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
10951	// instance group manager is valid as such, but its application does not
10952	// make a lot of sense, because it allows only single instance in
10953	// instance group.
10954	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
10955	// are present
10956	//   "UNREACHABLE" - A given scope cannot be reached.
10957	Code string `json:"code,omitempty"`
10958
10959	// Data: [Output Only] Metadata about this warning in key: value format.
10960	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
10961	// }
10962	Data []*FirewallPolicyListWarningData `json:"data,omitempty"`
10963
10964	// Message: [Output Only] A human-readable description of the warning
10965	// code.
10966	Message string `json:"message,omitempty"`
10967
10968	// ForceSendFields is a list of field names (e.g. "Code") to
10969	// unconditionally include in API requests. By default, fields with
10970	// empty or default values are omitted from API requests. However, any
10971	// non-pointer, non-interface field appearing in ForceSendFields will be
10972	// sent to the server regardless of whether the field is empty or not.
10973	// This may be used to include empty fields in Patch requests.
10974	ForceSendFields []string `json:"-"`
10975
10976	// NullFields is a list of field names (e.g. "Code") to include in API
10977	// requests with the JSON null value. By default, fields with empty
10978	// values are omitted from API requests. However, any field with an
10979	// empty value appearing in NullFields will be sent to the server as
10980	// null. It is an error if a field in this list has a non-empty value.
10981	// This may be used to include null fields in Patch requests.
10982	NullFields []string `json:"-"`
10983}
10984
10985func (s *FirewallPolicyListWarning) MarshalJSON() ([]byte, error) {
10986	type NoMethod FirewallPolicyListWarning
10987	raw := NoMethod(*s)
10988	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10989}
10990
10991type FirewallPolicyListWarningData struct {
10992	// Key: [Output Only] A key that provides more detail on the warning
10993	// being returned. For example, for warnings where there are no results
10994	// in a list request for a particular zone, this key might be scope and
10995	// the key value might be the zone name. Other examples might be a key
10996	// indicating a deprecated resource and a suggested replacement, or a
10997	// warning about invalid network settings (for example, if an instance
10998	// attempts to perform IP forwarding but is not enabled for IP
10999	// forwarding).
11000	Key string `json:"key,omitempty"`
11001
11002	// Value: [Output Only] A warning data value corresponding to the key.
11003	Value string `json:"value,omitempty"`
11004
11005	// ForceSendFields is a list of field names (e.g. "Key") to
11006	// unconditionally include in API requests. By default, fields with
11007	// empty or default values are omitted from API requests. However, any
11008	// non-pointer, non-interface field appearing in ForceSendFields will be
11009	// sent to the server regardless of whether the field is empty or not.
11010	// This may be used to include empty fields in Patch requests.
11011	ForceSendFields []string `json:"-"`
11012
11013	// NullFields is a list of field names (e.g. "Key") to include in API
11014	// requests with the JSON null value. By default, fields with empty
11015	// values are omitted from API requests. However, any field with an
11016	// empty value appearing in NullFields will be sent to the server as
11017	// null. It is an error if a field in this list has a non-empty value.
11018	// This may be used to include null fields in Patch requests.
11019	NullFields []string `json:"-"`
11020}
11021
11022func (s *FirewallPolicyListWarningData) MarshalJSON() ([]byte, error) {
11023	type NoMethod FirewallPolicyListWarningData
11024	raw := NoMethod(*s)
11025	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11026}
11027
11028// FirewallPolicyRule: Represents a rule that describes one or more
11029// match conditions along with the action to be taken when traffic
11030// matches this condition (allow or deny).
11031type FirewallPolicyRule struct {
11032	// Action: The Action to perform when the client connection triggers the
11033	// rule. Can currently be either "allow" or "deny()" where valid values
11034	// for status are 403, 404, and 502.
11035	Action string `json:"action,omitempty"`
11036
11037	// Description: An optional description for this resource.
11038	Description string `json:"description,omitempty"`
11039
11040	// Direction: The direction in which this rule applies.
11041	//
11042	// Possible values:
11043	//   "EGRESS"
11044	//   "INGRESS"
11045	Direction string `json:"direction,omitempty"`
11046
11047	// Disabled: Denotes whether the firewall policy rule is disabled. When
11048	// set to true, the firewall policy rule is not enforced and traffic
11049	// behaves as if it did not exist. If this is unspecified, the firewall
11050	// policy rule will be enabled.
11051	Disabled bool `json:"disabled,omitempty"`
11052
11053	// EnableLogging: Denotes whether to enable logging for a particular
11054	// rule. If logging is enabled, logs will be exported to the configured
11055	// export destination in Stackdriver. Logs may be exported to BigQuery
11056	// or Pub/Sub. Note: you cannot enable logging on "goto_next" rules.
11057	EnableLogging bool `json:"enableLogging,omitempty"`
11058
11059	// Kind: [Output only] Type of the resource. Always
11060	// compute#firewallPolicyRule for firewall policy rules
11061	Kind string `json:"kind,omitempty"`
11062
11063	// Match: A match condition that incoming traffic is evaluated against.
11064	// If it evaluates to true, the corresponding 'action' is enforced.
11065	Match *FirewallPolicyRuleMatcher `json:"match,omitempty"`
11066
11067	// Priority: An integer indicating the priority of a rule in the list.
11068	// The priority must be a positive value between 0 and 2147483647. Rules
11069	// are evaluated from highest to lowest priority where 0 is the highest
11070	// priority and 2147483647 is the lowest prority.
11071	Priority int64 `json:"priority,omitempty"`
11072
11073	// RuleTupleCount: [Output Only] Calculation of the complexity of a
11074	// single firewall policy rule.
11075	RuleTupleCount int64 `json:"ruleTupleCount,omitempty"`
11076
11077	// TargetResources: A list of network resource URLs to which this rule
11078	// applies. This field allows you to control which network's VMs get
11079	// this rule. If this field is left blank, all VMs within the
11080	// organization will receive the rule.
11081	TargetResources []string `json:"targetResources,omitempty"`
11082
11083	// TargetServiceAccounts: A list of service accounts indicating the sets
11084	// of instances that are applied with this rule.
11085	TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"`
11086
11087	// ServerResponse contains the HTTP response code and headers from the
11088	// server.
11089	googleapi.ServerResponse `json:"-"`
11090
11091	// ForceSendFields is a list of field names (e.g. "Action") to
11092	// unconditionally include in API requests. By default, fields with
11093	// empty or default values are omitted from API requests. However, any
11094	// non-pointer, non-interface field appearing in ForceSendFields will be
11095	// sent to the server regardless of whether the field is empty or not.
11096	// This may be used to include empty fields in Patch requests.
11097	ForceSendFields []string `json:"-"`
11098
11099	// NullFields is a list of field names (e.g. "Action") to include in API
11100	// requests with the JSON null value. By default, fields with empty
11101	// values are omitted from API requests. However, any field with an
11102	// empty value appearing in NullFields will be sent to the server as
11103	// null. It is an error if a field in this list has a non-empty value.
11104	// This may be used to include null fields in Patch requests.
11105	NullFields []string `json:"-"`
11106}
11107
11108func (s *FirewallPolicyRule) MarshalJSON() ([]byte, error) {
11109	type NoMethod FirewallPolicyRule
11110	raw := NoMethod(*s)
11111	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11112}
11113
11114// FirewallPolicyRuleMatcher: Represents a match condition that incoming
11115// traffic is evaluated against. Exactly one field must be specified.
11116type FirewallPolicyRuleMatcher struct {
11117	// DestIpRanges: CIDR IP address range. Maximum number of destination
11118	// CIDR IP ranges allowed is 5000.
11119	DestIpRanges []string `json:"destIpRanges,omitempty"`
11120
11121	// Layer4Configs: Pairs of IP protocols and ports that the rule should
11122	// match.
11123	Layer4Configs []*FirewallPolicyRuleMatcherLayer4Config `json:"layer4Configs,omitempty"`
11124
11125	// SrcIpRanges: CIDR IP address range. Maximum number of source CIDR IP
11126	// ranges allowed is 5000.
11127	SrcIpRanges []string `json:"srcIpRanges,omitempty"`
11128
11129	// ForceSendFields is a list of field names (e.g. "DestIpRanges") to
11130	// unconditionally include in API requests. By default, fields with
11131	// empty or default values are omitted from API requests. However, any
11132	// non-pointer, non-interface field appearing in ForceSendFields will be
11133	// sent to the server regardless of whether the field is empty or not.
11134	// This may be used to include empty fields in Patch requests.
11135	ForceSendFields []string `json:"-"`
11136
11137	// NullFields is a list of field names (e.g. "DestIpRanges") to include
11138	// in API requests with the JSON null value. By default, fields with
11139	// empty values are omitted from API requests. However, any field with
11140	// an empty value appearing in NullFields will be sent to the server as
11141	// null. It is an error if a field in this list has a non-empty value.
11142	// This may be used to include null fields in Patch requests.
11143	NullFields []string `json:"-"`
11144}
11145
11146func (s *FirewallPolicyRuleMatcher) MarshalJSON() ([]byte, error) {
11147	type NoMethod FirewallPolicyRuleMatcher
11148	raw := NoMethod(*s)
11149	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11150}
11151
11152type FirewallPolicyRuleMatcherLayer4Config struct {
11153	// IpProtocol: The IP protocol to which this rule applies. The protocol
11154	// type is required when creating a firewall rule. This value can either
11155	// be one of the following well known protocol strings (tcp, udp, icmp,
11156	// esp, ah, ipip, sctp), or the IP protocol number.
11157	IpProtocol string `json:"ipProtocol,omitempty"`
11158
11159	// Ports: An optional list of ports to which this rule applies. This
11160	// field is only applicable for UDP or TCP protocol. Each entry must be
11161	// either an integer or a range. If not specified, this rule applies to
11162	// connections through any port. Example inputs include: ["22"],
11163	// ["80","443"], and ["12345-12349"].
11164	Ports []string `json:"ports,omitempty"`
11165
11166	// ForceSendFields is a list of field names (e.g. "IpProtocol") to
11167	// unconditionally include in API requests. By default, fields with
11168	// empty or default values are omitted from API requests. However, any
11169	// non-pointer, non-interface field appearing in ForceSendFields will be
11170	// sent to the server regardless of whether the field is empty or not.
11171	// This may be used to include empty fields in Patch requests.
11172	ForceSendFields []string `json:"-"`
11173
11174	// NullFields is a list of field names (e.g. "IpProtocol") to include in
11175	// API requests with the JSON null value. By default, fields with empty
11176	// values are omitted from API requests. However, any field with an
11177	// empty value appearing in NullFields will be sent to the server as
11178	// null. It is an error if a field in this list has a non-empty value.
11179	// This may be used to include null fields in Patch requests.
11180	NullFields []string `json:"-"`
11181}
11182
11183func (s *FirewallPolicyRuleMatcherLayer4Config) MarshalJSON() ([]byte, error) {
11184	type NoMethod FirewallPolicyRuleMatcherLayer4Config
11185	raw := NoMethod(*s)
11186	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11187}
11188
11189// FixedOrPercent: Encapsulates numeric value that can be either
11190// absolute or relative.
11191type FixedOrPercent struct {
11192	// Calculated: [Output Only] Absolute value of VM instances calculated
11193	// based on the specific mode. - If the value is fixed, then the
11194	// calculated value is equal to the fixed value. - If the value is a
11195	// percent, then the calculated value is percent/100 * targetSize. For
11196	// example, the calculated value of a 80% of a managed instance group
11197	// with 150 instances would be (80/100 * 150) = 120 VM instances. If
11198	// there is a remainder, the number is rounded.
11199	Calculated int64 `json:"calculated,omitempty"`
11200
11201	// Fixed: Specifies a fixed number of VM instances. This must be a
11202	// positive integer.
11203	Fixed int64 `json:"fixed,omitempty"`
11204
11205	// Percent: Specifies a percentage of instances between 0 to 100%,
11206	// inclusive. For example, specify 80 for 80%.
11207	Percent int64 `json:"percent,omitempty"`
11208
11209	// ForceSendFields is a list of field names (e.g. "Calculated") to
11210	// unconditionally include in API requests. By default, fields with
11211	// empty or default values are omitted from API requests. However, any
11212	// non-pointer, non-interface field appearing in ForceSendFields will be
11213	// sent to the server regardless of whether the field is empty or not.
11214	// This may be used to include empty fields in Patch requests.
11215	ForceSendFields []string `json:"-"`
11216
11217	// NullFields is a list of field names (e.g. "Calculated") to include in
11218	// API requests with the JSON null value. By default, fields with empty
11219	// values are omitted from API requests. However, any field with an
11220	// empty value appearing in NullFields will be sent to the server as
11221	// null. It is an error if a field in this list has a non-empty value.
11222	// This may be used to include null fields in Patch requests.
11223	NullFields []string `json:"-"`
11224}
11225
11226func (s *FixedOrPercent) MarshalJSON() ([]byte, error) {
11227	type NoMethod FixedOrPercent
11228	raw := NoMethod(*s)
11229	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11230}
11231
11232// ForwardingRule: Represents a Forwarding Rule resource. Forwarding
11233// rule resources in Google Cloud can be either regional or global in
11234// scope: * Global
11235// (https://cloud.google.com/compute/docs/reference/rest/v1/globalForwardingRules)
11236// * Regional
11237// (https://cloud.google.com/compute/docs/reference/rest/v1/forwardingRules)
11238// A forwarding rule and its corresponding IP address represent the
11239// frontend configuration of a Google Cloud Platform load balancer.
11240// Forwarding rules can also reference target instances and Cloud VPN
11241// Classic gateways (targetVpnGateway). For more information, read
11242// Forwarding rule concepts and Using protocol forwarding.
11243type ForwardingRule struct {
11244	// IPAddress: IP address that this forwarding rule serves. When a client
11245	// sends traffic to this IP address, the forwarding rule directs the
11246	// traffic to the target that you specify in the forwarding rule. If you
11247	// don't specify a reserved IP address, an ephemeral IP address is
11248	// assigned. Methods for specifying an IP address: * IPv4 dotted
11249	// decimal, as in `100.1.2.3` * Full URL, as in
11250	// https://www.googleapis.com/compute/v1/projects/project_id/regions/region
11251	// /addresses/address-name * Partial URL or by name, as in: -
11252	// projects/project_id/regions/region/addresses/address-name -
11253	// regions/region/addresses/address-name - global/addresses/address-name
11254	// - address-name The loadBalancingScheme and the forwarding rule's
11255	// target determine the type of IP address that you can use. For
11256	// detailed information, see IP address specifications
11257	// (https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).
11258	// Must be set to `0.0.0.0` when the target is targetGrpcProxy that has
11259	// validateForProxyless field set to true. For Private Service Connect
11260	// forwarding rules that forward traffic to Google APIs, IP address must
11261	// be provided.
11262	IPAddress string `json:"IPAddress,omitempty"`
11263
11264	// IPProtocol: The IP protocol to which this rule applies. For protocol
11265	// forwarding, valid options are TCP, UDP, ESP, AH, SCTP, ICMP and
11266	// L3_DEFAULT. The valid IP protocols are different for different load
11267	// balancing products as described in Load balancing features
11268	// (https://cloud.google.com/load-balancing/docs/features#protocols_from_the_load_balancer_to_the_backends).
11269	//
11270	// Possible values:
11271	//   "AH"
11272	//   "ESP"
11273	//   "ICMP"
11274	//   "SCTP"
11275	//   "TCP"
11276	//   "UDP"
11277	IPProtocol string `json:"IPProtocol,omitempty"`
11278
11279	// AllPorts: This field is used along with the backend_service field for
11280	// Internal TCP/UDP Load Balancing or Network Load Balancing, or with
11281	// the target field for internal and external TargetInstance. You can
11282	// only use one of ports and port_range, or allPorts. The three are
11283	// mutually exclusive. For TCP, UDP and SCTP traffic, packets addressed
11284	// to any ports will be forwarded to the target or backendService.
11285	AllPorts bool `json:"allPorts,omitempty"`
11286
11287	// AllowGlobalAccess: This field is used along with the backend_service
11288	// field for internal load balancing or with the target field for
11289	// internal TargetInstance. If the field is set to TRUE, clients can
11290	// access ILB from all regions. Otherwise only allows access from
11291	// clients in the same region as the internal load balancer.
11292	AllowGlobalAccess bool `json:"allowGlobalAccess,omitempty"`
11293
11294	// BackendService: Identifies the backend service to which the
11295	// forwarding rule sends traffic. Required for Internal TCP/UDP Load
11296	// Balancing and Network Load Balancing; must be omitted for all other
11297	// load balancer types.
11298	BackendService string `json:"backendService,omitempty"`
11299
11300	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
11301	// format.
11302	CreationTimestamp string `json:"creationTimestamp,omitempty"`
11303
11304	// Description: An optional description of this resource. Provide this
11305	// property when you create the resource.
11306	Description string `json:"description,omitempty"`
11307
11308	// Fingerprint: Fingerprint of this resource. A hash of the contents
11309	// stored in this object. This field is used in optimistic locking. This
11310	// field will be ignored when inserting a ForwardingRule. Include the
11311	// fingerprint in patch request to ensure that you do not overwrite
11312	// changes that were applied from another concurrent request. To see the
11313	// latest fingerprint, make a get() request to retrieve a
11314	// ForwardingRule.
11315	Fingerprint string `json:"fingerprint,omitempty"`
11316
11317	// Id: [Output Only] The unique identifier for the resource. This
11318	// identifier is defined by the server.
11319	Id uint64 `json:"id,omitempty,string"`
11320
11321	// IpVersion: The IP Version that will be used by this forwarding rule.
11322	// Valid options are IPV4 or IPV6. This can only be specified for an
11323	// external global forwarding rule.
11324	//
11325	// Possible values:
11326	//   "IPV4"
11327	//   "IPV6"
11328	//   "UNSPECIFIED_VERSION"
11329	IpVersion string `json:"ipVersion,omitempty"`
11330
11331	// IsMirroringCollector: Indicates whether or not this load balancer can
11332	// be used as a collector for packet mirroring. To prevent mirroring
11333	// loops, instances behind this load balancer will not have their
11334	// traffic mirrored even if a PacketMirroring rule applies to them. This
11335	// can only be set to true for load balancers that have their
11336	// loadBalancingScheme set to INTERNAL.
11337	IsMirroringCollector bool `json:"isMirroringCollector,omitempty"`
11338
11339	// Kind: [Output Only] Type of the resource. Always
11340	// compute#forwardingRule for Forwarding Rule resources.
11341	Kind string `json:"kind,omitempty"`
11342
11343	// LabelFingerprint: A fingerprint for the labels being applied to this
11344	// resource, which is essentially a hash of the labels set used for
11345	// optimistic locking. The fingerprint is initially generated by Compute
11346	// Engine and changes after every request to modify or update labels.
11347	// You must always provide an up-to-date fingerprint hash in order to
11348	// update or change labels, otherwise the request will fail with error
11349	// 412 conditionNotMet. To see the latest fingerprint, make a get()
11350	// request to retrieve a ForwardingRule.
11351	LabelFingerprint string `json:"labelFingerprint,omitempty"`
11352
11353	// Labels: Labels for this resource. These can only be added or modified
11354	// by the setLabels method. Each label key/value pair must comply with
11355	// RFC1035. Label values may be empty.
11356	Labels map[string]string `json:"labels,omitempty"`
11357
11358	// LoadBalancingScheme: Specifies the forwarding rule type. For more
11359	// information about forwarding rules, refer to Forwarding rule
11360	// concepts.
11361	//
11362	// Possible values:
11363	//   "EXTERNAL"
11364	//   "INTERNAL"
11365	//   "INTERNAL_MANAGED"
11366	//   "INTERNAL_SELF_MANAGED"
11367	//   "INVALID"
11368	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
11369
11370	// MetadataFilters: Opaque filter criteria used by load balancer to
11371	// restrict routing configuration to a limited set of xDS compliant
11372	// clients. In their xDS requests to load balancer, xDS clients present
11373	// node metadata. When there is a match, the relevant configuration is
11374	// made available to those proxies. Otherwise, all the resources (e.g.
11375	// TargetHttpProxy, UrlMap) referenced by the ForwardingRule are not
11376	// visible to those proxies. For each metadataFilter in this list, if
11377	// its filterMatchCriteria is set to MATCH_ANY, at least one of the
11378	// filterLabels must match the corresponding label provided in the
11379	// metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of
11380	// its filterLabels must match with corresponding labels provided in the
11381	// metadata. If multiple metadataFilters are specified, all of them need
11382	// to be satisfied in order to be considered a match. metadataFilters
11383	// specified here will be applifed before those specified in the UrlMap
11384	// that this ForwardingRule references. metadataFilters only applies to
11385	// Loadbalancers that have their loadBalancingScheme set to
11386	// INTERNAL_SELF_MANAGED.
11387	MetadataFilters []*MetadataFilter `json:"metadataFilters,omitempty"`
11388
11389	// Name: Name of the resource; provided by the client when the resource
11390	// is created. The name must be 1-63 characters long, and comply with
11391	// RFC1035. Specifically, the name must be 1-63 characters long and
11392	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
11393	// the first character must be a lowercase letter, and all following
11394	// characters must be a dash, lowercase letter, or digit, except the
11395	// last character, which cannot be a dash. For Private Service Connect
11396	// forwarding rules that forward traffic to Google APIs, the forwarding
11397	// rule name must be a 1-20 characters string with lowercase letters and
11398	// numbers and must start with a letter.
11399	Name string `json:"name,omitempty"`
11400
11401	// Network: This field is not used for external load balancing. For
11402	// Internal TCP/UDP Load Balancing, this field identifies the network
11403	// that the load balanced IP should belong to for this Forwarding Rule.
11404	// If this field is not specified, the default network will be used. For
11405	// Private Service Connect forwarding rules that forward traffic to
11406	// Google APIs, a network must be provided.
11407	Network string `json:"network,omitempty"`
11408
11409	// NetworkTier: This signifies the networking tier used for configuring
11410	// this load balancer and can only take the following values: PREMIUM,
11411	// STANDARD. For regional ForwardingRule, the valid values are PREMIUM
11412	// and STANDARD. For GlobalForwardingRule, the valid value is PREMIUM.
11413	// If this field is not specified, it is assumed to be PREMIUM. If
11414	// IPAddress is specified, this value must be equal to the networkTier
11415	// of the Address.
11416	//
11417	// Possible values:
11418	//   "PREMIUM" - High quality, Google-grade network tier, support for
11419	// all networking products.
11420	//   "STANDARD" - Public internet quality, only limited support for
11421	// other networking products.
11422	NetworkTier string `json:"networkTier,omitempty"`
11423
11424	// PortRange: This field can be used only if: - Load balancing scheme is
11425	// one of EXTERNAL, INTERNAL_SELF_MANAGED or INTERNAL_MANAGED -
11426	// IPProtocol is one of TCP, UDP, or SCTP. Packets addressed to ports in
11427	// the specified range will be forwarded to target or backend_service.
11428	// You can only use one of ports, port_range, or allPorts. The three are
11429	// mutually exclusive. Forwarding rules with the same [IPAddress,
11430	// IPProtocol] pair must have disjoint ports. Some types of forwarding
11431	// target have constraints on the acceptable ports. For more
11432	// information, see Port specifications
11433	// (https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#port_specifications).
11434	// @pattern: \\d+(?:-\\d+)?
11435	PortRange string `json:"portRange,omitempty"`
11436
11437	// Ports: The ports field is only supported when the forwarding rule
11438	// references a backend_service directly. Only packets addressed to the
11439	// specified list of ports
11440	// ((https://cloud.google.com/load-balancing/docs/forwarding-rule-concept
11441	// s#port_specifications)) are forwarded to backends. You can only use
11442	// one of ports and port_range, or allPorts. The three are mutually
11443	// exclusive. You can specify a list of up to five ports, which can be
11444	// non-contiguous. Forwarding rules with the same [IPAddress,
11445	// IPProtocol] pair must have disjoint ports. @pattern: \\d+(?:-\\d+)?
11446	Ports []string `json:"ports,omitempty"`
11447
11448	// PscConnectionId: [Output Only] The PSC connection id of the PSC
11449	// Forwarding Rule.
11450	PscConnectionId uint64 `json:"pscConnectionId,omitempty,string"`
11451
11452	// Possible values:
11453	//   "ACCEPTED" - The connection has been accepted by the producer.
11454	//   "CLOSED" - The connection has been closed by the producer and will
11455	// not serve traffic going forward.
11456	//   "PENDING" - The connection is pending acceptance by the producer.
11457	//   "REJECTED" - The connection has been rejected by the producer.
11458	//   "STATUS_UNSPECIFIED"
11459	PscConnectionStatus string `json:"pscConnectionStatus,omitempty"`
11460
11461	// Region: [Output Only] URL of the region where the regional forwarding
11462	// rule resides. This field is not applicable to global forwarding
11463	// rules. You must specify this field as part of the HTTP request URL.
11464	// It is not settable as a field in the request body.
11465	Region string `json:"region,omitempty"`
11466
11467	// SelfLink: [Output Only] Server-defined URL for the resource.
11468	SelfLink string `json:"selfLink,omitempty"`
11469
11470	// ServiceDirectoryRegistrations: Service Directory resources to
11471	// register this forwarding rule with. Currently, only supports a single
11472	// Service Directory resource. It is only supported for internal load
11473	// balancing.
11474	ServiceDirectoryRegistrations []*ForwardingRuleServiceDirectoryRegistration `json:"serviceDirectoryRegistrations,omitempty"`
11475
11476	// ServiceLabel: An optional prefix to the service name for this
11477	// Forwarding Rule. If specified, the prefix is the first label of the
11478	// fully qualified service name. The label must be 1-63 characters long,
11479	// and comply with RFC1035. Specifically, the label must be 1-63
11480	// characters long and match the regular expression
11481	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
11482	// a lowercase letter, and all following characters must be a dash,
11483	// lowercase letter, or digit, except the last character, which cannot
11484	// be a dash. This field is only used for internal load balancing.
11485	ServiceLabel string `json:"serviceLabel,omitempty"`
11486
11487	// ServiceName: [Output Only] The internal fully qualified service name
11488	// for this Forwarding Rule. This field is only used for internal load
11489	// balancing.
11490	ServiceName string `json:"serviceName,omitempty"`
11491
11492	// Subnetwork: This field identifies the subnetwork that the load
11493	// balanced IP should belong to for this Forwarding Rule, used in
11494	// internal load balancing and network load balancing with IPv6. If the
11495	// network specified is in auto subnet mode, this field is optional.
11496	// However, a subnetwork must be specified if the network is in custom
11497	// subnet mode or when creating external forwarding rule with IPv6.
11498	Subnetwork string `json:"subnetwork,omitempty"`
11499
11500	Target string `json:"target,omitempty"`
11501
11502	// ServerResponse contains the HTTP response code and headers from the
11503	// server.
11504	googleapi.ServerResponse `json:"-"`
11505
11506	// ForceSendFields is a list of field names (e.g. "IPAddress") to
11507	// unconditionally include in API requests. By default, fields with
11508	// empty or default values are omitted from API requests. However, any
11509	// non-pointer, non-interface field appearing in ForceSendFields will be
11510	// sent to the server regardless of whether the field is empty or not.
11511	// This may be used to include empty fields in Patch requests.
11512	ForceSendFields []string `json:"-"`
11513
11514	// NullFields is a list of field names (e.g. "IPAddress") to include in
11515	// API requests with the JSON null value. By default, fields with empty
11516	// values are omitted from API requests. However, any field with an
11517	// empty value appearing in NullFields will be sent to the server as
11518	// null. It is an error if a field in this list has a non-empty value.
11519	// This may be used to include null fields in Patch requests.
11520	NullFields []string `json:"-"`
11521}
11522
11523func (s *ForwardingRule) MarshalJSON() ([]byte, error) {
11524	type NoMethod ForwardingRule
11525	raw := NoMethod(*s)
11526	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11527}
11528
11529type ForwardingRuleAggregatedList struct {
11530	// Id: [Output Only] Unique identifier for the resource; defined by the
11531	// server.
11532	Id string `json:"id,omitempty"`
11533
11534	// Items: A list of ForwardingRulesScopedList resources.
11535	Items map[string]ForwardingRulesScopedList `json:"items,omitempty"`
11536
11537	// Kind: [Output Only] Type of resource. Always
11538	// compute#forwardingRuleAggregatedList for lists of forwarding rules.
11539	Kind string `json:"kind,omitempty"`
11540
11541	// NextPageToken: [Output Only] This token allows you to get the next
11542	// page of results for list requests. If the number of results is larger
11543	// than maxResults, use the nextPageToken as a value for the query
11544	// parameter pageToken in the next list request. Subsequent list
11545	// requests will have their own nextPageToken to continue paging through
11546	// the results.
11547	NextPageToken string `json:"nextPageToken,omitempty"`
11548
11549	// SelfLink: [Output Only] Server-defined URL for this resource.
11550	SelfLink string `json:"selfLink,omitempty"`
11551
11552	// Unreachables: [Output Only] Unreachable resources.
11553	Unreachables []string `json:"unreachables,omitempty"`
11554
11555	// Warning: [Output Only] Informational warning message.
11556	Warning *ForwardingRuleAggregatedListWarning `json:"warning,omitempty"`
11557
11558	// ServerResponse contains the HTTP response code and headers from the
11559	// server.
11560	googleapi.ServerResponse `json:"-"`
11561
11562	// ForceSendFields is a list of field names (e.g. "Id") to
11563	// unconditionally include in API requests. By default, fields with
11564	// empty or default values are omitted from API requests. However, any
11565	// non-pointer, non-interface field appearing in ForceSendFields will be
11566	// sent to the server regardless of whether the field is empty or not.
11567	// This may be used to include empty fields in Patch requests.
11568	ForceSendFields []string `json:"-"`
11569
11570	// NullFields is a list of field names (e.g. "Id") to include in API
11571	// requests with the JSON null value. By default, fields with empty
11572	// values are omitted from API requests. However, any field with an
11573	// empty value appearing in NullFields will be sent to the server as
11574	// null. It is an error if a field in this list has a non-empty value.
11575	// This may be used to include null fields in Patch requests.
11576	NullFields []string `json:"-"`
11577}
11578
11579func (s *ForwardingRuleAggregatedList) MarshalJSON() ([]byte, error) {
11580	type NoMethod ForwardingRuleAggregatedList
11581	raw := NoMethod(*s)
11582	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11583}
11584
11585// ForwardingRuleAggregatedListWarning: [Output Only] Informational
11586// warning message.
11587type ForwardingRuleAggregatedListWarning struct {
11588	// Code: [Output Only] A warning code, if applicable. For example,
11589	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11590	// the response.
11591	//
11592	// Possible values:
11593	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
11594	// changes made by a failed operation.
11595	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
11596	// created.
11597	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
11598	// resources has a type marked as deprecated
11599	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
11600	// that is larger than image size.
11601	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
11602	// resources has a type marked as experimental
11603	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
11604	// call
11605	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
11606	// overridden. Deprecated unused field.
11607	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
11608	// injected kernel, which is deprecated.
11609	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
11610	// exceedingly large number of resources
11611	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
11612	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
11613	// not assigned to an instance on the network.
11614	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
11615	// ip forward.
11616	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
11617	// refers to an instance that does not exist.
11618	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
11619	// URL refers to an instance that is not on the same network as the
11620	// route.
11621	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
11622	// have a status of RUNNING.
11623	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
11624	// continue the process despite the mentioned error.
11625	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
11626	// page.
11627	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
11628	// missing due to errors
11629	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
11630	// that requires a TOS they have not accepted.
11631	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
11632	// resource is in use.
11633	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
11634	// auto-delete could not be deleted because they were in use.
11635	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
11636	// ignored.
11637	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
11638	// instance group manager is valid as such, but its application does not
11639	// make a lot of sense, because it allows only single instance in
11640	// instance group.
11641	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
11642	// are present
11643	//   "UNREACHABLE" - A given scope cannot be reached.
11644	Code string `json:"code,omitempty"`
11645
11646	// Data: [Output Only] Metadata about this warning in key: value format.
11647	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
11648	// }
11649	Data []*ForwardingRuleAggregatedListWarningData `json:"data,omitempty"`
11650
11651	// Message: [Output Only] A human-readable description of the warning
11652	// code.
11653	Message string `json:"message,omitempty"`
11654
11655	// ForceSendFields is a list of field names (e.g. "Code") to
11656	// unconditionally include in API requests. By default, fields with
11657	// empty or default values are omitted from API requests. However, any
11658	// non-pointer, non-interface field appearing in ForceSendFields will be
11659	// sent to the server regardless of whether the field is empty or not.
11660	// This may be used to include empty fields in Patch requests.
11661	ForceSendFields []string `json:"-"`
11662
11663	// NullFields is a list of field names (e.g. "Code") to include in API
11664	// requests with the JSON null value. By default, fields with empty
11665	// values are omitted from API requests. However, any field with an
11666	// empty value appearing in NullFields will be sent to the server as
11667	// null. It is an error if a field in this list has a non-empty value.
11668	// This may be used to include null fields in Patch requests.
11669	NullFields []string `json:"-"`
11670}
11671
11672func (s *ForwardingRuleAggregatedListWarning) MarshalJSON() ([]byte, error) {
11673	type NoMethod ForwardingRuleAggregatedListWarning
11674	raw := NoMethod(*s)
11675	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11676}
11677
11678type ForwardingRuleAggregatedListWarningData struct {
11679	// Key: [Output Only] A key that provides more detail on the warning
11680	// being returned. For example, for warnings where there are no results
11681	// in a list request for a particular zone, this key might be scope and
11682	// the key value might be the zone name. Other examples might be a key
11683	// indicating a deprecated resource and a suggested replacement, or a
11684	// warning about invalid network settings (for example, if an instance
11685	// attempts to perform IP forwarding but is not enabled for IP
11686	// forwarding).
11687	Key string `json:"key,omitempty"`
11688
11689	// Value: [Output Only] A warning data value corresponding to the key.
11690	Value string `json:"value,omitempty"`
11691
11692	// ForceSendFields is a list of field names (e.g. "Key") to
11693	// unconditionally include in API requests. By default, fields with
11694	// empty or default values are omitted from API requests. However, any
11695	// non-pointer, non-interface field appearing in ForceSendFields will be
11696	// sent to the server regardless of whether the field is empty or not.
11697	// This may be used to include empty fields in Patch requests.
11698	ForceSendFields []string `json:"-"`
11699
11700	// NullFields is a list of field names (e.g. "Key") to include in API
11701	// requests with the JSON null value. By default, fields with empty
11702	// values are omitted from API requests. However, any field with an
11703	// empty value appearing in NullFields will be sent to the server as
11704	// null. It is an error if a field in this list has a non-empty value.
11705	// This may be used to include null fields in Patch requests.
11706	NullFields []string `json:"-"`
11707}
11708
11709func (s *ForwardingRuleAggregatedListWarningData) MarshalJSON() ([]byte, error) {
11710	type NoMethod ForwardingRuleAggregatedListWarningData
11711	raw := NoMethod(*s)
11712	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11713}
11714
11715// ForwardingRuleList: Contains a list of ForwardingRule resources.
11716type ForwardingRuleList struct {
11717	// Id: [Output Only] Unique identifier for the resource; defined by the
11718	// server.
11719	Id string `json:"id,omitempty"`
11720
11721	// Items: A list of ForwardingRule resources.
11722	Items []*ForwardingRule `json:"items,omitempty"`
11723
11724	// Kind: Type of resource.
11725	Kind string `json:"kind,omitempty"`
11726
11727	// NextPageToken: [Output Only] This token allows you to get the next
11728	// page of results for list requests. If the number of results is larger
11729	// than maxResults, use the nextPageToken as a value for the query
11730	// parameter pageToken in the next list request. Subsequent list
11731	// requests will have their own nextPageToken to continue paging through
11732	// the results.
11733	NextPageToken string `json:"nextPageToken,omitempty"`
11734
11735	// SelfLink: [Output Only] Server-defined URL for this resource.
11736	SelfLink string `json:"selfLink,omitempty"`
11737
11738	// Warning: [Output Only] Informational warning message.
11739	Warning *ForwardingRuleListWarning `json:"warning,omitempty"`
11740
11741	// ServerResponse contains the HTTP response code and headers from the
11742	// server.
11743	googleapi.ServerResponse `json:"-"`
11744
11745	// ForceSendFields is a list of field names (e.g. "Id") to
11746	// unconditionally include in API requests. By default, fields with
11747	// empty or default values are omitted from API requests. However, any
11748	// non-pointer, non-interface field appearing in ForceSendFields will be
11749	// sent to the server regardless of whether the field is empty or not.
11750	// This may be used to include empty fields in Patch requests.
11751	ForceSendFields []string `json:"-"`
11752
11753	// NullFields is a list of field names (e.g. "Id") to include in API
11754	// requests with the JSON null value. By default, fields with empty
11755	// values are omitted from API requests. However, any field with an
11756	// empty value appearing in NullFields will be sent to the server as
11757	// null. It is an error if a field in this list has a non-empty value.
11758	// This may be used to include null fields in Patch requests.
11759	NullFields []string `json:"-"`
11760}
11761
11762func (s *ForwardingRuleList) MarshalJSON() ([]byte, error) {
11763	type NoMethod ForwardingRuleList
11764	raw := NoMethod(*s)
11765	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11766}
11767
11768// ForwardingRuleListWarning: [Output Only] Informational warning
11769// message.
11770type ForwardingRuleListWarning struct {
11771	// Code: [Output Only] A warning code, if applicable. For example,
11772	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11773	// the response.
11774	//
11775	// Possible values:
11776	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
11777	// changes made by a failed operation.
11778	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
11779	// created.
11780	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
11781	// resources has a type marked as deprecated
11782	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
11783	// that is larger than image size.
11784	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
11785	// resources has a type marked as experimental
11786	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
11787	// call
11788	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
11789	// overridden. Deprecated unused field.
11790	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
11791	// injected kernel, which is deprecated.
11792	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
11793	// exceedingly large number of resources
11794	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
11795	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
11796	// not assigned to an instance on the network.
11797	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
11798	// ip forward.
11799	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
11800	// refers to an instance that does not exist.
11801	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
11802	// URL refers to an instance that is not on the same network as the
11803	// route.
11804	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
11805	// have a status of RUNNING.
11806	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
11807	// continue the process despite the mentioned error.
11808	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
11809	// page.
11810	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
11811	// missing due to errors
11812	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
11813	// that requires a TOS they have not accepted.
11814	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
11815	// resource is in use.
11816	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
11817	// auto-delete could not be deleted because they were in use.
11818	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
11819	// ignored.
11820	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
11821	// instance group manager is valid as such, but its application does not
11822	// make a lot of sense, because it allows only single instance in
11823	// instance group.
11824	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
11825	// are present
11826	//   "UNREACHABLE" - A given scope cannot be reached.
11827	Code string `json:"code,omitempty"`
11828
11829	// Data: [Output Only] Metadata about this warning in key: value format.
11830	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
11831	// }
11832	Data []*ForwardingRuleListWarningData `json:"data,omitempty"`
11833
11834	// Message: [Output Only] A human-readable description of the warning
11835	// code.
11836	Message string `json:"message,omitempty"`
11837
11838	// ForceSendFields is a list of field names (e.g. "Code") to
11839	// unconditionally include in API requests. By default, fields with
11840	// empty or default values are omitted from API requests. However, any
11841	// non-pointer, non-interface field appearing in ForceSendFields will be
11842	// sent to the server regardless of whether the field is empty or not.
11843	// This may be used to include empty fields in Patch requests.
11844	ForceSendFields []string `json:"-"`
11845
11846	// NullFields is a list of field names (e.g. "Code") to include in API
11847	// requests with the JSON null value. By default, fields with empty
11848	// values are omitted from API requests. However, any field with an
11849	// empty value appearing in NullFields will be sent to the server as
11850	// null. It is an error if a field in this list has a non-empty value.
11851	// This may be used to include null fields in Patch requests.
11852	NullFields []string `json:"-"`
11853}
11854
11855func (s *ForwardingRuleListWarning) MarshalJSON() ([]byte, error) {
11856	type NoMethod ForwardingRuleListWarning
11857	raw := NoMethod(*s)
11858	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11859}
11860
11861type ForwardingRuleListWarningData struct {
11862	// Key: [Output Only] A key that provides more detail on the warning
11863	// being returned. For example, for warnings where there are no results
11864	// in a list request for a particular zone, this key might be scope and
11865	// the key value might be the zone name. Other examples might be a key
11866	// indicating a deprecated resource and a suggested replacement, or a
11867	// warning about invalid network settings (for example, if an instance
11868	// attempts to perform IP forwarding but is not enabled for IP
11869	// forwarding).
11870	Key string `json:"key,omitempty"`
11871
11872	// Value: [Output Only] A warning data value corresponding to the key.
11873	Value string `json:"value,omitempty"`
11874
11875	// ForceSendFields is a list of field names (e.g. "Key") to
11876	// unconditionally include in API requests. By default, fields with
11877	// empty or default values are omitted from API requests. However, any
11878	// non-pointer, non-interface field appearing in ForceSendFields will be
11879	// sent to the server regardless of whether the field is empty or not.
11880	// This may be used to include empty fields in Patch requests.
11881	ForceSendFields []string `json:"-"`
11882
11883	// NullFields is a list of field names (e.g. "Key") to include in API
11884	// requests with the JSON null value. By default, fields with empty
11885	// values are omitted from API requests. However, any field with an
11886	// empty value appearing in NullFields will be sent to the server as
11887	// null. It is an error if a field in this list has a non-empty value.
11888	// This may be used to include null fields in Patch requests.
11889	NullFields []string `json:"-"`
11890}
11891
11892func (s *ForwardingRuleListWarningData) MarshalJSON() ([]byte, error) {
11893	type NoMethod ForwardingRuleListWarningData
11894	raw := NoMethod(*s)
11895	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11896}
11897
11898type ForwardingRuleReference struct {
11899	ForwardingRule string `json:"forwardingRule,omitempty"`
11900
11901	// ForceSendFields is a list of field names (e.g. "ForwardingRule") to
11902	// unconditionally include in API requests. By default, fields with
11903	// empty or default values are omitted from API requests. However, any
11904	// non-pointer, non-interface field appearing in ForceSendFields will be
11905	// sent to the server regardless of whether the field is empty or not.
11906	// This may be used to include empty fields in Patch requests.
11907	ForceSendFields []string `json:"-"`
11908
11909	// NullFields is a list of field names (e.g. "ForwardingRule") to
11910	// include in API requests with the JSON null value. By default, fields
11911	// with empty values are omitted from API requests. However, any field
11912	// with an empty value appearing in NullFields will be sent to the
11913	// server as null. It is an error if a field in this list has a
11914	// non-empty value. This may be used to include null fields in Patch
11915	// requests.
11916	NullFields []string `json:"-"`
11917}
11918
11919func (s *ForwardingRuleReference) MarshalJSON() ([]byte, error) {
11920	type NoMethod ForwardingRuleReference
11921	raw := NoMethod(*s)
11922	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11923}
11924
11925// ForwardingRuleServiceDirectoryRegistration: Describes the
11926// auto-registration of the Forwarding Rule to Service Directory. The
11927// region and project of the Service Directory resource generated from
11928// this registration will be the same as this Forwarding Rule.
11929type ForwardingRuleServiceDirectoryRegistration struct {
11930	// Namespace: Service Directory namespace to register the forwarding
11931	// rule under.
11932	Namespace string `json:"namespace,omitempty"`
11933
11934	// Service: Service Directory service to register the forwarding rule
11935	// under.
11936	Service string `json:"service,omitempty"`
11937
11938	// ServiceDirectoryRegion: [Optional] Service Directory region to
11939	// register this global forwarding rule under. Default to "us-central1".
11940	// Only used for PSC for Google APIs. All PSC for Google APIs Forwarding
11941	// Rules on the same network should use the same Service Directory
11942	// region.
11943	ServiceDirectoryRegion string `json:"serviceDirectoryRegion,omitempty"`
11944
11945	// ForceSendFields is a list of field names (e.g. "Namespace") to
11946	// unconditionally include in API requests. By default, fields with
11947	// empty or default values are omitted from API requests. However, any
11948	// non-pointer, non-interface field appearing in ForceSendFields will be
11949	// sent to the server regardless of whether the field is empty or not.
11950	// This may be used to include empty fields in Patch requests.
11951	ForceSendFields []string `json:"-"`
11952
11953	// NullFields is a list of field names (e.g. "Namespace") to include in
11954	// API requests with the JSON null value. By default, fields with empty
11955	// values are omitted from API requests. However, any field with an
11956	// empty value appearing in NullFields will be sent to the server as
11957	// null. It is an error if a field in this list has a non-empty value.
11958	// This may be used to include null fields in Patch requests.
11959	NullFields []string `json:"-"`
11960}
11961
11962func (s *ForwardingRuleServiceDirectoryRegistration) MarshalJSON() ([]byte, error) {
11963	type NoMethod ForwardingRuleServiceDirectoryRegistration
11964	raw := NoMethod(*s)
11965	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11966}
11967
11968type ForwardingRulesScopedList struct {
11969	// ForwardingRules: A list of forwarding rules contained in this scope.
11970	ForwardingRules []*ForwardingRule `json:"forwardingRules,omitempty"`
11971
11972	// Warning: Informational warning which replaces the list of forwarding
11973	// rules when the list is empty.
11974	Warning *ForwardingRulesScopedListWarning `json:"warning,omitempty"`
11975
11976	// ForceSendFields is a list of field names (e.g. "ForwardingRules") to
11977	// unconditionally include in API requests. By default, fields with
11978	// empty or default values are omitted from API requests. However, any
11979	// non-pointer, non-interface field appearing in ForceSendFields will be
11980	// sent to the server regardless of whether the field is empty or not.
11981	// This may be used to include empty fields in Patch requests.
11982	ForceSendFields []string `json:"-"`
11983
11984	// NullFields is a list of field names (e.g. "ForwardingRules") to
11985	// include in API requests with the JSON null value. By default, fields
11986	// with empty values are omitted from API requests. However, any field
11987	// with an empty value appearing in NullFields will be sent to the
11988	// server as null. It is an error if a field in this list has a
11989	// non-empty value. This may be used to include null fields in Patch
11990	// requests.
11991	NullFields []string `json:"-"`
11992}
11993
11994func (s *ForwardingRulesScopedList) MarshalJSON() ([]byte, error) {
11995	type NoMethod ForwardingRulesScopedList
11996	raw := NoMethod(*s)
11997	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11998}
11999
12000// ForwardingRulesScopedListWarning: Informational warning which
12001// replaces the list of forwarding rules when the list is empty.
12002type ForwardingRulesScopedListWarning struct {
12003	// Code: [Output Only] A warning code, if applicable. For example,
12004	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12005	// the response.
12006	//
12007	// Possible values:
12008	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
12009	// changes made by a failed operation.
12010	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
12011	// created.
12012	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
12013	// resources has a type marked as deprecated
12014	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
12015	// that is larger than image size.
12016	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
12017	// resources has a type marked as experimental
12018	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
12019	// call
12020	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
12021	// overridden. Deprecated unused field.
12022	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
12023	// injected kernel, which is deprecated.
12024	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
12025	// exceedingly large number of resources
12026	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
12027	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
12028	// not assigned to an instance on the network.
12029	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
12030	// ip forward.
12031	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
12032	// refers to an instance that does not exist.
12033	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
12034	// URL refers to an instance that is not on the same network as the
12035	// route.
12036	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
12037	// have a status of RUNNING.
12038	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
12039	// continue the process despite the mentioned error.
12040	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
12041	// page.
12042	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
12043	// missing due to errors
12044	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
12045	// that requires a TOS they have not accepted.
12046	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
12047	// resource is in use.
12048	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
12049	// auto-delete could not be deleted because they were in use.
12050	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
12051	// ignored.
12052	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
12053	// instance group manager is valid as such, but its application does not
12054	// make a lot of sense, because it allows only single instance in
12055	// instance group.
12056	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
12057	// are present
12058	//   "UNREACHABLE" - A given scope cannot be reached.
12059	Code string `json:"code,omitempty"`
12060
12061	// Data: [Output Only] Metadata about this warning in key: value format.
12062	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
12063	// }
12064	Data []*ForwardingRulesScopedListWarningData `json:"data,omitempty"`
12065
12066	// Message: [Output Only] A human-readable description of the warning
12067	// code.
12068	Message string `json:"message,omitempty"`
12069
12070	// ForceSendFields is a list of field names (e.g. "Code") to
12071	// unconditionally include in API requests. By default, fields with
12072	// empty or default values are omitted from API requests. However, any
12073	// non-pointer, non-interface field appearing in ForceSendFields will be
12074	// sent to the server regardless of whether the field is empty or not.
12075	// This may be used to include empty fields in Patch requests.
12076	ForceSendFields []string `json:"-"`
12077
12078	// NullFields is a list of field names (e.g. "Code") to include in API
12079	// requests with the JSON null value. By default, fields with empty
12080	// values are omitted from API requests. However, any field with an
12081	// empty value appearing in NullFields will be sent to the server as
12082	// null. It is an error if a field in this list has a non-empty value.
12083	// This may be used to include null fields in Patch requests.
12084	NullFields []string `json:"-"`
12085}
12086
12087func (s *ForwardingRulesScopedListWarning) MarshalJSON() ([]byte, error) {
12088	type NoMethod ForwardingRulesScopedListWarning
12089	raw := NoMethod(*s)
12090	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12091}
12092
12093type ForwardingRulesScopedListWarningData struct {
12094	// Key: [Output Only] A key that provides more detail on the warning
12095	// being returned. For example, for warnings where there are no results
12096	// in a list request for a particular zone, this key might be scope and
12097	// the key value might be the zone name. Other examples might be a key
12098	// indicating a deprecated resource and a suggested replacement, or a
12099	// warning about invalid network settings (for example, if an instance
12100	// attempts to perform IP forwarding but is not enabled for IP
12101	// forwarding).
12102	Key string `json:"key,omitempty"`
12103
12104	// Value: [Output Only] A warning data value corresponding to the key.
12105	Value string `json:"value,omitempty"`
12106
12107	// ForceSendFields is a list of field names (e.g. "Key") to
12108	// unconditionally include in API requests. By default, fields with
12109	// empty or default values are omitted from API requests. However, any
12110	// non-pointer, non-interface field appearing in ForceSendFields will be
12111	// sent to the server regardless of whether the field is empty or not.
12112	// This may be used to include empty fields in Patch requests.
12113	ForceSendFields []string `json:"-"`
12114
12115	// NullFields is a list of field names (e.g. "Key") to include in API
12116	// requests with the JSON null value. By default, fields with empty
12117	// values are omitted from API requests. However, any field with an
12118	// empty value appearing in NullFields will be sent to the server as
12119	// null. It is an error if a field in this list has a non-empty value.
12120	// This may be used to include null fields in Patch requests.
12121	NullFields []string `json:"-"`
12122}
12123
12124func (s *ForwardingRulesScopedListWarningData) MarshalJSON() ([]byte, error) {
12125	type NoMethod ForwardingRulesScopedListWarningData
12126	raw := NoMethod(*s)
12127	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12128}
12129
12130type GRPCHealthCheck struct {
12131	// GrpcServiceName: The gRPC service name for the health check. This
12132	// field is optional. The value of grpc_service_name has the following
12133	// meanings by convention: - Empty service_name means the overall status
12134	// of all services at the backend. - Non-empty service_name means the
12135	// health of that gRPC service, as defined by the owner of the service.
12136	// The grpc_service_name can only be ASCII.
12137	GrpcServiceName string `json:"grpcServiceName,omitempty"`
12138
12139	// Port: The port number for the health check request. Must be specified
12140	// if port_name and port_specification are not set or if
12141	// port_specification is USE_FIXED_PORT. Valid values are 1 through
12142	// 65535.
12143	Port int64 `json:"port,omitempty"`
12144
12145	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
12146	// both port and port_name are defined, port takes precedence. The
12147	// port_name should conform to RFC1035.
12148	PortName string `json:"portName,omitempty"`
12149
12150	// PortSpecification: Specifies how port is selected for health
12151	// checking, can be one of following values: USE_FIXED_PORT: The port
12152	// number in port is used for health checking. USE_NAMED_PORT: The
12153	// portName is used for health checking. USE_SERVING_PORT: For
12154	// NetworkEndpointGroup, the port specified for each network endpoint is
12155	// used for health checking. For other backends, the port or named port
12156	// specified in the Backend Service is used for health checking. If not
12157	// specified, gRPC health check follows behavior specified in port and
12158	// portName fields.
12159	//
12160	// Possible values:
12161	//   "USE_FIXED_PORT" - The port number in port is used for health
12162	// checking.
12163	//   "USE_NAMED_PORT" - The portName is used for health checking.
12164	//   "USE_SERVING_PORT" - For NetworkEndpointGroup, the port specified
12165	// for each network endpoint is used for health checking. For other
12166	// backends, the port or named port specified in the Backend Service is
12167	// used for health checking.
12168	PortSpecification string `json:"portSpecification,omitempty"`
12169
12170	// ForceSendFields is a list of field names (e.g. "GrpcServiceName") to
12171	// unconditionally include in API requests. By default, fields with
12172	// empty or default values are omitted from API requests. However, any
12173	// non-pointer, non-interface field appearing in ForceSendFields will be
12174	// sent to the server regardless of whether the field is empty or not.
12175	// This may be used to include empty fields in Patch requests.
12176	ForceSendFields []string `json:"-"`
12177
12178	// NullFields is a list of field names (e.g. "GrpcServiceName") to
12179	// include in API requests with the JSON null value. By default, fields
12180	// with empty values are omitted from API requests. However, any field
12181	// with an empty value appearing in NullFields will be sent to the
12182	// server as null. It is an error if a field in this list has a
12183	// non-empty value. This may be used to include null fields in Patch
12184	// requests.
12185	NullFields []string `json:"-"`
12186}
12187
12188func (s *GRPCHealthCheck) MarshalJSON() ([]byte, error) {
12189	type NoMethod GRPCHealthCheck
12190	raw := NoMethod(*s)
12191	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12192}
12193
12194type GlobalNetworkEndpointGroupsAttachEndpointsRequest struct {
12195	// NetworkEndpoints: The list of network endpoints to be attached.
12196	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
12197
12198	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
12199	// unconditionally include in API requests. By default, fields with
12200	// empty or default values are omitted from API requests. However, any
12201	// non-pointer, non-interface field appearing in ForceSendFields will be
12202	// sent to the server regardless of whether the field is empty or not.
12203	// This may be used to include empty fields in Patch requests.
12204	ForceSendFields []string `json:"-"`
12205
12206	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
12207	// include in API requests with the JSON null value. By default, fields
12208	// with empty values are omitted from API requests. However, any field
12209	// with an empty value appearing in NullFields will be sent to the
12210	// server as null. It is an error if a field in this list has a
12211	// non-empty value. This may be used to include null fields in Patch
12212	// requests.
12213	NullFields []string `json:"-"`
12214}
12215
12216func (s *GlobalNetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) {
12217	type NoMethod GlobalNetworkEndpointGroupsAttachEndpointsRequest
12218	raw := NoMethod(*s)
12219	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12220}
12221
12222type GlobalNetworkEndpointGroupsDetachEndpointsRequest struct {
12223	// NetworkEndpoints: The list of network endpoints to be detached.
12224	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
12225
12226	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
12227	// unconditionally include in API requests. By default, fields with
12228	// empty or default values are omitted from API requests. However, any
12229	// non-pointer, non-interface field appearing in ForceSendFields will be
12230	// sent to the server regardless of whether the field is empty or not.
12231	// This may be used to include empty fields in Patch requests.
12232	ForceSendFields []string `json:"-"`
12233
12234	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
12235	// include in API requests with the JSON null value. By default, fields
12236	// with empty values are omitted from API requests. However, any field
12237	// with an empty value appearing in NullFields will be sent to the
12238	// server as null. It is an error if a field in this list has a
12239	// non-empty value. This may be used to include null fields in Patch
12240	// requests.
12241	NullFields []string `json:"-"`
12242}
12243
12244func (s *GlobalNetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) {
12245	type NoMethod GlobalNetworkEndpointGroupsDetachEndpointsRequest
12246	raw := NoMethod(*s)
12247	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12248}
12249
12250type GlobalOrganizationSetPolicyRequest struct {
12251	// Bindings: Flatten Policy to create a backward compatible wire-format.
12252	// Deprecated. Use 'policy' to specify bindings.
12253	Bindings []*Binding `json:"bindings,omitempty"`
12254
12255	// Etag: Flatten Policy to create a backward compatible wire-format.
12256	// Deprecated. Use 'policy' to specify the etag.
12257	Etag string `json:"etag,omitempty"`
12258
12259	// Policy: REQUIRED: The complete policy to be applied to the
12260	// 'resource'. The size of the policy is limited to a few 10s of KB. An
12261	// empty policy is in general a valid policy but certain services (like
12262	// Projects) might reject them.
12263	Policy *Policy `json:"policy,omitempty"`
12264
12265	// ForceSendFields is a list of field names (e.g. "Bindings") to
12266	// unconditionally include in API requests. By default, fields with
12267	// empty or default values are omitted from API requests. However, any
12268	// non-pointer, non-interface field appearing in ForceSendFields will be
12269	// sent to the server regardless of whether the field is empty or not.
12270	// This may be used to include empty fields in Patch requests.
12271	ForceSendFields []string `json:"-"`
12272
12273	// NullFields is a list of field names (e.g. "Bindings") to include in
12274	// API requests with the JSON null value. By default, fields with empty
12275	// values are omitted from API requests. However, any field with an
12276	// empty value appearing in NullFields will be sent to the server as
12277	// null. It is an error if a field in this list has a non-empty value.
12278	// This may be used to include null fields in Patch requests.
12279	NullFields []string `json:"-"`
12280}
12281
12282func (s *GlobalOrganizationSetPolicyRequest) MarshalJSON() ([]byte, error) {
12283	type NoMethod GlobalOrganizationSetPolicyRequest
12284	raw := NoMethod(*s)
12285	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12286}
12287
12288type GlobalSetLabelsRequest struct {
12289	// LabelFingerprint: The fingerprint of the previous set of labels for
12290	// this resource, used to detect conflicts. The fingerprint is initially
12291	// generated by Compute Engine and changes after every request to modify
12292	// or update labels. You must always provide an up-to-date fingerprint
12293	// hash when updating or changing labels, otherwise the request will
12294	// fail with error 412 conditionNotMet. Make a get() request to the
12295	// resource to get the latest fingerprint.
12296	LabelFingerprint string `json:"labelFingerprint,omitempty"`
12297
12298	// Labels: A list of labels to apply for this resource. Each label key &
12299	// value must comply with RFC1035. Specifically, the name must be 1-63
12300	// characters long and match the regular expression
12301	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
12302	// a lowercase letter, and all following characters must be a dash,
12303	// lowercase letter, or digit, except the last character, which cannot
12304	// be a dash. For example, "webserver-frontend": "images". A label value
12305	// can also be empty (e.g. "my-label": "").
12306	Labels map[string]string `json:"labels,omitempty"`
12307
12308	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
12309	// unconditionally include in API requests. By default, fields with
12310	// empty or default values are omitted from API requests. However, any
12311	// non-pointer, non-interface field appearing in ForceSendFields will be
12312	// sent to the server regardless of whether the field is empty or not.
12313	// This may be used to include empty fields in Patch requests.
12314	ForceSendFields []string `json:"-"`
12315
12316	// NullFields is a list of field names (e.g. "LabelFingerprint") to
12317	// include in API requests with the JSON null value. By default, fields
12318	// with empty values are omitted from API requests. However, any field
12319	// with an empty value appearing in NullFields will be sent to the
12320	// server as null. It is an error if a field in this list has a
12321	// non-empty value. This may be used to include null fields in Patch
12322	// requests.
12323	NullFields []string `json:"-"`
12324}
12325
12326func (s *GlobalSetLabelsRequest) MarshalJSON() ([]byte, error) {
12327	type NoMethod GlobalSetLabelsRequest
12328	raw := NoMethod(*s)
12329	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12330}
12331
12332type GlobalSetPolicyRequest struct {
12333	// Bindings: Flatten Policy to create a backward compatible wire-format.
12334	// Deprecated. Use 'policy' to specify bindings.
12335	Bindings []*Binding `json:"bindings,omitempty"`
12336
12337	// Etag: Flatten Policy to create a backward compatible wire-format.
12338	// Deprecated. Use 'policy' to specify the etag.
12339	Etag string `json:"etag,omitempty"`
12340
12341	// Policy: REQUIRED: The complete policy to be applied to the
12342	// 'resource'. The size of the policy is limited to a few 10s of KB. An
12343	// empty policy is in general a valid policy but certain services (like
12344	// Projects) might reject them.
12345	Policy *Policy `json:"policy,omitempty"`
12346
12347	// ForceSendFields is a list of field names (e.g. "Bindings") to
12348	// unconditionally include in API requests. By default, fields with
12349	// empty or default values are omitted from API requests. However, any
12350	// non-pointer, non-interface field appearing in ForceSendFields will be
12351	// sent to the server regardless of whether the field is empty or not.
12352	// This may be used to include empty fields in Patch requests.
12353	ForceSendFields []string `json:"-"`
12354
12355	// NullFields is a list of field names (e.g. "Bindings") to include in
12356	// API requests with the JSON null value. By default, fields with empty
12357	// values are omitted from API requests. However, any field with an
12358	// empty value appearing in NullFields will be sent to the server as
12359	// null. It is an error if a field in this list has a non-empty value.
12360	// This may be used to include null fields in Patch requests.
12361	NullFields []string `json:"-"`
12362}
12363
12364func (s *GlobalSetPolicyRequest) MarshalJSON() ([]byte, error) {
12365	type NoMethod GlobalSetPolicyRequest
12366	raw := NoMethod(*s)
12367	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12368}
12369
12370// GuestAttributes: A guest attributes entry.
12371type GuestAttributes struct {
12372	// Kind: [Output Only] Type of the resource. Always
12373	// compute#guestAttributes for guest attributes entry.
12374	Kind string `json:"kind,omitempty"`
12375
12376	// QueryPath: The path to be queried. This can be the default namespace
12377	// ('') or a nested namespace ('\/') or a specified key ('\/\').
12378	QueryPath string `json:"queryPath,omitempty"`
12379
12380	// QueryValue: [Output Only] The value of the requested queried path.
12381	QueryValue *GuestAttributesValue `json:"queryValue,omitempty"`
12382
12383	// SelfLink: [Output Only] Server-defined URL for this resource.
12384	SelfLink string `json:"selfLink,omitempty"`
12385
12386	// VariableKey: The key to search for.
12387	VariableKey string `json:"variableKey,omitempty"`
12388
12389	// VariableValue: [Output Only] The value found for the requested key.
12390	VariableValue string `json:"variableValue,omitempty"`
12391
12392	// ServerResponse contains the HTTP response code and headers from the
12393	// server.
12394	googleapi.ServerResponse `json:"-"`
12395
12396	// ForceSendFields is a list of field names (e.g. "Kind") to
12397	// unconditionally include in API requests. By default, fields with
12398	// empty or default values are omitted from API requests. However, any
12399	// non-pointer, non-interface field appearing in ForceSendFields will be
12400	// sent to the server regardless of whether the field is empty or not.
12401	// This may be used to include empty fields in Patch requests.
12402	ForceSendFields []string `json:"-"`
12403
12404	// NullFields is a list of field names (e.g. "Kind") to include in API
12405	// requests with the JSON null value. By default, fields with empty
12406	// values are omitted from API requests. However, any field with an
12407	// empty value appearing in NullFields will be sent to the server as
12408	// null. It is an error if a field in this list has a non-empty value.
12409	// This may be used to include null fields in Patch requests.
12410	NullFields []string `json:"-"`
12411}
12412
12413func (s *GuestAttributes) MarshalJSON() ([]byte, error) {
12414	type NoMethod GuestAttributes
12415	raw := NoMethod(*s)
12416	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12417}
12418
12419// GuestAttributesEntry: A guest attributes namespace/key/value entry.
12420type GuestAttributesEntry struct {
12421	// Key: Key for the guest attribute entry.
12422	Key string `json:"key,omitempty"`
12423
12424	// Namespace: Namespace for the guest attribute entry.
12425	Namespace string `json:"namespace,omitempty"`
12426
12427	// Value: Value for the guest attribute entry.
12428	Value string `json:"value,omitempty"`
12429
12430	// ForceSendFields is a list of field names (e.g. "Key") to
12431	// unconditionally include in API requests. By default, fields with
12432	// empty or default values are omitted from API requests. However, any
12433	// non-pointer, non-interface field appearing in ForceSendFields will be
12434	// sent to the server regardless of whether the field is empty or not.
12435	// This may be used to include empty fields in Patch requests.
12436	ForceSendFields []string `json:"-"`
12437
12438	// NullFields is a list of field names (e.g. "Key") to include in API
12439	// requests with the JSON null value. By default, fields with empty
12440	// values are omitted from API requests. However, any field with an
12441	// empty value appearing in NullFields will be sent to the server as
12442	// null. It is an error if a field in this list has a non-empty value.
12443	// This may be used to include null fields in Patch requests.
12444	NullFields []string `json:"-"`
12445}
12446
12447func (s *GuestAttributesEntry) MarshalJSON() ([]byte, error) {
12448	type NoMethod GuestAttributesEntry
12449	raw := NoMethod(*s)
12450	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12451}
12452
12453// GuestAttributesValue: Array of guest attribute namespace/key/value
12454// tuples.
12455type GuestAttributesValue struct {
12456	Items []*GuestAttributesEntry `json:"items,omitempty"`
12457
12458	// ForceSendFields is a list of field names (e.g. "Items") to
12459	// unconditionally include in API requests. By default, fields with
12460	// empty or default values are omitted from API requests. However, any
12461	// non-pointer, non-interface field appearing in ForceSendFields will be
12462	// sent to the server regardless of whether the field is empty or not.
12463	// This may be used to include empty fields in Patch requests.
12464	ForceSendFields []string `json:"-"`
12465
12466	// NullFields is a list of field names (e.g. "Items") to include in API
12467	// requests with the JSON null value. By default, fields with empty
12468	// values are omitted from API requests. However, any field with an
12469	// empty value appearing in NullFields will be sent to the server as
12470	// null. It is an error if a field in this list has a non-empty value.
12471	// This may be used to include null fields in Patch requests.
12472	NullFields []string `json:"-"`
12473}
12474
12475func (s *GuestAttributesValue) MarshalJSON() ([]byte, error) {
12476	type NoMethod GuestAttributesValue
12477	raw := NoMethod(*s)
12478	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12479}
12480
12481// GuestOsFeature: Guest OS features.
12482type GuestOsFeature struct {
12483	// Type: The ID of a supported feature. Read Enabling guest operating
12484	// system features to see a list of available options.
12485	//
12486	// Possible values:
12487	//   "FEATURE_TYPE_UNSPECIFIED"
12488	//   "GVNIC"
12489	//   "MULTI_IP_SUBNET"
12490	//   "SECURE_BOOT"
12491	//   "SEV_CAPABLE"
12492	//   "UEFI_COMPATIBLE"
12493	//   "VIRTIO_SCSI_MULTIQUEUE"
12494	//   "WINDOWS"
12495	Type string `json:"type,omitempty"`
12496
12497	// ForceSendFields is a list of field names (e.g. "Type") to
12498	// unconditionally include in API requests. By default, fields with
12499	// empty or default values are omitted from API requests. However, any
12500	// non-pointer, non-interface field appearing in ForceSendFields will be
12501	// sent to the server regardless of whether the field is empty or not.
12502	// This may be used to include empty fields in Patch requests.
12503	ForceSendFields []string `json:"-"`
12504
12505	// NullFields is a list of field names (e.g. "Type") to include in API
12506	// requests with the JSON null value. By default, fields with empty
12507	// values are omitted from API requests. However, any field with an
12508	// empty value appearing in NullFields will be sent to the server as
12509	// null. It is an error if a field in this list has a non-empty value.
12510	// This may be used to include null fields in Patch requests.
12511	NullFields []string `json:"-"`
12512}
12513
12514func (s *GuestOsFeature) MarshalJSON() ([]byte, error) {
12515	type NoMethod GuestOsFeature
12516	raw := NoMethod(*s)
12517	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12518}
12519
12520type HTTP2HealthCheck struct {
12521	// Host: The value of the host header in the HTTP/2 health check
12522	// request. If left empty (default value), the IP on behalf of which
12523	// this health check is performed will be used.
12524	Host string `json:"host,omitempty"`
12525
12526	// Port: The TCP port number for the health check request. The default
12527	// value is 443. Valid values are 1 through 65535.
12528	Port int64 `json:"port,omitempty"`
12529
12530	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
12531	// both port and port_name are defined, port takes precedence.
12532	PortName string `json:"portName,omitempty"`
12533
12534	// PortSpecification: Specifies how port is selected for health
12535	// checking, can be one of following values: USE_FIXED_PORT: The port
12536	// number in port is used for health checking. USE_NAMED_PORT: The
12537	// portName is used for health checking. USE_SERVING_PORT: For
12538	// NetworkEndpointGroup, the port specified for each network endpoint is
12539	// used for health checking. For other backends, the port or named port
12540	// specified in the Backend Service is used for health checking. If not
12541	// specified, HTTP2 health check follows behavior specified in port and
12542	// portName fields.
12543	//
12544	// Possible values:
12545	//   "USE_FIXED_PORT" - The port number in port is used for health
12546	// checking.
12547	//   "USE_NAMED_PORT" - The portName is used for health checking.
12548	//   "USE_SERVING_PORT" - For NetworkEndpointGroup, the port specified
12549	// for each network endpoint is used for health checking. For other
12550	// backends, the port or named port specified in the Backend Service is
12551	// used for health checking.
12552	PortSpecification string `json:"portSpecification,omitempty"`
12553
12554	// ProxyHeader: Specifies the type of proxy header to append before
12555	// sending data to the backend, either NONE or PROXY_V1. The default is
12556	// NONE.
12557	//
12558	// Possible values:
12559	//   "NONE"
12560	//   "PROXY_V1"
12561	ProxyHeader string `json:"proxyHeader,omitempty"`
12562
12563	// RequestPath: The request path of the HTTP/2 health check request. The
12564	// default value is /.
12565	RequestPath string `json:"requestPath,omitempty"`
12566
12567	// Response: The string to match anywhere in the first 1024 bytes of the
12568	// response body. If left empty (the default value), the status code
12569	// determines health. The response data can only be ASCII.
12570	Response string `json:"response,omitempty"`
12571
12572	// ForceSendFields is a list of field names (e.g. "Host") to
12573	// unconditionally include in API requests. By default, fields with
12574	// empty or default values are omitted from API requests. However, any
12575	// non-pointer, non-interface field appearing in ForceSendFields will be
12576	// sent to the server regardless of whether the field is empty or not.
12577	// This may be used to include empty fields in Patch requests.
12578	ForceSendFields []string `json:"-"`
12579
12580	// NullFields is a list of field names (e.g. "Host") to include in API
12581	// requests with the JSON null value. By default, fields with empty
12582	// values are omitted from API requests. However, any field with an
12583	// empty value appearing in NullFields will be sent to the server as
12584	// null. It is an error if a field in this list has a non-empty value.
12585	// This may be used to include null fields in Patch requests.
12586	NullFields []string `json:"-"`
12587}
12588
12589func (s *HTTP2HealthCheck) MarshalJSON() ([]byte, error) {
12590	type NoMethod HTTP2HealthCheck
12591	raw := NoMethod(*s)
12592	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12593}
12594
12595type HTTPHealthCheck struct {
12596	// Host: The value of the host header in the HTTP health check request.
12597	// If left empty (default value), the IP on behalf of which this health
12598	// check is performed will be used.
12599	Host string `json:"host,omitempty"`
12600
12601	// Port: The TCP port number for the health check request. The default
12602	// value is 80. Valid values are 1 through 65535.
12603	Port int64 `json:"port,omitempty"`
12604
12605	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
12606	// both port and port_name are defined, port takes precedence.
12607	PortName string `json:"portName,omitempty"`
12608
12609	// PortSpecification: Specifies how port is selected for health
12610	// checking, can be one of following values: USE_FIXED_PORT: The port
12611	// number in port is used for health checking. USE_NAMED_PORT: The
12612	// portName is used for health checking. USE_SERVING_PORT: For
12613	// NetworkEndpointGroup, the port specified for each network endpoint is
12614	// used for health checking. For other backends, the port or named port
12615	// specified in the Backend Service is used for health checking. If not
12616	// specified, HTTP health check follows behavior specified in port and
12617	// portName fields.
12618	//
12619	// Possible values:
12620	//   "USE_FIXED_PORT" - The port number in port is used for health
12621	// checking.
12622	//   "USE_NAMED_PORT" - The portName is used for health checking.
12623	//   "USE_SERVING_PORT" - For NetworkEndpointGroup, the port specified
12624	// for each network endpoint is used for health checking. For other
12625	// backends, the port or named port specified in the Backend Service is
12626	// used for health checking.
12627	PortSpecification string `json:"portSpecification,omitempty"`
12628
12629	// ProxyHeader: Specifies the type of proxy header to append before
12630	// sending data to the backend, either NONE or PROXY_V1. The default is
12631	// NONE.
12632	//
12633	// Possible values:
12634	//   "NONE"
12635	//   "PROXY_V1"
12636	ProxyHeader string `json:"proxyHeader,omitempty"`
12637
12638	// RequestPath: The request path of the HTTP health check request. The
12639	// default value is /.
12640	RequestPath string `json:"requestPath,omitempty"`
12641
12642	// Response: The string to match anywhere in the first 1024 bytes of the
12643	// response body. If left empty (the default value), the status code
12644	// determines health. The response data can only be ASCII.
12645	Response string `json:"response,omitempty"`
12646
12647	// ForceSendFields is a list of field names (e.g. "Host") to
12648	// unconditionally include in API requests. By default, fields with
12649	// empty or default values are omitted from API requests. However, any
12650	// non-pointer, non-interface field appearing in ForceSendFields will be
12651	// sent to the server regardless of whether the field is empty or not.
12652	// This may be used to include empty fields in Patch requests.
12653	ForceSendFields []string `json:"-"`
12654
12655	// NullFields is a list of field names (e.g. "Host") to include in API
12656	// requests with the JSON null value. By default, fields with empty
12657	// values are omitted from API requests. However, any field with an
12658	// empty value appearing in NullFields will be sent to the server as
12659	// null. It is an error if a field in this list has a non-empty value.
12660	// This may be used to include null fields in Patch requests.
12661	NullFields []string `json:"-"`
12662}
12663
12664func (s *HTTPHealthCheck) MarshalJSON() ([]byte, error) {
12665	type NoMethod HTTPHealthCheck
12666	raw := NoMethod(*s)
12667	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12668}
12669
12670type HTTPSHealthCheck struct {
12671	// Host: The value of the host header in the HTTPS health check request.
12672	// If left empty (default value), the IP on behalf of which this health
12673	// check is performed will be used.
12674	Host string `json:"host,omitempty"`
12675
12676	// Port: The TCP port number for the health check request. The default
12677	// value is 443. Valid values are 1 through 65535.
12678	Port int64 `json:"port,omitempty"`
12679
12680	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
12681	// both port and port_name are defined, port takes precedence.
12682	PortName string `json:"portName,omitempty"`
12683
12684	// PortSpecification: Specifies how port is selected for health
12685	// checking, can be one of following values: USE_FIXED_PORT: The port
12686	// number in port is used for health checking. USE_NAMED_PORT: The
12687	// portName is used for health checking. USE_SERVING_PORT: For
12688	// NetworkEndpointGroup, the port specified for each network endpoint is
12689	// used for health checking. For other backends, the port or named port
12690	// specified in the Backend Service is used for health checking. If not
12691	// specified, HTTPS health check follows behavior specified in port and
12692	// portName fields.
12693	//
12694	// Possible values:
12695	//   "USE_FIXED_PORT" - The port number in port is used for health
12696	// checking.
12697	//   "USE_NAMED_PORT" - The portName is used for health checking.
12698	//   "USE_SERVING_PORT" - For NetworkEndpointGroup, the port specified
12699	// for each network endpoint is used for health checking. For other
12700	// backends, the port or named port specified in the Backend Service is
12701	// used for health checking.
12702	PortSpecification string `json:"portSpecification,omitempty"`
12703
12704	// ProxyHeader: Specifies the type of proxy header to append before
12705	// sending data to the backend, either NONE or PROXY_V1. The default is
12706	// NONE.
12707	//
12708	// Possible values:
12709	//   "NONE"
12710	//   "PROXY_V1"
12711	ProxyHeader string `json:"proxyHeader,omitempty"`
12712
12713	// RequestPath: The request path of the HTTPS health check request. The
12714	// default value is /.
12715	RequestPath string `json:"requestPath,omitempty"`
12716
12717	// Response: The string to match anywhere in the first 1024 bytes of the
12718	// response body. If left empty (the default value), the status code
12719	// determines health. The response data can only be ASCII.
12720	Response string `json:"response,omitempty"`
12721
12722	// ForceSendFields is a list of field names (e.g. "Host") to
12723	// unconditionally include in API requests. By default, fields with
12724	// empty or default values are omitted from API requests. However, any
12725	// non-pointer, non-interface field appearing in ForceSendFields will be
12726	// sent to the server regardless of whether the field is empty or not.
12727	// This may be used to include empty fields in Patch requests.
12728	ForceSendFields []string `json:"-"`
12729
12730	// NullFields is a list of field names (e.g. "Host") to include in API
12731	// requests with the JSON null value. By default, fields with empty
12732	// values are omitted from API requests. However, any field with an
12733	// empty value appearing in NullFields will be sent to the server as
12734	// null. It is an error if a field in this list has a non-empty value.
12735	// This may be used to include null fields in Patch requests.
12736	NullFields []string `json:"-"`
12737}
12738
12739func (s *HTTPSHealthCheck) MarshalJSON() ([]byte, error) {
12740	type NoMethod HTTPSHealthCheck
12741	raw := NoMethod(*s)
12742	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12743}
12744
12745// HealthCheck: Represents a Health Check resource. Google Compute
12746// Engine has two Health Check resources: * Global
12747// (/compute/docs/reference/rest/v1/healthChecks) * Regional
12748// (/compute/docs/reference/rest/v1/regionHealthChecks) Internal HTTP(S)
12749// load balancers must use regional health checks
12750// (`compute.v1.regionHealthChecks`). Traffic Director must use global
12751// health checks (`compute.v1.HealthChecks`). Internal TCP/UDP load
12752// balancers can use either regional or global health checks
12753// (`compute.v1.regionHealthChecks` or `compute.v1.HealthChecks`).
12754// External HTTP(S), TCP proxy, and SSL proxy load balancers as well as
12755// managed instance group auto-healing must use global health checks
12756// (`compute.v1.HealthChecks`). Backend service-based network load
12757// balancers must use regional health checks
12758// (`compute.v1.regionHealthChecks`). Target pool-based network load
12759// balancers must use legacy HTTP health checks
12760// (`compute.v1.httpHealthChecks`). For more information, see Health
12761// checks overview.
12762type HealthCheck struct {
12763	// CheckIntervalSec: How often (in seconds) to send a health check. The
12764	// default value is 5 seconds.
12765	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
12766
12767	// CreationTimestamp: [Output Only] Creation timestamp in 3339 text
12768	// format.
12769	CreationTimestamp string `json:"creationTimestamp,omitempty"`
12770
12771	// Description: An optional description of this resource. Provide this
12772	// property when you create the resource.
12773	Description string `json:"description,omitempty"`
12774
12775	GrpcHealthCheck *GRPCHealthCheck `json:"grpcHealthCheck,omitempty"`
12776
12777	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
12778	// after this many consecutive successes. The default value is 2.
12779	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
12780
12781	Http2HealthCheck *HTTP2HealthCheck `json:"http2HealthCheck,omitempty"`
12782
12783	HttpHealthCheck *HTTPHealthCheck `json:"httpHealthCheck,omitempty"`
12784
12785	HttpsHealthCheck *HTTPSHealthCheck `json:"httpsHealthCheck,omitempty"`
12786
12787	// Id: [Output Only] The unique identifier for the resource. This
12788	// identifier is defined by the server.
12789	Id uint64 `json:"id,omitempty,string"`
12790
12791	// Kind: Type of the resource.
12792	Kind string `json:"kind,omitempty"`
12793
12794	// LogConfig: Configure logging on this health check.
12795	LogConfig *HealthCheckLogConfig `json:"logConfig,omitempty"`
12796
12797	// Name: Name of the resource. Provided by the client when the resource
12798	// is created. The name must be 1-63 characters long, and comply with
12799	// RFC1035. For example, a name that is 1-63 characters long, matches
12800	// the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`, and otherwise
12801	// complies with RFC1035. This regular expression describes a name where
12802	// the first character is a lowercase letter, and all following
12803	// characters are a dash, lowercase letter, or digit, except the last
12804	// character, which isn't a dash.
12805	Name string `json:"name,omitempty"`
12806
12807	// Region: [Output Only] Region where the health check resides. Not
12808	// applicable to global health checks.
12809	Region string `json:"region,omitempty"`
12810
12811	// SelfLink: [Output Only] Server-defined URL for the resource.
12812	SelfLink string `json:"selfLink,omitempty"`
12813
12814	SslHealthCheck *SSLHealthCheck `json:"sslHealthCheck,omitempty"`
12815
12816	TcpHealthCheck *TCPHealthCheck `json:"tcpHealthCheck,omitempty"`
12817
12818	// TimeoutSec: How long (in seconds) to wait before claiming failure.
12819	// The default value is 5 seconds. It is invalid for timeoutSec to have
12820	// greater value than checkIntervalSec.
12821	TimeoutSec int64 `json:"timeoutSec,omitempty"`
12822
12823	// Type: Specifies the type of the healthCheck, either TCP, SSL, HTTP,
12824	// HTTPS or HTTP2. If not specified, the default is TCP. Exactly one of
12825	// the protocol-specific health check field must be specified, which
12826	// must match type field.
12827	//
12828	// Possible values:
12829	//   "GRPC"
12830	//   "HTTP"
12831	//   "HTTP2"
12832	//   "HTTPS"
12833	//   "INVALID"
12834	//   "SSL"
12835	//   "TCP"
12836	Type string `json:"type,omitempty"`
12837
12838	// UnhealthyThreshold: A so-far healthy instance will be marked
12839	// unhealthy after this many consecutive failures. The default value is
12840	// 2.
12841	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
12842
12843	// ServerResponse contains the HTTP response code and headers from the
12844	// server.
12845	googleapi.ServerResponse `json:"-"`
12846
12847	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
12848	// unconditionally include in API requests. By default, fields with
12849	// empty or default values are omitted from API requests. However, any
12850	// non-pointer, non-interface field appearing in ForceSendFields will be
12851	// sent to the server regardless of whether the field is empty or not.
12852	// This may be used to include empty fields in Patch requests.
12853	ForceSendFields []string `json:"-"`
12854
12855	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
12856	// include in API requests with the JSON null value. By default, fields
12857	// with empty values are omitted from API requests. However, any field
12858	// with an empty value appearing in NullFields will be sent to the
12859	// server as null. It is an error if a field in this list has a
12860	// non-empty value. This may be used to include null fields in Patch
12861	// requests.
12862	NullFields []string `json:"-"`
12863}
12864
12865func (s *HealthCheck) MarshalJSON() ([]byte, error) {
12866	type NoMethod HealthCheck
12867	raw := NoMethod(*s)
12868	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12869}
12870
12871// HealthCheckList: Contains a list of HealthCheck resources.
12872type HealthCheckList struct {
12873	// Id: [Output Only] Unique identifier for the resource; defined by the
12874	// server.
12875	Id string `json:"id,omitempty"`
12876
12877	// Items: A list of HealthCheck resources.
12878	Items []*HealthCheck `json:"items,omitempty"`
12879
12880	// Kind: Type of resource.
12881	Kind string `json:"kind,omitempty"`
12882
12883	// NextPageToken: [Output Only] This token allows you to get the next
12884	// page of results for list requests. If the number of results is larger
12885	// than maxResults, use the nextPageToken as a value for the query
12886	// parameter pageToken in the next list request. Subsequent list
12887	// requests will have their own nextPageToken to continue paging through
12888	// the results.
12889	NextPageToken string `json:"nextPageToken,omitempty"`
12890
12891	// SelfLink: [Output Only] Server-defined URL for this resource.
12892	SelfLink string `json:"selfLink,omitempty"`
12893
12894	// Warning: [Output Only] Informational warning message.
12895	Warning *HealthCheckListWarning `json:"warning,omitempty"`
12896
12897	// ServerResponse contains the HTTP response code and headers from the
12898	// server.
12899	googleapi.ServerResponse `json:"-"`
12900
12901	// ForceSendFields is a list of field names (e.g. "Id") to
12902	// unconditionally include in API requests. By default, fields with
12903	// empty or default values are omitted from API requests. However, any
12904	// non-pointer, non-interface field appearing in ForceSendFields will be
12905	// sent to the server regardless of whether the field is empty or not.
12906	// This may be used to include empty fields in Patch requests.
12907	ForceSendFields []string `json:"-"`
12908
12909	// NullFields is a list of field names (e.g. "Id") to include in API
12910	// requests with the JSON null value. By default, fields with empty
12911	// values are omitted from API requests. However, any field with an
12912	// empty value appearing in NullFields will be sent to the server as
12913	// null. It is an error if a field in this list has a non-empty value.
12914	// This may be used to include null fields in Patch requests.
12915	NullFields []string `json:"-"`
12916}
12917
12918func (s *HealthCheckList) MarshalJSON() ([]byte, error) {
12919	type NoMethod HealthCheckList
12920	raw := NoMethod(*s)
12921	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12922}
12923
12924// HealthCheckListWarning: [Output Only] Informational warning message.
12925type HealthCheckListWarning struct {
12926	// Code: [Output Only] A warning code, if applicable. For example,
12927	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12928	// the response.
12929	//
12930	// Possible values:
12931	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
12932	// changes made by a failed operation.
12933	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
12934	// created.
12935	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
12936	// resources has a type marked as deprecated
12937	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
12938	// that is larger than image size.
12939	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
12940	// resources has a type marked as experimental
12941	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
12942	// call
12943	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
12944	// overridden. Deprecated unused field.
12945	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
12946	// injected kernel, which is deprecated.
12947	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
12948	// exceedingly large number of resources
12949	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
12950	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
12951	// not assigned to an instance on the network.
12952	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
12953	// ip forward.
12954	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
12955	// refers to an instance that does not exist.
12956	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
12957	// URL refers to an instance that is not on the same network as the
12958	// route.
12959	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
12960	// have a status of RUNNING.
12961	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
12962	// continue the process despite the mentioned error.
12963	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
12964	// page.
12965	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
12966	// missing due to errors
12967	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
12968	// that requires a TOS they have not accepted.
12969	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
12970	// resource is in use.
12971	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
12972	// auto-delete could not be deleted because they were in use.
12973	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
12974	// ignored.
12975	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
12976	// instance group manager is valid as such, but its application does not
12977	// make a lot of sense, because it allows only single instance in
12978	// instance group.
12979	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
12980	// are present
12981	//   "UNREACHABLE" - A given scope cannot be reached.
12982	Code string `json:"code,omitempty"`
12983
12984	// Data: [Output Only] Metadata about this warning in key: value format.
12985	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
12986	// }
12987	Data []*HealthCheckListWarningData `json:"data,omitempty"`
12988
12989	// Message: [Output Only] A human-readable description of the warning
12990	// code.
12991	Message string `json:"message,omitempty"`
12992
12993	// ForceSendFields is a list of field names (e.g. "Code") to
12994	// unconditionally include in API requests. By default, fields with
12995	// empty or default values are omitted from API requests. However, any
12996	// non-pointer, non-interface field appearing in ForceSendFields will be
12997	// sent to the server regardless of whether the field is empty or not.
12998	// This may be used to include empty fields in Patch requests.
12999	ForceSendFields []string `json:"-"`
13000
13001	// NullFields is a list of field names (e.g. "Code") to include in API
13002	// requests with the JSON null value. By default, fields with empty
13003	// values are omitted from API requests. However, any field with an
13004	// empty value appearing in NullFields will be sent to the server as
13005	// null. It is an error if a field in this list has a non-empty value.
13006	// This may be used to include null fields in Patch requests.
13007	NullFields []string `json:"-"`
13008}
13009
13010func (s *HealthCheckListWarning) MarshalJSON() ([]byte, error) {
13011	type NoMethod HealthCheckListWarning
13012	raw := NoMethod(*s)
13013	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13014}
13015
13016type HealthCheckListWarningData struct {
13017	// Key: [Output Only] A key that provides more detail on the warning
13018	// being returned. For example, for warnings where there are no results
13019	// in a list request for a particular zone, this key might be scope and
13020	// the key value might be the zone name. Other examples might be a key
13021	// indicating a deprecated resource and a suggested replacement, or a
13022	// warning about invalid network settings (for example, if an instance
13023	// attempts to perform IP forwarding but is not enabled for IP
13024	// forwarding).
13025	Key string `json:"key,omitempty"`
13026
13027	// Value: [Output Only] A warning data value corresponding to the key.
13028	Value string `json:"value,omitempty"`
13029
13030	// ForceSendFields is a list of field names (e.g. "Key") to
13031	// unconditionally include in API requests. By default, fields with
13032	// empty or default values are omitted from API requests. However, any
13033	// non-pointer, non-interface field appearing in ForceSendFields will be
13034	// sent to the server regardless of whether the field is empty or not.
13035	// This may be used to include empty fields in Patch requests.
13036	ForceSendFields []string `json:"-"`
13037
13038	// NullFields is a list of field names (e.g. "Key") to include in API
13039	// requests with the JSON null value. By default, fields with empty
13040	// values are omitted from API requests. However, any field with an
13041	// empty value appearing in NullFields will be sent to the server as
13042	// null. It is an error if a field in this list has a non-empty value.
13043	// This may be used to include null fields in Patch requests.
13044	NullFields []string `json:"-"`
13045}
13046
13047func (s *HealthCheckListWarningData) MarshalJSON() ([]byte, error) {
13048	type NoMethod HealthCheckListWarningData
13049	raw := NoMethod(*s)
13050	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13051}
13052
13053// HealthCheckLogConfig: Configuration of logging on a health check. If
13054// logging is enabled, logs will be exported to Stackdriver.
13055type HealthCheckLogConfig struct {
13056	// Enable: Indicates whether or not to export logs. This is false by
13057	// default, which means no health check logging will be done.
13058	Enable bool `json:"enable,omitempty"`
13059
13060	// ForceSendFields is a list of field names (e.g. "Enable") to
13061	// unconditionally include in API requests. By default, fields with
13062	// empty or default values are omitted from API requests. However, any
13063	// non-pointer, non-interface field appearing in ForceSendFields will be
13064	// sent to the server regardless of whether the field is empty or not.
13065	// This may be used to include empty fields in Patch requests.
13066	ForceSendFields []string `json:"-"`
13067
13068	// NullFields is a list of field names (e.g. "Enable") to include in API
13069	// requests with the JSON null value. By default, fields with empty
13070	// values are omitted from API requests. However, any field with an
13071	// empty value appearing in NullFields will be sent to the server as
13072	// null. It is an error if a field in this list has a non-empty value.
13073	// This may be used to include null fields in Patch requests.
13074	NullFields []string `json:"-"`
13075}
13076
13077func (s *HealthCheckLogConfig) MarshalJSON() ([]byte, error) {
13078	type NoMethod HealthCheckLogConfig
13079	raw := NoMethod(*s)
13080	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13081}
13082
13083// HealthCheckReference: A full or valid partial URL to a health check.
13084// For example, the following are valid URLs: -
13085// https://www.googleapis.com/compute/beta/projects/project-id/global/httpHealthChecks/health-check
13086// - projects/project-id/global/httpHealthChecks/health-check -
13087// global/httpHealthChecks/health-check
13088type HealthCheckReference struct {
13089	HealthCheck string `json:"healthCheck,omitempty"`
13090
13091	// ForceSendFields is a list of field names (e.g. "HealthCheck") to
13092	// unconditionally include in API requests. By default, fields with
13093	// empty or default values are omitted from API requests. However, any
13094	// non-pointer, non-interface field appearing in ForceSendFields will be
13095	// sent to the server regardless of whether the field is empty or not.
13096	// This may be used to include empty fields in Patch requests.
13097	ForceSendFields []string `json:"-"`
13098
13099	// NullFields is a list of field names (e.g. "HealthCheck") to include
13100	// in API requests with the JSON null value. By default, fields with
13101	// empty values are omitted from API requests. However, any field with
13102	// an empty value appearing in NullFields will be sent to the server as
13103	// null. It is an error if a field in this list has a non-empty value.
13104	// This may be used to include null fields in Patch requests.
13105	NullFields []string `json:"-"`
13106}
13107
13108func (s *HealthCheckReference) MarshalJSON() ([]byte, error) {
13109	type NoMethod HealthCheckReference
13110	raw := NoMethod(*s)
13111	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13112}
13113
13114// HealthCheckService: Represents a Health-Check as a Service resource.
13115type HealthCheckService struct {
13116	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
13117	// format.
13118	CreationTimestamp string `json:"creationTimestamp,omitempty"`
13119
13120	// Description: An optional description of this resource. Provide this
13121	// property when you create the resource.
13122	Description string `json:"description,omitempty"`
13123
13124	// Fingerprint: Fingerprint of this resource. A hash of the contents
13125	// stored in this object. This field is used in optimistic locking. This
13126	// field will be ignored when inserting a HealthCheckService. An
13127	// up-to-date fingerprint must be provided in order to patch/update the
13128	// HealthCheckService; Otherwise, the request will fail with error 412
13129	// conditionNotMet. To see the latest fingerprint, make a get() request
13130	// to retrieve the HealthCheckService.
13131	Fingerprint string `json:"fingerprint,omitempty"`
13132
13133	// HealthChecks: A list of URLs to the HealthCheck resources. Must have
13134	// at least one HealthCheck, and not more than 10. HealthCheck resources
13135	// must have portSpecification=USE_SERVING_PORT or
13136	// portSpecification=USE_FIXED_PORT. For regional HealthCheckService,
13137	// the HealthCheck must be regional and in the same region. For global
13138	// HealthCheckService, HealthCheck must be global. Mix of regional and
13139	// global HealthChecks is not supported. Multiple regional HealthChecks
13140	// must belong to the same region. Regional HealthChecks must belong to
13141	// the same region as zones of NEGs.
13142	HealthChecks []string `json:"healthChecks,omitempty"`
13143
13144	// HealthStatusAggregationPolicy: Optional. Policy for how the results
13145	// from multiple health checks for the same endpoint are aggregated.
13146	// Defaults to NO_AGGREGATION if unspecified. - NO_AGGREGATION. An
13147	// EndpointHealth message is returned for each pair in the health check
13148	// service. - AND. If any health check of an endpoint reports UNHEALTHY,
13149	// then UNHEALTHY is the HealthState of the endpoint. If all health
13150	// checks report HEALTHY, the HealthState of the endpoint is HEALTHY. .
13151	//
13152	// Possible values:
13153	//   "AND" - If any backend's health check reports UNHEALTHY, then
13154	// UNHEALTHY is the HealthState of the entire health check service. If
13155	// all backend's are healthy, the HealthState of the health check
13156	// service is HEALTHY.
13157	//   "NO_AGGREGATION" - An EndpointHealth message is returned for each
13158	// backend in the health check service.
13159	HealthStatusAggregationPolicy string `json:"healthStatusAggregationPolicy,omitempty"`
13160
13161	// Id: [Output Only] The unique identifier for the resource. This
13162	// identifier is defined by the server.
13163	Id uint64 `json:"id,omitempty,string"`
13164
13165	// Kind: [Output only] Type of the resource. Always
13166	// compute#healthCheckServicefor health check services.
13167	Kind string `json:"kind,omitempty"`
13168
13169	// Name: Name of the resource. The name must be 1-63 characters long,
13170	// and comply with RFC1035. Specifically, the name must be 1-63
13171	// characters long and match the regular expression
13172	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
13173	// a lowercase letter, and all following characters must be a dash,
13174	// lowercase letter, or digit, except the last character, which cannot
13175	// be a dash.
13176	Name string `json:"name,omitempty"`
13177
13178	// NetworkEndpointGroups: A list of URLs to the NetworkEndpointGroup
13179	// resources. Must not have more than 100. For regional
13180	// HealthCheckService, NEGs must be in zones in the region of the
13181	// HealthCheckService.
13182	NetworkEndpointGroups []string `json:"networkEndpointGroups,omitempty"`
13183
13184	// NotificationEndpoints: A list of URLs to the NotificationEndpoint
13185	// resources. Must not have more than 10. A list of endpoints for
13186	// receiving notifications of change in health status. For regional
13187	// HealthCheckService, NotificationEndpoint must be regional and in the
13188	// same region. For global HealthCheckService, NotificationEndpoint must
13189	// be global.
13190	NotificationEndpoints []string `json:"notificationEndpoints,omitempty"`
13191
13192	// Region: [Output Only] URL of the region where the health check
13193	// service resides. This field is not applicable to global health check
13194	// services. You must specify this field as part of the HTTP request
13195	// URL. It is not settable as a field in the request body.
13196	Region string `json:"region,omitempty"`
13197
13198	// SelfLink: [Output Only] Server-defined URL for the resource.
13199	SelfLink string `json:"selfLink,omitempty"`
13200
13201	// ServerResponse contains the HTTP response code and headers from the
13202	// server.
13203	googleapi.ServerResponse `json:"-"`
13204
13205	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
13206	// to unconditionally include in API requests. By default, fields with
13207	// empty or default values are omitted from API requests. However, any
13208	// non-pointer, non-interface field appearing in ForceSendFields will be
13209	// sent to the server regardless of whether the field is empty or not.
13210	// This may be used to include empty fields in Patch requests.
13211	ForceSendFields []string `json:"-"`
13212
13213	// NullFields is a list of field names (e.g. "CreationTimestamp") to
13214	// include in API requests with the JSON null value. By default, fields
13215	// with empty values are omitted from API requests. However, any field
13216	// with an empty value appearing in NullFields will be sent to the
13217	// server as null. It is an error if a field in this list has a
13218	// non-empty value. This may be used to include null fields in Patch
13219	// requests.
13220	NullFields []string `json:"-"`
13221}
13222
13223func (s *HealthCheckService) MarshalJSON() ([]byte, error) {
13224	type NoMethod HealthCheckService
13225	raw := NoMethod(*s)
13226	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13227}
13228
13229// HealthCheckServiceReference: A full or valid partial URL to a health
13230// check service. For example, the following are valid URLs: -
13231// https://www.googleapis.com/compute/beta/projects/project-id/regions/us-west1/healthCheckServices/health-check-service
13232// -
13233// projects/project-id/regions/us-west1/healthCheckServices/health-check-
13234// service - regions/us-west1/healthCheckServices/health-check-service
13235type HealthCheckServiceReference struct {
13236	HealthCheckService string `json:"healthCheckService,omitempty"`
13237
13238	// ForceSendFields is a list of field names (e.g. "HealthCheckService")
13239	// to unconditionally include in API requests. By default, fields with
13240	// empty or default values are omitted from API requests. However, any
13241	// non-pointer, non-interface field appearing in ForceSendFields will be
13242	// sent to the server regardless of whether the field is empty or not.
13243	// This may be used to include empty fields in Patch requests.
13244	ForceSendFields []string `json:"-"`
13245
13246	// NullFields is a list of field names (e.g. "HealthCheckService") to
13247	// include in API requests with the JSON null value. By default, fields
13248	// with empty values are omitted from API requests. However, any field
13249	// with an empty value appearing in NullFields will be sent to the
13250	// server as null. It is an error if a field in this list has a
13251	// non-empty value. This may be used to include null fields in Patch
13252	// requests.
13253	NullFields []string `json:"-"`
13254}
13255
13256func (s *HealthCheckServiceReference) MarshalJSON() ([]byte, error) {
13257	type NoMethod HealthCheckServiceReference
13258	raw := NoMethod(*s)
13259	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13260}
13261
13262type HealthCheckServicesList struct {
13263	// Id: [Output Only] Unique identifier for the resource; defined by the
13264	// server.
13265	Id string `json:"id,omitempty"`
13266
13267	// Items: A list of HealthCheckService resources.
13268	Items []*HealthCheckService `json:"items,omitempty"`
13269
13270	// Kind: [Output Only] Type of the resource. Always
13271	// compute#healthCheckServicesList for lists of HealthCheckServices.
13272	Kind string `json:"kind,omitempty"`
13273
13274	// NextPageToken: [Output Only] This token allows you to get the next
13275	// page of results for list requests. If the number of results is larger
13276	// than maxResults, use the nextPageToken as a value for the query
13277	// parameter pageToken in the next list request. Subsequent list
13278	// requests will have their own nextPageToken to continue paging through
13279	// the results.
13280	NextPageToken string `json:"nextPageToken,omitempty"`
13281
13282	// SelfLink: [Output Only] Server-defined URL for this resource.
13283	SelfLink string `json:"selfLink,omitempty"`
13284
13285	// Warning: [Output Only] Informational warning message.
13286	Warning *HealthCheckServicesListWarning `json:"warning,omitempty"`
13287
13288	// ServerResponse contains the HTTP response code and headers from the
13289	// server.
13290	googleapi.ServerResponse `json:"-"`
13291
13292	// ForceSendFields is a list of field names (e.g. "Id") to
13293	// unconditionally include in API requests. By default, fields with
13294	// empty or default values are omitted from API requests. However, any
13295	// non-pointer, non-interface field appearing in ForceSendFields will be
13296	// sent to the server regardless of whether the field is empty or not.
13297	// This may be used to include empty fields in Patch requests.
13298	ForceSendFields []string `json:"-"`
13299
13300	// NullFields is a list of field names (e.g. "Id") to include in API
13301	// requests with the JSON null value. By default, fields with empty
13302	// values are omitted from API requests. However, any field with an
13303	// empty value appearing in NullFields will be sent to the server as
13304	// null. It is an error if a field in this list has a non-empty value.
13305	// This may be used to include null fields in Patch requests.
13306	NullFields []string `json:"-"`
13307}
13308
13309func (s *HealthCheckServicesList) MarshalJSON() ([]byte, error) {
13310	type NoMethod HealthCheckServicesList
13311	raw := NoMethod(*s)
13312	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13313}
13314
13315// HealthCheckServicesListWarning: [Output Only] Informational warning
13316// message.
13317type HealthCheckServicesListWarning struct {
13318	// Code: [Output Only] A warning code, if applicable. For example,
13319	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13320	// the response.
13321	//
13322	// Possible values:
13323	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
13324	// changes made by a failed operation.
13325	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
13326	// created.
13327	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
13328	// resources has a type marked as deprecated
13329	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
13330	// that is larger than image size.
13331	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
13332	// resources has a type marked as experimental
13333	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
13334	// call
13335	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
13336	// overridden. Deprecated unused field.
13337	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
13338	// injected kernel, which is deprecated.
13339	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
13340	// exceedingly large number of resources
13341	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
13342	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
13343	// not assigned to an instance on the network.
13344	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
13345	// ip forward.
13346	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
13347	// refers to an instance that does not exist.
13348	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
13349	// URL refers to an instance that is not on the same network as the
13350	// route.
13351	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
13352	// have a status of RUNNING.
13353	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
13354	// continue the process despite the mentioned error.
13355	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
13356	// page.
13357	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
13358	// missing due to errors
13359	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
13360	// that requires a TOS they have not accepted.
13361	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
13362	// resource is in use.
13363	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
13364	// auto-delete could not be deleted because they were in use.
13365	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
13366	// ignored.
13367	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
13368	// instance group manager is valid as such, but its application does not
13369	// make a lot of sense, because it allows only single instance in
13370	// instance group.
13371	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
13372	// are present
13373	//   "UNREACHABLE" - A given scope cannot be reached.
13374	Code string `json:"code,omitempty"`
13375
13376	// Data: [Output Only] Metadata about this warning in key: value format.
13377	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
13378	// }
13379	Data []*HealthCheckServicesListWarningData `json:"data,omitempty"`
13380
13381	// Message: [Output Only] A human-readable description of the warning
13382	// code.
13383	Message string `json:"message,omitempty"`
13384
13385	// ForceSendFields is a list of field names (e.g. "Code") to
13386	// unconditionally include in API requests. By default, fields with
13387	// empty or default values are omitted from API requests. However, any
13388	// non-pointer, non-interface field appearing in ForceSendFields will be
13389	// sent to the server regardless of whether the field is empty or not.
13390	// This may be used to include empty fields in Patch requests.
13391	ForceSendFields []string `json:"-"`
13392
13393	// NullFields is a list of field names (e.g. "Code") to include in API
13394	// requests with the JSON null value. By default, fields with empty
13395	// values are omitted from API requests. However, any field with an
13396	// empty value appearing in NullFields will be sent to the server as
13397	// null. It is an error if a field in this list has a non-empty value.
13398	// This may be used to include null fields in Patch requests.
13399	NullFields []string `json:"-"`
13400}
13401
13402func (s *HealthCheckServicesListWarning) MarshalJSON() ([]byte, error) {
13403	type NoMethod HealthCheckServicesListWarning
13404	raw := NoMethod(*s)
13405	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13406}
13407
13408type HealthCheckServicesListWarningData struct {
13409	// Key: [Output Only] A key that provides more detail on the warning
13410	// being returned. For example, for warnings where there are no results
13411	// in a list request for a particular zone, this key might be scope and
13412	// the key value might be the zone name. Other examples might be a key
13413	// indicating a deprecated resource and a suggested replacement, or a
13414	// warning about invalid network settings (for example, if an instance
13415	// attempts to perform IP forwarding but is not enabled for IP
13416	// forwarding).
13417	Key string `json:"key,omitempty"`
13418
13419	// Value: [Output Only] A warning data value corresponding to the key.
13420	Value string `json:"value,omitempty"`
13421
13422	// ForceSendFields is a list of field names (e.g. "Key") to
13423	// unconditionally include in API requests. By default, fields with
13424	// empty or default values are omitted from API requests. However, any
13425	// non-pointer, non-interface field appearing in ForceSendFields will be
13426	// sent to the server regardless of whether the field is empty or not.
13427	// This may be used to include empty fields in Patch requests.
13428	ForceSendFields []string `json:"-"`
13429
13430	// NullFields is a list of field names (e.g. "Key") to include in API
13431	// requests with the JSON null value. By default, fields with empty
13432	// values are omitted from API requests. However, any field with an
13433	// empty value appearing in NullFields will be sent to the server as
13434	// null. It is an error if a field in this list has a non-empty value.
13435	// This may be used to include null fields in Patch requests.
13436	NullFields []string `json:"-"`
13437}
13438
13439func (s *HealthCheckServicesListWarningData) MarshalJSON() ([]byte, error) {
13440	type NoMethod HealthCheckServicesListWarningData
13441	raw := NoMethod(*s)
13442	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13443}
13444
13445type HealthChecksAggregatedList struct {
13446	// Id: [Output Only] Unique identifier for the resource; defined by the
13447	// server.
13448	Id string `json:"id,omitempty"`
13449
13450	// Items: A list of HealthChecksScopedList resources.
13451	Items map[string]HealthChecksScopedList `json:"items,omitempty"`
13452
13453	// Kind: Type of resource.
13454	Kind string `json:"kind,omitempty"`
13455
13456	// NextPageToken: [Output Only] This token allows you to get the next
13457	// page of results for list requests. If the number of results is larger
13458	// than maxResults, use the nextPageToken as a value for the query
13459	// parameter pageToken in the next list request. Subsequent list
13460	// requests will have their own nextPageToken to continue paging through
13461	// the results.
13462	NextPageToken string `json:"nextPageToken,omitempty"`
13463
13464	// SelfLink: [Output Only] Server-defined URL for this resource.
13465	SelfLink string `json:"selfLink,omitempty"`
13466
13467	// Unreachables: [Output Only] Unreachable resources.
13468	Unreachables []string `json:"unreachables,omitempty"`
13469
13470	// Warning: [Output Only] Informational warning message.
13471	Warning *HealthChecksAggregatedListWarning `json:"warning,omitempty"`
13472
13473	// ServerResponse contains the HTTP response code and headers from the
13474	// server.
13475	googleapi.ServerResponse `json:"-"`
13476
13477	// ForceSendFields is a list of field names (e.g. "Id") to
13478	// unconditionally include in API requests. By default, fields with
13479	// empty or default values are omitted from API requests. However, any
13480	// non-pointer, non-interface field appearing in ForceSendFields will be
13481	// sent to the server regardless of whether the field is empty or not.
13482	// This may be used to include empty fields in Patch requests.
13483	ForceSendFields []string `json:"-"`
13484
13485	// NullFields is a list of field names (e.g. "Id") to include in API
13486	// requests with the JSON null value. By default, fields with empty
13487	// values are omitted from API requests. However, any field with an
13488	// empty value appearing in NullFields will be sent to the server as
13489	// null. It is an error if a field in this list has a non-empty value.
13490	// This may be used to include null fields in Patch requests.
13491	NullFields []string `json:"-"`
13492}
13493
13494func (s *HealthChecksAggregatedList) MarshalJSON() ([]byte, error) {
13495	type NoMethod HealthChecksAggregatedList
13496	raw := NoMethod(*s)
13497	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13498}
13499
13500// HealthChecksAggregatedListWarning: [Output Only] Informational
13501// warning message.
13502type HealthChecksAggregatedListWarning struct {
13503	// Code: [Output Only] A warning code, if applicable. For example,
13504	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13505	// the response.
13506	//
13507	// Possible values:
13508	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
13509	// changes made by a failed operation.
13510	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
13511	// created.
13512	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
13513	// resources has a type marked as deprecated
13514	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
13515	// that is larger than image size.
13516	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
13517	// resources has a type marked as experimental
13518	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
13519	// call
13520	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
13521	// overridden. Deprecated unused field.
13522	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
13523	// injected kernel, which is deprecated.
13524	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
13525	// exceedingly large number of resources
13526	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
13527	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
13528	// not assigned to an instance on the network.
13529	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
13530	// ip forward.
13531	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
13532	// refers to an instance that does not exist.
13533	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
13534	// URL refers to an instance that is not on the same network as the
13535	// route.
13536	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
13537	// have a status of RUNNING.
13538	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
13539	// continue the process despite the mentioned error.
13540	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
13541	// page.
13542	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
13543	// missing due to errors
13544	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
13545	// that requires a TOS they have not accepted.
13546	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
13547	// resource is in use.
13548	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
13549	// auto-delete could not be deleted because they were in use.
13550	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
13551	// ignored.
13552	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
13553	// instance group manager is valid as such, but its application does not
13554	// make a lot of sense, because it allows only single instance in
13555	// instance group.
13556	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
13557	// are present
13558	//   "UNREACHABLE" - A given scope cannot be reached.
13559	Code string `json:"code,omitempty"`
13560
13561	// Data: [Output Only] Metadata about this warning in key: value format.
13562	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
13563	// }
13564	Data []*HealthChecksAggregatedListWarningData `json:"data,omitempty"`
13565
13566	// Message: [Output Only] A human-readable description of the warning
13567	// code.
13568	Message string `json:"message,omitempty"`
13569
13570	// ForceSendFields is a list of field names (e.g. "Code") to
13571	// unconditionally include in API requests. By default, fields with
13572	// empty or default values are omitted from API requests. However, any
13573	// non-pointer, non-interface field appearing in ForceSendFields will be
13574	// sent to the server regardless of whether the field is empty or not.
13575	// This may be used to include empty fields in Patch requests.
13576	ForceSendFields []string `json:"-"`
13577
13578	// NullFields is a list of field names (e.g. "Code") to include in API
13579	// requests with the JSON null value. By default, fields with empty
13580	// values are omitted from API requests. However, any field with an
13581	// empty value appearing in NullFields will be sent to the server as
13582	// null. It is an error if a field in this list has a non-empty value.
13583	// This may be used to include null fields in Patch requests.
13584	NullFields []string `json:"-"`
13585}
13586
13587func (s *HealthChecksAggregatedListWarning) MarshalJSON() ([]byte, error) {
13588	type NoMethod HealthChecksAggregatedListWarning
13589	raw := NoMethod(*s)
13590	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13591}
13592
13593type HealthChecksAggregatedListWarningData struct {
13594	// Key: [Output Only] A key that provides more detail on the warning
13595	// being returned. For example, for warnings where there are no results
13596	// in a list request for a particular zone, this key might be scope and
13597	// the key value might be the zone name. Other examples might be a key
13598	// indicating a deprecated resource and a suggested replacement, or a
13599	// warning about invalid network settings (for example, if an instance
13600	// attempts to perform IP forwarding but is not enabled for IP
13601	// forwarding).
13602	Key string `json:"key,omitempty"`
13603
13604	// Value: [Output Only] A warning data value corresponding to the key.
13605	Value string `json:"value,omitempty"`
13606
13607	// ForceSendFields is a list of field names (e.g. "Key") to
13608	// unconditionally include in API requests. By default, fields with
13609	// empty or default values are omitted from API requests. However, any
13610	// non-pointer, non-interface field appearing in ForceSendFields will be
13611	// sent to the server regardless of whether the field is empty or not.
13612	// This may be used to include empty fields in Patch requests.
13613	ForceSendFields []string `json:"-"`
13614
13615	// NullFields is a list of field names (e.g. "Key") to include in API
13616	// requests with the JSON null value. By default, fields with empty
13617	// values are omitted from API requests. However, any field with an
13618	// empty value appearing in NullFields will be sent to the server as
13619	// null. It is an error if a field in this list has a non-empty value.
13620	// This may be used to include null fields in Patch requests.
13621	NullFields []string `json:"-"`
13622}
13623
13624func (s *HealthChecksAggregatedListWarningData) MarshalJSON() ([]byte, error) {
13625	type NoMethod HealthChecksAggregatedListWarningData
13626	raw := NoMethod(*s)
13627	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13628}
13629
13630type HealthChecksScopedList struct {
13631	// HealthChecks: A list of HealthChecks contained in this scope.
13632	HealthChecks []*HealthCheck `json:"healthChecks,omitempty"`
13633
13634	// Warning: Informational warning which replaces the list of backend
13635	// services when the list is empty.
13636	Warning *HealthChecksScopedListWarning `json:"warning,omitempty"`
13637
13638	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
13639	// unconditionally include in API requests. By default, fields with
13640	// empty or default values are omitted from API requests. However, any
13641	// non-pointer, non-interface field appearing in ForceSendFields will be
13642	// sent to the server regardless of whether the field is empty or not.
13643	// This may be used to include empty fields in Patch requests.
13644	ForceSendFields []string `json:"-"`
13645
13646	// NullFields is a list of field names (e.g. "HealthChecks") to include
13647	// in API requests with the JSON null value. By default, fields with
13648	// empty values are omitted from API requests. However, any field with
13649	// an empty value appearing in NullFields will be sent to the server as
13650	// null. It is an error if a field in this list has a non-empty value.
13651	// This may be used to include null fields in Patch requests.
13652	NullFields []string `json:"-"`
13653}
13654
13655func (s *HealthChecksScopedList) MarshalJSON() ([]byte, error) {
13656	type NoMethod HealthChecksScopedList
13657	raw := NoMethod(*s)
13658	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13659}
13660
13661// HealthChecksScopedListWarning: Informational warning which replaces
13662// the list of backend services when the list is empty.
13663type HealthChecksScopedListWarning struct {
13664	// Code: [Output Only] A warning code, if applicable. For example,
13665	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13666	// the response.
13667	//
13668	// Possible values:
13669	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
13670	// changes made by a failed operation.
13671	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
13672	// created.
13673	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
13674	// resources has a type marked as deprecated
13675	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
13676	// that is larger than image size.
13677	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
13678	// resources has a type marked as experimental
13679	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
13680	// call
13681	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
13682	// overridden. Deprecated unused field.
13683	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
13684	// injected kernel, which is deprecated.
13685	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
13686	// exceedingly large number of resources
13687	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
13688	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
13689	// not assigned to an instance on the network.
13690	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
13691	// ip forward.
13692	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
13693	// refers to an instance that does not exist.
13694	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
13695	// URL refers to an instance that is not on the same network as the
13696	// route.
13697	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
13698	// have a status of RUNNING.
13699	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
13700	// continue the process despite the mentioned error.
13701	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
13702	// page.
13703	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
13704	// missing due to errors
13705	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
13706	// that requires a TOS they have not accepted.
13707	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
13708	// resource is in use.
13709	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
13710	// auto-delete could not be deleted because they were in use.
13711	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
13712	// ignored.
13713	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
13714	// instance group manager is valid as such, but its application does not
13715	// make a lot of sense, because it allows only single instance in
13716	// instance group.
13717	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
13718	// are present
13719	//   "UNREACHABLE" - A given scope cannot be reached.
13720	Code string `json:"code,omitempty"`
13721
13722	// Data: [Output Only] Metadata about this warning in key: value format.
13723	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
13724	// }
13725	Data []*HealthChecksScopedListWarningData `json:"data,omitempty"`
13726
13727	// Message: [Output Only] A human-readable description of the warning
13728	// code.
13729	Message string `json:"message,omitempty"`
13730
13731	// ForceSendFields is a list of field names (e.g. "Code") to
13732	// unconditionally include in API requests. By default, fields with
13733	// empty or default values are omitted from API requests. However, any
13734	// non-pointer, non-interface field appearing in ForceSendFields will be
13735	// sent to the server regardless of whether the field is empty or not.
13736	// This may be used to include empty fields in Patch requests.
13737	ForceSendFields []string `json:"-"`
13738
13739	// NullFields is a list of field names (e.g. "Code") to include in API
13740	// requests with the JSON null value. By default, fields with empty
13741	// values are omitted from API requests. However, any field with an
13742	// empty value appearing in NullFields will be sent to the server as
13743	// null. It is an error if a field in this list has a non-empty value.
13744	// This may be used to include null fields in Patch requests.
13745	NullFields []string `json:"-"`
13746}
13747
13748func (s *HealthChecksScopedListWarning) MarshalJSON() ([]byte, error) {
13749	type NoMethod HealthChecksScopedListWarning
13750	raw := NoMethod(*s)
13751	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13752}
13753
13754type HealthChecksScopedListWarningData struct {
13755	// Key: [Output Only] A key that provides more detail on the warning
13756	// being returned. For example, for warnings where there are no results
13757	// in a list request for a particular zone, this key might be scope and
13758	// the key value might be the zone name. Other examples might be a key
13759	// indicating a deprecated resource and a suggested replacement, or a
13760	// warning about invalid network settings (for example, if an instance
13761	// attempts to perform IP forwarding but is not enabled for IP
13762	// forwarding).
13763	Key string `json:"key,omitempty"`
13764
13765	// Value: [Output Only] A warning data value corresponding to the key.
13766	Value string `json:"value,omitempty"`
13767
13768	// ForceSendFields is a list of field names (e.g. "Key") to
13769	// unconditionally include in API requests. By default, fields with
13770	// empty or default values are omitted from API requests. However, any
13771	// non-pointer, non-interface field appearing in ForceSendFields will be
13772	// sent to the server regardless of whether the field is empty or not.
13773	// This may be used to include empty fields in Patch requests.
13774	ForceSendFields []string `json:"-"`
13775
13776	// NullFields is a list of field names (e.g. "Key") to include in API
13777	// requests with the JSON null value. By default, fields with empty
13778	// values are omitted from API requests. However, any field with an
13779	// empty value appearing in NullFields will be sent to the server as
13780	// null. It is an error if a field in this list has a non-empty value.
13781	// This may be used to include null fields in Patch requests.
13782	NullFields []string `json:"-"`
13783}
13784
13785func (s *HealthChecksScopedListWarningData) MarshalJSON() ([]byte, error) {
13786	type NoMethod HealthChecksScopedListWarningData
13787	raw := NoMethod(*s)
13788	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13789}
13790
13791type HealthStatus struct {
13792	// Annotations: Metadata defined as annotations for network endpoint.
13793	Annotations map[string]string `json:"annotations,omitempty"`
13794
13795	// ForwardingRule: URL of the forwarding rule associated with the health
13796	// status of the instance.
13797	ForwardingRule string `json:"forwardingRule,omitempty"`
13798
13799	// ForwardingRuleIp: A forwarding rule IP address assigned to this
13800	// instance.
13801	ForwardingRuleIp string `json:"forwardingRuleIp,omitempty"`
13802
13803	// HealthState: Health state of the instance.
13804	//
13805	// Possible values:
13806	//   "HEALTHY"
13807	//   "UNHEALTHY"
13808	HealthState string `json:"healthState,omitempty"`
13809
13810	// Instance: URL of the instance resource.
13811	Instance string `json:"instance,omitempty"`
13812
13813	// IpAddress: For target pool based Network Load Balancing, it indicates
13814	// the forwarding rule's IP address assigned to this instance. For other
13815	// types of load balancing, the field indicates VM internal ip.
13816	IpAddress string `json:"ipAddress,omitempty"`
13817
13818	// Port: The named port of the instance group, not necessarily the port
13819	// that is health-checked.
13820	Port int64 `json:"port,omitempty"`
13821
13822	Weight string `json:"weight,omitempty"`
13823
13824	// Possible values:
13825	//   "INVALID_WEIGHT" - The response to a Health Check probe had the
13826	// HTTP response header field X-Load-Balancing-Endpoint-Weight, but its
13827	// content was invalid (i.e., not a non-negative single-precision
13828	// floating-point number in decimal string representation).
13829	//   "MISSING_WEIGHT" - The response to a Health Check probe did not
13830	// have the HTTP response header field X-Load-Balancing-Endpoint-Weight.
13831	//   "UNAVAILABLE_WEIGHT" - This is the value when the accompanied
13832	// health status is either TIMEOUT (i.e.,the Health Check probe was not
13833	// able to get a response in time) or UNKNOWN. For the latter, it should
13834	// be typically because there has not been sufficient time to parse and
13835	// report the weight for a new backend (which is with 0.0.0.0 ip
13836	// address). However, it can be also due to an outage case for which the
13837	// health status is explicitly reset to UNKNOWN.
13838	//   "WEIGHT_NONE" - This is the default value when WeightReportMode is
13839	// DISABLE, and is also the initial value when WeightReportMode has just
13840	// updated to ENABLE or DRY_RUN and there has not been sufficient time
13841	// to parse and report the backend weight.
13842	WeightError string `json:"weightError,omitempty"`
13843
13844	// ForceSendFields is a list of field names (e.g. "Annotations") to
13845	// unconditionally include in API requests. By default, fields with
13846	// empty or default values are omitted from API requests. However, any
13847	// non-pointer, non-interface field appearing in ForceSendFields will be
13848	// sent to the server regardless of whether the field is empty or not.
13849	// This may be used to include empty fields in Patch requests.
13850	ForceSendFields []string `json:"-"`
13851
13852	// NullFields is a list of field names (e.g. "Annotations") to include
13853	// in API requests with the JSON null value. By default, fields with
13854	// empty values are omitted from API requests. However, any field with
13855	// an empty value appearing in NullFields will be sent to the server as
13856	// null. It is an error if a field in this list has a non-empty value.
13857	// This may be used to include null fields in Patch requests.
13858	NullFields []string `json:"-"`
13859}
13860
13861func (s *HealthStatus) MarshalJSON() ([]byte, error) {
13862	type NoMethod HealthStatus
13863	raw := NoMethod(*s)
13864	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13865}
13866
13867type HealthStatusForNetworkEndpoint struct {
13868	// BackendService: URL of the backend service associated with the health
13869	// state of the network endpoint.
13870	BackendService *BackendServiceReference `json:"backendService,omitempty"`
13871
13872	// ForwardingRule: URL of the forwarding rule associated with the health
13873	// state of the network endpoint.
13874	ForwardingRule *ForwardingRuleReference `json:"forwardingRule,omitempty"`
13875
13876	// HealthCheck: URL of the health check associated with the health state
13877	// of the network endpoint.
13878	HealthCheck *HealthCheckReference `json:"healthCheck,omitempty"`
13879
13880	// HealthCheckService: URL of the health check service associated with
13881	// the health state of the network endpoint.
13882	HealthCheckService *HealthCheckServiceReference `json:"healthCheckService,omitempty"`
13883
13884	// HealthState: Health state of the network endpoint determined based on
13885	// the health checks configured.
13886	//
13887	// Possible values:
13888	//   "DRAINING"
13889	//   "HEALTHY"
13890	//   "UNHEALTHY"
13891	//   "UNKNOWN"
13892	HealthState string `json:"healthState,omitempty"`
13893
13894	// ForceSendFields is a list of field names (e.g. "BackendService") to
13895	// unconditionally include in API requests. By default, fields with
13896	// empty or default values are omitted from API requests. However, any
13897	// non-pointer, non-interface field appearing in ForceSendFields will be
13898	// sent to the server regardless of whether the field is empty or not.
13899	// This may be used to include empty fields in Patch requests.
13900	ForceSendFields []string `json:"-"`
13901
13902	// NullFields is a list of field names (e.g. "BackendService") to
13903	// include in API requests with the JSON null value. By default, fields
13904	// with empty values are omitted from API requests. However, any field
13905	// with an empty value appearing in NullFields will be sent to the
13906	// server as null. It is an error if a field in this list has a
13907	// non-empty value. This may be used to include null fields in Patch
13908	// requests.
13909	NullFields []string `json:"-"`
13910}
13911
13912func (s *HealthStatusForNetworkEndpoint) MarshalJSON() ([]byte, error) {
13913	type NoMethod HealthStatusForNetworkEndpoint
13914	raw := NoMethod(*s)
13915	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13916}
13917
13918// HostRule: UrlMaps A host-matching rule for a URL. If matched, will
13919// use the named PathMatcher to select the BackendService.
13920type HostRule struct {
13921	// Description: An optional description of this resource. Provide this
13922	// property when you create the resource.
13923	Description string `json:"description,omitempty"`
13924
13925	// Hosts: The list of host patterns to match. They must be valid
13926	// hostnames with optional port numbers in the format host:port. *
13927	// matches any string of ([a-z0-9-.]*). In that case, * must be the
13928	// first character and must be followed in the pattern by either - or ..
13929	// * based matching is not supported when the URL map is bound to target
13930	// gRPC proxy that has validateForProxyless field set to true.
13931	Hosts []string `json:"hosts,omitempty"`
13932
13933	// PathMatcher: The name of the PathMatcher to use to match the path
13934	// portion of the URL if the hostRule matches the URL's host portion.
13935	PathMatcher string `json:"pathMatcher,omitempty"`
13936
13937	// ForceSendFields is a list of field names (e.g. "Description") to
13938	// unconditionally include in API requests. By default, fields with
13939	// empty or default values are omitted from API requests. However, any
13940	// non-pointer, non-interface field appearing in ForceSendFields will be
13941	// sent to the server regardless of whether the field is empty or not.
13942	// This may be used to include empty fields in Patch requests.
13943	ForceSendFields []string `json:"-"`
13944
13945	// NullFields is a list of field names (e.g. "Description") to include
13946	// in API requests with the JSON null value. By default, fields with
13947	// empty values are omitted from API requests. However, any field with
13948	// an empty value appearing in NullFields will be sent to the server as
13949	// null. It is an error if a field in this list has a non-empty value.
13950	// This may be used to include null fields in Patch requests.
13951	NullFields []string `json:"-"`
13952}
13953
13954func (s *HostRule) MarshalJSON() ([]byte, error) {
13955	type NoMethod HostRule
13956	raw := NoMethod(*s)
13957	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13958}
13959
13960// HttpFaultAbort: Specification for how requests are aborted as part of
13961// fault injection.
13962type HttpFaultAbort struct {
13963	// HttpStatus: The HTTP status code used to abort the request. The value
13964	// must be between 200 and 599 inclusive. For gRPC protocol, the gRPC
13965	// status code is mapped to HTTP status code according to this mapping
13966	// table. HTTP status 200 is mapped to gRPC status UNKNOWN. Injecting an
13967	// OK status is currently not supported by Traffic Director.
13968	HttpStatus int64 `json:"httpStatus,omitempty"`
13969
13970	// Percentage: The percentage of traffic
13971	// (connections/operations/requests) which will be aborted as part of
13972	// fault injection. The value must be between 0.0 and 100.0 inclusive.
13973	Percentage float64 `json:"percentage,omitempty"`
13974
13975	// ForceSendFields is a list of field names (e.g. "HttpStatus") to
13976	// unconditionally include in API requests. By default, fields with
13977	// empty or default values are omitted from API requests. However, any
13978	// non-pointer, non-interface field appearing in ForceSendFields will be
13979	// sent to the server regardless of whether the field is empty or not.
13980	// This may be used to include empty fields in Patch requests.
13981	ForceSendFields []string `json:"-"`
13982
13983	// NullFields is a list of field names (e.g. "HttpStatus") to include in
13984	// API requests with the JSON null value. By default, fields with empty
13985	// values are omitted from API requests. However, any field with an
13986	// empty value appearing in NullFields will be sent to the server as
13987	// null. It is an error if a field in this list has a non-empty value.
13988	// This may be used to include null fields in Patch requests.
13989	NullFields []string `json:"-"`
13990}
13991
13992func (s *HttpFaultAbort) MarshalJSON() ([]byte, error) {
13993	type NoMethod HttpFaultAbort
13994	raw := NoMethod(*s)
13995	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13996}
13997
13998func (s *HttpFaultAbort) UnmarshalJSON(data []byte) error {
13999	type NoMethod HttpFaultAbort
14000	var s1 struct {
14001		Percentage gensupport.JSONFloat64 `json:"percentage"`
14002		*NoMethod
14003	}
14004	s1.NoMethod = (*NoMethod)(s)
14005	if err := json.Unmarshal(data, &s1); err != nil {
14006		return err
14007	}
14008	s.Percentage = float64(s1.Percentage)
14009	return nil
14010}
14011
14012// HttpFaultDelay: Specifies the delay introduced by Loadbalancer before
14013// forwarding the request to the backend service as part of fault
14014// injection.
14015type HttpFaultDelay struct {
14016	// FixedDelay: Specifies the value of the fixed delay interval.
14017	FixedDelay *Duration `json:"fixedDelay,omitempty"`
14018
14019	// Percentage: The percentage of traffic
14020	// (connections/operations/requests) on which delay will be introduced
14021	// as part of fault injection. The value must be between 0.0 and 100.0
14022	// inclusive.
14023	Percentage float64 `json:"percentage,omitempty"`
14024
14025	// ForceSendFields is a list of field names (e.g. "FixedDelay") to
14026	// unconditionally include in API requests. By default, fields with
14027	// empty or default values are omitted from API requests. However, any
14028	// non-pointer, non-interface field appearing in ForceSendFields will be
14029	// sent to the server regardless of whether the field is empty or not.
14030	// This may be used to include empty fields in Patch requests.
14031	ForceSendFields []string `json:"-"`
14032
14033	// NullFields is a list of field names (e.g. "FixedDelay") to include in
14034	// API requests with the JSON null value. By default, fields with empty
14035	// values are omitted from API requests. However, any field with an
14036	// empty value appearing in NullFields will be sent to the server as
14037	// null. It is an error if a field in this list has a non-empty value.
14038	// This may be used to include null fields in Patch requests.
14039	NullFields []string `json:"-"`
14040}
14041
14042func (s *HttpFaultDelay) MarshalJSON() ([]byte, error) {
14043	type NoMethod HttpFaultDelay
14044	raw := NoMethod(*s)
14045	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14046}
14047
14048func (s *HttpFaultDelay) UnmarshalJSON(data []byte) error {
14049	type NoMethod HttpFaultDelay
14050	var s1 struct {
14051		Percentage gensupport.JSONFloat64 `json:"percentage"`
14052		*NoMethod
14053	}
14054	s1.NoMethod = (*NoMethod)(s)
14055	if err := json.Unmarshal(data, &s1); err != nil {
14056		return err
14057	}
14058	s.Percentage = float64(s1.Percentage)
14059	return nil
14060}
14061
14062// HttpFaultInjection: The specification for fault injection introduced
14063// into traffic to test the resiliency of clients to backend service
14064// failure. As part of fault injection, when clients send requests to a
14065// backend service, delays can be introduced by Loadbalancer on a
14066// percentage of requests before sending those request to the backend
14067// service. Similarly requests from clients can be aborted by the
14068// Loadbalancer for a percentage of requests.
14069type HttpFaultInjection struct {
14070	// Abort: The specification for how client requests are aborted as part
14071	// of fault injection.
14072	Abort *HttpFaultAbort `json:"abort,omitempty"`
14073
14074	// Delay: The specification for how client requests are delayed as part
14075	// of fault injection, before being sent to a backend service.
14076	Delay *HttpFaultDelay `json:"delay,omitempty"`
14077
14078	// ForceSendFields is a list of field names (e.g. "Abort") to
14079	// unconditionally include in API requests. By default, fields with
14080	// empty or default values are omitted from API requests. However, any
14081	// non-pointer, non-interface field appearing in ForceSendFields will be
14082	// sent to the server regardless of whether the field is empty or not.
14083	// This may be used to include empty fields in Patch requests.
14084	ForceSendFields []string `json:"-"`
14085
14086	// NullFields is a list of field names (e.g. "Abort") to include in API
14087	// requests with the JSON null value. By default, fields with empty
14088	// values are omitted from API requests. However, any field with an
14089	// empty value appearing in NullFields will be sent to the server as
14090	// null. It is an error if a field in this list has a non-empty value.
14091	// This may be used to include null fields in Patch requests.
14092	NullFields []string `json:"-"`
14093}
14094
14095func (s *HttpFaultInjection) MarshalJSON() ([]byte, error) {
14096	type NoMethod HttpFaultInjection
14097	raw := NoMethod(*s)
14098	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14099}
14100
14101// HttpHeaderAction: The request and response header transformations
14102// that take effect before the request is passed along to the selected
14103// backendService.
14104type HttpHeaderAction struct {
14105	// RequestHeadersToAdd: Headers to add to a matching request prior to
14106	// forwarding the request to the backendService.
14107	RequestHeadersToAdd []*HttpHeaderOption `json:"requestHeadersToAdd,omitempty"`
14108
14109	// RequestHeadersToRemove: A list of header names for headers that need
14110	// to be removed from the request prior to forwarding the request to the
14111	// backendService.
14112	RequestHeadersToRemove []string `json:"requestHeadersToRemove,omitempty"`
14113
14114	// ResponseHeadersToAdd: Headers to add the response prior to sending
14115	// the response back to the client.
14116	ResponseHeadersToAdd []*HttpHeaderOption `json:"responseHeadersToAdd,omitempty"`
14117
14118	// ResponseHeadersToRemove: A list of header names for headers that need
14119	// to be removed from the response prior to sending the response back to
14120	// the client.
14121	ResponseHeadersToRemove []string `json:"responseHeadersToRemove,omitempty"`
14122
14123	// ForceSendFields is a list of field names (e.g. "RequestHeadersToAdd")
14124	// to unconditionally include in API requests. By default, fields with
14125	// empty or default values are omitted from API requests. However, any
14126	// non-pointer, non-interface field appearing in ForceSendFields will be
14127	// sent to the server regardless of whether the field is empty or not.
14128	// This may be used to include empty fields in Patch requests.
14129	ForceSendFields []string `json:"-"`
14130
14131	// NullFields is a list of field names (e.g. "RequestHeadersToAdd") to
14132	// include in API requests with the JSON null value. By default, fields
14133	// with empty values are omitted from API requests. However, any field
14134	// with an empty value appearing in NullFields will be sent to the
14135	// server as null. It is an error if a field in this list has a
14136	// non-empty value. This may be used to include null fields in Patch
14137	// requests.
14138	NullFields []string `json:"-"`
14139}
14140
14141func (s *HttpHeaderAction) MarshalJSON() ([]byte, error) {
14142	type NoMethod HttpHeaderAction
14143	raw := NoMethod(*s)
14144	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14145}
14146
14147// HttpHeaderMatch: matchRule criteria for request header matches.
14148type HttpHeaderMatch struct {
14149	// ExactMatch: The value should exactly match contents of exactMatch.
14150	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
14151	// presentMatch or rangeMatch must be set.
14152	ExactMatch string `json:"exactMatch,omitempty"`
14153
14154	// HeaderName: The name of the HTTP header to match. For matching
14155	// against the HTTP request's authority, use a headerMatch with the
14156	// header name ":authority". For matching a request's method, use the
14157	// headerName ":method". When the URL map is bound to target gRPC proxy
14158	// that has validateForProxyless field set to true, only non-binary
14159	// user-specified custom metadata and the `content-type` header are
14160	// supported. The following transport-level headers cannot be used in
14161	// header matching rules: `:authority`, `:method`, `:path`, `:scheme`,
14162	// `user-agent`, `accept-encoding`, `content-encoding`,
14163	// `grpc-accept-encoding`, `grpc-encoding`,
14164	// `grpc-previous-rpc-attempts`, `grpc-tags-bin`, `grpc-timeout` and
14165	// `grpc-trace-bin.
14166	HeaderName string `json:"headerName,omitempty"`
14167
14168	// InvertMatch: If set to false, the headerMatch is considered a match
14169	// if the match criteria above are met. If set to true, the headerMatch
14170	// is considered a match if the match criteria above are NOT met. The
14171	// default setting is false.
14172	InvertMatch bool `json:"invertMatch,omitempty"`
14173
14174	// PrefixMatch: The value of the header must start with the contents of
14175	// prefixMatch. Only one of exactMatch, prefixMatch, suffixMatch,
14176	// regexMatch, presentMatch or rangeMatch must be set.
14177	PrefixMatch string `json:"prefixMatch,omitempty"`
14178
14179	// PresentMatch: A header with the contents of headerName must exist.
14180	// The match takes place whether or not the request's header has a
14181	// value. Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
14182	// presentMatch or rangeMatch must be set.
14183	PresentMatch bool `json:"presentMatch,omitempty"`
14184
14185	// RangeMatch: The header value must be an integer and its value must be
14186	// in the range specified in rangeMatch. If the header does not contain
14187	// an integer, number or is empty, the match fails. For example for a
14188	// range [-5, 0] - -3 will match. - 0 will not match. - 0.25 will not
14189	// match. - -3someString will not match. Only one of exactMatch,
14190	// prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must
14191	// be set. Note that rangeMatch is not supported for Loadbalancers that
14192	// have their loadBalancingScheme set to EXTERNAL.
14193	RangeMatch *Int64RangeMatch `json:"rangeMatch,omitempty"`
14194
14195	// RegexMatch: The value of the header must match the regular expression
14196	// specified in regexMatch. For regular expression grammar, please see:
14197	// github.com/google/re2/wiki/Syntax For matching against a port
14198	// specified in the HTTP request, use a headerMatch with headerName set
14199	// to PORT and a regular expression that satisfies the RFC2616 Host
14200	// header's port specifier. Only one of exactMatch, prefixMatch,
14201	// suffixMatch, regexMatch, presentMatch or rangeMatch must be set. Note
14202	// that regexMatch only applies to Loadbalancers that have their
14203	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
14204	RegexMatch string `json:"regexMatch,omitempty"`
14205
14206	// SuffixMatch: The value of the header must end with the contents of
14207	// suffixMatch. Only one of exactMatch, prefixMatch, suffixMatch,
14208	// regexMatch, presentMatch or rangeMatch must be set.
14209	SuffixMatch string `json:"suffixMatch,omitempty"`
14210
14211	// ForceSendFields is a list of field names (e.g. "ExactMatch") to
14212	// unconditionally include in API requests. By default, fields with
14213	// empty or default values are omitted from API requests. However, any
14214	// non-pointer, non-interface field appearing in ForceSendFields will be
14215	// sent to the server regardless of whether the field is empty or not.
14216	// This may be used to include empty fields in Patch requests.
14217	ForceSendFields []string `json:"-"`
14218
14219	// NullFields is a list of field names (e.g. "ExactMatch") to include in
14220	// API requests with the JSON null value. By default, fields with empty
14221	// values are omitted from API requests. However, any field with an
14222	// empty value appearing in NullFields will be sent to the server as
14223	// null. It is an error if a field in this list has a non-empty value.
14224	// This may be used to include null fields in Patch requests.
14225	NullFields []string `json:"-"`
14226}
14227
14228func (s *HttpHeaderMatch) MarshalJSON() ([]byte, error) {
14229	type NoMethod HttpHeaderMatch
14230	raw := NoMethod(*s)
14231	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14232}
14233
14234// HttpHeaderOption: Specification determining how headers are added to
14235// requests or responses.
14236type HttpHeaderOption struct {
14237	// HeaderName: The name of the header.
14238	HeaderName string `json:"headerName,omitempty"`
14239
14240	// HeaderValue: The value of the header to add.
14241	HeaderValue string `json:"headerValue,omitempty"`
14242
14243	// Replace: If false, headerValue is appended to any values that already
14244	// exist for the header. If true, headerValue is set for the header,
14245	// discarding any values that were set for that header. The default
14246	// value is false.
14247	Replace bool `json:"replace,omitempty"`
14248
14249	// ForceSendFields is a list of field names (e.g. "HeaderName") to
14250	// unconditionally include in API requests. By default, fields with
14251	// empty or default values are omitted from API requests. However, any
14252	// non-pointer, non-interface field appearing in ForceSendFields will be
14253	// sent to the server regardless of whether the field is empty or not.
14254	// This may be used to include empty fields in Patch requests.
14255	ForceSendFields []string `json:"-"`
14256
14257	// NullFields is a list of field names (e.g. "HeaderName") to include in
14258	// API requests with the JSON null value. By default, fields with empty
14259	// values are omitted from API requests. However, any field with an
14260	// empty value appearing in NullFields will be sent to the server as
14261	// null. It is an error if a field in this list has a non-empty value.
14262	// This may be used to include null fields in Patch requests.
14263	NullFields []string `json:"-"`
14264}
14265
14266func (s *HttpHeaderOption) MarshalJSON() ([]byte, error) {
14267	type NoMethod HttpHeaderOption
14268	raw := NoMethod(*s)
14269	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14270}
14271
14272// HttpHealthCheck: Represents a legacy HTTP Health Check resource.
14273// Legacy HTTP health checks are now only required by target pool-based
14274// network load balancers. For all other load balancers, including
14275// backend service-based network load balancers, and for managed
14276// instance group auto-healing, you must use modern (non-legacy) health
14277// checks. For more information, see Health checks overview .
14278type HttpHealthCheck struct {
14279	// CheckIntervalSec: How often (in seconds) to send a health check. The
14280	// default value is 5 seconds.
14281	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
14282
14283	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
14284	// format.
14285	CreationTimestamp string `json:"creationTimestamp,omitempty"`
14286
14287	// Description: An optional description of this resource. Provide this
14288	// property when you create the resource.
14289	Description string `json:"description,omitempty"`
14290
14291	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
14292	// after this many consecutive successes. The default value is 2.
14293	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
14294
14295	// Host: The value of the host header in the HTTP health check request.
14296	// If left empty (default value), the public IP on behalf of which this
14297	// health check is performed will be used.
14298	Host string `json:"host,omitempty"`
14299
14300	// Id: [Output Only] The unique identifier for the resource. This
14301	// identifier is defined by the server.
14302	Id uint64 `json:"id,omitempty,string"`
14303
14304	// Kind: [Output Only] Type of the resource. Always
14305	// compute#httpHealthCheck for HTTP health checks.
14306	Kind string `json:"kind,omitempty"`
14307
14308	// Name: Name of the resource. Provided by the client when the resource
14309	// is created. The name must be 1-63 characters long, and comply with
14310	// RFC1035. Specifically, the name must be 1-63 characters long and
14311	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
14312	// the first character must be a lowercase letter, and all following
14313	// characters must be a dash, lowercase letter, or digit, except the
14314	// last character, which cannot be a dash.
14315	Name string `json:"name,omitempty"`
14316
14317	// Port: The TCP port number for the HTTP health check request. The
14318	// default value is 80.
14319	Port int64 `json:"port,omitempty"`
14320
14321	// RequestPath: The request path of the HTTP health check request. The
14322	// default value is /. This field does not support query parameters.
14323	RequestPath string `json:"requestPath,omitempty"`
14324
14325	// SelfLink: [Output Only] Server-defined URL for the resource.
14326	SelfLink string `json:"selfLink,omitempty"`
14327
14328	// TimeoutSec: How long (in seconds) to wait before claiming failure.
14329	// The default value is 5 seconds. It is invalid for timeoutSec to have
14330	// greater value than checkIntervalSec.
14331	TimeoutSec int64 `json:"timeoutSec,omitempty"`
14332
14333	// UnhealthyThreshold: A so-far healthy instance will be marked
14334	// unhealthy after this many consecutive failures. The default value is
14335	// 2.
14336	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
14337
14338	// ServerResponse contains the HTTP response code and headers from the
14339	// server.
14340	googleapi.ServerResponse `json:"-"`
14341
14342	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
14343	// unconditionally include in API requests. By default, fields with
14344	// empty or default values are omitted from API requests. However, any
14345	// non-pointer, non-interface field appearing in ForceSendFields will be
14346	// sent to the server regardless of whether the field is empty or not.
14347	// This may be used to include empty fields in Patch requests.
14348	ForceSendFields []string `json:"-"`
14349
14350	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
14351	// include in API requests with the JSON null value. By default, fields
14352	// with empty values are omitted from API requests. However, any field
14353	// with an empty value appearing in NullFields will be sent to the
14354	// server as null. It is an error if a field in this list has a
14355	// non-empty value. This may be used to include null fields in Patch
14356	// requests.
14357	NullFields []string `json:"-"`
14358}
14359
14360func (s *HttpHealthCheck) MarshalJSON() ([]byte, error) {
14361	type NoMethod HttpHealthCheck
14362	raw := NoMethod(*s)
14363	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14364}
14365
14366// HttpHealthCheckList: Contains a list of HttpHealthCheck resources.
14367type HttpHealthCheckList struct {
14368	// Id: [Output Only] Unique identifier for the resource; defined by the
14369	// server.
14370	Id string `json:"id,omitempty"`
14371
14372	// Items: A list of HttpHealthCheck resources.
14373	Items []*HttpHealthCheck `json:"items,omitempty"`
14374
14375	// Kind: Type of resource.
14376	Kind string `json:"kind,omitempty"`
14377
14378	// NextPageToken: [Output Only] This token allows you to get the next
14379	// page of results for list requests. If the number of results is larger
14380	// than maxResults, use the nextPageToken as a value for the query
14381	// parameter pageToken in the next list request. Subsequent list
14382	// requests will have their own nextPageToken to continue paging through
14383	// the results.
14384	NextPageToken string `json:"nextPageToken,omitempty"`
14385
14386	// SelfLink: [Output Only] Server-defined URL for this resource.
14387	SelfLink string `json:"selfLink,omitempty"`
14388
14389	// Warning: [Output Only] Informational warning message.
14390	Warning *HttpHealthCheckListWarning `json:"warning,omitempty"`
14391
14392	// ServerResponse contains the HTTP response code and headers from the
14393	// server.
14394	googleapi.ServerResponse `json:"-"`
14395
14396	// ForceSendFields is a list of field names (e.g. "Id") to
14397	// unconditionally include in API requests. By default, fields with
14398	// empty or default values are omitted from API requests. However, any
14399	// non-pointer, non-interface field appearing in ForceSendFields will be
14400	// sent to the server regardless of whether the field is empty or not.
14401	// This may be used to include empty fields in Patch requests.
14402	ForceSendFields []string `json:"-"`
14403
14404	// NullFields is a list of field names (e.g. "Id") to include in API
14405	// requests with the JSON null value. By default, fields with empty
14406	// values are omitted from API requests. However, any field with an
14407	// empty value appearing in NullFields will be sent to the server as
14408	// null. It is an error if a field in this list has a non-empty value.
14409	// This may be used to include null fields in Patch requests.
14410	NullFields []string `json:"-"`
14411}
14412
14413func (s *HttpHealthCheckList) MarshalJSON() ([]byte, error) {
14414	type NoMethod HttpHealthCheckList
14415	raw := NoMethod(*s)
14416	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14417}
14418
14419// HttpHealthCheckListWarning: [Output Only] Informational warning
14420// message.
14421type HttpHealthCheckListWarning struct {
14422	// Code: [Output Only] A warning code, if applicable. For example,
14423	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14424	// the response.
14425	//
14426	// Possible values:
14427	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
14428	// changes made by a failed operation.
14429	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
14430	// created.
14431	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
14432	// resources has a type marked as deprecated
14433	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
14434	// that is larger than image size.
14435	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
14436	// resources has a type marked as experimental
14437	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
14438	// call
14439	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
14440	// overridden. Deprecated unused field.
14441	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
14442	// injected kernel, which is deprecated.
14443	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
14444	// exceedingly large number of resources
14445	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
14446	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
14447	// not assigned to an instance on the network.
14448	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
14449	// ip forward.
14450	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
14451	// refers to an instance that does not exist.
14452	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
14453	// URL refers to an instance that is not on the same network as the
14454	// route.
14455	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
14456	// have a status of RUNNING.
14457	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
14458	// continue the process despite the mentioned error.
14459	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
14460	// page.
14461	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
14462	// missing due to errors
14463	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
14464	// that requires a TOS they have not accepted.
14465	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
14466	// resource is in use.
14467	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
14468	// auto-delete could not be deleted because they were in use.
14469	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
14470	// ignored.
14471	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
14472	// instance group manager is valid as such, but its application does not
14473	// make a lot of sense, because it allows only single instance in
14474	// instance group.
14475	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
14476	// are present
14477	//   "UNREACHABLE" - A given scope cannot be reached.
14478	Code string `json:"code,omitempty"`
14479
14480	// Data: [Output Only] Metadata about this warning in key: value format.
14481	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
14482	// }
14483	Data []*HttpHealthCheckListWarningData `json:"data,omitempty"`
14484
14485	// Message: [Output Only] A human-readable description of the warning
14486	// code.
14487	Message string `json:"message,omitempty"`
14488
14489	// ForceSendFields is a list of field names (e.g. "Code") to
14490	// unconditionally include in API requests. By default, fields with
14491	// empty or default values are omitted from API requests. However, any
14492	// non-pointer, non-interface field appearing in ForceSendFields will be
14493	// sent to the server regardless of whether the field is empty or not.
14494	// This may be used to include empty fields in Patch requests.
14495	ForceSendFields []string `json:"-"`
14496
14497	// NullFields is a list of field names (e.g. "Code") to include in API
14498	// requests with the JSON null value. By default, fields with empty
14499	// values are omitted from API requests. However, any field with an
14500	// empty value appearing in NullFields will be sent to the server as
14501	// null. It is an error if a field in this list has a non-empty value.
14502	// This may be used to include null fields in Patch requests.
14503	NullFields []string `json:"-"`
14504}
14505
14506func (s *HttpHealthCheckListWarning) MarshalJSON() ([]byte, error) {
14507	type NoMethod HttpHealthCheckListWarning
14508	raw := NoMethod(*s)
14509	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14510}
14511
14512type HttpHealthCheckListWarningData struct {
14513	// Key: [Output Only] A key that provides more detail on the warning
14514	// being returned. For example, for warnings where there are no results
14515	// in a list request for a particular zone, this key might be scope and
14516	// the key value might be the zone name. Other examples might be a key
14517	// indicating a deprecated resource and a suggested replacement, or a
14518	// warning about invalid network settings (for example, if an instance
14519	// attempts to perform IP forwarding but is not enabled for IP
14520	// forwarding).
14521	Key string `json:"key,omitempty"`
14522
14523	// Value: [Output Only] A warning data value corresponding to the key.
14524	Value string `json:"value,omitempty"`
14525
14526	// ForceSendFields is a list of field names (e.g. "Key") to
14527	// unconditionally include in API requests. By default, fields with
14528	// empty or default values are omitted from API requests. However, any
14529	// non-pointer, non-interface field appearing in ForceSendFields will be
14530	// sent to the server regardless of whether the field is empty or not.
14531	// This may be used to include empty fields in Patch requests.
14532	ForceSendFields []string `json:"-"`
14533
14534	// NullFields is a list of field names (e.g. "Key") to include in API
14535	// requests with the JSON null value. By default, fields with empty
14536	// values are omitted from API requests. However, any field with an
14537	// empty value appearing in NullFields will be sent to the server as
14538	// null. It is an error if a field in this list has a non-empty value.
14539	// This may be used to include null fields in Patch requests.
14540	NullFields []string `json:"-"`
14541}
14542
14543func (s *HttpHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
14544	type NoMethod HttpHealthCheckListWarningData
14545	raw := NoMethod(*s)
14546	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14547}
14548
14549// HttpQueryParameterMatch: HttpRouteRuleMatch criteria for a request's
14550// query parameter.
14551type HttpQueryParameterMatch struct {
14552	// ExactMatch: The queryParameterMatch matches if the value of the
14553	// parameter exactly matches the contents of exactMatch. Only one of
14554	// presentMatch, exactMatch or regexMatch must be set.
14555	ExactMatch string `json:"exactMatch,omitempty"`
14556
14557	// Name: The name of the query parameter to match. The query parameter
14558	// must exist in the request, in the absence of which the request match
14559	// fails.
14560	Name string `json:"name,omitempty"`
14561
14562	// PresentMatch: Specifies that the queryParameterMatch matches if the
14563	// request contains the query parameter, irrespective of whether the
14564	// parameter has a value or not. Only one of presentMatch, exactMatch or
14565	// regexMatch must be set.
14566	PresentMatch bool `json:"presentMatch,omitempty"`
14567
14568	// RegexMatch: The queryParameterMatch matches if the value of the
14569	// parameter matches the regular expression specified by regexMatch. For
14570	// the regular expression grammar, please see
14571	// github.com/google/re2/wiki/Syntax Only one of presentMatch,
14572	// exactMatch or regexMatch must be set. Note that regexMatch only
14573	// applies when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.
14574	RegexMatch string `json:"regexMatch,omitempty"`
14575
14576	// ForceSendFields is a list of field names (e.g. "ExactMatch") to
14577	// unconditionally include in API requests. By default, fields with
14578	// empty or default values are omitted from API requests. However, any
14579	// non-pointer, non-interface field appearing in ForceSendFields will be
14580	// sent to the server regardless of whether the field is empty or not.
14581	// This may be used to include empty fields in Patch requests.
14582	ForceSendFields []string `json:"-"`
14583
14584	// NullFields is a list of field names (e.g. "ExactMatch") to include in
14585	// API requests with the JSON null value. By default, fields with empty
14586	// values are omitted from API requests. However, any field with an
14587	// empty value appearing in NullFields will be sent to the server as
14588	// null. It is an error if a field in this list has a non-empty value.
14589	// This may be used to include null fields in Patch requests.
14590	NullFields []string `json:"-"`
14591}
14592
14593func (s *HttpQueryParameterMatch) MarshalJSON() ([]byte, error) {
14594	type NoMethod HttpQueryParameterMatch
14595	raw := NoMethod(*s)
14596	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14597}
14598
14599// HttpRedirectAction: Specifies settings for an HTTP redirect.
14600type HttpRedirectAction struct {
14601	// HostRedirect: The host that will be used in the redirect response
14602	// instead of the one that was supplied in the request. The value must
14603	// be between 1 and 255 characters.
14604	HostRedirect string `json:"hostRedirect,omitempty"`
14605
14606	// HttpsRedirect: If set to true, the URL scheme in the redirected
14607	// request is set to https. If set to false, the URL scheme of the
14608	// redirected request will remain the same as that of the request. This
14609	// must only be set for UrlMaps used in TargetHttpProxys. Setting this
14610	// true for TargetHttpsProxy is not permitted. The default is set to
14611	// false.
14612	HttpsRedirect bool `json:"httpsRedirect,omitempty"`
14613
14614	// PathRedirect: The path that will be used in the redirect response
14615	// instead of the one that was supplied in the request. pathRedirect
14616	// cannot be supplied together with prefixRedirect. Supply one alone or
14617	// neither. If neither is supplied, the path of the original request
14618	// will be used for the redirect. The value must be between 1 and 1024
14619	// characters.
14620	PathRedirect string `json:"pathRedirect,omitempty"`
14621
14622	// PrefixRedirect: The prefix that replaces the prefixMatch specified in
14623	// the HttpRouteRuleMatch, retaining the remaining portion of the URL
14624	// before redirecting the request. prefixRedirect cannot be supplied
14625	// together with pathRedirect. Supply one alone or neither. If neither
14626	// is supplied, the path of the original request will be used for the
14627	// redirect. The value must be between 1 and 1024 characters.
14628	PrefixRedirect string `json:"prefixRedirect,omitempty"`
14629
14630	// RedirectResponseCode: The HTTP Status code to use for this
14631	// RedirectAction. Supported values are: - MOVED_PERMANENTLY_DEFAULT,
14632	// which is the default value and corresponds to 301. - FOUND, which
14633	// corresponds to 302. - SEE_OTHER which corresponds to 303. -
14634	// TEMPORARY_REDIRECT, which corresponds to 307. In this case, the
14635	// request method will be retained. - PERMANENT_REDIRECT, which
14636	// corresponds to 308. In this case, the request method will be
14637	// retained.
14638	//
14639	// Possible values:
14640	//   "FOUND" - Http Status Code 302 - Found.
14641	//   "MOVED_PERMANENTLY_DEFAULT" - Http Status Code 301 - Moved
14642	// Permanently.
14643	//   "PERMANENT_REDIRECT" - Http Status Code 308 - Permanent Redirect
14644	// maintaining HTTP method.
14645	//   "SEE_OTHER" - Http Status Code 303 - See Other.
14646	//   "TEMPORARY_REDIRECT" - Http Status Code 307 - Temporary Redirect
14647	// maintaining HTTP method.
14648	RedirectResponseCode string `json:"redirectResponseCode,omitempty"`
14649
14650	// StripQuery: If set to true, any accompanying query portion of the
14651	// original URL is removed prior to redirecting the request. If set to
14652	// false, the query portion of the original URL is retained. The default
14653	// is set to false.
14654	StripQuery bool `json:"stripQuery,omitempty"`
14655
14656	// ForceSendFields is a list of field names (e.g. "HostRedirect") to
14657	// unconditionally include in API requests. By default, fields with
14658	// empty or default values are omitted from API requests. However, any
14659	// non-pointer, non-interface field appearing in ForceSendFields will be
14660	// sent to the server regardless of whether the field is empty or not.
14661	// This may be used to include empty fields in Patch requests.
14662	ForceSendFields []string `json:"-"`
14663
14664	// NullFields is a list of field names (e.g. "HostRedirect") to include
14665	// in API requests with the JSON null value. By default, fields with
14666	// empty values are omitted from API requests. However, any field with
14667	// an empty value appearing in NullFields will be sent to the server as
14668	// null. It is an error if a field in this list has a non-empty value.
14669	// This may be used to include null fields in Patch requests.
14670	NullFields []string `json:"-"`
14671}
14672
14673func (s *HttpRedirectAction) MarshalJSON() ([]byte, error) {
14674	type NoMethod HttpRedirectAction
14675	raw := NoMethod(*s)
14676	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14677}
14678
14679// HttpRetryPolicy: The retry policy associates with HttpRouteRule
14680type HttpRetryPolicy struct {
14681	// NumRetries: Specifies the allowed number retries. This number must be
14682	// > 0. If not specified, defaults to 1.
14683	NumRetries int64 `json:"numRetries,omitempty"`
14684
14685	// PerTryTimeout: Specifies a non-zero timeout per retry attempt. If not
14686	// specified, will use the timeout set in HttpRouteAction. If timeout in
14687	// HttpRouteAction is not set, will use the largest timeout among all
14688	// backend services associated with the route.
14689	PerTryTimeout *Duration `json:"perTryTimeout,omitempty"`
14690
14691	// RetryConditions: Specifies one or more conditions when this retry
14692	// policy applies. Valid values are: - 5xx: Retry will be attempted if
14693	// the instance or endpoint responds with any 5xx response code, or if
14694	// the instance or endpoint does not respond at all, example:
14695	// disconnects, reset, read timeout, connection failure, and refused
14696	// streams. - gateway-error: Similar to 5xx, but only applies to
14697	// response codes 502, 503 or 504. - - connect-failure: A retry will be
14698	// attempted on failures connecting to the instance or endpoint, for
14699	// example due to connection timeouts. - retriable-4xx: A retry will be
14700	// attempted if the instance or endpoint responds with a retriable 4xx
14701	// response code. Currently the only retriable error supported is 409. -
14702	// refused-stream: A retry will be attempted if the instance or endpoint
14703	// resets the stream with a REFUSED_STREAM error code. This reset type
14704	// indicates that it is safe to retry. - cancelled: A retry will be
14705	// attempted if the gRPC status code in the response header is set to
14706	// cancelled. - deadline-exceeded: A retry will be attempted if the gRPC
14707	// status code in the response header is set to deadline-exceeded. -
14708	// internal: A retry will be attempted if the gRPC status code in the
14709	// response header is set to internal. - resource-exhausted: A retry
14710	// will be attempted if the gRPC status code in the response header is
14711	// set to resource-exhausted. - unavailable: A retry will be attempted
14712	// if the gRPC status code in the response header is set to unavailable.
14713	RetryConditions []string `json:"retryConditions,omitempty"`
14714
14715	// ForceSendFields is a list of field names (e.g. "NumRetries") to
14716	// unconditionally include in API requests. By default, fields with
14717	// empty or default values are omitted from API requests. However, any
14718	// non-pointer, non-interface field appearing in ForceSendFields will be
14719	// sent to the server regardless of whether the field is empty or not.
14720	// This may be used to include empty fields in Patch requests.
14721	ForceSendFields []string `json:"-"`
14722
14723	// NullFields is a list of field names (e.g. "NumRetries") to include in
14724	// API requests with the JSON null value. By default, fields with empty
14725	// values are omitted from API requests. However, any field with an
14726	// empty value appearing in NullFields will be sent to the server as
14727	// null. It is an error if a field in this list has a non-empty value.
14728	// This may be used to include null fields in Patch requests.
14729	NullFields []string `json:"-"`
14730}
14731
14732func (s *HttpRetryPolicy) MarshalJSON() ([]byte, error) {
14733	type NoMethod HttpRetryPolicy
14734	raw := NoMethod(*s)
14735	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14736}
14737
14738type HttpRouteAction struct {
14739	// CorsPolicy: The specification for allowing client side cross-origin
14740	// requests. Please see W3C Recommendation for Cross Origin Resource
14741	// Sharing Not supported when the URL map is bound to target gRPC proxy.
14742	CorsPolicy *CorsPolicy `json:"corsPolicy,omitempty"`
14743
14744	// FaultInjectionPolicy: The specification for fault injection
14745	// introduced into traffic to test the resiliency of clients to backend
14746	// service failure. As part of fault injection, when clients send
14747	// requests to a backend service, delays can be introduced by
14748	// Loadbalancer on a percentage of requests before sending those request
14749	// to the backend service. Similarly requests from clients can be
14750	// aborted by the Loadbalancer for a percentage of requests. For the
14751	// requests impacted by fault injection, timeout and retry_policy will
14752	// be ignored by clients that are configured with a
14753	// fault_injection_policy.
14754	FaultInjectionPolicy *HttpFaultInjection `json:"faultInjectionPolicy,omitempty"`
14755
14756	// MaxStreamDuration: Specifies the maximum duration (timeout) for
14757	// streams on the selected route. Unlike the timeout field where the
14758	// timeout duration starts from the time the request has been fully
14759	// processed (i.e. end-of-stream), the duration in this field is
14760	// computed from the beginning of the stream until the response has been
14761	// completely processed, including all retries. A stream that does not
14762	// complete in this duration is closed. If not specified, will use the
14763	// largest maxStreamDuration among all backend services associated with
14764	// the route. This field is only allowed if the Url map is used with
14765	// backend services with loadBalancingScheme set to
14766	// INTERNAL_SELF_MANAGED.
14767	MaxStreamDuration *Duration `json:"maxStreamDuration,omitempty"`
14768
14769	// RequestMirrorPolicy: Specifies the policy on how requests intended
14770	// for the route's backends are shadowed to a separate mirrored backend
14771	// service. Loadbalancer does not wait for responses from the shadow
14772	// service. Prior to sending traffic to the shadow service, the host /
14773	// authority header is suffixed with -shadow. Not supported when the URL
14774	// map is bound to target gRPC proxy that has validateForProxyless field
14775	// set to true.
14776	RequestMirrorPolicy *RequestMirrorPolicy `json:"requestMirrorPolicy,omitempty"`
14777
14778	// RetryPolicy: Specifies the retry policy associated with this route.
14779	// Not supported when the URL map is bound to target gRPC proxy that has
14780	// validateForProxyless field set to true.
14781	RetryPolicy *HttpRetryPolicy `json:"retryPolicy,omitempty"`
14782
14783	// Timeout: Specifies the timeout for the selected route. Timeout is
14784	// computed from the time the request has been fully processed (i.e.
14785	// end-of-stream) up until the response has been completely processed.
14786	// Timeout includes all retries. If not specified, will use the largest
14787	// timeout among all backend services associated with the route. Not
14788	// supported when the URL map is bound to target gRPC proxy that has
14789	// validateForProxyless field set to true.
14790	Timeout *Duration `json:"timeout,omitempty"`
14791
14792	// UrlRewrite: The spec to modify the URL of the request, prior to
14793	// forwarding the request to the matched service. urlRewrite is the only
14794	// action supported in UrlMaps for external HTTP(S) load balancers. Not
14795	// supported when the URL map is bound to target gRPC proxy that has
14796	// validateForProxyless field set to true.
14797	UrlRewrite *UrlRewrite `json:"urlRewrite,omitempty"`
14798
14799	// WeightedBackendServices: A list of weighted backend services to send
14800	// traffic to when a route match occurs. The weights determine the
14801	// fraction of traffic that flows to their corresponding backend
14802	// service. If all traffic needs to go to a single backend service,
14803	// there must be one weightedBackendService with weight set to a
14804	// non-zero number. Once a backendService is identified and before
14805	// forwarding the request to the backend service, advanced routing
14806	// actions such as URL rewrites and header transformations are applied
14807	// depending on additional settings specified in this HttpRouteAction.
14808	WeightedBackendServices []*WeightedBackendService `json:"weightedBackendServices,omitempty"`
14809
14810	// ForceSendFields is a list of field names (e.g. "CorsPolicy") to
14811	// unconditionally include in API requests. By default, fields with
14812	// empty or default values are omitted from API requests. However, any
14813	// non-pointer, non-interface field appearing in ForceSendFields will be
14814	// sent to the server regardless of whether the field is empty or not.
14815	// This may be used to include empty fields in Patch requests.
14816	ForceSendFields []string `json:"-"`
14817
14818	// NullFields is a list of field names (e.g. "CorsPolicy") to include in
14819	// API requests with the JSON null value. By default, fields with empty
14820	// values are omitted from API requests. However, any field with an
14821	// empty value appearing in NullFields will be sent to the server as
14822	// null. It is an error if a field in this list has a non-empty value.
14823	// This may be used to include null fields in Patch requests.
14824	NullFields []string `json:"-"`
14825}
14826
14827func (s *HttpRouteAction) MarshalJSON() ([]byte, error) {
14828	type NoMethod HttpRouteAction
14829	raw := NoMethod(*s)
14830	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14831}
14832
14833// HttpRouteRule: An HttpRouteRule specifies how to match an HTTP
14834// request and the corresponding routing action that load balancing
14835// proxies will perform.
14836type HttpRouteRule struct {
14837	// Description: The short description conveying the intent of this
14838	// routeRule. The description can have a maximum length of 1024
14839	// characters.
14840	Description string `json:"description,omitempty"`
14841
14842	// HeaderAction: Specifies changes to request and response headers that
14843	// need to take effect for the selected backendService. The headerAction
14844	// specified here are applied before the matching
14845	// pathMatchers[].headerAction and after
14846	// pathMatchers[].routeRules[].routeAction.weightedBackendService.backend
14847	// ServiceWeightAction[].headerAction Note that headerAction is not
14848	// supported for Loadbalancers that have their loadBalancingScheme set
14849	// to EXTERNAL. Not supported when the URL map is bound to target gRPC
14850	// proxy that has validateForProxyless field set to true.
14851	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
14852
14853	// MatchRules: The list of criteria for matching attributes of a request
14854	// to this routeRule. This list has OR semantics: the request matches
14855	// this routeRule when any of the matchRules are satisfied. However
14856	// predicates within a given matchRule have AND semantics. All
14857	// predicates within a matchRule must match for the request to match the
14858	// rule.
14859	MatchRules []*HttpRouteRuleMatch `json:"matchRules,omitempty"`
14860
14861	// Priority: For routeRules within a given pathMatcher, priority
14862	// determines the order in which load balancer will interpret
14863	// routeRules. RouteRules are evaluated in order of priority, from the
14864	// lowest to highest number. The priority of a rule decreases as its
14865	// number increases (1, 2, 3, N+1). The first rule that matches the
14866	// request is applied. You cannot configure two or more routeRules with
14867	// the same priority. Priority for each rule must be set to a number
14868	// between 0 and 2147483647 inclusive. Priority numbers can have gaps,
14869	// which enable you to add or remove rules in the future without
14870	// affecting the rest of the rules. For example, 1, 2, 3, 4, 5, 9, 12,
14871	// 16 is a valid series of priority numbers to which you could add rules
14872	// numbered from 6 to 8, 10 to 11, and 13 to 15 in the future without
14873	// any impact on existing rules.
14874	Priority int64 `json:"priority,omitempty"`
14875
14876	// RouteAction: In response to a matching matchRule, the load balancer
14877	// performs advanced routing actions like URL rewrites, header
14878	// transformations, etc. prior to forwarding the request to the selected
14879	// backend. If routeAction specifies any weightedBackendServices,
14880	// service must not be set. Conversely if service is set, routeAction
14881	// cannot contain any weightedBackendServices. Only one of urlRedirect,
14882	// service or routeAction.weightedBackendService must be set. UrlMaps
14883	// for external HTTP(S) load balancers support only the urlRewrite
14884	// action within a routeRule's routeAction.
14885	RouteAction *HttpRouteAction `json:"routeAction,omitempty"`
14886
14887	// Service: The full or partial URL of the backend service resource to
14888	// which traffic is directed if this rule is matched. If routeAction is
14889	// additionally specified, advanced routing actions like URL Rewrites,
14890	// etc. take effect prior to sending the request to the backend.
14891	// However, if service is specified, routeAction cannot contain any
14892	// weightedBackendService s. Conversely, if routeAction specifies any
14893	// weightedBackendServices, service must not be specified. Only one of
14894	// urlRedirect, service or routeAction.weightedBackendService must be
14895	// set.
14896	Service string `json:"service,omitempty"`
14897
14898	// UrlRedirect: When this rule is matched, the request is redirected to
14899	// a URL specified by urlRedirect. If urlRedirect is specified, service
14900	// or routeAction must not be set. Not supported when the URL map is
14901	// bound to target gRPC proxy.
14902	UrlRedirect *HttpRedirectAction `json:"urlRedirect,omitempty"`
14903
14904	// ForceSendFields is a list of field names (e.g. "Description") to
14905	// unconditionally include in API requests. By default, fields with
14906	// empty or default values are omitted from API requests. However, any
14907	// non-pointer, non-interface field appearing in ForceSendFields will be
14908	// sent to the server regardless of whether the field is empty or not.
14909	// This may be used to include empty fields in Patch requests.
14910	ForceSendFields []string `json:"-"`
14911
14912	// NullFields is a list of field names (e.g. "Description") to include
14913	// in API requests with the JSON null value. By default, fields with
14914	// empty values are omitted from API requests. However, any field with
14915	// an empty value appearing in NullFields will be sent to the server as
14916	// null. It is an error if a field in this list has a non-empty value.
14917	// This may be used to include null fields in Patch requests.
14918	NullFields []string `json:"-"`
14919}
14920
14921func (s *HttpRouteRule) MarshalJSON() ([]byte, error) {
14922	type NoMethod HttpRouteRule
14923	raw := NoMethod(*s)
14924	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14925}
14926
14927// HttpRouteRuleMatch: HttpRouteRuleMatch specifies a set of criteria
14928// for matching requests to an HttpRouteRule. All specified criteria
14929// must be satisfied for a match to occur.
14930type HttpRouteRuleMatch struct {
14931	// FullPathMatch: For satisfying the matchRule condition, the path of
14932	// the request must exactly match the value specified in fullPathMatch
14933	// after removing any query parameters and anchor that may be part of
14934	// the original URL. fullPathMatch must be between 1 and 1024
14935	// characters. Only one of prefixMatch, fullPathMatch or regexMatch must
14936	// be specified.
14937	FullPathMatch string `json:"fullPathMatch,omitempty"`
14938
14939	// HeaderMatches: Specifies a list of header match criteria, all of
14940	// which must match corresponding headers in the request.
14941	HeaderMatches []*HttpHeaderMatch `json:"headerMatches,omitempty"`
14942
14943	// IgnoreCase: Specifies that prefixMatch and fullPathMatch matches are
14944	// case sensitive. The default value is false. ignoreCase must not be
14945	// used with regexMatch. Not supported when the URL map is bound to
14946	// target gRPC proxy.
14947	IgnoreCase bool `json:"ignoreCase,omitempty"`
14948
14949	// MetadataFilters: Opaque filter criteria used by Loadbalancer to
14950	// restrict routing configuration to a limited set of xDS compliant
14951	// clients. In their xDS requests to Loadbalancer, xDS clients present
14952	// node metadata. When there is a match, the relevant routing
14953	// configuration is made available to those proxies. For each
14954	// metadataFilter in this list, if its filterMatchCriteria is set to
14955	// MATCH_ANY, at least one of the filterLabels must match the
14956	// corresponding label provided in the metadata. If its
14957	// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
14958	// must match with corresponding labels provided in the metadata. If
14959	// multiple metadataFilters are specified, all of them need to be
14960	// satisfied in order to be considered a match. metadataFilters
14961	// specified here will be applied after those specified in
14962	// ForwardingRule that refers to the UrlMap this HttpRouteRuleMatch
14963	// belongs to. metadataFilters only applies to Loadbalancers that have
14964	// their loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not supported
14965	// when the URL map is bound to target gRPC proxy that has
14966	// validateForProxyless field set to true.
14967	MetadataFilters []*MetadataFilter `json:"metadataFilters,omitempty"`
14968
14969	// PrefixMatch: For satisfying the matchRule condition, the request's
14970	// path must begin with the specified prefixMatch. prefixMatch must
14971	// begin with a /. The value must be between 1 and 1024 characters. Only
14972	// one of prefixMatch, fullPathMatch or regexMatch must be specified.
14973	PrefixMatch string `json:"prefixMatch,omitempty"`
14974
14975	// QueryParameterMatches: Specifies a list of query parameter match
14976	// criteria, all of which must match corresponding query parameters in
14977	// the request. Not supported when the URL map is bound to target gRPC
14978	// proxy.
14979	QueryParameterMatches []*HttpQueryParameterMatch `json:"queryParameterMatches,omitempty"`
14980
14981	// RegexMatch: For satisfying the matchRule condition, the path of the
14982	// request must satisfy the regular expression specified in regexMatch
14983	// after removing any query parameters and anchor supplied with the
14984	// original URL. For regular expression grammar please see
14985	// github.com/google/re2/wiki/Syntax Only one of prefixMatch,
14986	// fullPathMatch or regexMatch must be specified. Note that regexMatch
14987	// only applies to Loadbalancers that have their loadBalancingScheme set
14988	// to INTERNAL_SELF_MANAGED.
14989	RegexMatch string `json:"regexMatch,omitempty"`
14990
14991	// ForceSendFields is a list of field names (e.g. "FullPathMatch") to
14992	// unconditionally include in API requests. By default, fields with
14993	// empty or default values are omitted from API requests. However, any
14994	// non-pointer, non-interface field appearing in ForceSendFields will be
14995	// sent to the server regardless of whether the field is empty or not.
14996	// This may be used to include empty fields in Patch requests.
14997	ForceSendFields []string `json:"-"`
14998
14999	// NullFields is a list of field names (e.g. "FullPathMatch") to include
15000	// in API requests with the JSON null value. By default, fields with
15001	// empty values are omitted from API requests. However, any field with
15002	// an empty value appearing in NullFields will be sent to the server as
15003	// null. It is an error if a field in this list has a non-empty value.
15004	// This may be used to include null fields in Patch requests.
15005	NullFields []string `json:"-"`
15006}
15007
15008func (s *HttpRouteRuleMatch) MarshalJSON() ([]byte, error) {
15009	type NoMethod HttpRouteRuleMatch
15010	raw := NoMethod(*s)
15011	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15012}
15013
15014// HttpsHealthCheck: Represents a legacy HTTPS Health Check resource.
15015// Legacy HTTPS health checks have been deprecated. If you are using a
15016// target pool-based network load balancer, you must use a legacy HTTP
15017// (not HTTPS) health check. For all other load balancers, including
15018// backend service-based network load balancers, and for managed
15019// instance group auto-healing, you must use modern (non-legacy) health
15020// checks. For more information, see Health checks overview .
15021type HttpsHealthCheck struct {
15022	// CheckIntervalSec: How often (in seconds) to send a health check. The
15023	// default value is 5 seconds.
15024	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
15025
15026	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
15027	// format.
15028	CreationTimestamp string `json:"creationTimestamp,omitempty"`
15029
15030	// Description: An optional description of this resource. Provide this
15031	// property when you create the resource.
15032	Description string `json:"description,omitempty"`
15033
15034	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
15035	// after this many consecutive successes. The default value is 2.
15036	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
15037
15038	// Host: The value of the host header in the HTTPS health check request.
15039	// If left empty (default value), the public IP on behalf of which this
15040	// health check is performed will be used.
15041	Host string `json:"host,omitempty"`
15042
15043	// Id: [Output Only] The unique identifier for the resource. This
15044	// identifier is defined by the server.
15045	Id uint64 `json:"id,omitempty,string"`
15046
15047	// Kind: Type of the resource.
15048	Kind string `json:"kind,omitempty"`
15049
15050	// Name: Name of the resource. Provided by the client when the resource
15051	// is created. The name must be 1-63 characters long, and comply with
15052	// RFC1035. Specifically, the name must be 1-63 characters long and
15053	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
15054	// the first character must be a lowercase letter, and all following
15055	// characters must be a dash, lowercase letter, or digit, except the
15056	// last character, which cannot be a dash.
15057	Name string `json:"name,omitempty"`
15058
15059	// Port: The TCP port number for the HTTPS health check request. The
15060	// default value is 443.
15061	Port int64 `json:"port,omitempty"`
15062
15063	// RequestPath: The request path of the HTTPS health check request. The
15064	// default value is "/".
15065	RequestPath string `json:"requestPath,omitempty"`
15066
15067	// SelfLink: [Output Only] Server-defined URL for the resource.
15068	SelfLink string `json:"selfLink,omitempty"`
15069
15070	// TimeoutSec: How long (in seconds) to wait before claiming failure.
15071	// The default value is 5 seconds. It is invalid for timeoutSec to have
15072	// a greater value than checkIntervalSec.
15073	TimeoutSec int64 `json:"timeoutSec,omitempty"`
15074
15075	// UnhealthyThreshold: A so-far healthy instance will be marked
15076	// unhealthy after this many consecutive failures. The default value is
15077	// 2.
15078	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
15079
15080	// ServerResponse contains the HTTP response code and headers from the
15081	// server.
15082	googleapi.ServerResponse `json:"-"`
15083
15084	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
15085	// unconditionally include in API requests. By default, fields with
15086	// empty or default values are omitted from API requests. However, any
15087	// non-pointer, non-interface field appearing in ForceSendFields will be
15088	// sent to the server regardless of whether the field is empty or not.
15089	// This may be used to include empty fields in Patch requests.
15090	ForceSendFields []string `json:"-"`
15091
15092	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
15093	// include in API requests with the JSON null value. By default, fields
15094	// with empty values are omitted from API requests. However, any field
15095	// with an empty value appearing in NullFields will be sent to the
15096	// server as null. It is an error if a field in this list has a
15097	// non-empty value. This may be used to include null fields in Patch
15098	// requests.
15099	NullFields []string `json:"-"`
15100}
15101
15102func (s *HttpsHealthCheck) MarshalJSON() ([]byte, error) {
15103	type NoMethod HttpsHealthCheck
15104	raw := NoMethod(*s)
15105	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15106}
15107
15108// HttpsHealthCheckList: Contains a list of HttpsHealthCheck resources.
15109type HttpsHealthCheckList struct {
15110	// Id: [Output Only] Unique identifier for the resource; defined by the
15111	// server.
15112	Id string `json:"id,omitempty"`
15113
15114	// Items: A list of HttpsHealthCheck resources.
15115	Items []*HttpsHealthCheck `json:"items,omitempty"`
15116
15117	// Kind: Type of resource.
15118	Kind string `json:"kind,omitempty"`
15119
15120	// NextPageToken: [Output Only] This token allows you to get the next
15121	// page of results for list requests. If the number of results is larger
15122	// than maxResults, use the nextPageToken as a value for the query
15123	// parameter pageToken in the next list request. Subsequent list
15124	// requests will have their own nextPageToken to continue paging through
15125	// the results.
15126	NextPageToken string `json:"nextPageToken,omitempty"`
15127
15128	// SelfLink: [Output Only] Server-defined URL for this resource.
15129	SelfLink string `json:"selfLink,omitempty"`
15130
15131	// Warning: [Output Only] Informational warning message.
15132	Warning *HttpsHealthCheckListWarning `json:"warning,omitempty"`
15133
15134	// ServerResponse contains the HTTP response code and headers from the
15135	// server.
15136	googleapi.ServerResponse `json:"-"`
15137
15138	// ForceSendFields is a list of field names (e.g. "Id") to
15139	// unconditionally include in API requests. By default, fields with
15140	// empty or default values are omitted from API requests. However, any
15141	// non-pointer, non-interface field appearing in ForceSendFields will be
15142	// sent to the server regardless of whether the field is empty or not.
15143	// This may be used to include empty fields in Patch requests.
15144	ForceSendFields []string `json:"-"`
15145
15146	// NullFields is a list of field names (e.g. "Id") to include in API
15147	// requests with the JSON null value. By default, fields with empty
15148	// values are omitted from API requests. However, any field with an
15149	// empty value appearing in NullFields will be sent to the server as
15150	// null. It is an error if a field in this list has a non-empty value.
15151	// This may be used to include null fields in Patch requests.
15152	NullFields []string `json:"-"`
15153}
15154
15155func (s *HttpsHealthCheckList) MarshalJSON() ([]byte, error) {
15156	type NoMethod HttpsHealthCheckList
15157	raw := NoMethod(*s)
15158	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15159}
15160
15161// HttpsHealthCheckListWarning: [Output Only] Informational warning
15162// message.
15163type HttpsHealthCheckListWarning struct {
15164	// Code: [Output Only] A warning code, if applicable. For example,
15165	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15166	// the response.
15167	//
15168	// Possible values:
15169	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
15170	// changes made by a failed operation.
15171	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
15172	// created.
15173	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
15174	// resources has a type marked as deprecated
15175	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
15176	// that is larger than image size.
15177	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
15178	// resources has a type marked as experimental
15179	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
15180	// call
15181	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
15182	// overridden. Deprecated unused field.
15183	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
15184	// injected kernel, which is deprecated.
15185	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
15186	// exceedingly large number of resources
15187	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
15188	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
15189	// not assigned to an instance on the network.
15190	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
15191	// ip forward.
15192	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
15193	// refers to an instance that does not exist.
15194	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
15195	// URL refers to an instance that is not on the same network as the
15196	// route.
15197	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
15198	// have a status of RUNNING.
15199	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
15200	// continue the process despite the mentioned error.
15201	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
15202	// page.
15203	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
15204	// missing due to errors
15205	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
15206	// that requires a TOS they have not accepted.
15207	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
15208	// resource is in use.
15209	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
15210	// auto-delete could not be deleted because they were in use.
15211	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
15212	// ignored.
15213	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
15214	// instance group manager is valid as such, but its application does not
15215	// make a lot of sense, because it allows only single instance in
15216	// instance group.
15217	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
15218	// are present
15219	//   "UNREACHABLE" - A given scope cannot be reached.
15220	Code string `json:"code,omitempty"`
15221
15222	// Data: [Output Only] Metadata about this warning in key: value format.
15223	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
15224	// }
15225	Data []*HttpsHealthCheckListWarningData `json:"data,omitempty"`
15226
15227	// Message: [Output Only] A human-readable description of the warning
15228	// code.
15229	Message string `json:"message,omitempty"`
15230
15231	// ForceSendFields is a list of field names (e.g. "Code") to
15232	// unconditionally include in API requests. By default, fields with
15233	// empty or default values are omitted from API requests. However, any
15234	// non-pointer, non-interface field appearing in ForceSendFields will be
15235	// sent to the server regardless of whether the field is empty or not.
15236	// This may be used to include empty fields in Patch requests.
15237	ForceSendFields []string `json:"-"`
15238
15239	// NullFields is a list of field names (e.g. "Code") to include in API
15240	// requests with the JSON null value. By default, fields with empty
15241	// values are omitted from API requests. However, any field with an
15242	// empty value appearing in NullFields will be sent to the server as
15243	// null. It is an error if a field in this list has a non-empty value.
15244	// This may be used to include null fields in Patch requests.
15245	NullFields []string `json:"-"`
15246}
15247
15248func (s *HttpsHealthCheckListWarning) MarshalJSON() ([]byte, error) {
15249	type NoMethod HttpsHealthCheckListWarning
15250	raw := NoMethod(*s)
15251	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15252}
15253
15254type HttpsHealthCheckListWarningData struct {
15255	// Key: [Output Only] A key that provides more detail on the warning
15256	// being returned. For example, for warnings where there are no results
15257	// in a list request for a particular zone, this key might be scope and
15258	// the key value might be the zone name. Other examples might be a key
15259	// indicating a deprecated resource and a suggested replacement, or a
15260	// warning about invalid network settings (for example, if an instance
15261	// attempts to perform IP forwarding but is not enabled for IP
15262	// forwarding).
15263	Key string `json:"key,omitempty"`
15264
15265	// Value: [Output Only] A warning data value corresponding to the key.
15266	Value string `json:"value,omitempty"`
15267
15268	// ForceSendFields is a list of field names (e.g. "Key") to
15269	// unconditionally include in API requests. By default, fields with
15270	// empty or default values are omitted from API requests. However, any
15271	// non-pointer, non-interface field appearing in ForceSendFields will be
15272	// sent to the server regardless of whether the field is empty or not.
15273	// This may be used to include empty fields in Patch requests.
15274	ForceSendFields []string `json:"-"`
15275
15276	// NullFields is a list of field names (e.g. "Key") to include in API
15277	// requests with the JSON null value. By default, fields with empty
15278	// values are omitted from API requests. However, any field with an
15279	// empty value appearing in NullFields will be sent to the server as
15280	// null. It is an error if a field in this list has a non-empty value.
15281	// This may be used to include null fields in Patch requests.
15282	NullFields []string `json:"-"`
15283}
15284
15285func (s *HttpsHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
15286	type NoMethod HttpsHealthCheckListWarningData
15287	raw := NoMethod(*s)
15288	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15289}
15290
15291// Image: Represents an Image resource. You can use images to create
15292// boot disks for your VM instances. For more information, read Images.
15293type Image struct {
15294	// ArchiveSizeBytes: Size of the image tar.gz archive stored in Google
15295	// Cloud Storage (in bytes).
15296	ArchiveSizeBytes int64 `json:"archiveSizeBytes,omitempty,string"`
15297
15298	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
15299	// format.
15300	CreationTimestamp string `json:"creationTimestamp,omitempty"`
15301
15302	// Deprecated -- The deprecation status associated with this image.
15303	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
15304
15305	// Description: An optional description of this resource. Provide this
15306	// property when you create the resource.
15307	Description string `json:"description,omitempty"`
15308
15309	// DiskSizeGb: Size of the image when restored onto a persistent disk
15310	// (in GB).
15311	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
15312
15313	// Family: The name of the image family to which this image belongs. You
15314	// can create disks by specifying an image family instead of a specific
15315	// image name. The image family always returns its latest image that is
15316	// not deprecated. The name of the image family must comply with
15317	// RFC1035.
15318	Family string `json:"family,omitempty"`
15319
15320	// GuestOsFeatures: A list of features to enable on the guest operating
15321	// system. Applicable only for bootable images. Read Enabling guest
15322	// operating system features to see a list of available options.
15323	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
15324
15325	// Id: [Output Only] The unique identifier for the resource. This
15326	// identifier is defined by the server.
15327	Id uint64 `json:"id,omitempty,string"`
15328
15329	// ImageEncryptionKey: Encrypts the image using a customer-supplied
15330	// encryption key. After you encrypt an image with a customer-supplied
15331	// key, you must provide the same key if you use the image later (e.g.
15332	// to create a disk from the image). Customer-supplied encryption keys
15333	// do not protect access to metadata of the disk. If you do not provide
15334	// an encryption key when creating the image, then the disk will be
15335	// encrypted using an automatically generated key and you do not need to
15336	// provide a key to use the image later.
15337	ImageEncryptionKey *CustomerEncryptionKey `json:"imageEncryptionKey,omitempty"`
15338
15339	// Kind: [Output Only] Type of the resource. Always compute#image for
15340	// images.
15341	Kind string `json:"kind,omitempty"`
15342
15343	// LabelFingerprint: A fingerprint for the labels being applied to this
15344	// image, which is essentially a hash of the labels used for optimistic
15345	// locking. The fingerprint is initially generated by Compute Engine and
15346	// changes after every request to modify or update labels. You must
15347	// always provide an up-to-date fingerprint hash in order to update or
15348	// change labels, otherwise the request will fail with error 412
15349	// conditionNotMet. To see the latest fingerprint, make a get() request
15350	// to retrieve an image.
15351	LabelFingerprint string `json:"labelFingerprint,omitempty"`
15352
15353	// Labels: Labels to apply to this image. These can be later modified by
15354	// the setLabels method.
15355	Labels map[string]string `json:"labels,omitempty"`
15356
15357	// LicenseCodes: Integer license codes indicating which licenses are
15358	// attached to this image.
15359	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
15360
15361	// Licenses: Any applicable license URI.
15362	Licenses []string `json:"licenses,omitempty"`
15363
15364	// Name: Name of the resource; provided by the client when the resource
15365	// is created. The name must be 1-63 characters long, and comply with
15366	// RFC1035. Specifically, the name must be 1-63 characters long and
15367	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
15368	// the first character must be a lowercase letter, and all following
15369	// characters must be a dash, lowercase letter, or digit, except the
15370	// last character, which cannot be a dash.
15371	Name string `json:"name,omitempty"`
15372
15373	// RawDisk: The parameters of the raw disk image.
15374	RawDisk *ImageRawDisk `json:"rawDisk,omitempty"`
15375
15376	// SatisfiesPzs: [Output Only] Reserved for future use.
15377	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
15378
15379	// SelfLink: [Output Only] Server-defined URL for the resource.
15380	SelfLink string `json:"selfLink,omitempty"`
15381
15382	// ShieldedInstanceInitialState: Set the secure boot keys of shielded
15383	// instance.
15384	ShieldedInstanceInitialState *InitialStateConfig `json:"shieldedInstanceInitialState,omitempty"`
15385
15386	// SourceDisk: URL of the source disk used to create this image. For
15387	// example, the following are valid values: -
15388	// https://www.googleapis.com/compute/v1/projects/project/zones/zone
15389	// /disks/disk - projects/project/zones/zone/disks/disk -
15390	// zones/zone/disks/disk In order to create an image, you must provide
15391	// the full or partial URL of one of the following: - The rawDisk.source
15392	// URL - The sourceDisk URL - The sourceImage URL - The sourceSnapshot
15393	// URL
15394	SourceDisk string `json:"sourceDisk,omitempty"`
15395
15396	// SourceDiskEncryptionKey: The customer-supplied encryption key of the
15397	// source disk. Required if the source disk is protected by a
15398	// customer-supplied encryption key.
15399	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
15400
15401	// SourceDiskId: [Output Only] The ID value of the disk used to create
15402	// this image. This value may be used to determine whether the image was
15403	// taken from the current or a previous instance of a given disk name.
15404	SourceDiskId string `json:"sourceDiskId,omitempty"`
15405
15406	// SourceImage: URL of the source image used to create this image. The
15407	// following are valid formats for the URL: -
15408	// https://www.googleapis.com/compute/v1/projects/project_id/global/
15409	// images/image_name - projects/project_id/global/images/image_name In
15410	// order to create an image, you must provide the full or partial URL of
15411	// one of the following: - The rawDisk.source URL - The sourceDisk URL -
15412	// The sourceImage URL - The sourceSnapshot URL
15413	SourceImage string `json:"sourceImage,omitempty"`
15414
15415	// SourceImageEncryptionKey: The customer-supplied encryption key of the
15416	// source image. Required if the source image is protected by a
15417	// customer-supplied encryption key.
15418	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
15419
15420	// SourceImageId: [Output Only] The ID value of the image used to create
15421	// this image. This value may be used to determine whether the image was
15422	// taken from the current or a previous instance of a given image name.
15423	SourceImageId string `json:"sourceImageId,omitempty"`
15424
15425	// SourceSnapshot: URL of the source snapshot used to create this image.
15426	// The following are valid formats for the URL: -
15427	// https://www.googleapis.com/compute/v1/projects/project_id/global/
15428	// snapshots/snapshot_name -
15429	// projects/project_id/global/snapshots/snapshot_name In order to create
15430	// an image, you must provide the full or partial URL of one of the
15431	// following: - The rawDisk.source URL - The sourceDisk URL - The
15432	// sourceImage URL - The sourceSnapshot URL
15433	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
15434
15435	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
15436	// the source snapshot. Required if the source snapshot is protected by
15437	// a customer-supplied encryption key.
15438	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
15439
15440	// SourceSnapshotId: [Output Only] The ID value of the snapshot used to
15441	// create this image. This value may be used to determine whether the
15442	// snapshot was taken from the current or a previous instance of a given
15443	// snapshot name.
15444	SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
15445
15446	// SourceType: The type of the image used to create this disk. The
15447	// default and only value is RAW
15448	//
15449	// Possible values:
15450	//   "RAW" (default)
15451	SourceType string `json:"sourceType,omitempty"`
15452
15453	// Status: [Output Only] The status of the image. An image can be used
15454	// to create other resources, such as instances, only after the image
15455	// has been successfully created and the status is set to READY.
15456	// Possible values are FAILED, PENDING, or READY.
15457	//
15458	// Possible values:
15459	//   "DELETING" - Image is deleting.
15460	//   "FAILED" - Image creation failed due to an error.
15461	//   "PENDING" - Image hasn't been created as yet.
15462	//   "READY" - Image has been successfully created.
15463	Status string `json:"status,omitempty"`
15464
15465	// StorageLocations: Cloud Storage bucket storage location of the image
15466	// (regional or multi-regional).
15467	StorageLocations []string `json:"storageLocations,omitempty"`
15468
15469	// ServerResponse contains the HTTP response code and headers from the
15470	// server.
15471	googleapi.ServerResponse `json:"-"`
15472
15473	// ForceSendFields is a list of field names (e.g. "ArchiveSizeBytes") to
15474	// unconditionally include in API requests. By default, fields with
15475	// empty or default values are omitted from API requests. However, any
15476	// non-pointer, non-interface field appearing in ForceSendFields will be
15477	// sent to the server regardless of whether the field is empty or not.
15478	// This may be used to include empty fields in Patch requests.
15479	ForceSendFields []string `json:"-"`
15480
15481	// NullFields is a list of field names (e.g. "ArchiveSizeBytes") to
15482	// include in API requests with the JSON null value. By default, fields
15483	// with empty values are omitted from API requests. However, any field
15484	// with an empty value appearing in NullFields will be sent to the
15485	// server as null. It is an error if a field in this list has a
15486	// non-empty value. This may be used to include null fields in Patch
15487	// requests.
15488	NullFields []string `json:"-"`
15489}
15490
15491func (s *Image) MarshalJSON() ([]byte, error) {
15492	type NoMethod Image
15493	raw := NoMethod(*s)
15494	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15495}
15496
15497// ImageRawDisk: The parameters of the raw disk image.
15498type ImageRawDisk struct {
15499	// ContainerType: The format used to encode and transmit the block
15500	// device, which should be TAR. This is just a container and
15501	// transmission format and not a runtime format. Provided by the client
15502	// when the disk image is created.
15503	//
15504	// Possible values:
15505	//   "TAR"
15506	ContainerType string `json:"containerType,omitempty"`
15507
15508	// Sha1Checksum: [Deprecated] This field is deprecated. An optional SHA1
15509	// checksum of the disk image before unpackaging provided by the client
15510	// when the disk image is created.
15511	Sha1Checksum string `json:"sha1Checksum,omitempty"`
15512
15513	// Source: The full Google Cloud Storage URL where the raw disk image
15514	// archive is stored. The following are valid formats for the URL: -
15515	// https://storage.googleapis.com/bucket_name/image_archive_name -
15516	// https://storage.googleapis.com/bucket_name/folder_name/
15517	// image_archive_name In order to create an image, you must provide the
15518	// full or partial URL of one of the following: - The rawDisk.source URL
15519	// - The sourceDisk URL - The sourceImage URL - The sourceSnapshot URL
15520	Source string `json:"source,omitempty"`
15521
15522	// ForceSendFields is a list of field names (e.g. "ContainerType") to
15523	// unconditionally include in API requests. By default, fields with
15524	// empty or default values are omitted from API requests. However, any
15525	// non-pointer, non-interface field appearing in ForceSendFields will be
15526	// sent to the server regardless of whether the field is empty or not.
15527	// This may be used to include empty fields in Patch requests.
15528	ForceSendFields []string `json:"-"`
15529
15530	// NullFields is a list of field names (e.g. "ContainerType") to include
15531	// in API requests with the JSON null value. By default, fields with
15532	// empty values are omitted from API requests. However, any field with
15533	// an empty value appearing in NullFields will be sent to the server as
15534	// null. It is an error if a field in this list has a non-empty value.
15535	// This may be used to include null fields in Patch requests.
15536	NullFields []string `json:"-"`
15537}
15538
15539func (s *ImageRawDisk) MarshalJSON() ([]byte, error) {
15540	type NoMethod ImageRawDisk
15541	raw := NoMethod(*s)
15542	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15543}
15544
15545type ImageFamilyView struct {
15546	// Image: The latest image that is part of the specified image family in
15547	// the requested location, and that is not deprecated.
15548	Image *Image `json:"image,omitempty"`
15549
15550	// ServerResponse contains the HTTP response code and headers from the
15551	// server.
15552	googleapi.ServerResponse `json:"-"`
15553
15554	// ForceSendFields is a list of field names (e.g. "Image") to
15555	// unconditionally include in API requests. By default, fields with
15556	// empty or default values are omitted from API requests. However, any
15557	// non-pointer, non-interface field appearing in ForceSendFields will be
15558	// sent to the server regardless of whether the field is empty or not.
15559	// This may be used to include empty fields in Patch requests.
15560	ForceSendFields []string `json:"-"`
15561
15562	// NullFields is a list of field names (e.g. "Image") to include in API
15563	// requests with the JSON null value. By default, fields with empty
15564	// values are omitted from API requests. However, any field with an
15565	// empty value appearing in NullFields will be sent to the server as
15566	// null. It is an error if a field in this list has a non-empty value.
15567	// This may be used to include null fields in Patch requests.
15568	NullFields []string `json:"-"`
15569}
15570
15571func (s *ImageFamilyView) MarshalJSON() ([]byte, error) {
15572	type NoMethod ImageFamilyView
15573	raw := NoMethod(*s)
15574	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15575}
15576
15577// ImageList: Contains a list of images.
15578type ImageList struct {
15579	// Id: [Output Only] Unique identifier for the resource; defined by the
15580	// server.
15581	Id string `json:"id,omitempty"`
15582
15583	// Items: A list of Image resources.
15584	Items []*Image `json:"items,omitempty"`
15585
15586	// Kind: Type of resource.
15587	Kind string `json:"kind,omitempty"`
15588
15589	// NextPageToken: [Output Only] This token allows you to get the next
15590	// page of results for list requests. If the number of results is larger
15591	// than maxResults, use the nextPageToken as a value for the query
15592	// parameter pageToken in the next list request. Subsequent list
15593	// requests will have their own nextPageToken to continue paging through
15594	// the results.
15595	NextPageToken string `json:"nextPageToken,omitempty"`
15596
15597	// SelfLink: [Output Only] Server-defined URL for this resource.
15598	SelfLink string `json:"selfLink,omitempty"`
15599
15600	// Warning: [Output Only] Informational warning message.
15601	Warning *ImageListWarning `json:"warning,omitempty"`
15602
15603	// ServerResponse contains the HTTP response code and headers from the
15604	// server.
15605	googleapi.ServerResponse `json:"-"`
15606
15607	// ForceSendFields is a list of field names (e.g. "Id") to
15608	// unconditionally include in API requests. By default, fields with
15609	// empty or default values are omitted from API requests. However, any
15610	// non-pointer, non-interface field appearing in ForceSendFields will be
15611	// sent to the server regardless of whether the field is empty or not.
15612	// This may be used to include empty fields in Patch requests.
15613	ForceSendFields []string `json:"-"`
15614
15615	// NullFields is a list of field names (e.g. "Id") to include in API
15616	// requests with the JSON null value. By default, fields with empty
15617	// values are omitted from API requests. However, any field with an
15618	// empty value appearing in NullFields will be sent to the server as
15619	// null. It is an error if a field in this list has a non-empty value.
15620	// This may be used to include null fields in Patch requests.
15621	NullFields []string `json:"-"`
15622}
15623
15624func (s *ImageList) MarshalJSON() ([]byte, error) {
15625	type NoMethod ImageList
15626	raw := NoMethod(*s)
15627	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15628}
15629
15630// ImageListWarning: [Output Only] Informational warning message.
15631type ImageListWarning struct {
15632	// Code: [Output Only] A warning code, if applicable. For example,
15633	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15634	// the response.
15635	//
15636	// Possible values:
15637	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
15638	// changes made by a failed operation.
15639	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
15640	// created.
15641	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
15642	// resources has a type marked as deprecated
15643	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
15644	// that is larger than image size.
15645	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
15646	// resources has a type marked as experimental
15647	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
15648	// call
15649	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
15650	// overridden. Deprecated unused field.
15651	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
15652	// injected kernel, which is deprecated.
15653	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
15654	// exceedingly large number of resources
15655	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
15656	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
15657	// not assigned to an instance on the network.
15658	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
15659	// ip forward.
15660	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
15661	// refers to an instance that does not exist.
15662	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
15663	// URL refers to an instance that is not on the same network as the
15664	// route.
15665	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
15666	// have a status of RUNNING.
15667	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
15668	// continue the process despite the mentioned error.
15669	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
15670	// page.
15671	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
15672	// missing due to errors
15673	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
15674	// that requires a TOS they have not accepted.
15675	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
15676	// resource is in use.
15677	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
15678	// auto-delete could not be deleted because they were in use.
15679	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
15680	// ignored.
15681	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
15682	// instance group manager is valid as such, but its application does not
15683	// make a lot of sense, because it allows only single instance in
15684	// instance group.
15685	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
15686	// are present
15687	//   "UNREACHABLE" - A given scope cannot be reached.
15688	Code string `json:"code,omitempty"`
15689
15690	// Data: [Output Only] Metadata about this warning in key: value format.
15691	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
15692	// }
15693	Data []*ImageListWarningData `json:"data,omitempty"`
15694
15695	// Message: [Output Only] A human-readable description of the warning
15696	// code.
15697	Message string `json:"message,omitempty"`
15698
15699	// ForceSendFields is a list of field names (e.g. "Code") to
15700	// unconditionally include in API requests. By default, fields with
15701	// empty or default values are omitted from API requests. However, any
15702	// non-pointer, non-interface field appearing in ForceSendFields will be
15703	// sent to the server regardless of whether the field is empty or not.
15704	// This may be used to include empty fields in Patch requests.
15705	ForceSendFields []string `json:"-"`
15706
15707	// NullFields is a list of field names (e.g. "Code") to include in API
15708	// requests with the JSON null value. By default, fields with empty
15709	// values are omitted from API requests. However, any field with an
15710	// empty value appearing in NullFields will be sent to the server as
15711	// null. It is an error if a field in this list has a non-empty value.
15712	// This may be used to include null fields in Patch requests.
15713	NullFields []string `json:"-"`
15714}
15715
15716func (s *ImageListWarning) MarshalJSON() ([]byte, error) {
15717	type NoMethod ImageListWarning
15718	raw := NoMethod(*s)
15719	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15720}
15721
15722type ImageListWarningData struct {
15723	// Key: [Output Only] A key that provides more detail on the warning
15724	// being returned. For example, for warnings where there are no results
15725	// in a list request for a particular zone, this key might be scope and
15726	// the key value might be the zone name. Other examples might be a key
15727	// indicating a deprecated resource and a suggested replacement, or a
15728	// warning about invalid network settings (for example, if an instance
15729	// attempts to perform IP forwarding but is not enabled for IP
15730	// forwarding).
15731	Key string `json:"key,omitempty"`
15732
15733	// Value: [Output Only] A warning data value corresponding to the key.
15734	Value string `json:"value,omitempty"`
15735
15736	// ForceSendFields is a list of field names (e.g. "Key") to
15737	// unconditionally include in API requests. By default, fields with
15738	// empty or default values are omitted from API requests. However, any
15739	// non-pointer, non-interface field appearing in ForceSendFields will be
15740	// sent to the server regardless of whether the field is empty or not.
15741	// This may be used to include empty fields in Patch requests.
15742	ForceSendFields []string `json:"-"`
15743
15744	// NullFields is a list of field names (e.g. "Key") to include in API
15745	// requests with the JSON null value. By default, fields with empty
15746	// values are omitted from API requests. However, any field with an
15747	// empty value appearing in NullFields will be sent to the server as
15748	// null. It is an error if a field in this list has a non-empty value.
15749	// This may be used to include null fields in Patch requests.
15750	NullFields []string `json:"-"`
15751}
15752
15753func (s *ImageListWarningData) MarshalJSON() ([]byte, error) {
15754	type NoMethod ImageListWarningData
15755	raw := NoMethod(*s)
15756	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15757}
15758
15759// InitialStateConfig: Initial State for shielded instance, these are
15760// public keys which are safe to store in public
15761type InitialStateConfig struct {
15762	// Dbs: The Key Database (db).
15763	Dbs []*FileContentBuffer `json:"dbs,omitempty"`
15764
15765	// Dbxs: The forbidden key database (dbx).
15766	Dbxs []*FileContentBuffer `json:"dbxs,omitempty"`
15767
15768	// Keks: The Key Exchange Key (KEK).
15769	Keks []*FileContentBuffer `json:"keks,omitempty"`
15770
15771	// Pk: The Platform Key (PK).
15772	Pk *FileContentBuffer `json:"pk,omitempty"`
15773
15774	// ForceSendFields is a list of field names (e.g. "Dbs") to
15775	// unconditionally include in API requests. By default, fields with
15776	// empty or default values are omitted from API requests. However, any
15777	// non-pointer, non-interface field appearing in ForceSendFields will be
15778	// sent to the server regardless of whether the field is empty or not.
15779	// This may be used to include empty fields in Patch requests.
15780	ForceSendFields []string `json:"-"`
15781
15782	// NullFields is a list of field names (e.g. "Dbs") to include in API
15783	// requests with the JSON null value. By default, fields with empty
15784	// values are omitted from API requests. However, any field with an
15785	// empty value appearing in NullFields will be sent to the server as
15786	// null. It is an error if a field in this list has a non-empty value.
15787	// This may be used to include null fields in Patch requests.
15788	NullFields []string `json:"-"`
15789}
15790
15791func (s *InitialStateConfig) MarshalJSON() ([]byte, error) {
15792	type NoMethod InitialStateConfig
15793	raw := NoMethod(*s)
15794	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15795}
15796
15797// Instance: Represents an Instance resource. An instance is a virtual
15798// machine that is hosted on Google Cloud Platform. For more
15799// information, read Virtual Machine Instances.
15800type Instance struct {
15801	// AdvancedMachineFeatures: Controls for advanced machine-related
15802	// behavior features.
15803	AdvancedMachineFeatures *AdvancedMachineFeatures `json:"advancedMachineFeatures,omitempty"`
15804
15805	// CanIpForward: Allows this instance to send and receive packets with
15806	// non-matching destination or source IPs. This is required if you plan
15807	// to use this instance to forward routes. For more information, see
15808	// Enabling IP Forwarding .
15809	CanIpForward bool `json:"canIpForward,omitempty"`
15810
15811	ConfidentialInstanceConfig *ConfidentialInstanceConfig `json:"confidentialInstanceConfig,omitempty"`
15812
15813	// CpuPlatform: [Output Only] The CPU platform used by this instance.
15814	CpuPlatform string `json:"cpuPlatform,omitempty"`
15815
15816	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
15817	// format.
15818	CreationTimestamp string `json:"creationTimestamp,omitempty"`
15819
15820	// DeletionProtection: Whether the resource should be protected against
15821	// deletion.
15822	DeletionProtection bool `json:"deletionProtection,omitempty"`
15823
15824	// Description: An optional description of this resource. Provide this
15825	// property when you create the resource.
15826	Description string `json:"description,omitempty"`
15827
15828	// Disks: Array of disks associated with this instance. Persistent disks
15829	// must be created before you can assign them.
15830	Disks []*AttachedDisk `json:"disks,omitempty"`
15831
15832	// DisplayDevice: Enables display device for the instance.
15833	DisplayDevice *DisplayDevice `json:"displayDevice,omitempty"`
15834
15835	// Fingerprint: Specifies a fingerprint for this resource, which is
15836	// essentially a hash of the instance's contents and used for optimistic
15837	// locking. The fingerprint is initially generated by Compute Engine and
15838	// changes after every request to modify or update the instance. You
15839	// must always provide an up-to-date fingerprint hash in order to update
15840	// the instance. To see the latest fingerprint, make get() request to
15841	// the instance.
15842	Fingerprint string `json:"fingerprint,omitempty"`
15843
15844	// GuestAccelerators: A list of the type and count of accelerator cards
15845	// attached to the instance.
15846	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
15847
15848	// Hostname: Specifies the hostname of the instance. The specified
15849	// hostname must be RFC1035 compliant. If hostname is not specified, the
15850	// default hostname is [INSTANCE_NAME].c.[PROJECT_ID].internal when
15851	// using the global DNS, and
15852	// [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal DNS.
15853	Hostname string `json:"hostname,omitempty"`
15854
15855	// Id: [Output Only] The unique identifier for the resource. This
15856	// identifier is defined by the server.
15857	Id uint64 `json:"id,omitempty,string"`
15858
15859	// Kind: [Output Only] Type of the resource. Always compute#instance for
15860	// instances.
15861	Kind string `json:"kind,omitempty"`
15862
15863	// LabelFingerprint: A fingerprint for this request, which is
15864	// essentially a hash of the label's contents and used for optimistic
15865	// locking. The fingerprint is initially generated by Compute Engine and
15866	// changes after every request to modify or update labels. You must
15867	// always provide an up-to-date fingerprint hash in order to update or
15868	// change labels. To see the latest fingerprint, make get() request to
15869	// the instance.
15870	LabelFingerprint string `json:"labelFingerprint,omitempty"`
15871
15872	// Labels: Labels to apply to this instance. These can be later modified
15873	// by the setLabels method.
15874	Labels map[string]string `json:"labels,omitempty"`
15875
15876	// LastStartTimestamp: [Output Only] Last start timestamp in RFC3339
15877	// text format.
15878	LastStartTimestamp string `json:"lastStartTimestamp,omitempty"`
15879
15880	// LastStopTimestamp: [Output Only] Last stop timestamp in RFC3339 text
15881	// format.
15882	LastStopTimestamp string `json:"lastStopTimestamp,omitempty"`
15883
15884	// LastSuspendedTimestamp: [Output Only] Last suspended timestamp in
15885	// RFC3339 text format.
15886	LastSuspendedTimestamp string `json:"lastSuspendedTimestamp,omitempty"`
15887
15888	// MachineType: Full or partial URL of the machine type resource to use
15889	// for this instance, in the format:
15890	// zones/zone/machineTypes/machine-type. This is provided by the client
15891	// when the instance is created. For example, the following is a valid
15892	// partial url to a predefined machine type:
15893	// zones/us-central1-f/machineTypes/n1-standard-1 To create a custom
15894	// machine type, provide a URL to a machine type in the following
15895	// format, where CPUS is 1 or an even number up to 32 (2, 4, 6, ... 24,
15896	// etc), and MEMORY is the total memory for this instance. Memory must
15897	// be a multiple of 256 MB and must be supplied in MB (e.g. 5 GB of
15898	// memory is 5120 MB): zones/zone/machineTypes/custom-CPUS-MEMORY For
15899	// example: zones/us-central1-f/machineTypes/custom-4-5120 For a full
15900	// list of restrictions, read the Specifications for custom machine
15901	// types.
15902	MachineType string `json:"machineType,omitempty"`
15903
15904	// Metadata: The metadata key/value pairs assigned to this instance.
15905	// This includes custom metadata and predefined keys.
15906	Metadata *Metadata `json:"metadata,omitempty"`
15907
15908	// MinCpuPlatform: Specifies a minimum CPU platform for the VM instance.
15909	// Applicable values are the friendly names of CPU platforms, such as
15910	// minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy
15911	// Bridge".
15912	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
15913
15914	// Name: The name of the resource, provided by the client when initially
15915	// creating the resource. The resource name must be 1-63 characters
15916	// long, and comply with RFC1035. Specifically, the name must be 1-63
15917	// characters long and match the regular expression
15918	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
15919	// a lowercase letter, and all following characters must be a dash,
15920	// lowercase letter, or digit, except the last character, which cannot
15921	// be a dash.
15922	Name string `json:"name,omitempty"`
15923
15924	// NetworkInterfaces: An array of network configurations for this
15925	// instance. These specify how interfaces are configured to interact
15926	// with other network services, such as connecting to the internet.
15927	// Multiple interfaces are supported per instance.
15928	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
15929
15930	// PrivateIpv6GoogleAccess: The private IPv6 google access type for the
15931	// VM. If not specified, use INHERIT_FROM_SUBNETWORK as default.
15932	//
15933	// Possible values:
15934	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE" - Bidirectional private
15935	// IPv6 access to/from Google services. If specified, the subnetwork who
15936	// is attached to the instance's default network interface will be
15937	// assigned an internal IPv6 prefix if it doesn't have before.
15938	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE" - Outbound private IPv6
15939	// access from VMs in this subnet to Google services. If specified, the
15940	// subnetwork who is attached to the instance's default network
15941	// interface will be assigned an internal IPv6 prefix if it doesn't have
15942	// before.
15943	//   "INHERIT_FROM_SUBNETWORK" - Each network interface inherits
15944	// PrivateIpv6GoogleAccess from its subnetwork.
15945	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
15946
15947	// ReservationAffinity: Specifies the reservations that this instance
15948	// can consume from.
15949	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
15950
15951	// ResourcePolicies: Resource policies applied to this instance.
15952	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
15953
15954	// SatisfiesPzs: [Output Only] Reserved for future use.
15955	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
15956
15957	// Scheduling: Sets the scheduling options for this instance.
15958	Scheduling *Scheduling `json:"scheduling,omitempty"`
15959
15960	// SelfLink: [Output Only] Server-defined URL for this resource.
15961	SelfLink string `json:"selfLink,omitempty"`
15962
15963	// ServiceAccounts: A list of service accounts, with their specified
15964	// scopes, authorized for this instance. Only one service account per VM
15965	// instance is supported. Service accounts generate access tokens that
15966	// can be accessed through the metadata server and used to authenticate
15967	// applications on the instance. See Service Accounts for more
15968	// information.
15969	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
15970
15971	ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`
15972
15973	ShieldedInstanceIntegrityPolicy *ShieldedInstanceIntegrityPolicy `json:"shieldedInstanceIntegrityPolicy,omitempty"`
15974
15975	// StartRestricted: [Output Only] Whether a VM has been restricted for
15976	// start because Compute Engine has detected suspicious activity.
15977	StartRestricted bool `json:"startRestricted,omitempty"`
15978
15979	// Status: [Output Only] The status of the instance. One of the
15980	// following values: PROVISIONING, STAGING, RUNNING, STOPPING,
15981	// SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. For more
15982	// information about the status of the instance, see Instance life
15983	// cycle.
15984	//
15985	// Possible values:
15986	//   "DEPROVISIONING" - The Nanny is halted and we are performing tear
15987	// down tasks like network deprogramming, releasing quota, IP, tearing
15988	// down disks etc.
15989	//   "PROVISIONING" - Resources are being allocated for the instance.
15990	//   "REPAIRING" - The instance is in repair.
15991	//   "RUNNING" - The instance is running.
15992	//   "STAGING" - All required resources have been allocated and the
15993	// instance is being started.
15994	//   "STOPPED" - The instance has stopped successfully.
15995	//   "STOPPING" - The instance is currently stopping (either being
15996	// deleted or killed).
15997	//   "SUSPENDED" - The instance has suspended.
15998	//   "SUSPENDING" - The instance is suspending.
15999	//   "TERMINATED" - The instance has stopped (either by explicit action
16000	// or underlying failure).
16001	Status string `json:"status,omitempty"`
16002
16003	// StatusMessage: [Output Only] An optional, human-readable explanation
16004	// of the status.
16005	StatusMessage string `json:"statusMessage,omitempty"`
16006
16007	// Tags: Tags to apply to this instance. Tags are used to identify valid
16008	// sources or targets for network firewalls and are specified by the
16009	// client during instance creation. The tags can be later modified by
16010	// the setTags method. Each tag within the list must comply with
16011	// RFC1035. Multiple tags can be specified via the 'tags.items' field.
16012	Tags *Tags `json:"tags,omitempty"`
16013
16014	// Zone: [Output Only] URL of the zone where the instance resides. You
16015	// must specify this field as part of the HTTP request URL. It is not
16016	// settable as a field in the request body.
16017	Zone string `json:"zone,omitempty"`
16018
16019	// ServerResponse contains the HTTP response code and headers from the
16020	// server.
16021	googleapi.ServerResponse `json:"-"`
16022
16023	// ForceSendFields is a list of field names (e.g.
16024	// "AdvancedMachineFeatures") to unconditionally include in API
16025	// requests. By default, fields with empty or default values are omitted
16026	// from API requests. However, any non-pointer, non-interface field
16027	// appearing in ForceSendFields will be sent to the server regardless of
16028	// whether the field is empty or not. This may be used to include empty
16029	// fields in Patch requests.
16030	ForceSendFields []string `json:"-"`
16031
16032	// NullFields is a list of field names (e.g. "AdvancedMachineFeatures")
16033	// to include in API requests with the JSON null value. By default,
16034	// fields with empty values are omitted from API requests. However, any
16035	// field with an empty value appearing in NullFields will be sent to the
16036	// server as null. It is an error if a field in this list has a
16037	// non-empty value. This may be used to include null fields in Patch
16038	// requests.
16039	NullFields []string `json:"-"`
16040}
16041
16042func (s *Instance) MarshalJSON() ([]byte, error) {
16043	type NoMethod Instance
16044	raw := NoMethod(*s)
16045	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16046}
16047
16048type InstanceAggregatedList struct {
16049	// Id: [Output Only] Unique identifier for the resource; defined by the
16050	// server.
16051	Id string `json:"id,omitempty"`
16052
16053	// Items: An object that contains a list of instances scoped by zone.
16054	Items map[string]InstancesScopedList `json:"items,omitempty"`
16055
16056	// Kind: [Output Only] Type of resource. Always
16057	// compute#instanceAggregatedList for aggregated lists of Instance
16058	// resources.
16059	Kind string `json:"kind,omitempty"`
16060
16061	// NextPageToken: [Output Only] This token allows you to get the next
16062	// page of results for list requests. If the number of results is larger
16063	// than maxResults, use the nextPageToken as a value for the query
16064	// parameter pageToken in the next list request. Subsequent list
16065	// requests will have their own nextPageToken to continue paging through
16066	// the results.
16067	NextPageToken string `json:"nextPageToken,omitempty"`
16068
16069	// SelfLink: [Output Only] Server-defined URL for this resource.
16070	SelfLink string `json:"selfLink,omitempty"`
16071
16072	// Unreachables: [Output Only] Unreachable resources.
16073	Unreachables []string `json:"unreachables,omitempty"`
16074
16075	// Warning: [Output Only] Informational warning message.
16076	Warning *InstanceAggregatedListWarning `json:"warning,omitempty"`
16077
16078	// ServerResponse contains the HTTP response code and headers from the
16079	// server.
16080	googleapi.ServerResponse `json:"-"`
16081
16082	// ForceSendFields is a list of field names (e.g. "Id") to
16083	// unconditionally include in API requests. By default, fields with
16084	// empty or default values are omitted from API requests. However, any
16085	// non-pointer, non-interface field appearing in ForceSendFields will be
16086	// sent to the server regardless of whether the field is empty or not.
16087	// This may be used to include empty fields in Patch requests.
16088	ForceSendFields []string `json:"-"`
16089
16090	// NullFields is a list of field names (e.g. "Id") to include in API
16091	// requests with the JSON null value. By default, fields with empty
16092	// values are omitted from API requests. However, any field with an
16093	// empty value appearing in NullFields will be sent to the server as
16094	// null. It is an error if a field in this list has a non-empty value.
16095	// This may be used to include null fields in Patch requests.
16096	NullFields []string `json:"-"`
16097}
16098
16099func (s *InstanceAggregatedList) MarshalJSON() ([]byte, error) {
16100	type NoMethod InstanceAggregatedList
16101	raw := NoMethod(*s)
16102	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16103}
16104
16105// InstanceAggregatedListWarning: [Output Only] Informational warning
16106// message.
16107type InstanceAggregatedListWarning struct {
16108	// Code: [Output Only] A warning code, if applicable. For example,
16109	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16110	// the response.
16111	//
16112	// Possible values:
16113	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
16114	// changes made by a failed operation.
16115	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
16116	// created.
16117	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
16118	// resources has a type marked as deprecated
16119	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
16120	// that is larger than image size.
16121	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
16122	// resources has a type marked as experimental
16123	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
16124	// call
16125	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
16126	// overridden. Deprecated unused field.
16127	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
16128	// injected kernel, which is deprecated.
16129	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
16130	// exceedingly large number of resources
16131	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
16132	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
16133	// not assigned to an instance on the network.
16134	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
16135	// ip forward.
16136	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
16137	// refers to an instance that does not exist.
16138	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
16139	// URL refers to an instance that is not on the same network as the
16140	// route.
16141	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
16142	// have a status of RUNNING.
16143	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
16144	// continue the process despite the mentioned error.
16145	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
16146	// page.
16147	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
16148	// missing due to errors
16149	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
16150	// that requires a TOS they have not accepted.
16151	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
16152	// resource is in use.
16153	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
16154	// auto-delete could not be deleted because they were in use.
16155	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
16156	// ignored.
16157	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
16158	// instance group manager is valid as such, but its application does not
16159	// make a lot of sense, because it allows only single instance in
16160	// instance group.
16161	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
16162	// are present
16163	//   "UNREACHABLE" - A given scope cannot be reached.
16164	Code string `json:"code,omitempty"`
16165
16166	// Data: [Output Only] Metadata about this warning in key: value format.
16167	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
16168	// }
16169	Data []*InstanceAggregatedListWarningData `json:"data,omitempty"`
16170
16171	// Message: [Output Only] A human-readable description of the warning
16172	// code.
16173	Message string `json:"message,omitempty"`
16174
16175	// ForceSendFields is a list of field names (e.g. "Code") to
16176	// unconditionally include in API requests. By default, fields with
16177	// empty or default values are omitted from API requests. However, any
16178	// non-pointer, non-interface field appearing in ForceSendFields will be
16179	// sent to the server regardless of whether the field is empty or not.
16180	// This may be used to include empty fields in Patch requests.
16181	ForceSendFields []string `json:"-"`
16182
16183	// NullFields is a list of field names (e.g. "Code") to include in API
16184	// requests with the JSON null value. By default, fields with empty
16185	// values are omitted from API requests. However, any field with an
16186	// empty value appearing in NullFields will be sent to the server as
16187	// null. It is an error if a field in this list has a non-empty value.
16188	// This may be used to include null fields in Patch requests.
16189	NullFields []string `json:"-"`
16190}
16191
16192func (s *InstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
16193	type NoMethod InstanceAggregatedListWarning
16194	raw := NoMethod(*s)
16195	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16196}
16197
16198type InstanceAggregatedListWarningData struct {
16199	// Key: [Output Only] A key that provides more detail on the warning
16200	// being returned. For example, for warnings where there are no results
16201	// in a list request for a particular zone, this key might be scope and
16202	// the key value might be the zone name. Other examples might be a key
16203	// indicating a deprecated resource and a suggested replacement, or a
16204	// warning about invalid network settings (for example, if an instance
16205	// attempts to perform IP forwarding but is not enabled for IP
16206	// forwarding).
16207	Key string `json:"key,omitempty"`
16208
16209	// Value: [Output Only] A warning data value corresponding to the key.
16210	Value string `json:"value,omitempty"`
16211
16212	// ForceSendFields is a list of field names (e.g. "Key") to
16213	// unconditionally include in API requests. By default, fields with
16214	// empty or default values are omitted from API requests. However, any
16215	// non-pointer, non-interface field appearing in ForceSendFields will be
16216	// sent to the server regardless of whether the field is empty or not.
16217	// This may be used to include empty fields in Patch requests.
16218	ForceSendFields []string `json:"-"`
16219
16220	// NullFields is a list of field names (e.g. "Key") to include in API
16221	// requests with the JSON null value. By default, fields with empty
16222	// values are omitted from API requests. However, any field with an
16223	// empty value appearing in NullFields will be sent to the server as
16224	// null. It is an error if a field in this list has a non-empty value.
16225	// This may be used to include null fields in Patch requests.
16226	NullFields []string `json:"-"`
16227}
16228
16229func (s *InstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
16230	type NoMethod InstanceAggregatedListWarningData
16231	raw := NoMethod(*s)
16232	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16233}
16234
16235// InstanceGroup: Represents an Instance Group resource. Instance Groups
16236// can be used to configure a target for load balancing. Instance groups
16237// can either be managed or unmanaged. To create managed instance
16238// groups, use the instanceGroupManager or regionInstanceGroupManager
16239// resource instead. Use zonal unmanaged instance groups if you need to
16240// apply load balancing to groups of heterogeneous instances or if you
16241// need to manage the instances yourself. You cannot create regional
16242// unmanaged instance groups. For more information, read Instance
16243// groups.
16244type InstanceGroup struct {
16245	// CreationTimestamp: [Output Only] The creation timestamp for this
16246	// instance group in RFC3339 text format.
16247	CreationTimestamp string `json:"creationTimestamp,omitempty"`
16248
16249	// Description: An optional description of this resource. Provide this
16250	// property when you create the resource.
16251	Description string `json:"description,omitempty"`
16252
16253	// Fingerprint: [Output Only] The fingerprint of the named ports. The
16254	// system uses this fingerprint to detect conflicts when multiple users
16255	// change the named ports concurrently.
16256	Fingerprint string `json:"fingerprint,omitempty"`
16257
16258	// Id: [Output Only] A unique identifier for this instance group,
16259	// generated by the server.
16260	Id uint64 `json:"id,omitempty,string"`
16261
16262	// Kind: [Output Only] The resource type, which is always
16263	// compute#instanceGroup for instance groups.
16264	Kind string `json:"kind,omitempty"`
16265
16266	// Name: The name of the instance group. The name must be 1-63
16267	// characters long, and comply with RFC1035.
16268	Name string `json:"name,omitempty"`
16269
16270	// NamedPorts:  Assigns a name to a port number. For example: {name:
16271	// "http", port: 80} This allows the system to reference ports by the
16272	// assigned name instead of a port number. Named ports can also contain
16273	// multiple ports. For example: [{name: "http", port: 80},{name: "http",
16274	// port: 8080}] Named ports apply to all instances in this instance
16275	// group.
16276	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
16277
16278	// Network: [Output Only] The URL of the network to which all instances
16279	// in the instance group belong. If your instance has multiple network
16280	// interfaces, then the network and subnetwork fields only refer to the
16281	// network and subnet used by your primary interface (nic0).
16282	Network string `json:"network,omitempty"`
16283
16284	// Region: [Output Only] The URL of the region where the instance group
16285	// is located (for regional resources).
16286	Region string `json:"region,omitempty"`
16287
16288	// SelfLink: [Output Only] The URL for this instance group. The server
16289	// generates this URL.
16290	SelfLink string `json:"selfLink,omitempty"`
16291
16292	// Size: [Output Only] The total number of instances in the instance
16293	// group.
16294	Size int64 `json:"size,omitempty"`
16295
16296	// Subnetwork: [Output Only] The URL of the subnetwork to which all
16297	// instances in the instance group belong. If your instance has multiple
16298	// network interfaces, then the network and subnetwork fields only refer
16299	// to the network and subnet used by your primary interface (nic0).
16300	Subnetwork string `json:"subnetwork,omitempty"`
16301
16302	// Zone: [Output Only] The URL of the zone where the instance group is
16303	// located (for zonal resources).
16304	Zone string `json:"zone,omitempty"`
16305
16306	// ServerResponse contains the HTTP response code and headers from the
16307	// server.
16308	googleapi.ServerResponse `json:"-"`
16309
16310	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
16311	// to unconditionally include in API requests. By default, fields with
16312	// empty or default values are omitted from API requests. However, any
16313	// non-pointer, non-interface field appearing in ForceSendFields will be
16314	// sent to the server regardless of whether the field is empty or not.
16315	// This may be used to include empty fields in Patch requests.
16316	ForceSendFields []string `json:"-"`
16317
16318	// NullFields is a list of field names (e.g. "CreationTimestamp") to
16319	// include in API requests with the JSON null value. By default, fields
16320	// with empty values are omitted from API requests. However, any field
16321	// with an empty value appearing in NullFields will be sent to the
16322	// server as null. It is an error if a field in this list has a
16323	// non-empty value. This may be used to include null fields in Patch
16324	// requests.
16325	NullFields []string `json:"-"`
16326}
16327
16328func (s *InstanceGroup) MarshalJSON() ([]byte, error) {
16329	type NoMethod InstanceGroup
16330	raw := NoMethod(*s)
16331	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16332}
16333
16334type InstanceGroupAggregatedList struct {
16335	// Id: [Output Only] Unique identifier for the resource; defined by the
16336	// server.
16337	Id string `json:"id,omitempty"`
16338
16339	// Items: A list of InstanceGroupsScopedList resources.
16340	Items map[string]InstanceGroupsScopedList `json:"items,omitempty"`
16341
16342	// Kind: [Output Only] The resource type, which is always
16343	// compute#instanceGroupAggregatedList for aggregated lists of instance
16344	// groups.
16345	Kind string `json:"kind,omitempty"`
16346
16347	// NextPageToken: [Output Only] This token allows you to get the next
16348	// page of results for list requests. If the number of results is larger
16349	// than maxResults, use the nextPageToken as a value for the query
16350	// parameter pageToken in the next list request. Subsequent list
16351	// requests will have their own nextPageToken to continue paging through
16352	// the results.
16353	NextPageToken string `json:"nextPageToken,omitempty"`
16354
16355	// SelfLink: [Output Only] Server-defined URL for this resource.
16356	SelfLink string `json:"selfLink,omitempty"`
16357
16358	// Unreachables: [Output Only] Unreachable resources.
16359	Unreachables []string `json:"unreachables,omitempty"`
16360
16361	// Warning: [Output Only] Informational warning message.
16362	Warning *InstanceGroupAggregatedListWarning `json:"warning,omitempty"`
16363
16364	// ServerResponse contains the HTTP response code and headers from the
16365	// server.
16366	googleapi.ServerResponse `json:"-"`
16367
16368	// ForceSendFields is a list of field names (e.g. "Id") to
16369	// unconditionally include in API requests. By default, fields with
16370	// empty or default values are omitted from API requests. However, any
16371	// non-pointer, non-interface field appearing in ForceSendFields will be
16372	// sent to the server regardless of whether the field is empty or not.
16373	// This may be used to include empty fields in Patch requests.
16374	ForceSendFields []string `json:"-"`
16375
16376	// NullFields is a list of field names (e.g. "Id") to include in API
16377	// requests with the JSON null value. By default, fields with empty
16378	// values are omitted from API requests. However, any field with an
16379	// empty value appearing in NullFields will be sent to the server as
16380	// null. It is an error if a field in this list has a non-empty value.
16381	// This may be used to include null fields in Patch requests.
16382	NullFields []string `json:"-"`
16383}
16384
16385func (s *InstanceGroupAggregatedList) MarshalJSON() ([]byte, error) {
16386	type NoMethod InstanceGroupAggregatedList
16387	raw := NoMethod(*s)
16388	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16389}
16390
16391// InstanceGroupAggregatedListWarning: [Output Only] Informational
16392// warning message.
16393type InstanceGroupAggregatedListWarning struct {
16394	// Code: [Output Only] A warning code, if applicable. For example,
16395	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16396	// the response.
16397	//
16398	// Possible values:
16399	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
16400	// changes made by a failed operation.
16401	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
16402	// created.
16403	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
16404	// resources has a type marked as deprecated
16405	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
16406	// that is larger than image size.
16407	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
16408	// resources has a type marked as experimental
16409	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
16410	// call
16411	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
16412	// overridden. Deprecated unused field.
16413	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
16414	// injected kernel, which is deprecated.
16415	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
16416	// exceedingly large number of resources
16417	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
16418	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
16419	// not assigned to an instance on the network.
16420	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
16421	// ip forward.
16422	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
16423	// refers to an instance that does not exist.
16424	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
16425	// URL refers to an instance that is not on the same network as the
16426	// route.
16427	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
16428	// have a status of RUNNING.
16429	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
16430	// continue the process despite the mentioned error.
16431	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
16432	// page.
16433	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
16434	// missing due to errors
16435	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
16436	// that requires a TOS they have not accepted.
16437	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
16438	// resource is in use.
16439	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
16440	// auto-delete could not be deleted because they were in use.
16441	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
16442	// ignored.
16443	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
16444	// instance group manager is valid as such, but its application does not
16445	// make a lot of sense, because it allows only single instance in
16446	// instance group.
16447	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
16448	// are present
16449	//   "UNREACHABLE" - A given scope cannot be reached.
16450	Code string `json:"code,omitempty"`
16451
16452	// Data: [Output Only] Metadata about this warning in key: value format.
16453	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
16454	// }
16455	Data []*InstanceGroupAggregatedListWarningData `json:"data,omitempty"`
16456
16457	// Message: [Output Only] A human-readable description of the warning
16458	// code.
16459	Message string `json:"message,omitempty"`
16460
16461	// ForceSendFields is a list of field names (e.g. "Code") to
16462	// unconditionally include in API requests. By default, fields with
16463	// empty or default values are omitted from API requests. However, any
16464	// non-pointer, non-interface field appearing in ForceSendFields will be
16465	// sent to the server regardless of whether the field is empty or not.
16466	// This may be used to include empty fields in Patch requests.
16467	ForceSendFields []string `json:"-"`
16468
16469	// NullFields is a list of field names (e.g. "Code") to include in API
16470	// requests with the JSON null value. By default, fields with empty
16471	// values are omitted from API requests. However, any field with an
16472	// empty value appearing in NullFields will be sent to the server as
16473	// null. It is an error if a field in this list has a non-empty value.
16474	// This may be used to include null fields in Patch requests.
16475	NullFields []string `json:"-"`
16476}
16477
16478func (s *InstanceGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
16479	type NoMethod InstanceGroupAggregatedListWarning
16480	raw := NoMethod(*s)
16481	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16482}
16483
16484type InstanceGroupAggregatedListWarningData struct {
16485	// Key: [Output Only] A key that provides more detail on the warning
16486	// being returned. For example, for warnings where there are no results
16487	// in a list request for a particular zone, this key might be scope and
16488	// the key value might be the zone name. Other examples might be a key
16489	// indicating a deprecated resource and a suggested replacement, or a
16490	// warning about invalid network settings (for example, if an instance
16491	// attempts to perform IP forwarding but is not enabled for IP
16492	// forwarding).
16493	Key string `json:"key,omitempty"`
16494
16495	// Value: [Output Only] A warning data value corresponding to the key.
16496	Value string `json:"value,omitempty"`
16497
16498	// ForceSendFields is a list of field names (e.g. "Key") to
16499	// unconditionally include in API requests. By default, fields with
16500	// empty or default values are omitted from API requests. However, any
16501	// non-pointer, non-interface field appearing in ForceSendFields will be
16502	// sent to the server regardless of whether the field is empty or not.
16503	// This may be used to include empty fields in Patch requests.
16504	ForceSendFields []string `json:"-"`
16505
16506	// NullFields is a list of field names (e.g. "Key") to include in API
16507	// requests with the JSON null value. By default, fields with empty
16508	// values are omitted from API requests. However, any field with an
16509	// empty value appearing in NullFields will be sent to the server as
16510	// null. It is an error if a field in this list has a non-empty value.
16511	// This may be used to include null fields in Patch requests.
16512	NullFields []string `json:"-"`
16513}
16514
16515func (s *InstanceGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
16516	type NoMethod InstanceGroupAggregatedListWarningData
16517	raw := NoMethod(*s)
16518	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16519}
16520
16521// InstanceGroupList: A list of InstanceGroup resources.
16522type InstanceGroupList struct {
16523	// Id: [Output Only] Unique identifier for the resource; defined by the
16524	// server.
16525	Id string `json:"id,omitempty"`
16526
16527	// Items: A list of InstanceGroup resources.
16528	Items []*InstanceGroup `json:"items,omitempty"`
16529
16530	// Kind: [Output Only] The resource type, which is always
16531	// compute#instanceGroupList for instance group lists.
16532	Kind string `json:"kind,omitempty"`
16533
16534	// NextPageToken: [Output Only] This token allows you to get the next
16535	// page of results for list requests. If the number of results is larger
16536	// than maxResults, use the nextPageToken as a value for the query
16537	// parameter pageToken in the next list request. Subsequent list
16538	// requests will have their own nextPageToken to continue paging through
16539	// the results.
16540	NextPageToken string `json:"nextPageToken,omitempty"`
16541
16542	// SelfLink: [Output Only] Server-defined URL for this resource.
16543	SelfLink string `json:"selfLink,omitempty"`
16544
16545	// Warning: [Output Only] Informational warning message.
16546	Warning *InstanceGroupListWarning `json:"warning,omitempty"`
16547
16548	// ServerResponse contains the HTTP response code and headers from the
16549	// server.
16550	googleapi.ServerResponse `json:"-"`
16551
16552	// ForceSendFields is a list of field names (e.g. "Id") to
16553	// unconditionally include in API requests. By default, fields with
16554	// empty or default values are omitted from API requests. However, any
16555	// non-pointer, non-interface field appearing in ForceSendFields will be
16556	// sent to the server regardless of whether the field is empty or not.
16557	// This may be used to include empty fields in Patch requests.
16558	ForceSendFields []string `json:"-"`
16559
16560	// NullFields is a list of field names (e.g. "Id") to include in API
16561	// requests with the JSON null value. By default, fields with empty
16562	// values are omitted from API requests. However, any field with an
16563	// empty value appearing in NullFields will be sent to the server as
16564	// null. It is an error if a field in this list has a non-empty value.
16565	// This may be used to include null fields in Patch requests.
16566	NullFields []string `json:"-"`
16567}
16568
16569func (s *InstanceGroupList) MarshalJSON() ([]byte, error) {
16570	type NoMethod InstanceGroupList
16571	raw := NoMethod(*s)
16572	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16573}
16574
16575// InstanceGroupListWarning: [Output Only] Informational warning
16576// message.
16577type InstanceGroupListWarning struct {
16578	// Code: [Output Only] A warning code, if applicable. For example,
16579	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16580	// the response.
16581	//
16582	// Possible values:
16583	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
16584	// changes made by a failed operation.
16585	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
16586	// created.
16587	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
16588	// resources has a type marked as deprecated
16589	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
16590	// that is larger than image size.
16591	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
16592	// resources has a type marked as experimental
16593	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
16594	// call
16595	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
16596	// overridden. Deprecated unused field.
16597	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
16598	// injected kernel, which is deprecated.
16599	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
16600	// exceedingly large number of resources
16601	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
16602	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
16603	// not assigned to an instance on the network.
16604	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
16605	// ip forward.
16606	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
16607	// refers to an instance that does not exist.
16608	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
16609	// URL refers to an instance that is not on the same network as the
16610	// route.
16611	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
16612	// have a status of RUNNING.
16613	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
16614	// continue the process despite the mentioned error.
16615	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
16616	// page.
16617	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
16618	// missing due to errors
16619	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
16620	// that requires a TOS they have not accepted.
16621	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
16622	// resource is in use.
16623	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
16624	// auto-delete could not be deleted because they were in use.
16625	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
16626	// ignored.
16627	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
16628	// instance group manager is valid as such, but its application does not
16629	// make a lot of sense, because it allows only single instance in
16630	// instance group.
16631	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
16632	// are present
16633	//   "UNREACHABLE" - A given scope cannot be reached.
16634	Code string `json:"code,omitempty"`
16635
16636	// Data: [Output Only] Metadata about this warning in key: value format.
16637	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
16638	// }
16639	Data []*InstanceGroupListWarningData `json:"data,omitempty"`
16640
16641	// Message: [Output Only] A human-readable description of the warning
16642	// code.
16643	Message string `json:"message,omitempty"`
16644
16645	// ForceSendFields is a list of field names (e.g. "Code") to
16646	// unconditionally include in API requests. By default, fields with
16647	// empty or default values are omitted from API requests. However, any
16648	// non-pointer, non-interface field appearing in ForceSendFields will be
16649	// sent to the server regardless of whether the field is empty or not.
16650	// This may be used to include empty fields in Patch requests.
16651	ForceSendFields []string `json:"-"`
16652
16653	// NullFields is a list of field names (e.g. "Code") to include in API
16654	// requests with the JSON null value. By default, fields with empty
16655	// values are omitted from API requests. However, any field with an
16656	// empty value appearing in NullFields will be sent to the server as
16657	// null. It is an error if a field in this list has a non-empty value.
16658	// This may be used to include null fields in Patch requests.
16659	NullFields []string `json:"-"`
16660}
16661
16662func (s *InstanceGroupListWarning) MarshalJSON() ([]byte, error) {
16663	type NoMethod InstanceGroupListWarning
16664	raw := NoMethod(*s)
16665	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16666}
16667
16668type InstanceGroupListWarningData struct {
16669	// Key: [Output Only] A key that provides more detail on the warning
16670	// being returned. For example, for warnings where there are no results
16671	// in a list request for a particular zone, this key might be scope and
16672	// the key value might be the zone name. Other examples might be a key
16673	// indicating a deprecated resource and a suggested replacement, or a
16674	// warning about invalid network settings (for example, if an instance
16675	// attempts to perform IP forwarding but is not enabled for IP
16676	// forwarding).
16677	Key string `json:"key,omitempty"`
16678
16679	// Value: [Output Only] A warning data value corresponding to the key.
16680	Value string `json:"value,omitempty"`
16681
16682	// ForceSendFields is a list of field names (e.g. "Key") to
16683	// unconditionally include in API requests. By default, fields with
16684	// empty or default values are omitted from API requests. However, any
16685	// non-pointer, non-interface field appearing in ForceSendFields will be
16686	// sent to the server regardless of whether the field is empty or not.
16687	// This may be used to include empty fields in Patch requests.
16688	ForceSendFields []string `json:"-"`
16689
16690	// NullFields is a list of field names (e.g. "Key") to include in API
16691	// requests with the JSON null value. By default, fields with empty
16692	// values are omitted from API requests. However, any field with an
16693	// empty value appearing in NullFields will be sent to the server as
16694	// null. It is an error if a field in this list has a non-empty value.
16695	// This may be used to include null fields in Patch requests.
16696	NullFields []string `json:"-"`
16697}
16698
16699func (s *InstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
16700	type NoMethod InstanceGroupListWarningData
16701	raw := NoMethod(*s)
16702	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16703}
16704
16705// InstanceGroupManager: Represents a Managed Instance Group resource.
16706// An instance group is a collection of VM instances that you can manage
16707// as a single entity. For more information, read Instance groups. For
16708// zonal Managed Instance Group, use the instanceGroupManagers resource.
16709// For regional Managed Instance Group, use the
16710// regionInstanceGroupManagers resource.
16711type InstanceGroupManager struct {
16712	// AutoHealingPolicies: The autohealing policy for this managed instance
16713	// group. You can specify only one value.
16714	AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"`
16715
16716	// BaseInstanceName: The base instance name to use for instances in this
16717	// group. The value must be 1-58 characters long. Instances are named by
16718	// appending a hyphen and a random four-character string to the base
16719	// instance name. The base instance name must comply with RFC1035.
16720	BaseInstanceName string `json:"baseInstanceName,omitempty"`
16721
16722	// CreationTimestamp: [Output Only] The creation timestamp for this
16723	// managed instance group in RFC3339 text format.
16724	CreationTimestamp string `json:"creationTimestamp,omitempty"`
16725
16726	// CurrentActions: [Output Only] The list of instance actions and the
16727	// number of instances in this managed instance group that are scheduled
16728	// for each of those actions.
16729	CurrentActions *InstanceGroupManagerActionsSummary `json:"currentActions,omitempty"`
16730
16731	// Description: An optional description of this resource.
16732	Description string `json:"description,omitempty"`
16733
16734	// DistributionPolicy: Policy specifying the intended distribution of
16735	// managed instances across zones in a regional managed instance group.
16736	DistributionPolicy *DistributionPolicy `json:"distributionPolicy,omitempty"`
16737
16738	// Fingerprint: Fingerprint of this resource. This field may be used in
16739	// optimistic locking. It will be ignored when inserting an
16740	// InstanceGroupManager. An up-to-date fingerprint must be provided in
16741	// order to update the InstanceGroupManager, otherwise the request will
16742	// fail with error 412 conditionNotMet. To see the latest fingerprint,
16743	// make a get() request to retrieve an InstanceGroupManager.
16744	Fingerprint string `json:"fingerprint,omitempty"`
16745
16746	// Id: [Output Only] A unique identifier for this resource type. The
16747	// server generates this identifier.
16748	Id uint64 `json:"id,omitempty,string"`
16749
16750	// InstanceGroup: [Output Only] The URL of the Instance Group resource.
16751	InstanceGroup string `json:"instanceGroup,omitempty"`
16752
16753	// InstanceTemplate: The URL of the instance template that is specified
16754	// for this managed instance group. The group uses this template to
16755	// create all new instances in the managed instance group. The templates
16756	// for existing instances in the group do not change unless you run
16757	// recreateInstances, run applyUpdatesToInstances, or set the group's
16758	// updatePolicy.type to PROACTIVE.
16759	InstanceTemplate string `json:"instanceTemplate,omitempty"`
16760
16761	// Kind: [Output Only] The resource type, which is always
16762	// compute#instanceGroupManager for managed instance groups.
16763	Kind string `json:"kind,omitempty"`
16764
16765	// Name: The name of the managed instance group. The name must be 1-63
16766	// characters long, and comply with RFC1035.
16767	Name string `json:"name,omitempty"`
16768
16769	// NamedPorts: Named ports configured for the Instance Groups
16770	// complementary to this Instance Group Manager.
16771	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
16772
16773	// Region: [Output Only] The URL of the region where the managed
16774	// instance group resides (for regional resources).
16775	Region string `json:"region,omitempty"`
16776
16777	// SelfLink: [Output Only] The URL for this managed instance group. The
16778	// server defines this URL.
16779	SelfLink string `json:"selfLink,omitempty"`
16780
16781	// StatefulPolicy: Stateful configuration for this Instanced Group
16782	// Manager
16783	StatefulPolicy *StatefulPolicy `json:"statefulPolicy,omitempty"`
16784
16785	// Status: [Output Only] The status of this managed instance group.
16786	Status *InstanceGroupManagerStatus `json:"status,omitempty"`
16787
16788	// TargetPools: The URLs for all TargetPool resources to which instances
16789	// in the instanceGroup field are added. The target pools automatically
16790	// apply to all of the instances in the managed instance group.
16791	TargetPools []string `json:"targetPools,omitempty"`
16792
16793	// TargetSize: The target number of running instances for this managed
16794	// instance group. You can reduce this number by using the
16795	// instanceGroupManager deleteInstances or abandonInstances methods.
16796	// Resizing the group also changes this number.
16797	TargetSize int64 `json:"targetSize,omitempty"`
16798
16799	// UpdatePolicy: The update policy for this managed instance group.
16800	UpdatePolicy *InstanceGroupManagerUpdatePolicy `json:"updatePolicy,omitempty"`
16801
16802	// Versions: Specifies the instance templates used by this managed
16803	// instance group to create instances. Each version is defined by an
16804	// instanceTemplate and a name. Every version can appear at most once
16805	// per instance group. This field overrides the top-level
16806	// instanceTemplate field. Read more about the relationships between
16807	// these fields. Exactly one version must leave the targetSize field
16808	// unset. That version will be applied to all remaining instances. For
16809	// more information, read about canary updates.
16810	Versions []*InstanceGroupManagerVersion `json:"versions,omitempty"`
16811
16812	// Zone: [Output Only] The URL of a zone where the managed instance
16813	// group is located (for zonal resources).
16814	Zone string `json:"zone,omitempty"`
16815
16816	// ServerResponse contains the HTTP response code and headers from the
16817	// server.
16818	googleapi.ServerResponse `json:"-"`
16819
16820	// ForceSendFields is a list of field names (e.g. "AutoHealingPolicies")
16821	// to unconditionally include in API requests. By default, fields with
16822	// empty or default values are omitted from API requests. However, any
16823	// non-pointer, non-interface field appearing in ForceSendFields will be
16824	// sent to the server regardless of whether the field is empty or not.
16825	// This may be used to include empty fields in Patch requests.
16826	ForceSendFields []string `json:"-"`
16827
16828	// NullFields is a list of field names (e.g. "AutoHealingPolicies") to
16829	// include in API requests with the JSON null value. By default, fields
16830	// with empty values are omitted from API requests. However, any field
16831	// with an empty value appearing in NullFields will be sent to the
16832	// server as null. It is an error if a field in this list has a
16833	// non-empty value. This may be used to include null fields in Patch
16834	// requests.
16835	NullFields []string `json:"-"`
16836}
16837
16838func (s *InstanceGroupManager) MarshalJSON() ([]byte, error) {
16839	type NoMethod InstanceGroupManager
16840	raw := NoMethod(*s)
16841	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16842}
16843
16844type InstanceGroupManagerActionsSummary struct {
16845	// Abandoning: [Output Only] The total number of instances in the
16846	// managed instance group that are scheduled to be abandoned. Abandoning
16847	// an instance removes it from the managed instance group without
16848	// deleting it.
16849	Abandoning int64 `json:"abandoning,omitempty"`
16850
16851	// Creating: [Output Only] The number of instances in the managed
16852	// instance group that are scheduled to be created or are currently
16853	// being created. If the group fails to create any of these instances,
16854	// it tries again until it creates the instance successfully. If you
16855	// have disabled creation retries, this field will not be populated;
16856	// instead, the creatingWithoutRetries field will be populated.
16857	Creating int64 `json:"creating,omitempty"`
16858
16859	// CreatingWithoutRetries: [Output Only] The number of instances that
16860	// the managed instance group will attempt to create. The group attempts
16861	// to create each instance only once. If the group fails to create any
16862	// of these instances, it decreases the group's targetSize value
16863	// accordingly.
16864	CreatingWithoutRetries int64 `json:"creatingWithoutRetries,omitempty"`
16865
16866	// Deleting: [Output Only] The number of instances in the managed
16867	// instance group that are scheduled to be deleted or are currently
16868	// being deleted.
16869	Deleting int64 `json:"deleting,omitempty"`
16870
16871	// None: [Output Only] The number of instances in the managed instance
16872	// group that are running and have no scheduled actions.
16873	None int64 `json:"none,omitempty"`
16874
16875	// Recreating: [Output Only] The number of instances in the managed
16876	// instance group that are scheduled to be recreated or are currently
16877	// being being recreated. Recreating an instance deletes the existing
16878	// root persistent disk and creates a new disk from the image that is
16879	// defined in the instance template.
16880	Recreating int64 `json:"recreating,omitempty"`
16881
16882	// Refreshing: [Output Only] The number of instances in the managed
16883	// instance group that are being reconfigured with properties that do
16884	// not require a restart or a recreate action. For example, setting or
16885	// removing target pools for the instance.
16886	Refreshing int64 `json:"refreshing,omitempty"`
16887
16888	// Restarting: [Output Only] The number of instances in the managed
16889	// instance group that are scheduled to be restarted or are currently
16890	// being restarted.
16891	Restarting int64 `json:"restarting,omitempty"`
16892
16893	// Verifying: [Output Only] The number of instances in the managed
16894	// instance group that are being verified. See the
16895	// managedInstances[].currentAction property in the listManagedInstances
16896	// method documentation.
16897	Verifying int64 `json:"verifying,omitempty"`
16898
16899	// ForceSendFields is a list of field names (e.g. "Abandoning") to
16900	// unconditionally include in API requests. By default, fields with
16901	// empty or default values are omitted from API requests. However, any
16902	// non-pointer, non-interface field appearing in ForceSendFields will be
16903	// sent to the server regardless of whether the field is empty or not.
16904	// This may be used to include empty fields in Patch requests.
16905	ForceSendFields []string `json:"-"`
16906
16907	// NullFields is a list of field names (e.g. "Abandoning") to include in
16908	// API requests with the JSON null value. By default, fields with empty
16909	// values are omitted from API requests. However, any field with an
16910	// empty value appearing in NullFields will be sent to the server as
16911	// null. It is an error if a field in this list has a non-empty value.
16912	// This may be used to include null fields in Patch requests.
16913	NullFields []string `json:"-"`
16914}
16915
16916func (s *InstanceGroupManagerActionsSummary) MarshalJSON() ([]byte, error) {
16917	type NoMethod InstanceGroupManagerActionsSummary
16918	raw := NoMethod(*s)
16919	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16920}
16921
16922type InstanceGroupManagerAggregatedList struct {
16923	// Id: [Output Only] Unique identifier for the resource; defined by the
16924	// server.
16925	Id string `json:"id,omitempty"`
16926
16927	// Items: A list of InstanceGroupManagersScopedList resources.
16928	Items map[string]InstanceGroupManagersScopedList `json:"items,omitempty"`
16929
16930	// Kind: [Output Only] The resource type, which is always
16931	// compute#instanceGroupManagerAggregatedList for an aggregated list of
16932	// managed instance groups.
16933	Kind string `json:"kind,omitempty"`
16934
16935	// NextPageToken: [Output Only] This token allows you to get the next
16936	// page of results for list requests. If the number of results is larger
16937	// than maxResults, use the nextPageToken as a value for the query
16938	// parameter pageToken in the next list request. Subsequent list
16939	// requests will have their own nextPageToken to continue paging through
16940	// the results.
16941	NextPageToken string `json:"nextPageToken,omitempty"`
16942
16943	// SelfLink: [Output Only] Server-defined URL for this resource.
16944	SelfLink string `json:"selfLink,omitempty"`
16945
16946	// Unreachables: [Output Only] Unreachable resources.
16947	Unreachables []string `json:"unreachables,omitempty"`
16948
16949	// Warning: [Output Only] Informational warning message.
16950	Warning *InstanceGroupManagerAggregatedListWarning `json:"warning,omitempty"`
16951
16952	// ServerResponse contains the HTTP response code and headers from the
16953	// server.
16954	googleapi.ServerResponse `json:"-"`
16955
16956	// ForceSendFields is a list of field names (e.g. "Id") to
16957	// unconditionally include in API requests. By default, fields with
16958	// empty or default values are omitted from API requests. However, any
16959	// non-pointer, non-interface field appearing in ForceSendFields will be
16960	// sent to the server regardless of whether the field is empty or not.
16961	// This may be used to include empty fields in Patch requests.
16962	ForceSendFields []string `json:"-"`
16963
16964	// NullFields is a list of field names (e.g. "Id") to include in API
16965	// requests with the JSON null value. By default, fields with empty
16966	// values are omitted from API requests. However, any field with an
16967	// empty value appearing in NullFields will be sent to the server as
16968	// null. It is an error if a field in this list has a non-empty value.
16969	// This may be used to include null fields in Patch requests.
16970	NullFields []string `json:"-"`
16971}
16972
16973func (s *InstanceGroupManagerAggregatedList) MarshalJSON() ([]byte, error) {
16974	type NoMethod InstanceGroupManagerAggregatedList
16975	raw := NoMethod(*s)
16976	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16977}
16978
16979// InstanceGroupManagerAggregatedListWarning: [Output Only]
16980// Informational warning message.
16981type InstanceGroupManagerAggregatedListWarning struct {
16982	// Code: [Output Only] A warning code, if applicable. For example,
16983	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16984	// the response.
16985	//
16986	// Possible values:
16987	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
16988	// changes made by a failed operation.
16989	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
16990	// created.
16991	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
16992	// resources has a type marked as deprecated
16993	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
16994	// that is larger than image size.
16995	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
16996	// resources has a type marked as experimental
16997	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
16998	// call
16999	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
17000	// overridden. Deprecated unused field.
17001	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
17002	// injected kernel, which is deprecated.
17003	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
17004	// exceedingly large number of resources
17005	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
17006	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
17007	// not assigned to an instance on the network.
17008	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
17009	// ip forward.
17010	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
17011	// refers to an instance that does not exist.
17012	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
17013	// URL refers to an instance that is not on the same network as the
17014	// route.
17015	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
17016	// have a status of RUNNING.
17017	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
17018	// continue the process despite the mentioned error.
17019	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
17020	// page.
17021	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
17022	// missing due to errors
17023	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
17024	// that requires a TOS they have not accepted.
17025	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
17026	// resource is in use.
17027	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
17028	// auto-delete could not be deleted because they were in use.
17029	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
17030	// ignored.
17031	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
17032	// instance group manager is valid as such, but its application does not
17033	// make a lot of sense, because it allows only single instance in
17034	// instance group.
17035	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
17036	// are present
17037	//   "UNREACHABLE" - A given scope cannot be reached.
17038	Code string `json:"code,omitempty"`
17039
17040	// Data: [Output Only] Metadata about this warning in key: value format.
17041	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
17042	// }
17043	Data []*InstanceGroupManagerAggregatedListWarningData `json:"data,omitempty"`
17044
17045	// Message: [Output Only] A human-readable description of the warning
17046	// code.
17047	Message string `json:"message,omitempty"`
17048
17049	// ForceSendFields is a list of field names (e.g. "Code") to
17050	// unconditionally include in API requests. By default, fields with
17051	// empty or default values are omitted from API requests. However, any
17052	// non-pointer, non-interface field appearing in ForceSendFields will be
17053	// sent to the server regardless of whether the field is empty or not.
17054	// This may be used to include empty fields in Patch requests.
17055	ForceSendFields []string `json:"-"`
17056
17057	// NullFields is a list of field names (e.g. "Code") to include in API
17058	// requests with the JSON null value. By default, fields with empty
17059	// values are omitted from API requests. However, any field with an
17060	// empty value appearing in NullFields will be sent to the server as
17061	// null. It is an error if a field in this list has a non-empty value.
17062	// This may be used to include null fields in Patch requests.
17063	NullFields []string `json:"-"`
17064}
17065
17066func (s *InstanceGroupManagerAggregatedListWarning) MarshalJSON() ([]byte, error) {
17067	type NoMethod InstanceGroupManagerAggregatedListWarning
17068	raw := NoMethod(*s)
17069	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17070}
17071
17072type InstanceGroupManagerAggregatedListWarningData struct {
17073	// Key: [Output Only] A key that provides more detail on the warning
17074	// being returned. For example, for warnings where there are no results
17075	// in a list request for a particular zone, this key might be scope and
17076	// the key value might be the zone name. Other examples might be a key
17077	// indicating a deprecated resource and a suggested replacement, or a
17078	// warning about invalid network settings (for example, if an instance
17079	// attempts to perform IP forwarding but is not enabled for IP
17080	// forwarding).
17081	Key string `json:"key,omitempty"`
17082
17083	// Value: [Output Only] A warning data value corresponding to the key.
17084	Value string `json:"value,omitempty"`
17085
17086	// ForceSendFields is a list of field names (e.g. "Key") to
17087	// unconditionally include in API requests. By default, fields with
17088	// empty or default values are omitted from API requests. However, any
17089	// non-pointer, non-interface field appearing in ForceSendFields will be
17090	// sent to the server regardless of whether the field is empty or not.
17091	// This may be used to include empty fields in Patch requests.
17092	ForceSendFields []string `json:"-"`
17093
17094	// NullFields is a list of field names (e.g. "Key") to include in API
17095	// requests with the JSON null value. By default, fields with empty
17096	// values are omitted from API requests. However, any field with an
17097	// empty value appearing in NullFields will be sent to the server as
17098	// null. It is an error if a field in this list has a non-empty value.
17099	// This may be used to include null fields in Patch requests.
17100	NullFields []string `json:"-"`
17101}
17102
17103func (s *InstanceGroupManagerAggregatedListWarningData) MarshalJSON() ([]byte, error) {
17104	type NoMethod InstanceGroupManagerAggregatedListWarningData
17105	raw := NoMethod(*s)
17106	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17107}
17108
17109type InstanceGroupManagerAutoHealingPolicy struct {
17110	// HealthCheck: The URL for the health check that signals autohealing.
17111	HealthCheck string `json:"healthCheck,omitempty"`
17112
17113	// InitialDelaySec: The number of seconds that the managed instance
17114	// group waits before it applies autohealing policies to new instances
17115	// or recently recreated instances. This initial delay allows instances
17116	// to initialize and run their startup scripts before the instance group
17117	// determines that they are UNHEALTHY. This prevents the managed
17118	// instance group from recreating its instances prematurely. This value
17119	// must be from range [0, 3600].
17120	InitialDelaySec int64 `json:"initialDelaySec,omitempty"`
17121
17122	// ForceSendFields is a list of field names (e.g. "HealthCheck") to
17123	// unconditionally include in API requests. By default, fields with
17124	// empty or default values are omitted from API requests. However, any
17125	// non-pointer, non-interface field appearing in ForceSendFields will be
17126	// sent to the server regardless of whether the field is empty or not.
17127	// This may be used to include empty fields in Patch requests.
17128	ForceSendFields []string `json:"-"`
17129
17130	// NullFields is a list of field names (e.g. "HealthCheck") to include
17131	// in API requests with the JSON null value. By default, fields with
17132	// empty values are omitted from API requests. However, any field with
17133	// an empty value appearing in NullFields will be sent to the server as
17134	// null. It is an error if a field in this list has a non-empty value.
17135	// This may be used to include null fields in Patch requests.
17136	NullFields []string `json:"-"`
17137}
17138
17139func (s *InstanceGroupManagerAutoHealingPolicy) MarshalJSON() ([]byte, error) {
17140	type NoMethod InstanceGroupManagerAutoHealingPolicy
17141	raw := NoMethod(*s)
17142	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17143}
17144
17145// InstanceGroupManagerList: [Output Only] A list of managed instance
17146// groups.
17147type InstanceGroupManagerList struct {
17148	// Id: [Output Only] Unique identifier for the resource; defined by the
17149	// server.
17150	Id string `json:"id,omitempty"`
17151
17152	// Items: A list of InstanceGroupManager resources.
17153	Items []*InstanceGroupManager `json:"items,omitempty"`
17154
17155	// Kind: [Output Only] The resource type, which is always
17156	// compute#instanceGroupManagerList for a list of managed instance
17157	// groups.
17158	Kind string `json:"kind,omitempty"`
17159
17160	// NextPageToken: [Output Only] This token allows you to get the next
17161	// page of results for list requests. If the number of results is larger
17162	// than maxResults, use the nextPageToken as a value for the query
17163	// parameter pageToken in the next list request. Subsequent list
17164	// requests will have their own nextPageToken to continue paging through
17165	// the results.
17166	NextPageToken string `json:"nextPageToken,omitempty"`
17167
17168	// SelfLink: [Output Only] Server-defined URL for this resource.
17169	SelfLink string `json:"selfLink,omitempty"`
17170
17171	// Warning: [Output Only] Informational warning message.
17172	Warning *InstanceGroupManagerListWarning `json:"warning,omitempty"`
17173
17174	// ServerResponse contains the HTTP response code and headers from the
17175	// server.
17176	googleapi.ServerResponse `json:"-"`
17177
17178	// ForceSendFields is a list of field names (e.g. "Id") to
17179	// unconditionally include in API requests. By default, fields with
17180	// empty or default values are omitted from API requests. However, any
17181	// non-pointer, non-interface field appearing in ForceSendFields will be
17182	// sent to the server regardless of whether the field is empty or not.
17183	// This may be used to include empty fields in Patch requests.
17184	ForceSendFields []string `json:"-"`
17185
17186	// NullFields is a list of field names (e.g. "Id") to include in API
17187	// requests with the JSON null value. By default, fields with empty
17188	// values are omitted from API requests. However, any field with an
17189	// empty value appearing in NullFields will be sent to the server as
17190	// null. It is an error if a field in this list has a non-empty value.
17191	// This may be used to include null fields in Patch requests.
17192	NullFields []string `json:"-"`
17193}
17194
17195func (s *InstanceGroupManagerList) MarshalJSON() ([]byte, error) {
17196	type NoMethod InstanceGroupManagerList
17197	raw := NoMethod(*s)
17198	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17199}
17200
17201// InstanceGroupManagerListWarning: [Output Only] Informational warning
17202// message.
17203type InstanceGroupManagerListWarning struct {
17204	// Code: [Output Only] A warning code, if applicable. For example,
17205	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17206	// the response.
17207	//
17208	// Possible values:
17209	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
17210	// changes made by a failed operation.
17211	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
17212	// created.
17213	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
17214	// resources has a type marked as deprecated
17215	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
17216	// that is larger than image size.
17217	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
17218	// resources has a type marked as experimental
17219	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
17220	// call
17221	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
17222	// overridden. Deprecated unused field.
17223	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
17224	// injected kernel, which is deprecated.
17225	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
17226	// exceedingly large number of resources
17227	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
17228	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
17229	// not assigned to an instance on the network.
17230	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
17231	// ip forward.
17232	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
17233	// refers to an instance that does not exist.
17234	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
17235	// URL refers to an instance that is not on the same network as the
17236	// route.
17237	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
17238	// have a status of RUNNING.
17239	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
17240	// continue the process despite the mentioned error.
17241	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
17242	// page.
17243	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
17244	// missing due to errors
17245	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
17246	// that requires a TOS they have not accepted.
17247	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
17248	// resource is in use.
17249	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
17250	// auto-delete could not be deleted because they were in use.
17251	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
17252	// ignored.
17253	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
17254	// instance group manager is valid as such, but its application does not
17255	// make a lot of sense, because it allows only single instance in
17256	// instance group.
17257	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
17258	// are present
17259	//   "UNREACHABLE" - A given scope cannot be reached.
17260	Code string `json:"code,omitempty"`
17261
17262	// Data: [Output Only] Metadata about this warning in key: value format.
17263	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
17264	// }
17265	Data []*InstanceGroupManagerListWarningData `json:"data,omitempty"`
17266
17267	// Message: [Output Only] A human-readable description of the warning
17268	// code.
17269	Message string `json:"message,omitempty"`
17270
17271	// ForceSendFields is a list of field names (e.g. "Code") to
17272	// unconditionally include in API requests. By default, fields with
17273	// empty or default values are omitted from API requests. However, any
17274	// non-pointer, non-interface field appearing in ForceSendFields will be
17275	// sent to the server regardless of whether the field is empty or not.
17276	// This may be used to include empty fields in Patch requests.
17277	ForceSendFields []string `json:"-"`
17278
17279	// NullFields is a list of field names (e.g. "Code") to include in API
17280	// requests with the JSON null value. By default, fields with empty
17281	// values are omitted from API requests. However, any field with an
17282	// empty value appearing in NullFields will be sent to the server as
17283	// null. It is an error if a field in this list has a non-empty value.
17284	// This may be used to include null fields in Patch requests.
17285	NullFields []string `json:"-"`
17286}
17287
17288func (s *InstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
17289	type NoMethod InstanceGroupManagerListWarning
17290	raw := NoMethod(*s)
17291	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17292}
17293
17294type InstanceGroupManagerListWarningData struct {
17295	// Key: [Output Only] A key that provides more detail on the warning
17296	// being returned. For example, for warnings where there are no results
17297	// in a list request for a particular zone, this key might be scope and
17298	// the key value might be the zone name. Other examples might be a key
17299	// indicating a deprecated resource and a suggested replacement, or a
17300	// warning about invalid network settings (for example, if an instance
17301	// attempts to perform IP forwarding but is not enabled for IP
17302	// forwarding).
17303	Key string `json:"key,omitempty"`
17304
17305	// Value: [Output Only] A warning data value corresponding to the key.
17306	Value string `json:"value,omitempty"`
17307
17308	// ForceSendFields is a list of field names (e.g. "Key") to
17309	// unconditionally include in API requests. By default, fields with
17310	// empty or default values are omitted from API requests. However, any
17311	// non-pointer, non-interface field appearing in ForceSendFields will be
17312	// sent to the server regardless of whether the field is empty or not.
17313	// This may be used to include empty fields in Patch requests.
17314	ForceSendFields []string `json:"-"`
17315
17316	// NullFields is a list of field names (e.g. "Key") to include in API
17317	// requests with the JSON null value. By default, fields with empty
17318	// values are omitted from API requests. However, any field with an
17319	// empty value appearing in NullFields will be sent to the server as
17320	// null. It is an error if a field in this list has a non-empty value.
17321	// This may be used to include null fields in Patch requests.
17322	NullFields []string `json:"-"`
17323}
17324
17325func (s *InstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
17326	type NoMethod InstanceGroupManagerListWarningData
17327	raw := NoMethod(*s)
17328	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17329}
17330
17331type InstanceGroupManagerStatus struct {
17332	// Autoscaler: [Output Only] The URL of the Autoscaler that targets this
17333	// instance group manager.
17334	Autoscaler string `json:"autoscaler,omitempty"`
17335
17336	// IsStable: [Output Only] A bit indicating whether the managed instance
17337	// group is in a stable state. A stable state means that: none of the
17338	// instances in the managed instance group is currently undergoing any
17339	// type of change (for example, creation, restart, or deletion); no
17340	// future changes are scheduled for instances in the managed instance
17341	// group; and the managed instance group itself is not being modified.
17342	IsStable bool `json:"isStable,omitempty"`
17343
17344	// Stateful: [Output Only] Stateful status of the given Instance Group
17345	// Manager.
17346	Stateful *InstanceGroupManagerStatusStateful `json:"stateful,omitempty"`
17347
17348	// VersionTarget: [Output Only] A status of consistency of Instances'
17349	// versions with their target version specified by version field on
17350	// Instance Group Manager.
17351	VersionTarget *InstanceGroupManagerStatusVersionTarget `json:"versionTarget,omitempty"`
17352
17353	// ForceSendFields is a list of field names (e.g. "Autoscaler") to
17354	// unconditionally include in API requests. By default, fields with
17355	// empty or default values are omitted from API requests. However, any
17356	// non-pointer, non-interface field appearing in ForceSendFields will be
17357	// sent to the server regardless of whether the field is empty or not.
17358	// This may be used to include empty fields in Patch requests.
17359	ForceSendFields []string `json:"-"`
17360
17361	// NullFields is a list of field names (e.g. "Autoscaler") to include in
17362	// API requests with the JSON null value. By default, fields with empty
17363	// values are omitted from API requests. However, any field with an
17364	// empty value appearing in NullFields will be sent to the server as
17365	// null. It is an error if a field in this list has a non-empty value.
17366	// This may be used to include null fields in Patch requests.
17367	NullFields []string `json:"-"`
17368}
17369
17370func (s *InstanceGroupManagerStatus) MarshalJSON() ([]byte, error) {
17371	type NoMethod InstanceGroupManagerStatus
17372	raw := NoMethod(*s)
17373	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17374}
17375
17376type InstanceGroupManagerStatusStateful struct {
17377	// HasStatefulConfig: [Output Only] A bit indicating whether the managed
17378	// instance group has stateful configuration, that is, if you have
17379	// configured any items in a stateful policy or in per-instance configs.
17380	// The group might report that it has no stateful config even when there
17381	// is still some preserved state on a managed instance, for example, if
17382	// you have deleted all PICs but not yet applied those deletions.
17383	HasStatefulConfig bool `json:"hasStatefulConfig,omitempty"`
17384
17385	// PerInstanceConfigs: [Output Only] Status of per-instance configs on
17386	// the instance.
17387	PerInstanceConfigs *InstanceGroupManagerStatusStatefulPerInstanceConfigs `json:"perInstanceConfigs,omitempty"`
17388
17389	// ForceSendFields is a list of field names (e.g. "HasStatefulConfig")
17390	// to unconditionally include in API requests. By default, fields with
17391	// empty or default values are omitted from API requests. However, any
17392	// non-pointer, non-interface field appearing in ForceSendFields will be
17393	// sent to the server regardless of whether the field is empty or not.
17394	// This may be used to include empty fields in Patch requests.
17395	ForceSendFields []string `json:"-"`
17396
17397	// NullFields is a list of field names (e.g. "HasStatefulConfig") to
17398	// include in API requests with the JSON null value. By default, fields
17399	// with empty values are omitted from API requests. However, any field
17400	// with an empty value appearing in NullFields will be sent to the
17401	// server as null. It is an error if a field in this list has a
17402	// non-empty value. This may be used to include null fields in Patch
17403	// requests.
17404	NullFields []string `json:"-"`
17405}
17406
17407func (s *InstanceGroupManagerStatusStateful) MarshalJSON() ([]byte, error) {
17408	type NoMethod InstanceGroupManagerStatusStateful
17409	raw := NoMethod(*s)
17410	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17411}
17412
17413type InstanceGroupManagerStatusStatefulPerInstanceConfigs struct {
17414	// AllEffective: A bit indicating if all of the group's per-instance
17415	// configs (listed in the output of a listPerInstanceConfigs API call)
17416	// have status EFFECTIVE or there are no per-instance-configs.
17417	AllEffective bool `json:"allEffective,omitempty"`
17418
17419	// ForceSendFields is a list of field names (e.g. "AllEffective") to
17420	// unconditionally include in API requests. By default, fields with
17421	// empty or default values are omitted from API requests. However, any
17422	// non-pointer, non-interface field appearing in ForceSendFields will be
17423	// sent to the server regardless of whether the field is empty or not.
17424	// This may be used to include empty fields in Patch requests.
17425	ForceSendFields []string `json:"-"`
17426
17427	// NullFields is a list of field names (e.g. "AllEffective") to include
17428	// in API requests with the JSON null value. By default, fields with
17429	// empty values are omitted from API requests. However, any field with
17430	// an empty value appearing in NullFields will be sent to the server as
17431	// null. It is an error if a field in this list has a non-empty value.
17432	// This may be used to include null fields in Patch requests.
17433	NullFields []string `json:"-"`
17434}
17435
17436func (s *InstanceGroupManagerStatusStatefulPerInstanceConfigs) MarshalJSON() ([]byte, error) {
17437	type NoMethod InstanceGroupManagerStatusStatefulPerInstanceConfigs
17438	raw := NoMethod(*s)
17439	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17440}
17441
17442type InstanceGroupManagerStatusVersionTarget struct {
17443	// IsReached: [Output Only] A bit indicating whether version target has
17444	// been reached in this managed instance group, i.e. all instances are
17445	// in their target version. Instances' target version are specified by
17446	// version field on Instance Group Manager.
17447	IsReached bool `json:"isReached,omitempty"`
17448
17449	// ForceSendFields is a list of field names (e.g. "IsReached") to
17450	// unconditionally include in API requests. By default, fields with
17451	// empty or default values are omitted from API requests. However, any
17452	// non-pointer, non-interface field appearing in ForceSendFields will be
17453	// sent to the server regardless of whether the field is empty or not.
17454	// This may be used to include empty fields in Patch requests.
17455	ForceSendFields []string `json:"-"`
17456
17457	// NullFields is a list of field names (e.g. "IsReached") to include in
17458	// API requests with the JSON null value. By default, fields with empty
17459	// values are omitted from API requests. However, any field with an
17460	// empty value appearing in NullFields will be sent to the server as
17461	// null. It is an error if a field in this list has a non-empty value.
17462	// This may be used to include null fields in Patch requests.
17463	NullFields []string `json:"-"`
17464}
17465
17466func (s *InstanceGroupManagerStatusVersionTarget) MarshalJSON() ([]byte, error) {
17467	type NoMethod InstanceGroupManagerStatusVersionTarget
17468	raw := NoMethod(*s)
17469	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17470}
17471
17472type InstanceGroupManagerUpdatePolicy struct {
17473	// InstanceRedistributionType: The instance redistribution policy for
17474	// regional managed instance groups. Valid values are: - PROACTIVE
17475	// (default): The group attempts to maintain an even distribution of VM
17476	// instances across zones in the region. - NONE: For non-autoscaled
17477	// groups, proactive redistribution is disabled.
17478	//
17479	// Possible values:
17480	//   "NONE" - No action is being proactively performed in order to bring
17481	// this IGM to its target instance distribution.
17482	//   "PROACTIVE" - This IGM will actively converge to its target
17483	// instance distribution.
17484	InstanceRedistributionType string `json:"instanceRedistributionType,omitempty"`
17485
17486	// MaxSurge: The maximum number of instances that can be created above
17487	// the specified targetSize during the update process. This value can be
17488	// either a fixed number or, if the group has 10 or more instances, a
17489	// percentage. If you set a percentage, the number of instances is
17490	// rounded if necessary. The default value for maxSurge is a fixed value
17491	// equal to the number of zones in which the managed instance group
17492	// operates. At least one of either maxSurge or maxUnavailable must be
17493	// greater than 0. Learn more about maxSurge.
17494	MaxSurge *FixedOrPercent `json:"maxSurge,omitempty"`
17495
17496	// MaxUnavailable: The maximum number of instances that can be
17497	// unavailable during the update process. An instance is considered
17498	// available if all of the following conditions are satisfied: - The
17499	// instance's status is RUNNING. - If there is a health check on the
17500	// instance group, the instance's health check status must be HEALTHY at
17501	// least once. If there is no health check on the group, then the
17502	// instance only needs to have a status of RUNNING to be considered
17503	// available. This value can be either a fixed number or, if the group
17504	// has 10 or more instances, a percentage. If you set a percentage, the
17505	// number of instances is rounded if necessary. The default value for
17506	// maxUnavailable is a fixed value equal to the number of zones in which
17507	// the managed instance group operates. At least one of either maxSurge
17508	// or maxUnavailable must be greater than 0. Learn more about
17509	// maxUnavailable.
17510	MaxUnavailable *FixedOrPercent `json:"maxUnavailable,omitempty"`
17511
17512	// MinimalAction: Minimal action to be taken on an instance. You can
17513	// specify either RESTART to restart existing instances or REPLACE to
17514	// delete and create new instances from the target template. If you
17515	// specify a RESTART, the Updater will attempt to perform that action
17516	// only. However, if the Updater determines that the minimal action you
17517	// specify is not enough to perform the update, it might perform a more
17518	// disruptive action.
17519	//
17520	// Possible values:
17521	//   "NONE" - Do not perform any action.
17522	//   "REFRESH" - Updates applied in runtime, instances will not be
17523	// disrupted.
17524	//   "REPLACE" - Old instances will be deleted. New instances will be
17525	// created from the target template.
17526	//   "RESTART" - Every instance will be restarted.
17527	MinimalAction string `json:"minimalAction,omitempty"`
17528
17529	// ReplacementMethod: What action should be used to replace instances.
17530	// See minimal_action.REPLACE
17531	//
17532	// Possible values:
17533	//   "RECREATE" - Instances will be recreated (with the same name)
17534	//   "SUBSTITUTE" - Default option: instances will be deleted and
17535	// created (with a new name)
17536	ReplacementMethod string `json:"replacementMethod,omitempty"`
17537
17538	// Type: The type of update process. You can specify either PROACTIVE so
17539	// that the instance group manager proactively executes actions in order
17540	// to bring instances to their target versions or OPPORTUNISTIC so that
17541	// no action is proactively executed but the update will be performed as
17542	// part of other actions (for example, resizes or recreateInstances
17543	// calls).
17544	//
17545	// Possible values:
17546	//   "OPPORTUNISTIC" - No action is being proactively performed in order
17547	// to bring this IGM to its target version distribution (regardless of
17548	// whether this distribution is expressed using instanceTemplate or
17549	// versions field).
17550	//   "PROACTIVE" - This IGM will actively converge to its target version
17551	// distribution (regardless of whether this distribution is expressed
17552	// using instanceTemplate or versions field).
17553	Type string `json:"type,omitempty"`
17554
17555	// ForceSendFields is a list of field names (e.g.
17556	// "InstanceRedistributionType") to unconditionally include in API
17557	// requests. By default, fields with empty or default values are omitted
17558	// from API requests. However, any non-pointer, non-interface field
17559	// appearing in ForceSendFields will be sent to the server regardless of
17560	// whether the field is empty or not. This may be used to include empty
17561	// fields in Patch requests.
17562	ForceSendFields []string `json:"-"`
17563
17564	// NullFields is a list of field names (e.g.
17565	// "InstanceRedistributionType") to include in API requests with the
17566	// JSON null value. By default, fields with empty values are omitted
17567	// from API requests. However, any field with an empty value appearing
17568	// in NullFields will be sent to the server as null. It is an error if a
17569	// field in this list has a non-empty value. This may be used to include
17570	// null fields in Patch requests.
17571	NullFields []string `json:"-"`
17572}
17573
17574func (s *InstanceGroupManagerUpdatePolicy) MarshalJSON() ([]byte, error) {
17575	type NoMethod InstanceGroupManagerUpdatePolicy
17576	raw := NoMethod(*s)
17577	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17578}
17579
17580type InstanceGroupManagerVersion struct {
17581	// InstanceTemplate: The URL of the instance template that is specified
17582	// for this managed instance group. The group uses this template to
17583	// create new instances in the managed instance group until the
17584	// `targetSize` for this version is reached. The templates for existing
17585	// instances in the group do not change unless you run
17586	// recreateInstances, run applyUpdatesToInstances, or set the group's
17587	// updatePolicy.type to PROACTIVE; in those cases, existing instances
17588	// are updated until the `targetSize` for this version is reached.
17589	InstanceTemplate string `json:"instanceTemplate,omitempty"`
17590
17591	// Name: Name of the version. Unique among all versions in the scope of
17592	// this managed instance group.
17593	Name string `json:"name,omitempty"`
17594
17595	// TargetSize: Specifies the intended number of instances to be created
17596	// from the instanceTemplate. The final number of instances created from
17597	// the template will be equal to: - If expressed as a fixed number, the
17598	// minimum of either targetSize.fixed or instanceGroupManager.targetSize
17599	// is used. - if expressed as a percent, the targetSize would be
17600	// (targetSize.percent/100 * InstanceGroupManager.targetSize) If there
17601	// is a remainder, the number is rounded. If unset, this version will
17602	// update any remaining instances not updated by another version. Read
17603	// Starting a canary update for more information.
17604	TargetSize *FixedOrPercent `json:"targetSize,omitempty"`
17605
17606	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
17607	// unconditionally include in API requests. By default, fields with
17608	// empty or default values are omitted from API requests. However, any
17609	// non-pointer, non-interface field appearing in ForceSendFields will be
17610	// sent to the server regardless of whether the field is empty or not.
17611	// This may be used to include empty fields in Patch requests.
17612	ForceSendFields []string `json:"-"`
17613
17614	// NullFields is a list of field names (e.g. "InstanceTemplate") to
17615	// include in API requests with the JSON null value. By default, fields
17616	// with empty values are omitted from API requests. However, any field
17617	// with an empty value appearing in NullFields will be sent to the
17618	// server as null. It is an error if a field in this list has a
17619	// non-empty value. This may be used to include null fields in Patch
17620	// requests.
17621	NullFields []string `json:"-"`
17622}
17623
17624func (s *InstanceGroupManagerVersion) MarshalJSON() ([]byte, error) {
17625	type NoMethod InstanceGroupManagerVersion
17626	raw := NoMethod(*s)
17627	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17628}
17629
17630type InstanceGroupManagersAbandonInstancesRequest struct {
17631	// Instances: The URLs of one or more instances to abandon. This can be
17632	// a full URL or a partial URL, such as
17633	// zones/[ZONE]/instances/[INSTANCE_NAME].
17634	Instances []string `json:"instances,omitempty"`
17635
17636	// ForceSendFields is a list of field names (e.g. "Instances") to
17637	// unconditionally include in API requests. By default, fields with
17638	// empty or default values are omitted from API requests. However, any
17639	// non-pointer, non-interface field appearing in ForceSendFields will be
17640	// sent to the server regardless of whether the field is empty or not.
17641	// This may be used to include empty fields in Patch requests.
17642	ForceSendFields []string `json:"-"`
17643
17644	// NullFields is a list of field names (e.g. "Instances") to include in
17645	// API requests with the JSON null value. By default, fields with empty
17646	// values are omitted from API requests. However, any field with an
17647	// empty value appearing in NullFields will be sent to the server as
17648	// null. It is an error if a field in this list has a non-empty value.
17649	// This may be used to include null fields in Patch requests.
17650	NullFields []string `json:"-"`
17651}
17652
17653func (s *InstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
17654	type NoMethod InstanceGroupManagersAbandonInstancesRequest
17655	raw := NoMethod(*s)
17656	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17657}
17658
17659// InstanceGroupManagersApplyUpdatesRequest:
17660// InstanceGroupManagers.applyUpdatesToInstances
17661type InstanceGroupManagersApplyUpdatesRequest struct {
17662	// AllInstances: Flag to update all instances instead of specified list
17663	// of “instances”. If the flag is set to true then the instances may
17664	// not be specified in the request.
17665	AllInstances bool `json:"allInstances,omitempty"`
17666
17667	// Instances: The list of URLs of one or more instances for which you
17668	// want to apply updates. Each URL can be a full URL or a partial URL,
17669	// such as zones/[ZONE]/instances/[INSTANCE_NAME].
17670	Instances []string `json:"instances,omitempty"`
17671
17672	// MinimalAction: The minimal action that you want to perform on each
17673	// instance during the update: - REPLACE: At minimum, delete the
17674	// instance and create it again. - RESTART: Stop the instance and start
17675	// it again. - REFRESH: Do not stop the instance. - NONE: Do not disrupt
17676	// the instance at all. By default, the minimum action is NONE. If your
17677	// update requires a more disruptive action than you set with this flag,
17678	// the necessary action is performed to execute the update.
17679	//
17680	// Possible values:
17681	//   "NONE" - Do not perform any action.
17682	//   "REFRESH" - Updates applied in runtime, instances will not be
17683	// disrupted.
17684	//   "REPLACE" - Old instances will be deleted. New instances will be
17685	// created from the target template.
17686	//   "RESTART" - Every instance will be restarted.
17687	MinimalAction string `json:"minimalAction,omitempty"`
17688
17689	// MostDisruptiveAllowedAction: The most disruptive action that you want
17690	// to perform on each instance during the update: - REPLACE: Delete the
17691	// instance and create it again. - RESTART: Stop the instance and start
17692	// it again. - REFRESH: Do not stop the instance. - NONE: Do not disrupt
17693	// the instance at all. By default, the most disruptive allowed action
17694	// is REPLACE. If your update requires a more disruptive action than you
17695	// set with this flag, the update request will fail.
17696	//
17697	// Possible values:
17698	//   "NONE" - Do not perform any action.
17699	//   "REFRESH" - Updates applied in runtime, instances will not be
17700	// disrupted.
17701	//   "REPLACE" - Old instances will be deleted. New instances will be
17702	// created from the target template.
17703	//   "RESTART" - Every instance will be restarted.
17704	MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"`
17705
17706	// ForceSendFields is a list of field names (e.g. "AllInstances") to
17707	// unconditionally include in API requests. By default, fields with
17708	// empty or default values are omitted from API requests. However, any
17709	// non-pointer, non-interface field appearing in ForceSendFields will be
17710	// sent to the server regardless of whether the field is empty or not.
17711	// This may be used to include empty fields in Patch requests.
17712	ForceSendFields []string `json:"-"`
17713
17714	// NullFields is a list of field names (e.g. "AllInstances") to include
17715	// in API requests with the JSON null value. By default, fields with
17716	// empty values are omitted from API requests. However, any field with
17717	// an empty value appearing in NullFields will be sent to the server as
17718	// null. It is an error if a field in this list has a non-empty value.
17719	// This may be used to include null fields in Patch requests.
17720	NullFields []string `json:"-"`
17721}
17722
17723func (s *InstanceGroupManagersApplyUpdatesRequest) MarshalJSON() ([]byte, error) {
17724	type NoMethod InstanceGroupManagersApplyUpdatesRequest
17725	raw := NoMethod(*s)
17726	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17727}
17728
17729// InstanceGroupManagersCreateInstancesRequest:
17730// InstanceGroupManagers.createInstances
17731type InstanceGroupManagersCreateInstancesRequest struct {
17732	// Instances: [Required] List of specifications of per-instance configs.
17733	Instances []*PerInstanceConfig `json:"instances,omitempty"`
17734
17735	// ForceSendFields is a list of field names (e.g. "Instances") to
17736	// unconditionally include in API requests. By default, fields with
17737	// empty or default values are omitted from API requests. However, any
17738	// non-pointer, non-interface field appearing in ForceSendFields will be
17739	// sent to the server regardless of whether the field is empty or not.
17740	// This may be used to include empty fields in Patch requests.
17741	ForceSendFields []string `json:"-"`
17742
17743	// NullFields is a list of field names (e.g. "Instances") to include in
17744	// API requests with the JSON null value. By default, fields with empty
17745	// values are omitted from API requests. However, any field with an
17746	// empty value appearing in NullFields will be sent to the server as
17747	// null. It is an error if a field in this list has a non-empty value.
17748	// This may be used to include null fields in Patch requests.
17749	NullFields []string `json:"-"`
17750}
17751
17752func (s *InstanceGroupManagersCreateInstancesRequest) MarshalJSON() ([]byte, error) {
17753	type NoMethod InstanceGroupManagersCreateInstancesRequest
17754	raw := NoMethod(*s)
17755	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17756}
17757
17758type InstanceGroupManagersDeleteInstancesRequest struct {
17759	// Instances: The URLs of one or more instances to delete. This can be a
17760	// full URL or a partial URL, such as
17761	// zones/[ZONE]/instances/[INSTANCE_NAME].
17762	Instances []string `json:"instances,omitempty"`
17763
17764	// SkipInstancesOnValidationError: Specifies whether the request should
17765	// proceed despite the inclusion of instances that are not members of
17766	// the group or that are already in the process of being deleted or
17767	// abandoned. If this field is set to `false` and such an instance is
17768	// specified in the request, the operation fails. The operation always
17769	// fails if the request contains a malformed instance URL or a reference
17770	// to an instance that exists in a zone or region other than the group's
17771	// zone or region.
17772	SkipInstancesOnValidationError bool `json:"skipInstancesOnValidationError,omitempty"`
17773
17774	// ForceSendFields is a list of field names (e.g. "Instances") to
17775	// unconditionally include in API requests. By default, fields with
17776	// empty or default values are omitted from API requests. However, any
17777	// non-pointer, non-interface field appearing in ForceSendFields will be
17778	// sent to the server regardless of whether the field is empty or not.
17779	// This may be used to include empty fields in Patch requests.
17780	ForceSendFields []string `json:"-"`
17781
17782	// NullFields is a list of field names (e.g. "Instances") to include in
17783	// API requests with the JSON null value. By default, fields with empty
17784	// values are omitted from API requests. However, any field with an
17785	// empty value appearing in NullFields will be sent to the server as
17786	// null. It is an error if a field in this list has a non-empty value.
17787	// This may be used to include null fields in Patch requests.
17788	NullFields []string `json:"-"`
17789}
17790
17791func (s *InstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
17792	type NoMethod InstanceGroupManagersDeleteInstancesRequest
17793	raw := NoMethod(*s)
17794	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17795}
17796
17797// InstanceGroupManagersDeletePerInstanceConfigsReq:
17798// InstanceGroupManagers.deletePerInstanceConfigs
17799type InstanceGroupManagersDeletePerInstanceConfigsReq struct {
17800	// Names: The list of instance names for which we want to delete
17801	// per-instance configs on this managed instance group.
17802	Names []string `json:"names,omitempty"`
17803
17804	// ForceSendFields is a list of field names (e.g. "Names") to
17805	// unconditionally include in API requests. By default, fields with
17806	// empty or default values are omitted from API requests. However, any
17807	// non-pointer, non-interface field appearing in ForceSendFields will be
17808	// sent to the server regardless of whether the field is empty or not.
17809	// This may be used to include empty fields in Patch requests.
17810	ForceSendFields []string `json:"-"`
17811
17812	// NullFields is a list of field names (e.g. "Names") to include in API
17813	// requests with the JSON null value. By default, fields with empty
17814	// values are omitted from API requests. However, any field with an
17815	// empty value appearing in NullFields will be sent to the server as
17816	// null. It is an error if a field in this list has a non-empty value.
17817	// This may be used to include null fields in Patch requests.
17818	NullFields []string `json:"-"`
17819}
17820
17821func (s *InstanceGroupManagersDeletePerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
17822	type NoMethod InstanceGroupManagersDeletePerInstanceConfigsReq
17823	raw := NoMethod(*s)
17824	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17825}
17826
17827type InstanceGroupManagersListErrorsResponse struct {
17828	// Items: [Output Only] The list of errors of the managed instance
17829	// group.
17830	Items []*InstanceManagedByIgmError `json:"items,omitempty"`
17831
17832	// NextPageToken: [Output Only] This token allows you to get the next
17833	// page of results for list requests. If the number of results is larger
17834	// than maxResults, use the nextPageToken as a value for the query
17835	// parameter pageToken in the next list request. Subsequent list
17836	// requests will have their own nextPageToken to continue paging through
17837	// the results.
17838	NextPageToken string `json:"nextPageToken,omitempty"`
17839
17840	// ServerResponse contains the HTTP response code and headers from the
17841	// server.
17842	googleapi.ServerResponse `json:"-"`
17843
17844	// ForceSendFields is a list of field names (e.g. "Items") to
17845	// unconditionally include in API requests. By default, fields with
17846	// empty or default values are omitted from API requests. However, any
17847	// non-pointer, non-interface field appearing in ForceSendFields will be
17848	// sent to the server regardless of whether the field is empty or not.
17849	// This may be used to include empty fields in Patch requests.
17850	ForceSendFields []string `json:"-"`
17851
17852	// NullFields is a list of field names (e.g. "Items") to include in API
17853	// requests with the JSON null value. By default, fields with empty
17854	// values are omitted from API requests. However, any field with an
17855	// empty value appearing in NullFields will be sent to the server as
17856	// null. It is an error if a field in this list has a non-empty value.
17857	// This may be used to include null fields in Patch requests.
17858	NullFields []string `json:"-"`
17859}
17860
17861func (s *InstanceGroupManagersListErrorsResponse) MarshalJSON() ([]byte, error) {
17862	type NoMethod InstanceGroupManagersListErrorsResponse
17863	raw := NoMethod(*s)
17864	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17865}
17866
17867type InstanceGroupManagersListManagedInstancesResponse struct {
17868	// ManagedInstances: [Output Only] The list of instances in the managed
17869	// instance group.
17870	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
17871
17872	// NextPageToken: [Output Only] This token allows you to get the next
17873	// page of results for list requests. If the number of results is larger
17874	// than maxResults, use the nextPageToken as a value for the query
17875	// parameter pageToken in the next list request. Subsequent list
17876	// requests will have their own nextPageToken to continue paging through
17877	// the results.
17878	NextPageToken string `json:"nextPageToken,omitempty"`
17879
17880	// ServerResponse contains the HTTP response code and headers from the
17881	// server.
17882	googleapi.ServerResponse `json:"-"`
17883
17884	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
17885	// unconditionally include in API requests. By default, fields with
17886	// empty or default values are omitted from API requests. However, any
17887	// non-pointer, non-interface field appearing in ForceSendFields will be
17888	// sent to the server regardless of whether the field is empty or not.
17889	// This may be used to include empty fields in Patch requests.
17890	ForceSendFields []string `json:"-"`
17891
17892	// NullFields is a list of field names (e.g. "ManagedInstances") to
17893	// include in API requests with the JSON null value. By default, fields
17894	// with empty values are omitted from API requests. However, any field
17895	// with an empty value appearing in NullFields will be sent to the
17896	// server as null. It is an error if a field in this list has a
17897	// non-empty value. This may be used to include null fields in Patch
17898	// requests.
17899	NullFields []string `json:"-"`
17900}
17901
17902func (s *InstanceGroupManagersListManagedInstancesResponse) MarshalJSON() ([]byte, error) {
17903	type NoMethod InstanceGroupManagersListManagedInstancesResponse
17904	raw := NoMethod(*s)
17905	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17906}
17907
17908type InstanceGroupManagersListPerInstanceConfigsResp struct {
17909	// Items: [Output Only] The list of PerInstanceConfig.
17910	Items []*PerInstanceConfig `json:"items,omitempty"`
17911
17912	// NextPageToken: [Output Only] This token allows you to get the next
17913	// page of results for list requests. If the number of results is larger
17914	// than maxResults, use the nextPageToken as a value for the query
17915	// parameter pageToken in the next list request. Subsequent list
17916	// requests will have their own nextPageToken to continue paging through
17917	// the results.
17918	NextPageToken string `json:"nextPageToken,omitempty"`
17919
17920	// Warning: [Output Only] Informational warning message.
17921	Warning *InstanceGroupManagersListPerInstanceConfigsRespWarning `json:"warning,omitempty"`
17922
17923	// ServerResponse contains the HTTP response code and headers from the
17924	// server.
17925	googleapi.ServerResponse `json:"-"`
17926
17927	// ForceSendFields is a list of field names (e.g. "Items") to
17928	// unconditionally include in API requests. By default, fields with
17929	// empty or default values are omitted from API requests. However, any
17930	// non-pointer, non-interface field appearing in ForceSendFields will be
17931	// sent to the server regardless of whether the field is empty or not.
17932	// This may be used to include empty fields in Patch requests.
17933	ForceSendFields []string `json:"-"`
17934
17935	// NullFields is a list of field names (e.g. "Items") to include in API
17936	// requests with the JSON null value. By default, fields with empty
17937	// values are omitted from API requests. However, any field with an
17938	// empty value appearing in NullFields will be sent to the server as
17939	// null. It is an error if a field in this list has a non-empty value.
17940	// This may be used to include null fields in Patch requests.
17941	NullFields []string `json:"-"`
17942}
17943
17944func (s *InstanceGroupManagersListPerInstanceConfigsResp) MarshalJSON() ([]byte, error) {
17945	type NoMethod InstanceGroupManagersListPerInstanceConfigsResp
17946	raw := NoMethod(*s)
17947	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17948}
17949
17950// InstanceGroupManagersListPerInstanceConfigsRespWarning: [Output Only]
17951// Informational warning message.
17952type InstanceGroupManagersListPerInstanceConfigsRespWarning struct {
17953	// Code: [Output Only] A warning code, if applicable. For example,
17954	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17955	// the response.
17956	//
17957	// Possible values:
17958	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
17959	// changes made by a failed operation.
17960	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
17961	// created.
17962	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
17963	// resources has a type marked as deprecated
17964	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
17965	// that is larger than image size.
17966	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
17967	// resources has a type marked as experimental
17968	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
17969	// call
17970	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
17971	// overridden. Deprecated unused field.
17972	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
17973	// injected kernel, which is deprecated.
17974	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
17975	// exceedingly large number of resources
17976	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
17977	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
17978	// not assigned to an instance on the network.
17979	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
17980	// ip forward.
17981	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
17982	// refers to an instance that does not exist.
17983	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
17984	// URL refers to an instance that is not on the same network as the
17985	// route.
17986	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
17987	// have a status of RUNNING.
17988	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
17989	// continue the process despite the mentioned error.
17990	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
17991	// page.
17992	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
17993	// missing due to errors
17994	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
17995	// that requires a TOS they have not accepted.
17996	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
17997	// resource is in use.
17998	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
17999	// auto-delete could not be deleted because they were in use.
18000	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
18001	// ignored.
18002	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
18003	// instance group manager is valid as such, but its application does not
18004	// make a lot of sense, because it allows only single instance in
18005	// instance group.
18006	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
18007	// are present
18008	//   "UNREACHABLE" - A given scope cannot be reached.
18009	Code string `json:"code,omitempty"`
18010
18011	// Data: [Output Only] Metadata about this warning in key: value format.
18012	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
18013	// }
18014	Data []*InstanceGroupManagersListPerInstanceConfigsRespWarningData `json:"data,omitempty"`
18015
18016	// Message: [Output Only] A human-readable description of the warning
18017	// code.
18018	Message string `json:"message,omitempty"`
18019
18020	// ForceSendFields is a list of field names (e.g. "Code") to
18021	// unconditionally include in API requests. By default, fields with
18022	// empty or default values are omitted from API requests. However, any
18023	// non-pointer, non-interface field appearing in ForceSendFields will be
18024	// sent to the server regardless of whether the field is empty or not.
18025	// This may be used to include empty fields in Patch requests.
18026	ForceSendFields []string `json:"-"`
18027
18028	// NullFields is a list of field names (e.g. "Code") to include in API
18029	// requests with the JSON null value. By default, fields with empty
18030	// values are omitted from API requests. However, any field with an
18031	// empty value appearing in NullFields will be sent to the server as
18032	// null. It is an error if a field in this list has a non-empty value.
18033	// This may be used to include null fields in Patch requests.
18034	NullFields []string `json:"-"`
18035}
18036
18037func (s *InstanceGroupManagersListPerInstanceConfigsRespWarning) MarshalJSON() ([]byte, error) {
18038	type NoMethod InstanceGroupManagersListPerInstanceConfigsRespWarning
18039	raw := NoMethod(*s)
18040	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18041}
18042
18043type InstanceGroupManagersListPerInstanceConfigsRespWarningData struct {
18044	// Key: [Output Only] A key that provides more detail on the warning
18045	// being returned. For example, for warnings where there are no results
18046	// in a list request for a particular zone, this key might be scope and
18047	// the key value might be the zone name. Other examples might be a key
18048	// indicating a deprecated resource and a suggested replacement, or a
18049	// warning about invalid network settings (for example, if an instance
18050	// attempts to perform IP forwarding but is not enabled for IP
18051	// forwarding).
18052	Key string `json:"key,omitempty"`
18053
18054	// Value: [Output Only] A warning data value corresponding to the key.
18055	Value string `json:"value,omitempty"`
18056
18057	// ForceSendFields is a list of field names (e.g. "Key") to
18058	// unconditionally include in API requests. By default, fields with
18059	// empty or default values are omitted from API requests. However, any
18060	// non-pointer, non-interface field appearing in ForceSendFields will be
18061	// sent to the server regardless of whether the field is empty or not.
18062	// This may be used to include empty fields in Patch requests.
18063	ForceSendFields []string `json:"-"`
18064
18065	// NullFields is a list of field names (e.g. "Key") to include in API
18066	// requests with the JSON null value. By default, fields with empty
18067	// values are omitted from API requests. However, any field with an
18068	// empty value appearing in NullFields will be sent to the server as
18069	// null. It is an error if a field in this list has a non-empty value.
18070	// This may be used to include null fields in Patch requests.
18071	NullFields []string `json:"-"`
18072}
18073
18074func (s *InstanceGroupManagersListPerInstanceConfigsRespWarningData) MarshalJSON() ([]byte, error) {
18075	type NoMethod InstanceGroupManagersListPerInstanceConfigsRespWarningData
18076	raw := NoMethod(*s)
18077	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18078}
18079
18080// InstanceGroupManagersPatchPerInstanceConfigsReq:
18081// InstanceGroupManagers.patchPerInstanceConfigs
18082type InstanceGroupManagersPatchPerInstanceConfigsReq struct {
18083	// PerInstanceConfigs: The list of per-instance configs to insert or
18084	// patch on this managed instance group.
18085	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
18086
18087	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
18088	// to unconditionally include in API requests. By default, fields with
18089	// empty or default values are omitted from API requests. However, any
18090	// non-pointer, non-interface field appearing in ForceSendFields will be
18091	// sent to the server regardless of whether the field is empty or not.
18092	// This may be used to include empty fields in Patch requests.
18093	ForceSendFields []string `json:"-"`
18094
18095	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
18096	// include in API requests with the JSON null value. By default, fields
18097	// with empty values are omitted from API requests. However, any field
18098	// with an empty value appearing in NullFields will be sent to the
18099	// server as null. It is an error if a field in this list has a
18100	// non-empty value. This may be used to include null fields in Patch
18101	// requests.
18102	NullFields []string `json:"-"`
18103}
18104
18105func (s *InstanceGroupManagersPatchPerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
18106	type NoMethod InstanceGroupManagersPatchPerInstanceConfigsReq
18107	raw := NoMethod(*s)
18108	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18109}
18110
18111type InstanceGroupManagersRecreateInstancesRequest struct {
18112	// Instances: The URLs of one or more instances to recreate. This can be
18113	// a full URL or a partial URL, such as
18114	// zones/[ZONE]/instances/[INSTANCE_NAME].
18115	Instances []string `json:"instances,omitempty"`
18116
18117	// ForceSendFields is a list of field names (e.g. "Instances") to
18118	// unconditionally include in API requests. By default, fields with
18119	// empty or default values are omitted from API requests. However, any
18120	// non-pointer, non-interface field appearing in ForceSendFields will be
18121	// sent to the server regardless of whether the field is empty or not.
18122	// This may be used to include empty fields in Patch requests.
18123	ForceSendFields []string `json:"-"`
18124
18125	// NullFields is a list of field names (e.g. "Instances") to include in
18126	// API requests with the JSON null value. By default, fields with empty
18127	// values are omitted from API requests. However, any field with an
18128	// empty value appearing in NullFields will be sent to the server as
18129	// null. It is an error if a field in this list has a non-empty value.
18130	// This may be used to include null fields in Patch requests.
18131	NullFields []string `json:"-"`
18132}
18133
18134func (s *InstanceGroupManagersRecreateInstancesRequest) MarshalJSON() ([]byte, error) {
18135	type NoMethod InstanceGroupManagersRecreateInstancesRequest
18136	raw := NoMethod(*s)
18137	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18138}
18139
18140type InstanceGroupManagersScopedList struct {
18141	// InstanceGroupManagers: [Output Only] The list of managed instance
18142	// groups that are contained in the specified project and zone.
18143	InstanceGroupManagers []*InstanceGroupManager `json:"instanceGroupManagers,omitempty"`
18144
18145	// Warning: [Output Only] The warning that replaces the list of managed
18146	// instance groups when the list is empty.
18147	Warning *InstanceGroupManagersScopedListWarning `json:"warning,omitempty"`
18148
18149	// ForceSendFields is a list of field names (e.g.
18150	// "InstanceGroupManagers") to unconditionally include in API requests.
18151	// By default, fields with empty or default values are omitted from API
18152	// requests. However, any non-pointer, non-interface field appearing in
18153	// ForceSendFields will be sent to the server regardless of whether the
18154	// field is empty or not. This may be used to include empty fields in
18155	// Patch requests.
18156	ForceSendFields []string `json:"-"`
18157
18158	// NullFields is a list of field names (e.g. "InstanceGroupManagers") to
18159	// include in API requests with the JSON null value. By default, fields
18160	// with empty values are omitted from API requests. However, any field
18161	// with an empty value appearing in NullFields will be sent to the
18162	// server as null. It is an error if a field in this list has a
18163	// non-empty value. This may be used to include null fields in Patch
18164	// requests.
18165	NullFields []string `json:"-"`
18166}
18167
18168func (s *InstanceGroupManagersScopedList) MarshalJSON() ([]byte, error) {
18169	type NoMethod InstanceGroupManagersScopedList
18170	raw := NoMethod(*s)
18171	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18172}
18173
18174// InstanceGroupManagersScopedListWarning: [Output Only] The warning
18175// that replaces the list of managed instance groups when the list is
18176// empty.
18177type InstanceGroupManagersScopedListWarning struct {
18178	// Code: [Output Only] A warning code, if applicable. For example,
18179	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18180	// the response.
18181	//
18182	// Possible values:
18183	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
18184	// changes made by a failed operation.
18185	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
18186	// created.
18187	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
18188	// resources has a type marked as deprecated
18189	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
18190	// that is larger than image size.
18191	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
18192	// resources has a type marked as experimental
18193	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
18194	// call
18195	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
18196	// overridden. Deprecated unused field.
18197	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
18198	// injected kernel, which is deprecated.
18199	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
18200	// exceedingly large number of resources
18201	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
18202	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
18203	// not assigned to an instance on the network.
18204	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
18205	// ip forward.
18206	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
18207	// refers to an instance that does not exist.
18208	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
18209	// URL refers to an instance that is not on the same network as the
18210	// route.
18211	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
18212	// have a status of RUNNING.
18213	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
18214	// continue the process despite the mentioned error.
18215	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
18216	// page.
18217	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
18218	// missing due to errors
18219	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
18220	// that requires a TOS they have not accepted.
18221	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
18222	// resource is in use.
18223	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
18224	// auto-delete could not be deleted because they were in use.
18225	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
18226	// ignored.
18227	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
18228	// instance group manager is valid as such, but its application does not
18229	// make a lot of sense, because it allows only single instance in
18230	// instance group.
18231	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
18232	// are present
18233	//   "UNREACHABLE" - A given scope cannot be reached.
18234	Code string `json:"code,omitempty"`
18235
18236	// Data: [Output Only] Metadata about this warning in key: value format.
18237	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
18238	// }
18239	Data []*InstanceGroupManagersScopedListWarningData `json:"data,omitempty"`
18240
18241	// Message: [Output Only] A human-readable description of the warning
18242	// code.
18243	Message string `json:"message,omitempty"`
18244
18245	// ForceSendFields is a list of field names (e.g. "Code") to
18246	// unconditionally include in API requests. By default, fields with
18247	// empty or default values are omitted from API requests. However, any
18248	// non-pointer, non-interface field appearing in ForceSendFields will be
18249	// sent to the server regardless of whether the field is empty or not.
18250	// This may be used to include empty fields in Patch requests.
18251	ForceSendFields []string `json:"-"`
18252
18253	// NullFields is a list of field names (e.g. "Code") to include in API
18254	// requests with the JSON null value. By default, fields with empty
18255	// values are omitted from API requests. However, any field with an
18256	// empty value appearing in NullFields will be sent to the server as
18257	// null. It is an error if a field in this list has a non-empty value.
18258	// This may be used to include null fields in Patch requests.
18259	NullFields []string `json:"-"`
18260}
18261
18262func (s *InstanceGroupManagersScopedListWarning) MarshalJSON() ([]byte, error) {
18263	type NoMethod InstanceGroupManagersScopedListWarning
18264	raw := NoMethod(*s)
18265	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18266}
18267
18268type InstanceGroupManagersScopedListWarningData struct {
18269	// Key: [Output Only] A key that provides more detail on the warning
18270	// being returned. For example, for warnings where there are no results
18271	// in a list request for a particular zone, this key might be scope and
18272	// the key value might be the zone name. Other examples might be a key
18273	// indicating a deprecated resource and a suggested replacement, or a
18274	// warning about invalid network settings (for example, if an instance
18275	// attempts to perform IP forwarding but is not enabled for IP
18276	// forwarding).
18277	Key string `json:"key,omitempty"`
18278
18279	// Value: [Output Only] A warning data value corresponding to the key.
18280	Value string `json:"value,omitempty"`
18281
18282	// ForceSendFields is a list of field names (e.g. "Key") to
18283	// unconditionally include in API requests. By default, fields with
18284	// empty or default values are omitted from API requests. However, any
18285	// non-pointer, non-interface field appearing in ForceSendFields will be
18286	// sent to the server regardless of whether the field is empty or not.
18287	// This may be used to include empty fields in Patch requests.
18288	ForceSendFields []string `json:"-"`
18289
18290	// NullFields is a list of field names (e.g. "Key") to include in API
18291	// requests with the JSON null value. By default, fields with empty
18292	// values are omitted from API requests. However, any field with an
18293	// empty value appearing in NullFields will be sent to the server as
18294	// null. It is an error if a field in this list has a non-empty value.
18295	// This may be used to include null fields in Patch requests.
18296	NullFields []string `json:"-"`
18297}
18298
18299func (s *InstanceGroupManagersScopedListWarningData) MarshalJSON() ([]byte, error) {
18300	type NoMethod InstanceGroupManagersScopedListWarningData
18301	raw := NoMethod(*s)
18302	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18303}
18304
18305type InstanceGroupManagersSetInstanceTemplateRequest struct {
18306	// InstanceTemplate: The URL of the instance template that is specified
18307	// for this managed instance group. The group uses this template to
18308	// create all new instances in the managed instance group. The templates
18309	// for existing instances in the group do not change unless you run
18310	// recreateInstances, run applyUpdatesToInstances, or set the group's
18311	// updatePolicy.type to PROACTIVE.
18312	InstanceTemplate string `json:"instanceTemplate,omitempty"`
18313
18314	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
18315	// unconditionally include in API requests. By default, fields with
18316	// empty or default values are omitted from API requests. However, any
18317	// non-pointer, non-interface field appearing in ForceSendFields will be
18318	// sent to the server regardless of whether the field is empty or not.
18319	// This may be used to include empty fields in Patch requests.
18320	ForceSendFields []string `json:"-"`
18321
18322	// NullFields is a list of field names (e.g. "InstanceTemplate") to
18323	// include in API requests with the JSON null value. By default, fields
18324	// with empty values are omitted from API requests. However, any field
18325	// with an empty value appearing in NullFields will be sent to the
18326	// server as null. It is an error if a field in this list has a
18327	// non-empty value. This may be used to include null fields in Patch
18328	// requests.
18329	NullFields []string `json:"-"`
18330}
18331
18332func (s *InstanceGroupManagersSetInstanceTemplateRequest) MarshalJSON() ([]byte, error) {
18333	type NoMethod InstanceGroupManagersSetInstanceTemplateRequest
18334	raw := NoMethod(*s)
18335	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18336}
18337
18338type InstanceGroupManagersSetTargetPoolsRequest struct {
18339	// Fingerprint: The fingerprint of the target pools information. Use
18340	// this optional property to prevent conflicts when multiple users
18341	// change the target pools settings concurrently. Obtain the fingerprint
18342	// with the instanceGroupManagers.get method. Then, include the
18343	// fingerprint in your request to ensure that you do not overwrite
18344	// changes that were applied from another concurrent request.
18345	Fingerprint string `json:"fingerprint,omitempty"`
18346
18347	// TargetPools: The list of target pool URLs that instances in this
18348	// managed instance group belong to. The managed instance group applies
18349	// these target pools to all of the instances in the group. Existing
18350	// instances and new instances in the group all receive these target
18351	// pool settings.
18352	TargetPools []string `json:"targetPools,omitempty"`
18353
18354	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
18355	// unconditionally include in API requests. By default, fields with
18356	// empty or default values are omitted from API requests. However, any
18357	// non-pointer, non-interface field appearing in ForceSendFields will be
18358	// sent to the server regardless of whether the field is empty or not.
18359	// This may be used to include empty fields in Patch requests.
18360	ForceSendFields []string `json:"-"`
18361
18362	// NullFields is a list of field names (e.g. "Fingerprint") to include
18363	// in API requests with the JSON null value. By default, fields with
18364	// empty values are omitted from API requests. However, any field with
18365	// an empty value appearing in NullFields will be sent to the server as
18366	// null. It is an error if a field in this list has a non-empty value.
18367	// This may be used to include null fields in Patch requests.
18368	NullFields []string `json:"-"`
18369}
18370
18371func (s *InstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
18372	type NoMethod InstanceGroupManagersSetTargetPoolsRequest
18373	raw := NoMethod(*s)
18374	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18375}
18376
18377// InstanceGroupManagersUpdatePerInstanceConfigsReq:
18378// InstanceGroupManagers.updatePerInstanceConfigs
18379type InstanceGroupManagersUpdatePerInstanceConfigsReq struct {
18380	// PerInstanceConfigs: The list of per-instance configs to insert or
18381	// patch on this managed instance group.
18382	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
18383
18384	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
18385	// to unconditionally include in API requests. By default, fields with
18386	// empty or default values are omitted from API requests. However, any
18387	// non-pointer, non-interface field appearing in ForceSendFields will be
18388	// sent to the server regardless of whether the field is empty or not.
18389	// This may be used to include empty fields in Patch requests.
18390	ForceSendFields []string `json:"-"`
18391
18392	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
18393	// include in API requests with the JSON null value. By default, fields
18394	// with empty values are omitted from API requests. However, any field
18395	// with an empty value appearing in NullFields will be sent to the
18396	// server as null. It is an error if a field in this list has a
18397	// non-empty value. This may be used to include null fields in Patch
18398	// requests.
18399	NullFields []string `json:"-"`
18400}
18401
18402func (s *InstanceGroupManagersUpdatePerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
18403	type NoMethod InstanceGroupManagersUpdatePerInstanceConfigsReq
18404	raw := NoMethod(*s)
18405	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18406}
18407
18408type InstanceGroupsAddInstancesRequest struct {
18409	// Instances: The list of instances to add to the instance group.
18410	Instances []*InstanceReference `json:"instances,omitempty"`
18411
18412	// ForceSendFields is a list of field names (e.g. "Instances") to
18413	// unconditionally include in API requests. By default, fields with
18414	// empty or default values are omitted from API requests. However, any
18415	// non-pointer, non-interface field appearing in ForceSendFields will be
18416	// sent to the server regardless of whether the field is empty or not.
18417	// This may be used to include empty fields in Patch requests.
18418	ForceSendFields []string `json:"-"`
18419
18420	// NullFields is a list of field names (e.g. "Instances") to include in
18421	// API requests with the JSON null value. By default, fields with empty
18422	// values are omitted from API requests. However, any field with an
18423	// empty value appearing in NullFields will be sent to the server as
18424	// null. It is an error if a field in this list has a non-empty value.
18425	// This may be used to include null fields in Patch requests.
18426	NullFields []string `json:"-"`
18427}
18428
18429func (s *InstanceGroupsAddInstancesRequest) MarshalJSON() ([]byte, error) {
18430	type NoMethod InstanceGroupsAddInstancesRequest
18431	raw := NoMethod(*s)
18432	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18433}
18434
18435type InstanceGroupsListInstances struct {
18436	// Id: [Output Only] Unique identifier for the resource; defined by the
18437	// server.
18438	Id string `json:"id,omitempty"`
18439
18440	// Items: A list of InstanceWithNamedPorts resources.
18441	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
18442
18443	// Kind: [Output Only] The resource type, which is always
18444	// compute#instanceGroupsListInstances for the list of instances in the
18445	// specified instance group.
18446	Kind string `json:"kind,omitempty"`
18447
18448	// NextPageToken: [Output Only] This token allows you to get the next
18449	// page of results for list requests. If the number of results is larger
18450	// than maxResults, use the nextPageToken as a value for the query
18451	// parameter pageToken in the next list request. Subsequent list
18452	// requests will have their own nextPageToken to continue paging through
18453	// the results.
18454	NextPageToken string `json:"nextPageToken,omitempty"`
18455
18456	// SelfLink: [Output Only] Server-defined URL for this resource.
18457	SelfLink string `json:"selfLink,omitempty"`
18458
18459	// Warning: [Output Only] Informational warning message.
18460	Warning *InstanceGroupsListInstancesWarning `json:"warning,omitempty"`
18461
18462	// ServerResponse contains the HTTP response code and headers from the
18463	// server.
18464	googleapi.ServerResponse `json:"-"`
18465
18466	// ForceSendFields is a list of field names (e.g. "Id") to
18467	// unconditionally include in API requests. By default, fields with
18468	// empty or default values are omitted from API requests. However, any
18469	// non-pointer, non-interface field appearing in ForceSendFields will be
18470	// sent to the server regardless of whether the field is empty or not.
18471	// This may be used to include empty fields in Patch requests.
18472	ForceSendFields []string `json:"-"`
18473
18474	// NullFields is a list of field names (e.g. "Id") to include in API
18475	// requests with the JSON null value. By default, fields with empty
18476	// values are omitted from API requests. However, any field with an
18477	// empty value appearing in NullFields will be sent to the server as
18478	// null. It is an error if a field in this list has a non-empty value.
18479	// This may be used to include null fields in Patch requests.
18480	NullFields []string `json:"-"`
18481}
18482
18483func (s *InstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
18484	type NoMethod InstanceGroupsListInstances
18485	raw := NoMethod(*s)
18486	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18487}
18488
18489// InstanceGroupsListInstancesWarning: [Output Only] Informational
18490// warning message.
18491type InstanceGroupsListInstancesWarning struct {
18492	// Code: [Output Only] A warning code, if applicable. For example,
18493	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18494	// the response.
18495	//
18496	// Possible values:
18497	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
18498	// changes made by a failed operation.
18499	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
18500	// created.
18501	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
18502	// resources has a type marked as deprecated
18503	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
18504	// that is larger than image size.
18505	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
18506	// resources has a type marked as experimental
18507	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
18508	// call
18509	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
18510	// overridden. Deprecated unused field.
18511	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
18512	// injected kernel, which is deprecated.
18513	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
18514	// exceedingly large number of resources
18515	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
18516	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
18517	// not assigned to an instance on the network.
18518	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
18519	// ip forward.
18520	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
18521	// refers to an instance that does not exist.
18522	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
18523	// URL refers to an instance that is not on the same network as the
18524	// route.
18525	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
18526	// have a status of RUNNING.
18527	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
18528	// continue the process despite the mentioned error.
18529	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
18530	// page.
18531	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
18532	// missing due to errors
18533	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
18534	// that requires a TOS they have not accepted.
18535	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
18536	// resource is in use.
18537	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
18538	// auto-delete could not be deleted because they were in use.
18539	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
18540	// ignored.
18541	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
18542	// instance group manager is valid as such, but its application does not
18543	// make a lot of sense, because it allows only single instance in
18544	// instance group.
18545	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
18546	// are present
18547	//   "UNREACHABLE" - A given scope cannot be reached.
18548	Code string `json:"code,omitempty"`
18549
18550	// Data: [Output Only] Metadata about this warning in key: value format.
18551	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
18552	// }
18553	Data []*InstanceGroupsListInstancesWarningData `json:"data,omitempty"`
18554
18555	// Message: [Output Only] A human-readable description of the warning
18556	// code.
18557	Message string `json:"message,omitempty"`
18558
18559	// ForceSendFields is a list of field names (e.g. "Code") to
18560	// unconditionally include in API requests. By default, fields with
18561	// empty or default values are omitted from API requests. However, any
18562	// non-pointer, non-interface field appearing in ForceSendFields will be
18563	// sent to the server regardless of whether the field is empty or not.
18564	// This may be used to include empty fields in Patch requests.
18565	ForceSendFields []string `json:"-"`
18566
18567	// NullFields is a list of field names (e.g. "Code") to include in API
18568	// requests with the JSON null value. By default, fields with empty
18569	// values are omitted from API requests. However, any field with an
18570	// empty value appearing in NullFields will be sent to the server as
18571	// null. It is an error if a field in this list has a non-empty value.
18572	// This may be used to include null fields in Patch requests.
18573	NullFields []string `json:"-"`
18574}
18575
18576func (s *InstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
18577	type NoMethod InstanceGroupsListInstancesWarning
18578	raw := NoMethod(*s)
18579	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18580}
18581
18582type InstanceGroupsListInstancesWarningData struct {
18583	// Key: [Output Only] A key that provides more detail on the warning
18584	// being returned. For example, for warnings where there are no results
18585	// in a list request for a particular zone, this key might be scope and
18586	// the key value might be the zone name. Other examples might be a key
18587	// indicating a deprecated resource and a suggested replacement, or a
18588	// warning about invalid network settings (for example, if an instance
18589	// attempts to perform IP forwarding but is not enabled for IP
18590	// forwarding).
18591	Key string `json:"key,omitempty"`
18592
18593	// Value: [Output Only] A warning data value corresponding to the key.
18594	Value string `json:"value,omitempty"`
18595
18596	// ForceSendFields is a list of field names (e.g. "Key") to
18597	// unconditionally include in API requests. By default, fields with
18598	// empty or default values are omitted from API requests. However, any
18599	// non-pointer, non-interface field appearing in ForceSendFields will be
18600	// sent to the server regardless of whether the field is empty or not.
18601	// This may be used to include empty fields in Patch requests.
18602	ForceSendFields []string `json:"-"`
18603
18604	// NullFields is a list of field names (e.g. "Key") to include in API
18605	// requests with the JSON null value. By default, fields with empty
18606	// values are omitted from API requests. However, any field with an
18607	// empty value appearing in NullFields will be sent to the server as
18608	// null. It is an error if a field in this list has a non-empty value.
18609	// This may be used to include null fields in Patch requests.
18610	NullFields []string `json:"-"`
18611}
18612
18613func (s *InstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
18614	type NoMethod InstanceGroupsListInstancesWarningData
18615	raw := NoMethod(*s)
18616	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18617}
18618
18619type InstanceGroupsListInstancesRequest struct {
18620	// InstanceState: A filter for the state of the instances in the
18621	// instance group. Valid options are ALL or RUNNING. If you do not
18622	// specify this parameter the list includes all instances regardless of
18623	// their state.
18624	//
18625	// Possible values:
18626	//   "ALL" - Includes all instances in the generated list regardless of
18627	// their state.
18628	//   "RUNNING" - Includes instances in the generated list only if they
18629	// have a RUNNING state.
18630	InstanceState string `json:"instanceState,omitempty"`
18631
18632	// ForceSendFields is a list of field names (e.g. "InstanceState") to
18633	// unconditionally include in API requests. By default, fields with
18634	// empty or default values are omitted from API requests. However, any
18635	// non-pointer, non-interface field appearing in ForceSendFields will be
18636	// sent to the server regardless of whether the field is empty or not.
18637	// This may be used to include empty fields in Patch requests.
18638	ForceSendFields []string `json:"-"`
18639
18640	// NullFields is a list of field names (e.g. "InstanceState") to include
18641	// in API requests with the JSON null value. By default, fields with
18642	// empty values are omitted from API requests. However, any field with
18643	// an empty value appearing in NullFields will be sent to the server as
18644	// null. It is an error if a field in this list has a non-empty value.
18645	// This may be used to include null fields in Patch requests.
18646	NullFields []string `json:"-"`
18647}
18648
18649func (s *InstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
18650	type NoMethod InstanceGroupsListInstancesRequest
18651	raw := NoMethod(*s)
18652	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18653}
18654
18655type InstanceGroupsRemoveInstancesRequest struct {
18656	// Instances: The list of instances to remove from the instance group.
18657	Instances []*InstanceReference `json:"instances,omitempty"`
18658
18659	// ForceSendFields is a list of field names (e.g. "Instances") to
18660	// unconditionally include in API requests. By default, fields with
18661	// empty or default values are omitted from API requests. However, any
18662	// non-pointer, non-interface field appearing in ForceSendFields will be
18663	// sent to the server regardless of whether the field is empty or not.
18664	// This may be used to include empty fields in Patch requests.
18665	ForceSendFields []string `json:"-"`
18666
18667	// NullFields is a list of field names (e.g. "Instances") to include in
18668	// API requests with the JSON null value. By default, fields with empty
18669	// values are omitted from API requests. However, any field with an
18670	// empty value appearing in NullFields will be sent to the server as
18671	// null. It is an error if a field in this list has a non-empty value.
18672	// This may be used to include null fields in Patch requests.
18673	NullFields []string `json:"-"`
18674}
18675
18676func (s *InstanceGroupsRemoveInstancesRequest) MarshalJSON() ([]byte, error) {
18677	type NoMethod InstanceGroupsRemoveInstancesRequest
18678	raw := NoMethod(*s)
18679	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18680}
18681
18682type InstanceGroupsScopedList struct {
18683	// InstanceGroups: [Output Only] The list of instance groups that are
18684	// contained in this scope.
18685	InstanceGroups []*InstanceGroup `json:"instanceGroups,omitempty"`
18686
18687	// Warning: [Output Only] An informational warning that replaces the
18688	// list of instance groups when the list is empty.
18689	Warning *InstanceGroupsScopedListWarning `json:"warning,omitempty"`
18690
18691	// ForceSendFields is a list of field names (e.g. "InstanceGroups") to
18692	// unconditionally include in API requests. By default, fields with
18693	// empty or default values are omitted from API requests. However, any
18694	// non-pointer, non-interface field appearing in ForceSendFields will be
18695	// sent to the server regardless of whether the field is empty or not.
18696	// This may be used to include empty fields in Patch requests.
18697	ForceSendFields []string `json:"-"`
18698
18699	// NullFields is a list of field names (e.g. "InstanceGroups") to
18700	// include in API requests with the JSON null value. By default, fields
18701	// with empty values are omitted from API requests. However, any field
18702	// with an empty value appearing in NullFields will be sent to the
18703	// server as null. It is an error if a field in this list has a
18704	// non-empty value. This may be used to include null fields in Patch
18705	// requests.
18706	NullFields []string `json:"-"`
18707}
18708
18709func (s *InstanceGroupsScopedList) MarshalJSON() ([]byte, error) {
18710	type NoMethod InstanceGroupsScopedList
18711	raw := NoMethod(*s)
18712	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18713}
18714
18715// InstanceGroupsScopedListWarning: [Output Only] An informational
18716// warning that replaces the list of instance groups when the list is
18717// empty.
18718type InstanceGroupsScopedListWarning struct {
18719	// Code: [Output Only] A warning code, if applicable. For example,
18720	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18721	// the response.
18722	//
18723	// Possible values:
18724	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
18725	// changes made by a failed operation.
18726	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
18727	// created.
18728	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
18729	// resources has a type marked as deprecated
18730	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
18731	// that is larger than image size.
18732	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
18733	// resources has a type marked as experimental
18734	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
18735	// call
18736	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
18737	// overridden. Deprecated unused field.
18738	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
18739	// injected kernel, which is deprecated.
18740	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
18741	// exceedingly large number of resources
18742	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
18743	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
18744	// not assigned to an instance on the network.
18745	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
18746	// ip forward.
18747	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
18748	// refers to an instance that does not exist.
18749	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
18750	// URL refers to an instance that is not on the same network as the
18751	// route.
18752	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
18753	// have a status of RUNNING.
18754	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
18755	// continue the process despite the mentioned error.
18756	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
18757	// page.
18758	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
18759	// missing due to errors
18760	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
18761	// that requires a TOS they have not accepted.
18762	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
18763	// resource is in use.
18764	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
18765	// auto-delete could not be deleted because they were in use.
18766	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
18767	// ignored.
18768	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
18769	// instance group manager is valid as such, but its application does not
18770	// make a lot of sense, because it allows only single instance in
18771	// instance group.
18772	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
18773	// are present
18774	//   "UNREACHABLE" - A given scope cannot be reached.
18775	Code string `json:"code,omitempty"`
18776
18777	// Data: [Output Only] Metadata about this warning in key: value format.
18778	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
18779	// }
18780	Data []*InstanceGroupsScopedListWarningData `json:"data,omitempty"`
18781
18782	// Message: [Output Only] A human-readable description of the warning
18783	// code.
18784	Message string `json:"message,omitempty"`
18785
18786	// ForceSendFields is a list of field names (e.g. "Code") to
18787	// unconditionally include in API requests. By default, fields with
18788	// empty or default values are omitted from API requests. However, any
18789	// non-pointer, non-interface field appearing in ForceSendFields will be
18790	// sent to the server regardless of whether the field is empty or not.
18791	// This may be used to include empty fields in Patch requests.
18792	ForceSendFields []string `json:"-"`
18793
18794	// NullFields is a list of field names (e.g. "Code") to include in API
18795	// requests with the JSON null value. By default, fields with empty
18796	// values are omitted from API requests. However, any field with an
18797	// empty value appearing in NullFields will be sent to the server as
18798	// null. It is an error if a field in this list has a non-empty value.
18799	// This may be used to include null fields in Patch requests.
18800	NullFields []string `json:"-"`
18801}
18802
18803func (s *InstanceGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
18804	type NoMethod InstanceGroupsScopedListWarning
18805	raw := NoMethod(*s)
18806	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18807}
18808
18809type InstanceGroupsScopedListWarningData struct {
18810	// Key: [Output Only] A key that provides more detail on the warning
18811	// being returned. For example, for warnings where there are no results
18812	// in a list request for a particular zone, this key might be scope and
18813	// the key value might be the zone name. Other examples might be a key
18814	// indicating a deprecated resource and a suggested replacement, or a
18815	// warning about invalid network settings (for example, if an instance
18816	// attempts to perform IP forwarding but is not enabled for IP
18817	// forwarding).
18818	Key string `json:"key,omitempty"`
18819
18820	// Value: [Output Only] A warning data value corresponding to the key.
18821	Value string `json:"value,omitempty"`
18822
18823	// ForceSendFields is a list of field names (e.g. "Key") to
18824	// unconditionally include in API requests. By default, fields with
18825	// empty or default values are omitted from API requests. However, any
18826	// non-pointer, non-interface field appearing in ForceSendFields will be
18827	// sent to the server regardless of whether the field is empty or not.
18828	// This may be used to include empty fields in Patch requests.
18829	ForceSendFields []string `json:"-"`
18830
18831	// NullFields is a list of field names (e.g. "Key") to include in API
18832	// requests with the JSON null value. By default, fields with empty
18833	// values are omitted from API requests. However, any field with an
18834	// empty value appearing in NullFields will be sent to the server as
18835	// null. It is an error if a field in this list has a non-empty value.
18836	// This may be used to include null fields in Patch requests.
18837	NullFields []string `json:"-"`
18838}
18839
18840func (s *InstanceGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
18841	type NoMethod InstanceGroupsScopedListWarningData
18842	raw := NoMethod(*s)
18843	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18844}
18845
18846type InstanceGroupsSetNamedPortsRequest struct {
18847	// Fingerprint: The fingerprint of the named ports information for this
18848	// instance group. Use this optional property to prevent conflicts when
18849	// multiple users change the named ports settings concurrently. Obtain
18850	// the fingerprint with the instanceGroups.get method. Then, include the
18851	// fingerprint in your request to ensure that you do not overwrite
18852	// changes that were applied from another concurrent request. A request
18853	// with an incorrect fingerprint will fail with error 412
18854	// conditionNotMet.
18855	Fingerprint string `json:"fingerprint,omitempty"`
18856
18857	// NamedPorts: The list of named ports to set for this instance group.
18858	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
18859
18860	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
18861	// unconditionally include in API requests. By default, fields with
18862	// empty or default values are omitted from API requests. However, any
18863	// non-pointer, non-interface field appearing in ForceSendFields will be
18864	// sent to the server regardless of whether the field is empty or not.
18865	// This may be used to include empty fields in Patch requests.
18866	ForceSendFields []string `json:"-"`
18867
18868	// NullFields is a list of field names (e.g. "Fingerprint") to include
18869	// in API requests with the JSON null value. By default, fields with
18870	// empty values are omitted from API requests. However, any field with
18871	// an empty value appearing in NullFields will be sent to the server as
18872	// null. It is an error if a field in this list has a non-empty value.
18873	// This may be used to include null fields in Patch requests.
18874	NullFields []string `json:"-"`
18875}
18876
18877func (s *InstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
18878	type NoMethod InstanceGroupsSetNamedPortsRequest
18879	raw := NoMethod(*s)
18880	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18881}
18882
18883// InstanceList: Contains a list of instances.
18884type InstanceList struct {
18885	// Id: [Output Only] Unique identifier for the resource; defined by the
18886	// server.
18887	Id string `json:"id,omitempty"`
18888
18889	// Items: A list of Instance resources.
18890	Items []*Instance `json:"items,omitempty"`
18891
18892	// Kind: [Output Only] Type of resource. Always compute#instanceList for
18893	// lists of Instance resources.
18894	Kind string `json:"kind,omitempty"`
18895
18896	// NextPageToken: [Output Only] This token allows you to get the next
18897	// page of results for list requests. If the number of results is larger
18898	// than maxResults, use the nextPageToken as a value for the query
18899	// parameter pageToken in the next list request. Subsequent list
18900	// requests will have their own nextPageToken to continue paging through
18901	// the results.
18902	NextPageToken string `json:"nextPageToken,omitempty"`
18903
18904	// SelfLink: [Output Only] Server-defined URL for this resource.
18905	SelfLink string `json:"selfLink,omitempty"`
18906
18907	// Warning: [Output Only] Informational warning message.
18908	Warning *InstanceListWarning `json:"warning,omitempty"`
18909
18910	// ServerResponse contains the HTTP response code and headers from the
18911	// server.
18912	googleapi.ServerResponse `json:"-"`
18913
18914	// ForceSendFields is a list of field names (e.g. "Id") to
18915	// unconditionally include in API requests. By default, fields with
18916	// empty or default values are omitted from API requests. However, any
18917	// non-pointer, non-interface field appearing in ForceSendFields will be
18918	// sent to the server regardless of whether the field is empty or not.
18919	// This may be used to include empty fields in Patch requests.
18920	ForceSendFields []string `json:"-"`
18921
18922	// NullFields is a list of field names (e.g. "Id") to include in API
18923	// requests with the JSON null value. By default, fields with empty
18924	// values are omitted from API requests. However, any field with an
18925	// empty value appearing in NullFields will be sent to the server as
18926	// null. It is an error if a field in this list has a non-empty value.
18927	// This may be used to include null fields in Patch requests.
18928	NullFields []string `json:"-"`
18929}
18930
18931func (s *InstanceList) MarshalJSON() ([]byte, error) {
18932	type NoMethod InstanceList
18933	raw := NoMethod(*s)
18934	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18935}
18936
18937// InstanceListWarning: [Output Only] Informational warning message.
18938type InstanceListWarning struct {
18939	// Code: [Output Only] A warning code, if applicable. For example,
18940	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18941	// the response.
18942	//
18943	// Possible values:
18944	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
18945	// changes made by a failed operation.
18946	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
18947	// created.
18948	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
18949	// resources has a type marked as deprecated
18950	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
18951	// that is larger than image size.
18952	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
18953	// resources has a type marked as experimental
18954	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
18955	// call
18956	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
18957	// overridden. Deprecated unused field.
18958	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
18959	// injected kernel, which is deprecated.
18960	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
18961	// exceedingly large number of resources
18962	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
18963	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
18964	// not assigned to an instance on the network.
18965	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
18966	// ip forward.
18967	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
18968	// refers to an instance that does not exist.
18969	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
18970	// URL refers to an instance that is not on the same network as the
18971	// route.
18972	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
18973	// have a status of RUNNING.
18974	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
18975	// continue the process despite the mentioned error.
18976	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
18977	// page.
18978	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
18979	// missing due to errors
18980	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
18981	// that requires a TOS they have not accepted.
18982	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
18983	// resource is in use.
18984	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
18985	// auto-delete could not be deleted because they were in use.
18986	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
18987	// ignored.
18988	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
18989	// instance group manager is valid as such, but its application does not
18990	// make a lot of sense, because it allows only single instance in
18991	// instance group.
18992	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
18993	// are present
18994	//   "UNREACHABLE" - A given scope cannot be reached.
18995	Code string `json:"code,omitempty"`
18996
18997	// Data: [Output Only] Metadata about this warning in key: value format.
18998	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
18999	// }
19000	Data []*InstanceListWarningData `json:"data,omitempty"`
19001
19002	// Message: [Output Only] A human-readable description of the warning
19003	// code.
19004	Message string `json:"message,omitempty"`
19005
19006	// ForceSendFields is a list of field names (e.g. "Code") to
19007	// unconditionally include in API requests. By default, fields with
19008	// empty or default values are omitted from API requests. However, any
19009	// non-pointer, non-interface field appearing in ForceSendFields will be
19010	// sent to the server regardless of whether the field is empty or not.
19011	// This may be used to include empty fields in Patch requests.
19012	ForceSendFields []string `json:"-"`
19013
19014	// NullFields is a list of field names (e.g. "Code") to include in API
19015	// requests with the JSON null value. By default, fields with empty
19016	// values are omitted from API requests. However, any field with an
19017	// empty value appearing in NullFields will be sent to the server as
19018	// null. It is an error if a field in this list has a non-empty value.
19019	// This may be used to include null fields in Patch requests.
19020	NullFields []string `json:"-"`
19021}
19022
19023func (s *InstanceListWarning) MarshalJSON() ([]byte, error) {
19024	type NoMethod InstanceListWarning
19025	raw := NoMethod(*s)
19026	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19027}
19028
19029type InstanceListWarningData struct {
19030	// Key: [Output Only] A key that provides more detail on the warning
19031	// being returned. For example, for warnings where there are no results
19032	// in a list request for a particular zone, this key might be scope and
19033	// the key value might be the zone name. Other examples might be a key
19034	// indicating a deprecated resource and a suggested replacement, or a
19035	// warning about invalid network settings (for example, if an instance
19036	// attempts to perform IP forwarding but is not enabled for IP
19037	// forwarding).
19038	Key string `json:"key,omitempty"`
19039
19040	// Value: [Output Only] A warning data value corresponding to the key.
19041	Value string `json:"value,omitempty"`
19042
19043	// ForceSendFields is a list of field names (e.g. "Key") to
19044	// unconditionally include in API requests. By default, fields with
19045	// empty or default values are omitted from API requests. However, any
19046	// non-pointer, non-interface field appearing in ForceSendFields will be
19047	// sent to the server regardless of whether the field is empty or not.
19048	// This may be used to include empty fields in Patch requests.
19049	ForceSendFields []string `json:"-"`
19050
19051	// NullFields is a list of field names (e.g. "Key") to include in API
19052	// requests with the JSON null value. By default, fields with empty
19053	// values are omitted from API requests. However, any field with an
19054	// empty value appearing in NullFields will be sent to the server as
19055	// null. It is an error if a field in this list has a non-empty value.
19056	// This may be used to include null fields in Patch requests.
19057	NullFields []string `json:"-"`
19058}
19059
19060func (s *InstanceListWarningData) MarshalJSON() ([]byte, error) {
19061	type NoMethod InstanceListWarningData
19062	raw := NoMethod(*s)
19063	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19064}
19065
19066// InstanceListReferrers: Contains a list of instance referrers.
19067type InstanceListReferrers struct {
19068	// Id: [Output Only] Unique identifier for the resource; defined by the
19069	// server.
19070	Id string `json:"id,omitempty"`
19071
19072	// Items: A list of Reference resources.
19073	Items []*Reference `json:"items,omitempty"`
19074
19075	// Kind: [Output Only] Type of resource. Always
19076	// compute#instanceListReferrers for lists of Instance referrers.
19077	Kind string `json:"kind,omitempty"`
19078
19079	// NextPageToken: [Output Only] This token allows you to get the next
19080	// page of results for list requests. If the number of results is larger
19081	// than maxResults, use the nextPageToken as a value for the query
19082	// parameter pageToken in the next list request. Subsequent list
19083	// requests will have their own nextPageToken to continue paging through
19084	// the results.
19085	NextPageToken string `json:"nextPageToken,omitempty"`
19086
19087	// SelfLink: [Output Only] Server-defined URL for this resource.
19088	SelfLink string `json:"selfLink,omitempty"`
19089
19090	// Warning: [Output Only] Informational warning message.
19091	Warning *InstanceListReferrersWarning `json:"warning,omitempty"`
19092
19093	// ServerResponse contains the HTTP response code and headers from the
19094	// server.
19095	googleapi.ServerResponse `json:"-"`
19096
19097	// ForceSendFields is a list of field names (e.g. "Id") to
19098	// unconditionally include in API requests. By default, fields with
19099	// empty or default values are omitted from API requests. However, any
19100	// non-pointer, non-interface field appearing in ForceSendFields will be
19101	// sent to the server regardless of whether the field is empty or not.
19102	// This may be used to include empty fields in Patch requests.
19103	ForceSendFields []string `json:"-"`
19104
19105	// NullFields is a list of field names (e.g. "Id") to include in API
19106	// requests with the JSON null value. By default, fields with empty
19107	// values are omitted from API requests. However, any field with an
19108	// empty value appearing in NullFields will be sent to the server as
19109	// null. It is an error if a field in this list has a non-empty value.
19110	// This may be used to include null fields in Patch requests.
19111	NullFields []string `json:"-"`
19112}
19113
19114func (s *InstanceListReferrers) MarshalJSON() ([]byte, error) {
19115	type NoMethod InstanceListReferrers
19116	raw := NoMethod(*s)
19117	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19118}
19119
19120// InstanceListReferrersWarning: [Output Only] Informational warning
19121// message.
19122type InstanceListReferrersWarning struct {
19123	// Code: [Output Only] A warning code, if applicable. For example,
19124	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19125	// the response.
19126	//
19127	// Possible values:
19128	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
19129	// changes made by a failed operation.
19130	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
19131	// created.
19132	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
19133	// resources has a type marked as deprecated
19134	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
19135	// that is larger than image size.
19136	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
19137	// resources has a type marked as experimental
19138	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
19139	// call
19140	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
19141	// overridden. Deprecated unused field.
19142	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
19143	// injected kernel, which is deprecated.
19144	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
19145	// exceedingly large number of resources
19146	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
19147	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
19148	// not assigned to an instance on the network.
19149	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
19150	// ip forward.
19151	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
19152	// refers to an instance that does not exist.
19153	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
19154	// URL refers to an instance that is not on the same network as the
19155	// route.
19156	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
19157	// have a status of RUNNING.
19158	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
19159	// continue the process despite the mentioned error.
19160	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
19161	// page.
19162	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
19163	// missing due to errors
19164	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
19165	// that requires a TOS they have not accepted.
19166	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
19167	// resource is in use.
19168	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
19169	// auto-delete could not be deleted because they were in use.
19170	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
19171	// ignored.
19172	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
19173	// instance group manager is valid as such, but its application does not
19174	// make a lot of sense, because it allows only single instance in
19175	// instance group.
19176	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
19177	// are present
19178	//   "UNREACHABLE" - A given scope cannot be reached.
19179	Code string `json:"code,omitempty"`
19180
19181	// Data: [Output Only] Metadata about this warning in key: value format.
19182	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
19183	// }
19184	Data []*InstanceListReferrersWarningData `json:"data,omitempty"`
19185
19186	// Message: [Output Only] A human-readable description of the warning
19187	// code.
19188	Message string `json:"message,omitempty"`
19189
19190	// ForceSendFields is a list of field names (e.g. "Code") to
19191	// unconditionally include in API requests. By default, fields with
19192	// empty or default values are omitted from API requests. However, any
19193	// non-pointer, non-interface field appearing in ForceSendFields will be
19194	// sent to the server regardless of whether the field is empty or not.
19195	// This may be used to include empty fields in Patch requests.
19196	ForceSendFields []string `json:"-"`
19197
19198	// NullFields is a list of field names (e.g. "Code") to include in API
19199	// requests with the JSON null value. By default, fields with empty
19200	// values are omitted from API requests. However, any field with an
19201	// empty value appearing in NullFields will be sent to the server as
19202	// null. It is an error if a field in this list has a non-empty value.
19203	// This may be used to include null fields in Patch requests.
19204	NullFields []string `json:"-"`
19205}
19206
19207func (s *InstanceListReferrersWarning) MarshalJSON() ([]byte, error) {
19208	type NoMethod InstanceListReferrersWarning
19209	raw := NoMethod(*s)
19210	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19211}
19212
19213type InstanceListReferrersWarningData struct {
19214	// Key: [Output Only] A key that provides more detail on the warning
19215	// being returned. For example, for warnings where there are no results
19216	// in a list request for a particular zone, this key might be scope and
19217	// the key value might be the zone name. Other examples might be a key
19218	// indicating a deprecated resource and a suggested replacement, or a
19219	// warning about invalid network settings (for example, if an instance
19220	// attempts to perform IP forwarding but is not enabled for IP
19221	// forwarding).
19222	Key string `json:"key,omitempty"`
19223
19224	// Value: [Output Only] A warning data value corresponding to the key.
19225	Value string `json:"value,omitempty"`
19226
19227	// ForceSendFields is a list of field names (e.g. "Key") to
19228	// unconditionally include in API requests. By default, fields with
19229	// empty or default values are omitted from API requests. However, any
19230	// non-pointer, non-interface field appearing in ForceSendFields will be
19231	// sent to the server regardless of whether the field is empty or not.
19232	// This may be used to include empty fields in Patch requests.
19233	ForceSendFields []string `json:"-"`
19234
19235	// NullFields is a list of field names (e.g. "Key") to include in API
19236	// requests with the JSON null value. By default, fields with empty
19237	// values are omitted from API requests. However, any field with an
19238	// empty value appearing in NullFields will be sent to the server as
19239	// null. It is an error if a field in this list has a non-empty value.
19240	// This may be used to include null fields in Patch requests.
19241	NullFields []string `json:"-"`
19242}
19243
19244func (s *InstanceListReferrersWarningData) MarshalJSON() ([]byte, error) {
19245	type NoMethod InstanceListReferrersWarningData
19246	raw := NoMethod(*s)
19247	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19248}
19249
19250type InstanceManagedByIgmError struct {
19251	// Error: [Output Only] Contents of the error.
19252	Error *InstanceManagedByIgmErrorManagedInstanceError `json:"error,omitempty"`
19253
19254	// InstanceActionDetails: [Output Only] Details of the instance action
19255	// that triggered this error. May be null, if the error was not caused
19256	// by an action on an instance. This field is optional.
19257	InstanceActionDetails *InstanceManagedByIgmErrorInstanceActionDetails `json:"instanceActionDetails,omitempty"`
19258
19259	// Timestamp: [Output Only] The time that this error occurred. This
19260	// value is in RFC3339 text format.
19261	Timestamp string `json:"timestamp,omitempty"`
19262
19263	// ForceSendFields is a list of field names (e.g. "Error") to
19264	// unconditionally include in API requests. By default, fields with
19265	// empty or default values are omitted from API requests. However, any
19266	// non-pointer, non-interface field appearing in ForceSendFields will be
19267	// sent to the server regardless of whether the field is empty or not.
19268	// This may be used to include empty fields in Patch requests.
19269	ForceSendFields []string `json:"-"`
19270
19271	// NullFields is a list of field names (e.g. "Error") to include in API
19272	// requests with the JSON null value. By default, fields with empty
19273	// values are omitted from API requests. However, any field with an
19274	// empty value appearing in NullFields will be sent to the server as
19275	// null. It is an error if a field in this list has a non-empty value.
19276	// This may be used to include null fields in Patch requests.
19277	NullFields []string `json:"-"`
19278}
19279
19280func (s *InstanceManagedByIgmError) MarshalJSON() ([]byte, error) {
19281	type NoMethod InstanceManagedByIgmError
19282	raw := NoMethod(*s)
19283	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19284}
19285
19286type InstanceManagedByIgmErrorInstanceActionDetails struct {
19287	// Action: [Output Only] Action that managed instance group was
19288	// executing on the instance when the error occurred. Possible values:
19289	//
19290	// Possible values:
19291	//   "ABANDONING" - The managed instance group is abandoning this
19292	// instance. The instance will be removed from the instance group and
19293	// from any target pools that are associated with this group.
19294	//   "CREATING" - The managed instance group is creating this instance.
19295	// If the group fails to create this instance, it will try again until
19296	// it is successful.
19297	//   "CREATING_WITHOUT_RETRIES" - The managed instance group is
19298	// attempting to create this instance only once. If the group fails to
19299	// create this instance, it does not try again and the group's
19300	// targetSize value is decreased.
19301	//   "DELETING" - The managed instance group is permanently deleting
19302	// this instance.
19303	//   "NONE" - The managed instance group has not scheduled any actions
19304	// for this instance.
19305	//   "RECREATING" - The managed instance group is recreating this
19306	// instance.
19307	//   "REFRESHING" - The managed instance group is applying configuration
19308	// changes to the instance without stopping it. For example, the group
19309	// can update the target pool list for an instance without stopping that
19310	// instance.
19311	//   "RESTARTING" - The managed instance group is restarting this
19312	// instance.
19313	//   "VERIFYING" - The managed instance group is verifying this already
19314	// created instance. Verification happens every time the instance is
19315	// (re)created or restarted and consists of: 1. Waiting until health
19316	// check specified as part of this managed instance group's autohealing
19317	// policy reports HEALTHY. Note: Applies only if autohealing policy has
19318	// a health check specified 2. Waiting for addition verification steps
19319	// performed as post-instance creation (subject to future extensions).
19320	Action string `json:"action,omitempty"`
19321
19322	// Instance: [Output Only] The URL of the instance. The URL can be set
19323	// even if the instance has not yet been created.
19324	Instance string `json:"instance,omitempty"`
19325
19326	// Version: [Output Only] Version this instance was created from, or was
19327	// being created from, but the creation failed. Corresponds to one of
19328	// the versions that were set on the Instance Group Manager resource at
19329	// the time this instance was being created.
19330	Version *ManagedInstanceVersion `json:"version,omitempty"`
19331
19332	// ForceSendFields is a list of field names (e.g. "Action") to
19333	// unconditionally include in API requests. By default, fields with
19334	// empty or default values are omitted from API requests. However, any
19335	// non-pointer, non-interface field appearing in ForceSendFields will be
19336	// sent to the server regardless of whether the field is empty or not.
19337	// This may be used to include empty fields in Patch requests.
19338	ForceSendFields []string `json:"-"`
19339
19340	// NullFields is a list of field names (e.g. "Action") to include in API
19341	// requests with the JSON null value. By default, fields with empty
19342	// values are omitted from API requests. However, any field with an
19343	// empty value appearing in NullFields will be sent to the server as
19344	// null. It is an error if a field in this list has a non-empty value.
19345	// This may be used to include null fields in Patch requests.
19346	NullFields []string `json:"-"`
19347}
19348
19349func (s *InstanceManagedByIgmErrorInstanceActionDetails) MarshalJSON() ([]byte, error) {
19350	type NoMethod InstanceManagedByIgmErrorInstanceActionDetails
19351	raw := NoMethod(*s)
19352	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19353}
19354
19355type InstanceManagedByIgmErrorManagedInstanceError struct {
19356	// Code: [Output Only] Error code.
19357	Code string `json:"code,omitempty"`
19358
19359	// Message: [Output Only] Error message.
19360	Message string `json:"message,omitempty"`
19361
19362	// ForceSendFields is a list of field names (e.g. "Code") to
19363	// unconditionally include in API requests. By default, fields with
19364	// empty or default values are omitted from API requests. However, any
19365	// non-pointer, non-interface field appearing in ForceSendFields will be
19366	// sent to the server regardless of whether the field is empty or not.
19367	// This may be used to include empty fields in Patch requests.
19368	ForceSendFields []string `json:"-"`
19369
19370	// NullFields is a list of field names (e.g. "Code") to include in API
19371	// requests with the JSON null value. By default, fields with empty
19372	// values are omitted from API requests. However, any field with an
19373	// empty value appearing in NullFields will be sent to the server as
19374	// null. It is an error if a field in this list has a non-empty value.
19375	// This may be used to include null fields in Patch requests.
19376	NullFields []string `json:"-"`
19377}
19378
19379func (s *InstanceManagedByIgmErrorManagedInstanceError) MarshalJSON() ([]byte, error) {
19380	type NoMethod InstanceManagedByIgmErrorManagedInstanceError
19381	raw := NoMethod(*s)
19382	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19383}
19384
19385type InstanceMoveRequest struct {
19386	// DestinationZone: The URL of the destination zone to move the
19387	// instance. This can be a full or partial URL. For example, the
19388	// following are all valid URLs to a zone: -
19389	// https://www.googleapis.com/compute/v1/projects/project/zones/zone -
19390	// projects/project/zones/zone - zones/zone
19391	DestinationZone string `json:"destinationZone,omitempty"`
19392
19393	// TargetInstance: The URL of the target instance to move. This can be a
19394	// full or partial URL. For example, the following are all valid URLs to
19395	// an instance: -
19396	// https://www.googleapis.com/compute/v1/projects/project/zones/zone
19397	// /instances/instance - projects/project/zones/zone/instances/instance
19398	// - zones/zone/instances/instance
19399	TargetInstance string `json:"targetInstance,omitempty"`
19400
19401	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
19402	// unconditionally include in API requests. By default, fields with
19403	// empty or default values are omitted from API requests. However, any
19404	// non-pointer, non-interface field appearing in ForceSendFields will be
19405	// sent to the server regardless of whether the field is empty or not.
19406	// This may be used to include empty fields in Patch requests.
19407	ForceSendFields []string `json:"-"`
19408
19409	// NullFields is a list of field names (e.g. "DestinationZone") to
19410	// include in API requests with the JSON null value. By default, fields
19411	// with empty values are omitted from API requests. However, any field
19412	// with an empty value appearing in NullFields will be sent to the
19413	// server as null. It is an error if a field in this list has a
19414	// non-empty value. This may be used to include null fields in Patch
19415	// requests.
19416	NullFields []string `json:"-"`
19417}
19418
19419func (s *InstanceMoveRequest) MarshalJSON() ([]byte, error) {
19420	type NoMethod InstanceMoveRequest
19421	raw := NoMethod(*s)
19422	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19423}
19424
19425type InstanceProperties struct {
19426	// AdvancedMachineFeatures: Controls for advanced machine-related
19427	// behavior features.
19428	AdvancedMachineFeatures *AdvancedMachineFeatures `json:"advancedMachineFeatures,omitempty"`
19429
19430	// CanIpForward: Enables instances created based on these properties to
19431	// send packets with source IP addresses other than their own and
19432	// receive packets with destination IP addresses other than their own.
19433	// If these instances will be used as an IP gateway or it will be set as
19434	// the next-hop in a Route resource, specify true. If unsure, leave this
19435	// set to false. See the Enable IP forwarding documentation for more
19436	// information.
19437	CanIpForward bool `json:"canIpForward,omitempty"`
19438
19439	// ConfidentialInstanceConfig: Specifies the Confidential Instance
19440	// options.
19441	ConfidentialInstanceConfig *ConfidentialInstanceConfig `json:"confidentialInstanceConfig,omitempty"`
19442
19443	// Description: An optional text description for the instances that are
19444	// created from these properties.
19445	Description string `json:"description,omitempty"`
19446
19447	// Disks: An array of disks that are associated with the instances that
19448	// are created from these properties.
19449	Disks []*AttachedDisk `json:"disks,omitempty"`
19450
19451	// GuestAccelerators: A list of guest accelerator cards' type and count
19452	// to use for instances created from these properties.
19453	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
19454
19455	// Labels: Labels to apply to instances that are created from these
19456	// properties.
19457	Labels map[string]string `json:"labels,omitempty"`
19458
19459	// MachineType: The machine type to use for instances that are created
19460	// from these properties.
19461	MachineType string `json:"machineType,omitempty"`
19462
19463	// Metadata: The metadata key/value pairs to assign to instances that
19464	// are created from these properties. These pairs can consist of custom
19465	// metadata or predefined keys. See Project and instance metadata for
19466	// more information.
19467	Metadata *Metadata `json:"metadata,omitempty"`
19468
19469	// MinCpuPlatform: Minimum cpu/platform to be used by instances. The
19470	// instance may be scheduled on the specified or newer cpu/platform.
19471	// Applicable values are the friendly names of CPU platforms, such as
19472	// minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy
19473	// Bridge". For more information, read Specifying a Minimum CPU
19474	// Platform.
19475	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
19476
19477	// NetworkInterfaces: An array of network access configurations for this
19478	// interface.
19479	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
19480
19481	// PrivateIpv6GoogleAccess: The private IPv6 google access type for VMs.
19482	// If not specified, use INHERIT_FROM_SUBNETWORK as default.
19483	//
19484	// Possible values:
19485	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE" - Bidirectional private
19486	// IPv6 access to/from Google services. If specified, the subnetwork who
19487	// is attached to the instance's default network interface will be
19488	// assigned an internal IPv6 prefix if it doesn't have before.
19489	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE" - Outbound private IPv6
19490	// access from VMs in this subnet to Google services. If specified, the
19491	// subnetwork who is attached to the instance's default network
19492	// interface will be assigned an internal IPv6 prefix if it doesn't have
19493	// before.
19494	//   "INHERIT_FROM_SUBNETWORK" - Each network interface inherits
19495	// PrivateIpv6GoogleAccess from its subnetwork.
19496	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
19497
19498	// ReservationAffinity: Specifies the reservations that instances can
19499	// consume from.
19500	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
19501
19502	// ResourcePolicies: Resource policies (names, not ULRs) applied to
19503	// instances created from these properties.
19504	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
19505
19506	// Scheduling: Specifies the scheduling options for the instances that
19507	// are created from these properties.
19508	Scheduling *Scheduling `json:"scheduling,omitempty"`
19509
19510	// ServiceAccounts: A list of service accounts with specified scopes.
19511	// Access tokens for these service accounts are available to the
19512	// instances that are created from these properties. Use metadata
19513	// queries to obtain the access tokens for these instances.
19514	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
19515
19516	ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`
19517
19518	// Tags: A list of tags to apply to the instances that are created from
19519	// these properties. The tags identify valid sources or targets for
19520	// network firewalls. The setTags method can modify this list of tags.
19521	// Each tag within the list must comply with RFC1035.
19522	Tags *Tags `json:"tags,omitempty"`
19523
19524	// ForceSendFields is a list of field names (e.g.
19525	// "AdvancedMachineFeatures") to unconditionally include in API
19526	// requests. By default, fields with empty or default values are omitted
19527	// from API requests. However, any non-pointer, non-interface field
19528	// appearing in ForceSendFields will be sent to the server regardless of
19529	// whether the field is empty or not. This may be used to include empty
19530	// fields in Patch requests.
19531	ForceSendFields []string `json:"-"`
19532
19533	// NullFields is a list of field names (e.g. "AdvancedMachineFeatures")
19534	// to include in API requests with the JSON null value. By default,
19535	// fields with empty values are omitted from API requests. However, any
19536	// field with an empty value appearing in NullFields will be sent to the
19537	// server as null. It is an error if a field in this list has a
19538	// non-empty value. This may be used to include null fields in Patch
19539	// requests.
19540	NullFields []string `json:"-"`
19541}
19542
19543func (s *InstanceProperties) MarshalJSON() ([]byte, error) {
19544	type NoMethod InstanceProperties
19545	raw := NoMethod(*s)
19546	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19547}
19548
19549type InstanceReference struct {
19550	// Instance: The URL for a specific instance. @required
19551	// compute.instancegroups.addInstances/removeInstances
19552	Instance string `json:"instance,omitempty"`
19553
19554	// ForceSendFields is a list of field names (e.g. "Instance") to
19555	// unconditionally include in API requests. By default, fields with
19556	// empty or default values are omitted from API requests. However, any
19557	// non-pointer, non-interface field appearing in ForceSendFields will be
19558	// sent to the server regardless of whether the field is empty or not.
19559	// This may be used to include empty fields in Patch requests.
19560	ForceSendFields []string `json:"-"`
19561
19562	// NullFields is a list of field names (e.g. "Instance") to include in
19563	// API requests with the JSON null value. By default, fields with empty
19564	// values are omitted from API requests. However, any field with an
19565	// empty value appearing in NullFields will be sent to the server as
19566	// null. It is an error if a field in this list has a non-empty value.
19567	// This may be used to include null fields in Patch requests.
19568	NullFields []string `json:"-"`
19569}
19570
19571func (s *InstanceReference) MarshalJSON() ([]byte, error) {
19572	type NoMethod InstanceReference
19573	raw := NoMethod(*s)
19574	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19575}
19576
19577// InstanceTemplate: Represents an Instance Template resource. You can
19578// use instance templates to create VM instances and managed instance
19579// groups. For more information, read Instance Templates.
19580type InstanceTemplate struct {
19581	// CreationTimestamp: [Output Only] The creation timestamp for this
19582	// instance template in RFC3339 text format.
19583	CreationTimestamp string `json:"creationTimestamp,omitempty"`
19584
19585	// Description: An optional description of this resource. Provide this
19586	// property when you create the resource.
19587	Description string `json:"description,omitempty"`
19588
19589	// Id: [Output Only] A unique identifier for this instance template. The
19590	// server defines this identifier.
19591	Id uint64 `json:"id,omitempty,string"`
19592
19593	// Kind: [Output Only] The resource type, which is always
19594	// compute#instanceTemplate for instance templates.
19595	Kind string `json:"kind,omitempty"`
19596
19597	// Name: Name of the resource; provided by the client when the resource
19598	// is created. The name must be 1-63 characters long, and comply with
19599	// RFC1035. Specifically, the name must be 1-63 characters long and
19600	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
19601	// the first character must be a lowercase letter, and all following
19602	// characters must be a dash, lowercase letter, or digit, except the
19603	// last character, which cannot be a dash.
19604	Name string `json:"name,omitempty"`
19605
19606	// Properties: The instance properties for this instance template.
19607	Properties *InstanceProperties `json:"properties,omitempty"`
19608
19609	// SelfLink: [Output Only] The URL for this instance template. The
19610	// server defines this URL.
19611	SelfLink string `json:"selfLink,omitempty"`
19612
19613	// SourceInstance: The source instance used to create the template. You
19614	// can provide this as a partial or full URL to the resource. For
19615	// example, the following are valid values: -
19616	// https://www.googleapis.com/compute/v1/projects/project/zones/zone
19617	// /instances/instance - projects/project/zones/zone/instances/instance
19618	SourceInstance string `json:"sourceInstance,omitempty"`
19619
19620	// SourceInstanceParams: The source instance params to use to create
19621	// this instance template.
19622	SourceInstanceParams *SourceInstanceParams `json:"sourceInstanceParams,omitempty"`
19623
19624	// ServerResponse contains the HTTP response code and headers from the
19625	// server.
19626	googleapi.ServerResponse `json:"-"`
19627
19628	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
19629	// to unconditionally include in API requests. By default, fields with
19630	// empty or default values are omitted from API requests. However, any
19631	// non-pointer, non-interface field appearing in ForceSendFields will be
19632	// sent to the server regardless of whether the field is empty or not.
19633	// This may be used to include empty fields in Patch requests.
19634	ForceSendFields []string `json:"-"`
19635
19636	// NullFields is a list of field names (e.g. "CreationTimestamp") to
19637	// include in API requests with the JSON null value. By default, fields
19638	// with empty values are omitted from API requests. However, any field
19639	// with an empty value appearing in NullFields will be sent to the
19640	// server as null. It is an error if a field in this list has a
19641	// non-empty value. This may be used to include null fields in Patch
19642	// requests.
19643	NullFields []string `json:"-"`
19644}
19645
19646func (s *InstanceTemplate) MarshalJSON() ([]byte, error) {
19647	type NoMethod InstanceTemplate
19648	raw := NoMethod(*s)
19649	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19650}
19651
19652// InstanceTemplateList: A list of instance templates.
19653type InstanceTemplateList struct {
19654	// Id: [Output Only] Unique identifier for the resource; defined by the
19655	// server.
19656	Id string `json:"id,omitempty"`
19657
19658	// Items: A list of InstanceTemplate resources.
19659	Items []*InstanceTemplate `json:"items,omitempty"`
19660
19661	// Kind: [Output Only] The resource type, which is always
19662	// compute#instanceTemplatesListResponse for instance template lists.
19663	Kind string `json:"kind,omitempty"`
19664
19665	// NextPageToken: [Output Only] This token allows you to get the next
19666	// page of results for list requests. If the number of results is larger
19667	// than maxResults, use the nextPageToken as a value for the query
19668	// parameter pageToken in the next list request. Subsequent list
19669	// requests will have their own nextPageToken to continue paging through
19670	// the results.
19671	NextPageToken string `json:"nextPageToken,omitempty"`
19672
19673	// SelfLink: [Output Only] Server-defined URL for this resource.
19674	SelfLink string `json:"selfLink,omitempty"`
19675
19676	// Warning: [Output Only] Informational warning message.
19677	Warning *InstanceTemplateListWarning `json:"warning,omitempty"`
19678
19679	// ServerResponse contains the HTTP response code and headers from the
19680	// server.
19681	googleapi.ServerResponse `json:"-"`
19682
19683	// ForceSendFields is a list of field names (e.g. "Id") to
19684	// unconditionally include in API requests. By default, fields with
19685	// empty or default values are omitted from API requests. However, any
19686	// non-pointer, non-interface field appearing in ForceSendFields will be
19687	// sent to the server regardless of whether the field is empty or not.
19688	// This may be used to include empty fields in Patch requests.
19689	ForceSendFields []string `json:"-"`
19690
19691	// NullFields is a list of field names (e.g. "Id") to include in API
19692	// requests with the JSON null value. By default, fields with empty
19693	// values are omitted from API requests. However, any field with an
19694	// empty value appearing in NullFields will be sent to the server as
19695	// null. It is an error if a field in this list has a non-empty value.
19696	// This may be used to include null fields in Patch requests.
19697	NullFields []string `json:"-"`
19698}
19699
19700func (s *InstanceTemplateList) MarshalJSON() ([]byte, error) {
19701	type NoMethod InstanceTemplateList
19702	raw := NoMethod(*s)
19703	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19704}
19705
19706// InstanceTemplateListWarning: [Output Only] Informational warning
19707// message.
19708type InstanceTemplateListWarning struct {
19709	// Code: [Output Only] A warning code, if applicable. For example,
19710	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19711	// the response.
19712	//
19713	// Possible values:
19714	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
19715	// changes made by a failed operation.
19716	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
19717	// created.
19718	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
19719	// resources has a type marked as deprecated
19720	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
19721	// that is larger than image size.
19722	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
19723	// resources has a type marked as experimental
19724	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
19725	// call
19726	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
19727	// overridden. Deprecated unused field.
19728	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
19729	// injected kernel, which is deprecated.
19730	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
19731	// exceedingly large number of resources
19732	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
19733	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
19734	// not assigned to an instance on the network.
19735	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
19736	// ip forward.
19737	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
19738	// refers to an instance that does not exist.
19739	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
19740	// URL refers to an instance that is not on the same network as the
19741	// route.
19742	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
19743	// have a status of RUNNING.
19744	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
19745	// continue the process despite the mentioned error.
19746	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
19747	// page.
19748	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
19749	// missing due to errors
19750	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
19751	// that requires a TOS they have not accepted.
19752	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
19753	// resource is in use.
19754	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
19755	// auto-delete could not be deleted because they were in use.
19756	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
19757	// ignored.
19758	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
19759	// instance group manager is valid as such, but its application does not
19760	// make a lot of sense, because it allows only single instance in
19761	// instance group.
19762	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
19763	// are present
19764	//   "UNREACHABLE" - A given scope cannot be reached.
19765	Code string `json:"code,omitempty"`
19766
19767	// Data: [Output Only] Metadata about this warning in key: value format.
19768	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
19769	// }
19770	Data []*InstanceTemplateListWarningData `json:"data,omitempty"`
19771
19772	// Message: [Output Only] A human-readable description of the warning
19773	// code.
19774	Message string `json:"message,omitempty"`
19775
19776	// ForceSendFields is a list of field names (e.g. "Code") to
19777	// unconditionally include in API requests. By default, fields with
19778	// empty or default values are omitted from API requests. However, any
19779	// non-pointer, non-interface field appearing in ForceSendFields will be
19780	// sent to the server regardless of whether the field is empty or not.
19781	// This may be used to include empty fields in Patch requests.
19782	ForceSendFields []string `json:"-"`
19783
19784	// NullFields is a list of field names (e.g. "Code") to include in API
19785	// requests with the JSON null value. By default, fields with empty
19786	// values are omitted from API requests. However, any field with an
19787	// empty value appearing in NullFields will be sent to the server as
19788	// null. It is an error if a field in this list has a non-empty value.
19789	// This may be used to include null fields in Patch requests.
19790	NullFields []string `json:"-"`
19791}
19792
19793func (s *InstanceTemplateListWarning) MarshalJSON() ([]byte, error) {
19794	type NoMethod InstanceTemplateListWarning
19795	raw := NoMethod(*s)
19796	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19797}
19798
19799type InstanceTemplateListWarningData struct {
19800	// Key: [Output Only] A key that provides more detail on the warning
19801	// being returned. For example, for warnings where there are no results
19802	// in a list request for a particular zone, this key might be scope and
19803	// the key value might be the zone name. Other examples might be a key
19804	// indicating a deprecated resource and a suggested replacement, or a
19805	// warning about invalid network settings (for example, if an instance
19806	// attempts to perform IP forwarding but is not enabled for IP
19807	// forwarding).
19808	Key string `json:"key,omitempty"`
19809
19810	// Value: [Output Only] A warning data value corresponding to the key.
19811	Value string `json:"value,omitempty"`
19812
19813	// ForceSendFields is a list of field names (e.g. "Key") to
19814	// unconditionally include in API requests. By default, fields with
19815	// empty or default values are omitted from API requests. However, any
19816	// non-pointer, non-interface field appearing in ForceSendFields will be
19817	// sent to the server regardless of whether the field is empty or not.
19818	// This may be used to include empty fields in Patch requests.
19819	ForceSendFields []string `json:"-"`
19820
19821	// NullFields is a list of field names (e.g. "Key") to include in API
19822	// requests with the JSON null value. By default, fields with empty
19823	// values are omitted from API requests. However, any field with an
19824	// empty value appearing in NullFields will be sent to the server as
19825	// null. It is an error if a field in this list has a non-empty value.
19826	// This may be used to include null fields in Patch requests.
19827	NullFields []string `json:"-"`
19828}
19829
19830func (s *InstanceTemplateListWarningData) MarshalJSON() ([]byte, error) {
19831	type NoMethod InstanceTemplateListWarningData
19832	raw := NoMethod(*s)
19833	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19834}
19835
19836type InstanceWithNamedPorts struct {
19837	// Instance: [Output Only] The URL of the instance.
19838	Instance string `json:"instance,omitempty"`
19839
19840	// NamedPorts: [Output Only] The named ports that belong to this
19841	// instance group.
19842	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
19843
19844	// Status: [Output Only] The status of the instance.
19845	//
19846	// Possible values:
19847	//   "DEPROVISIONING" - The Nanny is halted and we are performing tear
19848	// down tasks like network deprogramming, releasing quota, IP, tearing
19849	// down disks etc.
19850	//   "PROVISIONING" - Resources are being allocated for the instance.
19851	//   "REPAIRING" - The instance is in repair.
19852	//   "RUNNING" - The instance is running.
19853	//   "STAGING" - All required resources have been allocated and the
19854	// instance is being started.
19855	//   "STOPPED" - The instance has stopped successfully.
19856	//   "STOPPING" - The instance is currently stopping (either being
19857	// deleted or killed).
19858	//   "SUSPENDED" - The instance has suspended.
19859	//   "SUSPENDING" - The instance is suspending.
19860	//   "TERMINATED" - The instance has stopped (either by explicit action
19861	// or underlying failure).
19862	Status string `json:"status,omitempty"`
19863
19864	// ForceSendFields is a list of field names (e.g. "Instance") to
19865	// unconditionally include in API requests. By default, fields with
19866	// empty or default values are omitted from API requests. However, any
19867	// non-pointer, non-interface field appearing in ForceSendFields will be
19868	// sent to the server regardless of whether the field is empty or not.
19869	// This may be used to include empty fields in Patch requests.
19870	ForceSendFields []string `json:"-"`
19871
19872	// NullFields is a list of field names (e.g. "Instance") to include in
19873	// API requests with the JSON null value. By default, fields with empty
19874	// values are omitted from API requests. However, any field with an
19875	// empty value appearing in NullFields will be sent to the server as
19876	// null. It is an error if a field in this list has a non-empty value.
19877	// This may be used to include null fields in Patch requests.
19878	NullFields []string `json:"-"`
19879}
19880
19881func (s *InstanceWithNamedPorts) MarshalJSON() ([]byte, error) {
19882	type NoMethod InstanceWithNamedPorts
19883	raw := NoMethod(*s)
19884	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19885}
19886
19887type InstancesAddResourcePoliciesRequest struct {
19888	// ResourcePolicies: Resource policies to be added to this instance.
19889	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
19890
19891	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
19892	// unconditionally include in API requests. By default, fields with
19893	// empty or default values are omitted from API requests. However, any
19894	// non-pointer, non-interface field appearing in ForceSendFields will be
19895	// sent to the server regardless of whether the field is empty or not.
19896	// This may be used to include empty fields in Patch requests.
19897	ForceSendFields []string `json:"-"`
19898
19899	// NullFields is a list of field names (e.g. "ResourcePolicies") to
19900	// include in API requests with the JSON null value. By default, fields
19901	// with empty values are omitted from API requests. However, any field
19902	// with an empty value appearing in NullFields will be sent to the
19903	// server as null. It is an error if a field in this list has a
19904	// non-empty value. This may be used to include null fields in Patch
19905	// requests.
19906	NullFields []string `json:"-"`
19907}
19908
19909func (s *InstancesAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
19910	type NoMethod InstancesAddResourcePoliciesRequest
19911	raw := NoMethod(*s)
19912	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19913}
19914
19915type InstancesGetEffectiveFirewallsResponse struct {
19916	// FirewallPolicys: Effective firewalls from firewall policies.
19917	FirewallPolicys []*InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy `json:"firewallPolicys,omitempty"`
19918
19919	// Firewalls: Effective firewalls on the instance.
19920	Firewalls []*Firewall `json:"firewalls,omitempty"`
19921
19922	// ServerResponse contains the HTTP response code and headers from the
19923	// server.
19924	googleapi.ServerResponse `json:"-"`
19925
19926	// ForceSendFields is a list of field names (e.g. "FirewallPolicys") to
19927	// unconditionally include in API requests. By default, fields with
19928	// empty or default values are omitted from API requests. However, any
19929	// non-pointer, non-interface field appearing in ForceSendFields will be
19930	// sent to the server regardless of whether the field is empty or not.
19931	// This may be used to include empty fields in Patch requests.
19932	ForceSendFields []string `json:"-"`
19933
19934	// NullFields is a list of field names (e.g. "FirewallPolicys") to
19935	// include in API requests with the JSON null value. By default, fields
19936	// with empty values are omitted from API requests. However, any field
19937	// with an empty value appearing in NullFields will be sent to the
19938	// server as null. It is an error if a field in this list has a
19939	// non-empty value. This may be used to include null fields in Patch
19940	// requests.
19941	NullFields []string `json:"-"`
19942}
19943
19944func (s *InstancesGetEffectiveFirewallsResponse) MarshalJSON() ([]byte, error) {
19945	type NoMethod InstancesGetEffectiveFirewallsResponse
19946	raw := NoMethod(*s)
19947	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19948}
19949
19950type InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy struct {
19951	// DisplayName: [Output Only] Deprecated, please use short name instead.
19952	// The display name of the firewall policy.
19953	DisplayName string `json:"displayName,omitempty"`
19954
19955	// Name: [Output Only] The name of the firewall policy.
19956	Name string `json:"name,omitempty"`
19957
19958	// Rules: The rules that apply to the network.
19959	Rules []*FirewallPolicyRule `json:"rules,omitempty"`
19960
19961	// ShortName: [Output Only] The short name of the firewall policy.
19962	ShortName string `json:"shortName,omitempty"`
19963
19964	// Type: [Output Only] The type of the firewall policy.
19965	//
19966	// Possible values:
19967	//   "HIERARCHY"
19968	//   "UNSPECIFIED"
19969	Type string `json:"type,omitempty"`
19970
19971	// ForceSendFields is a list of field names (e.g. "DisplayName") to
19972	// unconditionally include in API requests. By default, fields with
19973	// empty or default values are omitted from API requests. However, any
19974	// non-pointer, non-interface field appearing in ForceSendFields will be
19975	// sent to the server regardless of whether the field is empty or not.
19976	// This may be used to include empty fields in Patch requests.
19977	ForceSendFields []string `json:"-"`
19978
19979	// NullFields is a list of field names (e.g. "DisplayName") to include
19980	// in API requests with the JSON null value. By default, fields with
19981	// empty values are omitted from API requests. However, any field with
19982	// an empty value appearing in NullFields will be sent to the server as
19983	// null. It is an error if a field in this list has a non-empty value.
19984	// This may be used to include null fields in Patch requests.
19985	NullFields []string `json:"-"`
19986}
19987
19988func (s *InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy) MarshalJSON() ([]byte, error) {
19989	type NoMethod InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
19990	raw := NoMethod(*s)
19991	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19992}
19993
19994type InstancesRemoveResourcePoliciesRequest struct {
19995	// ResourcePolicies: Resource policies to be removed from this instance.
19996	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
19997
19998	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
19999	// unconditionally include in API requests. By default, fields with
20000	// empty or default values are omitted from API requests. However, any
20001	// non-pointer, non-interface field appearing in ForceSendFields will be
20002	// sent to the server regardless of whether the field is empty or not.
20003	// This may be used to include empty fields in Patch requests.
20004	ForceSendFields []string `json:"-"`
20005
20006	// NullFields is a list of field names (e.g. "ResourcePolicies") to
20007	// include in API requests with the JSON null value. By default, fields
20008	// with empty values are omitted from API requests. However, any field
20009	// with an empty value appearing in NullFields will be sent to the
20010	// server as null. It is an error if a field in this list has a
20011	// non-empty value. This may be used to include null fields in Patch
20012	// requests.
20013	NullFields []string `json:"-"`
20014}
20015
20016func (s *InstancesRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
20017	type NoMethod InstancesRemoveResourcePoliciesRequest
20018	raw := NoMethod(*s)
20019	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20020}
20021
20022type InstancesScopedList struct {
20023	// Instances: [Output Only] A list of instances contained in this scope.
20024	Instances []*Instance `json:"instances,omitempty"`
20025
20026	// Warning: [Output Only] Informational warning which replaces the list
20027	// of instances when the list is empty.
20028	Warning *InstancesScopedListWarning `json:"warning,omitempty"`
20029
20030	// ForceSendFields is a list of field names (e.g. "Instances") to
20031	// unconditionally include in API requests. By default, fields with
20032	// empty or default values are omitted from API requests. However, any
20033	// non-pointer, non-interface field appearing in ForceSendFields will be
20034	// sent to the server regardless of whether the field is empty or not.
20035	// This may be used to include empty fields in Patch requests.
20036	ForceSendFields []string `json:"-"`
20037
20038	// NullFields is a list of field names (e.g. "Instances") to include in
20039	// API requests with the JSON null value. By default, fields with empty
20040	// values are omitted from API requests. However, any field with an
20041	// empty value appearing in NullFields will be sent to the server as
20042	// null. It is an error if a field in this list has a non-empty value.
20043	// This may be used to include null fields in Patch requests.
20044	NullFields []string `json:"-"`
20045}
20046
20047func (s *InstancesScopedList) MarshalJSON() ([]byte, error) {
20048	type NoMethod InstancesScopedList
20049	raw := NoMethod(*s)
20050	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20051}
20052
20053// InstancesScopedListWarning: [Output Only] Informational warning which
20054// replaces the list of instances when the list is empty.
20055type InstancesScopedListWarning struct {
20056	// Code: [Output Only] A warning code, if applicable. For example,
20057	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20058	// the response.
20059	//
20060	// Possible values:
20061	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
20062	// changes made by a failed operation.
20063	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
20064	// created.
20065	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
20066	// resources has a type marked as deprecated
20067	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
20068	// that is larger than image size.
20069	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
20070	// resources has a type marked as experimental
20071	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
20072	// call
20073	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
20074	// overridden. Deprecated unused field.
20075	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
20076	// injected kernel, which is deprecated.
20077	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
20078	// exceedingly large number of resources
20079	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
20080	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
20081	// not assigned to an instance on the network.
20082	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
20083	// ip forward.
20084	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
20085	// refers to an instance that does not exist.
20086	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
20087	// URL refers to an instance that is not on the same network as the
20088	// route.
20089	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
20090	// have a status of RUNNING.
20091	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
20092	// continue the process despite the mentioned error.
20093	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
20094	// page.
20095	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
20096	// missing due to errors
20097	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
20098	// that requires a TOS they have not accepted.
20099	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
20100	// resource is in use.
20101	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
20102	// auto-delete could not be deleted because they were in use.
20103	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
20104	// ignored.
20105	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
20106	// instance group manager is valid as such, but its application does not
20107	// make a lot of sense, because it allows only single instance in
20108	// instance group.
20109	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
20110	// are present
20111	//   "UNREACHABLE" - A given scope cannot be reached.
20112	Code string `json:"code,omitempty"`
20113
20114	// Data: [Output Only] Metadata about this warning in key: value format.
20115	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
20116	// }
20117	Data []*InstancesScopedListWarningData `json:"data,omitempty"`
20118
20119	// Message: [Output Only] A human-readable description of the warning
20120	// code.
20121	Message string `json:"message,omitempty"`
20122
20123	// ForceSendFields is a list of field names (e.g. "Code") to
20124	// unconditionally include in API requests. By default, fields with
20125	// empty or default values are omitted from API requests. However, any
20126	// non-pointer, non-interface field appearing in ForceSendFields will be
20127	// sent to the server regardless of whether the field is empty or not.
20128	// This may be used to include empty fields in Patch requests.
20129	ForceSendFields []string `json:"-"`
20130
20131	// NullFields is a list of field names (e.g. "Code") to include in API
20132	// requests with the JSON null value. By default, fields with empty
20133	// values are omitted from API requests. However, any field with an
20134	// empty value appearing in NullFields will be sent to the server as
20135	// null. It is an error if a field in this list has a non-empty value.
20136	// This may be used to include null fields in Patch requests.
20137	NullFields []string `json:"-"`
20138}
20139
20140func (s *InstancesScopedListWarning) MarshalJSON() ([]byte, error) {
20141	type NoMethod InstancesScopedListWarning
20142	raw := NoMethod(*s)
20143	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20144}
20145
20146type InstancesScopedListWarningData struct {
20147	// Key: [Output Only] A key that provides more detail on the warning
20148	// being returned. For example, for warnings where there are no results
20149	// in a list request for a particular zone, this key might be scope and
20150	// the key value might be the zone name. Other examples might be a key
20151	// indicating a deprecated resource and a suggested replacement, or a
20152	// warning about invalid network settings (for example, if an instance
20153	// attempts to perform IP forwarding but is not enabled for IP
20154	// forwarding).
20155	Key string `json:"key,omitempty"`
20156
20157	// Value: [Output Only] A warning data value corresponding to the key.
20158	Value string `json:"value,omitempty"`
20159
20160	// ForceSendFields is a list of field names (e.g. "Key") to
20161	// unconditionally include in API requests. By default, fields with
20162	// empty or default values are omitted from API requests. However, any
20163	// non-pointer, non-interface field appearing in ForceSendFields will be
20164	// sent to the server regardless of whether the field is empty or not.
20165	// This may be used to include empty fields in Patch requests.
20166	ForceSendFields []string `json:"-"`
20167
20168	// NullFields is a list of field names (e.g. "Key") to include in API
20169	// requests with the JSON null value. By default, fields with empty
20170	// values are omitted from API requests. However, any field with an
20171	// empty value appearing in NullFields will be sent to the server as
20172	// null. It is an error if a field in this list has a non-empty value.
20173	// This may be used to include null fields in Patch requests.
20174	NullFields []string `json:"-"`
20175}
20176
20177func (s *InstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
20178	type NoMethod InstancesScopedListWarningData
20179	raw := NoMethod(*s)
20180	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20181}
20182
20183type InstancesSetLabelsRequest struct {
20184	// LabelFingerprint: Fingerprint of the previous set of labels for this
20185	// resource, used to prevent conflicts. Provide the latest fingerprint
20186	// value when making a request to add or change labels.
20187	LabelFingerprint string `json:"labelFingerprint,omitempty"`
20188
20189	Labels map[string]string `json:"labels,omitempty"`
20190
20191	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
20192	// unconditionally include in API requests. By default, fields with
20193	// empty or default values are omitted from API requests. However, any
20194	// non-pointer, non-interface field appearing in ForceSendFields will be
20195	// sent to the server regardless of whether the field is empty or not.
20196	// This may be used to include empty fields in Patch requests.
20197	ForceSendFields []string `json:"-"`
20198
20199	// NullFields is a list of field names (e.g. "LabelFingerprint") to
20200	// include in API requests with the JSON null value. By default, fields
20201	// with empty values are omitted from API requests. However, any field
20202	// with an empty value appearing in NullFields will be sent to the
20203	// server as null. It is an error if a field in this list has a
20204	// non-empty value. This may be used to include null fields in Patch
20205	// requests.
20206	NullFields []string `json:"-"`
20207}
20208
20209func (s *InstancesSetLabelsRequest) MarshalJSON() ([]byte, error) {
20210	type NoMethod InstancesSetLabelsRequest
20211	raw := NoMethod(*s)
20212	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20213}
20214
20215type InstancesSetMachineResourcesRequest struct {
20216	// GuestAccelerators: A list of the type and count of accelerator cards
20217	// attached to the instance.
20218	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
20219
20220	// ForceSendFields is a list of field names (e.g. "GuestAccelerators")
20221	// to unconditionally include in API requests. By default, fields with
20222	// empty or default values are omitted from API requests. However, any
20223	// non-pointer, non-interface field appearing in ForceSendFields will be
20224	// sent to the server regardless of whether the field is empty or not.
20225	// This may be used to include empty fields in Patch requests.
20226	ForceSendFields []string `json:"-"`
20227
20228	// NullFields is a list of field names (e.g. "GuestAccelerators") to
20229	// include in API requests with the JSON null value. By default, fields
20230	// with empty values are omitted from API requests. However, any field
20231	// with an empty value appearing in NullFields will be sent to the
20232	// server as null. It is an error if a field in this list has a
20233	// non-empty value. This may be used to include null fields in Patch
20234	// requests.
20235	NullFields []string `json:"-"`
20236}
20237
20238func (s *InstancesSetMachineResourcesRequest) MarshalJSON() ([]byte, error) {
20239	type NoMethod InstancesSetMachineResourcesRequest
20240	raw := NoMethod(*s)
20241	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20242}
20243
20244type InstancesSetMachineTypeRequest struct {
20245	// MachineType: Full or partial URL of the machine type resource. See
20246	// Machine Types for a full list of machine types. For example:
20247	// zones/us-central1-f/machineTypes/n1-standard-1
20248	MachineType string `json:"machineType,omitempty"`
20249
20250	// ForceSendFields is a list of field names (e.g. "MachineType") to
20251	// unconditionally include in API requests. By default, fields with
20252	// empty or default values are omitted from API requests. However, any
20253	// non-pointer, non-interface field appearing in ForceSendFields will be
20254	// sent to the server regardless of whether the field is empty or not.
20255	// This may be used to include empty fields in Patch requests.
20256	ForceSendFields []string `json:"-"`
20257
20258	// NullFields is a list of field names (e.g. "MachineType") to include
20259	// in API requests with the JSON null value. By default, fields with
20260	// empty values are omitted from API requests. However, any field with
20261	// an empty value appearing in NullFields will be sent to the server as
20262	// null. It is an error if a field in this list has a non-empty value.
20263	// This may be used to include null fields in Patch requests.
20264	NullFields []string `json:"-"`
20265}
20266
20267func (s *InstancesSetMachineTypeRequest) MarshalJSON() ([]byte, error) {
20268	type NoMethod InstancesSetMachineTypeRequest
20269	raw := NoMethod(*s)
20270	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20271}
20272
20273type InstancesSetMinCpuPlatformRequest struct {
20274	// MinCpuPlatform: Minimum cpu/platform this instance should be started
20275	// at.
20276	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
20277
20278	// ForceSendFields is a list of field names (e.g. "MinCpuPlatform") to
20279	// unconditionally include in API requests. By default, fields with
20280	// empty or default values are omitted from API requests. However, any
20281	// non-pointer, non-interface field appearing in ForceSendFields will be
20282	// sent to the server regardless of whether the field is empty or not.
20283	// This may be used to include empty fields in Patch requests.
20284	ForceSendFields []string `json:"-"`
20285
20286	// NullFields is a list of field names (e.g. "MinCpuPlatform") to
20287	// include in API requests with the JSON null value. By default, fields
20288	// with empty values are omitted from API requests. However, any field
20289	// with an empty value appearing in NullFields will be sent to the
20290	// server as null. It is an error if a field in this list has a
20291	// non-empty value. This may be used to include null fields in Patch
20292	// requests.
20293	NullFields []string `json:"-"`
20294}
20295
20296func (s *InstancesSetMinCpuPlatformRequest) MarshalJSON() ([]byte, error) {
20297	type NoMethod InstancesSetMinCpuPlatformRequest
20298	raw := NoMethod(*s)
20299	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20300}
20301
20302type InstancesSetServiceAccountRequest struct {
20303	// Email: Email address of the service account.
20304	Email string `json:"email,omitempty"`
20305
20306	// Scopes: The list of scopes to be made available for this service
20307	// account.
20308	Scopes []string `json:"scopes,omitempty"`
20309
20310	// ForceSendFields is a list of field names (e.g. "Email") to
20311	// unconditionally include in API requests. By default, fields with
20312	// empty or default values are omitted from API requests. However, any
20313	// non-pointer, non-interface field appearing in ForceSendFields will be
20314	// sent to the server regardless of whether the field is empty or not.
20315	// This may be used to include empty fields in Patch requests.
20316	ForceSendFields []string `json:"-"`
20317
20318	// NullFields is a list of field names (e.g. "Email") to include in API
20319	// requests with the JSON null value. By default, fields with empty
20320	// values are omitted from API requests. However, any field with an
20321	// empty value appearing in NullFields will be sent to the server as
20322	// null. It is an error if a field in this list has a non-empty value.
20323	// This may be used to include null fields in Patch requests.
20324	NullFields []string `json:"-"`
20325}
20326
20327func (s *InstancesSetServiceAccountRequest) MarshalJSON() ([]byte, error) {
20328	type NoMethod InstancesSetServiceAccountRequest
20329	raw := NoMethod(*s)
20330	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20331}
20332
20333type InstancesStartWithEncryptionKeyRequest struct {
20334	// Disks: Array of disks associated with this instance that are
20335	// protected with a customer-supplied encryption key. In order to start
20336	// the instance, the disk url and its corresponding key must be
20337	// provided. If the disk is not protected with a customer-supplied
20338	// encryption key it should not be specified.
20339	Disks []*CustomerEncryptionKeyProtectedDisk `json:"disks,omitempty"`
20340
20341	// ForceSendFields is a list of field names (e.g. "Disks") to
20342	// unconditionally include in API requests. By default, fields with
20343	// empty or default values are omitted from API requests. However, any
20344	// non-pointer, non-interface field appearing in ForceSendFields will be
20345	// sent to the server regardless of whether the field is empty or not.
20346	// This may be used to include empty fields in Patch requests.
20347	ForceSendFields []string `json:"-"`
20348
20349	// NullFields is a list of field names (e.g. "Disks") to include in API
20350	// requests with the JSON null value. By default, fields with empty
20351	// values are omitted from API requests. However, any field with an
20352	// empty value appearing in NullFields will be sent to the server as
20353	// null. It is an error if a field in this list has a non-empty value.
20354	// This may be used to include null fields in Patch requests.
20355	NullFields []string `json:"-"`
20356}
20357
20358func (s *InstancesStartWithEncryptionKeyRequest) MarshalJSON() ([]byte, error) {
20359	type NoMethod InstancesStartWithEncryptionKeyRequest
20360	raw := NoMethod(*s)
20361	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20362}
20363
20364// Int64RangeMatch: HttpRouteRuleMatch criteria for field values that
20365// must stay within the specified integer range.
20366type Int64RangeMatch struct {
20367	// RangeEnd: The end of the range (exclusive) in signed long integer
20368	// format.
20369	RangeEnd int64 `json:"rangeEnd,omitempty,string"`
20370
20371	// RangeStart: The start of the range (inclusive) in signed long integer
20372	// format.
20373	RangeStart int64 `json:"rangeStart,omitempty,string"`
20374
20375	// ForceSendFields is a list of field names (e.g. "RangeEnd") to
20376	// unconditionally include in API requests. By default, fields with
20377	// empty or default values are omitted from API requests. However, any
20378	// non-pointer, non-interface field appearing in ForceSendFields will be
20379	// sent to the server regardless of whether the field is empty or not.
20380	// This may be used to include empty fields in Patch requests.
20381	ForceSendFields []string `json:"-"`
20382
20383	// NullFields is a list of field names (e.g. "RangeEnd") to include in
20384	// API requests with the JSON null value. By default, fields with empty
20385	// values are omitted from API requests. However, any field with an
20386	// empty value appearing in NullFields will be sent to the server as
20387	// null. It is an error if a field in this list has a non-empty value.
20388	// This may be used to include null fields in Patch requests.
20389	NullFields []string `json:"-"`
20390}
20391
20392func (s *Int64RangeMatch) MarshalJSON() ([]byte, error) {
20393	type NoMethod Int64RangeMatch
20394	raw := NoMethod(*s)
20395	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20396}
20397
20398// Interconnect: Represents an Interconnect resource. An Interconnect
20399// resource is a dedicated connection between the GCP network and your
20400// on-premises network. For more information, read the Dedicated
20401// Interconnect Overview.
20402type Interconnect struct {
20403	// AdminEnabled: Administrative status of the interconnect. When this is
20404	// set to true, the Interconnect is functional and can carry traffic.
20405	// When set to false, no packets can be carried over the interconnect
20406	// and no BGP routes are exchanged over it. By default, the status is
20407	// set to true.
20408	AdminEnabled bool `json:"adminEnabled,omitempty"`
20409
20410	// CircuitInfos: [Output Only] A list of CircuitInfo objects, that
20411	// describe the individual circuits in this LAG.
20412	CircuitInfos []*InterconnectCircuitInfo `json:"circuitInfos,omitempty"`
20413
20414	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
20415	// format.
20416	CreationTimestamp string `json:"creationTimestamp,omitempty"`
20417
20418	// CustomerName: Customer name, to put in the Letter of Authorization as
20419	// the party authorized to request a crossconnect.
20420	CustomerName string `json:"customerName,omitempty"`
20421
20422	// Description: An optional description of this resource. Provide this
20423	// property when you create the resource.
20424	Description string `json:"description,omitempty"`
20425
20426	// ExpectedOutages: [Output Only] A list of outages expected for this
20427	// Interconnect.
20428	ExpectedOutages []*InterconnectOutageNotification `json:"expectedOutages,omitempty"`
20429
20430	// GoogleIpAddress: [Output Only] IP address configured on the Google
20431	// side of the Interconnect link. This can be used only for ping tests.
20432	GoogleIpAddress string `json:"googleIpAddress,omitempty"`
20433
20434	// GoogleReferenceId: [Output Only] Google reference ID to be used when
20435	// raising support tickets with Google or otherwise to debug backend
20436	// connectivity issues.
20437	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
20438
20439	// Id: [Output Only] The unique identifier for the resource. This
20440	// identifier is defined by the server.
20441	Id uint64 `json:"id,omitempty,string"`
20442
20443	// InterconnectAttachments: [Output Only] A list of the URLs of all
20444	// InterconnectAttachments configured to use this Interconnect.
20445	InterconnectAttachments []string `json:"interconnectAttachments,omitempty"`
20446
20447	// InterconnectType: Type of interconnect, which can take one of the
20448	// following values: - PARTNER: A partner-managed interconnection shared
20449	// between customers though a partner. - DEDICATED: A dedicated physical
20450	// interconnection with the customer. Note that a value IT_PRIVATE has
20451	// been deprecated in favor of DEDICATED.
20452	//
20453	// Possible values:
20454	//   "DEDICATED" - A dedicated physical interconnection with the
20455	// customer.
20456	//   "IT_PRIVATE" - [Deprecated] A private, physical interconnection
20457	// with the customer.
20458	//   "PARTNER" - A partner-managed interconnection shared between
20459	// customers via partner.
20460	InterconnectType string `json:"interconnectType,omitempty"`
20461
20462	// Kind: [Output Only] Type of the resource. Always compute#interconnect
20463	// for interconnects.
20464	Kind string `json:"kind,omitempty"`
20465
20466	// LinkType: Type of link requested, which can take one of the following
20467	// values: - LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics -
20468	// LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. Note that
20469	// this field indicates the speed of each of the links in the bundle,
20470	// not the speed of the entire bundle.
20471	//
20472	// Possible values:
20473	//   "LINK_TYPE_ETHERNET_100G_LR" - 100G Ethernet, LR Optics.
20474	//   "LINK_TYPE_ETHERNET_10G_LR" - 10G Ethernet, LR Optics. [(rate_bps)
20475	// = 10000000000];
20476	LinkType string `json:"linkType,omitempty"`
20477
20478	// Location: URL of the InterconnectLocation object that represents
20479	// where this connection is to be provisioned.
20480	Location string `json:"location,omitempty"`
20481
20482	// Name: Name of the resource. Provided by the client when the resource
20483	// is created. The name must be 1-63 characters long, and comply with
20484	// RFC1035. Specifically, the name must be 1-63 characters long and
20485	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
20486	// the first character must be a lowercase letter, and all following
20487	// characters must be a dash, lowercase letter, or digit, except the
20488	// last character, which cannot be a dash.
20489	Name string `json:"name,omitempty"`
20490
20491	// NocContactEmail: Email address to contact the customer NOC for
20492	// operations and maintenance notifications regarding this Interconnect.
20493	// If specified, this will be used for notifications in addition to all
20494	// other forms described, such as Stackdriver logs alerting and Cloud
20495	// Notifications.
20496	NocContactEmail string `json:"nocContactEmail,omitempty"`
20497
20498	// OperationalStatus: [Output Only] The current status of this
20499	// Interconnect's functionality, which can take one of the following
20500	// values: - OS_ACTIVE: A valid Interconnect, which is turned up and is
20501	// ready to use. Attachments may be provisioned on this Interconnect. -
20502	// OS_UNPROVISIONED: An Interconnect that has not completed turnup. No
20503	// attachments may be provisioned on this Interconnect. -
20504	// OS_UNDER_MAINTENANCE: An Interconnect that is undergoing internal
20505	// maintenance. No attachments may be provisioned or updated on this
20506	// Interconnect.
20507	//
20508	// Possible values:
20509	//   "OS_ACTIVE" - The interconnect is valid, turned up, and ready to
20510	// use. Attachments may be provisioned on this interconnect.
20511	//   "OS_UNPROVISIONED" - The interconnect has not completed turnup. No
20512	// attachments may be provisioned on this interconnect.
20513	OperationalStatus string `json:"operationalStatus,omitempty"`
20514
20515	// PeerIpAddress: [Output Only] IP address configured on the customer
20516	// side of the Interconnect link. The customer should configure this IP
20517	// address during turnup when prompted by Google NOC. This can be used
20518	// only for ping tests.
20519	PeerIpAddress string `json:"peerIpAddress,omitempty"`
20520
20521	// ProvisionedLinkCount: [Output Only] Number of links actually
20522	// provisioned in this interconnect.
20523	ProvisionedLinkCount int64 `json:"provisionedLinkCount,omitempty"`
20524
20525	// RequestedLinkCount: Target number of physical links in the link
20526	// bundle, as requested by the customer.
20527	RequestedLinkCount int64 `json:"requestedLinkCount,omitempty"`
20528
20529	// SatisfiesPzs: [Output Only] Set to true if the resource satisfies the
20530	// zone separation organization policy constraints and false otherwise.
20531	// Defaults to false if the field is not present.
20532	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
20533
20534	// SelfLink: [Output Only] Server-defined URL for the resource.
20535	SelfLink string `json:"selfLink,omitempty"`
20536
20537	// State: [Output Only] The current state of Interconnect functionality,
20538	// which can take one of the following values: - ACTIVE: The
20539	// Interconnect is valid, turned up and ready to use. Attachments may be
20540	// provisioned on this Interconnect. - UNPROVISIONED: The Interconnect
20541	// has not completed turnup. No attachments may be provisioned on this
20542	// Interconnect. - UNDER_MAINTENANCE: The Interconnect is undergoing
20543	// internal maintenance. No attachments may be provisioned or updated on
20544	// this Interconnect.
20545	//
20546	// Possible values:
20547	//   "ACTIVE" - The interconnect is valid, turned up, and ready to use.
20548	// Attachments may be provisioned on this interconnect.
20549	//   "UNPROVISIONED" - The interconnect has not completed turnup. No
20550	// attachments may be provisioned on this interconnect.
20551	State string `json:"state,omitempty"`
20552
20553	// ServerResponse contains the HTTP response code and headers from the
20554	// server.
20555	googleapi.ServerResponse `json:"-"`
20556
20557	// ForceSendFields is a list of field names (e.g. "AdminEnabled") to
20558	// unconditionally include in API requests. By default, fields with
20559	// empty or default values are omitted from API requests. However, any
20560	// non-pointer, non-interface field appearing in ForceSendFields will be
20561	// sent to the server regardless of whether the field is empty or not.
20562	// This may be used to include empty fields in Patch requests.
20563	ForceSendFields []string `json:"-"`
20564
20565	// NullFields is a list of field names (e.g. "AdminEnabled") to include
20566	// in API requests with the JSON null value. By default, fields with
20567	// empty values are omitted from API requests. However, any field with
20568	// an empty value appearing in NullFields will be sent to the server as
20569	// null. It is an error if a field in this list has a non-empty value.
20570	// This may be used to include null fields in Patch requests.
20571	NullFields []string `json:"-"`
20572}
20573
20574func (s *Interconnect) MarshalJSON() ([]byte, error) {
20575	type NoMethod Interconnect
20576	raw := NoMethod(*s)
20577	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20578}
20579
20580// InterconnectAttachment: Represents an Interconnect Attachment (VLAN)
20581// resource. You can use Interconnect attachments (VLANS) to connect
20582// your Virtual Private Cloud networks to your on-premises networks
20583// through an Interconnect. For more information, read Creating VLAN
20584// Attachments.
20585type InterconnectAttachment struct {
20586	// AdminEnabled: Determines whether this Attachment will carry packets.
20587	// Not present for PARTNER_PROVIDER.
20588	AdminEnabled bool `json:"adminEnabled,omitempty"`
20589
20590	// Bandwidth: Provisioned bandwidth capacity for the interconnect
20591	// attachment. For attachments of type DEDICATED, the user can set the
20592	// bandwidth. For attachments of type PARTNER, the Google Partner that
20593	// is operating the interconnect must set the bandwidth. Output only for
20594	// PARTNER type, mutable for PARTNER_PROVIDER and DEDICATED, and can
20595	// take one of the following values: - BPS_50M: 50 Mbit/s - BPS_100M:
20596	// 100 Mbit/s - BPS_200M: 200 Mbit/s - BPS_300M: 300 Mbit/s - BPS_400M:
20597	// 400 Mbit/s - BPS_500M: 500 Mbit/s - BPS_1G: 1 Gbit/s - BPS_2G: 2
20598	// Gbit/s - BPS_5G: 5 Gbit/s - BPS_10G: 10 Gbit/s - BPS_20G: 20 Gbit/s -
20599	// BPS_50G: 50 Gbit/s
20600	//
20601	// Possible values:
20602	//   "BPS_100M" - 100 Mbit/s
20603	//   "BPS_10G" - 10 Gbit/s
20604	//   "BPS_1G" - 1 Gbit/s
20605	//   "BPS_200M" - 200 Mbit/s
20606	//   "BPS_20G" - 20 Gbit/s
20607	//   "BPS_2G" - 2 Gbit/s
20608	//   "BPS_300M" - 300 Mbit/s
20609	//   "BPS_400M" - 400 Mbit/s
20610	//   "BPS_500M" - 500 Mbit/s
20611	//   "BPS_50G" - 50 Gbit/s
20612	//   "BPS_50M" - 50 Mbit/s
20613	//   "BPS_5G" - 5 Gbit/s
20614	Bandwidth string `json:"bandwidth,omitempty"`
20615
20616	// CandidateSubnets: Up to 16 candidate prefixes that can be used to
20617	// restrict the allocation of cloudRouterIpAddress and
20618	// customerRouterIpAddress for this attachment. All prefixes must be
20619	// within link-local address space (169.254.0.0/16) and must be /29 or
20620	// shorter (/28, /27, etc). Google will attempt to select an unused /29
20621	// from the supplied candidate prefix(es). The request will fail if all
20622	// possible /29s are in use on Google's edge. If not supplied, Google
20623	// will randomly select an unused /29 from all of link-local space.
20624	CandidateSubnets []string `json:"candidateSubnets,omitempty"`
20625
20626	// CloudRouterIpAddress: [Output Only] IPv4 address + prefix length to
20627	// be configured on Cloud Router Interface for this interconnect
20628	// attachment.
20629	CloudRouterIpAddress string `json:"cloudRouterIpAddress,omitempty"`
20630
20631	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
20632	// format.
20633	CreationTimestamp string `json:"creationTimestamp,omitempty"`
20634
20635	// CustomerRouterIpAddress: [Output Only] IPv4 address + prefix length
20636	// to be configured on the customer router subinterface for this
20637	// interconnect attachment.
20638	CustomerRouterIpAddress string `json:"customerRouterIpAddress,omitempty"`
20639
20640	// DataplaneVersion: [Output Only] Dataplane version for this
20641	// InterconnectAttachment.
20642	DataplaneVersion int64 `json:"dataplaneVersion,omitempty"`
20643
20644	// Description: An optional description of this resource.
20645	Description string `json:"description,omitempty"`
20646
20647	// EdgeAvailabilityDomain: Desired availability domain for the
20648	// attachment. Only available for type PARTNER, at creation time, and
20649	// can take one of the following values: - AVAILABILITY_DOMAIN_ANY -
20650	// AVAILABILITY_DOMAIN_1 - AVAILABILITY_DOMAIN_2 For improved
20651	// reliability, customers should configure a pair of attachments, one
20652	// per availability domain. The selected availability domain will be
20653	// provided to the Partner via the pairing key, so that the provisioned
20654	// circuit will lie in the specified domain. If not specified, the value
20655	// will default to AVAILABILITY_DOMAIN_ANY.
20656	//
20657	// Possible values:
20658	//   "AVAILABILITY_DOMAIN_1"
20659	//   "AVAILABILITY_DOMAIN_2"
20660	//   "AVAILABILITY_DOMAIN_ANY"
20661	EdgeAvailabilityDomain string `json:"edgeAvailabilityDomain,omitempty"`
20662
20663	// Encryption: Indicates the user-supplied encryption option of this
20664	// VLAN attachment (interconnectAttachment). Can only be specified at
20665	// attachment creation for PARTNER or DEDICATED attachments. Possible
20666	// values are: - NONE - This is the default value, which means that the
20667	// VLAN attachment carries unencrypted traffic. VMs are able to send
20668	// traffic to, or receive traffic from, such a VLAN attachment. - IPSEC
20669	// - The VLAN attachment carries only encrypted traffic that is
20670	// encrypted by an IPsec device, such as an HA VPN gateway or
20671	// third-party IPsec VPN. VMs cannot directly send traffic to, or
20672	// receive traffic from, such a VLAN attachment. To use *IPsec-encrypted
20673	// Cloud Interconnect*, the VLAN attachment must be created with this
20674	// option. Not currently available publicly.
20675	//
20676	// Possible values:
20677	//   "IPSEC" - The interconnect attachment will carry only encrypted
20678	// traffic that is encrypted by an IPsec device such as HA VPN gateway;
20679	// VMs cannot directly send traffic to or receive traffic from such an
20680	// interconnect attachment. To use IPsec-encrypted Cloud Interconnect,
20681	// the interconnect attachment must be created with this option.
20682	//   "NONE" - This is the default value, which means the Interconnect
20683	// Attachment will carry unencrypted traffic. VMs will be able to send
20684	// traffic to or receive traffic from such interconnect attachment.
20685	Encryption string `json:"encryption,omitempty"`
20686
20687	// GoogleReferenceId: [Output Only] Google reference ID, to be used when
20688	// raising support tickets with Google or otherwise to debug backend
20689	// connectivity issues. [Deprecated] This field is not used.
20690	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
20691
20692	// Id: [Output Only] The unique identifier for the resource. This
20693	// identifier is defined by the server.
20694	Id uint64 `json:"id,omitempty,string"`
20695
20696	// Interconnect: URL of the underlying Interconnect object that this
20697	// attachment's traffic will traverse through.
20698	Interconnect string `json:"interconnect,omitempty"`
20699
20700	// IpsecInternalAddresses: A list of URLs of addresses that have been
20701	// reserved for the VLAN attachment. Used only for the VLAN attachment
20702	// that has the encryption option as IPSEC. The addresses must be
20703	// regional internal IP address ranges. When creating an HA VPN gateway
20704	// over the VLAN attachment, if the attachment is configured to use a
20705	// regional internal IP address, then the VPN gateway's IP address is
20706	// allocated from the IP address range specified here. For example, if
20707	// the HA VPN gateway's interface 0 is paired to this VLAN attachment,
20708	// then a regional internal IP address for the VPN gateway interface 0
20709	// will be allocated from the IP address specified for this VLAN
20710	// attachment. If this field is not specified when creating the VLAN
20711	// attachment, then later on when creating an HA VPN gateway on this
20712	// VLAN attachment, the HA VPN gateway's IP address is allocated from
20713	// the regional external IP address pool. Not currently available
20714	// publicly.
20715	IpsecInternalAddresses []string `json:"ipsecInternalAddresses,omitempty"`
20716
20717	// Kind: [Output Only] Type of the resource. Always
20718	// compute#interconnectAttachment for interconnect attachments.
20719	Kind string `json:"kind,omitempty"`
20720
20721	// Mtu: Maximum Transmission Unit (MTU), in bytes, of packets passing
20722	// through this interconnect attachment. Only 1440 and 1500 are allowed.
20723	// If not specified, the value will default to 1440.
20724	Mtu int64 `json:"mtu,omitempty"`
20725
20726	// Name: Name of the resource. Provided by the client when the resource
20727	// is created. The name must be 1-63 characters long, and comply with
20728	// RFC1035. Specifically, the name must be 1-63 characters long and
20729	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
20730	// the first character must be a lowercase letter, and all following
20731	// characters must be a dash, lowercase letter, or digit, except the
20732	// last character, which cannot be a dash.
20733	Name string `json:"name,omitempty"`
20734
20735	// OperationalStatus: [Output Only] The current status of whether or not
20736	// this interconnect attachment is functional, which can take one of the
20737	// following values: - OS_ACTIVE: The attachment has been turned up and
20738	// is ready to use. - OS_UNPROVISIONED: The attachment is not ready to
20739	// use yet, because turnup is not complete.
20740	//
20741	// Possible values:
20742	//   "OS_ACTIVE" - Indicates that attachment has been turned up and is
20743	// ready to use.
20744	//   "OS_UNPROVISIONED" - Indicates that attachment is not ready to use
20745	// yet, because turnup is not complete.
20746	OperationalStatus string `json:"operationalStatus,omitempty"`
20747
20748	// PairingKey: [Output only for type PARTNER. Input only for
20749	// PARTNER_PROVIDER. Not present for DEDICATED]. The opaque identifier
20750	// of an PARTNER attachment used to initiate provisioning with a
20751	// selected partner. Of the form "XXXXX/region/domain"
20752	PairingKey string `json:"pairingKey,omitempty"`
20753
20754	// PartnerAsn: Optional BGP ASN for the router supplied by a Layer 3
20755	// Partner if they configured BGP on behalf of the customer. Output only
20756	// for PARTNER type, input only for PARTNER_PROVIDER, not available for
20757	// DEDICATED.
20758	PartnerAsn int64 `json:"partnerAsn,omitempty,string"`
20759
20760	// PartnerMetadata: Informational metadata about Partner attachments
20761	// from Partners to display to customers. Output only for for PARTNER
20762	// type, mutable for PARTNER_PROVIDER, not available for DEDICATED.
20763	PartnerMetadata *InterconnectAttachmentPartnerMetadata `json:"partnerMetadata,omitempty"`
20764
20765	// PrivateInterconnectInfo: [Output Only] Information specific to an
20766	// InterconnectAttachment. This property is populated if the
20767	// interconnect that this is attached to is of type DEDICATED.
20768	PrivateInterconnectInfo *InterconnectAttachmentPrivateInfo `json:"privateInterconnectInfo,omitempty"`
20769
20770	// Region: [Output Only] URL of the region where the regional
20771	// interconnect attachment resides. You must specify this field as part
20772	// of the HTTP request URL. It is not settable as a field in the request
20773	// body.
20774	Region string `json:"region,omitempty"`
20775
20776	// Router: URL of the Cloud Router to be used for dynamic routing. This
20777	// router must be in the same region as this InterconnectAttachment. The
20778	// InterconnectAttachment will automatically connect the Interconnect to
20779	// the network & region within which the Cloud Router is configured.
20780	Router string `json:"router,omitempty"`
20781
20782	// SatisfiesPzs: [Output Only] Set to true if the resource satisfies the
20783	// zone separation organization policy constraints and false otherwise.
20784	// Defaults to false if the field is not present.
20785	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
20786
20787	// SelfLink: [Output Only] Server-defined URL for the resource.
20788	SelfLink string `json:"selfLink,omitempty"`
20789
20790	// State: [Output Only] The current state of this attachment's
20791	// functionality. Enum values ACTIVE and UNPROVISIONED are shared by
20792	// DEDICATED/PRIVATE, PARTNER, and PARTNER_PROVIDER interconnect
20793	// attachments, while enum values PENDING_PARTNER,
20794	// PARTNER_REQUEST_RECEIVED, and PENDING_CUSTOMER are used for only
20795	// PARTNER and PARTNER_PROVIDER interconnect attachments. This state can
20796	// take one of the following values: - ACTIVE: The attachment has been
20797	// turned up and is ready to use. - UNPROVISIONED: The attachment is not
20798	// ready to use yet, because turnup is not complete. - PENDING_PARTNER:
20799	// A newly-created PARTNER attachment that has not yet been configured
20800	// on the Partner side. - PARTNER_REQUEST_RECEIVED: A PARTNER attachment
20801	// is in the process of provisioning after a PARTNER_PROVIDER attachment
20802	// was created that references it. - PENDING_CUSTOMER: A PARTNER or
20803	// PARTNER_PROVIDER attachment that is waiting for a customer to
20804	// activate it. - DEFUNCT: The attachment was deleted externally and is
20805	// no longer functional. This could be because the associated
20806	// Interconnect was removed, or because the other side of a Partner
20807	// attachment was deleted.
20808	//
20809	// Possible values:
20810	//   "ACTIVE" - Indicates that attachment has been turned up and is
20811	// ready to use.
20812	//   "DEFUNCT" - The attachment was deleted externally and is no longer
20813	// functional. This could be because the associated Interconnect was
20814	// wiped out, or because the other side of a Partner attachment was
20815	// deleted.
20816	//   "PARTNER_REQUEST_RECEIVED" - A PARTNER attachment is in the process
20817	// of provisioning after a PARTNER_PROVIDER attachment was created that
20818	// references it.
20819	//   "PENDING_CUSTOMER" - PARTNER or PARTNER_PROVIDER attachment that is
20820	// waiting for the customer to activate.
20821	//   "PENDING_PARTNER" - A newly created PARTNER attachment that has not
20822	// yet been configured on the Partner side.
20823	//   "STATE_UNSPECIFIED"
20824	//   "UNPROVISIONED" - Indicates that attachment is not ready to use
20825	// yet, because turnup is not complete.
20826	State string `json:"state,omitempty"`
20827
20828	// Type: The type of interconnect attachment this is, which can take one
20829	// of the following values: - DEDICATED: an attachment to a Dedicated
20830	// Interconnect. - PARTNER: an attachment to a Partner Interconnect,
20831	// created by the customer. - PARTNER_PROVIDER: an attachment to a
20832	// Partner Interconnect, created by the partner.
20833	//
20834	// Possible values:
20835	//   "DEDICATED" - Attachment to a dedicated interconnect.
20836	//   "PARTNER" - Attachment to a partner interconnect, created by the
20837	// customer.
20838	//   "PARTNER_PROVIDER" - Attachment to a partner interconnect, created
20839	// by the partner.
20840	Type string `json:"type,omitempty"`
20841
20842	// VlanTag8021q: The IEEE 802.1Q VLAN tag for this attachment, in the
20843	// range 2-4094. Only specified at creation time.
20844	VlanTag8021q int64 `json:"vlanTag8021q,omitempty"`
20845
20846	// ServerResponse contains the HTTP response code and headers from the
20847	// server.
20848	googleapi.ServerResponse `json:"-"`
20849
20850	// ForceSendFields is a list of field names (e.g. "AdminEnabled") to
20851	// unconditionally include in API requests. By default, fields with
20852	// empty or default values are omitted from API requests. However, any
20853	// non-pointer, non-interface field appearing in ForceSendFields will be
20854	// sent to the server regardless of whether the field is empty or not.
20855	// This may be used to include empty fields in Patch requests.
20856	ForceSendFields []string `json:"-"`
20857
20858	// NullFields is a list of field names (e.g. "AdminEnabled") to include
20859	// in API requests with the JSON null value. By default, fields with
20860	// empty values are omitted from API requests. However, any field with
20861	// an empty value appearing in NullFields will be sent to the server as
20862	// null. It is an error if a field in this list has a non-empty value.
20863	// This may be used to include null fields in Patch requests.
20864	NullFields []string `json:"-"`
20865}
20866
20867func (s *InterconnectAttachment) MarshalJSON() ([]byte, error) {
20868	type NoMethod InterconnectAttachment
20869	raw := NoMethod(*s)
20870	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20871}
20872
20873type InterconnectAttachmentAggregatedList struct {
20874	// Id: [Output Only] Unique identifier for the resource; defined by the
20875	// server.
20876	Id string `json:"id,omitempty"`
20877
20878	// Items: A list of InterconnectAttachmentsScopedList resources.
20879	Items map[string]InterconnectAttachmentsScopedList `json:"items,omitempty"`
20880
20881	// Kind: [Output Only] Type of resource. Always
20882	// compute#interconnectAttachmentAggregatedList for aggregated lists of
20883	// interconnect attachments.
20884	Kind string `json:"kind,omitempty"`
20885
20886	// NextPageToken: [Output Only] This token allows you to get the next
20887	// page of results for list requests. If the number of results is larger
20888	// than maxResults, use the nextPageToken as a value for the query
20889	// parameter pageToken in the next list request. Subsequent list
20890	// requests will have their own nextPageToken to continue paging through
20891	// the results.
20892	NextPageToken string `json:"nextPageToken,omitempty"`
20893
20894	// SelfLink: [Output Only] Server-defined URL for this resource.
20895	SelfLink string `json:"selfLink,omitempty"`
20896
20897	// Unreachables: [Output Only] Unreachable resources.
20898	Unreachables []string `json:"unreachables,omitempty"`
20899
20900	// Warning: [Output Only] Informational warning message.
20901	Warning *InterconnectAttachmentAggregatedListWarning `json:"warning,omitempty"`
20902
20903	// ServerResponse contains the HTTP response code and headers from the
20904	// server.
20905	googleapi.ServerResponse `json:"-"`
20906
20907	// ForceSendFields is a list of field names (e.g. "Id") to
20908	// unconditionally include in API requests. By default, fields with
20909	// empty or default values are omitted from API requests. However, any
20910	// non-pointer, non-interface field appearing in ForceSendFields will be
20911	// sent to the server regardless of whether the field is empty or not.
20912	// This may be used to include empty fields in Patch requests.
20913	ForceSendFields []string `json:"-"`
20914
20915	// NullFields is a list of field names (e.g. "Id") to include in API
20916	// requests with the JSON null value. By default, fields with empty
20917	// values are omitted from API requests. However, any field with an
20918	// empty value appearing in NullFields will be sent to the server as
20919	// null. It is an error if a field in this list has a non-empty value.
20920	// This may be used to include null fields in Patch requests.
20921	NullFields []string `json:"-"`
20922}
20923
20924func (s *InterconnectAttachmentAggregatedList) MarshalJSON() ([]byte, error) {
20925	type NoMethod InterconnectAttachmentAggregatedList
20926	raw := NoMethod(*s)
20927	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20928}
20929
20930// InterconnectAttachmentAggregatedListWarning: [Output Only]
20931// Informational warning message.
20932type InterconnectAttachmentAggregatedListWarning struct {
20933	// Code: [Output Only] A warning code, if applicable. For example,
20934	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20935	// the response.
20936	//
20937	// Possible values:
20938	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
20939	// changes made by a failed operation.
20940	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
20941	// created.
20942	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
20943	// resources has a type marked as deprecated
20944	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
20945	// that is larger than image size.
20946	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
20947	// resources has a type marked as experimental
20948	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
20949	// call
20950	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
20951	// overridden. Deprecated unused field.
20952	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
20953	// injected kernel, which is deprecated.
20954	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
20955	// exceedingly large number of resources
20956	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
20957	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
20958	// not assigned to an instance on the network.
20959	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
20960	// ip forward.
20961	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
20962	// refers to an instance that does not exist.
20963	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
20964	// URL refers to an instance that is not on the same network as the
20965	// route.
20966	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
20967	// have a status of RUNNING.
20968	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
20969	// continue the process despite the mentioned error.
20970	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
20971	// page.
20972	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
20973	// missing due to errors
20974	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
20975	// that requires a TOS they have not accepted.
20976	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
20977	// resource is in use.
20978	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
20979	// auto-delete could not be deleted because they were in use.
20980	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
20981	// ignored.
20982	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
20983	// instance group manager is valid as such, but its application does not
20984	// make a lot of sense, because it allows only single instance in
20985	// instance group.
20986	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
20987	// are present
20988	//   "UNREACHABLE" - A given scope cannot be reached.
20989	Code string `json:"code,omitempty"`
20990
20991	// Data: [Output Only] Metadata about this warning in key: value format.
20992	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
20993	// }
20994	Data []*InterconnectAttachmentAggregatedListWarningData `json:"data,omitempty"`
20995
20996	// Message: [Output Only] A human-readable description of the warning
20997	// code.
20998	Message string `json:"message,omitempty"`
20999
21000	// ForceSendFields is a list of field names (e.g. "Code") to
21001	// unconditionally include in API requests. By default, fields with
21002	// empty or default values are omitted from API requests. However, any
21003	// non-pointer, non-interface field appearing in ForceSendFields will be
21004	// sent to the server regardless of whether the field is empty or not.
21005	// This may be used to include empty fields in Patch requests.
21006	ForceSendFields []string `json:"-"`
21007
21008	// NullFields is a list of field names (e.g. "Code") to include in API
21009	// requests with the JSON null value. By default, fields with empty
21010	// values are omitted from API requests. However, any field with an
21011	// empty value appearing in NullFields will be sent to the server as
21012	// null. It is an error if a field in this list has a non-empty value.
21013	// This may be used to include null fields in Patch requests.
21014	NullFields []string `json:"-"`
21015}
21016
21017func (s *InterconnectAttachmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
21018	type NoMethod InterconnectAttachmentAggregatedListWarning
21019	raw := NoMethod(*s)
21020	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21021}
21022
21023type InterconnectAttachmentAggregatedListWarningData struct {
21024	// Key: [Output Only] A key that provides more detail on the warning
21025	// being returned. For example, for warnings where there are no results
21026	// in a list request for a particular zone, this key might be scope and
21027	// the key value might be the zone name. Other examples might be a key
21028	// indicating a deprecated resource and a suggested replacement, or a
21029	// warning about invalid network settings (for example, if an instance
21030	// attempts to perform IP forwarding but is not enabled for IP
21031	// forwarding).
21032	Key string `json:"key,omitempty"`
21033
21034	// Value: [Output Only] A warning data value corresponding to the key.
21035	Value string `json:"value,omitempty"`
21036
21037	// ForceSendFields is a list of field names (e.g. "Key") to
21038	// unconditionally include in API requests. By default, fields with
21039	// empty or default values are omitted from API requests. However, any
21040	// non-pointer, non-interface field appearing in ForceSendFields will be
21041	// sent to the server regardless of whether the field is empty or not.
21042	// This may be used to include empty fields in Patch requests.
21043	ForceSendFields []string `json:"-"`
21044
21045	// NullFields is a list of field names (e.g. "Key") to include in API
21046	// requests with the JSON null value. By default, fields with empty
21047	// values are omitted from API requests. However, any field with an
21048	// empty value appearing in NullFields will be sent to the server as
21049	// null. It is an error if a field in this list has a non-empty value.
21050	// This may be used to include null fields in Patch requests.
21051	NullFields []string `json:"-"`
21052}
21053
21054func (s *InterconnectAttachmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
21055	type NoMethod InterconnectAttachmentAggregatedListWarningData
21056	raw := NoMethod(*s)
21057	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21058}
21059
21060// InterconnectAttachmentList: Response to the list request, and
21061// contains a list of interconnect attachments.
21062type InterconnectAttachmentList struct {
21063	// Id: [Output Only] Unique identifier for the resource; defined by the
21064	// server.
21065	Id string `json:"id,omitempty"`
21066
21067	// Items: A list of InterconnectAttachment resources.
21068	Items []*InterconnectAttachment `json:"items,omitempty"`
21069
21070	// Kind: [Output Only] Type of resource. Always
21071	// compute#interconnectAttachmentList for lists of interconnect
21072	// attachments.
21073	Kind string `json:"kind,omitempty"`
21074
21075	// NextPageToken: [Output Only] This token allows you to get the next
21076	// page of results for list requests. If the number of results is larger
21077	// than maxResults, use the nextPageToken as a value for the query
21078	// parameter pageToken in the next list request. Subsequent list
21079	// requests will have their own nextPageToken to continue paging through
21080	// the results.
21081	NextPageToken string `json:"nextPageToken,omitempty"`
21082
21083	// SelfLink: [Output Only] Server-defined URL for this resource.
21084	SelfLink string `json:"selfLink,omitempty"`
21085
21086	// Warning: [Output Only] Informational warning message.
21087	Warning *InterconnectAttachmentListWarning `json:"warning,omitempty"`
21088
21089	// ServerResponse contains the HTTP response code and headers from the
21090	// server.
21091	googleapi.ServerResponse `json:"-"`
21092
21093	// ForceSendFields is a list of field names (e.g. "Id") to
21094	// unconditionally include in API requests. By default, fields with
21095	// empty or default values are omitted from API requests. However, any
21096	// non-pointer, non-interface field appearing in ForceSendFields will be
21097	// sent to the server regardless of whether the field is empty or not.
21098	// This may be used to include empty fields in Patch requests.
21099	ForceSendFields []string `json:"-"`
21100
21101	// NullFields is a list of field names (e.g. "Id") to include in API
21102	// requests with the JSON null value. By default, fields with empty
21103	// values are omitted from API requests. However, any field with an
21104	// empty value appearing in NullFields will be sent to the server as
21105	// null. It is an error if a field in this list has a non-empty value.
21106	// This may be used to include null fields in Patch requests.
21107	NullFields []string `json:"-"`
21108}
21109
21110func (s *InterconnectAttachmentList) MarshalJSON() ([]byte, error) {
21111	type NoMethod InterconnectAttachmentList
21112	raw := NoMethod(*s)
21113	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21114}
21115
21116// InterconnectAttachmentListWarning: [Output Only] Informational
21117// warning message.
21118type InterconnectAttachmentListWarning struct {
21119	// Code: [Output Only] A warning code, if applicable. For example,
21120	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21121	// the response.
21122	//
21123	// Possible values:
21124	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
21125	// changes made by a failed operation.
21126	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
21127	// created.
21128	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
21129	// resources has a type marked as deprecated
21130	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
21131	// that is larger than image size.
21132	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
21133	// resources has a type marked as experimental
21134	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
21135	// call
21136	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
21137	// overridden. Deprecated unused field.
21138	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
21139	// injected kernel, which is deprecated.
21140	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
21141	// exceedingly large number of resources
21142	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
21143	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
21144	// not assigned to an instance on the network.
21145	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
21146	// ip forward.
21147	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
21148	// refers to an instance that does not exist.
21149	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
21150	// URL refers to an instance that is not on the same network as the
21151	// route.
21152	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
21153	// have a status of RUNNING.
21154	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
21155	// continue the process despite the mentioned error.
21156	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
21157	// page.
21158	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
21159	// missing due to errors
21160	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
21161	// that requires a TOS they have not accepted.
21162	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
21163	// resource is in use.
21164	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
21165	// auto-delete could not be deleted because they were in use.
21166	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
21167	// ignored.
21168	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
21169	// instance group manager is valid as such, but its application does not
21170	// make a lot of sense, because it allows only single instance in
21171	// instance group.
21172	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
21173	// are present
21174	//   "UNREACHABLE" - A given scope cannot be reached.
21175	Code string `json:"code,omitempty"`
21176
21177	// Data: [Output Only] Metadata about this warning in key: value format.
21178	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
21179	// }
21180	Data []*InterconnectAttachmentListWarningData `json:"data,omitempty"`
21181
21182	// Message: [Output Only] A human-readable description of the warning
21183	// code.
21184	Message string `json:"message,omitempty"`
21185
21186	// ForceSendFields is a list of field names (e.g. "Code") to
21187	// unconditionally include in API requests. By default, fields with
21188	// empty or default values are omitted from API requests. However, any
21189	// non-pointer, non-interface field appearing in ForceSendFields will be
21190	// sent to the server regardless of whether the field is empty or not.
21191	// This may be used to include empty fields in Patch requests.
21192	ForceSendFields []string `json:"-"`
21193
21194	// NullFields is a list of field names (e.g. "Code") to include in API
21195	// requests with the JSON null value. By default, fields with empty
21196	// values are omitted from API requests. However, any field with an
21197	// empty value appearing in NullFields will be sent to the server as
21198	// null. It is an error if a field in this list has a non-empty value.
21199	// This may be used to include null fields in Patch requests.
21200	NullFields []string `json:"-"`
21201}
21202
21203func (s *InterconnectAttachmentListWarning) MarshalJSON() ([]byte, error) {
21204	type NoMethod InterconnectAttachmentListWarning
21205	raw := NoMethod(*s)
21206	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21207}
21208
21209type InterconnectAttachmentListWarningData struct {
21210	// Key: [Output Only] A key that provides more detail on the warning
21211	// being returned. For example, for warnings where there are no results
21212	// in a list request for a particular zone, this key might be scope and
21213	// the key value might be the zone name. Other examples might be a key
21214	// indicating a deprecated resource and a suggested replacement, or a
21215	// warning about invalid network settings (for example, if an instance
21216	// attempts to perform IP forwarding but is not enabled for IP
21217	// forwarding).
21218	Key string `json:"key,omitempty"`
21219
21220	// Value: [Output Only] A warning data value corresponding to the key.
21221	Value string `json:"value,omitempty"`
21222
21223	// ForceSendFields is a list of field names (e.g. "Key") to
21224	// unconditionally include in API requests. By default, fields with
21225	// empty or default values are omitted from API requests. However, any
21226	// non-pointer, non-interface field appearing in ForceSendFields will be
21227	// sent to the server regardless of whether the field is empty or not.
21228	// This may be used to include empty fields in Patch requests.
21229	ForceSendFields []string `json:"-"`
21230
21231	// NullFields is a list of field names (e.g. "Key") to include in API
21232	// requests with the JSON null value. By default, fields with empty
21233	// values are omitted from API requests. However, any field with an
21234	// empty value appearing in NullFields will be sent to the server as
21235	// null. It is an error if a field in this list has a non-empty value.
21236	// This may be used to include null fields in Patch requests.
21237	NullFields []string `json:"-"`
21238}
21239
21240func (s *InterconnectAttachmentListWarningData) MarshalJSON() ([]byte, error) {
21241	type NoMethod InterconnectAttachmentListWarningData
21242	raw := NoMethod(*s)
21243	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21244}
21245
21246// InterconnectAttachmentPartnerMetadata: Informational metadata about
21247// Partner attachments from Partners to display to customers. These
21248// fields are propagated from PARTNER_PROVIDER attachments to their
21249// corresponding PARTNER attachments.
21250type InterconnectAttachmentPartnerMetadata struct {
21251	// InterconnectName: Plain text name of the Interconnect this attachment
21252	// is connected to, as displayed in the Partner's portal. For instance
21253	// "Chicago 1". This value may be validated to match approved Partner
21254	// values.
21255	InterconnectName string `json:"interconnectName,omitempty"`
21256
21257	// PartnerName: Plain text name of the Partner providing this
21258	// attachment. This value may be validated to match approved Partner
21259	// values.
21260	PartnerName string `json:"partnerName,omitempty"`
21261
21262	// PortalUrl: URL of the Partner's portal for this Attachment. Partners
21263	// may customise this to be a deep link to the specific resource on the
21264	// Partner portal. This value may be validated to match approved Partner
21265	// values.
21266	PortalUrl string `json:"portalUrl,omitempty"`
21267
21268	// ForceSendFields is a list of field names (e.g. "InterconnectName") to
21269	// unconditionally include in API requests. By default, fields with
21270	// empty or default values are omitted from API requests. However, any
21271	// non-pointer, non-interface field appearing in ForceSendFields will be
21272	// sent to the server regardless of whether the field is empty or not.
21273	// This may be used to include empty fields in Patch requests.
21274	ForceSendFields []string `json:"-"`
21275
21276	// NullFields is a list of field names (e.g. "InterconnectName") to
21277	// include in API requests with the JSON null value. By default, fields
21278	// with empty values are omitted from API requests. However, any field
21279	// with an empty value appearing in NullFields will be sent to the
21280	// server as null. It is an error if a field in this list has a
21281	// non-empty value. This may be used to include null fields in Patch
21282	// requests.
21283	NullFields []string `json:"-"`
21284}
21285
21286func (s *InterconnectAttachmentPartnerMetadata) MarshalJSON() ([]byte, error) {
21287	type NoMethod InterconnectAttachmentPartnerMetadata
21288	raw := NoMethod(*s)
21289	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21290}
21291
21292// InterconnectAttachmentPrivateInfo: Information for an interconnect
21293// attachment when this belongs to an interconnect of type DEDICATED.
21294type InterconnectAttachmentPrivateInfo struct {
21295	// Tag8021q: [Output Only] 802.1q encapsulation tag to be used for
21296	// traffic between Google and the customer, going to and from this
21297	// network and region.
21298	Tag8021q int64 `json:"tag8021q,omitempty"`
21299
21300	// ForceSendFields is a list of field names (e.g. "Tag8021q") to
21301	// unconditionally include in API requests. By default, fields with
21302	// empty or default values are omitted from API requests. However, any
21303	// non-pointer, non-interface field appearing in ForceSendFields will be
21304	// sent to the server regardless of whether the field is empty or not.
21305	// This may be used to include empty fields in Patch requests.
21306	ForceSendFields []string `json:"-"`
21307
21308	// NullFields is a list of field names (e.g. "Tag8021q") to include in
21309	// API requests with the JSON null value. By default, fields with empty
21310	// values are omitted from API requests. However, any field with an
21311	// empty value appearing in NullFields will be sent to the server as
21312	// null. It is an error if a field in this list has a non-empty value.
21313	// This may be used to include null fields in Patch requests.
21314	NullFields []string `json:"-"`
21315}
21316
21317func (s *InterconnectAttachmentPrivateInfo) MarshalJSON() ([]byte, error) {
21318	type NoMethod InterconnectAttachmentPrivateInfo
21319	raw := NoMethod(*s)
21320	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21321}
21322
21323type InterconnectAttachmentsScopedList struct {
21324	// InterconnectAttachments: A list of interconnect attachments contained
21325	// in this scope.
21326	InterconnectAttachments []*InterconnectAttachment `json:"interconnectAttachments,omitempty"`
21327
21328	// Warning: Informational warning which replaces the list of addresses
21329	// when the list is empty.
21330	Warning *InterconnectAttachmentsScopedListWarning `json:"warning,omitempty"`
21331
21332	// ForceSendFields is a list of field names (e.g.
21333	// "InterconnectAttachments") to unconditionally include in API
21334	// requests. By default, fields with empty or default values are omitted
21335	// from API requests. However, any non-pointer, non-interface field
21336	// appearing in ForceSendFields will be sent to the server regardless of
21337	// whether the field is empty or not. This may be used to include empty
21338	// fields in Patch requests.
21339	ForceSendFields []string `json:"-"`
21340
21341	// NullFields is a list of field names (e.g. "InterconnectAttachments")
21342	// to include in API requests with the JSON null value. By default,
21343	// fields with empty values are omitted from API requests. However, any
21344	// field with an empty value appearing in NullFields will be sent to the
21345	// server as null. It is an error if a field in this list has a
21346	// non-empty value. This may be used to include null fields in Patch
21347	// requests.
21348	NullFields []string `json:"-"`
21349}
21350
21351func (s *InterconnectAttachmentsScopedList) MarshalJSON() ([]byte, error) {
21352	type NoMethod InterconnectAttachmentsScopedList
21353	raw := NoMethod(*s)
21354	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21355}
21356
21357// InterconnectAttachmentsScopedListWarning: Informational warning which
21358// replaces the list of addresses when the list is empty.
21359type InterconnectAttachmentsScopedListWarning struct {
21360	// Code: [Output Only] A warning code, if applicable. For example,
21361	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21362	// the response.
21363	//
21364	// Possible values:
21365	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
21366	// changes made by a failed operation.
21367	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
21368	// created.
21369	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
21370	// resources has a type marked as deprecated
21371	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
21372	// that is larger than image size.
21373	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
21374	// resources has a type marked as experimental
21375	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
21376	// call
21377	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
21378	// overridden. Deprecated unused field.
21379	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
21380	// injected kernel, which is deprecated.
21381	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
21382	// exceedingly large number of resources
21383	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
21384	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
21385	// not assigned to an instance on the network.
21386	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
21387	// ip forward.
21388	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
21389	// refers to an instance that does not exist.
21390	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
21391	// URL refers to an instance that is not on the same network as the
21392	// route.
21393	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
21394	// have a status of RUNNING.
21395	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
21396	// continue the process despite the mentioned error.
21397	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
21398	// page.
21399	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
21400	// missing due to errors
21401	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
21402	// that requires a TOS they have not accepted.
21403	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
21404	// resource is in use.
21405	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
21406	// auto-delete could not be deleted because they were in use.
21407	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
21408	// ignored.
21409	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
21410	// instance group manager is valid as such, but its application does not
21411	// make a lot of sense, because it allows only single instance in
21412	// instance group.
21413	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
21414	// are present
21415	//   "UNREACHABLE" - A given scope cannot be reached.
21416	Code string `json:"code,omitempty"`
21417
21418	// Data: [Output Only] Metadata about this warning in key: value format.
21419	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
21420	// }
21421	Data []*InterconnectAttachmentsScopedListWarningData `json:"data,omitempty"`
21422
21423	// Message: [Output Only] A human-readable description of the warning
21424	// code.
21425	Message string `json:"message,omitempty"`
21426
21427	// ForceSendFields is a list of field names (e.g. "Code") to
21428	// unconditionally include in API requests. By default, fields with
21429	// empty or default values are omitted from API requests. However, any
21430	// non-pointer, non-interface field appearing in ForceSendFields will be
21431	// sent to the server regardless of whether the field is empty or not.
21432	// This may be used to include empty fields in Patch requests.
21433	ForceSendFields []string `json:"-"`
21434
21435	// NullFields is a list of field names (e.g. "Code") to include in API
21436	// requests with the JSON null value. By default, fields with empty
21437	// values are omitted from API requests. However, any field with an
21438	// empty value appearing in NullFields will be sent to the server as
21439	// null. It is an error if a field in this list has a non-empty value.
21440	// This may be used to include null fields in Patch requests.
21441	NullFields []string `json:"-"`
21442}
21443
21444func (s *InterconnectAttachmentsScopedListWarning) MarshalJSON() ([]byte, error) {
21445	type NoMethod InterconnectAttachmentsScopedListWarning
21446	raw := NoMethod(*s)
21447	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21448}
21449
21450type InterconnectAttachmentsScopedListWarningData struct {
21451	// Key: [Output Only] A key that provides more detail on the warning
21452	// being returned. For example, for warnings where there are no results
21453	// in a list request for a particular zone, this key might be scope and
21454	// the key value might be the zone name. Other examples might be a key
21455	// indicating a deprecated resource and a suggested replacement, or a
21456	// warning about invalid network settings (for example, if an instance
21457	// attempts to perform IP forwarding but is not enabled for IP
21458	// forwarding).
21459	Key string `json:"key,omitempty"`
21460
21461	// Value: [Output Only] A warning data value corresponding to the key.
21462	Value string `json:"value,omitempty"`
21463
21464	// ForceSendFields is a list of field names (e.g. "Key") to
21465	// unconditionally include in API requests. By default, fields with
21466	// empty or default values are omitted from API requests. However, any
21467	// non-pointer, non-interface field appearing in ForceSendFields will be
21468	// sent to the server regardless of whether the field is empty or not.
21469	// This may be used to include empty fields in Patch requests.
21470	ForceSendFields []string `json:"-"`
21471
21472	// NullFields is a list of field names (e.g. "Key") to include in API
21473	// requests with the JSON null value. By default, fields with empty
21474	// values are omitted from API requests. However, any field with an
21475	// empty value appearing in NullFields will be sent to the server as
21476	// null. It is an error if a field in this list has a non-empty value.
21477	// This may be used to include null fields in Patch requests.
21478	NullFields []string `json:"-"`
21479}
21480
21481func (s *InterconnectAttachmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
21482	type NoMethod InterconnectAttachmentsScopedListWarningData
21483	raw := NoMethod(*s)
21484	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21485}
21486
21487// InterconnectCircuitInfo: Describes a single physical circuit between
21488// the Customer and Google. CircuitInfo objects are created by Google,
21489// so all fields are output only.
21490type InterconnectCircuitInfo struct {
21491	// CustomerDemarcId: Customer-side demarc ID for this circuit.
21492	CustomerDemarcId string `json:"customerDemarcId,omitempty"`
21493
21494	// GoogleCircuitId: Google-assigned unique ID for this circuit. Assigned
21495	// at circuit turn-up.
21496	GoogleCircuitId string `json:"googleCircuitId,omitempty"`
21497
21498	// GoogleDemarcId: Google-side demarc ID for this circuit. Assigned at
21499	// circuit turn-up and provided by Google to the customer in the LOA.
21500	GoogleDemarcId string `json:"googleDemarcId,omitempty"`
21501
21502	// ForceSendFields is a list of field names (e.g. "CustomerDemarcId") to
21503	// unconditionally include in API requests. By default, fields with
21504	// empty or default values are omitted from API requests. However, any
21505	// non-pointer, non-interface field appearing in ForceSendFields will be
21506	// sent to the server regardless of whether the field is empty or not.
21507	// This may be used to include empty fields in Patch requests.
21508	ForceSendFields []string `json:"-"`
21509
21510	// NullFields is a list of field names (e.g. "CustomerDemarcId") to
21511	// include in API requests with the JSON null value. By default, fields
21512	// with empty values are omitted from API requests. However, any field
21513	// with an empty value appearing in NullFields will be sent to the
21514	// server as null. It is an error if a field in this list has a
21515	// non-empty value. This may be used to include null fields in Patch
21516	// requests.
21517	NullFields []string `json:"-"`
21518}
21519
21520func (s *InterconnectCircuitInfo) MarshalJSON() ([]byte, error) {
21521	type NoMethod InterconnectCircuitInfo
21522	raw := NoMethod(*s)
21523	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21524}
21525
21526// InterconnectDiagnostics: Diagnostics information about interconnect,
21527// contains detailed and current technical information about Google's
21528// side of the connection.
21529type InterconnectDiagnostics struct {
21530	// ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects,
21531	// describing individual neighbors currently seen by the Google router
21532	// in the ARP cache for the Interconnect. This will be empty when the
21533	// Interconnect is not bundled.
21534	ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"`
21535
21536	// Links: A list of InterconnectDiagnostics.LinkStatus objects,
21537	// describing the status for each link on the Interconnect.
21538	Links []*InterconnectDiagnosticsLinkStatus `json:"links,omitempty"`
21539
21540	// MacAddress: The MAC address of the Interconnect's bundle interface.
21541	MacAddress string `json:"macAddress,omitempty"`
21542
21543	// ForceSendFields is a list of field names (e.g. "ArpCaches") to
21544	// unconditionally include in API requests. By default, fields with
21545	// empty or default values are omitted from API requests. However, any
21546	// non-pointer, non-interface field appearing in ForceSendFields will be
21547	// sent to the server regardless of whether the field is empty or not.
21548	// This may be used to include empty fields in Patch requests.
21549	ForceSendFields []string `json:"-"`
21550
21551	// NullFields is a list of field names (e.g. "ArpCaches") to include in
21552	// API requests with the JSON null value. By default, fields with empty
21553	// values are omitted from API requests. However, any field with an
21554	// empty value appearing in NullFields will be sent to the server as
21555	// null. It is an error if a field in this list has a non-empty value.
21556	// This may be used to include null fields in Patch requests.
21557	NullFields []string `json:"-"`
21558}
21559
21560func (s *InterconnectDiagnostics) MarshalJSON() ([]byte, error) {
21561	type NoMethod InterconnectDiagnostics
21562	raw := NoMethod(*s)
21563	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21564}
21565
21566// InterconnectDiagnosticsARPEntry: Describing the ARP neighbor entries
21567// seen on this link
21568type InterconnectDiagnosticsARPEntry struct {
21569	// IpAddress: The IP address of this ARP neighbor.
21570	IpAddress string `json:"ipAddress,omitempty"`
21571
21572	// MacAddress: The MAC address of this ARP neighbor.
21573	MacAddress string `json:"macAddress,omitempty"`
21574
21575	// ForceSendFields is a list of field names (e.g. "IpAddress") to
21576	// unconditionally include in API requests. By default, fields with
21577	// empty or default values are omitted from API requests. However, any
21578	// non-pointer, non-interface field appearing in ForceSendFields will be
21579	// sent to the server regardless of whether the field is empty or not.
21580	// This may be used to include empty fields in Patch requests.
21581	ForceSendFields []string `json:"-"`
21582
21583	// NullFields is a list of field names (e.g. "IpAddress") to include in
21584	// API requests with the JSON null value. By default, fields with empty
21585	// values are omitted from API requests. However, any field with an
21586	// empty value appearing in NullFields will be sent to the server as
21587	// null. It is an error if a field in this list has a non-empty value.
21588	// This may be used to include null fields in Patch requests.
21589	NullFields []string `json:"-"`
21590}
21591
21592func (s *InterconnectDiagnosticsARPEntry) MarshalJSON() ([]byte, error) {
21593	type NoMethod InterconnectDiagnosticsARPEntry
21594	raw := NoMethod(*s)
21595	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21596}
21597
21598type InterconnectDiagnosticsLinkLACPStatus struct {
21599	// GoogleSystemId: System ID of the port on Google's side of the LACP
21600	// exchange.
21601	GoogleSystemId string `json:"googleSystemId,omitempty"`
21602
21603	// NeighborSystemId: System ID of the port on the neighbor's side of the
21604	// LACP exchange.
21605	NeighborSystemId string `json:"neighborSystemId,omitempty"`
21606
21607	// State: The state of a LACP link, which can take one of the following
21608	// values: - ACTIVE: The link is configured and active within the
21609	// bundle. - DETACHED: The link is not configured within the bundle.
21610	// This means that the rest of the object should be empty.
21611	//
21612	// Possible values:
21613	//   "ACTIVE" - The link is configured and active within the bundle.
21614	//   "DETACHED" - The link is not configured within the bundle, this
21615	// means the rest of the object should be empty.
21616	State string `json:"state,omitempty"`
21617
21618	// ForceSendFields is a list of field names (e.g. "GoogleSystemId") to
21619	// unconditionally include in API requests. By default, fields with
21620	// empty or default values are omitted from API requests. However, any
21621	// non-pointer, non-interface field appearing in ForceSendFields will be
21622	// sent to the server regardless of whether the field is empty or not.
21623	// This may be used to include empty fields in Patch requests.
21624	ForceSendFields []string `json:"-"`
21625
21626	// NullFields is a list of field names (e.g. "GoogleSystemId") to
21627	// include in API requests with the JSON null value. By default, fields
21628	// with empty values are omitted from API requests. However, any field
21629	// with an empty value appearing in NullFields will be sent to the
21630	// server as null. It is an error if a field in this list has a
21631	// non-empty value. This may be used to include null fields in Patch
21632	// requests.
21633	NullFields []string `json:"-"`
21634}
21635
21636func (s *InterconnectDiagnosticsLinkLACPStatus) MarshalJSON() ([]byte, error) {
21637	type NoMethod InterconnectDiagnosticsLinkLACPStatus
21638	raw := NoMethod(*s)
21639	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21640}
21641
21642type InterconnectDiagnosticsLinkOpticalPower struct {
21643	// State: The status of the current value when compared to the warning
21644	// and alarm levels for the receiving or transmitting transceiver.
21645	// Possible states include: - OK: The value has not crossed a warning
21646	// threshold. - LOW_WARNING: The value has crossed below the low warning
21647	// threshold. - HIGH_WARNING: The value has crossed above the high
21648	// warning threshold. - LOW_ALARM: The value has crossed below the low
21649	// alarm threshold. - HIGH_ALARM: The value has crossed above the high
21650	// alarm threshold.
21651	//
21652	// Possible values:
21653	//   "HIGH_ALARM" - The value has crossed above the high alarm
21654	// threshold.
21655	//   "HIGH_WARNING" - The value of the current optical power has crossed
21656	// above the high warning threshold.
21657	//   "LOW_ALARM" - The value of the current optical power has crossed
21658	// below the low alarm threshold.
21659	//   "LOW_WARNING" - The value of the current optical power has crossed
21660	// below the low warning threshold.
21661	//   "OK" - The value of the current optical power has not crossed a
21662	// warning threshold.
21663	State string `json:"state,omitempty"`
21664
21665	// Value: Value of the current receiving or transmitting optical power,
21666	// read in dBm. Take a known good optical value, give it a 10% margin
21667	// and trigger warnings relative to that value. In general, a -7dBm
21668	// warning and a -11dBm alarm are good optical value estimates for most
21669	// links.
21670	Value float64 `json:"value,omitempty"`
21671
21672	// ForceSendFields is a list of field names (e.g. "State") to
21673	// unconditionally include in API requests. By default, fields with
21674	// empty or default values are omitted from API requests. However, any
21675	// non-pointer, non-interface field appearing in ForceSendFields will be
21676	// sent to the server regardless of whether the field is empty or not.
21677	// This may be used to include empty fields in Patch requests.
21678	ForceSendFields []string `json:"-"`
21679
21680	// NullFields is a list of field names (e.g. "State") to include in API
21681	// requests with the JSON null value. By default, fields with empty
21682	// values are omitted from API requests. However, any field with an
21683	// empty value appearing in NullFields will be sent to the server as
21684	// null. It is an error if a field in this list has a non-empty value.
21685	// This may be used to include null fields in Patch requests.
21686	NullFields []string `json:"-"`
21687}
21688
21689func (s *InterconnectDiagnosticsLinkOpticalPower) MarshalJSON() ([]byte, error) {
21690	type NoMethod InterconnectDiagnosticsLinkOpticalPower
21691	raw := NoMethod(*s)
21692	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21693}
21694
21695func (s *InterconnectDiagnosticsLinkOpticalPower) UnmarshalJSON(data []byte) error {
21696	type NoMethod InterconnectDiagnosticsLinkOpticalPower
21697	var s1 struct {
21698		Value gensupport.JSONFloat64 `json:"value"`
21699		*NoMethod
21700	}
21701	s1.NoMethod = (*NoMethod)(s)
21702	if err := json.Unmarshal(data, &s1); err != nil {
21703		return err
21704	}
21705	s.Value = float64(s1.Value)
21706	return nil
21707}
21708
21709type InterconnectDiagnosticsLinkStatus struct {
21710	// ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects,
21711	// describing the ARP neighbor entries seen on this link. This will be
21712	// empty if the link is bundled
21713	ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"`
21714
21715	// CircuitId: The unique ID for this link assigned during turn up by
21716	// Google.
21717	CircuitId string `json:"circuitId,omitempty"`
21718
21719	// GoogleDemarc: The Demarc address assigned by Google and provided in
21720	// the LoA.
21721	GoogleDemarc string `json:"googleDemarc,omitempty"`
21722
21723	LacpStatus *InterconnectDiagnosticsLinkLACPStatus `json:"lacpStatus,omitempty"`
21724
21725	// ReceivingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower
21726	// object, describing the current value and status of the received light
21727	// level.
21728	ReceivingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"receivingOpticalPower,omitempty"`
21729
21730	// TransmittingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower
21731	// object, describing the current value and status of the transmitted
21732	// light level.
21733	TransmittingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"transmittingOpticalPower,omitempty"`
21734
21735	// ForceSendFields is a list of field names (e.g. "ArpCaches") to
21736	// unconditionally include in API requests. By default, fields with
21737	// empty or default values are omitted from API requests. However, any
21738	// non-pointer, non-interface field appearing in ForceSendFields will be
21739	// sent to the server regardless of whether the field is empty or not.
21740	// This may be used to include empty fields in Patch requests.
21741	ForceSendFields []string `json:"-"`
21742
21743	// NullFields is a list of field names (e.g. "ArpCaches") to include in
21744	// API requests with the JSON null value. By default, fields with empty
21745	// values are omitted from API requests. However, any field with an
21746	// empty value appearing in NullFields will be sent to the server as
21747	// null. It is an error if a field in this list has a non-empty value.
21748	// This may be used to include null fields in Patch requests.
21749	NullFields []string `json:"-"`
21750}
21751
21752func (s *InterconnectDiagnosticsLinkStatus) MarshalJSON() ([]byte, error) {
21753	type NoMethod InterconnectDiagnosticsLinkStatus
21754	raw := NoMethod(*s)
21755	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21756}
21757
21758// InterconnectList: Response to the list request, and contains a list
21759// of interconnects.
21760type InterconnectList struct {
21761	// Id: [Output Only] Unique identifier for the resource; defined by the
21762	// server.
21763	Id string `json:"id,omitempty"`
21764
21765	// Items: A list of Interconnect resources.
21766	Items []*Interconnect `json:"items,omitempty"`
21767
21768	// Kind: [Output Only] Type of resource. Always compute#interconnectList
21769	// for lists of interconnects.
21770	Kind string `json:"kind,omitempty"`
21771
21772	// NextPageToken: [Output Only] This token allows you to get the next
21773	// page of results for list requests. If the number of results is larger
21774	// than maxResults, use the nextPageToken as a value for the query
21775	// parameter pageToken in the next list request. Subsequent list
21776	// requests will have their own nextPageToken to continue paging through
21777	// the results.
21778	NextPageToken string `json:"nextPageToken,omitempty"`
21779
21780	// SelfLink: [Output Only] Server-defined URL for this resource.
21781	SelfLink string `json:"selfLink,omitempty"`
21782
21783	// Warning: [Output Only] Informational warning message.
21784	Warning *InterconnectListWarning `json:"warning,omitempty"`
21785
21786	// ServerResponse contains the HTTP response code and headers from the
21787	// server.
21788	googleapi.ServerResponse `json:"-"`
21789
21790	// ForceSendFields is a list of field names (e.g. "Id") to
21791	// unconditionally include in API requests. By default, fields with
21792	// empty or default values are omitted from API requests. However, any
21793	// non-pointer, non-interface field appearing in ForceSendFields will be
21794	// sent to the server regardless of whether the field is empty or not.
21795	// This may be used to include empty fields in Patch requests.
21796	ForceSendFields []string `json:"-"`
21797
21798	// NullFields is a list of field names (e.g. "Id") to include in API
21799	// requests with the JSON null value. By default, fields with empty
21800	// values are omitted from API requests. However, any field with an
21801	// empty value appearing in NullFields will be sent to the server as
21802	// null. It is an error if a field in this list has a non-empty value.
21803	// This may be used to include null fields in Patch requests.
21804	NullFields []string `json:"-"`
21805}
21806
21807func (s *InterconnectList) MarshalJSON() ([]byte, error) {
21808	type NoMethod InterconnectList
21809	raw := NoMethod(*s)
21810	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21811}
21812
21813// InterconnectListWarning: [Output Only] Informational warning message.
21814type InterconnectListWarning struct {
21815	// Code: [Output Only] A warning code, if applicable. For example,
21816	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21817	// the response.
21818	//
21819	// Possible values:
21820	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
21821	// changes made by a failed operation.
21822	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
21823	// created.
21824	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
21825	// resources has a type marked as deprecated
21826	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
21827	// that is larger than image size.
21828	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
21829	// resources has a type marked as experimental
21830	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
21831	// call
21832	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
21833	// overridden. Deprecated unused field.
21834	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
21835	// injected kernel, which is deprecated.
21836	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
21837	// exceedingly large number of resources
21838	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
21839	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
21840	// not assigned to an instance on the network.
21841	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
21842	// ip forward.
21843	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
21844	// refers to an instance that does not exist.
21845	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
21846	// URL refers to an instance that is not on the same network as the
21847	// route.
21848	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
21849	// have a status of RUNNING.
21850	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
21851	// continue the process despite the mentioned error.
21852	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
21853	// page.
21854	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
21855	// missing due to errors
21856	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
21857	// that requires a TOS they have not accepted.
21858	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
21859	// resource is in use.
21860	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
21861	// auto-delete could not be deleted because they were in use.
21862	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
21863	// ignored.
21864	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
21865	// instance group manager is valid as such, but its application does not
21866	// make a lot of sense, because it allows only single instance in
21867	// instance group.
21868	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
21869	// are present
21870	//   "UNREACHABLE" - A given scope cannot be reached.
21871	Code string `json:"code,omitempty"`
21872
21873	// Data: [Output Only] Metadata about this warning in key: value format.
21874	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
21875	// }
21876	Data []*InterconnectListWarningData `json:"data,omitempty"`
21877
21878	// Message: [Output Only] A human-readable description of the warning
21879	// code.
21880	Message string `json:"message,omitempty"`
21881
21882	// ForceSendFields is a list of field names (e.g. "Code") to
21883	// unconditionally include in API requests. By default, fields with
21884	// empty or default values are omitted from API requests. However, any
21885	// non-pointer, non-interface field appearing in ForceSendFields will be
21886	// sent to the server regardless of whether the field is empty or not.
21887	// This may be used to include empty fields in Patch requests.
21888	ForceSendFields []string `json:"-"`
21889
21890	// NullFields is a list of field names (e.g. "Code") to include in API
21891	// requests with the JSON null value. By default, fields with empty
21892	// values are omitted from API requests. However, any field with an
21893	// empty value appearing in NullFields will be sent to the server as
21894	// null. It is an error if a field in this list has a non-empty value.
21895	// This may be used to include null fields in Patch requests.
21896	NullFields []string `json:"-"`
21897}
21898
21899func (s *InterconnectListWarning) MarshalJSON() ([]byte, error) {
21900	type NoMethod InterconnectListWarning
21901	raw := NoMethod(*s)
21902	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21903}
21904
21905type InterconnectListWarningData struct {
21906	// Key: [Output Only] A key that provides more detail on the warning
21907	// being returned. For example, for warnings where there are no results
21908	// in a list request for a particular zone, this key might be scope and
21909	// the key value might be the zone name. Other examples might be a key
21910	// indicating a deprecated resource and a suggested replacement, or a
21911	// warning about invalid network settings (for example, if an instance
21912	// attempts to perform IP forwarding but is not enabled for IP
21913	// forwarding).
21914	Key string `json:"key,omitempty"`
21915
21916	// Value: [Output Only] A warning data value corresponding to the key.
21917	Value string `json:"value,omitempty"`
21918
21919	// ForceSendFields is a list of field names (e.g. "Key") to
21920	// unconditionally include in API requests. By default, fields with
21921	// empty or default values are omitted from API requests. However, any
21922	// non-pointer, non-interface field appearing in ForceSendFields will be
21923	// sent to the server regardless of whether the field is empty or not.
21924	// This may be used to include empty fields in Patch requests.
21925	ForceSendFields []string `json:"-"`
21926
21927	// NullFields is a list of field names (e.g. "Key") to include in API
21928	// requests with the JSON null value. By default, fields with empty
21929	// values are omitted from API requests. However, any field with an
21930	// empty value appearing in NullFields will be sent to the server as
21931	// null. It is an error if a field in this list has a non-empty value.
21932	// This may be used to include null fields in Patch requests.
21933	NullFields []string `json:"-"`
21934}
21935
21936func (s *InterconnectListWarningData) MarshalJSON() ([]byte, error) {
21937	type NoMethod InterconnectListWarningData
21938	raw := NoMethod(*s)
21939	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21940}
21941
21942// InterconnectLocation: Represents an Interconnect Attachment (VLAN)
21943// Location resource. You can use this resource to find location details
21944// about an Interconnect attachment (VLAN). For more information about
21945// interconnect attachments, read Creating VLAN Attachments.
21946type InterconnectLocation struct {
21947	// Address: [Output Only] The postal address of the Point of Presence,
21948	// each line in the address is separated by a newline character.
21949	Address string `json:"address,omitempty"`
21950
21951	// AvailabilityZone: [Output Only] Availability zone for this
21952	// InterconnectLocation. Within a metropolitan area (metro), maintenance
21953	// will not be simultaneously scheduled in more than one availability
21954	// zone. Example: "zone1" or "zone2".
21955	AvailabilityZone string `json:"availabilityZone,omitempty"`
21956
21957	// City: [Output Only] Metropolitan area designator that indicates which
21958	// city an interconnect is located. For example: "Chicago, IL",
21959	// "Amsterdam, Netherlands".
21960	City string `json:"city,omitempty"`
21961
21962	// Continent: [Output Only] Continent for this location, which can take
21963	// one of the following values: - AFRICA - ASIA_PAC - EUROPE -
21964	// NORTH_AMERICA - SOUTH_AMERICA
21965	//
21966	// Possible values:
21967	//   "AFRICA"
21968	//   "ASIA_PAC"
21969	//   "C_AFRICA"
21970	//   "C_ASIA_PAC"
21971	//   "C_EUROPE"
21972	//   "C_NORTH_AMERICA"
21973	//   "C_SOUTH_AMERICA"
21974	//   "EUROPE"
21975	//   "NORTH_AMERICA"
21976	//   "SOUTH_AMERICA"
21977	Continent string `json:"continent,omitempty"`
21978
21979	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
21980	// format.
21981	CreationTimestamp string `json:"creationTimestamp,omitempty"`
21982
21983	// Description: [Output Only] An optional description of the resource.
21984	Description string `json:"description,omitempty"`
21985
21986	// FacilityProvider: [Output Only] The name of the provider for this
21987	// facility (e.g., EQUINIX).
21988	FacilityProvider string `json:"facilityProvider,omitempty"`
21989
21990	// FacilityProviderFacilityId: [Output Only] A provider-assigned
21991	// Identifier for this facility (e.g., Ashburn-DC1).
21992	FacilityProviderFacilityId string `json:"facilityProviderFacilityId,omitempty"`
21993
21994	// Id: [Output Only] The unique identifier for the resource. This
21995	// identifier is defined by the server.
21996	Id uint64 `json:"id,omitempty,string"`
21997
21998	// Kind: [Output Only] Type of the resource. Always
21999	// compute#interconnectLocation for interconnect locations.
22000	Kind string `json:"kind,omitempty"`
22001
22002	// Name: [Output Only] Name of the resource.
22003	Name string `json:"name,omitempty"`
22004
22005	// PeeringdbFacilityId: [Output Only] The peeringdb identifier for this
22006	// facility (corresponding with a netfac type in peeringdb).
22007	PeeringdbFacilityId string `json:"peeringdbFacilityId,omitempty"`
22008
22009	// RegionInfos: [Output Only] A list of InterconnectLocation.RegionInfo
22010	// objects, that describe parameters pertaining to the relation between
22011	// this InterconnectLocation and various Google Cloud regions.
22012	RegionInfos []*InterconnectLocationRegionInfo `json:"regionInfos,omitempty"`
22013
22014	// SelfLink: [Output Only] Server-defined URL for the resource.
22015	SelfLink string `json:"selfLink,omitempty"`
22016
22017	// Status: [Output Only] The status of this InterconnectLocation, which
22018	// can take one of the following values: - CLOSED: The
22019	// InterconnectLocation is closed and is unavailable for provisioning
22020	// new Interconnects. - AVAILABLE: The InterconnectLocation is available
22021	// for provisioning new Interconnects.
22022	//
22023	// Possible values:
22024	//   "AVAILABLE" - The InterconnectLocation is available for
22025	// provisioning new Interconnects.
22026	//   "CLOSED" - The InterconnectLocation is closed for provisioning new
22027	// Interconnects.
22028	Status string `json:"status,omitempty"`
22029
22030	// SupportsPzs: [Output Only] Set to true for locations that support
22031	// physical zone separation. Defaults to false if the field is not
22032	// present.
22033	SupportsPzs bool `json:"supportsPzs,omitempty"`
22034
22035	// ServerResponse contains the HTTP response code and headers from the
22036	// server.
22037	googleapi.ServerResponse `json:"-"`
22038
22039	// ForceSendFields is a list of field names (e.g. "Address") to
22040	// unconditionally include in API requests. By default, fields with
22041	// empty or default values are omitted from API requests. However, any
22042	// non-pointer, non-interface field appearing in ForceSendFields will be
22043	// sent to the server regardless of whether the field is empty or not.
22044	// This may be used to include empty fields in Patch requests.
22045	ForceSendFields []string `json:"-"`
22046
22047	// NullFields is a list of field names (e.g. "Address") to include in
22048	// API requests with the JSON null value. By default, fields with empty
22049	// values are omitted from API requests. However, any field with an
22050	// empty value appearing in NullFields will be sent to the server as
22051	// null. It is an error if a field in this list has a non-empty value.
22052	// This may be used to include null fields in Patch requests.
22053	NullFields []string `json:"-"`
22054}
22055
22056func (s *InterconnectLocation) MarshalJSON() ([]byte, error) {
22057	type NoMethod InterconnectLocation
22058	raw := NoMethod(*s)
22059	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22060}
22061
22062// InterconnectLocationList: Response to the list request, and contains
22063// a list of interconnect locations.
22064type InterconnectLocationList struct {
22065	// Id: [Output Only] Unique identifier for the resource; defined by the
22066	// server.
22067	Id string `json:"id,omitempty"`
22068
22069	// Items: A list of InterconnectLocation resources.
22070	Items []*InterconnectLocation `json:"items,omitempty"`
22071
22072	// Kind: [Output Only] Type of resource. Always
22073	// compute#interconnectLocationList for lists of interconnect locations.
22074	Kind string `json:"kind,omitempty"`
22075
22076	// NextPageToken: [Output Only] This token allows you to get the next
22077	// page of results for list requests. If the number of results is larger
22078	// than maxResults, use the nextPageToken as a value for the query
22079	// parameter pageToken in the next list request. Subsequent list
22080	// requests will have their own nextPageToken to continue paging through
22081	// the results.
22082	NextPageToken string `json:"nextPageToken,omitempty"`
22083
22084	// SelfLink: [Output Only] Server-defined URL for this resource.
22085	SelfLink string `json:"selfLink,omitempty"`
22086
22087	// Warning: [Output Only] Informational warning message.
22088	Warning *InterconnectLocationListWarning `json:"warning,omitempty"`
22089
22090	// ServerResponse contains the HTTP response code and headers from the
22091	// server.
22092	googleapi.ServerResponse `json:"-"`
22093
22094	// ForceSendFields is a list of field names (e.g. "Id") to
22095	// unconditionally include in API requests. By default, fields with
22096	// empty or default values are omitted from API requests. However, any
22097	// non-pointer, non-interface field appearing in ForceSendFields will be
22098	// sent to the server regardless of whether the field is empty or not.
22099	// This may be used to include empty fields in Patch requests.
22100	ForceSendFields []string `json:"-"`
22101
22102	// NullFields is a list of field names (e.g. "Id") to include in API
22103	// requests with the JSON null value. By default, fields with empty
22104	// values are omitted from API requests. However, any field with an
22105	// empty value appearing in NullFields will be sent to the server as
22106	// null. It is an error if a field in this list has a non-empty value.
22107	// This may be used to include null fields in Patch requests.
22108	NullFields []string `json:"-"`
22109}
22110
22111func (s *InterconnectLocationList) MarshalJSON() ([]byte, error) {
22112	type NoMethod InterconnectLocationList
22113	raw := NoMethod(*s)
22114	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22115}
22116
22117// InterconnectLocationListWarning: [Output Only] Informational warning
22118// message.
22119type InterconnectLocationListWarning struct {
22120	// Code: [Output Only] A warning code, if applicable. For example,
22121	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22122	// the response.
22123	//
22124	// Possible values:
22125	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
22126	// changes made by a failed operation.
22127	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
22128	// created.
22129	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
22130	// resources has a type marked as deprecated
22131	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
22132	// that is larger than image size.
22133	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
22134	// resources has a type marked as experimental
22135	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
22136	// call
22137	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
22138	// overridden. Deprecated unused field.
22139	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
22140	// injected kernel, which is deprecated.
22141	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
22142	// exceedingly large number of resources
22143	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
22144	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
22145	// not assigned to an instance on the network.
22146	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
22147	// ip forward.
22148	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
22149	// refers to an instance that does not exist.
22150	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
22151	// URL refers to an instance that is not on the same network as the
22152	// route.
22153	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
22154	// have a status of RUNNING.
22155	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
22156	// continue the process despite the mentioned error.
22157	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
22158	// page.
22159	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
22160	// missing due to errors
22161	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
22162	// that requires a TOS they have not accepted.
22163	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
22164	// resource is in use.
22165	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
22166	// auto-delete could not be deleted because they were in use.
22167	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
22168	// ignored.
22169	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
22170	// instance group manager is valid as such, but its application does not
22171	// make a lot of sense, because it allows only single instance in
22172	// instance group.
22173	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
22174	// are present
22175	//   "UNREACHABLE" - A given scope cannot be reached.
22176	Code string `json:"code,omitempty"`
22177
22178	// Data: [Output Only] Metadata about this warning in key: value format.
22179	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
22180	// }
22181	Data []*InterconnectLocationListWarningData `json:"data,omitempty"`
22182
22183	// Message: [Output Only] A human-readable description of the warning
22184	// code.
22185	Message string `json:"message,omitempty"`
22186
22187	// ForceSendFields is a list of field names (e.g. "Code") to
22188	// unconditionally include in API requests. By default, fields with
22189	// empty or default values are omitted from API requests. However, any
22190	// non-pointer, non-interface field appearing in ForceSendFields will be
22191	// sent to the server regardless of whether the field is empty or not.
22192	// This may be used to include empty fields in Patch requests.
22193	ForceSendFields []string `json:"-"`
22194
22195	// NullFields is a list of field names (e.g. "Code") to include in API
22196	// requests with the JSON null value. By default, fields with empty
22197	// values are omitted from API requests. However, any field with an
22198	// empty value appearing in NullFields will be sent to the server as
22199	// null. It is an error if a field in this list has a non-empty value.
22200	// This may be used to include null fields in Patch requests.
22201	NullFields []string `json:"-"`
22202}
22203
22204func (s *InterconnectLocationListWarning) MarshalJSON() ([]byte, error) {
22205	type NoMethod InterconnectLocationListWarning
22206	raw := NoMethod(*s)
22207	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22208}
22209
22210type InterconnectLocationListWarningData struct {
22211	// Key: [Output Only] A key that provides more detail on the warning
22212	// being returned. For example, for warnings where there are no results
22213	// in a list request for a particular zone, this key might be scope and
22214	// the key value might be the zone name. Other examples might be a key
22215	// indicating a deprecated resource and a suggested replacement, or a
22216	// warning about invalid network settings (for example, if an instance
22217	// attempts to perform IP forwarding but is not enabled for IP
22218	// forwarding).
22219	Key string `json:"key,omitempty"`
22220
22221	// Value: [Output Only] A warning data value corresponding to the key.
22222	Value string `json:"value,omitempty"`
22223
22224	// ForceSendFields is a list of field names (e.g. "Key") to
22225	// unconditionally include in API requests. By default, fields with
22226	// empty or default values are omitted from API requests. However, any
22227	// non-pointer, non-interface field appearing in ForceSendFields will be
22228	// sent to the server regardless of whether the field is empty or not.
22229	// This may be used to include empty fields in Patch requests.
22230	ForceSendFields []string `json:"-"`
22231
22232	// NullFields is a list of field names (e.g. "Key") to include in API
22233	// requests with the JSON null value. By default, fields with empty
22234	// values are omitted from API requests. However, any field with an
22235	// empty value appearing in NullFields will be sent to the server as
22236	// null. It is an error if a field in this list has a non-empty value.
22237	// This may be used to include null fields in Patch requests.
22238	NullFields []string `json:"-"`
22239}
22240
22241func (s *InterconnectLocationListWarningData) MarshalJSON() ([]byte, error) {
22242	type NoMethod InterconnectLocationListWarningData
22243	raw := NoMethod(*s)
22244	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22245}
22246
22247// InterconnectLocationRegionInfo: Information about any potential
22248// InterconnectAttachments between an Interconnect at a specific
22249// InterconnectLocation, and a specific Cloud Region.
22250type InterconnectLocationRegionInfo struct {
22251	// ExpectedRttMs: Expected round-trip time in milliseconds, from this
22252	// InterconnectLocation to a VM in this region.
22253	ExpectedRttMs int64 `json:"expectedRttMs,omitempty,string"`
22254
22255	// LocationPresence: Identifies the network presence of this location.
22256	//
22257	// Possible values:
22258	//   "GLOBAL" - This region is not in any common network presence with
22259	// this InterconnectLocation.
22260	//   "LOCAL_REGION" - This region shares the same regional network
22261	// presence as this InterconnectLocation.
22262	//   "LP_GLOBAL" - [Deprecated] This region is not in any common network
22263	// presence with this InterconnectLocation.
22264	//   "LP_LOCAL_REGION" - [Deprecated] This region shares the same
22265	// regional network presence as this InterconnectLocation.
22266	LocationPresence string `json:"locationPresence,omitempty"`
22267
22268	// Region: URL for the region of this location.
22269	Region string `json:"region,omitempty"`
22270
22271	// ForceSendFields is a list of field names (e.g. "ExpectedRttMs") to
22272	// unconditionally include in API requests. By default, fields with
22273	// empty or default values are omitted from API requests. However, any
22274	// non-pointer, non-interface field appearing in ForceSendFields will be
22275	// sent to the server regardless of whether the field is empty or not.
22276	// This may be used to include empty fields in Patch requests.
22277	ForceSendFields []string `json:"-"`
22278
22279	// NullFields is a list of field names (e.g. "ExpectedRttMs") to include
22280	// in API requests with the JSON null value. By default, fields with
22281	// empty values are omitted from API requests. However, any field with
22282	// an empty value appearing in NullFields will be sent to the server as
22283	// null. It is an error if a field in this list has a non-empty value.
22284	// This may be used to include null fields in Patch requests.
22285	NullFields []string `json:"-"`
22286}
22287
22288func (s *InterconnectLocationRegionInfo) MarshalJSON() ([]byte, error) {
22289	type NoMethod InterconnectLocationRegionInfo
22290	raw := NoMethod(*s)
22291	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22292}
22293
22294// InterconnectOutageNotification: Description of a planned outage on
22295// this Interconnect.
22296type InterconnectOutageNotification struct {
22297	// AffectedCircuits: If issue_type is IT_PARTIAL_OUTAGE, a list of the
22298	// Google-side circuit IDs that will be affected.
22299	AffectedCircuits []string `json:"affectedCircuits,omitempty"`
22300
22301	// Description: A description about the purpose of the outage.
22302	Description string `json:"description,omitempty"`
22303
22304	// EndTime: Scheduled end time for the outage (milliseconds since Unix
22305	// epoch).
22306	EndTime int64 `json:"endTime,omitempty,string"`
22307
22308	// IssueType: Form this outage is expected to take, which can take one
22309	// of the following values: - OUTAGE: The Interconnect may be completely
22310	// out of service for some or all of the specified window. -
22311	// PARTIAL_OUTAGE: Some circuits comprising the Interconnect as a whole
22312	// should remain up, but with reduced bandwidth. Note that the versions
22313	// of this enum prefixed with "IT_" have been deprecated in favor of the
22314	// unprefixed values.
22315	//
22316	// Possible values:
22317	//   "IT_OUTAGE" - [Deprecated] The Interconnect may be completely out
22318	// of service for some or all of the specified window.
22319	//   "IT_PARTIAL_OUTAGE" - [Deprecated] Some circuits comprising the
22320	// Interconnect will be out of service during the expected window. The
22321	// interconnect as a whole should remain up, albeit with reduced
22322	// bandwidth.
22323	//   "OUTAGE" - The Interconnect may be completely out of service for
22324	// some or all of the specified window.
22325	//   "PARTIAL_OUTAGE" - Some circuits comprising the Interconnect will
22326	// be out of service during the expected window. The interconnect as a
22327	// whole should remain up, albeit with reduced bandwidth.
22328	IssueType string `json:"issueType,omitempty"`
22329
22330	// Name: Unique identifier for this outage notification.
22331	Name string `json:"name,omitempty"`
22332
22333	// Source: The party that generated this notification, which can take
22334	// the following value: - GOOGLE: this notification as generated by
22335	// Google. Note that the value of NSRC_GOOGLE has been deprecated in
22336	// favor of GOOGLE.
22337	//
22338	// Possible values:
22339	//   "GOOGLE" - This notification was generated by Google.
22340	//   "NSRC_GOOGLE" - [Deprecated] This notification was generated by
22341	// Google.
22342	Source string `json:"source,omitempty"`
22343
22344	// StartTime: Scheduled start time for the outage (milliseconds since
22345	// Unix epoch).
22346	StartTime int64 `json:"startTime,omitempty,string"`
22347
22348	// State: State of this notification, which can take one of the
22349	// following values: - ACTIVE: This outage notification is active. The
22350	// event could be in the past, present, or future. See start_time and
22351	// end_time for scheduling. - CANCELLED: The outage associated with this
22352	// notification was cancelled before the outage was due to start. -
22353	// COMPLETED: The outage associated with this notification is complete.
22354	// Note that the versions of this enum prefixed with "NS_" have been
22355	// deprecated in favor of the unprefixed values.
22356	//
22357	// Possible values:
22358	//   "ACTIVE" - This outage notification is active. The event could be
22359	// in the future, present, or past. See start_time and end_time for
22360	// scheduling.
22361	//   "CANCELLED" - The outage associated with this notification was
22362	// cancelled before the outage was due to start.
22363	//   "COMPLETED" - The outage associated with this notification is
22364	// complete.
22365	//   "NS_ACTIVE" - [Deprecated] This outage notification is active. The
22366	// event could be in the future, present, or past. See start_time and
22367	// end_time for scheduling.
22368	//   "NS_CANCELED" - [Deprecated] The outage associated with this
22369	// notification was canceled before the outage was due to start.
22370	State string `json:"state,omitempty"`
22371
22372	// ForceSendFields is a list of field names (e.g. "AffectedCircuits") to
22373	// unconditionally include in API requests. By default, fields with
22374	// empty or default values are omitted from API requests. However, any
22375	// non-pointer, non-interface field appearing in ForceSendFields will be
22376	// sent to the server regardless of whether the field is empty or not.
22377	// This may be used to include empty fields in Patch requests.
22378	ForceSendFields []string `json:"-"`
22379
22380	// NullFields is a list of field names (e.g. "AffectedCircuits") to
22381	// include in API requests with the JSON null value. By default, fields
22382	// with empty values are omitted from API requests. However, any field
22383	// with an empty value appearing in NullFields will be sent to the
22384	// server as null. It is an error if a field in this list has a
22385	// non-empty value. This may be used to include null fields in Patch
22386	// requests.
22387	NullFields []string `json:"-"`
22388}
22389
22390func (s *InterconnectOutageNotification) MarshalJSON() ([]byte, error) {
22391	type NoMethod InterconnectOutageNotification
22392	raw := NoMethod(*s)
22393	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22394}
22395
22396// InterconnectsGetDiagnosticsResponse: Response for the
22397// InterconnectsGetDiagnosticsRequest.
22398type InterconnectsGetDiagnosticsResponse struct {
22399	Result *InterconnectDiagnostics `json:"result,omitempty"`
22400
22401	// ServerResponse contains the HTTP response code and headers from the
22402	// server.
22403	googleapi.ServerResponse `json:"-"`
22404
22405	// ForceSendFields is a list of field names (e.g. "Result") to
22406	// unconditionally include in API requests. By default, fields with
22407	// empty or default values are omitted from API requests. However, any
22408	// non-pointer, non-interface field appearing in ForceSendFields will be
22409	// sent to the server regardless of whether the field is empty or not.
22410	// This may be used to include empty fields in Patch requests.
22411	ForceSendFields []string `json:"-"`
22412
22413	// NullFields is a list of field names (e.g. "Result") to include in API
22414	// requests with the JSON null value. By default, fields with empty
22415	// values are omitted from API requests. However, any field with an
22416	// empty value appearing in NullFields will be sent to the server as
22417	// null. It is an error if a field in this list has a non-empty value.
22418	// This may be used to include null fields in Patch requests.
22419	NullFields []string `json:"-"`
22420}
22421
22422func (s *InterconnectsGetDiagnosticsResponse) MarshalJSON() ([]byte, error) {
22423	type NoMethod InterconnectsGetDiagnosticsResponse
22424	raw := NoMethod(*s)
22425	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22426}
22427
22428// License: Represents a License resource. A License represents billing
22429// and aggregate usage data for public and marketplace images. *Caution*
22430// This resource is intended for use only by third-party partners who
22431// are creating Cloud Marketplace images.
22432type License struct {
22433	// ChargesUseFee: [Output Only] Deprecated. This field no longer
22434	// reflects whether a license charges a usage fee.
22435	ChargesUseFee bool `json:"chargesUseFee,omitempty"`
22436
22437	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
22438	// format.
22439	CreationTimestamp string `json:"creationTimestamp,omitempty"`
22440
22441	// Description: An optional textual description of the resource;
22442	// provided by the client when the resource is created.
22443	Description string `json:"description,omitempty"`
22444
22445	// Id: [Output Only] The unique identifier for the resource. This
22446	// identifier is defined by the server.
22447	Id uint64 `json:"id,omitempty,string"`
22448
22449	// Kind: [Output Only] Type of resource. Always compute#license for
22450	// licenses.
22451	Kind string `json:"kind,omitempty"`
22452
22453	// LicenseCode: [Output Only] The unique code used to attach this
22454	// license to images, snapshots, and disks.
22455	LicenseCode uint64 `json:"licenseCode,omitempty,string"`
22456
22457	// Name: Name of the resource. The name must be 1-63 characters long and
22458	// comply with RFC1035.
22459	Name string `json:"name,omitempty"`
22460
22461	ResourceRequirements *LicenseResourceRequirements `json:"resourceRequirements,omitempty"`
22462
22463	// SelfLink: [Output Only] Server-defined URL for the resource.
22464	SelfLink string `json:"selfLink,omitempty"`
22465
22466	// Transferable: If false, licenses will not be copied from the source
22467	// resource when creating an image from a disk, disk from snapshot, or
22468	// snapshot from disk.
22469	Transferable bool `json:"transferable,omitempty"`
22470
22471	// ServerResponse contains the HTTP response code and headers from the
22472	// server.
22473	googleapi.ServerResponse `json:"-"`
22474
22475	// ForceSendFields is a list of field names (e.g. "ChargesUseFee") to
22476	// unconditionally include in API requests. By default, fields with
22477	// empty or default values are omitted from API requests. However, any
22478	// non-pointer, non-interface field appearing in ForceSendFields will be
22479	// sent to the server regardless of whether the field is empty or not.
22480	// This may be used to include empty fields in Patch requests.
22481	ForceSendFields []string `json:"-"`
22482
22483	// NullFields is a list of field names (e.g. "ChargesUseFee") to include
22484	// in API requests with the JSON null value. By default, fields with
22485	// empty values are omitted from API requests. However, any field with
22486	// an empty value appearing in NullFields will be sent to the server as
22487	// null. It is an error if a field in this list has a non-empty value.
22488	// This may be used to include null fields in Patch requests.
22489	NullFields []string `json:"-"`
22490}
22491
22492func (s *License) MarshalJSON() ([]byte, error) {
22493	type NoMethod License
22494	raw := NoMethod(*s)
22495	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22496}
22497
22498// LicenseCode: Represents a License Code resource. A License Code is a
22499// unique identifier used to represent a license resource. *Caution*
22500// This resource is intended for use only by third-party partners who
22501// are creating Cloud Marketplace images.
22502type LicenseCode struct {
22503	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
22504	// format.
22505	CreationTimestamp string `json:"creationTimestamp,omitempty"`
22506
22507	// Description: [Output Only] Description of this License Code.
22508	Description string `json:"description,omitempty"`
22509
22510	// Id: [Output Only] The unique identifier for the resource. This
22511	// identifier is defined by the server.
22512	Id uint64 `json:"id,omitempty,string"`
22513
22514	// Kind: [Output Only] Type of resource. Always compute#licenseCode for
22515	// licenses.
22516	Kind string `json:"kind,omitempty"`
22517
22518	// LicenseAlias: [Output Only] URL and description aliases of Licenses
22519	// with the same License Code.
22520	LicenseAlias []*LicenseCodeLicenseAlias `json:"licenseAlias,omitempty"`
22521
22522	// Name: [Output Only] Name of the resource. The name is 1-20 characters
22523	// long and must be a valid 64 bit integer.
22524	Name string `json:"name,omitempty"`
22525
22526	// SelfLink: [Output Only] Server-defined URL for the resource.
22527	SelfLink string `json:"selfLink,omitempty"`
22528
22529	// State: [Output Only] Current state of this License Code.
22530	//
22531	// Possible values:
22532	//   "DISABLED" - Machines are not allowed to attach boot disks with
22533	// this License Code. Requests to create new resources with this license
22534	// will be rejected.
22535	//   "ENABLED" - Use is allowed for anyone with USE_READ_ONLY access to
22536	// this License Code.
22537	//   "RESTRICTED" - Use of this license is limited to a project
22538	// whitelist.
22539	//   "STATE_UNSPECIFIED"
22540	//   "TERMINATED" - Reserved state.
22541	State string `json:"state,omitempty"`
22542
22543	// Transferable: [Output Only] If true, the license will remain attached
22544	// when creating images or snapshots from disks. Otherwise, the license
22545	// is not transferred.
22546	Transferable bool `json:"transferable,omitempty"`
22547
22548	// ServerResponse contains the HTTP response code and headers from the
22549	// server.
22550	googleapi.ServerResponse `json:"-"`
22551
22552	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
22553	// to unconditionally include in API requests. By default, fields with
22554	// empty or default values are omitted from API requests. However, any
22555	// non-pointer, non-interface field appearing in ForceSendFields will be
22556	// sent to the server regardless of whether the field is empty or not.
22557	// This may be used to include empty fields in Patch requests.
22558	ForceSendFields []string `json:"-"`
22559
22560	// NullFields is a list of field names (e.g. "CreationTimestamp") to
22561	// include in API requests with the JSON null value. By default, fields
22562	// with empty values are omitted from API requests. However, any field
22563	// with an empty value appearing in NullFields will be sent to the
22564	// server as null. It is an error if a field in this list has a
22565	// non-empty value. This may be used to include null fields in Patch
22566	// requests.
22567	NullFields []string `json:"-"`
22568}
22569
22570func (s *LicenseCode) MarshalJSON() ([]byte, error) {
22571	type NoMethod LicenseCode
22572	raw := NoMethod(*s)
22573	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22574}
22575
22576type LicenseCodeLicenseAlias struct {
22577	// Description: [Output Only] Description of this License Code.
22578	Description string `json:"description,omitempty"`
22579
22580	// SelfLink: [Output Only] URL of license corresponding to this License
22581	// Code.
22582	SelfLink string `json:"selfLink,omitempty"`
22583
22584	// ForceSendFields is a list of field names (e.g. "Description") to
22585	// unconditionally include in API requests. By default, fields with
22586	// empty or default values are omitted from API requests. However, any
22587	// non-pointer, non-interface field appearing in ForceSendFields will be
22588	// sent to the server regardless of whether the field is empty or not.
22589	// This may be used to include empty fields in Patch requests.
22590	ForceSendFields []string `json:"-"`
22591
22592	// NullFields is a list of field names (e.g. "Description") to include
22593	// in API requests with the JSON null value. By default, fields with
22594	// empty values are omitted from API requests. However, any field with
22595	// an empty value appearing in NullFields will be sent to the server as
22596	// null. It is an error if a field in this list has a non-empty value.
22597	// This may be used to include null fields in Patch requests.
22598	NullFields []string `json:"-"`
22599}
22600
22601func (s *LicenseCodeLicenseAlias) MarshalJSON() ([]byte, error) {
22602	type NoMethod LicenseCodeLicenseAlias
22603	raw := NoMethod(*s)
22604	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22605}
22606
22607// LicenseResourceCommitment: Commitment for a particular license
22608// resource.
22609type LicenseResourceCommitment struct {
22610	// Amount: The number of licenses purchased.
22611	Amount int64 `json:"amount,omitempty,string"`
22612
22613	// CoresPerLicense: Specifies the core range of the instance for which
22614	// this license applies.
22615	CoresPerLicense string `json:"coresPerLicense,omitempty"`
22616
22617	// License: Any applicable license URI.
22618	License string `json:"license,omitempty"`
22619
22620	// ForceSendFields is a list of field names (e.g. "Amount") to
22621	// unconditionally include in API requests. By default, fields with
22622	// empty or default values are omitted from API requests. However, any
22623	// non-pointer, non-interface field appearing in ForceSendFields will be
22624	// sent to the server regardless of whether the field is empty or not.
22625	// This may be used to include empty fields in Patch requests.
22626	ForceSendFields []string `json:"-"`
22627
22628	// NullFields is a list of field names (e.g. "Amount") to include in API
22629	// requests with the JSON null value. By default, fields with empty
22630	// values are omitted from API requests. However, any field with an
22631	// empty value appearing in NullFields will be sent to the server as
22632	// null. It is an error if a field in this list has a non-empty value.
22633	// This may be used to include null fields in Patch requests.
22634	NullFields []string `json:"-"`
22635}
22636
22637func (s *LicenseResourceCommitment) MarshalJSON() ([]byte, error) {
22638	type NoMethod LicenseResourceCommitment
22639	raw := NoMethod(*s)
22640	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22641}
22642
22643type LicenseResourceRequirements struct {
22644	// MinGuestCpuCount: Minimum number of guest cpus required to use the
22645	// Instance. Enforced at Instance creation and Instance start.
22646	MinGuestCpuCount int64 `json:"minGuestCpuCount,omitempty"`
22647
22648	// MinMemoryMb: Minimum memory required to use the Instance. Enforced at
22649	// Instance creation and Instance start.
22650	MinMemoryMb int64 `json:"minMemoryMb,omitempty"`
22651
22652	// ForceSendFields is a list of field names (e.g. "MinGuestCpuCount") to
22653	// unconditionally include in API requests. By default, fields with
22654	// empty or default values are omitted from API requests. However, any
22655	// non-pointer, non-interface field appearing in ForceSendFields will be
22656	// sent to the server regardless of whether the field is empty or not.
22657	// This may be used to include empty fields in Patch requests.
22658	ForceSendFields []string `json:"-"`
22659
22660	// NullFields is a list of field names (e.g. "MinGuestCpuCount") to
22661	// include in API requests with the JSON null value. By default, fields
22662	// with empty values are omitted from API requests. However, any field
22663	// with an empty value appearing in NullFields will be sent to the
22664	// server as null. It is an error if a field in this list has a
22665	// non-empty value. This may be used to include null fields in Patch
22666	// requests.
22667	NullFields []string `json:"-"`
22668}
22669
22670func (s *LicenseResourceRequirements) MarshalJSON() ([]byte, error) {
22671	type NoMethod LicenseResourceRequirements
22672	raw := NoMethod(*s)
22673	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22674}
22675
22676type LicensesListResponse struct {
22677	// Id: [Output Only] Unique identifier for the resource; defined by the
22678	// server.
22679	Id string `json:"id,omitempty"`
22680
22681	// Items: A list of License resources.
22682	Items []*License `json:"items,omitempty"`
22683
22684	// NextPageToken: [Output Only] This token allows you to get the next
22685	// page of results for list requests. If the number of results is larger
22686	// than maxResults, use the nextPageToken as a value for the query
22687	// parameter pageToken in the next list request. Subsequent list
22688	// requests will have their own nextPageToken to continue paging through
22689	// the results.
22690	NextPageToken string `json:"nextPageToken,omitempty"`
22691
22692	// SelfLink: [Output Only] Server-defined URL for this resource.
22693	SelfLink string `json:"selfLink,omitempty"`
22694
22695	// Warning: [Output Only] Informational warning message.
22696	Warning *LicensesListResponseWarning `json:"warning,omitempty"`
22697
22698	// ServerResponse contains the HTTP response code and headers from the
22699	// server.
22700	googleapi.ServerResponse `json:"-"`
22701
22702	// ForceSendFields is a list of field names (e.g. "Id") to
22703	// unconditionally include in API requests. By default, fields with
22704	// empty or default values are omitted from API requests. However, any
22705	// non-pointer, non-interface field appearing in ForceSendFields will be
22706	// sent to the server regardless of whether the field is empty or not.
22707	// This may be used to include empty fields in Patch requests.
22708	ForceSendFields []string `json:"-"`
22709
22710	// NullFields is a list of field names (e.g. "Id") to include in API
22711	// requests with the JSON null value. By default, fields with empty
22712	// values are omitted from API requests. However, any field with an
22713	// empty value appearing in NullFields will be sent to the server as
22714	// null. It is an error if a field in this list has a non-empty value.
22715	// This may be used to include null fields in Patch requests.
22716	NullFields []string `json:"-"`
22717}
22718
22719func (s *LicensesListResponse) MarshalJSON() ([]byte, error) {
22720	type NoMethod LicensesListResponse
22721	raw := NoMethod(*s)
22722	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22723}
22724
22725// LicensesListResponseWarning: [Output Only] Informational warning
22726// message.
22727type LicensesListResponseWarning struct {
22728	// Code: [Output Only] A warning code, if applicable. For example,
22729	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22730	// the response.
22731	//
22732	// Possible values:
22733	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
22734	// changes made by a failed operation.
22735	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
22736	// created.
22737	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
22738	// resources has a type marked as deprecated
22739	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
22740	// that is larger than image size.
22741	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
22742	// resources has a type marked as experimental
22743	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
22744	// call
22745	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
22746	// overridden. Deprecated unused field.
22747	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
22748	// injected kernel, which is deprecated.
22749	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
22750	// exceedingly large number of resources
22751	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
22752	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
22753	// not assigned to an instance on the network.
22754	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
22755	// ip forward.
22756	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
22757	// refers to an instance that does not exist.
22758	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
22759	// URL refers to an instance that is not on the same network as the
22760	// route.
22761	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
22762	// have a status of RUNNING.
22763	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
22764	// continue the process despite the mentioned error.
22765	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
22766	// page.
22767	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
22768	// missing due to errors
22769	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
22770	// that requires a TOS they have not accepted.
22771	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
22772	// resource is in use.
22773	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
22774	// auto-delete could not be deleted because they were in use.
22775	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
22776	// ignored.
22777	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
22778	// instance group manager is valid as such, but its application does not
22779	// make a lot of sense, because it allows only single instance in
22780	// instance group.
22781	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
22782	// are present
22783	//   "UNREACHABLE" - A given scope cannot be reached.
22784	Code string `json:"code,omitempty"`
22785
22786	// Data: [Output Only] Metadata about this warning in key: value format.
22787	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
22788	// }
22789	Data []*LicensesListResponseWarningData `json:"data,omitempty"`
22790
22791	// Message: [Output Only] A human-readable description of the warning
22792	// code.
22793	Message string `json:"message,omitempty"`
22794
22795	// ForceSendFields is a list of field names (e.g. "Code") to
22796	// unconditionally include in API requests. By default, fields with
22797	// empty or default values are omitted from API requests. However, any
22798	// non-pointer, non-interface field appearing in ForceSendFields will be
22799	// sent to the server regardless of whether the field is empty or not.
22800	// This may be used to include empty fields in Patch requests.
22801	ForceSendFields []string `json:"-"`
22802
22803	// NullFields is a list of field names (e.g. "Code") to include in API
22804	// requests with the JSON null value. By default, fields with empty
22805	// values are omitted from API requests. However, any field with an
22806	// empty value appearing in NullFields will be sent to the server as
22807	// null. It is an error if a field in this list has a non-empty value.
22808	// This may be used to include null fields in Patch requests.
22809	NullFields []string `json:"-"`
22810}
22811
22812func (s *LicensesListResponseWarning) MarshalJSON() ([]byte, error) {
22813	type NoMethod LicensesListResponseWarning
22814	raw := NoMethod(*s)
22815	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22816}
22817
22818type LicensesListResponseWarningData struct {
22819	// Key: [Output Only] A key that provides more detail on the warning
22820	// being returned. For example, for warnings where there are no results
22821	// in a list request for a particular zone, this key might be scope and
22822	// the key value might be the zone name. Other examples might be a key
22823	// indicating a deprecated resource and a suggested replacement, or a
22824	// warning about invalid network settings (for example, if an instance
22825	// attempts to perform IP forwarding but is not enabled for IP
22826	// forwarding).
22827	Key string `json:"key,omitempty"`
22828
22829	// Value: [Output Only] A warning data value corresponding to the key.
22830	Value string `json:"value,omitempty"`
22831
22832	// ForceSendFields is a list of field names (e.g. "Key") to
22833	// unconditionally include in API requests. By default, fields with
22834	// empty or default values are omitted from API requests. However, any
22835	// non-pointer, non-interface field appearing in ForceSendFields will be
22836	// sent to the server regardless of whether the field is empty or not.
22837	// This may be used to include empty fields in Patch requests.
22838	ForceSendFields []string `json:"-"`
22839
22840	// NullFields is a list of field names (e.g. "Key") to include in API
22841	// requests with the JSON null value. By default, fields with empty
22842	// values are omitted from API requests. However, any field with an
22843	// empty value appearing in NullFields will be sent to the server as
22844	// null. It is an error if a field in this list has a non-empty value.
22845	// This may be used to include null fields in Patch requests.
22846	NullFields []string `json:"-"`
22847}
22848
22849func (s *LicensesListResponseWarningData) MarshalJSON() ([]byte, error) {
22850	type NoMethod LicensesListResponseWarningData
22851	raw := NoMethod(*s)
22852	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22853}
22854
22855type LocalDisk struct {
22856	// DiskCount: Specifies the number of such disks.
22857	DiskCount int64 `json:"diskCount,omitempty"`
22858
22859	// DiskSizeGb: Specifies the size of the disk in base-2 GB.
22860	DiskSizeGb int64 `json:"diskSizeGb,omitempty"`
22861
22862	// DiskType: Specifies the desired disk type on the node. This disk type
22863	// must be a local storage type (e.g.: local-ssd). Note that for
22864	// nodeTemplates, this should be the name of the disk type and not its
22865	// URL.
22866	DiskType string `json:"diskType,omitempty"`
22867
22868	// ForceSendFields is a list of field names (e.g. "DiskCount") to
22869	// unconditionally include in API requests. By default, fields with
22870	// empty or default values are omitted from API requests. However, any
22871	// non-pointer, non-interface field appearing in ForceSendFields will be
22872	// sent to the server regardless of whether the field is empty or not.
22873	// This may be used to include empty fields in Patch requests.
22874	ForceSendFields []string `json:"-"`
22875
22876	// NullFields is a list of field names (e.g. "DiskCount") to include in
22877	// API requests with the JSON null value. By default, fields with empty
22878	// values are omitted from API requests. However, any field with an
22879	// empty value appearing in NullFields will be sent to the server as
22880	// null. It is an error if a field in this list has a non-empty value.
22881	// This may be used to include null fields in Patch requests.
22882	NullFields []string `json:"-"`
22883}
22884
22885func (s *LocalDisk) MarshalJSON() ([]byte, error) {
22886	type NoMethod LocalDisk
22887	raw := NoMethod(*s)
22888	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22889}
22890
22891// LocationPolicy: Configuration for location policy among multiple
22892// possible locations (e.g. preferences for zone selection among zones
22893// in a single region).
22894type LocationPolicy struct {
22895	// Locations: Location configurations mapped by location name. Currently
22896	// only zone names are supported and must be represented as valid
22897	// internal URLs, such as zones/us-central1-a.
22898	Locations map[string]LocationPolicyLocation `json:"locations,omitempty"`
22899
22900	// ForceSendFields is a list of field names (e.g. "Locations") to
22901	// unconditionally include in API requests. By default, fields with
22902	// empty or default values are omitted from API requests. However, any
22903	// non-pointer, non-interface field appearing in ForceSendFields will be
22904	// sent to the server regardless of whether the field is empty or not.
22905	// This may be used to include empty fields in Patch requests.
22906	ForceSendFields []string `json:"-"`
22907
22908	// NullFields is a list of field names (e.g. "Locations") to include in
22909	// API requests with the JSON null value. By default, fields with empty
22910	// values are omitted from API requests. However, any field with an
22911	// empty value appearing in NullFields will be sent to the server as
22912	// null. It is an error if a field in this list has a non-empty value.
22913	// This may be used to include null fields in Patch requests.
22914	NullFields []string `json:"-"`
22915}
22916
22917func (s *LocationPolicy) MarshalJSON() ([]byte, error) {
22918	type NoMethod LocationPolicy
22919	raw := NoMethod(*s)
22920	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22921}
22922
22923type LocationPolicyLocation struct {
22924	// Preference: Preference for a given location: ALLOW or DENY.
22925	//
22926	// Possible values:
22927	//   "ALLOW" - Location is allowed for use.
22928	//   "DENY" - Location is prohibited.
22929	//   "PREFERENCE_UNSPECIFIED" - Default value, unused.
22930	Preference string `json:"preference,omitempty"`
22931
22932	// ForceSendFields is a list of field names (e.g. "Preference") to
22933	// unconditionally include in API requests. By default, fields with
22934	// empty or default values are omitted from API requests. However, any
22935	// non-pointer, non-interface field appearing in ForceSendFields will be
22936	// sent to the server regardless of whether the field is empty or not.
22937	// This may be used to include empty fields in Patch requests.
22938	ForceSendFields []string `json:"-"`
22939
22940	// NullFields is a list of field names (e.g. "Preference") to include in
22941	// API requests with the JSON null value. By default, fields with empty
22942	// values are omitted from API requests. However, any field with an
22943	// empty value appearing in NullFields will be sent to the server as
22944	// null. It is an error if a field in this list has a non-empty value.
22945	// This may be used to include null fields in Patch requests.
22946	NullFields []string `json:"-"`
22947}
22948
22949func (s *LocationPolicyLocation) MarshalJSON() ([]byte, error) {
22950	type NoMethod LocationPolicyLocation
22951	raw := NoMethod(*s)
22952	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22953}
22954
22955// LogConfig: This is deprecated and has no effect. Do not use.
22956type LogConfig struct {
22957	// CloudAudit: This is deprecated and has no effect. Do not use.
22958	CloudAudit *LogConfigCloudAuditOptions `json:"cloudAudit,omitempty"`
22959
22960	// Counter: This is deprecated and has no effect. Do not use.
22961	Counter *LogConfigCounterOptions `json:"counter,omitempty"`
22962
22963	// DataAccess: This is deprecated and has no effect. Do not use.
22964	DataAccess *LogConfigDataAccessOptions `json:"dataAccess,omitempty"`
22965
22966	// ForceSendFields is a list of field names (e.g. "CloudAudit") to
22967	// unconditionally include in API requests. By default, fields with
22968	// empty or default values are omitted from API requests. However, any
22969	// non-pointer, non-interface field appearing in ForceSendFields will be
22970	// sent to the server regardless of whether the field is empty or not.
22971	// This may be used to include empty fields in Patch requests.
22972	ForceSendFields []string `json:"-"`
22973
22974	// NullFields is a list of field names (e.g. "CloudAudit") to include in
22975	// API requests with the JSON null value. By default, fields with empty
22976	// values are omitted from API requests. However, any field with an
22977	// empty value appearing in NullFields will be sent to the server as
22978	// null. It is an error if a field in this list has a non-empty value.
22979	// This may be used to include null fields in Patch requests.
22980	NullFields []string `json:"-"`
22981}
22982
22983func (s *LogConfig) MarshalJSON() ([]byte, error) {
22984	type NoMethod LogConfig
22985	raw := NoMethod(*s)
22986	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22987}
22988
22989// LogConfigCloudAuditOptions: This is deprecated and has no effect. Do
22990// not use.
22991type LogConfigCloudAuditOptions struct {
22992	// AuthorizationLoggingOptions: This is deprecated and has no effect. Do
22993	// not use.
22994	AuthorizationLoggingOptions *AuthorizationLoggingOptions `json:"authorizationLoggingOptions,omitempty"`
22995
22996	// LogName: This is deprecated and has no effect. Do not use.
22997	//
22998	// Possible values:
22999	//   "ADMIN_ACTIVITY" - This is deprecated and has no effect. Do not
23000	// use.
23001	//   "DATA_ACCESS" - This is deprecated and has no effect. Do not use.
23002	//   "UNSPECIFIED_LOG_NAME" - This is deprecated and has no effect. Do
23003	// not use.
23004	LogName string `json:"logName,omitempty"`
23005
23006	// ForceSendFields is a list of field names (e.g.
23007	// "AuthorizationLoggingOptions") to unconditionally include in API
23008	// requests. By default, fields with empty or default values are omitted
23009	// from API requests. However, any non-pointer, non-interface field
23010	// appearing in ForceSendFields will be sent to the server regardless of
23011	// whether the field is empty or not. This may be used to include empty
23012	// fields in Patch requests.
23013	ForceSendFields []string `json:"-"`
23014
23015	// NullFields is a list of field names (e.g.
23016	// "AuthorizationLoggingOptions") to include in API requests with the
23017	// JSON null value. By default, fields with empty values are omitted
23018	// from API requests. However, any field with an empty value appearing
23019	// in NullFields will be sent to the server as null. It is an error if a
23020	// field in this list has a non-empty value. This may be used to include
23021	// null fields in Patch requests.
23022	NullFields []string `json:"-"`
23023}
23024
23025func (s *LogConfigCloudAuditOptions) MarshalJSON() ([]byte, error) {
23026	type NoMethod LogConfigCloudAuditOptions
23027	raw := NoMethod(*s)
23028	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23029}
23030
23031// LogConfigCounterOptions: This is deprecated and has no effect. Do not
23032// use.
23033type LogConfigCounterOptions struct {
23034	// CustomFields: This is deprecated and has no effect. Do not use.
23035	CustomFields []*LogConfigCounterOptionsCustomField `json:"customFields,omitempty"`
23036
23037	// Field: This is deprecated and has no effect. Do not use.
23038	Field string `json:"field,omitempty"`
23039
23040	// Metric: This is deprecated and has no effect. Do not use.
23041	Metric string `json:"metric,omitempty"`
23042
23043	// ForceSendFields is a list of field names (e.g. "CustomFields") to
23044	// unconditionally include in API requests. By default, fields with
23045	// empty or default values are omitted from API requests. However, any
23046	// non-pointer, non-interface field appearing in ForceSendFields will be
23047	// sent to the server regardless of whether the field is empty or not.
23048	// This may be used to include empty fields in Patch requests.
23049	ForceSendFields []string `json:"-"`
23050
23051	// NullFields is a list of field names (e.g. "CustomFields") to include
23052	// in API requests with the JSON null value. By default, fields with
23053	// empty values are omitted from API requests. However, any field with
23054	// an empty value appearing in NullFields will be sent to the server as
23055	// null. It is an error if a field in this list has a non-empty value.
23056	// This may be used to include null fields in Patch requests.
23057	NullFields []string `json:"-"`
23058}
23059
23060func (s *LogConfigCounterOptions) MarshalJSON() ([]byte, error) {
23061	type NoMethod LogConfigCounterOptions
23062	raw := NoMethod(*s)
23063	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23064}
23065
23066// LogConfigCounterOptionsCustomField: This is deprecated and has no
23067// effect. Do not use.
23068type LogConfigCounterOptionsCustomField struct {
23069	// Name: This is deprecated and has no effect. Do not use.
23070	Name string `json:"name,omitempty"`
23071
23072	// Value: This is deprecated and has no effect. Do not use.
23073	Value string `json:"value,omitempty"`
23074
23075	// ForceSendFields is a list of field names (e.g. "Name") to
23076	// unconditionally include in API requests. By default, fields with
23077	// empty or default values are omitted from API requests. However, any
23078	// non-pointer, non-interface field appearing in ForceSendFields will be
23079	// sent to the server regardless of whether the field is empty or not.
23080	// This may be used to include empty fields in Patch requests.
23081	ForceSendFields []string `json:"-"`
23082
23083	// NullFields is a list of field names (e.g. "Name") to include in API
23084	// requests with the JSON null value. By default, fields with empty
23085	// values are omitted from API requests. However, any field with an
23086	// empty value appearing in NullFields will be sent to the server as
23087	// null. It is an error if a field in this list has a non-empty value.
23088	// This may be used to include null fields in Patch requests.
23089	NullFields []string `json:"-"`
23090}
23091
23092func (s *LogConfigCounterOptionsCustomField) MarshalJSON() ([]byte, error) {
23093	type NoMethod LogConfigCounterOptionsCustomField
23094	raw := NoMethod(*s)
23095	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23096}
23097
23098// LogConfigDataAccessOptions: This is deprecated and has no effect. Do
23099// not use.
23100type LogConfigDataAccessOptions struct {
23101	// LogMode: This is deprecated and has no effect. Do not use.
23102	//
23103	// Possible values:
23104	//   "LOG_FAIL_CLOSED" - This is deprecated and has no effect. Do not
23105	// use.
23106	//   "LOG_MODE_UNSPECIFIED" - This is deprecated and has no effect. Do
23107	// not use.
23108	LogMode string `json:"logMode,omitempty"`
23109
23110	// ForceSendFields is a list of field names (e.g. "LogMode") to
23111	// unconditionally include in API requests. By default, fields with
23112	// empty or default values are omitted from API requests. However, any
23113	// non-pointer, non-interface field appearing in ForceSendFields will be
23114	// sent to the server regardless of whether the field is empty or not.
23115	// This may be used to include empty fields in Patch requests.
23116	ForceSendFields []string `json:"-"`
23117
23118	// NullFields is a list of field names (e.g. "LogMode") to include in
23119	// API requests with the JSON null value. By default, fields with empty
23120	// values are omitted from API requests. However, any field with an
23121	// empty value appearing in NullFields will be sent to the server as
23122	// null. It is an error if a field in this list has a non-empty value.
23123	// This may be used to include null fields in Patch requests.
23124	NullFields []string `json:"-"`
23125}
23126
23127func (s *LogConfigDataAccessOptions) MarshalJSON() ([]byte, error) {
23128	type NoMethod LogConfigDataAccessOptions
23129	raw := NoMethod(*s)
23130	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23131}
23132
23133// MachineType: Represents a Machine Type resource. You can use specific
23134// machine types for your VM instances based on performance and pricing
23135// requirements. For more information, read Machine Types.
23136type MachineType struct {
23137	// Accelerators: [Output Only] A list of accelerator configurations
23138	// assigned to this machine type.
23139	Accelerators []*MachineTypeAccelerators `json:"accelerators,omitempty"`
23140
23141	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
23142	// format.
23143	CreationTimestamp string `json:"creationTimestamp,omitempty"`
23144
23145	// Deprecated -- [Output Only] The deprecation status associated with
23146	// this machine type. Only applicable if the machine type is
23147	// unavailable.
23148	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
23149
23150	// Description: [Output Only] An optional textual description of the
23151	// resource.
23152	Description string `json:"description,omitempty"`
23153
23154	// GuestCpus: [Output Only] The number of virtual CPUs that are
23155	// available to the instance.
23156	GuestCpus int64 `json:"guestCpus,omitempty"`
23157
23158	// Id: [Output Only] The unique identifier for the resource. This
23159	// identifier is defined by the server.
23160	Id uint64 `json:"id,omitempty,string"`
23161
23162	// ImageSpaceGb: [Deprecated] This property is deprecated and will never
23163	// be populated with any relevant values.
23164	ImageSpaceGb int64 `json:"imageSpaceGb,omitempty"`
23165
23166	// IsSharedCpu: [Output Only] Whether this machine type has a shared
23167	// CPU. See Shared-core machine types for more information.
23168	IsSharedCpu bool `json:"isSharedCpu,omitempty"`
23169
23170	// Kind: [Output Only] The type of the resource. Always
23171	// compute#machineType for machine types.
23172	Kind string `json:"kind,omitempty"`
23173
23174	// MaximumPersistentDisks: [Output Only] Maximum persistent disks
23175	// allowed.
23176	MaximumPersistentDisks int64 `json:"maximumPersistentDisks,omitempty"`
23177
23178	// MaximumPersistentDisksSizeGb: [Output Only] Maximum total persistent
23179	// disks size (GB) allowed.
23180	MaximumPersistentDisksSizeGb int64 `json:"maximumPersistentDisksSizeGb,omitempty,string"`
23181
23182	// MemoryMb: [Output Only] The amount of physical memory available to
23183	// the instance, defined in MB.
23184	MemoryMb int64 `json:"memoryMb,omitempty"`
23185
23186	// Name: [Output Only] Name of the resource.
23187	Name string `json:"name,omitempty"`
23188
23189	// ScratchDisks: [Output Only] A list of extended scratch disks assigned
23190	// to the instance.
23191	ScratchDisks []*MachineTypeScratchDisks `json:"scratchDisks,omitempty"`
23192
23193	// SelfLink: [Output Only] Server-defined URL for the resource.
23194	SelfLink string `json:"selfLink,omitempty"`
23195
23196	// Zone: [Output Only] The name of the zone where the machine type
23197	// resides, such as us-central1-a.
23198	Zone string `json:"zone,omitempty"`
23199
23200	// ServerResponse contains the HTTP response code and headers from the
23201	// server.
23202	googleapi.ServerResponse `json:"-"`
23203
23204	// ForceSendFields is a list of field names (e.g. "Accelerators") to
23205	// unconditionally include in API requests. By default, fields with
23206	// empty or default values are omitted from API requests. However, any
23207	// non-pointer, non-interface field appearing in ForceSendFields will be
23208	// sent to the server regardless of whether the field is empty or not.
23209	// This may be used to include empty fields in Patch requests.
23210	ForceSendFields []string `json:"-"`
23211
23212	// NullFields is a list of field names (e.g. "Accelerators") to include
23213	// in API requests with the JSON null value. By default, fields with
23214	// empty values are omitted from API requests. However, any field with
23215	// an empty value appearing in NullFields will be sent to the server as
23216	// null. It is an error if a field in this list has a non-empty value.
23217	// This may be used to include null fields in Patch requests.
23218	NullFields []string `json:"-"`
23219}
23220
23221func (s *MachineType) MarshalJSON() ([]byte, error) {
23222	type NoMethod MachineType
23223	raw := NoMethod(*s)
23224	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23225}
23226
23227type MachineTypeAccelerators struct {
23228	// GuestAcceleratorCount: Number of accelerator cards exposed to the
23229	// guest.
23230	GuestAcceleratorCount int64 `json:"guestAcceleratorCount,omitempty"`
23231
23232	// GuestAcceleratorType: The accelerator type resource name, not a full
23233	// URL, e.g. 'nvidia-tesla-k80'.
23234	GuestAcceleratorType string `json:"guestAcceleratorType,omitempty"`
23235
23236	// ForceSendFields is a list of field names (e.g.
23237	// "GuestAcceleratorCount") to unconditionally include in API requests.
23238	// By default, fields with empty or default values are omitted from API
23239	// requests. However, any non-pointer, non-interface field appearing in
23240	// ForceSendFields will be sent to the server regardless of whether the
23241	// field is empty or not. This may be used to include empty fields in
23242	// Patch requests.
23243	ForceSendFields []string `json:"-"`
23244
23245	// NullFields is a list of field names (e.g. "GuestAcceleratorCount") to
23246	// include in API requests with the JSON null value. By default, fields
23247	// with empty values are omitted from API requests. However, any field
23248	// with an empty value appearing in NullFields will be sent to the
23249	// server as null. It is an error if a field in this list has a
23250	// non-empty value. This may be used to include null fields in Patch
23251	// requests.
23252	NullFields []string `json:"-"`
23253}
23254
23255func (s *MachineTypeAccelerators) MarshalJSON() ([]byte, error) {
23256	type NoMethod MachineTypeAccelerators
23257	raw := NoMethod(*s)
23258	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23259}
23260
23261type MachineTypeScratchDisks struct {
23262	// DiskGb: Size of the scratch disk, defined in GB.
23263	DiskGb int64 `json:"diskGb,omitempty"`
23264
23265	// ForceSendFields is a list of field names (e.g. "DiskGb") to
23266	// unconditionally include in API requests. By default, fields with
23267	// empty or default values are omitted from API requests. However, any
23268	// non-pointer, non-interface field appearing in ForceSendFields will be
23269	// sent to the server regardless of whether the field is empty or not.
23270	// This may be used to include empty fields in Patch requests.
23271	ForceSendFields []string `json:"-"`
23272
23273	// NullFields is a list of field names (e.g. "DiskGb") to include in API
23274	// requests with the JSON null value. By default, fields with empty
23275	// values are omitted from API requests. However, any field with an
23276	// empty value appearing in NullFields will be sent to the server as
23277	// null. It is an error if a field in this list has a non-empty value.
23278	// This may be used to include null fields in Patch requests.
23279	NullFields []string `json:"-"`
23280}
23281
23282func (s *MachineTypeScratchDisks) MarshalJSON() ([]byte, error) {
23283	type NoMethod MachineTypeScratchDisks
23284	raw := NoMethod(*s)
23285	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23286}
23287
23288type MachineTypeAggregatedList struct {
23289	// Id: [Output Only] Unique identifier for the resource; defined by the
23290	// server.
23291	Id string `json:"id,omitempty"`
23292
23293	// Items: A list of MachineTypesScopedList resources.
23294	Items map[string]MachineTypesScopedList `json:"items,omitempty"`
23295
23296	// Kind: [Output Only] Type of resource. Always
23297	// compute#machineTypeAggregatedList for aggregated lists of machine
23298	// types.
23299	Kind string `json:"kind,omitempty"`
23300
23301	// NextPageToken: [Output Only] This token allows you to get the next
23302	// page of results for list requests. If the number of results is larger
23303	// than maxResults, use the nextPageToken as a value for the query
23304	// parameter pageToken in the next list request. Subsequent list
23305	// requests will have their own nextPageToken to continue paging through
23306	// the results.
23307	NextPageToken string `json:"nextPageToken,omitempty"`
23308
23309	// SelfLink: [Output Only] Server-defined URL for this resource.
23310	SelfLink string `json:"selfLink,omitempty"`
23311
23312	// Unreachables: [Output Only] Unreachable resources.
23313	Unreachables []string `json:"unreachables,omitempty"`
23314
23315	// Warning: [Output Only] Informational warning message.
23316	Warning *MachineTypeAggregatedListWarning `json:"warning,omitempty"`
23317
23318	// ServerResponse contains the HTTP response code and headers from the
23319	// server.
23320	googleapi.ServerResponse `json:"-"`
23321
23322	// ForceSendFields is a list of field names (e.g. "Id") to
23323	// unconditionally include in API requests. By default, fields with
23324	// empty or default values are omitted from API requests. However, any
23325	// non-pointer, non-interface field appearing in ForceSendFields will be
23326	// sent to the server regardless of whether the field is empty or not.
23327	// This may be used to include empty fields in Patch requests.
23328	ForceSendFields []string `json:"-"`
23329
23330	// NullFields is a list of field names (e.g. "Id") to include in API
23331	// requests with the JSON null value. By default, fields with empty
23332	// values are omitted from API requests. However, any field with an
23333	// empty value appearing in NullFields will be sent to the server as
23334	// null. It is an error if a field in this list has a non-empty value.
23335	// This may be used to include null fields in Patch requests.
23336	NullFields []string `json:"-"`
23337}
23338
23339func (s *MachineTypeAggregatedList) MarshalJSON() ([]byte, error) {
23340	type NoMethod MachineTypeAggregatedList
23341	raw := NoMethod(*s)
23342	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23343}
23344
23345// MachineTypeAggregatedListWarning: [Output Only] Informational warning
23346// message.
23347type MachineTypeAggregatedListWarning struct {
23348	// Code: [Output Only] A warning code, if applicable. For example,
23349	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23350	// the response.
23351	//
23352	// Possible values:
23353	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
23354	// changes made by a failed operation.
23355	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
23356	// created.
23357	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
23358	// resources has a type marked as deprecated
23359	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
23360	// that is larger than image size.
23361	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
23362	// resources has a type marked as experimental
23363	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
23364	// call
23365	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
23366	// overridden. Deprecated unused field.
23367	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
23368	// injected kernel, which is deprecated.
23369	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
23370	// exceedingly large number of resources
23371	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
23372	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
23373	// not assigned to an instance on the network.
23374	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
23375	// ip forward.
23376	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
23377	// refers to an instance that does not exist.
23378	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
23379	// URL refers to an instance that is not on the same network as the
23380	// route.
23381	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
23382	// have a status of RUNNING.
23383	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
23384	// continue the process despite the mentioned error.
23385	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
23386	// page.
23387	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
23388	// missing due to errors
23389	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
23390	// that requires a TOS they have not accepted.
23391	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
23392	// resource is in use.
23393	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
23394	// auto-delete could not be deleted because they were in use.
23395	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
23396	// ignored.
23397	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
23398	// instance group manager is valid as such, but its application does not
23399	// make a lot of sense, because it allows only single instance in
23400	// instance group.
23401	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
23402	// are present
23403	//   "UNREACHABLE" - A given scope cannot be reached.
23404	Code string `json:"code,omitempty"`
23405
23406	// Data: [Output Only] Metadata about this warning in key: value format.
23407	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
23408	// }
23409	Data []*MachineTypeAggregatedListWarningData `json:"data,omitempty"`
23410
23411	// Message: [Output Only] A human-readable description of the warning
23412	// code.
23413	Message string `json:"message,omitempty"`
23414
23415	// ForceSendFields is a list of field names (e.g. "Code") to
23416	// unconditionally include in API requests. By default, fields with
23417	// empty or default values are omitted from API requests. However, any
23418	// non-pointer, non-interface field appearing in ForceSendFields will be
23419	// sent to the server regardless of whether the field is empty or not.
23420	// This may be used to include empty fields in Patch requests.
23421	ForceSendFields []string `json:"-"`
23422
23423	// NullFields is a list of field names (e.g. "Code") to include in API
23424	// requests with the JSON null value. By default, fields with empty
23425	// values are omitted from API requests. However, any field with an
23426	// empty value appearing in NullFields will be sent to the server as
23427	// null. It is an error if a field in this list has a non-empty value.
23428	// This may be used to include null fields in Patch requests.
23429	NullFields []string `json:"-"`
23430}
23431
23432func (s *MachineTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
23433	type NoMethod MachineTypeAggregatedListWarning
23434	raw := NoMethod(*s)
23435	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23436}
23437
23438type MachineTypeAggregatedListWarningData struct {
23439	// Key: [Output Only] A key that provides more detail on the warning
23440	// being returned. For example, for warnings where there are no results
23441	// in a list request for a particular zone, this key might be scope and
23442	// the key value might be the zone name. Other examples might be a key
23443	// indicating a deprecated resource and a suggested replacement, or a
23444	// warning about invalid network settings (for example, if an instance
23445	// attempts to perform IP forwarding but is not enabled for IP
23446	// forwarding).
23447	Key string `json:"key,omitempty"`
23448
23449	// Value: [Output Only] A warning data value corresponding to the key.
23450	Value string `json:"value,omitempty"`
23451
23452	// ForceSendFields is a list of field names (e.g. "Key") to
23453	// unconditionally include in API requests. By default, fields with
23454	// empty or default values are omitted from API requests. However, any
23455	// non-pointer, non-interface field appearing in ForceSendFields will be
23456	// sent to the server regardless of whether the field is empty or not.
23457	// This may be used to include empty fields in Patch requests.
23458	ForceSendFields []string `json:"-"`
23459
23460	// NullFields is a list of field names (e.g. "Key") to include in API
23461	// requests with the JSON null value. By default, fields with empty
23462	// values are omitted from API requests. However, any field with an
23463	// empty value appearing in NullFields will be sent to the server as
23464	// null. It is an error if a field in this list has a non-empty value.
23465	// This may be used to include null fields in Patch requests.
23466	NullFields []string `json:"-"`
23467}
23468
23469func (s *MachineTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
23470	type NoMethod MachineTypeAggregatedListWarningData
23471	raw := NoMethod(*s)
23472	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23473}
23474
23475// MachineTypeList: Contains a list of machine types.
23476type MachineTypeList struct {
23477	// Id: [Output Only] Unique identifier for the resource; defined by the
23478	// server.
23479	Id string `json:"id,omitempty"`
23480
23481	// Items: A list of MachineType resources.
23482	Items []*MachineType `json:"items,omitempty"`
23483
23484	// Kind: [Output Only] Type of resource. Always compute#machineTypeList
23485	// for lists of machine types.
23486	Kind string `json:"kind,omitempty"`
23487
23488	// NextPageToken: [Output Only] This token allows you to get the next
23489	// page of results for list requests. If the number of results is larger
23490	// than maxResults, use the nextPageToken as a value for the query
23491	// parameter pageToken in the next list request. Subsequent list
23492	// requests will have their own nextPageToken to continue paging through
23493	// the results.
23494	NextPageToken string `json:"nextPageToken,omitempty"`
23495
23496	// SelfLink: [Output Only] Server-defined URL for this resource.
23497	SelfLink string `json:"selfLink,omitempty"`
23498
23499	// Warning: [Output Only] Informational warning message.
23500	Warning *MachineTypeListWarning `json:"warning,omitempty"`
23501
23502	// ServerResponse contains the HTTP response code and headers from the
23503	// server.
23504	googleapi.ServerResponse `json:"-"`
23505
23506	// ForceSendFields is a list of field names (e.g. "Id") to
23507	// unconditionally include in API requests. By default, fields with
23508	// empty or default values are omitted from API requests. However, any
23509	// non-pointer, non-interface field appearing in ForceSendFields will be
23510	// sent to the server regardless of whether the field is empty or not.
23511	// This may be used to include empty fields in Patch requests.
23512	ForceSendFields []string `json:"-"`
23513
23514	// NullFields is a list of field names (e.g. "Id") to include in API
23515	// requests with the JSON null value. By default, fields with empty
23516	// values are omitted from API requests. However, any field with an
23517	// empty value appearing in NullFields will be sent to the server as
23518	// null. It is an error if a field in this list has a non-empty value.
23519	// This may be used to include null fields in Patch requests.
23520	NullFields []string `json:"-"`
23521}
23522
23523func (s *MachineTypeList) MarshalJSON() ([]byte, error) {
23524	type NoMethod MachineTypeList
23525	raw := NoMethod(*s)
23526	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23527}
23528
23529// MachineTypeListWarning: [Output Only] Informational warning message.
23530type MachineTypeListWarning struct {
23531	// Code: [Output Only] A warning code, if applicable. For example,
23532	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23533	// the response.
23534	//
23535	// Possible values:
23536	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
23537	// changes made by a failed operation.
23538	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
23539	// created.
23540	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
23541	// resources has a type marked as deprecated
23542	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
23543	// that is larger than image size.
23544	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
23545	// resources has a type marked as experimental
23546	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
23547	// call
23548	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
23549	// overridden. Deprecated unused field.
23550	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
23551	// injected kernel, which is deprecated.
23552	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
23553	// exceedingly large number of resources
23554	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
23555	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
23556	// not assigned to an instance on the network.
23557	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
23558	// ip forward.
23559	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
23560	// refers to an instance that does not exist.
23561	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
23562	// URL refers to an instance that is not on the same network as the
23563	// route.
23564	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
23565	// have a status of RUNNING.
23566	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
23567	// continue the process despite the mentioned error.
23568	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
23569	// page.
23570	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
23571	// missing due to errors
23572	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
23573	// that requires a TOS they have not accepted.
23574	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
23575	// resource is in use.
23576	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
23577	// auto-delete could not be deleted because they were in use.
23578	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
23579	// ignored.
23580	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
23581	// instance group manager is valid as such, but its application does not
23582	// make a lot of sense, because it allows only single instance in
23583	// instance group.
23584	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
23585	// are present
23586	//   "UNREACHABLE" - A given scope cannot be reached.
23587	Code string `json:"code,omitempty"`
23588
23589	// Data: [Output Only] Metadata about this warning in key: value format.
23590	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
23591	// }
23592	Data []*MachineTypeListWarningData `json:"data,omitempty"`
23593
23594	// Message: [Output Only] A human-readable description of the warning
23595	// code.
23596	Message string `json:"message,omitempty"`
23597
23598	// ForceSendFields is a list of field names (e.g. "Code") to
23599	// unconditionally include in API requests. By default, fields with
23600	// empty or default values are omitted from API requests. However, any
23601	// non-pointer, non-interface field appearing in ForceSendFields will be
23602	// sent to the server regardless of whether the field is empty or not.
23603	// This may be used to include empty fields in Patch requests.
23604	ForceSendFields []string `json:"-"`
23605
23606	// NullFields is a list of field names (e.g. "Code") to include in API
23607	// requests with the JSON null value. By default, fields with empty
23608	// values are omitted from API requests. However, any field with an
23609	// empty value appearing in NullFields will be sent to the server as
23610	// null. It is an error if a field in this list has a non-empty value.
23611	// This may be used to include null fields in Patch requests.
23612	NullFields []string `json:"-"`
23613}
23614
23615func (s *MachineTypeListWarning) MarshalJSON() ([]byte, error) {
23616	type NoMethod MachineTypeListWarning
23617	raw := NoMethod(*s)
23618	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23619}
23620
23621type MachineTypeListWarningData struct {
23622	// Key: [Output Only] A key that provides more detail on the warning
23623	// being returned. For example, for warnings where there are no results
23624	// in a list request for a particular zone, this key might be scope and
23625	// the key value might be the zone name. Other examples might be a key
23626	// indicating a deprecated resource and a suggested replacement, or a
23627	// warning about invalid network settings (for example, if an instance
23628	// attempts to perform IP forwarding but is not enabled for IP
23629	// forwarding).
23630	Key string `json:"key,omitempty"`
23631
23632	// Value: [Output Only] A warning data value corresponding to the key.
23633	Value string `json:"value,omitempty"`
23634
23635	// ForceSendFields is a list of field names (e.g. "Key") to
23636	// unconditionally include in API requests. By default, fields with
23637	// empty or default values are omitted from API requests. However, any
23638	// non-pointer, non-interface field appearing in ForceSendFields will be
23639	// sent to the server regardless of whether the field is empty or not.
23640	// This may be used to include empty fields in Patch requests.
23641	ForceSendFields []string `json:"-"`
23642
23643	// NullFields is a list of field names (e.g. "Key") to include in API
23644	// requests with the JSON null value. By default, fields with empty
23645	// values are omitted from API requests. However, any field with an
23646	// empty value appearing in NullFields will be sent to the server as
23647	// null. It is an error if a field in this list has a non-empty value.
23648	// This may be used to include null fields in Patch requests.
23649	NullFields []string `json:"-"`
23650}
23651
23652func (s *MachineTypeListWarningData) MarshalJSON() ([]byte, error) {
23653	type NoMethod MachineTypeListWarningData
23654	raw := NoMethod(*s)
23655	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23656}
23657
23658type MachineTypesScopedList struct {
23659	// MachineTypes: [Output Only] A list of machine types contained in this
23660	// scope.
23661	MachineTypes []*MachineType `json:"machineTypes,omitempty"`
23662
23663	// Warning: [Output Only] An informational warning that appears when the
23664	// machine types list is empty.
23665	Warning *MachineTypesScopedListWarning `json:"warning,omitempty"`
23666
23667	// ForceSendFields is a list of field names (e.g. "MachineTypes") to
23668	// unconditionally include in API requests. By default, fields with
23669	// empty or default values are omitted from API requests. However, any
23670	// non-pointer, non-interface field appearing in ForceSendFields will be
23671	// sent to the server regardless of whether the field is empty or not.
23672	// This may be used to include empty fields in Patch requests.
23673	ForceSendFields []string `json:"-"`
23674
23675	// NullFields is a list of field names (e.g. "MachineTypes") to include
23676	// in API requests with the JSON null value. By default, fields with
23677	// empty values are omitted from API requests. However, any field with
23678	// an empty value appearing in NullFields will be sent to the server as
23679	// null. It is an error if a field in this list has a non-empty value.
23680	// This may be used to include null fields in Patch requests.
23681	NullFields []string `json:"-"`
23682}
23683
23684func (s *MachineTypesScopedList) MarshalJSON() ([]byte, error) {
23685	type NoMethod MachineTypesScopedList
23686	raw := NoMethod(*s)
23687	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23688}
23689
23690// MachineTypesScopedListWarning: [Output Only] An informational warning
23691// that appears when the machine types list is empty.
23692type MachineTypesScopedListWarning struct {
23693	// Code: [Output Only] A warning code, if applicable. For example,
23694	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23695	// the response.
23696	//
23697	// Possible values:
23698	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
23699	// changes made by a failed operation.
23700	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
23701	// created.
23702	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
23703	// resources has a type marked as deprecated
23704	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
23705	// that is larger than image size.
23706	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
23707	// resources has a type marked as experimental
23708	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
23709	// call
23710	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
23711	// overridden. Deprecated unused field.
23712	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
23713	// injected kernel, which is deprecated.
23714	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
23715	// exceedingly large number of resources
23716	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
23717	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
23718	// not assigned to an instance on the network.
23719	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
23720	// ip forward.
23721	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
23722	// refers to an instance that does not exist.
23723	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
23724	// URL refers to an instance that is not on the same network as the
23725	// route.
23726	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
23727	// have a status of RUNNING.
23728	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
23729	// continue the process despite the mentioned error.
23730	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
23731	// page.
23732	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
23733	// missing due to errors
23734	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
23735	// that requires a TOS they have not accepted.
23736	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
23737	// resource is in use.
23738	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
23739	// auto-delete could not be deleted because they were in use.
23740	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
23741	// ignored.
23742	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
23743	// instance group manager is valid as such, but its application does not
23744	// make a lot of sense, because it allows only single instance in
23745	// instance group.
23746	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
23747	// are present
23748	//   "UNREACHABLE" - A given scope cannot be reached.
23749	Code string `json:"code,omitempty"`
23750
23751	// Data: [Output Only] Metadata about this warning in key: value format.
23752	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
23753	// }
23754	Data []*MachineTypesScopedListWarningData `json:"data,omitempty"`
23755
23756	// Message: [Output Only] A human-readable description of the warning
23757	// code.
23758	Message string `json:"message,omitempty"`
23759
23760	// ForceSendFields is a list of field names (e.g. "Code") to
23761	// unconditionally include in API requests. By default, fields with
23762	// empty or default values are omitted from API requests. However, any
23763	// non-pointer, non-interface field appearing in ForceSendFields will be
23764	// sent to the server regardless of whether the field is empty or not.
23765	// This may be used to include empty fields in Patch requests.
23766	ForceSendFields []string `json:"-"`
23767
23768	// NullFields is a list of field names (e.g. "Code") to include in API
23769	// requests with the JSON null value. By default, fields with empty
23770	// values are omitted from API requests. However, any field with an
23771	// empty value appearing in NullFields will be sent to the server as
23772	// null. It is an error if a field in this list has a non-empty value.
23773	// This may be used to include null fields in Patch requests.
23774	NullFields []string `json:"-"`
23775}
23776
23777func (s *MachineTypesScopedListWarning) MarshalJSON() ([]byte, error) {
23778	type NoMethod MachineTypesScopedListWarning
23779	raw := NoMethod(*s)
23780	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23781}
23782
23783type MachineTypesScopedListWarningData struct {
23784	// Key: [Output Only] A key that provides more detail on the warning
23785	// being returned. For example, for warnings where there are no results
23786	// in a list request for a particular zone, this key might be scope and
23787	// the key value might be the zone name. Other examples might be a key
23788	// indicating a deprecated resource and a suggested replacement, or a
23789	// warning about invalid network settings (for example, if an instance
23790	// attempts to perform IP forwarding but is not enabled for IP
23791	// forwarding).
23792	Key string `json:"key,omitempty"`
23793
23794	// Value: [Output Only] A warning data value corresponding to the key.
23795	Value string `json:"value,omitempty"`
23796
23797	// ForceSendFields is a list of field names (e.g. "Key") to
23798	// unconditionally include in API requests. By default, fields with
23799	// empty or default values are omitted from API requests. However, any
23800	// non-pointer, non-interface field appearing in ForceSendFields will be
23801	// sent to the server regardless of whether the field is empty or not.
23802	// This may be used to include empty fields in Patch requests.
23803	ForceSendFields []string `json:"-"`
23804
23805	// NullFields is a list of field names (e.g. "Key") to include in API
23806	// requests with the JSON null value. By default, fields with empty
23807	// values are omitted from API requests. However, any field with an
23808	// empty value appearing in NullFields will be sent to the server as
23809	// null. It is an error if a field in this list has a non-empty value.
23810	// This may be used to include null fields in Patch requests.
23811	NullFields []string `json:"-"`
23812}
23813
23814func (s *MachineTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
23815	type NoMethod MachineTypesScopedListWarningData
23816	raw := NoMethod(*s)
23817	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23818}
23819
23820// ManagedInstance: A Managed Instance resource.
23821type ManagedInstance struct {
23822	// CurrentAction: [Output Only] The current action that the managed
23823	// instance group has scheduled for the instance. Possible values: -
23824	// NONE The instance is running, and the managed instance group does not
23825	// have any scheduled actions for this instance. - CREATING The managed
23826	// instance group is creating this instance. If the group fails to
23827	// create this instance, it will try again until it is successful. -
23828	// CREATING_WITHOUT_RETRIES The managed instance group is attempting to
23829	// create this instance only once. If the group fails to create this
23830	// instance, it does not try again and the group's targetSize value is
23831	// decreased instead. - RECREATING The managed instance group is
23832	// recreating this instance. - DELETING The managed instance group is
23833	// permanently deleting this instance. - ABANDONING The managed instance
23834	// group is abandoning this instance. The instance will be removed from
23835	// the instance group and from any target pools that are associated with
23836	// this group. - RESTARTING The managed instance group is restarting the
23837	// instance. - REFRESHING The managed instance group is applying
23838	// configuration changes to the instance without stopping it. For
23839	// example, the group can update the target pool list for an instance
23840	// without stopping that instance. - VERIFYING The managed instance
23841	// group has created the instance and it is in the process of being
23842	// verified.
23843	//
23844	// Possible values:
23845	//   "ABANDONING" - The managed instance group is abandoning this
23846	// instance. The instance will be removed from the instance group and
23847	// from any target pools that are associated with this group.
23848	//   "CREATING" - The managed instance group is creating this instance.
23849	// If the group fails to create this instance, it will try again until
23850	// it is successful.
23851	//   "CREATING_WITHOUT_RETRIES" - The managed instance group is
23852	// attempting to create this instance only once. If the group fails to
23853	// create this instance, it does not try again and the group's
23854	// targetSize value is decreased.
23855	//   "DELETING" - The managed instance group is permanently deleting
23856	// this instance.
23857	//   "NONE" - The managed instance group has not scheduled any actions
23858	// for this instance.
23859	//   "RECREATING" - The managed instance group is recreating this
23860	// instance.
23861	//   "REFRESHING" - The managed instance group is applying configuration
23862	// changes to the instance without stopping it. For example, the group
23863	// can update the target pool list for an instance without stopping that
23864	// instance.
23865	//   "RESTARTING" - The managed instance group is restarting this
23866	// instance.
23867	//   "VERIFYING" - The managed instance group is verifying this already
23868	// created instance. Verification happens every time the instance is
23869	// (re)created or restarted and consists of: 1. Waiting until health
23870	// check specified as part of this managed instance group's autohealing
23871	// policy reports HEALTHY. Note: Applies only if autohealing policy has
23872	// a health check specified 2. Waiting for addition verification steps
23873	// performed as post-instance creation (subject to future extensions).
23874	CurrentAction string `json:"currentAction,omitempty"`
23875
23876	// Id: [Output only] The unique identifier for this resource. This field
23877	// is empty when instance does not exist.
23878	Id uint64 `json:"id,omitempty,string"`
23879
23880	// Instance: [Output Only] The URL of the instance. The URL can exist
23881	// even if the instance has not yet been created.
23882	Instance string `json:"instance,omitempty"`
23883
23884	// InstanceHealth: [Output Only] Health state of the instance per
23885	// health-check.
23886	InstanceHealth []*ManagedInstanceInstanceHealth `json:"instanceHealth,omitempty"`
23887
23888	// InstanceStatus: [Output Only] The status of the instance. This field
23889	// is empty when the instance does not exist.
23890	//
23891	// Possible values:
23892	//   "DEPROVISIONING" - The Nanny is halted and we are performing tear
23893	// down tasks like network deprogramming, releasing quota, IP, tearing
23894	// down disks etc.
23895	//   "PROVISIONING" - Resources are being allocated for the instance.
23896	//   "REPAIRING" - The instance is in repair.
23897	//   "RUNNING" - The instance is running.
23898	//   "STAGING" - All required resources have been allocated and the
23899	// instance is being started.
23900	//   "STOPPED" - The instance has stopped successfully.
23901	//   "STOPPING" - The instance is currently stopping (either being
23902	// deleted or killed).
23903	//   "SUSPENDED" - The instance has suspended.
23904	//   "SUSPENDING" - The instance is suspending.
23905	//   "TERMINATED" - The instance has stopped (either by explicit action
23906	// or underlying failure).
23907	InstanceStatus string `json:"instanceStatus,omitempty"`
23908
23909	// LastAttempt: [Output Only] Information about the last attempt to
23910	// create or delete the instance.
23911	LastAttempt *ManagedInstanceLastAttempt `json:"lastAttempt,omitempty"`
23912
23913	// PreservedStateFromConfig: [Output Only] Preserved state applied from
23914	// per-instance config for this instance.
23915	PreservedStateFromConfig *PreservedState `json:"preservedStateFromConfig,omitempty"`
23916
23917	// PreservedStateFromPolicy: [Output Only] Preserved state generated
23918	// based on stateful policy for this instance.
23919	PreservedStateFromPolicy *PreservedState `json:"preservedStateFromPolicy,omitempty"`
23920
23921	// Version: [Output Only] Intended version of this instance.
23922	Version *ManagedInstanceVersion `json:"version,omitempty"`
23923
23924	// ForceSendFields is a list of field names (e.g. "CurrentAction") to
23925	// unconditionally include in API requests. By default, fields with
23926	// empty or default values are omitted from API requests. However, any
23927	// non-pointer, non-interface field appearing in ForceSendFields will be
23928	// sent to the server regardless of whether the field is empty or not.
23929	// This may be used to include empty fields in Patch requests.
23930	ForceSendFields []string `json:"-"`
23931
23932	// NullFields is a list of field names (e.g. "CurrentAction") to include
23933	// in API requests with the JSON null value. By default, fields with
23934	// empty values are omitted from API requests. However, any field with
23935	// an empty value appearing in NullFields will be sent to the server as
23936	// null. It is an error if a field in this list has a non-empty value.
23937	// This may be used to include null fields in Patch requests.
23938	NullFields []string `json:"-"`
23939}
23940
23941func (s *ManagedInstance) MarshalJSON() ([]byte, error) {
23942	type NoMethod ManagedInstance
23943	raw := NoMethod(*s)
23944	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23945}
23946
23947type ManagedInstanceInstanceHealth struct {
23948	// DetailedHealthState: [Output Only] The current detailed instance
23949	// health state.
23950	//
23951	// Possible values:
23952	//   "DRAINING" - The instance is being drained. The existing
23953	// connections to the instance have time to complete, but the new ones
23954	// are being refused.
23955	//   "HEALTHY" - The instance is reachable i.e. a connection to the
23956	// application health checking endpoint can be established, and conforms
23957	// to the requirements defined by the health check.
23958	//   "TIMEOUT" - The instance is unreachable i.e. a connection to the
23959	// application health checking endpoint cannot be established, or the
23960	// server does not respond within the specified timeout.
23961	//   "UNHEALTHY" - The instance is reachable, but does not conform to
23962	// the requirements defined by the health check.
23963	//   "UNKNOWN" - The health checking system is aware of the instance but
23964	// its health is not known at the moment.
23965	DetailedHealthState string `json:"detailedHealthState,omitempty"`
23966
23967	// HealthCheck: [Output Only] The URL for the health check that verifies
23968	// whether the instance is healthy.
23969	HealthCheck string `json:"healthCheck,omitempty"`
23970
23971	// ForceSendFields is a list of field names (e.g. "DetailedHealthState")
23972	// to unconditionally include in API requests. By default, fields with
23973	// empty or default values are omitted from API requests. However, any
23974	// non-pointer, non-interface field appearing in ForceSendFields will be
23975	// sent to the server regardless of whether the field is empty or not.
23976	// This may be used to include empty fields in Patch requests.
23977	ForceSendFields []string `json:"-"`
23978
23979	// NullFields is a list of field names (e.g. "DetailedHealthState") to
23980	// include in API requests with the JSON null value. By default, fields
23981	// with empty values are omitted from API requests. However, any field
23982	// with an empty value appearing in NullFields will be sent to the
23983	// server as null. It is an error if a field in this list has a
23984	// non-empty value. This may be used to include null fields in Patch
23985	// requests.
23986	NullFields []string `json:"-"`
23987}
23988
23989func (s *ManagedInstanceInstanceHealth) MarshalJSON() ([]byte, error) {
23990	type NoMethod ManagedInstanceInstanceHealth
23991	raw := NoMethod(*s)
23992	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23993}
23994
23995type ManagedInstanceLastAttempt struct {
23996	// Errors: [Output Only] Encountered errors during the last attempt to
23997	// create or delete the instance.
23998	Errors *ManagedInstanceLastAttemptErrors `json:"errors,omitempty"`
23999
24000	// ForceSendFields is a list of field names (e.g. "Errors") to
24001	// unconditionally include in API requests. By default, fields with
24002	// empty or default values are omitted from API requests. However, any
24003	// non-pointer, non-interface field appearing in ForceSendFields will be
24004	// sent to the server regardless of whether the field is empty or not.
24005	// This may be used to include empty fields in Patch requests.
24006	ForceSendFields []string `json:"-"`
24007
24008	// NullFields is a list of field names (e.g. "Errors") to include in API
24009	// requests with the JSON null value. By default, fields with empty
24010	// values are omitted from API requests. However, any field with an
24011	// empty value appearing in NullFields will be sent to the server as
24012	// null. It is an error if a field in this list has a non-empty value.
24013	// This may be used to include null fields in Patch requests.
24014	NullFields []string `json:"-"`
24015}
24016
24017func (s *ManagedInstanceLastAttempt) MarshalJSON() ([]byte, error) {
24018	type NoMethod ManagedInstanceLastAttempt
24019	raw := NoMethod(*s)
24020	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24021}
24022
24023// ManagedInstanceLastAttemptErrors: [Output Only] Encountered errors
24024// during the last attempt to create or delete the instance.
24025type ManagedInstanceLastAttemptErrors struct {
24026	// Errors: [Output Only] The array of errors encountered while
24027	// processing this operation.
24028	Errors []*ManagedInstanceLastAttemptErrorsErrors `json:"errors,omitempty"`
24029
24030	// ForceSendFields is a list of field names (e.g. "Errors") to
24031	// unconditionally include in API requests. By default, fields with
24032	// empty or default values are omitted from API requests. However, any
24033	// non-pointer, non-interface field appearing in ForceSendFields will be
24034	// sent to the server regardless of whether the field is empty or not.
24035	// This may be used to include empty fields in Patch requests.
24036	ForceSendFields []string `json:"-"`
24037
24038	// NullFields is a list of field names (e.g. "Errors") to include in API
24039	// requests with the JSON null value. By default, fields with empty
24040	// values are omitted from API requests. However, any field with an
24041	// empty value appearing in NullFields will be sent to the server as
24042	// null. It is an error if a field in this list has a non-empty value.
24043	// This may be used to include null fields in Patch requests.
24044	NullFields []string `json:"-"`
24045}
24046
24047func (s *ManagedInstanceLastAttemptErrors) MarshalJSON() ([]byte, error) {
24048	type NoMethod ManagedInstanceLastAttemptErrors
24049	raw := NoMethod(*s)
24050	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24051}
24052
24053type ManagedInstanceLastAttemptErrorsErrors struct {
24054	// Code: [Output Only] The error type identifier for this error.
24055	Code string `json:"code,omitempty"`
24056
24057	// Location: [Output Only] Indicates the field in the request that
24058	// caused the error. This property is optional.
24059	Location string `json:"location,omitempty"`
24060
24061	// Message: [Output Only] An optional, human-readable error message.
24062	Message string `json:"message,omitempty"`
24063
24064	// ForceSendFields is a list of field names (e.g. "Code") to
24065	// unconditionally include in API requests. By default, fields with
24066	// empty or default values are omitted from API requests. However, any
24067	// non-pointer, non-interface field appearing in ForceSendFields will be
24068	// sent to the server regardless of whether the field is empty or not.
24069	// This may be used to include empty fields in Patch requests.
24070	ForceSendFields []string `json:"-"`
24071
24072	// NullFields is a list of field names (e.g. "Code") to include in API
24073	// requests with the JSON null value. By default, fields with empty
24074	// values are omitted from API requests. However, any field with an
24075	// empty value appearing in NullFields will be sent to the server as
24076	// null. It is an error if a field in this list has a non-empty value.
24077	// This may be used to include null fields in Patch requests.
24078	NullFields []string `json:"-"`
24079}
24080
24081func (s *ManagedInstanceLastAttemptErrorsErrors) MarshalJSON() ([]byte, error) {
24082	type NoMethod ManagedInstanceLastAttemptErrorsErrors
24083	raw := NoMethod(*s)
24084	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24085}
24086
24087type ManagedInstanceVersion struct {
24088	// InstanceTemplate: [Output Only] The intended template of the
24089	// instance. This field is empty when current_action is one of {
24090	// DELETING, ABANDONING }.
24091	InstanceTemplate string `json:"instanceTemplate,omitempty"`
24092
24093	// Name: [Output Only] Name of the version.
24094	Name string `json:"name,omitempty"`
24095
24096	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
24097	// unconditionally include in API requests. By default, fields with
24098	// empty or default values are omitted from API requests. However, any
24099	// non-pointer, non-interface field appearing in ForceSendFields will be
24100	// sent to the server regardless of whether the field is empty or not.
24101	// This may be used to include empty fields in Patch requests.
24102	ForceSendFields []string `json:"-"`
24103
24104	// NullFields is a list of field names (e.g. "InstanceTemplate") to
24105	// include in API requests with the JSON null value. By default, fields
24106	// with empty values are omitted from API requests. However, any field
24107	// with an empty value appearing in NullFields will be sent to the
24108	// server as null. It is an error if a field in this list has a
24109	// non-empty value. This may be used to include null fields in Patch
24110	// requests.
24111	NullFields []string `json:"-"`
24112}
24113
24114func (s *ManagedInstanceVersion) MarshalJSON() ([]byte, error) {
24115	type NoMethod ManagedInstanceVersion
24116	raw := NoMethod(*s)
24117	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24118}
24119
24120// Metadata: A metadata key/value entry.
24121type Metadata struct {
24122	// Fingerprint: Specifies a fingerprint for this request, which is
24123	// essentially a hash of the metadata's contents and used for optimistic
24124	// locking. The fingerprint is initially generated by Compute Engine and
24125	// changes after every request to modify or update metadata. You must
24126	// always provide an up-to-date fingerprint hash in order to update or
24127	// change metadata, otherwise the request will fail with error 412
24128	// conditionNotMet. To see the latest fingerprint, make a get() request
24129	// to retrieve the resource.
24130	Fingerprint string `json:"fingerprint,omitempty"`
24131
24132	// Items: Array of key/value pairs. The total size of all keys and
24133	// values must be less than 512 KB.
24134	Items []*MetadataItems `json:"items,omitempty"`
24135
24136	// Kind: [Output Only] Type of the resource. Always compute#metadata for
24137	// metadata.
24138	Kind string `json:"kind,omitempty"`
24139
24140	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
24141	// unconditionally include in API requests. By default, fields with
24142	// empty or default values are omitted from API requests. However, any
24143	// non-pointer, non-interface field appearing in ForceSendFields will be
24144	// sent to the server regardless of whether the field is empty or not.
24145	// This may be used to include empty fields in Patch requests.
24146	ForceSendFields []string `json:"-"`
24147
24148	// NullFields is a list of field names (e.g. "Fingerprint") to include
24149	// in API requests with the JSON null value. By default, fields with
24150	// empty values are omitted from API requests. However, any field with
24151	// an empty value appearing in NullFields will be sent to the server as
24152	// null. It is an error if a field in this list has a non-empty value.
24153	// This may be used to include null fields in Patch requests.
24154	NullFields []string `json:"-"`
24155}
24156
24157func (s *Metadata) MarshalJSON() ([]byte, error) {
24158	type NoMethod Metadata
24159	raw := NoMethod(*s)
24160	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24161}
24162
24163// MetadataItems: Metadata
24164type MetadataItems struct {
24165	// Key: Key for the metadata entry. Keys must conform to the following
24166	// regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is
24167	// reflected as part of a URL in the metadata server. Additionally, to
24168	// avoid ambiguity, keys must not conflict with any other metadata keys
24169	// for the project.
24170	Key string `json:"key,omitempty"`
24171
24172	// Value: Value for the metadata entry. These are free-form strings, and
24173	// only have meaning as interpreted by the image running in the
24174	// instance. The only restriction placed on values is that their size
24175	// must be less than or equal to 262144 bytes (256 KiB).
24176	Value *string `json:"value,omitempty"`
24177
24178	// ForceSendFields is a list of field names (e.g. "Key") to
24179	// unconditionally include in API requests. By default, fields with
24180	// empty or default values are omitted from API requests. However, any
24181	// non-pointer, non-interface field appearing in ForceSendFields will be
24182	// sent to the server regardless of whether the field is empty or not.
24183	// This may be used to include empty fields in Patch requests.
24184	ForceSendFields []string `json:"-"`
24185
24186	// NullFields is a list of field names (e.g. "Key") to include in API
24187	// requests with the JSON null value. By default, fields with empty
24188	// values are omitted from API requests. However, any field with an
24189	// empty value appearing in NullFields will be sent to the server as
24190	// null. It is an error if a field in this list has a non-empty value.
24191	// This may be used to include null fields in Patch requests.
24192	NullFields []string `json:"-"`
24193}
24194
24195func (s *MetadataItems) MarshalJSON() ([]byte, error) {
24196	type NoMethod MetadataItems
24197	raw := NoMethod(*s)
24198	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24199}
24200
24201// MetadataFilter: Opaque filter criteria used by loadbalancers to
24202// restrict routing configuration to a limited set of loadbalancing
24203// proxies. Proxies and sidecars involved in loadbalancing would
24204// typically present metadata to the loadbalancers which need to match
24205// criteria specified here. If a match takes place, the relevant
24206// configuration is made available to those proxies. For each
24207// metadataFilter in this list, if its filterMatchCriteria is set to
24208// MATCH_ANY, at least one of the filterLabels must match the
24209// corresponding label provided in the metadata. If its
24210// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
24211// must match with corresponding labels provided in the metadata. An
24212// example for using metadataFilters would be: if loadbalancing involves
24213// Envoys, they will only receive routing configuration when values in
24214// metadataFilters match values supplied in of their XDS requests to
24215// loadbalancers.
24216type MetadataFilter struct {
24217	// FilterLabels: The list of label value pairs that must match labels in
24218	// the provided metadata based on filterMatchCriteria This list must not
24219	// be empty and can have at the most 64 entries.
24220	FilterLabels []*MetadataFilterLabelMatch `json:"filterLabels,omitempty"`
24221
24222	// FilterMatchCriteria: Specifies how individual filterLabel matches
24223	// within the list of filterLabels contribute towards the overall
24224	// metadataFilter match. Supported values are: - MATCH_ANY: At least one
24225	// of the filterLabels must have a matching label in the provided
24226	// metadata. - MATCH_ALL: All filterLabels must have matching labels in
24227	// the provided metadata.
24228	//
24229	// Possible values:
24230	//   "MATCH_ALL" - Specifies that all filterLabels must match for the
24231	// metadataFilter to be considered a match.
24232	//   "MATCH_ANY" - Specifies that any filterLabel must match for the
24233	// metadataFilter to be considered a match.
24234	//   "NOT_SET" - Indicates that the match criteria was not set. A
24235	// metadataFilter must never be created with this value.
24236	FilterMatchCriteria string `json:"filterMatchCriteria,omitempty"`
24237
24238	// ForceSendFields is a list of field names (e.g. "FilterLabels") to
24239	// unconditionally include in API requests. By default, fields with
24240	// empty or default values are omitted from API requests. However, any
24241	// non-pointer, non-interface field appearing in ForceSendFields will be
24242	// sent to the server regardless of whether the field is empty or not.
24243	// This may be used to include empty fields in Patch requests.
24244	ForceSendFields []string `json:"-"`
24245
24246	// NullFields is a list of field names (e.g. "FilterLabels") to include
24247	// in API requests with the JSON null value. By default, fields with
24248	// empty values are omitted from API requests. However, any field with
24249	// an empty value appearing in NullFields will be sent to the server as
24250	// null. It is an error if a field in this list has a non-empty value.
24251	// This may be used to include null fields in Patch requests.
24252	NullFields []string `json:"-"`
24253}
24254
24255func (s *MetadataFilter) MarshalJSON() ([]byte, error) {
24256	type NoMethod MetadataFilter
24257	raw := NoMethod(*s)
24258	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24259}
24260
24261// MetadataFilterLabelMatch: MetadataFilter label name value pairs that
24262// are expected to match corresponding labels presented as metadata to
24263// the loadbalancer.
24264type MetadataFilterLabelMatch struct {
24265	// Name: Name of metadata label. The name can have a maximum length of
24266	// 1024 characters and must be at least 1 character long.
24267	Name string `json:"name,omitempty"`
24268
24269	// Value: The value of the label must match the specified value. value
24270	// can have a maximum length of 1024 characters.
24271	Value string `json:"value,omitempty"`
24272
24273	// ForceSendFields is a list of field names (e.g. "Name") to
24274	// unconditionally include in API requests. By default, fields with
24275	// empty or default values are omitted from API requests. However, any
24276	// non-pointer, non-interface field appearing in ForceSendFields will be
24277	// sent to the server regardless of whether the field is empty or not.
24278	// This may be used to include empty fields in Patch requests.
24279	ForceSendFields []string `json:"-"`
24280
24281	// NullFields is a list of field names (e.g. "Name") to include in API
24282	// requests with the JSON null value. By default, fields with empty
24283	// values are omitted from API requests. However, any field with an
24284	// empty value appearing in NullFields will be sent to the server as
24285	// null. It is an error if a field in this list has a non-empty value.
24286	// This may be used to include null fields in Patch requests.
24287	NullFields []string `json:"-"`
24288}
24289
24290func (s *MetadataFilterLabelMatch) MarshalJSON() ([]byte, error) {
24291	type NoMethod MetadataFilterLabelMatch
24292	raw := NoMethod(*s)
24293	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24294}
24295
24296// NamedPort: The named port. For example: <"http", 80>.
24297type NamedPort struct {
24298	// Name: The name for this named port. The name must be 1-63 characters
24299	// long, and comply with RFC1035.
24300	Name string `json:"name,omitempty"`
24301
24302	// Port: The port number, which can be a value between 1 and 65535.
24303	Port int64 `json:"port,omitempty"`
24304
24305	// ForceSendFields is a list of field names (e.g. "Name") to
24306	// unconditionally include in API requests. By default, fields with
24307	// empty or default values are omitted from API requests. However, any
24308	// non-pointer, non-interface field appearing in ForceSendFields will be
24309	// sent to the server regardless of whether the field is empty or not.
24310	// This may be used to include empty fields in Patch requests.
24311	ForceSendFields []string `json:"-"`
24312
24313	// NullFields is a list of field names (e.g. "Name") to include in API
24314	// requests with the JSON null value. By default, fields with empty
24315	// values are omitted from API requests. However, any field with an
24316	// empty value appearing in NullFields will be sent to the server as
24317	// null. It is an error if a field in this list has a non-empty value.
24318	// This may be used to include null fields in Patch requests.
24319	NullFields []string `json:"-"`
24320}
24321
24322func (s *NamedPort) MarshalJSON() ([]byte, error) {
24323	type NoMethod NamedPort
24324	raw := NoMethod(*s)
24325	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24326}
24327
24328// Network: Represents a VPC Network resource. Networks connect
24329// resources to each other and to the internet. For more information,
24330// read Virtual Private Cloud (VPC) Network.
24331type Network struct {
24332	// IPv4Range: Deprecated in favor of subnet mode networks. The range of
24333	// internal addresses that are legal on this network. This range is a
24334	// CIDR specification, for example: 192.168.0.0/16. Provided by the
24335	// client when the network is created.
24336	IPv4Range string `json:"IPv4Range,omitempty"`
24337
24338	// AutoCreateSubnetworks: Must be set to create a VPC network. If not
24339	// set, a legacy network is created. When set to true, the VPC network
24340	// is created in auto mode. When set to false, the VPC network is
24341	// created in custom mode. An auto mode VPC network starts with one
24342	// subnet per region. Each subnet has a predetermined range as described
24343	// in Auto mode VPC network IP ranges. For custom mode VPC networks, you
24344	// can add subnets using the subnetworks insert method.
24345	AutoCreateSubnetworks bool `json:"autoCreateSubnetworks,omitempty"`
24346
24347	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
24348	// format.
24349	CreationTimestamp string `json:"creationTimestamp,omitempty"`
24350
24351	// Description: An optional description of this resource. Provide this
24352	// field when you create the resource.
24353	Description string `json:"description,omitempty"`
24354
24355	// GatewayIPv4: [Output Only] The gateway address for default routing
24356	// out of the network, selected by GCP.
24357	GatewayIPv4 string `json:"gatewayIPv4,omitempty"`
24358
24359	// Id: [Output Only] The unique identifier for the resource. This
24360	// identifier is defined by the server.
24361	Id uint64 `json:"id,omitempty,string"`
24362
24363	// Kind: [Output Only] Type of the resource. Always compute#network for
24364	// networks.
24365	Kind string `json:"kind,omitempty"`
24366
24367	// Mtu: Maximum Transmission Unit in bytes. The minimum value for this
24368	// field is 1460 and the maximum value is 1500 bytes. If unspecified,
24369	// defaults to 1460.
24370	Mtu int64 `json:"mtu,omitempty"`
24371
24372	// Name: Name of the resource. Provided by the client when the resource
24373	// is created. The name must be 1-63 characters long, and comply with
24374	// RFC1035. Specifically, the name must be 1-63 characters long and
24375	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
24376	// character must be a lowercase letter, and all following characters
24377	// (except for the last character) must be a dash, lowercase letter, or
24378	// digit. The last character must be a lowercase letter or digit.
24379	Name string `json:"name,omitempty"`
24380
24381	// Peerings: [Output Only] A list of network peerings for the resource.
24382	Peerings []*NetworkPeering `json:"peerings,omitempty"`
24383
24384	// RoutingConfig: The network-level routing configuration for this
24385	// network. Used by Cloud Router to determine what type of network-wide
24386	// routing behavior to enforce.
24387	RoutingConfig *NetworkRoutingConfig `json:"routingConfig,omitempty"`
24388
24389	// SelfLink: [Output Only] Server-defined URL for the resource.
24390	SelfLink string `json:"selfLink,omitempty"`
24391
24392	// Subnetworks: [Output Only] Server-defined fully-qualified URLs for
24393	// all subnetworks in this VPC network.
24394	Subnetworks []string `json:"subnetworks,omitempty"`
24395
24396	// ServerResponse contains the HTTP response code and headers from the
24397	// server.
24398	googleapi.ServerResponse `json:"-"`
24399
24400	// ForceSendFields is a list of field names (e.g. "IPv4Range") to
24401	// unconditionally include in API requests. By default, fields with
24402	// empty or default values are omitted from API requests. However, any
24403	// non-pointer, non-interface field appearing in ForceSendFields will be
24404	// sent to the server regardless of whether the field is empty or not.
24405	// This may be used to include empty fields in Patch requests.
24406	ForceSendFields []string `json:"-"`
24407
24408	// NullFields is a list of field names (e.g. "IPv4Range") to include in
24409	// API requests with the JSON null value. By default, fields with empty
24410	// values are omitted from API requests. However, any field with an
24411	// empty value appearing in NullFields will be sent to the server as
24412	// null. It is an error if a field in this list has a non-empty value.
24413	// This may be used to include null fields in Patch requests.
24414	NullFields []string `json:"-"`
24415}
24416
24417func (s *Network) MarshalJSON() ([]byte, error) {
24418	type NoMethod Network
24419	raw := NoMethod(*s)
24420	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24421}
24422
24423// NetworkEndpoint: The network endpoint.
24424type NetworkEndpoint struct {
24425	// Annotations: Metadata defined as annotations on the network endpoint.
24426	Annotations map[string]string `json:"annotations,omitempty"`
24427
24428	// Fqdn: Optional fully qualified domain name of network endpoint. This
24429	// can only be specified when NetworkEndpointGroup.network_endpoint_type
24430	// is NON_GCP_FQDN_PORT.
24431	Fqdn string `json:"fqdn,omitempty"`
24432
24433	// Instance: The name for a specific VM instance that the IP address
24434	// belongs to. This is required for network endpoints of type
24435	// GCE_VM_IP_PORT. The instance must be in the same zone of network
24436	// endpoint group. The name must be 1-63 characters long, and comply
24437	// with RFC1035.
24438	Instance string `json:"instance,omitempty"`
24439
24440	// IpAddress: Optional IPv4 address of network endpoint. The IP address
24441	// must belong to a VM in Compute Engine (either the primary IP or as
24442	// part of an aliased IP range). If the IP address is not specified,
24443	// then the primary IP address for the VM instance in the network that
24444	// the network endpoint group belongs to will be used.
24445	IpAddress string `json:"ipAddress,omitempty"`
24446
24447	// Port: Optional port number of network endpoint. If not specified, the
24448	// defaultPort for the network endpoint group will be used.
24449	Port int64 `json:"port,omitempty"`
24450
24451	// ForceSendFields is a list of field names (e.g. "Annotations") to
24452	// unconditionally include in API requests. By default, fields with
24453	// empty or default values are omitted from API requests. However, any
24454	// non-pointer, non-interface field appearing in ForceSendFields will be
24455	// sent to the server regardless of whether the field is empty or not.
24456	// This may be used to include empty fields in Patch requests.
24457	ForceSendFields []string `json:"-"`
24458
24459	// NullFields is a list of field names (e.g. "Annotations") to include
24460	// in API requests with the JSON null value. By default, fields with
24461	// empty values are omitted from API requests. However, any field with
24462	// an empty value appearing in NullFields will be sent to the server as
24463	// null. It is an error if a field in this list has a non-empty value.
24464	// This may be used to include null fields in Patch requests.
24465	NullFields []string `json:"-"`
24466}
24467
24468func (s *NetworkEndpoint) MarshalJSON() ([]byte, error) {
24469	type NoMethod NetworkEndpoint
24470	raw := NoMethod(*s)
24471	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24472}
24473
24474// NetworkEndpointGroup: Represents a collection of network endpoints. A
24475// network endpoint group (NEG) defines how a set of endpoints should be
24476// reached, whether they are reachable, and where they are located. For
24477// more information about using NEGs, see Setting up external HTTP(S)
24478// Load Balancing with internet NEGs, Setting up zonal NEGs, or Setting
24479// up external HTTP(S) Load Balancing with serverless NEGs.
24480type NetworkEndpointGroup struct {
24481	// Annotations: Metadata defined as annotations on the network endpoint
24482	// group.
24483	Annotations map[string]string `json:"annotations,omitempty"`
24484
24485	// AppEngine: Only valid when networkEndpointType is "SERVERLESS". Only
24486	// one of cloudRun, appEngine or cloudFunction may be set.
24487	AppEngine *NetworkEndpointGroupAppEngine `json:"appEngine,omitempty"`
24488
24489	// CloudFunction: Only valid when networkEndpointType is "SERVERLESS".
24490	// Only one of cloudRun, appEngine or cloudFunction may be set.
24491	CloudFunction *NetworkEndpointGroupCloudFunction `json:"cloudFunction,omitempty"`
24492
24493	// CloudRun: Only valid when networkEndpointType is "SERVERLESS". Only
24494	// one of cloudRun, appEngine or cloudFunction may be set.
24495	CloudRun *NetworkEndpointGroupCloudRun `json:"cloudRun,omitempty"`
24496
24497	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
24498	// format.
24499	CreationTimestamp string `json:"creationTimestamp,omitempty"`
24500
24501	// DefaultPort: The default port used if the port number is not
24502	// specified in the network endpoint.
24503	DefaultPort int64 `json:"defaultPort,omitempty"`
24504
24505	// Description: An optional description of this resource. Provide this
24506	// property when you create the resource.
24507	Description string `json:"description,omitempty"`
24508
24509	// Id: [Output Only] The unique identifier for the resource. This
24510	// identifier is defined by the server.
24511	Id uint64 `json:"id,omitempty,string"`
24512
24513	// Kind: [Output Only] Type of the resource. Always
24514	// compute#networkEndpointGroup for network endpoint group.
24515	Kind string `json:"kind,omitempty"`
24516
24517	// Name: Name of the resource; provided by the client when the resource
24518	// is created. The name must be 1-63 characters long, and comply with
24519	// RFC1035. Specifically, the name must be 1-63 characters long and
24520	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
24521	// the first character must be a lowercase letter, and all following
24522	// characters must be a dash, lowercase letter, or digit, except the
24523	// last character, which cannot be a dash.
24524	Name string `json:"name,omitempty"`
24525
24526	// Network: The URL of the network to which all network endpoints in the
24527	// NEG belong. Uses "default" project network if unspecified.
24528	Network string `json:"network,omitempty"`
24529
24530	// NetworkEndpointType: Type of network endpoints in this network
24531	// endpoint group. Can be one of GCE_VM_IP_PORT,
24532	// NON_GCP_PRIVATE_IP_PORT, INTERNET_FQDN_PORT, INTERNET_IP_PORT,
24533	// SERVERLESS, PRIVATE_SERVICE_CONNECT.
24534	//
24535	// Possible values:
24536	//   "GCE_VM_IP" - The network endpoint is represented by an IP address.
24537	//   "GCE_VM_IP_PORT" - The network endpoint is represented by IP
24538	// address and port pair.
24539	//   "INTERNET_FQDN_PORT" - The network endpoint is represented by fully
24540	// qualified domain name and port.
24541	//   "INTERNET_IP_PORT" - The network endpoint is represented by an
24542	// internet IP address and port.
24543	//   "NON_GCP_PRIVATE_IP_PORT" - The network endpoint is represented by
24544	// an IP address and port. The endpoint belongs to a VM or pod running
24545	// in a customer's on-premises.
24546	//   "SERVERLESS" - The network endpoint is handled by specified
24547	// serverless infrastructure.
24548	NetworkEndpointType string `json:"networkEndpointType,omitempty"`
24549
24550	// Region: [Output Only] The URL of the region where the network
24551	// endpoint group is located.
24552	Region string `json:"region,omitempty"`
24553
24554	// SelfLink: [Output Only] Server-defined URL for the resource.
24555	SelfLink string `json:"selfLink,omitempty"`
24556
24557	// Size: [Output only] Number of network endpoints in the network
24558	// endpoint group.
24559	Size int64 `json:"size,omitempty"`
24560
24561	// Subnetwork: Optional URL of the subnetwork to which all network
24562	// endpoints in the NEG belong.
24563	Subnetwork string `json:"subnetwork,omitempty"`
24564
24565	// Zone: [Output Only] The URL of the zone where the network endpoint
24566	// group is located.
24567	Zone string `json:"zone,omitempty"`
24568
24569	// ServerResponse contains the HTTP response code and headers from the
24570	// server.
24571	googleapi.ServerResponse `json:"-"`
24572
24573	// ForceSendFields is a list of field names (e.g. "Annotations") to
24574	// unconditionally include in API requests. By default, fields with
24575	// empty or default values are omitted from API requests. However, any
24576	// non-pointer, non-interface field appearing in ForceSendFields will be
24577	// sent to the server regardless of whether the field is empty or not.
24578	// This may be used to include empty fields in Patch requests.
24579	ForceSendFields []string `json:"-"`
24580
24581	// NullFields is a list of field names (e.g. "Annotations") to include
24582	// in API requests with the JSON null value. By default, fields with
24583	// empty values are omitted from API requests. However, any field with
24584	// an empty value appearing in NullFields will be sent to the server as
24585	// null. It is an error if a field in this list has a non-empty value.
24586	// This may be used to include null fields in Patch requests.
24587	NullFields []string `json:"-"`
24588}
24589
24590func (s *NetworkEndpointGroup) MarshalJSON() ([]byte, error) {
24591	type NoMethod NetworkEndpointGroup
24592	raw := NoMethod(*s)
24593	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24594}
24595
24596type NetworkEndpointGroupAggregatedList struct {
24597	// Id: [Output Only] Unique identifier for the resource; defined by the
24598	// server.
24599	Id string `json:"id,omitempty"`
24600
24601	// Items: A list of NetworkEndpointGroupsScopedList resources.
24602	Items map[string]NetworkEndpointGroupsScopedList `json:"items,omitempty"`
24603
24604	// Kind: [Output Only] The resource type, which is always
24605	// compute#networkEndpointGroupAggregatedList for aggregated lists of
24606	// network endpoint groups.
24607	Kind string `json:"kind,omitempty"`
24608
24609	// NextPageToken: [Output Only] This token allows you to get the next
24610	// page of results for list requests. If the number of results is larger
24611	// than maxResults, use the nextPageToken as a value for the query
24612	// parameter pageToken in the next list request. Subsequent list
24613	// requests will have their own nextPageToken to continue paging through
24614	// the results.
24615	NextPageToken string `json:"nextPageToken,omitempty"`
24616
24617	// SelfLink: [Output Only] Server-defined URL for this resource.
24618	SelfLink string `json:"selfLink,omitempty"`
24619
24620	// Unreachables: [Output Only] Unreachable resources.
24621	Unreachables []string `json:"unreachables,omitempty"`
24622
24623	// Warning: [Output Only] Informational warning message.
24624	Warning *NetworkEndpointGroupAggregatedListWarning `json:"warning,omitempty"`
24625
24626	// ServerResponse contains the HTTP response code and headers from the
24627	// server.
24628	googleapi.ServerResponse `json:"-"`
24629
24630	// ForceSendFields is a list of field names (e.g. "Id") to
24631	// unconditionally include in API requests. By default, fields with
24632	// empty or default values are omitted from API requests. However, any
24633	// non-pointer, non-interface field appearing in ForceSendFields will be
24634	// sent to the server regardless of whether the field is empty or not.
24635	// This may be used to include empty fields in Patch requests.
24636	ForceSendFields []string `json:"-"`
24637
24638	// NullFields is a list of field names (e.g. "Id") to include in API
24639	// requests with the JSON null value. By default, fields with empty
24640	// values are omitted from API requests. However, any field with an
24641	// empty value appearing in NullFields will be sent to the server as
24642	// null. It is an error if a field in this list has a non-empty value.
24643	// This may be used to include null fields in Patch requests.
24644	NullFields []string `json:"-"`
24645}
24646
24647func (s *NetworkEndpointGroupAggregatedList) MarshalJSON() ([]byte, error) {
24648	type NoMethod NetworkEndpointGroupAggregatedList
24649	raw := NoMethod(*s)
24650	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24651}
24652
24653// NetworkEndpointGroupAggregatedListWarning: [Output Only]
24654// Informational warning message.
24655type NetworkEndpointGroupAggregatedListWarning struct {
24656	// Code: [Output Only] A warning code, if applicable. For example,
24657	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24658	// the response.
24659	//
24660	// Possible values:
24661	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
24662	// changes made by a failed operation.
24663	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
24664	// created.
24665	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
24666	// resources has a type marked as deprecated
24667	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
24668	// that is larger than image size.
24669	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
24670	// resources has a type marked as experimental
24671	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
24672	// call
24673	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
24674	// overridden. Deprecated unused field.
24675	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
24676	// injected kernel, which is deprecated.
24677	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
24678	// exceedingly large number of resources
24679	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
24680	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
24681	// not assigned to an instance on the network.
24682	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
24683	// ip forward.
24684	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
24685	// refers to an instance that does not exist.
24686	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
24687	// URL refers to an instance that is not on the same network as the
24688	// route.
24689	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
24690	// have a status of RUNNING.
24691	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
24692	// continue the process despite the mentioned error.
24693	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
24694	// page.
24695	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
24696	// missing due to errors
24697	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
24698	// that requires a TOS they have not accepted.
24699	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
24700	// resource is in use.
24701	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
24702	// auto-delete could not be deleted because they were in use.
24703	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
24704	// ignored.
24705	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
24706	// instance group manager is valid as such, but its application does not
24707	// make a lot of sense, because it allows only single instance in
24708	// instance group.
24709	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
24710	// are present
24711	//   "UNREACHABLE" - A given scope cannot be reached.
24712	Code string `json:"code,omitempty"`
24713
24714	// Data: [Output Only] Metadata about this warning in key: value format.
24715	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
24716	// }
24717	Data []*NetworkEndpointGroupAggregatedListWarningData `json:"data,omitempty"`
24718
24719	// Message: [Output Only] A human-readable description of the warning
24720	// code.
24721	Message string `json:"message,omitempty"`
24722
24723	// ForceSendFields is a list of field names (e.g. "Code") to
24724	// unconditionally include in API requests. By default, fields with
24725	// empty or default values are omitted from API requests. However, any
24726	// non-pointer, non-interface field appearing in ForceSendFields will be
24727	// sent to the server regardless of whether the field is empty or not.
24728	// This may be used to include empty fields in Patch requests.
24729	ForceSendFields []string `json:"-"`
24730
24731	// NullFields is a list of field names (e.g. "Code") to include in API
24732	// requests with the JSON null value. By default, fields with empty
24733	// values are omitted from API requests. However, any field with an
24734	// empty value appearing in NullFields will be sent to the server as
24735	// null. It is an error if a field in this list has a non-empty value.
24736	// This may be used to include null fields in Patch requests.
24737	NullFields []string `json:"-"`
24738}
24739
24740func (s *NetworkEndpointGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
24741	type NoMethod NetworkEndpointGroupAggregatedListWarning
24742	raw := NoMethod(*s)
24743	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24744}
24745
24746type NetworkEndpointGroupAggregatedListWarningData struct {
24747	// Key: [Output Only] A key that provides more detail on the warning
24748	// being returned. For example, for warnings where there are no results
24749	// in a list request for a particular zone, this key might be scope and
24750	// the key value might be the zone name. Other examples might be a key
24751	// indicating a deprecated resource and a suggested replacement, or a
24752	// warning about invalid network settings (for example, if an instance
24753	// attempts to perform IP forwarding but is not enabled for IP
24754	// forwarding).
24755	Key string `json:"key,omitempty"`
24756
24757	// Value: [Output Only] A warning data value corresponding to the key.
24758	Value string `json:"value,omitempty"`
24759
24760	// ForceSendFields is a list of field names (e.g. "Key") to
24761	// unconditionally include in API requests. By default, fields with
24762	// empty or default values are omitted from API requests. However, any
24763	// non-pointer, non-interface field appearing in ForceSendFields will be
24764	// sent to the server regardless of whether the field is empty or not.
24765	// This may be used to include empty fields in Patch requests.
24766	ForceSendFields []string `json:"-"`
24767
24768	// NullFields is a list of field names (e.g. "Key") to include in API
24769	// requests with the JSON null value. By default, fields with empty
24770	// values are omitted from API requests. However, any field with an
24771	// empty value appearing in NullFields will be sent to the server as
24772	// null. It is an error if a field in this list has a non-empty value.
24773	// This may be used to include null fields in Patch requests.
24774	NullFields []string `json:"-"`
24775}
24776
24777func (s *NetworkEndpointGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
24778	type NoMethod NetworkEndpointGroupAggregatedListWarningData
24779	raw := NoMethod(*s)
24780	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24781}
24782
24783// NetworkEndpointGroupAppEngine: Configuration for an App Engine
24784// network endpoint group (NEG). The service is optional, may be
24785// provided explicitly or in the URL mask. The version is optional and
24786// can only be provided explicitly or in the URL mask when service is
24787// present. Note: App Engine service must be in the same project and
24788// located in the same region as the Serverless NEG.
24789type NetworkEndpointGroupAppEngine struct {
24790	// Service: Optional serving service. The service name is case-sensitive
24791	// and must be 1-63 characters long. Example value: "default",
24792	// "my-service".
24793	Service string `json:"service,omitempty"`
24794
24795	// UrlMask: A template to parse service and version fields from a
24796	// request URL. URL mask allows for routing to multiple App Engine
24797	// services without having to create multiple Network Endpoint Groups
24798	// and backend services. For example, the request URLs
24799	// "foo1-dot-appname.appspot.com/v1" and
24800	// "foo1-dot-appname.appspot.com/v2" can be backed by the same
24801	// Serverless NEG with URL mask "-dot-appname.appspot.com/". The URL
24802	// mask will parse them to { service = "foo1", version = "v1" } and {
24803	// service = "foo1", version = "v2" } respectively.
24804	UrlMask string `json:"urlMask,omitempty"`
24805
24806	// Version: Optional serving version. The version name is case-sensitive
24807	// and must be 1-100 characters long. Example value: "v1", "v2".
24808	Version string `json:"version,omitempty"`
24809
24810	// ForceSendFields is a list of field names (e.g. "Service") to
24811	// unconditionally include in API requests. By default, fields with
24812	// empty or default values are omitted from API requests. However, any
24813	// non-pointer, non-interface field appearing in ForceSendFields will be
24814	// sent to the server regardless of whether the field is empty or not.
24815	// This may be used to include empty fields in Patch requests.
24816	ForceSendFields []string `json:"-"`
24817
24818	// NullFields is a list of field names (e.g. "Service") to include in
24819	// API requests with the JSON null value. By default, fields with empty
24820	// values are omitted from API requests. However, any field with an
24821	// empty value appearing in NullFields will be sent to the server as
24822	// null. It is an error if a field in this list has a non-empty value.
24823	// This may be used to include null fields in Patch requests.
24824	NullFields []string `json:"-"`
24825}
24826
24827func (s *NetworkEndpointGroupAppEngine) MarshalJSON() ([]byte, error) {
24828	type NoMethod NetworkEndpointGroupAppEngine
24829	raw := NoMethod(*s)
24830	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24831}
24832
24833// NetworkEndpointGroupCloudFunction: Configuration for a Cloud Function
24834// network endpoint group (NEG). The function must be provided
24835// explicitly or in the URL mask. Note: Cloud Function must be in the
24836// same project and located in the same region as the Serverless NEG.
24837type NetworkEndpointGroupCloudFunction struct {
24838	// Function: A user-defined name of the Cloud Function. The function
24839	// name is case-sensitive and must be 1-63 characters long. Example
24840	// value: "func1".
24841	Function string `json:"function,omitempty"`
24842
24843	// UrlMask: A template to parse function field from a request URL. URL
24844	// mask allows for routing to multiple Cloud Functions without having to
24845	// create multiple Network Endpoint Groups and backend services. For
24846	// example, request URLs " mydomain.com/function1" and
24847	// "mydomain.com/function2" can be backed by the same Serverless NEG
24848	// with URL mask "/". The URL mask will parse them to { function =
24849	// "function1" } and { function = "function2" } respectively.
24850	UrlMask string `json:"urlMask,omitempty"`
24851
24852	// ForceSendFields is a list of field names (e.g. "Function") to
24853	// unconditionally include in API requests. By default, fields with
24854	// empty or default values are omitted from API requests. However, any
24855	// non-pointer, non-interface field appearing in ForceSendFields will be
24856	// sent to the server regardless of whether the field is empty or not.
24857	// This may be used to include empty fields in Patch requests.
24858	ForceSendFields []string `json:"-"`
24859
24860	// NullFields is a list of field names (e.g. "Function") to include in
24861	// API requests with the JSON null value. By default, fields with empty
24862	// values are omitted from API requests. However, any field with an
24863	// empty value appearing in NullFields will be sent to the server as
24864	// null. It is an error if a field in this list has a non-empty value.
24865	// This may be used to include null fields in Patch requests.
24866	NullFields []string `json:"-"`
24867}
24868
24869func (s *NetworkEndpointGroupCloudFunction) MarshalJSON() ([]byte, error) {
24870	type NoMethod NetworkEndpointGroupCloudFunction
24871	raw := NoMethod(*s)
24872	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24873}
24874
24875// NetworkEndpointGroupCloudRun: Configuration for a Cloud Run network
24876// endpoint group (NEG). The service must be provided explicitly or in
24877// the URL mask. The tag is optional, may be provided explicitly or in
24878// the URL mask. Note: Cloud Run service must be in the same project and
24879// located in the same region as the Serverless NEG.
24880type NetworkEndpointGroupCloudRun struct {
24881	// Service: Cloud Run service is the main resource of Cloud Run. The
24882	// service must be 1-63 characters long, and comply with RFC1035.
24883	// Example value: "run-service".
24884	Service string `json:"service,omitempty"`
24885
24886	// Tag: Optional Cloud Run tag represents the "named-revision" to
24887	// provide additional fine-grained traffic routing information. The tag
24888	// must be 1-63 characters long, and comply with RFC1035. Example value:
24889	// "revision-0010".
24890	Tag string `json:"tag,omitempty"`
24891
24892	// UrlMask: A template to parse service and tag fields from a request
24893	// URL. URL mask allows for routing to multiple Run services without
24894	// having to create multiple network endpoint groups and backend
24895	// services. For example, request URLs "foo1.domain.com/bar1" and
24896	// "foo1.domain.com/bar2" can be backed by the same Serverless Network
24897	// Endpoint Group (NEG) with URL mask ".domain.com/". The URL mask will
24898	// parse them to { service="bar1", tag="foo1" } and { service="bar2",
24899	// tag="foo2" } respectively.
24900	UrlMask string `json:"urlMask,omitempty"`
24901
24902	// ForceSendFields is a list of field names (e.g. "Service") to
24903	// unconditionally include in API requests. By default, fields with
24904	// empty or default values are omitted from API requests. However, any
24905	// non-pointer, non-interface field appearing in ForceSendFields will be
24906	// sent to the server regardless of whether the field is empty or not.
24907	// This may be used to include empty fields in Patch requests.
24908	ForceSendFields []string `json:"-"`
24909
24910	// NullFields is a list of field names (e.g. "Service") to include in
24911	// API requests with the JSON null value. By default, fields with empty
24912	// values are omitted from API requests. However, any field with an
24913	// empty value appearing in NullFields will be sent to the server as
24914	// null. It is an error if a field in this list has a non-empty value.
24915	// This may be used to include null fields in Patch requests.
24916	NullFields []string `json:"-"`
24917}
24918
24919func (s *NetworkEndpointGroupCloudRun) MarshalJSON() ([]byte, error) {
24920	type NoMethod NetworkEndpointGroupCloudRun
24921	raw := NoMethod(*s)
24922	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24923}
24924
24925type NetworkEndpointGroupList struct {
24926	// Id: [Output Only] Unique identifier for the resource; defined by the
24927	// server.
24928	Id string `json:"id,omitempty"`
24929
24930	// Items: A list of NetworkEndpointGroup resources.
24931	Items []*NetworkEndpointGroup `json:"items,omitempty"`
24932
24933	// Kind: [Output Only] The resource type, which is always
24934	// compute#networkEndpointGroupList for network endpoint group lists.
24935	Kind string `json:"kind,omitempty"`
24936
24937	// NextPageToken: [Output Only] This token allows you to get the next
24938	// page of results for list requests. If the number of results is larger
24939	// than maxResults, use the nextPageToken as a value for the query
24940	// parameter pageToken in the next list request. Subsequent list
24941	// requests will have their own nextPageToken to continue paging through
24942	// the results.
24943	NextPageToken string `json:"nextPageToken,omitempty"`
24944
24945	// SelfLink: [Output Only] Server-defined URL for this resource.
24946	SelfLink string `json:"selfLink,omitempty"`
24947
24948	// Warning: [Output Only] Informational warning message.
24949	Warning *NetworkEndpointGroupListWarning `json:"warning,omitempty"`
24950
24951	// ServerResponse contains the HTTP response code and headers from the
24952	// server.
24953	googleapi.ServerResponse `json:"-"`
24954
24955	// ForceSendFields is a list of field names (e.g. "Id") to
24956	// unconditionally include in API requests. By default, fields with
24957	// empty or default values are omitted from API requests. However, any
24958	// non-pointer, non-interface field appearing in ForceSendFields will be
24959	// sent to the server regardless of whether the field is empty or not.
24960	// This may be used to include empty fields in Patch requests.
24961	ForceSendFields []string `json:"-"`
24962
24963	// NullFields is a list of field names (e.g. "Id") to include in API
24964	// requests with the JSON null value. By default, fields with empty
24965	// values are omitted from API requests. However, any field with an
24966	// empty value appearing in NullFields will be sent to the server as
24967	// null. It is an error if a field in this list has a non-empty value.
24968	// This may be used to include null fields in Patch requests.
24969	NullFields []string `json:"-"`
24970}
24971
24972func (s *NetworkEndpointGroupList) MarshalJSON() ([]byte, error) {
24973	type NoMethod NetworkEndpointGroupList
24974	raw := NoMethod(*s)
24975	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24976}
24977
24978// NetworkEndpointGroupListWarning: [Output Only] Informational warning
24979// message.
24980type NetworkEndpointGroupListWarning struct {
24981	// Code: [Output Only] A warning code, if applicable. For example,
24982	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24983	// the response.
24984	//
24985	// Possible values:
24986	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
24987	// changes made by a failed operation.
24988	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
24989	// created.
24990	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
24991	// resources has a type marked as deprecated
24992	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
24993	// that is larger than image size.
24994	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
24995	// resources has a type marked as experimental
24996	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
24997	// call
24998	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
24999	// overridden. Deprecated unused field.
25000	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
25001	// injected kernel, which is deprecated.
25002	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
25003	// exceedingly large number of resources
25004	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
25005	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
25006	// not assigned to an instance on the network.
25007	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
25008	// ip forward.
25009	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
25010	// refers to an instance that does not exist.
25011	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
25012	// URL refers to an instance that is not on the same network as the
25013	// route.
25014	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
25015	// have a status of RUNNING.
25016	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
25017	// continue the process despite the mentioned error.
25018	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
25019	// page.
25020	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
25021	// missing due to errors
25022	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
25023	// that requires a TOS they have not accepted.
25024	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
25025	// resource is in use.
25026	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
25027	// auto-delete could not be deleted because they were in use.
25028	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
25029	// ignored.
25030	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
25031	// instance group manager is valid as such, but its application does not
25032	// make a lot of sense, because it allows only single instance in
25033	// instance group.
25034	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
25035	// are present
25036	//   "UNREACHABLE" - A given scope cannot be reached.
25037	Code string `json:"code,omitempty"`
25038
25039	// Data: [Output Only] Metadata about this warning in key: value format.
25040	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
25041	// }
25042	Data []*NetworkEndpointGroupListWarningData `json:"data,omitempty"`
25043
25044	// Message: [Output Only] A human-readable description of the warning
25045	// code.
25046	Message string `json:"message,omitempty"`
25047
25048	// ForceSendFields is a list of field names (e.g. "Code") to
25049	// unconditionally include in API requests. By default, fields with
25050	// empty or default values are omitted from API requests. However, any
25051	// non-pointer, non-interface field appearing in ForceSendFields will be
25052	// sent to the server regardless of whether the field is empty or not.
25053	// This may be used to include empty fields in Patch requests.
25054	ForceSendFields []string `json:"-"`
25055
25056	// NullFields is a list of field names (e.g. "Code") to include in API
25057	// requests with the JSON null value. By default, fields with empty
25058	// values are omitted from API requests. However, any field with an
25059	// empty value appearing in NullFields will be sent to the server as
25060	// null. It is an error if a field in this list has a non-empty value.
25061	// This may be used to include null fields in Patch requests.
25062	NullFields []string `json:"-"`
25063}
25064
25065func (s *NetworkEndpointGroupListWarning) MarshalJSON() ([]byte, error) {
25066	type NoMethod NetworkEndpointGroupListWarning
25067	raw := NoMethod(*s)
25068	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25069}
25070
25071type NetworkEndpointGroupListWarningData struct {
25072	// Key: [Output Only] A key that provides more detail on the warning
25073	// being returned. For example, for warnings where there are no results
25074	// in a list request for a particular zone, this key might be scope and
25075	// the key value might be the zone name. Other examples might be a key
25076	// indicating a deprecated resource and a suggested replacement, or a
25077	// warning about invalid network settings (for example, if an instance
25078	// attempts to perform IP forwarding but is not enabled for IP
25079	// forwarding).
25080	Key string `json:"key,omitempty"`
25081
25082	// Value: [Output Only] A warning data value corresponding to the key.
25083	Value string `json:"value,omitempty"`
25084
25085	// ForceSendFields is a list of field names (e.g. "Key") to
25086	// unconditionally include in API requests. By default, fields with
25087	// empty or default values are omitted from API requests. However, any
25088	// non-pointer, non-interface field appearing in ForceSendFields will be
25089	// sent to the server regardless of whether the field is empty or not.
25090	// This may be used to include empty fields in Patch requests.
25091	ForceSendFields []string `json:"-"`
25092
25093	// NullFields is a list of field names (e.g. "Key") to include in API
25094	// requests with the JSON null value. By default, fields with empty
25095	// values are omitted from API requests. However, any field with an
25096	// empty value appearing in NullFields will be sent to the server as
25097	// null. It is an error if a field in this list has a non-empty value.
25098	// This may be used to include null fields in Patch requests.
25099	NullFields []string `json:"-"`
25100}
25101
25102func (s *NetworkEndpointGroupListWarningData) MarshalJSON() ([]byte, error) {
25103	type NoMethod NetworkEndpointGroupListWarningData
25104	raw := NoMethod(*s)
25105	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25106}
25107
25108type NetworkEndpointGroupsAttachEndpointsRequest struct {
25109	// NetworkEndpoints: The list of network endpoints to be attached.
25110	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
25111
25112	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
25113	// unconditionally include in API requests. By default, fields with
25114	// empty or default values are omitted from API requests. However, any
25115	// non-pointer, non-interface field appearing in ForceSendFields will be
25116	// sent to the server regardless of whether the field is empty or not.
25117	// This may be used to include empty fields in Patch requests.
25118	ForceSendFields []string `json:"-"`
25119
25120	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
25121	// include in API requests with the JSON null value. By default, fields
25122	// with empty values are omitted from API requests. However, any field
25123	// with an empty value appearing in NullFields will be sent to the
25124	// server as null. It is an error if a field in this list has a
25125	// non-empty value. This may be used to include null fields in Patch
25126	// requests.
25127	NullFields []string `json:"-"`
25128}
25129
25130func (s *NetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) {
25131	type NoMethod NetworkEndpointGroupsAttachEndpointsRequest
25132	raw := NoMethod(*s)
25133	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25134}
25135
25136type NetworkEndpointGroupsDetachEndpointsRequest struct {
25137	// NetworkEndpoints: The list of network endpoints to be detached.
25138	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
25139
25140	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
25141	// unconditionally include in API requests. By default, fields with
25142	// empty or default values are omitted from API requests. However, any
25143	// non-pointer, non-interface field appearing in ForceSendFields will be
25144	// sent to the server regardless of whether the field is empty or not.
25145	// This may be used to include empty fields in Patch requests.
25146	ForceSendFields []string `json:"-"`
25147
25148	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
25149	// include in API requests with the JSON null value. By default, fields
25150	// with empty values are omitted from API requests. However, any field
25151	// with an empty value appearing in NullFields will be sent to the
25152	// server as null. It is an error if a field in this list has a
25153	// non-empty value. This may be used to include null fields in Patch
25154	// requests.
25155	NullFields []string `json:"-"`
25156}
25157
25158func (s *NetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) {
25159	type NoMethod NetworkEndpointGroupsDetachEndpointsRequest
25160	raw := NoMethod(*s)
25161	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25162}
25163
25164type NetworkEndpointGroupsListEndpointsRequest struct {
25165	// HealthStatus: Optional query parameter for showing the health status
25166	// of each network endpoint. Valid options are SKIP or SHOW. If you
25167	// don't specify this parameter, the health status of network endpoints
25168	// will not be provided.
25169	//
25170	// Possible values:
25171	//   "SHOW" - Show the health status for each network endpoint. Impacts
25172	// latency of the call.
25173	//   "SKIP" - Health status for network endpoints will not be provided.
25174	HealthStatus string `json:"healthStatus,omitempty"`
25175
25176	// ForceSendFields is a list of field names (e.g. "HealthStatus") to
25177	// unconditionally include in API requests. By default, fields with
25178	// empty or default values are omitted from API requests. However, any
25179	// non-pointer, non-interface field appearing in ForceSendFields will be
25180	// sent to the server regardless of whether the field is empty or not.
25181	// This may be used to include empty fields in Patch requests.
25182	ForceSendFields []string `json:"-"`
25183
25184	// NullFields is a list of field names (e.g. "HealthStatus") to include
25185	// in API requests with the JSON null value. By default, fields with
25186	// empty values are omitted from API requests. However, any field with
25187	// an empty value appearing in NullFields will be sent to the server as
25188	// null. It is an error if a field in this list has a non-empty value.
25189	// This may be used to include null fields in Patch requests.
25190	NullFields []string `json:"-"`
25191}
25192
25193func (s *NetworkEndpointGroupsListEndpointsRequest) MarshalJSON() ([]byte, error) {
25194	type NoMethod NetworkEndpointGroupsListEndpointsRequest
25195	raw := NoMethod(*s)
25196	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25197}
25198
25199type NetworkEndpointGroupsListNetworkEndpoints struct {
25200	// Id: [Output Only] Unique identifier for the resource; defined by the
25201	// server.
25202	Id string `json:"id,omitempty"`
25203
25204	// Items: A list of NetworkEndpointWithHealthStatus resources.
25205	Items []*NetworkEndpointWithHealthStatus `json:"items,omitempty"`
25206
25207	// Kind: [Output Only] The resource type, which is always
25208	// compute#networkEndpointGroupsListNetworkEndpoints for the list of
25209	// network endpoints in the specified network endpoint group.
25210	Kind string `json:"kind,omitempty"`
25211
25212	// NextPageToken: [Output Only] This token allows you to get the next
25213	// page of results for list requests. If the number of results is larger
25214	// than maxResults, use the nextPageToken as a value for the query
25215	// parameter pageToken in the next list request. Subsequent list
25216	// requests will have their own nextPageToken to continue paging through
25217	// the results.
25218	NextPageToken string `json:"nextPageToken,omitempty"`
25219
25220	// Warning: [Output Only] Informational warning message.
25221	Warning *NetworkEndpointGroupsListNetworkEndpointsWarning `json:"warning,omitempty"`
25222
25223	// ServerResponse contains the HTTP response code and headers from the
25224	// server.
25225	googleapi.ServerResponse `json:"-"`
25226
25227	// ForceSendFields is a list of field names (e.g. "Id") to
25228	// unconditionally include in API requests. By default, fields with
25229	// empty or default values are omitted from API requests. However, any
25230	// non-pointer, non-interface field appearing in ForceSendFields will be
25231	// sent to the server regardless of whether the field is empty or not.
25232	// This may be used to include empty fields in Patch requests.
25233	ForceSendFields []string `json:"-"`
25234
25235	// NullFields is a list of field names (e.g. "Id") to include in API
25236	// requests with the JSON null value. By default, fields with empty
25237	// values are omitted from API requests. However, any field with an
25238	// empty value appearing in NullFields will be sent to the server as
25239	// null. It is an error if a field in this list has a non-empty value.
25240	// This may be used to include null fields in Patch requests.
25241	NullFields []string `json:"-"`
25242}
25243
25244func (s *NetworkEndpointGroupsListNetworkEndpoints) MarshalJSON() ([]byte, error) {
25245	type NoMethod NetworkEndpointGroupsListNetworkEndpoints
25246	raw := NoMethod(*s)
25247	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25248}
25249
25250// NetworkEndpointGroupsListNetworkEndpointsWarning: [Output Only]
25251// Informational warning message.
25252type NetworkEndpointGroupsListNetworkEndpointsWarning struct {
25253	// Code: [Output Only] A warning code, if applicable. For example,
25254	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25255	// the response.
25256	//
25257	// Possible values:
25258	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
25259	// changes made by a failed operation.
25260	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
25261	// created.
25262	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
25263	// resources has a type marked as deprecated
25264	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
25265	// that is larger than image size.
25266	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
25267	// resources has a type marked as experimental
25268	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
25269	// call
25270	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
25271	// overridden. Deprecated unused field.
25272	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
25273	// injected kernel, which is deprecated.
25274	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
25275	// exceedingly large number of resources
25276	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
25277	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
25278	// not assigned to an instance on the network.
25279	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
25280	// ip forward.
25281	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
25282	// refers to an instance that does not exist.
25283	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
25284	// URL refers to an instance that is not on the same network as the
25285	// route.
25286	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
25287	// have a status of RUNNING.
25288	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
25289	// continue the process despite the mentioned error.
25290	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
25291	// page.
25292	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
25293	// missing due to errors
25294	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
25295	// that requires a TOS they have not accepted.
25296	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
25297	// resource is in use.
25298	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
25299	// auto-delete could not be deleted because they were in use.
25300	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
25301	// ignored.
25302	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
25303	// instance group manager is valid as such, but its application does not
25304	// make a lot of sense, because it allows only single instance in
25305	// instance group.
25306	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
25307	// are present
25308	//   "UNREACHABLE" - A given scope cannot be reached.
25309	Code string `json:"code,omitempty"`
25310
25311	// Data: [Output Only] Metadata about this warning in key: value format.
25312	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
25313	// }
25314	Data []*NetworkEndpointGroupsListNetworkEndpointsWarningData `json:"data,omitempty"`
25315
25316	// Message: [Output Only] A human-readable description of the warning
25317	// code.
25318	Message string `json:"message,omitempty"`
25319
25320	// ForceSendFields is a list of field names (e.g. "Code") to
25321	// unconditionally include in API requests. By default, fields with
25322	// empty or default values are omitted from API requests. However, any
25323	// non-pointer, non-interface field appearing in ForceSendFields will be
25324	// sent to the server regardless of whether the field is empty or not.
25325	// This may be used to include empty fields in Patch requests.
25326	ForceSendFields []string `json:"-"`
25327
25328	// NullFields is a list of field names (e.g. "Code") to include in API
25329	// requests with the JSON null value. By default, fields with empty
25330	// values are omitted from API requests. However, any field with an
25331	// empty value appearing in NullFields will be sent to the server as
25332	// null. It is an error if a field in this list has a non-empty value.
25333	// This may be used to include null fields in Patch requests.
25334	NullFields []string `json:"-"`
25335}
25336
25337func (s *NetworkEndpointGroupsListNetworkEndpointsWarning) MarshalJSON() ([]byte, error) {
25338	type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarning
25339	raw := NoMethod(*s)
25340	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25341}
25342
25343type NetworkEndpointGroupsListNetworkEndpointsWarningData struct {
25344	// Key: [Output Only] A key that provides more detail on the warning
25345	// being returned. For example, for warnings where there are no results
25346	// in a list request for a particular zone, this key might be scope and
25347	// the key value might be the zone name. Other examples might be a key
25348	// indicating a deprecated resource and a suggested replacement, or a
25349	// warning about invalid network settings (for example, if an instance
25350	// attempts to perform IP forwarding but is not enabled for IP
25351	// forwarding).
25352	Key string `json:"key,omitempty"`
25353
25354	// Value: [Output Only] A warning data value corresponding to the key.
25355	Value string `json:"value,omitempty"`
25356
25357	// ForceSendFields is a list of field names (e.g. "Key") to
25358	// unconditionally include in API requests. By default, fields with
25359	// empty or default values are omitted from API requests. However, any
25360	// non-pointer, non-interface field appearing in ForceSendFields will be
25361	// sent to the server regardless of whether the field is empty or not.
25362	// This may be used to include empty fields in Patch requests.
25363	ForceSendFields []string `json:"-"`
25364
25365	// NullFields is a list of field names (e.g. "Key") to include in API
25366	// requests with the JSON null value. By default, fields with empty
25367	// values are omitted from API requests. However, any field with an
25368	// empty value appearing in NullFields will be sent to the server as
25369	// null. It is an error if a field in this list has a non-empty value.
25370	// This may be used to include null fields in Patch requests.
25371	NullFields []string `json:"-"`
25372}
25373
25374func (s *NetworkEndpointGroupsListNetworkEndpointsWarningData) MarshalJSON() ([]byte, error) {
25375	type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarningData
25376	raw := NoMethod(*s)
25377	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25378}
25379
25380type NetworkEndpointGroupsScopedList struct {
25381	// NetworkEndpointGroups: [Output Only] The list of network endpoint
25382	// groups that are contained in this scope.
25383	NetworkEndpointGroups []*NetworkEndpointGroup `json:"networkEndpointGroups,omitempty"`
25384
25385	// Warning: [Output Only] An informational warning that replaces the
25386	// list of network endpoint groups when the list is empty.
25387	Warning *NetworkEndpointGroupsScopedListWarning `json:"warning,omitempty"`
25388
25389	// ForceSendFields is a list of field names (e.g.
25390	// "NetworkEndpointGroups") to unconditionally include in API requests.
25391	// By default, fields with empty or default values are omitted from API
25392	// requests. However, any non-pointer, non-interface field appearing in
25393	// ForceSendFields will be sent to the server regardless of whether the
25394	// field is empty or not. This may be used to include empty fields in
25395	// Patch requests.
25396	ForceSendFields []string `json:"-"`
25397
25398	// NullFields is a list of field names (e.g. "NetworkEndpointGroups") to
25399	// include in API requests with the JSON null value. By default, fields
25400	// with empty values are omitted from API requests. However, any field
25401	// with an empty value appearing in NullFields will be sent to the
25402	// server as null. It is an error if a field in this list has a
25403	// non-empty value. This may be used to include null fields in Patch
25404	// requests.
25405	NullFields []string `json:"-"`
25406}
25407
25408func (s *NetworkEndpointGroupsScopedList) MarshalJSON() ([]byte, error) {
25409	type NoMethod NetworkEndpointGroupsScopedList
25410	raw := NoMethod(*s)
25411	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25412}
25413
25414// NetworkEndpointGroupsScopedListWarning: [Output Only] An
25415// informational warning that replaces the list of network endpoint
25416// groups when the list is empty.
25417type NetworkEndpointGroupsScopedListWarning struct {
25418	// Code: [Output Only] A warning code, if applicable. For example,
25419	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25420	// the response.
25421	//
25422	// Possible values:
25423	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
25424	// changes made by a failed operation.
25425	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
25426	// created.
25427	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
25428	// resources has a type marked as deprecated
25429	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
25430	// that is larger than image size.
25431	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
25432	// resources has a type marked as experimental
25433	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
25434	// call
25435	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
25436	// overridden. Deprecated unused field.
25437	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
25438	// injected kernel, which is deprecated.
25439	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
25440	// exceedingly large number of resources
25441	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
25442	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
25443	// not assigned to an instance on the network.
25444	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
25445	// ip forward.
25446	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
25447	// refers to an instance that does not exist.
25448	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
25449	// URL refers to an instance that is not on the same network as the
25450	// route.
25451	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
25452	// have a status of RUNNING.
25453	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
25454	// continue the process despite the mentioned error.
25455	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
25456	// page.
25457	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
25458	// missing due to errors
25459	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
25460	// that requires a TOS they have not accepted.
25461	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
25462	// resource is in use.
25463	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
25464	// auto-delete could not be deleted because they were in use.
25465	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
25466	// ignored.
25467	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
25468	// instance group manager is valid as such, but its application does not
25469	// make a lot of sense, because it allows only single instance in
25470	// instance group.
25471	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
25472	// are present
25473	//   "UNREACHABLE" - A given scope cannot be reached.
25474	Code string `json:"code,omitempty"`
25475
25476	// Data: [Output Only] Metadata about this warning in key: value format.
25477	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
25478	// }
25479	Data []*NetworkEndpointGroupsScopedListWarningData `json:"data,omitempty"`
25480
25481	// Message: [Output Only] A human-readable description of the warning
25482	// code.
25483	Message string `json:"message,omitempty"`
25484
25485	// ForceSendFields is a list of field names (e.g. "Code") to
25486	// unconditionally include in API requests. By default, fields with
25487	// empty or default values are omitted from API requests. However, any
25488	// non-pointer, non-interface field appearing in ForceSendFields will be
25489	// sent to the server regardless of whether the field is empty or not.
25490	// This may be used to include empty fields in Patch requests.
25491	ForceSendFields []string `json:"-"`
25492
25493	// NullFields is a list of field names (e.g. "Code") to include in API
25494	// requests with the JSON null value. By default, fields with empty
25495	// values are omitted from API requests. However, any field with an
25496	// empty value appearing in NullFields will be sent to the server as
25497	// null. It is an error if a field in this list has a non-empty value.
25498	// This may be used to include null fields in Patch requests.
25499	NullFields []string `json:"-"`
25500}
25501
25502func (s *NetworkEndpointGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
25503	type NoMethod NetworkEndpointGroupsScopedListWarning
25504	raw := NoMethod(*s)
25505	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25506}
25507
25508type NetworkEndpointGroupsScopedListWarningData struct {
25509	// Key: [Output Only] A key that provides more detail on the warning
25510	// being returned. For example, for warnings where there are no results
25511	// in a list request for a particular zone, this key might be scope and
25512	// the key value might be the zone name. Other examples might be a key
25513	// indicating a deprecated resource and a suggested replacement, or a
25514	// warning about invalid network settings (for example, if an instance
25515	// attempts to perform IP forwarding but is not enabled for IP
25516	// forwarding).
25517	Key string `json:"key,omitempty"`
25518
25519	// Value: [Output Only] A warning data value corresponding to the key.
25520	Value string `json:"value,omitempty"`
25521
25522	// ForceSendFields is a list of field names (e.g. "Key") to
25523	// unconditionally include in API requests. By default, fields with
25524	// empty or default values are omitted from API requests. However, any
25525	// non-pointer, non-interface field appearing in ForceSendFields will be
25526	// sent to the server regardless of whether the field is empty or not.
25527	// This may be used to include empty fields in Patch requests.
25528	ForceSendFields []string `json:"-"`
25529
25530	// NullFields is a list of field names (e.g. "Key") to include in API
25531	// requests with the JSON null value. By default, fields with empty
25532	// values are omitted from API requests. However, any field with an
25533	// empty value appearing in NullFields will be sent to the server as
25534	// null. It is an error if a field in this list has a non-empty value.
25535	// This may be used to include null fields in Patch requests.
25536	NullFields []string `json:"-"`
25537}
25538
25539func (s *NetworkEndpointGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
25540	type NoMethod NetworkEndpointGroupsScopedListWarningData
25541	raw := NoMethod(*s)
25542	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25543}
25544
25545type NetworkEndpointWithHealthStatus struct {
25546	// Healths: [Output only] The health status of network endpoint;
25547	Healths []*HealthStatusForNetworkEndpoint `json:"healths,omitempty"`
25548
25549	// NetworkEndpoint: [Output only] The network endpoint;
25550	NetworkEndpoint *NetworkEndpoint `json:"networkEndpoint,omitempty"`
25551
25552	// ForceSendFields is a list of field names (e.g. "Healths") to
25553	// unconditionally include in API requests. By default, fields with
25554	// empty or default values are omitted from API requests. However, any
25555	// non-pointer, non-interface field appearing in ForceSendFields will be
25556	// sent to the server regardless of whether the field is empty or not.
25557	// This may be used to include empty fields in Patch requests.
25558	ForceSendFields []string `json:"-"`
25559
25560	// NullFields is a list of field names (e.g. "Healths") to include in
25561	// API requests with the JSON null value. By default, fields with empty
25562	// values are omitted from API requests. However, any field with an
25563	// empty value appearing in NullFields will be sent to the server as
25564	// null. It is an error if a field in this list has a non-empty value.
25565	// This may be used to include null fields in Patch requests.
25566	NullFields []string `json:"-"`
25567}
25568
25569func (s *NetworkEndpointWithHealthStatus) MarshalJSON() ([]byte, error) {
25570	type NoMethod NetworkEndpointWithHealthStatus
25571	raw := NoMethod(*s)
25572	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25573}
25574
25575// NetworkInterface: A network interface resource attached to an
25576// instance.
25577type NetworkInterface struct {
25578	// AccessConfigs: An array of configurations for this interface.
25579	// Currently, only one access config, ONE_TO_ONE_NAT, is supported. If
25580	// there are no accessConfigs specified, then this instance will have no
25581	// external internet access.
25582	AccessConfigs []*AccessConfig `json:"accessConfigs,omitempty"`
25583
25584	// AliasIpRanges: An array of alias IP ranges for this network
25585	// interface. You can only specify this field for network interfaces in
25586	// VPC networks.
25587	AliasIpRanges []*AliasIpRange `json:"aliasIpRanges,omitempty"`
25588
25589	// Fingerprint: Fingerprint hash of contents stored in this network
25590	// interface. This field will be ignored when inserting an Instance or
25591	// adding a NetworkInterface. An up-to-date fingerprint must be provided
25592	// in order to update the NetworkInterface. The request will fail with
25593	// error 400 Bad Request if the fingerprint is not provided, or 412
25594	// Precondition Failed if the fingerprint is out of date.
25595	Fingerprint string `json:"fingerprint,omitempty"`
25596
25597	// Ipv6AccessConfigs: An array of IPv6 access configurations for this
25598	// interface. Currently, only one IPv6 access config, DIRECT_IPV6, is
25599	// supported. If there is no ipv6AccessConfig specified, then this
25600	// instance will have no external IPv6 Internet access.
25601	Ipv6AccessConfigs []*AccessConfig `json:"ipv6AccessConfigs,omitempty"`
25602
25603	// Ipv6AccessType: [Output Only] One of EXTERNAL, INTERNAL to indicate
25604	// whether the IP can be accessed from the Internet. This field is
25605	// always inherited from its subnetwork. Valid only if stackType is
25606	// IPV4_IPV6.
25607	//
25608	// Possible values:
25609	//   "EXTERNAL" - This network interface can have external IPv6.
25610	//   "UNSPECIFIED_IPV6_ACCESS_TYPE" - IPv6 access type not set. Means
25611	// this network interface hasn't been turned on IPv6 yet.
25612	Ipv6AccessType string `json:"ipv6AccessType,omitempty"`
25613
25614	// Ipv6Address: [Output Only] An IPv6 internal network address for this
25615	// network interface.
25616	Ipv6Address string `json:"ipv6Address,omitempty"`
25617
25618	// Kind: [Output Only] Type of the resource. Always
25619	// compute#networkInterface for network interfaces.
25620	Kind string `json:"kind,omitempty"`
25621
25622	// Name: [Output Only] The name of the network interface, which is
25623	// generated by the server. For network devices, these are eth0, eth1,
25624	// etc.
25625	Name string `json:"name,omitempty"`
25626
25627	// Network: URL of the network resource for this instance. When creating
25628	// an instance, if neither the network nor the subnetwork is specified,
25629	// the default network global/networks/default is used; if the network
25630	// is not specified but the subnetwork is specified, the network is
25631	// inferred. If you specify this property, you can specify the network
25632	// as a full or partial URL. For example, the following are all valid
25633	// URLs: -
25634	// https://www.googleapis.com/compute/v1/projects/project/global/networks/
25635	// network - projects/project/global/networks/network -
25636	// global/networks/default
25637	Network string `json:"network,omitempty"`
25638
25639	// NetworkIP: An IPv4 internal IP address to assign to the instance for
25640	// this network interface. If not specified by the user, an unused
25641	// internal IP is assigned by the system.
25642	NetworkIP string `json:"networkIP,omitempty"`
25643
25644	// NicType: The type of vNIC to be used on this interface. This may be
25645	// gVNIC or VirtioNet.
25646	//
25647	// Possible values:
25648	//   "GVNIC" - GVNIC
25649	//   "UNSPECIFIED_NIC_TYPE" - No type specified.
25650	//   "VIRTIO_NET" - VIRTIO
25651	NicType string `json:"nicType,omitempty"`
25652
25653	// QueueCount: The networking queue count that's specified by users for
25654	// the network interface. Both Rx and Tx queues will be set to this
25655	// number. It'll be empty if not specified by the users.
25656	QueueCount int64 `json:"queueCount,omitempty"`
25657
25658	// StackType: The stack type for this network interface to identify
25659	// whether the IPv6 feature is enabled or not. If not specified,
25660	// IPV4_ONLY will be used. This field can be both set at instance
25661	// creation and update network interface operations.
25662	//
25663	// Possible values:
25664	//   "IPV4_IPV6" - The network interface can have both IPv4 and IPv6
25665	// addresses.
25666	//   "IPV4_ONLY" - The network interface will be assigned IPv4 address.
25667	//   "UNSPECIFIED_STACK_TYPE"
25668	StackType string `json:"stackType,omitempty"`
25669
25670	// Subnetwork: The URL of the Subnetwork resource for this instance. If
25671	// the network resource is in legacy mode, do not specify this field. If
25672	// the network is in auto subnet mode, specifying the subnetwork is
25673	// optional. If the network is in custom subnet mode, specifying the
25674	// subnetwork is required. If you specify this field, you can specify
25675	// the subnetwork as a full or partial URL. For example, the following
25676	// are all valid URLs: -
25677	// https://www.googleapis.com/compute/v1/projects/project/regions/region
25678	// /subnetworks/subnetwork - regions/region/subnetworks/subnetwork
25679	Subnetwork string `json:"subnetwork,omitempty"`
25680
25681	// ForceSendFields is a list of field names (e.g. "AccessConfigs") to
25682	// unconditionally include in API requests. By default, fields with
25683	// empty or default values are omitted from API requests. However, any
25684	// non-pointer, non-interface field appearing in ForceSendFields will be
25685	// sent to the server regardless of whether the field is empty or not.
25686	// This may be used to include empty fields in Patch requests.
25687	ForceSendFields []string `json:"-"`
25688
25689	// NullFields is a list of field names (e.g. "AccessConfigs") to include
25690	// in API requests with the JSON null value. By default, fields with
25691	// empty values are omitted from API requests. However, any field with
25692	// an empty value appearing in NullFields will be sent to the server as
25693	// null. It is an error if a field in this list has a non-empty value.
25694	// This may be used to include null fields in Patch requests.
25695	NullFields []string `json:"-"`
25696}
25697
25698func (s *NetworkInterface) MarshalJSON() ([]byte, error) {
25699	type NoMethod NetworkInterface
25700	raw := NoMethod(*s)
25701	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25702}
25703
25704// NetworkList: Contains a list of networks.
25705type NetworkList struct {
25706	// Id: [Output Only] Unique identifier for the resource; defined by the
25707	// server.
25708	Id string `json:"id,omitempty"`
25709
25710	// Items: A list of Network resources.
25711	Items []*Network `json:"items,omitempty"`
25712
25713	// Kind: [Output Only] Type of resource. Always compute#networkList for
25714	// lists of networks.
25715	Kind string `json:"kind,omitempty"`
25716
25717	// NextPageToken: [Output Only] This token allows you to get the next
25718	// page of results for list requests. If the number of results is larger
25719	// than maxResults, use the nextPageToken as a value for the query
25720	// parameter pageToken in the next list request. Subsequent list
25721	// requests will have their own nextPageToken to continue paging through
25722	// the results.
25723	NextPageToken string `json:"nextPageToken,omitempty"`
25724
25725	// SelfLink: [Output Only] Server-defined URL for this resource.
25726	SelfLink string `json:"selfLink,omitempty"`
25727
25728	// Warning: [Output Only] Informational warning message.
25729	Warning *NetworkListWarning `json:"warning,omitempty"`
25730
25731	// ServerResponse contains the HTTP response code and headers from the
25732	// server.
25733	googleapi.ServerResponse `json:"-"`
25734
25735	// ForceSendFields is a list of field names (e.g. "Id") to
25736	// unconditionally include in API requests. By default, fields with
25737	// empty or default values are omitted from API requests. However, any
25738	// non-pointer, non-interface field appearing in ForceSendFields will be
25739	// sent to the server regardless of whether the field is empty or not.
25740	// This may be used to include empty fields in Patch requests.
25741	ForceSendFields []string `json:"-"`
25742
25743	// NullFields is a list of field names (e.g. "Id") to include in API
25744	// requests with the JSON null value. By default, fields with empty
25745	// values are omitted from API requests. However, any field with an
25746	// empty value appearing in NullFields will be sent to the server as
25747	// null. It is an error if a field in this list has a non-empty value.
25748	// This may be used to include null fields in Patch requests.
25749	NullFields []string `json:"-"`
25750}
25751
25752func (s *NetworkList) MarshalJSON() ([]byte, error) {
25753	type NoMethod NetworkList
25754	raw := NoMethod(*s)
25755	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25756}
25757
25758// NetworkListWarning: [Output Only] Informational warning message.
25759type NetworkListWarning struct {
25760	// Code: [Output Only] A warning code, if applicable. For example,
25761	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25762	// the response.
25763	//
25764	// Possible values:
25765	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
25766	// changes made by a failed operation.
25767	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
25768	// created.
25769	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
25770	// resources has a type marked as deprecated
25771	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
25772	// that is larger than image size.
25773	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
25774	// resources has a type marked as experimental
25775	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
25776	// call
25777	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
25778	// overridden. Deprecated unused field.
25779	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
25780	// injected kernel, which is deprecated.
25781	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
25782	// exceedingly large number of resources
25783	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
25784	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
25785	// not assigned to an instance on the network.
25786	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
25787	// ip forward.
25788	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
25789	// refers to an instance that does not exist.
25790	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
25791	// URL refers to an instance that is not on the same network as the
25792	// route.
25793	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
25794	// have a status of RUNNING.
25795	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
25796	// continue the process despite the mentioned error.
25797	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
25798	// page.
25799	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
25800	// missing due to errors
25801	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
25802	// that requires a TOS they have not accepted.
25803	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
25804	// resource is in use.
25805	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
25806	// auto-delete could not be deleted because they were in use.
25807	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
25808	// ignored.
25809	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
25810	// instance group manager is valid as such, but its application does not
25811	// make a lot of sense, because it allows only single instance in
25812	// instance group.
25813	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
25814	// are present
25815	//   "UNREACHABLE" - A given scope cannot be reached.
25816	Code string `json:"code,omitempty"`
25817
25818	// Data: [Output Only] Metadata about this warning in key: value format.
25819	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
25820	// }
25821	Data []*NetworkListWarningData `json:"data,omitempty"`
25822
25823	// Message: [Output Only] A human-readable description of the warning
25824	// code.
25825	Message string `json:"message,omitempty"`
25826
25827	// ForceSendFields is a list of field names (e.g. "Code") to
25828	// unconditionally include in API requests. By default, fields with
25829	// empty or default values are omitted from API requests. However, any
25830	// non-pointer, non-interface field appearing in ForceSendFields will be
25831	// sent to the server regardless of whether the field is empty or not.
25832	// This may be used to include empty fields in Patch requests.
25833	ForceSendFields []string `json:"-"`
25834
25835	// NullFields is a list of field names (e.g. "Code") to include in API
25836	// requests with the JSON null value. By default, fields with empty
25837	// values are omitted from API requests. However, any field with an
25838	// empty value appearing in NullFields will be sent to the server as
25839	// null. It is an error if a field in this list has a non-empty value.
25840	// This may be used to include null fields in Patch requests.
25841	NullFields []string `json:"-"`
25842}
25843
25844func (s *NetworkListWarning) MarshalJSON() ([]byte, error) {
25845	type NoMethod NetworkListWarning
25846	raw := NoMethod(*s)
25847	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25848}
25849
25850type NetworkListWarningData struct {
25851	// Key: [Output Only] A key that provides more detail on the warning
25852	// being returned. For example, for warnings where there are no results
25853	// in a list request for a particular zone, this key might be scope and
25854	// the key value might be the zone name. Other examples might be a key
25855	// indicating a deprecated resource and a suggested replacement, or a
25856	// warning about invalid network settings (for example, if an instance
25857	// attempts to perform IP forwarding but is not enabled for IP
25858	// forwarding).
25859	Key string `json:"key,omitempty"`
25860
25861	// Value: [Output Only] A warning data value corresponding to the key.
25862	Value string `json:"value,omitempty"`
25863
25864	// ForceSendFields is a list of field names (e.g. "Key") to
25865	// unconditionally include in API requests. By default, fields with
25866	// empty or default values are omitted from API requests. However, any
25867	// non-pointer, non-interface field appearing in ForceSendFields will be
25868	// sent to the server regardless of whether the field is empty or not.
25869	// This may be used to include empty fields in Patch requests.
25870	ForceSendFields []string `json:"-"`
25871
25872	// NullFields is a list of field names (e.g. "Key") to include in API
25873	// requests with the JSON null value. By default, fields with empty
25874	// values are omitted from API requests. However, any field with an
25875	// empty value appearing in NullFields will be sent to the server as
25876	// null. It is an error if a field in this list has a non-empty value.
25877	// This may be used to include null fields in Patch requests.
25878	NullFields []string `json:"-"`
25879}
25880
25881func (s *NetworkListWarningData) MarshalJSON() ([]byte, error) {
25882	type NoMethod NetworkListWarningData
25883	raw := NoMethod(*s)
25884	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25885}
25886
25887// NetworkPeering: A network peering attached to a network resource. The
25888// message includes the peering name, peer network, peering state, and a
25889// flag indicating whether Google Compute Engine should automatically
25890// create routes for the peering.
25891type NetworkPeering struct {
25892	// AutoCreateRoutes: This field will be deprecated soon. Use the
25893	// exchange_subnet_routes field instead. Indicates whether full mesh
25894	// connectivity is created and managed automatically between peered
25895	// networks. Currently this field should always be true since Google
25896	// Compute Engine will automatically create and manage subnetwork routes
25897	// between two networks when peering state is ACTIVE.
25898	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
25899
25900	// ExchangeSubnetRoutes: Indicates whether full mesh connectivity is
25901	// created and managed automatically between peered networks. Currently
25902	// this field should always be true since Google Compute Engine will
25903	// automatically create and manage subnetwork routes between two
25904	// networks when peering state is ACTIVE.
25905	ExchangeSubnetRoutes bool `json:"exchangeSubnetRoutes,omitempty"`
25906
25907	// ExportCustomRoutes: Whether to export the custom routes to peer
25908	// network.
25909	ExportCustomRoutes bool `json:"exportCustomRoutes,omitempty"`
25910
25911	// ExportSubnetRoutesWithPublicIp: Whether subnet routes with public IP
25912	// range are exported. The default value is true, all subnet routes are
25913	// exported. IPv4 special-use ranges are always exported to peers and
25914	// are not controlled by this field.
25915	ExportSubnetRoutesWithPublicIp bool `json:"exportSubnetRoutesWithPublicIp,omitempty"`
25916
25917	// ImportCustomRoutes: Whether to import the custom routes from peer
25918	// network.
25919	ImportCustomRoutes bool `json:"importCustomRoutes,omitempty"`
25920
25921	// ImportSubnetRoutesWithPublicIp: Whether subnet routes with public IP
25922	// range are imported. The default value is false. IPv4 special-use
25923	// ranges are always imported from peers and are not controlled by this
25924	// field.
25925	ImportSubnetRoutesWithPublicIp bool `json:"importSubnetRoutesWithPublicIp,omitempty"`
25926
25927	// Name: Name of this peering. Provided by the client when the peering
25928	// is created. The name must comply with RFC1035. Specifically, the name
25929	// must be 1-63 characters long and match regular expression
25930	// `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase
25931	// letter, and all the following characters must be a dash, lowercase
25932	// letter, or digit, except the last character, which cannot be a dash.
25933	Name string `json:"name,omitempty"`
25934
25935	// Network: The URL of the peer network. It can be either full URL or
25936	// partial URL. The peer network may belong to a different project. If
25937	// the partial URL does not contain project, it is assumed that the peer
25938	// network is in the same project as the current network.
25939	Network string `json:"network,omitempty"`
25940
25941	// PeerMtu: Maximum Transmission Unit in bytes.
25942	PeerMtu int64 `json:"peerMtu,omitempty"`
25943
25944	// State: [Output Only] State for the peering, either `ACTIVE` or
25945	// `INACTIVE`. The peering is `ACTIVE` when there's a matching
25946	// configuration in the peer network.
25947	//
25948	// Possible values:
25949	//   "ACTIVE" - Matching configuration exists on the peer.
25950	//   "INACTIVE" - There is no matching configuration on the peer,
25951	// including the case when peer does not exist.
25952	State string `json:"state,omitempty"`
25953
25954	// StateDetails: [Output Only] Details about the current state of the
25955	// peering.
25956	StateDetails string `json:"stateDetails,omitempty"`
25957
25958	// ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to
25959	// unconditionally include in API requests. By default, fields with
25960	// empty or default values are omitted from API requests. However, any
25961	// non-pointer, non-interface field appearing in ForceSendFields will be
25962	// sent to the server regardless of whether the field is empty or not.
25963	// This may be used to include empty fields in Patch requests.
25964	ForceSendFields []string `json:"-"`
25965
25966	// NullFields is a list of field names (e.g. "AutoCreateRoutes") to
25967	// include in API requests with the JSON null value. By default, fields
25968	// with empty values are omitted from API requests. However, any field
25969	// with an empty value appearing in NullFields will be sent to the
25970	// server as null. It is an error if a field in this list has a
25971	// non-empty value. This may be used to include null fields in Patch
25972	// requests.
25973	NullFields []string `json:"-"`
25974}
25975
25976func (s *NetworkPeering) MarshalJSON() ([]byte, error) {
25977	type NoMethod NetworkPeering
25978	raw := NoMethod(*s)
25979	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25980}
25981
25982// NetworkRoutingConfig: A routing configuration attached to a network
25983// resource. The message includes the list of routers associated with
25984// the network, and a flag indicating the type of routing behavior to
25985// enforce network-wide.
25986type NetworkRoutingConfig struct {
25987	// RoutingMode: The network-wide routing mode to use. If set to
25988	// REGIONAL, this network's Cloud Routers will only advertise routes
25989	// with subnets of this network in the same region as the router. If set
25990	// to GLOBAL, this network's Cloud Routers will advertise routes with
25991	// all subnets of this network, across regions.
25992	//
25993	// Possible values:
25994	//   "GLOBAL"
25995	//   "REGIONAL"
25996	RoutingMode string `json:"routingMode,omitempty"`
25997
25998	// ForceSendFields is a list of field names (e.g. "RoutingMode") to
25999	// unconditionally include in API requests. By default, fields with
26000	// empty or default values are omitted from API requests. However, any
26001	// non-pointer, non-interface field appearing in ForceSendFields will be
26002	// sent to the server regardless of whether the field is empty or not.
26003	// This may be used to include empty fields in Patch requests.
26004	ForceSendFields []string `json:"-"`
26005
26006	// NullFields is a list of field names (e.g. "RoutingMode") to include
26007	// in API requests with the JSON null value. By default, fields with
26008	// empty values are omitted from API requests. However, any field with
26009	// an empty value appearing in NullFields will be sent to the server as
26010	// null. It is an error if a field in this list has a non-empty value.
26011	// This may be used to include null fields in Patch requests.
26012	NullFields []string `json:"-"`
26013}
26014
26015func (s *NetworkRoutingConfig) MarshalJSON() ([]byte, error) {
26016	type NoMethod NetworkRoutingConfig
26017	raw := NoMethod(*s)
26018	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26019}
26020
26021type NetworksAddPeeringRequest struct {
26022	// AutoCreateRoutes: This field will be deprecated soon. Use
26023	// exchange_subnet_routes in network_peering instead. Indicates whether
26024	// full mesh connectivity is created and managed automatically between
26025	// peered networks. Currently this field should always be true since
26026	// Google Compute Engine will automatically create and manage subnetwork
26027	// routes between two networks when peering state is ACTIVE.
26028	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
26029
26030	// Name: Name of the peering, which should conform to RFC1035.
26031	Name string `json:"name,omitempty"`
26032
26033	// NetworkPeering: Network peering parameters. In order to specify route
26034	// policies for peering using import and export custom routes, you must
26035	// specify all peering related parameters (name, peer network,
26036	// exchange_subnet_routes) in the network_peering field. The
26037	// corresponding fields in NetworksAddPeeringRequest will be deprecated
26038	// soon.
26039	NetworkPeering *NetworkPeering `json:"networkPeering,omitempty"`
26040
26041	// PeerNetwork: URL of the peer network. It can be either full URL or
26042	// partial URL. The peer network may belong to a different project. If
26043	// the partial URL does not contain project, it is assumed that the peer
26044	// network is in the same project as the current network.
26045	PeerNetwork string `json:"peerNetwork,omitempty"`
26046
26047	// ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to
26048	// unconditionally include in API requests. By default, fields with
26049	// empty or default values are omitted from API requests. However, any
26050	// non-pointer, non-interface field appearing in ForceSendFields will be
26051	// sent to the server regardless of whether the field is empty or not.
26052	// This may be used to include empty fields in Patch requests.
26053	ForceSendFields []string `json:"-"`
26054
26055	// NullFields is a list of field names (e.g. "AutoCreateRoutes") to
26056	// include in API requests with the JSON null value. By default, fields
26057	// with empty values are omitted from API requests. However, any field
26058	// with an empty value appearing in NullFields will be sent to the
26059	// server as null. It is an error if a field in this list has a
26060	// non-empty value. This may be used to include null fields in Patch
26061	// requests.
26062	NullFields []string `json:"-"`
26063}
26064
26065func (s *NetworksAddPeeringRequest) MarshalJSON() ([]byte, error) {
26066	type NoMethod NetworksAddPeeringRequest
26067	raw := NoMethod(*s)
26068	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26069}
26070
26071type NetworksGetEffectiveFirewallsResponse struct {
26072	// FirewallPolicys: Effective firewalls from firewall policy.
26073	FirewallPolicys []*NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy `json:"firewallPolicys,omitempty"`
26074
26075	// Firewalls: Effective firewalls on the network.
26076	Firewalls []*Firewall `json:"firewalls,omitempty"`
26077
26078	// ServerResponse contains the HTTP response code and headers from the
26079	// server.
26080	googleapi.ServerResponse `json:"-"`
26081
26082	// ForceSendFields is a list of field names (e.g. "FirewallPolicys") to
26083	// unconditionally include in API requests. By default, fields with
26084	// empty or default values are omitted from API requests. However, any
26085	// non-pointer, non-interface field appearing in ForceSendFields will be
26086	// sent to the server regardless of whether the field is empty or not.
26087	// This may be used to include empty fields in Patch requests.
26088	ForceSendFields []string `json:"-"`
26089
26090	// NullFields is a list of field names (e.g. "FirewallPolicys") to
26091	// include in API requests with the JSON null value. By default, fields
26092	// with empty values are omitted from API requests. However, any field
26093	// with an empty value appearing in NullFields will be sent to the
26094	// server as null. It is an error if a field in this list has a
26095	// non-empty value. This may be used to include null fields in Patch
26096	// requests.
26097	NullFields []string `json:"-"`
26098}
26099
26100func (s *NetworksGetEffectiveFirewallsResponse) MarshalJSON() ([]byte, error) {
26101	type NoMethod NetworksGetEffectiveFirewallsResponse
26102	raw := NoMethod(*s)
26103	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26104}
26105
26106type NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy struct {
26107	// DisplayName: [Output Only] Deprecated, please use short name instead.
26108	// The display name of the firewall policy.
26109	DisplayName string `json:"displayName,omitempty"`
26110
26111	// Name: [Output Only] The name of the firewall policy.
26112	Name string `json:"name,omitempty"`
26113
26114	// Rules: The rules that apply to the network.
26115	Rules []*FirewallPolicyRule `json:"rules,omitempty"`
26116
26117	// ShortName: [Output Only] The short name of the firewall policy.
26118	ShortName string `json:"shortName,omitempty"`
26119
26120	// Type: [Output Only] The type of the firewall policy.
26121	//
26122	// Possible values:
26123	//   "HIERARCHY"
26124	//   "NETWORK"
26125	//   "UNSPECIFIED"
26126	Type string `json:"type,omitempty"`
26127
26128	// ForceSendFields is a list of field names (e.g. "DisplayName") to
26129	// unconditionally include in API requests. By default, fields with
26130	// empty or default values are omitted from API requests. However, any
26131	// non-pointer, non-interface field appearing in ForceSendFields will be
26132	// sent to the server regardless of whether the field is empty or not.
26133	// This may be used to include empty fields in Patch requests.
26134	ForceSendFields []string `json:"-"`
26135
26136	// NullFields is a list of field names (e.g. "DisplayName") to include
26137	// in API requests with the JSON null value. By default, fields with
26138	// empty values are omitted from API requests. However, any field with
26139	// an empty value appearing in NullFields will be sent to the server as
26140	// null. It is an error if a field in this list has a non-empty value.
26141	// This may be used to include null fields in Patch requests.
26142	NullFields []string `json:"-"`
26143}
26144
26145func (s *NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy) MarshalJSON() ([]byte, error) {
26146	type NoMethod NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy
26147	raw := NoMethod(*s)
26148	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26149}
26150
26151type NetworksRemovePeeringRequest struct {
26152	// Name: Name of the peering, which should conform to RFC1035.
26153	Name string `json:"name,omitempty"`
26154
26155	// ForceSendFields is a list of field names (e.g. "Name") to
26156	// unconditionally include in API requests. By default, fields with
26157	// empty or default values are omitted from API requests. However, any
26158	// non-pointer, non-interface field appearing in ForceSendFields will be
26159	// sent to the server regardless of whether the field is empty or not.
26160	// This may be used to include empty fields in Patch requests.
26161	ForceSendFields []string `json:"-"`
26162
26163	// NullFields is a list of field names (e.g. "Name") to include in API
26164	// requests with the JSON null value. By default, fields with empty
26165	// values are omitted from API requests. However, any field with an
26166	// empty value appearing in NullFields will be sent to the server as
26167	// null. It is an error if a field in this list has a non-empty value.
26168	// This may be used to include null fields in Patch requests.
26169	NullFields []string `json:"-"`
26170}
26171
26172func (s *NetworksRemovePeeringRequest) MarshalJSON() ([]byte, error) {
26173	type NoMethod NetworksRemovePeeringRequest
26174	raw := NoMethod(*s)
26175	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26176}
26177
26178type NetworksUpdatePeeringRequest struct {
26179	NetworkPeering *NetworkPeering `json:"networkPeering,omitempty"`
26180
26181	// ForceSendFields is a list of field names (e.g. "NetworkPeering") to
26182	// unconditionally include in API requests. By default, fields with
26183	// empty or default values are omitted from API requests. However, any
26184	// non-pointer, non-interface field appearing in ForceSendFields will be
26185	// sent to the server regardless of whether the field is empty or not.
26186	// This may be used to include empty fields in Patch requests.
26187	ForceSendFields []string `json:"-"`
26188
26189	// NullFields is a list of field names (e.g. "NetworkPeering") to
26190	// include in API requests with the JSON null value. By default, fields
26191	// with empty values are omitted from API requests. However, any field
26192	// with an empty value appearing in NullFields will be sent to the
26193	// server as null. It is an error if a field in this list has a
26194	// non-empty value. This may be used to include null fields in Patch
26195	// requests.
26196	NullFields []string `json:"-"`
26197}
26198
26199func (s *NetworksUpdatePeeringRequest) MarshalJSON() ([]byte, error) {
26200	type NoMethod NetworksUpdatePeeringRequest
26201	raw := NoMethod(*s)
26202	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26203}
26204
26205// NodeGroup: Represents a sole-tenant Node Group resource. A
26206// sole-tenant node is a physical server that is dedicated to hosting VM
26207// instances only for your specific project. Use sole-tenant nodes to
26208// keep your instances physically separated from instances in other
26209// projects, or to group your instances together on the same host
26210// hardware. For more information, read Sole-tenant nodes.
26211type NodeGroup struct {
26212	// AutoscalingPolicy: Specifies how autoscaling should behave.
26213	AutoscalingPolicy *NodeGroupAutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
26214
26215	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
26216	// format.
26217	CreationTimestamp string `json:"creationTimestamp,omitempty"`
26218
26219	// Description: An optional description of this resource. Provide this
26220	// property when you create the resource.
26221	Description string `json:"description,omitempty"`
26222
26223	Fingerprint string `json:"fingerprint,omitempty"`
26224
26225	// Id: [Output Only] The unique identifier for the resource. This
26226	// identifier is defined by the server.
26227	Id uint64 `json:"id,omitempty,string"`
26228
26229	// Kind: [Output Only] The type of the resource. Always
26230	// compute#nodeGroup for node group.
26231	Kind string `json:"kind,omitempty"`
26232
26233	// LocationHint: An opaque location hint used to place the Node close to
26234	// other resources. This field is for use by internal tools that use the
26235	// public API. The location hint here on the NodeGroup overrides any
26236	// location_hint present in the NodeTemplate.
26237	LocationHint string `json:"locationHint,omitempty"`
26238
26239	// MaintenancePolicy: Specifies how to handle instances when a node in
26240	// the group undergoes maintenance. Set to one of: DEFAULT,
26241	// RESTART_IN_PLACE, or MIGRATE_WITHIN_NODE_GROUP. The default value is
26242	// DEFAULT. For more information, see Maintenance policies.
26243	//
26244	// Possible values:
26245	//   "DEFAULT" - Allow the node and corresponding instances to retain
26246	// default maintenance behavior.
26247	//   "MAINTENANCE_POLICY_UNSPECIFIED"
26248	//   "MIGRATE_WITHIN_NODE_GROUP" - When maintenance must be done on a
26249	// node, the instances on that node will be moved to other nodes in the
26250	// group. Instances with onHostMaintenance = MIGRATE will live migrate
26251	// to their destinations while instances with onHostMaintenance =
26252	// TERMINATE will terminate and then restart on their destination nodes
26253	// if automaticRestart = true.
26254	//   "RESTART_IN_PLACE" - Instances in this group will restart on the
26255	// same node when maintenance has completed. Instances must have
26256	// onHostMaintenance = TERMINATE, and they will only restart if
26257	// automaticRestart = true.
26258	MaintenancePolicy string `json:"maintenancePolicy,omitempty"`
26259
26260	MaintenanceWindow *NodeGroupMaintenanceWindow `json:"maintenanceWindow,omitempty"`
26261
26262	// Name: The name of the resource, provided by the client when initially
26263	// creating the resource. The resource name must be 1-63 characters
26264	// long, and comply with RFC1035. Specifically, the name must be 1-63
26265	// characters long and match the regular expression
26266	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
26267	// a lowercase letter, and all following characters must be a dash,
26268	// lowercase letter, or digit, except the last character, which cannot
26269	// be a dash.
26270	Name string `json:"name,omitempty"`
26271
26272	// NodeTemplate: URL of the node template to create the node group from.
26273	NodeTemplate string `json:"nodeTemplate,omitempty"`
26274
26275	// SelfLink: [Output Only] Server-defined URL for the resource.
26276	SelfLink string `json:"selfLink,omitempty"`
26277
26278	// Size: [Output Only] The total number of nodes in the node group.
26279	Size int64 `json:"size,omitempty"`
26280
26281	// Possible values:
26282	//   "CREATING"
26283	//   "DELETING"
26284	//   "INVALID"
26285	//   "READY"
26286	Status string `json:"status,omitempty"`
26287
26288	// Zone: [Output Only] The name of the zone where the node group
26289	// resides, such as us-central1-a.
26290	Zone string `json:"zone,omitempty"`
26291
26292	// ServerResponse contains the HTTP response code and headers from the
26293	// server.
26294	googleapi.ServerResponse `json:"-"`
26295
26296	// ForceSendFields is a list of field names (e.g. "AutoscalingPolicy")
26297	// to unconditionally include in API requests. By default, fields with
26298	// empty or default values are omitted from API requests. However, any
26299	// non-pointer, non-interface field appearing in ForceSendFields will be
26300	// sent to the server regardless of whether the field is empty or not.
26301	// This may be used to include empty fields in Patch requests.
26302	ForceSendFields []string `json:"-"`
26303
26304	// NullFields is a list of field names (e.g. "AutoscalingPolicy") to
26305	// include in API requests with the JSON null value. By default, fields
26306	// with empty values are omitted from API requests. However, any field
26307	// with an empty value appearing in NullFields will be sent to the
26308	// server as null. It is an error if a field in this list has a
26309	// non-empty value. This may be used to include null fields in Patch
26310	// requests.
26311	NullFields []string `json:"-"`
26312}
26313
26314func (s *NodeGroup) MarshalJSON() ([]byte, error) {
26315	type NoMethod NodeGroup
26316	raw := NoMethod(*s)
26317	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26318}
26319
26320type NodeGroupAggregatedList struct {
26321	// Id: [Output Only] Unique identifier for the resource; defined by the
26322	// server.
26323	Id string `json:"id,omitempty"`
26324
26325	// Items: A list of NodeGroupsScopedList resources.
26326	Items map[string]NodeGroupsScopedList `json:"items,omitempty"`
26327
26328	// Kind: [Output Only] Type of resource.Always
26329	// compute#nodeGroupAggregatedList for aggregated lists of node groups.
26330	Kind string `json:"kind,omitempty"`
26331
26332	// NextPageToken: [Output Only] This token allows you to get the next
26333	// page of results for list requests. If the number of results is larger
26334	// than maxResults, use the nextPageToken as a value for the query
26335	// parameter pageToken in the next list request. Subsequent list
26336	// requests will have their own nextPageToken to continue paging through
26337	// the results.
26338	NextPageToken string `json:"nextPageToken,omitempty"`
26339
26340	// SelfLink: [Output Only] Server-defined URL for this resource.
26341	SelfLink string `json:"selfLink,omitempty"`
26342
26343	// Unreachables: [Output Only] Unreachable resources.
26344	Unreachables []string `json:"unreachables,omitempty"`
26345
26346	// Warning: [Output Only] Informational warning message.
26347	Warning *NodeGroupAggregatedListWarning `json:"warning,omitempty"`
26348
26349	// ServerResponse contains the HTTP response code and headers from the
26350	// server.
26351	googleapi.ServerResponse `json:"-"`
26352
26353	// ForceSendFields is a list of field names (e.g. "Id") to
26354	// unconditionally include in API requests. By default, fields with
26355	// empty or default values are omitted from API requests. However, any
26356	// non-pointer, non-interface field appearing in ForceSendFields will be
26357	// sent to the server regardless of whether the field is empty or not.
26358	// This may be used to include empty fields in Patch requests.
26359	ForceSendFields []string `json:"-"`
26360
26361	// NullFields is a list of field names (e.g. "Id") to include in API
26362	// requests with the JSON null value. By default, fields with empty
26363	// values are omitted from API requests. However, any field with an
26364	// empty value appearing in NullFields will be sent to the server as
26365	// null. It is an error if a field in this list has a non-empty value.
26366	// This may be used to include null fields in Patch requests.
26367	NullFields []string `json:"-"`
26368}
26369
26370func (s *NodeGroupAggregatedList) MarshalJSON() ([]byte, error) {
26371	type NoMethod NodeGroupAggregatedList
26372	raw := NoMethod(*s)
26373	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26374}
26375
26376// NodeGroupAggregatedListWarning: [Output Only] Informational warning
26377// message.
26378type NodeGroupAggregatedListWarning struct {
26379	// Code: [Output Only] A warning code, if applicable. For example,
26380	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26381	// the response.
26382	//
26383	// Possible values:
26384	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
26385	// changes made by a failed operation.
26386	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
26387	// created.
26388	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
26389	// resources has a type marked as deprecated
26390	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
26391	// that is larger than image size.
26392	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
26393	// resources has a type marked as experimental
26394	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
26395	// call
26396	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
26397	// overridden. Deprecated unused field.
26398	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
26399	// injected kernel, which is deprecated.
26400	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
26401	// exceedingly large number of resources
26402	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
26403	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
26404	// not assigned to an instance on the network.
26405	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
26406	// ip forward.
26407	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
26408	// refers to an instance that does not exist.
26409	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
26410	// URL refers to an instance that is not on the same network as the
26411	// route.
26412	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
26413	// have a status of RUNNING.
26414	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
26415	// continue the process despite the mentioned error.
26416	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
26417	// page.
26418	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
26419	// missing due to errors
26420	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
26421	// that requires a TOS they have not accepted.
26422	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
26423	// resource is in use.
26424	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
26425	// auto-delete could not be deleted because they were in use.
26426	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
26427	// ignored.
26428	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
26429	// instance group manager is valid as such, but its application does not
26430	// make a lot of sense, because it allows only single instance in
26431	// instance group.
26432	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
26433	// are present
26434	//   "UNREACHABLE" - A given scope cannot be reached.
26435	Code string `json:"code,omitempty"`
26436
26437	// Data: [Output Only] Metadata about this warning in key: value format.
26438	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
26439	// }
26440	Data []*NodeGroupAggregatedListWarningData `json:"data,omitempty"`
26441
26442	// Message: [Output Only] A human-readable description of the warning
26443	// code.
26444	Message string `json:"message,omitempty"`
26445
26446	// ForceSendFields is a list of field names (e.g. "Code") to
26447	// unconditionally include in API requests. By default, fields with
26448	// empty or default values are omitted from API requests. However, any
26449	// non-pointer, non-interface field appearing in ForceSendFields will be
26450	// sent to the server regardless of whether the field is empty or not.
26451	// This may be used to include empty fields in Patch requests.
26452	ForceSendFields []string `json:"-"`
26453
26454	// NullFields is a list of field names (e.g. "Code") to include in API
26455	// requests with the JSON null value. By default, fields with empty
26456	// values are omitted from API requests. However, any field with an
26457	// empty value appearing in NullFields will be sent to the server as
26458	// null. It is an error if a field in this list has a non-empty value.
26459	// This may be used to include null fields in Patch requests.
26460	NullFields []string `json:"-"`
26461}
26462
26463func (s *NodeGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
26464	type NoMethod NodeGroupAggregatedListWarning
26465	raw := NoMethod(*s)
26466	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26467}
26468
26469type NodeGroupAggregatedListWarningData struct {
26470	// Key: [Output Only] A key that provides more detail on the warning
26471	// being returned. For example, for warnings where there are no results
26472	// in a list request for a particular zone, this key might be scope and
26473	// the key value might be the zone name. Other examples might be a key
26474	// indicating a deprecated resource and a suggested replacement, or a
26475	// warning about invalid network settings (for example, if an instance
26476	// attempts to perform IP forwarding but is not enabled for IP
26477	// forwarding).
26478	Key string `json:"key,omitempty"`
26479
26480	// Value: [Output Only] A warning data value corresponding to the key.
26481	Value string `json:"value,omitempty"`
26482
26483	// ForceSendFields is a list of field names (e.g. "Key") to
26484	// unconditionally include in API requests. By default, fields with
26485	// empty or default values are omitted from API requests. However, any
26486	// non-pointer, non-interface field appearing in ForceSendFields will be
26487	// sent to the server regardless of whether the field is empty or not.
26488	// This may be used to include empty fields in Patch requests.
26489	ForceSendFields []string `json:"-"`
26490
26491	// NullFields is a list of field names (e.g. "Key") to include in API
26492	// requests with the JSON null value. By default, fields with empty
26493	// values are omitted from API requests. However, any field with an
26494	// empty value appearing in NullFields will be sent to the server as
26495	// null. It is an error if a field in this list has a non-empty value.
26496	// This may be used to include null fields in Patch requests.
26497	NullFields []string `json:"-"`
26498}
26499
26500func (s *NodeGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
26501	type NoMethod NodeGroupAggregatedListWarningData
26502	raw := NoMethod(*s)
26503	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26504}
26505
26506type NodeGroupAutoscalingPolicy struct {
26507	// MaxNodes: The maximum number of nodes that the group should have.
26508	// Must be set if autoscaling is enabled. Maximum value allowed is 100.
26509	MaxNodes int64 `json:"maxNodes,omitempty"`
26510
26511	// MinNodes: The minimum number of nodes that the group should have.
26512	MinNodes int64 `json:"minNodes,omitempty"`
26513
26514	// Mode: The autoscaling mode. Set to one of: ON, OFF, or
26515	// ONLY_SCALE_OUT. For more information, see Autoscaler modes.
26516	//
26517	// Possible values:
26518	//   "MODE_UNSPECIFIED"
26519	//   "OFF" - Autoscaling is disabled.
26520	//   "ON" - Autocaling is fully enabled.
26521	//   "ONLY_SCALE_OUT" - Autoscaling will only scale out and will not
26522	// remove nodes.
26523	Mode string `json:"mode,omitempty"`
26524
26525	// ForceSendFields is a list of field names (e.g. "MaxNodes") to
26526	// unconditionally include in API requests. By default, fields with
26527	// empty or default values are omitted from API requests. However, any
26528	// non-pointer, non-interface field appearing in ForceSendFields will be
26529	// sent to the server regardless of whether the field is empty or not.
26530	// This may be used to include empty fields in Patch requests.
26531	ForceSendFields []string `json:"-"`
26532
26533	// NullFields is a list of field names (e.g. "MaxNodes") to include in
26534	// API requests with the JSON null value. By default, fields with empty
26535	// values are omitted from API requests. However, any field with an
26536	// empty value appearing in NullFields will be sent to the server as
26537	// null. It is an error if a field in this list has a non-empty value.
26538	// This may be used to include null fields in Patch requests.
26539	NullFields []string `json:"-"`
26540}
26541
26542func (s *NodeGroupAutoscalingPolicy) MarshalJSON() ([]byte, error) {
26543	type NoMethod NodeGroupAutoscalingPolicy
26544	raw := NoMethod(*s)
26545	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26546}
26547
26548// NodeGroupList: Contains a list of nodeGroups.
26549type NodeGroupList struct {
26550	// Id: [Output Only] Unique identifier for the resource; defined by the
26551	// server.
26552	Id string `json:"id,omitempty"`
26553
26554	// Items: A list of NodeGroup resources.
26555	Items []*NodeGroup `json:"items,omitempty"`
26556
26557	// Kind: [Output Only] Type of resource.Always compute#nodeGroupList for
26558	// lists of node groups.
26559	Kind string `json:"kind,omitempty"`
26560
26561	// NextPageToken: [Output Only] This token allows you to get the next
26562	// page of results for list requests. If the number of results is larger
26563	// than maxResults, use the nextPageToken as a value for the query
26564	// parameter pageToken in the next list request. Subsequent list
26565	// requests will have their own nextPageToken to continue paging through
26566	// the results.
26567	NextPageToken string `json:"nextPageToken,omitempty"`
26568
26569	// SelfLink: [Output Only] Server-defined URL for this resource.
26570	SelfLink string `json:"selfLink,omitempty"`
26571
26572	// Warning: [Output Only] Informational warning message.
26573	Warning *NodeGroupListWarning `json:"warning,omitempty"`
26574
26575	// ServerResponse contains the HTTP response code and headers from the
26576	// server.
26577	googleapi.ServerResponse `json:"-"`
26578
26579	// ForceSendFields is a list of field names (e.g. "Id") to
26580	// unconditionally include in API requests. By default, fields with
26581	// empty or default values are omitted from API requests. However, any
26582	// non-pointer, non-interface field appearing in ForceSendFields will be
26583	// sent to the server regardless of whether the field is empty or not.
26584	// This may be used to include empty fields in Patch requests.
26585	ForceSendFields []string `json:"-"`
26586
26587	// NullFields is a list of field names (e.g. "Id") to include in API
26588	// requests with the JSON null value. By default, fields with empty
26589	// values are omitted from API requests. However, any field with an
26590	// empty value appearing in NullFields will be sent to the server as
26591	// null. It is an error if a field in this list has a non-empty value.
26592	// This may be used to include null fields in Patch requests.
26593	NullFields []string `json:"-"`
26594}
26595
26596func (s *NodeGroupList) MarshalJSON() ([]byte, error) {
26597	type NoMethod NodeGroupList
26598	raw := NoMethod(*s)
26599	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26600}
26601
26602// NodeGroupListWarning: [Output Only] Informational warning message.
26603type NodeGroupListWarning struct {
26604	// Code: [Output Only] A warning code, if applicable. For example,
26605	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26606	// the response.
26607	//
26608	// Possible values:
26609	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
26610	// changes made by a failed operation.
26611	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
26612	// created.
26613	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
26614	// resources has a type marked as deprecated
26615	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
26616	// that is larger than image size.
26617	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
26618	// resources has a type marked as experimental
26619	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
26620	// call
26621	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
26622	// overridden. Deprecated unused field.
26623	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
26624	// injected kernel, which is deprecated.
26625	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
26626	// exceedingly large number of resources
26627	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
26628	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
26629	// not assigned to an instance on the network.
26630	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
26631	// ip forward.
26632	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
26633	// refers to an instance that does not exist.
26634	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
26635	// URL refers to an instance that is not on the same network as the
26636	// route.
26637	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
26638	// have a status of RUNNING.
26639	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
26640	// continue the process despite the mentioned error.
26641	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
26642	// page.
26643	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
26644	// missing due to errors
26645	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
26646	// that requires a TOS they have not accepted.
26647	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
26648	// resource is in use.
26649	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
26650	// auto-delete could not be deleted because they were in use.
26651	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
26652	// ignored.
26653	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
26654	// instance group manager is valid as such, but its application does not
26655	// make a lot of sense, because it allows only single instance in
26656	// instance group.
26657	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
26658	// are present
26659	//   "UNREACHABLE" - A given scope cannot be reached.
26660	Code string `json:"code,omitempty"`
26661
26662	// Data: [Output Only] Metadata about this warning in key: value format.
26663	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
26664	// }
26665	Data []*NodeGroupListWarningData `json:"data,omitempty"`
26666
26667	// Message: [Output Only] A human-readable description of the warning
26668	// code.
26669	Message string `json:"message,omitempty"`
26670
26671	// ForceSendFields is a list of field names (e.g. "Code") to
26672	// unconditionally include in API requests. By default, fields with
26673	// empty or default values are omitted from API requests. However, any
26674	// non-pointer, non-interface field appearing in ForceSendFields will be
26675	// sent to the server regardless of whether the field is empty or not.
26676	// This may be used to include empty fields in Patch requests.
26677	ForceSendFields []string `json:"-"`
26678
26679	// NullFields is a list of field names (e.g. "Code") to include in API
26680	// requests with the JSON null value. By default, fields with empty
26681	// values are omitted from API requests. However, any field with an
26682	// empty value appearing in NullFields will be sent to the server as
26683	// null. It is an error if a field in this list has a non-empty value.
26684	// This may be used to include null fields in Patch requests.
26685	NullFields []string `json:"-"`
26686}
26687
26688func (s *NodeGroupListWarning) MarshalJSON() ([]byte, error) {
26689	type NoMethod NodeGroupListWarning
26690	raw := NoMethod(*s)
26691	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26692}
26693
26694type NodeGroupListWarningData struct {
26695	// Key: [Output Only] A key that provides more detail on the warning
26696	// being returned. For example, for warnings where there are no results
26697	// in a list request for a particular zone, this key might be scope and
26698	// the key value might be the zone name. Other examples might be a key
26699	// indicating a deprecated resource and a suggested replacement, or a
26700	// warning about invalid network settings (for example, if an instance
26701	// attempts to perform IP forwarding but is not enabled for IP
26702	// forwarding).
26703	Key string `json:"key,omitempty"`
26704
26705	// Value: [Output Only] A warning data value corresponding to the key.
26706	Value string `json:"value,omitempty"`
26707
26708	// ForceSendFields is a list of field names (e.g. "Key") to
26709	// unconditionally include in API requests. By default, fields with
26710	// empty or default values are omitted from API requests. However, any
26711	// non-pointer, non-interface field appearing in ForceSendFields will be
26712	// sent to the server regardless of whether the field is empty or not.
26713	// This may be used to include empty fields in Patch requests.
26714	ForceSendFields []string `json:"-"`
26715
26716	// NullFields is a list of field names (e.g. "Key") to include in API
26717	// requests with the JSON null value. By default, fields with empty
26718	// values are omitted from API requests. However, any field with an
26719	// empty value appearing in NullFields will be sent to the server as
26720	// null. It is an error if a field in this list has a non-empty value.
26721	// This may be used to include null fields in Patch requests.
26722	NullFields []string `json:"-"`
26723}
26724
26725func (s *NodeGroupListWarningData) MarshalJSON() ([]byte, error) {
26726	type NoMethod NodeGroupListWarningData
26727	raw := NoMethod(*s)
26728	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26729}
26730
26731// NodeGroupMaintenanceWindow: Time window specified for daily
26732// maintenance operations. GCE's internal maintenance will be performed
26733// within this window.
26734type NodeGroupMaintenanceWindow struct {
26735	// MaintenanceDuration: [Output only] A predetermined duration for the
26736	// window, automatically chosen to be the smallest possible in the given
26737	// scenario.
26738	MaintenanceDuration *Duration `json:"maintenanceDuration,omitempty"`
26739
26740	// StartTime: Start time of the window. This must be in UTC format that
26741	// resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For
26742	// example, both 13:00-5 and 08:00 are valid.
26743	StartTime string `json:"startTime,omitempty"`
26744
26745	// ForceSendFields is a list of field names (e.g. "MaintenanceDuration")
26746	// to unconditionally include in API requests. By default, fields with
26747	// empty or default values are omitted from API requests. However, any
26748	// non-pointer, non-interface field appearing in ForceSendFields will be
26749	// sent to the server regardless of whether the field is empty or not.
26750	// This may be used to include empty fields in Patch requests.
26751	ForceSendFields []string `json:"-"`
26752
26753	// NullFields is a list of field names (e.g. "MaintenanceDuration") to
26754	// include in API requests with the JSON null value. By default, fields
26755	// with empty values are omitted from API requests. However, any field
26756	// with an empty value appearing in NullFields will be sent to the
26757	// server as null. It is an error if a field in this list has a
26758	// non-empty value. This may be used to include null fields in Patch
26759	// requests.
26760	NullFields []string `json:"-"`
26761}
26762
26763func (s *NodeGroupMaintenanceWindow) MarshalJSON() ([]byte, error) {
26764	type NoMethod NodeGroupMaintenanceWindow
26765	raw := NoMethod(*s)
26766	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26767}
26768
26769type NodeGroupNode struct {
26770	// Accelerators: Accelerators for this node.
26771	Accelerators []*AcceleratorConfig `json:"accelerators,omitempty"`
26772
26773	// CpuOvercommitType: CPU overcommit.
26774	//
26775	// Possible values:
26776	//   "CPU_OVERCOMMIT_TYPE_UNSPECIFIED"
26777	//   "ENABLED"
26778	//   "NONE"
26779	CpuOvercommitType string `json:"cpuOvercommitType,omitempty"`
26780
26781	// Disks: Local disk configurations.
26782	Disks []*LocalDisk `json:"disks,omitempty"`
26783
26784	// Instances: Instances scheduled on this node.
26785	Instances []string `json:"instances,omitempty"`
26786
26787	// Name: The name of the node.
26788	Name string `json:"name,omitempty"`
26789
26790	// NodeType: The type of this node.
26791	NodeType string `json:"nodeType,omitempty"`
26792
26793	// SatisfiesPzs: [Output Only] Reserved for future use.
26794	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
26795
26796	// ServerBinding: Binding properties for the physical server.
26797	ServerBinding *ServerBinding `json:"serverBinding,omitempty"`
26798
26799	// ServerId: Server ID associated with this node.
26800	ServerId string `json:"serverId,omitempty"`
26801
26802	// Possible values:
26803	//   "CREATING"
26804	//   "DELETING"
26805	//   "INVALID"
26806	//   "READY"
26807	//   "REPAIRING"
26808	Status string `json:"status,omitempty"`
26809
26810	// ForceSendFields is a list of field names (e.g. "Accelerators") to
26811	// unconditionally include in API requests. By default, fields with
26812	// empty or default values are omitted from API requests. However, any
26813	// non-pointer, non-interface field appearing in ForceSendFields will be
26814	// sent to the server regardless of whether the field is empty or not.
26815	// This may be used to include empty fields in Patch requests.
26816	ForceSendFields []string `json:"-"`
26817
26818	// NullFields is a list of field names (e.g. "Accelerators") to include
26819	// in API requests with the JSON null value. By default, fields with
26820	// empty values are omitted from API requests. However, any field with
26821	// an empty value appearing in NullFields will be sent to the server as
26822	// null. It is an error if a field in this list has a non-empty value.
26823	// This may be used to include null fields in Patch requests.
26824	NullFields []string `json:"-"`
26825}
26826
26827func (s *NodeGroupNode) MarshalJSON() ([]byte, error) {
26828	type NoMethod NodeGroupNode
26829	raw := NoMethod(*s)
26830	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26831}
26832
26833type NodeGroupsAddNodesRequest struct {
26834	// AdditionalNodeCount: Count of additional nodes to be added to the
26835	// node group.
26836	AdditionalNodeCount int64 `json:"additionalNodeCount,omitempty"`
26837
26838	// ForceSendFields is a list of field names (e.g. "AdditionalNodeCount")
26839	// to unconditionally include in API requests. By default, fields with
26840	// empty or default values are omitted from API requests. However, any
26841	// non-pointer, non-interface field appearing in ForceSendFields will be
26842	// sent to the server regardless of whether the field is empty or not.
26843	// This may be used to include empty fields in Patch requests.
26844	ForceSendFields []string `json:"-"`
26845
26846	// NullFields is a list of field names (e.g. "AdditionalNodeCount") to
26847	// include in API requests with the JSON null value. By default, fields
26848	// with empty values are omitted from API requests. However, any field
26849	// with an empty value appearing in NullFields will be sent to the
26850	// server as null. It is an error if a field in this list has a
26851	// non-empty value. This may be used to include null fields in Patch
26852	// requests.
26853	NullFields []string `json:"-"`
26854}
26855
26856func (s *NodeGroupsAddNodesRequest) MarshalJSON() ([]byte, error) {
26857	type NoMethod NodeGroupsAddNodesRequest
26858	raw := NoMethod(*s)
26859	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26860}
26861
26862type NodeGroupsDeleteNodesRequest struct {
26863	// Nodes: Names of the nodes to delete.
26864	Nodes []string `json:"nodes,omitempty"`
26865
26866	// ForceSendFields is a list of field names (e.g. "Nodes") to
26867	// unconditionally include in API requests. By default, fields with
26868	// empty or default values are omitted from API requests. However, any
26869	// non-pointer, non-interface field appearing in ForceSendFields will be
26870	// sent to the server regardless of whether the field is empty or not.
26871	// This may be used to include empty fields in Patch requests.
26872	ForceSendFields []string `json:"-"`
26873
26874	// NullFields is a list of field names (e.g. "Nodes") to include in API
26875	// requests with the JSON null value. By default, fields with empty
26876	// values are omitted from API requests. However, any field with an
26877	// empty value appearing in NullFields will be sent to the server as
26878	// null. It is an error if a field in this list has a non-empty value.
26879	// This may be used to include null fields in Patch requests.
26880	NullFields []string `json:"-"`
26881}
26882
26883func (s *NodeGroupsDeleteNodesRequest) MarshalJSON() ([]byte, error) {
26884	type NoMethod NodeGroupsDeleteNodesRequest
26885	raw := NoMethod(*s)
26886	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26887}
26888
26889type NodeGroupsListNodes struct {
26890	// Id: [Output Only] Unique identifier for the resource; defined by the
26891	// server.
26892	Id string `json:"id,omitempty"`
26893
26894	// Items: A list of Node resources.
26895	Items []*NodeGroupNode `json:"items,omitempty"`
26896
26897	// Kind: [Output Only] The resource type, which is always
26898	// compute.nodeGroupsListNodes for the list of nodes in the specified
26899	// node group.
26900	Kind string `json:"kind,omitempty"`
26901
26902	// NextPageToken: [Output Only] This token allows you to get the next
26903	// page of results for list requests. If the number of results is larger
26904	// than maxResults, use the nextPageToken as a value for the query
26905	// parameter pageToken in the next list request. Subsequent list
26906	// requests will have their own nextPageToken to continue paging through
26907	// the results.
26908	NextPageToken string `json:"nextPageToken,omitempty"`
26909
26910	// SelfLink: [Output Only] Server-defined URL for this resource.
26911	SelfLink string `json:"selfLink,omitempty"`
26912
26913	// Warning: [Output Only] Informational warning message.
26914	Warning *NodeGroupsListNodesWarning `json:"warning,omitempty"`
26915
26916	// ServerResponse contains the HTTP response code and headers from the
26917	// server.
26918	googleapi.ServerResponse `json:"-"`
26919
26920	// ForceSendFields is a list of field names (e.g. "Id") to
26921	// unconditionally include in API requests. By default, fields with
26922	// empty or default values are omitted from API requests. However, any
26923	// non-pointer, non-interface field appearing in ForceSendFields will be
26924	// sent to the server regardless of whether the field is empty or not.
26925	// This may be used to include empty fields in Patch requests.
26926	ForceSendFields []string `json:"-"`
26927
26928	// NullFields is a list of field names (e.g. "Id") to include in API
26929	// requests with the JSON null value. By default, fields with empty
26930	// values are omitted from API requests. However, any field with an
26931	// empty value appearing in NullFields will be sent to the server as
26932	// null. It is an error if a field in this list has a non-empty value.
26933	// This may be used to include null fields in Patch requests.
26934	NullFields []string `json:"-"`
26935}
26936
26937func (s *NodeGroupsListNodes) MarshalJSON() ([]byte, error) {
26938	type NoMethod NodeGroupsListNodes
26939	raw := NoMethod(*s)
26940	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26941}
26942
26943// NodeGroupsListNodesWarning: [Output Only] Informational warning
26944// message.
26945type NodeGroupsListNodesWarning struct {
26946	// Code: [Output Only] A warning code, if applicable. For example,
26947	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26948	// the response.
26949	//
26950	// Possible values:
26951	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
26952	// changes made by a failed operation.
26953	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
26954	// created.
26955	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
26956	// resources has a type marked as deprecated
26957	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
26958	// that is larger than image size.
26959	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
26960	// resources has a type marked as experimental
26961	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
26962	// call
26963	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
26964	// overridden. Deprecated unused field.
26965	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
26966	// injected kernel, which is deprecated.
26967	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
26968	// exceedingly large number of resources
26969	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
26970	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
26971	// not assigned to an instance on the network.
26972	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
26973	// ip forward.
26974	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
26975	// refers to an instance that does not exist.
26976	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
26977	// URL refers to an instance that is not on the same network as the
26978	// route.
26979	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
26980	// have a status of RUNNING.
26981	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
26982	// continue the process despite the mentioned error.
26983	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
26984	// page.
26985	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
26986	// missing due to errors
26987	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
26988	// that requires a TOS they have not accepted.
26989	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
26990	// resource is in use.
26991	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
26992	// auto-delete could not be deleted because they were in use.
26993	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
26994	// ignored.
26995	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
26996	// instance group manager is valid as such, but its application does not
26997	// make a lot of sense, because it allows only single instance in
26998	// instance group.
26999	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
27000	// are present
27001	//   "UNREACHABLE" - A given scope cannot be reached.
27002	Code string `json:"code,omitempty"`
27003
27004	// Data: [Output Only] Metadata about this warning in key: value format.
27005	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
27006	// }
27007	Data []*NodeGroupsListNodesWarningData `json:"data,omitempty"`
27008
27009	// Message: [Output Only] A human-readable description of the warning
27010	// code.
27011	Message string `json:"message,omitempty"`
27012
27013	// ForceSendFields is a list of field names (e.g. "Code") to
27014	// unconditionally include in API requests. By default, fields with
27015	// empty or default values are omitted from API requests. However, any
27016	// non-pointer, non-interface field appearing in ForceSendFields will be
27017	// sent to the server regardless of whether the field is empty or not.
27018	// This may be used to include empty fields in Patch requests.
27019	ForceSendFields []string `json:"-"`
27020
27021	// NullFields is a list of field names (e.g. "Code") to include in API
27022	// requests with the JSON null value. By default, fields with empty
27023	// values are omitted from API requests. However, any field with an
27024	// empty value appearing in NullFields will be sent to the server as
27025	// null. It is an error if a field in this list has a non-empty value.
27026	// This may be used to include null fields in Patch requests.
27027	NullFields []string `json:"-"`
27028}
27029
27030func (s *NodeGroupsListNodesWarning) MarshalJSON() ([]byte, error) {
27031	type NoMethod NodeGroupsListNodesWarning
27032	raw := NoMethod(*s)
27033	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27034}
27035
27036type NodeGroupsListNodesWarningData struct {
27037	// Key: [Output Only] A key that provides more detail on the warning
27038	// being returned. For example, for warnings where there are no results
27039	// in a list request for a particular zone, this key might be scope and
27040	// the key value might be the zone name. Other examples might be a key
27041	// indicating a deprecated resource and a suggested replacement, or a
27042	// warning about invalid network settings (for example, if an instance
27043	// attempts to perform IP forwarding but is not enabled for IP
27044	// forwarding).
27045	Key string `json:"key,omitempty"`
27046
27047	// Value: [Output Only] A warning data value corresponding to the key.
27048	Value string `json:"value,omitempty"`
27049
27050	// ForceSendFields is a list of field names (e.g. "Key") to
27051	// unconditionally include in API requests. By default, fields with
27052	// empty or default values are omitted from API requests. However, any
27053	// non-pointer, non-interface field appearing in ForceSendFields will be
27054	// sent to the server regardless of whether the field is empty or not.
27055	// This may be used to include empty fields in Patch requests.
27056	ForceSendFields []string `json:"-"`
27057
27058	// NullFields is a list of field names (e.g. "Key") to include in API
27059	// requests with the JSON null value. By default, fields with empty
27060	// values are omitted from API requests. However, any field with an
27061	// empty value appearing in NullFields will be sent to the server as
27062	// null. It is an error if a field in this list has a non-empty value.
27063	// This may be used to include null fields in Patch requests.
27064	NullFields []string `json:"-"`
27065}
27066
27067func (s *NodeGroupsListNodesWarningData) MarshalJSON() ([]byte, error) {
27068	type NoMethod NodeGroupsListNodesWarningData
27069	raw := NoMethod(*s)
27070	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27071}
27072
27073type NodeGroupsScopedList struct {
27074	// NodeGroups: [Output Only] A list of node groups contained in this
27075	// scope.
27076	NodeGroups []*NodeGroup `json:"nodeGroups,omitempty"`
27077
27078	// Warning: [Output Only] An informational warning that appears when the
27079	// nodeGroup list is empty.
27080	Warning *NodeGroupsScopedListWarning `json:"warning,omitempty"`
27081
27082	// ForceSendFields is a list of field names (e.g. "NodeGroups") to
27083	// unconditionally include in API requests. By default, fields with
27084	// empty or default values are omitted from API requests. However, any
27085	// non-pointer, non-interface field appearing in ForceSendFields will be
27086	// sent to the server regardless of whether the field is empty or not.
27087	// This may be used to include empty fields in Patch requests.
27088	ForceSendFields []string `json:"-"`
27089
27090	// NullFields is a list of field names (e.g. "NodeGroups") to include in
27091	// API requests with the JSON null value. By default, fields with empty
27092	// values are omitted from API requests. However, any field with an
27093	// empty value appearing in NullFields will be sent to the server as
27094	// null. It is an error if a field in this list has a non-empty value.
27095	// This may be used to include null fields in Patch requests.
27096	NullFields []string `json:"-"`
27097}
27098
27099func (s *NodeGroupsScopedList) MarshalJSON() ([]byte, error) {
27100	type NoMethod NodeGroupsScopedList
27101	raw := NoMethod(*s)
27102	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27103}
27104
27105// NodeGroupsScopedListWarning: [Output Only] An informational warning
27106// that appears when the nodeGroup list is empty.
27107type NodeGroupsScopedListWarning struct {
27108	// Code: [Output Only] A warning code, if applicable. For example,
27109	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27110	// the response.
27111	//
27112	// Possible values:
27113	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
27114	// changes made by a failed operation.
27115	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
27116	// created.
27117	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
27118	// resources has a type marked as deprecated
27119	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
27120	// that is larger than image size.
27121	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
27122	// resources has a type marked as experimental
27123	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
27124	// call
27125	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
27126	// overridden. Deprecated unused field.
27127	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
27128	// injected kernel, which is deprecated.
27129	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
27130	// exceedingly large number of resources
27131	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
27132	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
27133	// not assigned to an instance on the network.
27134	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
27135	// ip forward.
27136	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
27137	// refers to an instance that does not exist.
27138	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
27139	// URL refers to an instance that is not on the same network as the
27140	// route.
27141	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
27142	// have a status of RUNNING.
27143	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
27144	// continue the process despite the mentioned error.
27145	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
27146	// page.
27147	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
27148	// missing due to errors
27149	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
27150	// that requires a TOS they have not accepted.
27151	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
27152	// resource is in use.
27153	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
27154	// auto-delete could not be deleted because they were in use.
27155	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
27156	// ignored.
27157	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
27158	// instance group manager is valid as such, but its application does not
27159	// make a lot of sense, because it allows only single instance in
27160	// instance group.
27161	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
27162	// are present
27163	//   "UNREACHABLE" - A given scope cannot be reached.
27164	Code string `json:"code,omitempty"`
27165
27166	// Data: [Output Only] Metadata about this warning in key: value format.
27167	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
27168	// }
27169	Data []*NodeGroupsScopedListWarningData `json:"data,omitempty"`
27170
27171	// Message: [Output Only] A human-readable description of the warning
27172	// code.
27173	Message string `json:"message,omitempty"`
27174
27175	// ForceSendFields is a list of field names (e.g. "Code") to
27176	// unconditionally include in API requests. By default, fields with
27177	// empty or default values are omitted from API requests. However, any
27178	// non-pointer, non-interface field appearing in ForceSendFields will be
27179	// sent to the server regardless of whether the field is empty or not.
27180	// This may be used to include empty fields in Patch requests.
27181	ForceSendFields []string `json:"-"`
27182
27183	// NullFields is a list of field names (e.g. "Code") to include in API
27184	// requests with the JSON null value. By default, fields with empty
27185	// values are omitted from API requests. However, any field with an
27186	// empty value appearing in NullFields will be sent to the server as
27187	// null. It is an error if a field in this list has a non-empty value.
27188	// This may be used to include null fields in Patch requests.
27189	NullFields []string `json:"-"`
27190}
27191
27192func (s *NodeGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
27193	type NoMethod NodeGroupsScopedListWarning
27194	raw := NoMethod(*s)
27195	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27196}
27197
27198type NodeGroupsScopedListWarningData struct {
27199	// Key: [Output Only] A key that provides more detail on the warning
27200	// being returned. For example, for warnings where there are no results
27201	// in a list request for a particular zone, this key might be scope and
27202	// the key value might be the zone name. Other examples might be a key
27203	// indicating a deprecated resource and a suggested replacement, or a
27204	// warning about invalid network settings (for example, if an instance
27205	// attempts to perform IP forwarding but is not enabled for IP
27206	// forwarding).
27207	Key string `json:"key,omitempty"`
27208
27209	// Value: [Output Only] A warning data value corresponding to the key.
27210	Value string `json:"value,omitempty"`
27211
27212	// ForceSendFields is a list of field names (e.g. "Key") to
27213	// unconditionally include in API requests. By default, fields with
27214	// empty or default values are omitted from API requests. However, any
27215	// non-pointer, non-interface field appearing in ForceSendFields will be
27216	// sent to the server regardless of whether the field is empty or not.
27217	// This may be used to include empty fields in Patch requests.
27218	ForceSendFields []string `json:"-"`
27219
27220	// NullFields is a list of field names (e.g. "Key") to include in API
27221	// requests with the JSON null value. By default, fields with empty
27222	// values are omitted from API requests. However, any field with an
27223	// empty value appearing in NullFields will be sent to the server as
27224	// null. It is an error if a field in this list has a non-empty value.
27225	// This may be used to include null fields in Patch requests.
27226	NullFields []string `json:"-"`
27227}
27228
27229func (s *NodeGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
27230	type NoMethod NodeGroupsScopedListWarningData
27231	raw := NoMethod(*s)
27232	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27233}
27234
27235type NodeGroupsSetNodeTemplateRequest struct {
27236	// NodeTemplate: Full or partial URL of the node template resource to be
27237	// updated for this node group.
27238	NodeTemplate string `json:"nodeTemplate,omitempty"`
27239
27240	// ForceSendFields is a list of field names (e.g. "NodeTemplate") to
27241	// unconditionally include in API requests. By default, fields with
27242	// empty or default values are omitted from API requests. However, any
27243	// non-pointer, non-interface field appearing in ForceSendFields will be
27244	// sent to the server regardless of whether the field is empty or not.
27245	// This may be used to include empty fields in Patch requests.
27246	ForceSendFields []string `json:"-"`
27247
27248	// NullFields is a list of field names (e.g. "NodeTemplate") to include
27249	// in API requests with the JSON null value. By default, fields with
27250	// empty values are omitted from API requests. However, any field with
27251	// an empty value appearing in NullFields will be sent to the server as
27252	// null. It is an error if a field in this list has a non-empty value.
27253	// This may be used to include null fields in Patch requests.
27254	NullFields []string `json:"-"`
27255}
27256
27257func (s *NodeGroupsSetNodeTemplateRequest) MarshalJSON() ([]byte, error) {
27258	type NoMethod NodeGroupsSetNodeTemplateRequest
27259	raw := NoMethod(*s)
27260	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27261}
27262
27263// NodeTemplate: Represent a sole-tenant Node Template resource. You can
27264// use a template to define properties for nodes in a node group. For
27265// more information, read Creating node groups and instances.
27266type NodeTemplate struct {
27267	Accelerators []*AcceleratorConfig `json:"accelerators,omitempty"`
27268
27269	// CpuOvercommitType: CPU overcommit.
27270	//
27271	// Possible values:
27272	//   "CPU_OVERCOMMIT_TYPE_UNSPECIFIED"
27273	//   "ENABLED"
27274	//   "NONE"
27275	CpuOvercommitType string `json:"cpuOvercommitType,omitempty"`
27276
27277	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
27278	// format.
27279	CreationTimestamp string `json:"creationTimestamp,omitempty"`
27280
27281	// Description: An optional description of this resource. Provide this
27282	// property when you create the resource.
27283	Description string `json:"description,omitempty"`
27284
27285	Disks []*LocalDisk `json:"disks,omitempty"`
27286
27287	// Id: [Output Only] The unique identifier for the resource. This
27288	// identifier is defined by the server.
27289	Id uint64 `json:"id,omitempty,string"`
27290
27291	// Kind: [Output Only] The type of the resource. Always
27292	// compute#nodeTemplate for node templates.
27293	Kind string `json:"kind,omitempty"`
27294
27295	// Name: The name of the resource, provided by the client when initially
27296	// creating the resource. The resource name must be 1-63 characters
27297	// long, and comply with RFC1035. Specifically, the name must be 1-63
27298	// characters long and match the regular expression
27299	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
27300	// a lowercase letter, and all following characters must be a dash,
27301	// lowercase letter, or digit, except the last character, which cannot
27302	// be a dash.
27303	Name string `json:"name,omitempty"`
27304
27305	// NodeAffinityLabels: Labels to use for node affinity, which will be
27306	// used in instance scheduling.
27307	NodeAffinityLabels map[string]string `json:"nodeAffinityLabels,omitempty"`
27308
27309	// NodeType: The node type to use for nodes group that are created from
27310	// this template.
27311	NodeType string `json:"nodeType,omitempty"`
27312
27313	// NodeTypeFlexibility: The flexible properties of the desired node
27314	// type. Node groups that use this node template will create nodes of a
27315	// type that matches these properties. This field is mutually exclusive
27316	// with the node_type property; you can only define one or the other,
27317	// but not both.
27318	NodeTypeFlexibility *NodeTemplateNodeTypeFlexibility `json:"nodeTypeFlexibility,omitempty"`
27319
27320	// Region: [Output Only] The name of the region where the node template
27321	// resides, such as us-central1.
27322	Region string `json:"region,omitempty"`
27323
27324	// SelfLink: [Output Only] Server-defined URL for the resource.
27325	SelfLink string `json:"selfLink,omitempty"`
27326
27327	// ServerBinding: Sets the binding properties for the physical server.
27328	// Valid values include: - *[Default]* RESTART_NODE_ON_ANY_SERVER:
27329	// Restarts VMs on any available physical server -
27330	// RESTART_NODE_ON_MINIMAL_SERVER: Restarts VMs on the same physical
27331	// server whenever possible See Sole-tenant node options for more
27332	// information.
27333	ServerBinding *ServerBinding `json:"serverBinding,omitempty"`
27334
27335	// Status: [Output Only] The status of the node template. One of the
27336	// following values: CREATING, READY, and DELETING.
27337	//
27338	// Possible values:
27339	//   "CREATING" - Resources are being allocated.
27340	//   "DELETING" - The node template is currently being deleted.
27341	//   "INVALID" - Invalid status.
27342	//   "READY" - The node template is ready.
27343	Status string `json:"status,omitempty"`
27344
27345	// StatusMessage: [Output Only] An optional, human-readable explanation
27346	// of the status.
27347	StatusMessage string `json:"statusMessage,omitempty"`
27348
27349	// ServerResponse contains the HTTP response code and headers from the
27350	// server.
27351	googleapi.ServerResponse `json:"-"`
27352
27353	// ForceSendFields is a list of field names (e.g. "Accelerators") to
27354	// unconditionally include in API requests. By default, fields with
27355	// empty or default values are omitted from API requests. However, any
27356	// non-pointer, non-interface field appearing in ForceSendFields will be
27357	// sent to the server regardless of whether the field is empty or not.
27358	// This may be used to include empty fields in Patch requests.
27359	ForceSendFields []string `json:"-"`
27360
27361	// NullFields is a list of field names (e.g. "Accelerators") to include
27362	// in API requests with the JSON null value. By default, fields with
27363	// empty values are omitted from API requests. However, any field with
27364	// an empty value appearing in NullFields will be sent to the server as
27365	// null. It is an error if a field in this list has a non-empty value.
27366	// This may be used to include null fields in Patch requests.
27367	NullFields []string `json:"-"`
27368}
27369
27370func (s *NodeTemplate) MarshalJSON() ([]byte, error) {
27371	type NoMethod NodeTemplate
27372	raw := NoMethod(*s)
27373	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27374}
27375
27376type NodeTemplateAggregatedList struct {
27377	// Id: [Output Only] Unique identifier for the resource; defined by the
27378	// server.
27379	Id string `json:"id,omitempty"`
27380
27381	// Items: A list of NodeTemplatesScopedList resources.
27382	Items map[string]NodeTemplatesScopedList `json:"items,omitempty"`
27383
27384	// Kind: [Output Only] Type of resource.Always
27385	// compute#nodeTemplateAggregatedList for aggregated lists of node
27386	// templates.
27387	Kind string `json:"kind,omitempty"`
27388
27389	// NextPageToken: [Output Only] This token allows you to get the next
27390	// page of results for list requests. If the number of results is larger
27391	// than maxResults, use the nextPageToken as a value for the query
27392	// parameter pageToken in the next list request. Subsequent list
27393	// requests will have their own nextPageToken to continue paging through
27394	// the results.
27395	NextPageToken string `json:"nextPageToken,omitempty"`
27396
27397	// SelfLink: [Output Only] Server-defined URL for this resource.
27398	SelfLink string `json:"selfLink,omitempty"`
27399
27400	// Unreachables: [Output Only] Unreachable resources.
27401	Unreachables []string `json:"unreachables,omitempty"`
27402
27403	// Warning: [Output Only] Informational warning message.
27404	Warning *NodeTemplateAggregatedListWarning `json:"warning,omitempty"`
27405
27406	// ServerResponse contains the HTTP response code and headers from the
27407	// server.
27408	googleapi.ServerResponse `json:"-"`
27409
27410	// ForceSendFields is a list of field names (e.g. "Id") to
27411	// unconditionally include in API requests. By default, fields with
27412	// empty or default values are omitted from API requests. However, any
27413	// non-pointer, non-interface field appearing in ForceSendFields will be
27414	// sent to the server regardless of whether the field is empty or not.
27415	// This may be used to include empty fields in Patch requests.
27416	ForceSendFields []string `json:"-"`
27417
27418	// NullFields is a list of field names (e.g. "Id") to include in API
27419	// requests with the JSON null value. By default, fields with empty
27420	// values are omitted from API requests. However, any field with an
27421	// empty value appearing in NullFields will be sent to the server as
27422	// null. It is an error if a field in this list has a non-empty value.
27423	// This may be used to include null fields in Patch requests.
27424	NullFields []string `json:"-"`
27425}
27426
27427func (s *NodeTemplateAggregatedList) MarshalJSON() ([]byte, error) {
27428	type NoMethod NodeTemplateAggregatedList
27429	raw := NoMethod(*s)
27430	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27431}
27432
27433// NodeTemplateAggregatedListWarning: [Output Only] Informational
27434// warning message.
27435type NodeTemplateAggregatedListWarning struct {
27436	// Code: [Output Only] A warning code, if applicable. For example,
27437	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27438	// the response.
27439	//
27440	// Possible values:
27441	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
27442	// changes made by a failed operation.
27443	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
27444	// created.
27445	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
27446	// resources has a type marked as deprecated
27447	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
27448	// that is larger than image size.
27449	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
27450	// resources has a type marked as experimental
27451	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
27452	// call
27453	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
27454	// overridden. Deprecated unused field.
27455	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
27456	// injected kernel, which is deprecated.
27457	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
27458	// exceedingly large number of resources
27459	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
27460	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
27461	// not assigned to an instance on the network.
27462	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
27463	// ip forward.
27464	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
27465	// refers to an instance that does not exist.
27466	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
27467	// URL refers to an instance that is not on the same network as the
27468	// route.
27469	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
27470	// have a status of RUNNING.
27471	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
27472	// continue the process despite the mentioned error.
27473	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
27474	// page.
27475	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
27476	// missing due to errors
27477	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
27478	// that requires a TOS they have not accepted.
27479	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
27480	// resource is in use.
27481	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
27482	// auto-delete could not be deleted because they were in use.
27483	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
27484	// ignored.
27485	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
27486	// instance group manager is valid as such, but its application does not
27487	// make a lot of sense, because it allows only single instance in
27488	// instance group.
27489	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
27490	// are present
27491	//   "UNREACHABLE" - A given scope cannot be reached.
27492	Code string `json:"code,omitempty"`
27493
27494	// Data: [Output Only] Metadata about this warning in key: value format.
27495	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
27496	// }
27497	Data []*NodeTemplateAggregatedListWarningData `json:"data,omitempty"`
27498
27499	// Message: [Output Only] A human-readable description of the warning
27500	// code.
27501	Message string `json:"message,omitempty"`
27502
27503	// ForceSendFields is a list of field names (e.g. "Code") to
27504	// unconditionally include in API requests. By default, fields with
27505	// empty or default values are omitted from API requests. However, any
27506	// non-pointer, non-interface field appearing in ForceSendFields will be
27507	// sent to the server regardless of whether the field is empty or not.
27508	// This may be used to include empty fields in Patch requests.
27509	ForceSendFields []string `json:"-"`
27510
27511	// NullFields is a list of field names (e.g. "Code") to include in API
27512	// requests with the JSON null value. By default, fields with empty
27513	// values are omitted from API requests. However, any field with an
27514	// empty value appearing in NullFields will be sent to the server as
27515	// null. It is an error if a field in this list has a non-empty value.
27516	// This may be used to include null fields in Patch requests.
27517	NullFields []string `json:"-"`
27518}
27519
27520func (s *NodeTemplateAggregatedListWarning) MarshalJSON() ([]byte, error) {
27521	type NoMethod NodeTemplateAggregatedListWarning
27522	raw := NoMethod(*s)
27523	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27524}
27525
27526type NodeTemplateAggregatedListWarningData struct {
27527	// Key: [Output Only] A key that provides more detail on the warning
27528	// being returned. For example, for warnings where there are no results
27529	// in a list request for a particular zone, this key might be scope and
27530	// the key value might be the zone name. Other examples might be a key
27531	// indicating a deprecated resource and a suggested replacement, or a
27532	// warning about invalid network settings (for example, if an instance
27533	// attempts to perform IP forwarding but is not enabled for IP
27534	// forwarding).
27535	Key string `json:"key,omitempty"`
27536
27537	// Value: [Output Only] A warning data value corresponding to the key.
27538	Value string `json:"value,omitempty"`
27539
27540	// ForceSendFields is a list of field names (e.g. "Key") to
27541	// unconditionally include in API requests. By default, fields with
27542	// empty or default values are omitted from API requests. However, any
27543	// non-pointer, non-interface field appearing in ForceSendFields will be
27544	// sent to the server regardless of whether the field is empty or not.
27545	// This may be used to include empty fields in Patch requests.
27546	ForceSendFields []string `json:"-"`
27547
27548	// NullFields is a list of field names (e.g. "Key") to include in API
27549	// requests with the JSON null value. By default, fields with empty
27550	// values are omitted from API requests. However, any field with an
27551	// empty value appearing in NullFields will be sent to the server as
27552	// null. It is an error if a field in this list has a non-empty value.
27553	// This may be used to include null fields in Patch requests.
27554	NullFields []string `json:"-"`
27555}
27556
27557func (s *NodeTemplateAggregatedListWarningData) MarshalJSON() ([]byte, error) {
27558	type NoMethod NodeTemplateAggregatedListWarningData
27559	raw := NoMethod(*s)
27560	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27561}
27562
27563// NodeTemplateList: Contains a list of node templates.
27564type NodeTemplateList struct {
27565	// Id: [Output Only] Unique identifier for the resource; defined by the
27566	// server.
27567	Id string `json:"id,omitempty"`
27568
27569	// Items: A list of NodeTemplate resources.
27570	Items []*NodeTemplate `json:"items,omitempty"`
27571
27572	// Kind: [Output Only] Type of resource.Always compute#nodeTemplateList
27573	// for lists of node templates.
27574	Kind string `json:"kind,omitempty"`
27575
27576	// NextPageToken: [Output Only] This token allows you to get the next
27577	// page of results for list requests. If the number of results is larger
27578	// than maxResults, use the nextPageToken as a value for the query
27579	// parameter pageToken in the next list request. Subsequent list
27580	// requests will have their own nextPageToken to continue paging through
27581	// the results.
27582	NextPageToken string `json:"nextPageToken,omitempty"`
27583
27584	// SelfLink: [Output Only] Server-defined URL for this resource.
27585	SelfLink string `json:"selfLink,omitempty"`
27586
27587	// Warning: [Output Only] Informational warning message.
27588	Warning *NodeTemplateListWarning `json:"warning,omitempty"`
27589
27590	// ServerResponse contains the HTTP response code and headers from the
27591	// server.
27592	googleapi.ServerResponse `json:"-"`
27593
27594	// ForceSendFields is a list of field names (e.g. "Id") to
27595	// unconditionally include in API requests. By default, fields with
27596	// empty or default values are omitted from API requests. However, any
27597	// non-pointer, non-interface field appearing in ForceSendFields will be
27598	// sent to the server regardless of whether the field is empty or not.
27599	// This may be used to include empty fields in Patch requests.
27600	ForceSendFields []string `json:"-"`
27601
27602	// NullFields is a list of field names (e.g. "Id") to include in API
27603	// requests with the JSON null value. By default, fields with empty
27604	// values are omitted from API requests. However, any field with an
27605	// empty value appearing in NullFields will be sent to the server as
27606	// null. It is an error if a field in this list has a non-empty value.
27607	// This may be used to include null fields in Patch requests.
27608	NullFields []string `json:"-"`
27609}
27610
27611func (s *NodeTemplateList) MarshalJSON() ([]byte, error) {
27612	type NoMethod NodeTemplateList
27613	raw := NoMethod(*s)
27614	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27615}
27616
27617// NodeTemplateListWarning: [Output Only] Informational warning message.
27618type NodeTemplateListWarning struct {
27619	// Code: [Output Only] A warning code, if applicable. For example,
27620	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27621	// the response.
27622	//
27623	// Possible values:
27624	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
27625	// changes made by a failed operation.
27626	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
27627	// created.
27628	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
27629	// resources has a type marked as deprecated
27630	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
27631	// that is larger than image size.
27632	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
27633	// resources has a type marked as experimental
27634	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
27635	// call
27636	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
27637	// overridden. Deprecated unused field.
27638	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
27639	// injected kernel, which is deprecated.
27640	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
27641	// exceedingly large number of resources
27642	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
27643	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
27644	// not assigned to an instance on the network.
27645	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
27646	// ip forward.
27647	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
27648	// refers to an instance that does not exist.
27649	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
27650	// URL refers to an instance that is not on the same network as the
27651	// route.
27652	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
27653	// have a status of RUNNING.
27654	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
27655	// continue the process despite the mentioned error.
27656	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
27657	// page.
27658	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
27659	// missing due to errors
27660	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
27661	// that requires a TOS they have not accepted.
27662	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
27663	// resource is in use.
27664	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
27665	// auto-delete could not be deleted because they were in use.
27666	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
27667	// ignored.
27668	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
27669	// instance group manager is valid as such, but its application does not
27670	// make a lot of sense, because it allows only single instance in
27671	// instance group.
27672	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
27673	// are present
27674	//   "UNREACHABLE" - A given scope cannot be reached.
27675	Code string `json:"code,omitempty"`
27676
27677	// Data: [Output Only] Metadata about this warning in key: value format.
27678	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
27679	// }
27680	Data []*NodeTemplateListWarningData `json:"data,omitempty"`
27681
27682	// Message: [Output Only] A human-readable description of the warning
27683	// code.
27684	Message string `json:"message,omitempty"`
27685
27686	// ForceSendFields is a list of field names (e.g. "Code") to
27687	// unconditionally include in API requests. By default, fields with
27688	// empty or default values are omitted from API requests. However, any
27689	// non-pointer, non-interface field appearing in ForceSendFields will be
27690	// sent to the server regardless of whether the field is empty or not.
27691	// This may be used to include empty fields in Patch requests.
27692	ForceSendFields []string `json:"-"`
27693
27694	// NullFields is a list of field names (e.g. "Code") to include in API
27695	// requests with the JSON null value. By default, fields with empty
27696	// values are omitted from API requests. However, any field with an
27697	// empty value appearing in NullFields will be sent to the server as
27698	// null. It is an error if a field in this list has a non-empty value.
27699	// This may be used to include null fields in Patch requests.
27700	NullFields []string `json:"-"`
27701}
27702
27703func (s *NodeTemplateListWarning) MarshalJSON() ([]byte, error) {
27704	type NoMethod NodeTemplateListWarning
27705	raw := NoMethod(*s)
27706	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27707}
27708
27709type NodeTemplateListWarningData struct {
27710	// Key: [Output Only] A key that provides more detail on the warning
27711	// being returned. For example, for warnings where there are no results
27712	// in a list request for a particular zone, this key might be scope and
27713	// the key value might be the zone name. Other examples might be a key
27714	// indicating a deprecated resource and a suggested replacement, or a
27715	// warning about invalid network settings (for example, if an instance
27716	// attempts to perform IP forwarding but is not enabled for IP
27717	// forwarding).
27718	Key string `json:"key,omitempty"`
27719
27720	// Value: [Output Only] A warning data value corresponding to the key.
27721	Value string `json:"value,omitempty"`
27722
27723	// ForceSendFields is a list of field names (e.g. "Key") to
27724	// unconditionally include in API requests. By default, fields with
27725	// empty or default values are omitted from API requests. However, any
27726	// non-pointer, non-interface field appearing in ForceSendFields will be
27727	// sent to the server regardless of whether the field is empty or not.
27728	// This may be used to include empty fields in Patch requests.
27729	ForceSendFields []string `json:"-"`
27730
27731	// NullFields is a list of field names (e.g. "Key") to include in API
27732	// requests with the JSON null value. By default, fields with empty
27733	// values are omitted from API requests. However, any field with an
27734	// empty value appearing in NullFields will be sent to the server as
27735	// null. It is an error if a field in this list has a non-empty value.
27736	// This may be used to include null fields in Patch requests.
27737	NullFields []string `json:"-"`
27738}
27739
27740func (s *NodeTemplateListWarningData) MarshalJSON() ([]byte, error) {
27741	type NoMethod NodeTemplateListWarningData
27742	raw := NoMethod(*s)
27743	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27744}
27745
27746type NodeTemplateNodeTypeFlexibility struct {
27747	Cpus string `json:"cpus,omitempty"`
27748
27749	LocalSsd string `json:"localSsd,omitempty"`
27750
27751	Memory string `json:"memory,omitempty"`
27752
27753	// ForceSendFields is a list of field names (e.g. "Cpus") to
27754	// unconditionally include in API requests. By default, fields with
27755	// empty or default values are omitted from API requests. However, any
27756	// non-pointer, non-interface field appearing in ForceSendFields will be
27757	// sent to the server regardless of whether the field is empty or not.
27758	// This may be used to include empty fields in Patch requests.
27759	ForceSendFields []string `json:"-"`
27760
27761	// NullFields is a list of field names (e.g. "Cpus") to include in API
27762	// requests with the JSON null value. By default, fields with empty
27763	// values are omitted from API requests. However, any field with an
27764	// empty value appearing in NullFields will be sent to the server as
27765	// null. It is an error if a field in this list has a non-empty value.
27766	// This may be used to include null fields in Patch requests.
27767	NullFields []string `json:"-"`
27768}
27769
27770func (s *NodeTemplateNodeTypeFlexibility) MarshalJSON() ([]byte, error) {
27771	type NoMethod NodeTemplateNodeTypeFlexibility
27772	raw := NoMethod(*s)
27773	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27774}
27775
27776type NodeTemplatesScopedList struct {
27777	// NodeTemplates: [Output Only] A list of node templates contained in
27778	// this scope.
27779	NodeTemplates []*NodeTemplate `json:"nodeTemplates,omitempty"`
27780
27781	// Warning: [Output Only] An informational warning that appears when the
27782	// node templates list is empty.
27783	Warning *NodeTemplatesScopedListWarning `json:"warning,omitempty"`
27784
27785	// ForceSendFields is a list of field names (e.g. "NodeTemplates") to
27786	// unconditionally include in API requests. By default, fields with
27787	// empty or default values are omitted from API requests. However, any
27788	// non-pointer, non-interface field appearing in ForceSendFields will be
27789	// sent to the server regardless of whether the field is empty or not.
27790	// This may be used to include empty fields in Patch requests.
27791	ForceSendFields []string `json:"-"`
27792
27793	// NullFields is a list of field names (e.g. "NodeTemplates") to include
27794	// in API requests with the JSON null value. By default, fields with
27795	// empty values are omitted from API requests. However, any field with
27796	// an empty value appearing in NullFields will be sent to the server as
27797	// null. It is an error if a field in this list has a non-empty value.
27798	// This may be used to include null fields in Patch requests.
27799	NullFields []string `json:"-"`
27800}
27801
27802func (s *NodeTemplatesScopedList) MarshalJSON() ([]byte, error) {
27803	type NoMethod NodeTemplatesScopedList
27804	raw := NoMethod(*s)
27805	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27806}
27807
27808// NodeTemplatesScopedListWarning: [Output Only] An informational
27809// warning that appears when the node templates list is empty.
27810type NodeTemplatesScopedListWarning struct {
27811	// Code: [Output Only] A warning code, if applicable. For example,
27812	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27813	// the response.
27814	//
27815	// Possible values:
27816	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
27817	// changes made by a failed operation.
27818	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
27819	// created.
27820	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
27821	// resources has a type marked as deprecated
27822	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
27823	// that is larger than image size.
27824	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
27825	// resources has a type marked as experimental
27826	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
27827	// call
27828	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
27829	// overridden. Deprecated unused field.
27830	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
27831	// injected kernel, which is deprecated.
27832	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
27833	// exceedingly large number of resources
27834	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
27835	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
27836	// not assigned to an instance on the network.
27837	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
27838	// ip forward.
27839	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
27840	// refers to an instance that does not exist.
27841	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
27842	// URL refers to an instance that is not on the same network as the
27843	// route.
27844	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
27845	// have a status of RUNNING.
27846	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
27847	// continue the process despite the mentioned error.
27848	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
27849	// page.
27850	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
27851	// missing due to errors
27852	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
27853	// that requires a TOS they have not accepted.
27854	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
27855	// resource is in use.
27856	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
27857	// auto-delete could not be deleted because they were in use.
27858	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
27859	// ignored.
27860	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
27861	// instance group manager is valid as such, but its application does not
27862	// make a lot of sense, because it allows only single instance in
27863	// instance group.
27864	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
27865	// are present
27866	//   "UNREACHABLE" - A given scope cannot be reached.
27867	Code string `json:"code,omitempty"`
27868
27869	// Data: [Output Only] Metadata about this warning in key: value format.
27870	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
27871	// }
27872	Data []*NodeTemplatesScopedListWarningData `json:"data,omitempty"`
27873
27874	// Message: [Output Only] A human-readable description of the warning
27875	// code.
27876	Message string `json:"message,omitempty"`
27877
27878	// ForceSendFields is a list of field names (e.g. "Code") to
27879	// unconditionally include in API requests. By default, fields with
27880	// empty or default values are omitted from API requests. However, any
27881	// non-pointer, non-interface field appearing in ForceSendFields will be
27882	// sent to the server regardless of whether the field is empty or not.
27883	// This may be used to include empty fields in Patch requests.
27884	ForceSendFields []string `json:"-"`
27885
27886	// NullFields is a list of field names (e.g. "Code") to include in API
27887	// requests with the JSON null value. By default, fields with empty
27888	// values are omitted from API requests. However, any field with an
27889	// empty value appearing in NullFields will be sent to the server as
27890	// null. It is an error if a field in this list has a non-empty value.
27891	// This may be used to include null fields in Patch requests.
27892	NullFields []string `json:"-"`
27893}
27894
27895func (s *NodeTemplatesScopedListWarning) MarshalJSON() ([]byte, error) {
27896	type NoMethod NodeTemplatesScopedListWarning
27897	raw := NoMethod(*s)
27898	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27899}
27900
27901type NodeTemplatesScopedListWarningData struct {
27902	// Key: [Output Only] A key that provides more detail on the warning
27903	// being returned. For example, for warnings where there are no results
27904	// in a list request for a particular zone, this key might be scope and
27905	// the key value might be the zone name. Other examples might be a key
27906	// indicating a deprecated resource and a suggested replacement, or a
27907	// warning about invalid network settings (for example, if an instance
27908	// attempts to perform IP forwarding but is not enabled for IP
27909	// forwarding).
27910	Key string `json:"key,omitempty"`
27911
27912	// Value: [Output Only] A warning data value corresponding to the key.
27913	Value string `json:"value,omitempty"`
27914
27915	// ForceSendFields is a list of field names (e.g. "Key") to
27916	// unconditionally include in API requests. By default, fields with
27917	// empty or default values are omitted from API requests. However, any
27918	// non-pointer, non-interface field appearing in ForceSendFields will be
27919	// sent to the server regardless of whether the field is empty or not.
27920	// This may be used to include empty fields in Patch requests.
27921	ForceSendFields []string `json:"-"`
27922
27923	// NullFields is a list of field names (e.g. "Key") to include in API
27924	// requests with the JSON null value. By default, fields with empty
27925	// values are omitted from API requests. However, any field with an
27926	// empty value appearing in NullFields will be sent to the server as
27927	// null. It is an error if a field in this list has a non-empty value.
27928	// This may be used to include null fields in Patch requests.
27929	NullFields []string `json:"-"`
27930}
27931
27932func (s *NodeTemplatesScopedListWarningData) MarshalJSON() ([]byte, error) {
27933	type NoMethod NodeTemplatesScopedListWarningData
27934	raw := NoMethod(*s)
27935	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27936}
27937
27938// NodeType: Represent a sole-tenant Node Type resource. Each node
27939// within a node group must have a node type. A node type specifies the
27940// total amount of cores and memory for that node. Currently, the only
27941// available node type is n1-node-96-624 node type that has 96 vCPUs and
27942// 624 GB of memory, available in multiple zones. For more information
27943// read Node types.
27944type NodeType struct {
27945	// CpuPlatform: [Output Only] The CPU platform used by this node type.
27946	CpuPlatform string `json:"cpuPlatform,omitempty"`
27947
27948	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
27949	// format.
27950	CreationTimestamp string `json:"creationTimestamp,omitempty"`
27951
27952	// Deprecated -- [Output Only] The deprecation status associated with
27953	// this node type.
27954	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
27955
27956	// Description: [Output Only] An optional textual description of the
27957	// resource.
27958	Description string `json:"description,omitempty"`
27959
27960	// GuestCpus: [Output Only] The number of virtual CPUs that are
27961	// available to the node type.
27962	GuestCpus int64 `json:"guestCpus,omitempty"`
27963
27964	// Id: [Output Only] The unique identifier for the resource. This
27965	// identifier is defined by the server.
27966	Id uint64 `json:"id,omitempty,string"`
27967
27968	// Kind: [Output Only] The type of the resource. Always compute#nodeType
27969	// for node types.
27970	Kind string `json:"kind,omitempty"`
27971
27972	// LocalSsdGb: [Output Only] Local SSD available to the node type,
27973	// defined in GB.
27974	LocalSsdGb int64 `json:"localSsdGb,omitempty"`
27975
27976	// MemoryMb: [Output Only] The amount of physical memory available to
27977	// the node type, defined in MB.
27978	MemoryMb int64 `json:"memoryMb,omitempty"`
27979
27980	// Name: [Output Only] Name of the resource.
27981	Name string `json:"name,omitempty"`
27982
27983	// SelfLink: [Output Only] Server-defined URL for the resource.
27984	SelfLink string `json:"selfLink,omitempty"`
27985
27986	// Zone: [Output Only] The name of the zone where the node type resides,
27987	// such as us-central1-a.
27988	Zone string `json:"zone,omitempty"`
27989
27990	// ServerResponse contains the HTTP response code and headers from the
27991	// server.
27992	googleapi.ServerResponse `json:"-"`
27993
27994	// ForceSendFields is a list of field names (e.g. "CpuPlatform") to
27995	// unconditionally include in API requests. By default, fields with
27996	// empty or default values are omitted from API requests. However, any
27997	// non-pointer, non-interface field appearing in ForceSendFields will be
27998	// sent to the server regardless of whether the field is empty or not.
27999	// This may be used to include empty fields in Patch requests.
28000	ForceSendFields []string `json:"-"`
28001
28002	// NullFields is a list of field names (e.g. "CpuPlatform") to include
28003	// in API requests with the JSON null value. By default, fields with
28004	// empty values are omitted from API requests. However, any field with
28005	// an empty value appearing in NullFields will be sent to the server as
28006	// null. It is an error if a field in this list has a non-empty value.
28007	// This may be used to include null fields in Patch requests.
28008	NullFields []string `json:"-"`
28009}
28010
28011func (s *NodeType) MarshalJSON() ([]byte, error) {
28012	type NoMethod NodeType
28013	raw := NoMethod(*s)
28014	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28015}
28016
28017type NodeTypeAggregatedList struct {
28018	// Id: [Output Only] Unique identifier for the resource; defined by the
28019	// server.
28020	Id string `json:"id,omitempty"`
28021
28022	// Items: A list of NodeTypesScopedList resources.
28023	Items map[string]NodeTypesScopedList `json:"items,omitempty"`
28024
28025	// Kind: [Output Only] Type of resource.Always
28026	// compute#nodeTypeAggregatedList for aggregated lists of node types.
28027	Kind string `json:"kind,omitempty"`
28028
28029	// NextPageToken: [Output Only] This token allows you to get the next
28030	// page of results for list requests. If the number of results is larger
28031	// than maxResults, use the nextPageToken as a value for the query
28032	// parameter pageToken in the next list request. Subsequent list
28033	// requests will have their own nextPageToken to continue paging through
28034	// the results.
28035	NextPageToken string `json:"nextPageToken,omitempty"`
28036
28037	// SelfLink: [Output Only] Server-defined URL for this resource.
28038	SelfLink string `json:"selfLink,omitempty"`
28039
28040	// Unreachables: [Output Only] Unreachable resources.
28041	Unreachables []string `json:"unreachables,omitempty"`
28042
28043	// Warning: [Output Only] Informational warning message.
28044	Warning *NodeTypeAggregatedListWarning `json:"warning,omitempty"`
28045
28046	// ServerResponse contains the HTTP response code and headers from the
28047	// server.
28048	googleapi.ServerResponse `json:"-"`
28049
28050	// ForceSendFields is a list of field names (e.g. "Id") to
28051	// unconditionally include in API requests. By default, fields with
28052	// empty or default values are omitted from API requests. However, any
28053	// non-pointer, non-interface field appearing in ForceSendFields will be
28054	// sent to the server regardless of whether the field is empty or not.
28055	// This may be used to include empty fields in Patch requests.
28056	ForceSendFields []string `json:"-"`
28057
28058	// NullFields is a list of field names (e.g. "Id") to include in API
28059	// requests with the JSON null value. By default, fields with empty
28060	// values are omitted from API requests. However, any field with an
28061	// empty value appearing in NullFields will be sent to the server as
28062	// null. It is an error if a field in this list has a non-empty value.
28063	// This may be used to include null fields in Patch requests.
28064	NullFields []string `json:"-"`
28065}
28066
28067func (s *NodeTypeAggregatedList) MarshalJSON() ([]byte, error) {
28068	type NoMethod NodeTypeAggregatedList
28069	raw := NoMethod(*s)
28070	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28071}
28072
28073// NodeTypeAggregatedListWarning: [Output Only] Informational warning
28074// message.
28075type NodeTypeAggregatedListWarning struct {
28076	// Code: [Output Only] A warning code, if applicable. For example,
28077	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28078	// the response.
28079	//
28080	// Possible values:
28081	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
28082	// changes made by a failed operation.
28083	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
28084	// created.
28085	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
28086	// resources has a type marked as deprecated
28087	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
28088	// that is larger than image size.
28089	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
28090	// resources has a type marked as experimental
28091	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
28092	// call
28093	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
28094	// overridden. Deprecated unused field.
28095	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
28096	// injected kernel, which is deprecated.
28097	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
28098	// exceedingly large number of resources
28099	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
28100	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
28101	// not assigned to an instance on the network.
28102	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
28103	// ip forward.
28104	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
28105	// refers to an instance that does not exist.
28106	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
28107	// URL refers to an instance that is not on the same network as the
28108	// route.
28109	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
28110	// have a status of RUNNING.
28111	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
28112	// continue the process despite the mentioned error.
28113	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
28114	// page.
28115	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
28116	// missing due to errors
28117	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
28118	// that requires a TOS they have not accepted.
28119	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
28120	// resource is in use.
28121	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
28122	// auto-delete could not be deleted because they were in use.
28123	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
28124	// ignored.
28125	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
28126	// instance group manager is valid as such, but its application does not
28127	// make a lot of sense, because it allows only single instance in
28128	// instance group.
28129	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
28130	// are present
28131	//   "UNREACHABLE" - A given scope cannot be reached.
28132	Code string `json:"code,omitempty"`
28133
28134	// Data: [Output Only] Metadata about this warning in key: value format.
28135	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
28136	// }
28137	Data []*NodeTypeAggregatedListWarningData `json:"data,omitempty"`
28138
28139	// Message: [Output Only] A human-readable description of the warning
28140	// code.
28141	Message string `json:"message,omitempty"`
28142
28143	// ForceSendFields is a list of field names (e.g. "Code") to
28144	// unconditionally include in API requests. By default, fields with
28145	// empty or default values are omitted from API requests. However, any
28146	// non-pointer, non-interface field appearing in ForceSendFields will be
28147	// sent to the server regardless of whether the field is empty or not.
28148	// This may be used to include empty fields in Patch requests.
28149	ForceSendFields []string `json:"-"`
28150
28151	// NullFields is a list of field names (e.g. "Code") to include in API
28152	// requests with the JSON null value. By default, fields with empty
28153	// values are omitted from API requests. However, any field with an
28154	// empty value appearing in NullFields will be sent to the server as
28155	// null. It is an error if a field in this list has a non-empty value.
28156	// This may be used to include null fields in Patch requests.
28157	NullFields []string `json:"-"`
28158}
28159
28160func (s *NodeTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
28161	type NoMethod NodeTypeAggregatedListWarning
28162	raw := NoMethod(*s)
28163	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28164}
28165
28166type NodeTypeAggregatedListWarningData struct {
28167	// Key: [Output Only] A key that provides more detail on the warning
28168	// being returned. For example, for warnings where there are no results
28169	// in a list request for a particular zone, this key might be scope and
28170	// the key value might be the zone name. Other examples might be a key
28171	// indicating a deprecated resource and a suggested replacement, or a
28172	// warning about invalid network settings (for example, if an instance
28173	// attempts to perform IP forwarding but is not enabled for IP
28174	// forwarding).
28175	Key string `json:"key,omitempty"`
28176
28177	// Value: [Output Only] A warning data value corresponding to the key.
28178	Value string `json:"value,omitempty"`
28179
28180	// ForceSendFields is a list of field names (e.g. "Key") to
28181	// unconditionally include in API requests. By default, fields with
28182	// empty or default values are omitted from API requests. However, any
28183	// non-pointer, non-interface field appearing in ForceSendFields will be
28184	// sent to the server regardless of whether the field is empty or not.
28185	// This may be used to include empty fields in Patch requests.
28186	ForceSendFields []string `json:"-"`
28187
28188	// NullFields is a list of field names (e.g. "Key") to include in API
28189	// requests with the JSON null value. By default, fields with empty
28190	// values are omitted from API requests. However, any field with an
28191	// empty value appearing in NullFields will be sent to the server as
28192	// null. It is an error if a field in this list has a non-empty value.
28193	// This may be used to include null fields in Patch requests.
28194	NullFields []string `json:"-"`
28195}
28196
28197func (s *NodeTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
28198	type NoMethod NodeTypeAggregatedListWarningData
28199	raw := NoMethod(*s)
28200	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28201}
28202
28203// NodeTypeList: Contains a list of node types.
28204type NodeTypeList struct {
28205	// Id: [Output Only] Unique identifier for the resource; defined by the
28206	// server.
28207	Id string `json:"id,omitempty"`
28208
28209	// Items: A list of NodeType resources.
28210	Items []*NodeType `json:"items,omitempty"`
28211
28212	// Kind: [Output Only] Type of resource.Always compute#nodeTypeList for
28213	// lists of node types.
28214	Kind string `json:"kind,omitempty"`
28215
28216	// NextPageToken: [Output Only] This token allows you to get the next
28217	// page of results for list requests. If the number of results is larger
28218	// than maxResults, use the nextPageToken as a value for the query
28219	// parameter pageToken in the next list request. Subsequent list
28220	// requests will have their own nextPageToken to continue paging through
28221	// the results.
28222	NextPageToken string `json:"nextPageToken,omitempty"`
28223
28224	// SelfLink: [Output Only] Server-defined URL for this resource.
28225	SelfLink string `json:"selfLink,omitempty"`
28226
28227	// Warning: [Output Only] Informational warning message.
28228	Warning *NodeTypeListWarning `json:"warning,omitempty"`
28229
28230	// ServerResponse contains the HTTP response code and headers from the
28231	// server.
28232	googleapi.ServerResponse `json:"-"`
28233
28234	// ForceSendFields is a list of field names (e.g. "Id") to
28235	// unconditionally include in API requests. By default, fields with
28236	// empty or default values are omitted from API requests. However, any
28237	// non-pointer, non-interface field appearing in ForceSendFields will be
28238	// sent to the server regardless of whether the field is empty or not.
28239	// This may be used to include empty fields in Patch requests.
28240	ForceSendFields []string `json:"-"`
28241
28242	// NullFields is a list of field names (e.g. "Id") to include in API
28243	// requests with the JSON null value. By default, fields with empty
28244	// values are omitted from API requests. However, any field with an
28245	// empty value appearing in NullFields will be sent to the server as
28246	// null. It is an error if a field in this list has a non-empty value.
28247	// This may be used to include null fields in Patch requests.
28248	NullFields []string `json:"-"`
28249}
28250
28251func (s *NodeTypeList) MarshalJSON() ([]byte, error) {
28252	type NoMethod NodeTypeList
28253	raw := NoMethod(*s)
28254	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28255}
28256
28257// NodeTypeListWarning: [Output Only] Informational warning message.
28258type NodeTypeListWarning struct {
28259	// Code: [Output Only] A warning code, if applicable. For example,
28260	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28261	// the response.
28262	//
28263	// Possible values:
28264	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
28265	// changes made by a failed operation.
28266	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
28267	// created.
28268	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
28269	// resources has a type marked as deprecated
28270	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
28271	// that is larger than image size.
28272	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
28273	// resources has a type marked as experimental
28274	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
28275	// call
28276	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
28277	// overridden. Deprecated unused field.
28278	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
28279	// injected kernel, which is deprecated.
28280	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
28281	// exceedingly large number of resources
28282	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
28283	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
28284	// not assigned to an instance on the network.
28285	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
28286	// ip forward.
28287	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
28288	// refers to an instance that does not exist.
28289	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
28290	// URL refers to an instance that is not on the same network as the
28291	// route.
28292	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
28293	// have a status of RUNNING.
28294	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
28295	// continue the process despite the mentioned error.
28296	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
28297	// page.
28298	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
28299	// missing due to errors
28300	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
28301	// that requires a TOS they have not accepted.
28302	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
28303	// resource is in use.
28304	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
28305	// auto-delete could not be deleted because they were in use.
28306	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
28307	// ignored.
28308	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
28309	// instance group manager is valid as such, but its application does not
28310	// make a lot of sense, because it allows only single instance in
28311	// instance group.
28312	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
28313	// are present
28314	//   "UNREACHABLE" - A given scope cannot be reached.
28315	Code string `json:"code,omitempty"`
28316
28317	// Data: [Output Only] Metadata about this warning in key: value format.
28318	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
28319	// }
28320	Data []*NodeTypeListWarningData `json:"data,omitempty"`
28321
28322	// Message: [Output Only] A human-readable description of the warning
28323	// code.
28324	Message string `json:"message,omitempty"`
28325
28326	// ForceSendFields is a list of field names (e.g. "Code") to
28327	// unconditionally include in API requests. By default, fields with
28328	// empty or default values are omitted from API requests. However, any
28329	// non-pointer, non-interface field appearing in ForceSendFields will be
28330	// sent to the server regardless of whether the field is empty or not.
28331	// This may be used to include empty fields in Patch requests.
28332	ForceSendFields []string `json:"-"`
28333
28334	// NullFields is a list of field names (e.g. "Code") to include in API
28335	// requests with the JSON null value. By default, fields with empty
28336	// values are omitted from API requests. However, any field with an
28337	// empty value appearing in NullFields will be sent to the server as
28338	// null. It is an error if a field in this list has a non-empty value.
28339	// This may be used to include null fields in Patch requests.
28340	NullFields []string `json:"-"`
28341}
28342
28343func (s *NodeTypeListWarning) MarshalJSON() ([]byte, error) {
28344	type NoMethod NodeTypeListWarning
28345	raw := NoMethod(*s)
28346	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28347}
28348
28349type NodeTypeListWarningData struct {
28350	// Key: [Output Only] A key that provides more detail on the warning
28351	// being returned. For example, for warnings where there are no results
28352	// in a list request for a particular zone, this key might be scope and
28353	// the key value might be the zone name. Other examples might be a key
28354	// indicating a deprecated resource and a suggested replacement, or a
28355	// warning about invalid network settings (for example, if an instance
28356	// attempts to perform IP forwarding but is not enabled for IP
28357	// forwarding).
28358	Key string `json:"key,omitempty"`
28359
28360	// Value: [Output Only] A warning data value corresponding to the key.
28361	Value string `json:"value,omitempty"`
28362
28363	// ForceSendFields is a list of field names (e.g. "Key") to
28364	// unconditionally include in API requests. By default, fields with
28365	// empty or default values are omitted from API requests. However, any
28366	// non-pointer, non-interface field appearing in ForceSendFields will be
28367	// sent to the server regardless of whether the field is empty or not.
28368	// This may be used to include empty fields in Patch requests.
28369	ForceSendFields []string `json:"-"`
28370
28371	// NullFields is a list of field names (e.g. "Key") to include in API
28372	// requests with the JSON null value. By default, fields with empty
28373	// values are omitted from API requests. However, any field with an
28374	// empty value appearing in NullFields will be sent to the server as
28375	// null. It is an error if a field in this list has a non-empty value.
28376	// This may be used to include null fields in Patch requests.
28377	NullFields []string `json:"-"`
28378}
28379
28380func (s *NodeTypeListWarningData) MarshalJSON() ([]byte, error) {
28381	type NoMethod NodeTypeListWarningData
28382	raw := NoMethod(*s)
28383	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28384}
28385
28386type NodeTypesScopedList struct {
28387	// NodeTypes: [Output Only] A list of node types contained in this
28388	// scope.
28389	NodeTypes []*NodeType `json:"nodeTypes,omitempty"`
28390
28391	// Warning: [Output Only] An informational warning that appears when the
28392	// node types list is empty.
28393	Warning *NodeTypesScopedListWarning `json:"warning,omitempty"`
28394
28395	// ForceSendFields is a list of field names (e.g. "NodeTypes") to
28396	// unconditionally include in API requests. By default, fields with
28397	// empty or default values are omitted from API requests. However, any
28398	// non-pointer, non-interface field appearing in ForceSendFields will be
28399	// sent to the server regardless of whether the field is empty or not.
28400	// This may be used to include empty fields in Patch requests.
28401	ForceSendFields []string `json:"-"`
28402
28403	// NullFields is a list of field names (e.g. "NodeTypes") to include in
28404	// API requests with the JSON null value. By default, fields with empty
28405	// values are omitted from API requests. However, any field with an
28406	// empty value appearing in NullFields will be sent to the server as
28407	// null. It is an error if a field in this list has a non-empty value.
28408	// This may be used to include null fields in Patch requests.
28409	NullFields []string `json:"-"`
28410}
28411
28412func (s *NodeTypesScopedList) MarshalJSON() ([]byte, error) {
28413	type NoMethod NodeTypesScopedList
28414	raw := NoMethod(*s)
28415	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28416}
28417
28418// NodeTypesScopedListWarning: [Output Only] An informational warning
28419// that appears when the node types list is empty.
28420type NodeTypesScopedListWarning struct {
28421	// Code: [Output Only] A warning code, if applicable. For example,
28422	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28423	// the response.
28424	//
28425	// Possible values:
28426	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
28427	// changes made by a failed operation.
28428	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
28429	// created.
28430	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
28431	// resources has a type marked as deprecated
28432	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
28433	// that is larger than image size.
28434	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
28435	// resources has a type marked as experimental
28436	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
28437	// call
28438	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
28439	// overridden. Deprecated unused field.
28440	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
28441	// injected kernel, which is deprecated.
28442	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
28443	// exceedingly large number of resources
28444	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
28445	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
28446	// not assigned to an instance on the network.
28447	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
28448	// ip forward.
28449	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
28450	// refers to an instance that does not exist.
28451	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
28452	// URL refers to an instance that is not on the same network as the
28453	// route.
28454	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
28455	// have a status of RUNNING.
28456	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
28457	// continue the process despite the mentioned error.
28458	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
28459	// page.
28460	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
28461	// missing due to errors
28462	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
28463	// that requires a TOS they have not accepted.
28464	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
28465	// resource is in use.
28466	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
28467	// auto-delete could not be deleted because they were in use.
28468	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
28469	// ignored.
28470	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
28471	// instance group manager is valid as such, but its application does not
28472	// make a lot of sense, because it allows only single instance in
28473	// instance group.
28474	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
28475	// are present
28476	//   "UNREACHABLE" - A given scope cannot be reached.
28477	Code string `json:"code,omitempty"`
28478
28479	// Data: [Output Only] Metadata about this warning in key: value format.
28480	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
28481	// }
28482	Data []*NodeTypesScopedListWarningData `json:"data,omitempty"`
28483
28484	// Message: [Output Only] A human-readable description of the warning
28485	// code.
28486	Message string `json:"message,omitempty"`
28487
28488	// ForceSendFields is a list of field names (e.g. "Code") to
28489	// unconditionally include in API requests. By default, fields with
28490	// empty or default values are omitted from API requests. However, any
28491	// non-pointer, non-interface field appearing in ForceSendFields will be
28492	// sent to the server regardless of whether the field is empty or not.
28493	// This may be used to include empty fields in Patch requests.
28494	ForceSendFields []string `json:"-"`
28495
28496	// NullFields is a list of field names (e.g. "Code") to include in API
28497	// requests with the JSON null value. By default, fields with empty
28498	// values are omitted from API requests. However, any field with an
28499	// empty value appearing in NullFields will be sent to the server as
28500	// null. It is an error if a field in this list has a non-empty value.
28501	// This may be used to include null fields in Patch requests.
28502	NullFields []string `json:"-"`
28503}
28504
28505func (s *NodeTypesScopedListWarning) MarshalJSON() ([]byte, error) {
28506	type NoMethod NodeTypesScopedListWarning
28507	raw := NoMethod(*s)
28508	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28509}
28510
28511type NodeTypesScopedListWarningData struct {
28512	// Key: [Output Only] A key that provides more detail on the warning
28513	// being returned. For example, for warnings where there are no results
28514	// in a list request for a particular zone, this key might be scope and
28515	// the key value might be the zone name. Other examples might be a key
28516	// indicating a deprecated resource and a suggested replacement, or a
28517	// warning about invalid network settings (for example, if an instance
28518	// attempts to perform IP forwarding but is not enabled for IP
28519	// forwarding).
28520	Key string `json:"key,omitempty"`
28521
28522	// Value: [Output Only] A warning data value corresponding to the key.
28523	Value string `json:"value,omitempty"`
28524
28525	// ForceSendFields is a list of field names (e.g. "Key") to
28526	// unconditionally include in API requests. By default, fields with
28527	// empty or default values are omitted from API requests. However, any
28528	// non-pointer, non-interface field appearing in ForceSendFields will be
28529	// sent to the server regardless of whether the field is empty or not.
28530	// This may be used to include empty fields in Patch requests.
28531	ForceSendFields []string `json:"-"`
28532
28533	// NullFields is a list of field names (e.g. "Key") to include in API
28534	// requests with the JSON null value. By default, fields with empty
28535	// values are omitted from API requests. However, any field with an
28536	// empty value appearing in NullFields will be sent to the server as
28537	// null. It is an error if a field in this list has a non-empty value.
28538	// This may be used to include null fields in Patch requests.
28539	NullFields []string `json:"-"`
28540}
28541
28542func (s *NodeTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
28543	type NoMethod NodeTypesScopedListWarningData
28544	raw := NoMethod(*s)
28545	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28546}
28547
28548// NotificationEndpoint: Represents a notification endpoint. A
28549// notification endpoint resource defines an endpoint to receive
28550// notifications when there are status changes detected by the
28551// associated health check service. For more information, see Health
28552// checks overview.
28553type NotificationEndpoint struct {
28554	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
28555	// format.
28556	CreationTimestamp string `json:"creationTimestamp,omitempty"`
28557
28558	// Description: An optional description of this resource. Provide this
28559	// property when you create the resource.
28560	Description string `json:"description,omitempty"`
28561
28562	// GrpcSettings: Settings of the gRPC notification endpoint including
28563	// the endpoint URL and the retry duration.
28564	GrpcSettings *NotificationEndpointGrpcSettings `json:"grpcSettings,omitempty"`
28565
28566	// Id: [Output Only] A unique identifier for this resource type. The
28567	// server generates this identifier.
28568	Id uint64 `json:"id,omitempty,string"`
28569
28570	// Kind: [Output Only] Type of the resource. Always
28571	// compute#notificationEndpoint for notification endpoints.
28572	Kind string `json:"kind,omitempty"`
28573
28574	// Name: Name of the resource. Provided by the client when the resource
28575	// is created. The name must be 1-63 characters long, and comply with
28576	// RFC1035. Specifically, the name must be 1-63 characters long and
28577	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
28578	// the first character must be a lowercase letter, and all following
28579	// characters must be a dash, lowercase letter, or digit, except the
28580	// last character, which cannot be a dash.
28581	Name string `json:"name,omitempty"`
28582
28583	// Region: [Output Only] URL of the region where the notification
28584	// endpoint resides. This field applies only to the regional resource.
28585	// You must specify this field as part of the HTTP request URL. It is
28586	// not settable as a field in the request body.
28587	Region string `json:"region,omitempty"`
28588
28589	// SelfLink: [Output Only] Server-defined URL for the resource.
28590	SelfLink string `json:"selfLink,omitempty"`
28591
28592	// ServerResponse contains the HTTP response code and headers from the
28593	// server.
28594	googleapi.ServerResponse `json:"-"`
28595
28596	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
28597	// to unconditionally include in API requests. By default, fields with
28598	// empty or default values are omitted from API requests. However, any
28599	// non-pointer, non-interface field appearing in ForceSendFields will be
28600	// sent to the server regardless of whether the field is empty or not.
28601	// This may be used to include empty fields in Patch requests.
28602	ForceSendFields []string `json:"-"`
28603
28604	// NullFields is a list of field names (e.g. "CreationTimestamp") to
28605	// include in API requests with the JSON null value. By default, fields
28606	// with empty values are omitted from API requests. However, any field
28607	// with an empty value appearing in NullFields will be sent to the
28608	// server as null. It is an error if a field in this list has a
28609	// non-empty value. This may be used to include null fields in Patch
28610	// requests.
28611	NullFields []string `json:"-"`
28612}
28613
28614func (s *NotificationEndpoint) MarshalJSON() ([]byte, error) {
28615	type NoMethod NotificationEndpoint
28616	raw := NoMethod(*s)
28617	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28618}
28619
28620// NotificationEndpointGrpcSettings: Represents a gRPC setting that
28621// describes one gRPC notification endpoint and the retry duration
28622// attempting to send notification to this endpoint.
28623type NotificationEndpointGrpcSettings struct {
28624	// Authority: Optional. If specified, this field is used to set the
28625	// authority header by the sender of notifications. See
28626	// https://tools.ietf.org/html/rfc7540#section-8.1.2.3
28627	Authority string `json:"authority,omitempty"`
28628
28629	// Endpoint: Endpoint to which gRPC notifications are sent. This must be
28630	// a valid gRPCLB DNS name.
28631	Endpoint string `json:"endpoint,omitempty"`
28632
28633	// PayloadName: Optional. If specified, this field is used to populate
28634	// the "name" field in gRPC requests.
28635	PayloadName string `json:"payloadName,omitempty"`
28636
28637	// ResendInterval: Optional. This field is used to configure how often
28638	// to send a full update of all non-healthy backends. If unspecified,
28639	// full updates are not sent. If specified, must be in the range between
28640	// 600 seconds to 3600 seconds. Nanos are disallowed.
28641	ResendInterval *Duration `json:"resendInterval,omitempty"`
28642
28643	// RetryDurationSec: How much time (in seconds) is spent attempting
28644	// notification retries until a successful response is received. Default
28645	// is 30s. Limit is 20m (1200s). Must be a positive number.
28646	RetryDurationSec int64 `json:"retryDurationSec,omitempty"`
28647
28648	// ForceSendFields is a list of field names (e.g. "Authority") to
28649	// unconditionally include in API requests. By default, fields with
28650	// empty or default values are omitted from API requests. However, any
28651	// non-pointer, non-interface field appearing in ForceSendFields will be
28652	// sent to the server regardless of whether the field is empty or not.
28653	// This may be used to include empty fields in Patch requests.
28654	ForceSendFields []string `json:"-"`
28655
28656	// NullFields is a list of field names (e.g. "Authority") to include in
28657	// API requests with the JSON null value. By default, fields with empty
28658	// values are omitted from API requests. However, any field with an
28659	// empty value appearing in NullFields will be sent to the server as
28660	// null. It is an error if a field in this list has a non-empty value.
28661	// This may be used to include null fields in Patch requests.
28662	NullFields []string `json:"-"`
28663}
28664
28665func (s *NotificationEndpointGrpcSettings) MarshalJSON() ([]byte, error) {
28666	type NoMethod NotificationEndpointGrpcSettings
28667	raw := NoMethod(*s)
28668	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28669}
28670
28671type NotificationEndpointList struct {
28672	// Id: [Output Only] Unique identifier for the resource; defined by the
28673	// server.
28674	Id string `json:"id,omitempty"`
28675
28676	// Items: A list of NotificationEndpoint resources.
28677	Items []*NotificationEndpoint `json:"items,omitempty"`
28678
28679	// Kind: [Output Only] Type of the resource. Always
28680	// compute#notificationEndpoint for notification endpoints.
28681	Kind string `json:"kind,omitempty"`
28682
28683	// NextPageToken: [Output Only] This token allows you to get the next
28684	// page of results for list requests. If the number of results is larger
28685	// than maxResults, use the nextPageToken as a value for the query
28686	// parameter pageToken in the next list request. Subsequent list
28687	// requests will have their own nextPageToken to continue paging through
28688	// the results.
28689	NextPageToken string `json:"nextPageToken,omitempty"`
28690
28691	// SelfLink: [Output Only] Server-defined URL for this resource.
28692	SelfLink string `json:"selfLink,omitempty"`
28693
28694	// Warning: [Output Only] Informational warning message.
28695	Warning *NotificationEndpointListWarning `json:"warning,omitempty"`
28696
28697	// ServerResponse contains the HTTP response code and headers from the
28698	// server.
28699	googleapi.ServerResponse `json:"-"`
28700
28701	// ForceSendFields is a list of field names (e.g. "Id") to
28702	// unconditionally include in API requests. By default, fields with
28703	// empty or default values are omitted from API requests. However, any
28704	// non-pointer, non-interface field appearing in ForceSendFields will be
28705	// sent to the server regardless of whether the field is empty or not.
28706	// This may be used to include empty fields in Patch requests.
28707	ForceSendFields []string `json:"-"`
28708
28709	// NullFields is a list of field names (e.g. "Id") to include in API
28710	// requests with the JSON null value. By default, fields with empty
28711	// values are omitted from API requests. However, any field with an
28712	// empty value appearing in NullFields will be sent to the server as
28713	// null. It is an error if a field in this list has a non-empty value.
28714	// This may be used to include null fields in Patch requests.
28715	NullFields []string `json:"-"`
28716}
28717
28718func (s *NotificationEndpointList) MarshalJSON() ([]byte, error) {
28719	type NoMethod NotificationEndpointList
28720	raw := NoMethod(*s)
28721	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28722}
28723
28724// NotificationEndpointListWarning: [Output Only] Informational warning
28725// message.
28726type NotificationEndpointListWarning struct {
28727	// Code: [Output Only] A warning code, if applicable. For example,
28728	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28729	// the response.
28730	//
28731	// Possible values:
28732	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
28733	// changes made by a failed operation.
28734	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
28735	// created.
28736	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
28737	// resources has a type marked as deprecated
28738	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
28739	// that is larger than image size.
28740	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
28741	// resources has a type marked as experimental
28742	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
28743	// call
28744	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
28745	// overridden. Deprecated unused field.
28746	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
28747	// injected kernel, which is deprecated.
28748	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
28749	// exceedingly large number of resources
28750	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
28751	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
28752	// not assigned to an instance on the network.
28753	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
28754	// ip forward.
28755	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
28756	// refers to an instance that does not exist.
28757	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
28758	// URL refers to an instance that is not on the same network as the
28759	// route.
28760	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
28761	// have a status of RUNNING.
28762	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
28763	// continue the process despite the mentioned error.
28764	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
28765	// page.
28766	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
28767	// missing due to errors
28768	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
28769	// that requires a TOS they have not accepted.
28770	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
28771	// resource is in use.
28772	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
28773	// auto-delete could not be deleted because they were in use.
28774	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
28775	// ignored.
28776	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
28777	// instance group manager is valid as such, but its application does not
28778	// make a lot of sense, because it allows only single instance in
28779	// instance group.
28780	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
28781	// are present
28782	//   "UNREACHABLE" - A given scope cannot be reached.
28783	Code string `json:"code,omitempty"`
28784
28785	// Data: [Output Only] Metadata about this warning in key: value format.
28786	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
28787	// }
28788	Data []*NotificationEndpointListWarningData `json:"data,omitempty"`
28789
28790	// Message: [Output Only] A human-readable description of the warning
28791	// code.
28792	Message string `json:"message,omitempty"`
28793
28794	// ForceSendFields is a list of field names (e.g. "Code") to
28795	// unconditionally include in API requests. By default, fields with
28796	// empty or default values are omitted from API requests. However, any
28797	// non-pointer, non-interface field appearing in ForceSendFields will be
28798	// sent to the server regardless of whether the field is empty or not.
28799	// This may be used to include empty fields in Patch requests.
28800	ForceSendFields []string `json:"-"`
28801
28802	// NullFields is a list of field names (e.g. "Code") to include in API
28803	// requests with the JSON null value. By default, fields with empty
28804	// values are omitted from API requests. However, any field with an
28805	// empty value appearing in NullFields will be sent to the server as
28806	// null. It is an error if a field in this list has a non-empty value.
28807	// This may be used to include null fields in Patch requests.
28808	NullFields []string `json:"-"`
28809}
28810
28811func (s *NotificationEndpointListWarning) MarshalJSON() ([]byte, error) {
28812	type NoMethod NotificationEndpointListWarning
28813	raw := NoMethod(*s)
28814	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28815}
28816
28817type NotificationEndpointListWarningData struct {
28818	// Key: [Output Only] A key that provides more detail on the warning
28819	// being returned. For example, for warnings where there are no results
28820	// in a list request for a particular zone, this key might be scope and
28821	// the key value might be the zone name. Other examples might be a key
28822	// indicating a deprecated resource and a suggested replacement, or a
28823	// warning about invalid network settings (for example, if an instance
28824	// attempts to perform IP forwarding but is not enabled for IP
28825	// forwarding).
28826	Key string `json:"key,omitempty"`
28827
28828	// Value: [Output Only] A warning data value corresponding to the key.
28829	Value string `json:"value,omitempty"`
28830
28831	// ForceSendFields is a list of field names (e.g. "Key") to
28832	// unconditionally include in API requests. By default, fields with
28833	// empty or default values are omitted from API requests. However, any
28834	// non-pointer, non-interface field appearing in ForceSendFields will be
28835	// sent to the server regardless of whether the field is empty or not.
28836	// This may be used to include empty fields in Patch requests.
28837	ForceSendFields []string `json:"-"`
28838
28839	// NullFields is a list of field names (e.g. "Key") to include in API
28840	// requests with the JSON null value. By default, fields with empty
28841	// values are omitted from API requests. However, any field with an
28842	// empty value appearing in NullFields will be sent to the server as
28843	// null. It is an error if a field in this list has a non-empty value.
28844	// This may be used to include null fields in Patch requests.
28845	NullFields []string `json:"-"`
28846}
28847
28848func (s *NotificationEndpointListWarningData) MarshalJSON() ([]byte, error) {
28849	type NoMethod NotificationEndpointListWarningData
28850	raw := NoMethod(*s)
28851	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28852}
28853
28854// Operation: Represents an Operation resource. Google Compute Engine
28855// has three Operation resources: * Global
28856// (/compute/docs/reference/rest/v1/globalOperations) * Regional
28857// (/compute/docs/reference/rest/v1/regionOperations) * Zonal
28858// (/compute/docs/reference/rest/v1/zoneOperations) You can use an
28859// operation resource to manage asynchronous API requests. For more
28860// information, read Handling API responses. Operations can be global,
28861// regional or zonal. - For global operations, use the
28862// `globalOperations` resource. - For regional operations, use the
28863// `regionOperations` resource. - For zonal operations, use the
28864// `zonalOperations` resource. For more information, read Global,
28865// Regional, and Zonal Resources.
28866type Operation struct {
28867	// ClientOperationId: [Output Only] The value of `requestId` if you
28868	// provided it in the request. Not present otherwise.
28869	ClientOperationId string `json:"clientOperationId,omitempty"`
28870
28871	// CreationTimestamp: [Deprecated] This field is deprecated.
28872	CreationTimestamp string `json:"creationTimestamp,omitempty"`
28873
28874	// Description: [Output Only] A textual description of the operation,
28875	// which is set when the operation is created.
28876	Description string `json:"description,omitempty"`
28877
28878	// EndTime: [Output Only] The time that this operation was completed.
28879	// This value is in RFC3339 text format.
28880	EndTime string `json:"endTime,omitempty"`
28881
28882	// Error: [Output Only] If errors are generated during processing of the
28883	// operation, this field will be populated.
28884	Error *OperationError `json:"error,omitempty"`
28885
28886	// HttpErrorMessage: [Output Only] If the operation fails, this field
28887	// contains the HTTP error message that was returned, such as `NOT
28888	// FOUND`.
28889	HttpErrorMessage string `json:"httpErrorMessage,omitempty"`
28890
28891	// HttpErrorStatusCode: [Output Only] If the operation fails, this field
28892	// contains the HTTP error status code that was returned. For example, a
28893	// `404` means the resource was not found.
28894	HttpErrorStatusCode int64 `json:"httpErrorStatusCode,omitempty"`
28895
28896	// Id: [Output Only] The unique identifier for the operation. This
28897	// identifier is defined by the server.
28898	Id uint64 `json:"id,omitempty,string"`
28899
28900	// InsertTime: [Output Only] The time that this operation was requested.
28901	// This value is in RFC3339 text format.
28902	InsertTime string `json:"insertTime,omitempty"`
28903
28904	// Kind: [Output Only] Type of the resource. Always `compute#operation`
28905	// for Operation resources.
28906	Kind string `json:"kind,omitempty"`
28907
28908	// Name: [Output Only] Name of the operation.
28909	Name string `json:"name,omitempty"`
28910
28911	// OperationGroupId: [Output Only] An ID that represents a group of
28912	// operations, such as when a group of operations results from a
28913	// `bulkInsert` API request.
28914	OperationGroupId string `json:"operationGroupId,omitempty"`
28915
28916	// OperationType: [Output Only] The type of operation, such as `insert`,
28917	// `update`, or `delete`, and so on.
28918	OperationType string `json:"operationType,omitempty"`
28919
28920	// Progress: [Output Only] An optional progress indicator that ranges
28921	// from 0 to 100. There is no requirement that this be linear or support
28922	// any granularity of operations. This should not be used to guess when
28923	// the operation will be complete. This number should monotonically
28924	// increase as the operation progresses.
28925	Progress int64 `json:"progress,omitempty"`
28926
28927	// Region: [Output Only] The URL of the region where the operation
28928	// resides. Only applicable when performing regional operations.
28929	Region string `json:"region,omitempty"`
28930
28931	// SelfLink: [Output Only] Server-defined URL for the resource.
28932	SelfLink string `json:"selfLink,omitempty"`
28933
28934	// StartTime: [Output Only] The time that this operation was started by
28935	// the server. This value is in RFC3339 text format.
28936	StartTime string `json:"startTime,omitempty"`
28937
28938	// Status: [Output Only] The status of the operation, which can be one
28939	// of the following: `PENDING`, `RUNNING`, or `DONE`.
28940	//
28941	// Possible values:
28942	//   "DONE"
28943	//   "PENDING"
28944	//   "RUNNING"
28945	Status string `json:"status,omitempty"`
28946
28947	// StatusMessage: [Output Only] An optional textual description of the
28948	// current status of the operation.
28949	StatusMessage string `json:"statusMessage,omitempty"`
28950
28951	// TargetId: [Output Only] The unique target ID, which identifies a
28952	// specific incarnation of the target resource.
28953	TargetId uint64 `json:"targetId,omitempty,string"`
28954
28955	// TargetLink: [Output Only] The URL of the resource that the operation
28956	// modifies. For operations related to creating a snapshot, this points
28957	// to the persistent disk that the snapshot was created from.
28958	TargetLink string `json:"targetLink,omitempty"`
28959
28960	// User: [Output Only] User who requested the operation, for example:
28961	// `user@example.com`.
28962	User string `json:"user,omitempty"`
28963
28964	// Warnings: [Output Only] If warning messages are generated during
28965	// processing of the operation, this field will be populated.
28966	Warnings []*OperationWarnings `json:"warnings,omitempty"`
28967
28968	// Zone: [Output Only] The URL of the zone where the operation resides.
28969	// Only applicable when performing per-zone operations.
28970	Zone string `json:"zone,omitempty"`
28971
28972	// ServerResponse contains the HTTP response code and headers from the
28973	// server.
28974	googleapi.ServerResponse `json:"-"`
28975
28976	// ForceSendFields is a list of field names (e.g. "ClientOperationId")
28977	// to unconditionally include in API requests. By default, fields with
28978	// empty or default values are omitted from API requests. However, any
28979	// non-pointer, non-interface field appearing in ForceSendFields will be
28980	// sent to the server regardless of whether the field is empty or not.
28981	// This may be used to include empty fields in Patch requests.
28982	ForceSendFields []string `json:"-"`
28983
28984	// NullFields is a list of field names (e.g. "ClientOperationId") to
28985	// include in API requests with the JSON null value. By default, fields
28986	// with empty values are omitted from API requests. However, any field
28987	// with an empty value appearing in NullFields will be sent to the
28988	// server as null. It is an error if a field in this list has a
28989	// non-empty value. This may be used to include null fields in Patch
28990	// requests.
28991	NullFields []string `json:"-"`
28992}
28993
28994func (s *Operation) MarshalJSON() ([]byte, error) {
28995	type NoMethod Operation
28996	raw := NoMethod(*s)
28997	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28998}
28999
29000// OperationError: [Output Only] If errors are generated during
29001// processing of the operation, this field will be populated.
29002type OperationError struct {
29003	// Errors: [Output Only] The array of errors encountered while
29004	// processing this operation.
29005	Errors []*OperationErrorErrors `json:"errors,omitempty"`
29006
29007	// ForceSendFields is a list of field names (e.g. "Errors") to
29008	// unconditionally include in API requests. By default, fields with
29009	// empty or default values are omitted from API requests. However, any
29010	// non-pointer, non-interface field appearing in ForceSendFields will be
29011	// sent to the server regardless of whether the field is empty or not.
29012	// This may be used to include empty fields in Patch requests.
29013	ForceSendFields []string `json:"-"`
29014
29015	// NullFields is a list of field names (e.g. "Errors") to include in API
29016	// requests with the JSON null value. By default, fields with empty
29017	// values are omitted from API requests. However, any field with an
29018	// empty value appearing in NullFields will be sent to the server as
29019	// null. It is an error if a field in this list has a non-empty value.
29020	// This may be used to include null fields in Patch requests.
29021	NullFields []string `json:"-"`
29022}
29023
29024func (s *OperationError) MarshalJSON() ([]byte, error) {
29025	type NoMethod OperationError
29026	raw := NoMethod(*s)
29027	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29028}
29029
29030type OperationErrorErrors struct {
29031	// Code: [Output Only] The error type identifier for this error.
29032	Code string `json:"code,omitempty"`
29033
29034	// Location: [Output Only] Indicates the field in the request that
29035	// caused the error. This property is optional.
29036	Location string `json:"location,omitempty"`
29037
29038	// Message: [Output Only] An optional, human-readable error message.
29039	Message string `json:"message,omitempty"`
29040
29041	// ForceSendFields is a list of field names (e.g. "Code") to
29042	// unconditionally include in API requests. By default, fields with
29043	// empty or default values are omitted from API requests. However, any
29044	// non-pointer, non-interface field appearing in ForceSendFields will be
29045	// sent to the server regardless of whether the field is empty or not.
29046	// This may be used to include empty fields in Patch requests.
29047	ForceSendFields []string `json:"-"`
29048
29049	// NullFields is a list of field names (e.g. "Code") to include in API
29050	// requests with the JSON null value. By default, fields with empty
29051	// values are omitted from API requests. However, any field with an
29052	// empty value appearing in NullFields will be sent to the server as
29053	// null. It is an error if a field in this list has a non-empty value.
29054	// This may be used to include null fields in Patch requests.
29055	NullFields []string `json:"-"`
29056}
29057
29058func (s *OperationErrorErrors) MarshalJSON() ([]byte, error) {
29059	type NoMethod OperationErrorErrors
29060	raw := NoMethod(*s)
29061	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29062}
29063
29064type OperationWarnings struct {
29065	// Code: [Output Only] A warning code, if applicable. For example,
29066	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29067	// the response.
29068	//
29069	// Possible values:
29070	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
29071	// changes made by a failed operation.
29072	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
29073	// created.
29074	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
29075	// resources has a type marked as deprecated
29076	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
29077	// that is larger than image size.
29078	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
29079	// resources has a type marked as experimental
29080	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
29081	// call
29082	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
29083	// overridden. Deprecated unused field.
29084	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
29085	// injected kernel, which is deprecated.
29086	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
29087	// exceedingly large number of resources
29088	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
29089	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
29090	// not assigned to an instance on the network.
29091	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
29092	// ip forward.
29093	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
29094	// refers to an instance that does not exist.
29095	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
29096	// URL refers to an instance that is not on the same network as the
29097	// route.
29098	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
29099	// have a status of RUNNING.
29100	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
29101	// continue the process despite the mentioned error.
29102	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
29103	// page.
29104	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
29105	// missing due to errors
29106	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
29107	// that requires a TOS they have not accepted.
29108	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
29109	// resource is in use.
29110	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
29111	// auto-delete could not be deleted because they were in use.
29112	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
29113	// ignored.
29114	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
29115	// instance group manager is valid as such, but its application does not
29116	// make a lot of sense, because it allows only single instance in
29117	// instance group.
29118	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
29119	// are present
29120	//   "UNREACHABLE" - A given scope cannot be reached.
29121	Code string `json:"code,omitempty"`
29122
29123	// Data: [Output Only] Metadata about this warning in key: value format.
29124	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
29125	// }
29126	Data []*OperationWarningsData `json:"data,omitempty"`
29127
29128	// Message: [Output Only] A human-readable description of the warning
29129	// code.
29130	Message string `json:"message,omitempty"`
29131
29132	// ForceSendFields is a list of field names (e.g. "Code") to
29133	// unconditionally include in API requests. By default, fields with
29134	// empty or default values are omitted from API requests. However, any
29135	// non-pointer, non-interface field appearing in ForceSendFields will be
29136	// sent to the server regardless of whether the field is empty or not.
29137	// This may be used to include empty fields in Patch requests.
29138	ForceSendFields []string `json:"-"`
29139
29140	// NullFields is a list of field names (e.g. "Code") to include in API
29141	// requests with the JSON null value. By default, fields with empty
29142	// values are omitted from API requests. However, any field with an
29143	// empty value appearing in NullFields will be sent to the server as
29144	// null. It is an error if a field in this list has a non-empty value.
29145	// This may be used to include null fields in Patch requests.
29146	NullFields []string `json:"-"`
29147}
29148
29149func (s *OperationWarnings) MarshalJSON() ([]byte, error) {
29150	type NoMethod OperationWarnings
29151	raw := NoMethod(*s)
29152	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29153}
29154
29155type OperationWarningsData struct {
29156	// Key: [Output Only] A key that provides more detail on the warning
29157	// being returned. For example, for warnings where there are no results
29158	// in a list request for a particular zone, this key might be scope and
29159	// the key value might be the zone name. Other examples might be a key
29160	// indicating a deprecated resource and a suggested replacement, or a
29161	// warning about invalid network settings (for example, if an instance
29162	// attempts to perform IP forwarding but is not enabled for IP
29163	// forwarding).
29164	Key string `json:"key,omitempty"`
29165
29166	// Value: [Output Only] A warning data value corresponding to the key.
29167	Value string `json:"value,omitempty"`
29168
29169	// ForceSendFields is a list of field names (e.g. "Key") to
29170	// unconditionally include in API requests. By default, fields with
29171	// empty or default values are omitted from API requests. However, any
29172	// non-pointer, non-interface field appearing in ForceSendFields will be
29173	// sent to the server regardless of whether the field is empty or not.
29174	// This may be used to include empty fields in Patch requests.
29175	ForceSendFields []string `json:"-"`
29176
29177	// NullFields is a list of field names (e.g. "Key") to include in API
29178	// requests with the JSON null value. By default, fields with empty
29179	// values are omitted from API requests. However, any field with an
29180	// empty value appearing in NullFields will be sent to the server as
29181	// null. It is an error if a field in this list has a non-empty value.
29182	// This may be used to include null fields in Patch requests.
29183	NullFields []string `json:"-"`
29184}
29185
29186func (s *OperationWarningsData) MarshalJSON() ([]byte, error) {
29187	type NoMethod OperationWarningsData
29188	raw := NoMethod(*s)
29189	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29190}
29191
29192type OperationAggregatedList struct {
29193	// Id: [Output Only] The unique identifier for the resource. This
29194	// identifier is defined by the server.
29195	Id string `json:"id,omitempty"`
29196
29197	// Items: [Output Only] A map of scoped operation lists.
29198	Items map[string]OperationsScopedList `json:"items,omitempty"`
29199
29200	// Kind: [Output Only] Type of resource. Always
29201	// `compute#operationAggregatedList` for aggregated lists of operations.
29202	Kind string `json:"kind,omitempty"`
29203
29204	// NextPageToken: [Output Only] This token allows you to get the next
29205	// page of results for list requests. If the number of results is larger
29206	// than `maxResults`, use the `nextPageToken` as a value for the query
29207	// parameter `pageToken` in the next list request. Subsequent list
29208	// requests will have their own `nextPageToken` to continue paging
29209	// through the results.
29210	NextPageToken string `json:"nextPageToken,omitempty"`
29211
29212	// SelfLink: [Output Only] Server-defined URL for this resource.
29213	SelfLink string `json:"selfLink,omitempty"`
29214
29215	// Unreachables: [Output Only] Unreachable resources.
29216	Unreachables []string `json:"unreachables,omitempty"`
29217
29218	// Warning: [Output Only] Informational warning message.
29219	Warning *OperationAggregatedListWarning `json:"warning,omitempty"`
29220
29221	// ServerResponse contains the HTTP response code and headers from the
29222	// server.
29223	googleapi.ServerResponse `json:"-"`
29224
29225	// ForceSendFields is a list of field names (e.g. "Id") to
29226	// unconditionally include in API requests. By default, fields with
29227	// empty or default values are omitted from API requests. However, any
29228	// non-pointer, non-interface field appearing in ForceSendFields will be
29229	// sent to the server regardless of whether the field is empty or not.
29230	// This may be used to include empty fields in Patch requests.
29231	ForceSendFields []string `json:"-"`
29232
29233	// NullFields is a list of field names (e.g. "Id") to include in API
29234	// requests with the JSON null value. By default, fields with empty
29235	// values are omitted from API requests. However, any field with an
29236	// empty value appearing in NullFields will be sent to the server as
29237	// null. It is an error if a field in this list has a non-empty value.
29238	// This may be used to include null fields in Patch requests.
29239	NullFields []string `json:"-"`
29240}
29241
29242func (s *OperationAggregatedList) MarshalJSON() ([]byte, error) {
29243	type NoMethod OperationAggregatedList
29244	raw := NoMethod(*s)
29245	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29246}
29247
29248// OperationAggregatedListWarning: [Output Only] Informational warning
29249// message.
29250type OperationAggregatedListWarning struct {
29251	// Code: [Output Only] A warning code, if applicable. For example,
29252	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29253	// the response.
29254	//
29255	// Possible values:
29256	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
29257	// changes made by a failed operation.
29258	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
29259	// created.
29260	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
29261	// resources has a type marked as deprecated
29262	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
29263	// that is larger than image size.
29264	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
29265	// resources has a type marked as experimental
29266	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
29267	// call
29268	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
29269	// overridden. Deprecated unused field.
29270	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
29271	// injected kernel, which is deprecated.
29272	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
29273	// exceedingly large number of resources
29274	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
29275	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
29276	// not assigned to an instance on the network.
29277	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
29278	// ip forward.
29279	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
29280	// refers to an instance that does not exist.
29281	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
29282	// URL refers to an instance that is not on the same network as the
29283	// route.
29284	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
29285	// have a status of RUNNING.
29286	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
29287	// continue the process despite the mentioned error.
29288	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
29289	// page.
29290	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
29291	// missing due to errors
29292	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
29293	// that requires a TOS they have not accepted.
29294	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
29295	// resource is in use.
29296	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
29297	// auto-delete could not be deleted because they were in use.
29298	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
29299	// ignored.
29300	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
29301	// instance group manager is valid as such, but its application does not
29302	// make a lot of sense, because it allows only single instance in
29303	// instance group.
29304	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
29305	// are present
29306	//   "UNREACHABLE" - A given scope cannot be reached.
29307	Code string `json:"code,omitempty"`
29308
29309	// Data: [Output Only] Metadata about this warning in key: value format.
29310	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
29311	// }
29312	Data []*OperationAggregatedListWarningData `json:"data,omitempty"`
29313
29314	// Message: [Output Only] A human-readable description of the warning
29315	// code.
29316	Message string `json:"message,omitempty"`
29317
29318	// ForceSendFields is a list of field names (e.g. "Code") to
29319	// unconditionally include in API requests. By default, fields with
29320	// empty or default values are omitted from API requests. However, any
29321	// non-pointer, non-interface field appearing in ForceSendFields will be
29322	// sent to the server regardless of whether the field is empty or not.
29323	// This may be used to include empty fields in Patch requests.
29324	ForceSendFields []string `json:"-"`
29325
29326	// NullFields is a list of field names (e.g. "Code") to include in API
29327	// requests with the JSON null value. By default, fields with empty
29328	// values are omitted from API requests. However, any field with an
29329	// empty value appearing in NullFields will be sent to the server as
29330	// null. It is an error if a field in this list has a non-empty value.
29331	// This may be used to include null fields in Patch requests.
29332	NullFields []string `json:"-"`
29333}
29334
29335func (s *OperationAggregatedListWarning) MarshalJSON() ([]byte, error) {
29336	type NoMethod OperationAggregatedListWarning
29337	raw := NoMethod(*s)
29338	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29339}
29340
29341type OperationAggregatedListWarningData struct {
29342	// Key: [Output Only] A key that provides more detail on the warning
29343	// being returned. For example, for warnings where there are no results
29344	// in a list request for a particular zone, this key might be scope and
29345	// the key value might be the zone name. Other examples might be a key
29346	// indicating a deprecated resource and a suggested replacement, or a
29347	// warning about invalid network settings (for example, if an instance
29348	// attempts to perform IP forwarding but is not enabled for IP
29349	// forwarding).
29350	Key string `json:"key,omitempty"`
29351
29352	// Value: [Output Only] A warning data value corresponding to the key.
29353	Value string `json:"value,omitempty"`
29354
29355	// ForceSendFields is a list of field names (e.g. "Key") to
29356	// unconditionally include in API requests. By default, fields with
29357	// empty or default values are omitted from API requests. However, any
29358	// non-pointer, non-interface field appearing in ForceSendFields will be
29359	// sent to the server regardless of whether the field is empty or not.
29360	// This may be used to include empty fields in Patch requests.
29361	ForceSendFields []string `json:"-"`
29362
29363	// NullFields is a list of field names (e.g. "Key") to include in API
29364	// requests with the JSON null value. By default, fields with empty
29365	// values are omitted from API requests. However, any field with an
29366	// empty value appearing in NullFields will be sent to the server as
29367	// null. It is an error if a field in this list has a non-empty value.
29368	// This may be used to include null fields in Patch requests.
29369	NullFields []string `json:"-"`
29370}
29371
29372func (s *OperationAggregatedListWarningData) MarshalJSON() ([]byte, error) {
29373	type NoMethod OperationAggregatedListWarningData
29374	raw := NoMethod(*s)
29375	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29376}
29377
29378// OperationList: Contains a list of Operation resources.
29379type OperationList struct {
29380	// Id: [Output Only] The unique identifier for the resource. This
29381	// identifier is defined by the server.
29382	Id string `json:"id,omitempty"`
29383
29384	// Items: [Output Only] A list of Operation resources.
29385	Items []*Operation `json:"items,omitempty"`
29386
29387	// Kind: [Output Only] Type of resource. Always `compute#operations` for
29388	// Operations resource.
29389	Kind string `json:"kind,omitempty"`
29390
29391	// NextPageToken: [Output Only] This token allows you to get the next
29392	// page of results for list requests. If the number of results is larger
29393	// than `maxResults`, use the `nextPageToken` as a value for the query
29394	// parameter `pageToken` in the next list request. Subsequent list
29395	// requests will have their own `nextPageToken` to continue paging
29396	// through the results.
29397	NextPageToken string `json:"nextPageToken,omitempty"`
29398
29399	// SelfLink: [Output Only] Server-defined URL for this resource.
29400	SelfLink string `json:"selfLink,omitempty"`
29401
29402	// Warning: [Output Only] Informational warning message.
29403	Warning *OperationListWarning `json:"warning,omitempty"`
29404
29405	// ServerResponse contains the HTTP response code and headers from the
29406	// server.
29407	googleapi.ServerResponse `json:"-"`
29408
29409	// ForceSendFields is a list of field names (e.g. "Id") to
29410	// unconditionally include in API requests. By default, fields with
29411	// empty or default values are omitted from API requests. However, any
29412	// non-pointer, non-interface field appearing in ForceSendFields will be
29413	// sent to the server regardless of whether the field is empty or not.
29414	// This may be used to include empty fields in Patch requests.
29415	ForceSendFields []string `json:"-"`
29416
29417	// NullFields is a list of field names (e.g. "Id") to include in API
29418	// requests with the JSON null value. By default, fields with empty
29419	// values are omitted from API requests. However, any field with an
29420	// empty value appearing in NullFields will be sent to the server as
29421	// null. It is an error if a field in this list has a non-empty value.
29422	// This may be used to include null fields in Patch requests.
29423	NullFields []string `json:"-"`
29424}
29425
29426func (s *OperationList) MarshalJSON() ([]byte, error) {
29427	type NoMethod OperationList
29428	raw := NoMethod(*s)
29429	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29430}
29431
29432// OperationListWarning: [Output Only] Informational warning message.
29433type OperationListWarning struct {
29434	// Code: [Output Only] A warning code, if applicable. For example,
29435	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29436	// the response.
29437	//
29438	// Possible values:
29439	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
29440	// changes made by a failed operation.
29441	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
29442	// created.
29443	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
29444	// resources has a type marked as deprecated
29445	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
29446	// that is larger than image size.
29447	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
29448	// resources has a type marked as experimental
29449	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
29450	// call
29451	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
29452	// overridden. Deprecated unused field.
29453	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
29454	// injected kernel, which is deprecated.
29455	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
29456	// exceedingly large number of resources
29457	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
29458	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
29459	// not assigned to an instance on the network.
29460	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
29461	// ip forward.
29462	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
29463	// refers to an instance that does not exist.
29464	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
29465	// URL refers to an instance that is not on the same network as the
29466	// route.
29467	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
29468	// have a status of RUNNING.
29469	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
29470	// continue the process despite the mentioned error.
29471	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
29472	// page.
29473	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
29474	// missing due to errors
29475	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
29476	// that requires a TOS they have not accepted.
29477	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
29478	// resource is in use.
29479	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
29480	// auto-delete could not be deleted because they were in use.
29481	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
29482	// ignored.
29483	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
29484	// instance group manager is valid as such, but its application does not
29485	// make a lot of sense, because it allows only single instance in
29486	// instance group.
29487	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
29488	// are present
29489	//   "UNREACHABLE" - A given scope cannot be reached.
29490	Code string `json:"code,omitempty"`
29491
29492	// Data: [Output Only] Metadata about this warning in key: value format.
29493	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
29494	// }
29495	Data []*OperationListWarningData `json:"data,omitempty"`
29496
29497	// Message: [Output Only] A human-readable description of the warning
29498	// code.
29499	Message string `json:"message,omitempty"`
29500
29501	// ForceSendFields is a list of field names (e.g. "Code") to
29502	// unconditionally include in API requests. By default, fields with
29503	// empty or default values are omitted from API requests. However, any
29504	// non-pointer, non-interface field appearing in ForceSendFields will be
29505	// sent to the server regardless of whether the field is empty or not.
29506	// This may be used to include empty fields in Patch requests.
29507	ForceSendFields []string `json:"-"`
29508
29509	// NullFields is a list of field names (e.g. "Code") to include in API
29510	// requests with the JSON null value. By default, fields with empty
29511	// values are omitted from API requests. However, any field with an
29512	// empty value appearing in NullFields will be sent to the server as
29513	// null. It is an error if a field in this list has a non-empty value.
29514	// This may be used to include null fields in Patch requests.
29515	NullFields []string `json:"-"`
29516}
29517
29518func (s *OperationListWarning) MarshalJSON() ([]byte, error) {
29519	type NoMethod OperationListWarning
29520	raw := NoMethod(*s)
29521	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29522}
29523
29524type OperationListWarningData struct {
29525	// Key: [Output Only] A key that provides more detail on the warning
29526	// being returned. For example, for warnings where there are no results
29527	// in a list request for a particular zone, this key might be scope and
29528	// the key value might be the zone name. Other examples might be a key
29529	// indicating a deprecated resource and a suggested replacement, or a
29530	// warning about invalid network settings (for example, if an instance
29531	// attempts to perform IP forwarding but is not enabled for IP
29532	// forwarding).
29533	Key string `json:"key,omitempty"`
29534
29535	// Value: [Output Only] A warning data value corresponding to the key.
29536	Value string `json:"value,omitempty"`
29537
29538	// ForceSendFields is a list of field names (e.g. "Key") to
29539	// unconditionally include in API requests. By default, fields with
29540	// empty or default values are omitted from API requests. However, any
29541	// non-pointer, non-interface field appearing in ForceSendFields will be
29542	// sent to the server regardless of whether the field is empty or not.
29543	// This may be used to include empty fields in Patch requests.
29544	ForceSendFields []string `json:"-"`
29545
29546	// NullFields is a list of field names (e.g. "Key") to include in API
29547	// requests with the JSON null value. By default, fields with empty
29548	// values are omitted from API requests. However, any field with an
29549	// empty value appearing in NullFields will be sent to the server as
29550	// null. It is an error if a field in this list has a non-empty value.
29551	// This may be used to include null fields in Patch requests.
29552	NullFields []string `json:"-"`
29553}
29554
29555func (s *OperationListWarningData) MarshalJSON() ([]byte, error) {
29556	type NoMethod OperationListWarningData
29557	raw := NoMethod(*s)
29558	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29559}
29560
29561type OperationsScopedList struct {
29562	// Operations: [Output Only] A list of operations contained in this
29563	// scope.
29564	Operations []*Operation `json:"operations,omitempty"`
29565
29566	// Warning: [Output Only] Informational warning which replaces the list
29567	// of operations when the list is empty.
29568	Warning *OperationsScopedListWarning `json:"warning,omitempty"`
29569
29570	// ForceSendFields is a list of field names (e.g. "Operations") to
29571	// unconditionally include in API requests. By default, fields with
29572	// empty or default values are omitted from API requests. However, any
29573	// non-pointer, non-interface field appearing in ForceSendFields will be
29574	// sent to the server regardless of whether the field is empty or not.
29575	// This may be used to include empty fields in Patch requests.
29576	ForceSendFields []string `json:"-"`
29577
29578	// NullFields is a list of field names (e.g. "Operations") to include in
29579	// API requests with the JSON null value. By default, fields with empty
29580	// values are omitted from API requests. However, any field with an
29581	// empty value appearing in NullFields will be sent to the server as
29582	// null. It is an error if a field in this list has a non-empty value.
29583	// This may be used to include null fields in Patch requests.
29584	NullFields []string `json:"-"`
29585}
29586
29587func (s *OperationsScopedList) MarshalJSON() ([]byte, error) {
29588	type NoMethod OperationsScopedList
29589	raw := NoMethod(*s)
29590	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29591}
29592
29593// OperationsScopedListWarning: [Output Only] Informational warning
29594// which replaces the list of operations when the list is empty.
29595type OperationsScopedListWarning struct {
29596	// Code: [Output Only] A warning code, if applicable. For example,
29597	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29598	// the response.
29599	//
29600	// Possible values:
29601	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
29602	// changes made by a failed operation.
29603	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
29604	// created.
29605	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
29606	// resources has a type marked as deprecated
29607	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
29608	// that is larger than image size.
29609	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
29610	// resources has a type marked as experimental
29611	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
29612	// call
29613	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
29614	// overridden. Deprecated unused field.
29615	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
29616	// injected kernel, which is deprecated.
29617	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
29618	// exceedingly large number of resources
29619	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
29620	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
29621	// not assigned to an instance on the network.
29622	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
29623	// ip forward.
29624	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
29625	// refers to an instance that does not exist.
29626	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
29627	// URL refers to an instance that is not on the same network as the
29628	// route.
29629	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
29630	// have a status of RUNNING.
29631	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
29632	// continue the process despite the mentioned error.
29633	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
29634	// page.
29635	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
29636	// missing due to errors
29637	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
29638	// that requires a TOS they have not accepted.
29639	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
29640	// resource is in use.
29641	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
29642	// auto-delete could not be deleted because they were in use.
29643	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
29644	// ignored.
29645	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
29646	// instance group manager is valid as such, but its application does not
29647	// make a lot of sense, because it allows only single instance in
29648	// instance group.
29649	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
29650	// are present
29651	//   "UNREACHABLE" - A given scope cannot be reached.
29652	Code string `json:"code,omitempty"`
29653
29654	// Data: [Output Only] Metadata about this warning in key: value format.
29655	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
29656	// }
29657	Data []*OperationsScopedListWarningData `json:"data,omitempty"`
29658
29659	// Message: [Output Only] A human-readable description of the warning
29660	// code.
29661	Message string `json:"message,omitempty"`
29662
29663	// ForceSendFields is a list of field names (e.g. "Code") to
29664	// unconditionally include in API requests. By default, fields with
29665	// empty or default values are omitted from API requests. However, any
29666	// non-pointer, non-interface field appearing in ForceSendFields will be
29667	// sent to the server regardless of whether the field is empty or not.
29668	// This may be used to include empty fields in Patch requests.
29669	ForceSendFields []string `json:"-"`
29670
29671	// NullFields is a list of field names (e.g. "Code") to include in API
29672	// requests with the JSON null value. By default, fields with empty
29673	// values are omitted from API requests. However, any field with an
29674	// empty value appearing in NullFields will be sent to the server as
29675	// null. It is an error if a field in this list has a non-empty value.
29676	// This may be used to include null fields in Patch requests.
29677	NullFields []string `json:"-"`
29678}
29679
29680func (s *OperationsScopedListWarning) MarshalJSON() ([]byte, error) {
29681	type NoMethod OperationsScopedListWarning
29682	raw := NoMethod(*s)
29683	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29684}
29685
29686type OperationsScopedListWarningData struct {
29687	// Key: [Output Only] A key that provides more detail on the warning
29688	// being returned. For example, for warnings where there are no results
29689	// in a list request for a particular zone, this key might be scope and
29690	// the key value might be the zone name. Other examples might be a key
29691	// indicating a deprecated resource and a suggested replacement, or a
29692	// warning about invalid network settings (for example, if an instance
29693	// attempts to perform IP forwarding but is not enabled for IP
29694	// forwarding).
29695	Key string `json:"key,omitempty"`
29696
29697	// Value: [Output Only] A warning data value corresponding to the key.
29698	Value string `json:"value,omitempty"`
29699
29700	// ForceSendFields is a list of field names (e.g. "Key") to
29701	// unconditionally include in API requests. By default, fields with
29702	// empty or default values are omitted from API requests. However, any
29703	// non-pointer, non-interface field appearing in ForceSendFields will be
29704	// sent to the server regardless of whether the field is empty or not.
29705	// This may be used to include empty fields in Patch requests.
29706	ForceSendFields []string `json:"-"`
29707
29708	// NullFields is a list of field names (e.g. "Key") to include in API
29709	// requests with the JSON null value. By default, fields with empty
29710	// values are omitted from API requests. However, any field with an
29711	// empty value appearing in NullFields will be sent to the server as
29712	// null. It is an error if a field in this list has a non-empty value.
29713	// This may be used to include null fields in Patch requests.
29714	NullFields []string `json:"-"`
29715}
29716
29717func (s *OperationsScopedListWarningData) MarshalJSON() ([]byte, error) {
29718	type NoMethod OperationsScopedListWarningData
29719	raw := NoMethod(*s)
29720	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29721}
29722
29723// OutlierDetection: Settings controlling the eviction of unhealthy
29724// hosts from the load balancing pool for the backend service.
29725type OutlierDetection struct {
29726	// BaseEjectionTime: The base time that a host is ejected for. The real
29727	// ejection time is equal to the base ejection time multiplied by the
29728	// number of times the host has been ejected. Defaults to 30000ms or
29729	// 30s.
29730	BaseEjectionTime *Duration `json:"baseEjectionTime,omitempty"`
29731
29732	// ConsecutiveErrors: Number of errors before a host is ejected from the
29733	// connection pool. When the backend host is accessed over HTTP, a 5xx
29734	// return code qualifies as an error. Defaults to 5.
29735	ConsecutiveErrors int64 `json:"consecutiveErrors,omitempty"`
29736
29737	// ConsecutiveGatewayFailure: The number of consecutive gateway failures
29738	// (502, 503, 504 status or connection errors that are mapped to one of
29739	// those status codes) before a consecutive gateway failure ejection
29740	// occurs. Defaults to 3.
29741	ConsecutiveGatewayFailure int64 `json:"consecutiveGatewayFailure,omitempty"`
29742
29743	// EnforcingConsecutiveErrors: The percentage chance that a host will be
29744	// actually ejected when an outlier status is detected through
29745	// consecutive 5xx. This setting can be used to disable ejection or to
29746	// ramp it up slowly. Defaults to 0.
29747	EnforcingConsecutiveErrors int64 `json:"enforcingConsecutiveErrors,omitempty"`
29748
29749	// EnforcingConsecutiveGatewayFailure: The percentage chance that a host
29750	// will be actually ejected when an outlier status is detected through
29751	// consecutive gateway failures. This setting can be used to disable
29752	// ejection or to ramp it up slowly. Defaults to 100.
29753	EnforcingConsecutiveGatewayFailure int64 `json:"enforcingConsecutiveGatewayFailure,omitempty"`
29754
29755	// EnforcingSuccessRate: The percentage chance that a host will be
29756	// actually ejected when an outlier status is detected through success
29757	// rate statistics. This setting can be used to disable ejection or to
29758	// ramp it up slowly. Defaults to 100.
29759	EnforcingSuccessRate int64 `json:"enforcingSuccessRate,omitempty"`
29760
29761	// Interval: Time interval between ejection analysis sweeps. This can
29762	// result in both new ejections as well as hosts being returned to
29763	// service. Defaults to 1 second.
29764	Interval *Duration `json:"interval,omitempty"`
29765
29766	// MaxEjectionPercent: Maximum percentage of hosts in the load balancing
29767	// pool for the backend service that can be ejected. Defaults to 50%.
29768	MaxEjectionPercent int64 `json:"maxEjectionPercent,omitempty"`
29769
29770	// SuccessRateMinimumHosts: The number of hosts in a cluster that must
29771	// have enough request volume to detect success rate outliers. If the
29772	// number of hosts is less than this setting, outlier detection via
29773	// success rate statistics is not performed for any host in the cluster.
29774	// Defaults to 5.
29775	SuccessRateMinimumHosts int64 `json:"successRateMinimumHosts,omitempty"`
29776
29777	// SuccessRateRequestVolume: The minimum number of total requests that
29778	// must be collected in one interval (as defined by the interval
29779	// duration above) to include this host in success rate based outlier
29780	// detection. If the volume is lower than this setting, outlier
29781	// detection via success rate statistics is not performed for that host.
29782	// Defaults to 100.
29783	SuccessRateRequestVolume int64 `json:"successRateRequestVolume,omitempty"`
29784
29785	// SuccessRateStdevFactor: This factor is used to determine the ejection
29786	// threshold for success rate outlier ejection. The ejection threshold
29787	// is the difference between the mean success rate, and the product of
29788	// this factor and the standard deviation of the mean success rate: mean
29789	// - (stdev * success_rate_stdev_factor). This factor is divided by a
29790	// thousand to get a double. That is, if the desired factor is 1.9, the
29791	// runtime value should be 1900. Defaults to 1900.
29792	SuccessRateStdevFactor int64 `json:"successRateStdevFactor,omitempty"`
29793
29794	// ForceSendFields is a list of field names (e.g. "BaseEjectionTime") to
29795	// unconditionally include in API requests. By default, fields with
29796	// empty or default values are omitted from API requests. However, any
29797	// non-pointer, non-interface field appearing in ForceSendFields will be
29798	// sent to the server regardless of whether the field is empty or not.
29799	// This may be used to include empty fields in Patch requests.
29800	ForceSendFields []string `json:"-"`
29801
29802	// NullFields is a list of field names (e.g. "BaseEjectionTime") to
29803	// include in API requests with the JSON null value. By default, fields
29804	// with empty values are omitted from API requests. However, any field
29805	// with an empty value appearing in NullFields will be sent to the
29806	// server as null. It is an error if a field in this list has a
29807	// non-empty value. This may be used to include null fields in Patch
29808	// requests.
29809	NullFields []string `json:"-"`
29810}
29811
29812func (s *OutlierDetection) MarshalJSON() ([]byte, error) {
29813	type NoMethod OutlierDetection
29814	raw := NoMethod(*s)
29815	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29816}
29817
29818// PacketMirroring: Represents a Packet Mirroring resource. Packet
29819// Mirroring clones the traffic of specified instances in your Virtual
29820// Private Cloud (VPC) network and forwards it to a collector
29821// destination, such as an instance group of an internal TCP/UDP load
29822// balancer, for analysis or examination. For more information about
29823// setting up Packet Mirroring, see Using Packet Mirroring.
29824type PacketMirroring struct {
29825	// CollectorIlb: The Forwarding Rule resource of type
29826	// loadBalancingScheme=INTERNAL that will be used as collector for
29827	// mirrored traffic. The specified forwarding rule must have
29828	// isMirroringCollector set to true.
29829	CollectorIlb *PacketMirroringForwardingRuleInfo `json:"collectorIlb,omitempty"`
29830
29831	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
29832	// format.
29833	CreationTimestamp string `json:"creationTimestamp,omitempty"`
29834
29835	// Description: An optional description of this resource. Provide this
29836	// property when you create the resource.
29837	Description string `json:"description,omitempty"`
29838
29839	// Enable: Indicates whether or not this packet mirroring takes effect.
29840	// If set to FALSE, this packet mirroring policy will not be enforced on
29841	// the network. The default is TRUE.
29842	//
29843	// Possible values:
29844	//   "FALSE"
29845	//   "TRUE"
29846	Enable string `json:"enable,omitempty"`
29847
29848	// Filter: Filter for mirrored traffic. If unspecified, all traffic is
29849	// mirrored.
29850	Filter *PacketMirroringFilter `json:"filter,omitempty"`
29851
29852	// Id: [Output Only] The unique identifier for the resource. This
29853	// identifier is defined by the server.
29854	Id uint64 `json:"id,omitempty,string"`
29855
29856	// Kind: [Output Only] Type of the resource. Always
29857	// compute#packetMirroring for packet mirrorings.
29858	Kind string `json:"kind,omitempty"`
29859
29860	// MirroredResources: PacketMirroring mirroredResourceInfos.
29861	// MirroredResourceInfo specifies a set of mirrored VM instances,
29862	// subnetworks and/or tags for which traffic from/to all VM instances
29863	// will be mirrored.
29864	MirroredResources *PacketMirroringMirroredResourceInfo `json:"mirroredResources,omitempty"`
29865
29866	// Name: Name of the resource; provided by the client when the resource
29867	// is created. The name must be 1-63 characters long, and comply with
29868	// RFC1035. Specifically, the name must be 1-63 characters long and
29869	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
29870	// the first character must be a lowercase letter, and all following
29871	// characters must be a dash, lowercase letter, or digit, except the
29872	// last character, which cannot be a dash.
29873	Name string `json:"name,omitempty"`
29874
29875	// Network: Specifies the mirrored VPC network. Only packets in this
29876	// network will be mirrored. All mirrored VMs should have a NIC in the
29877	// given network. All mirrored subnetworks should belong to the given
29878	// network.
29879	Network *PacketMirroringNetworkInfo `json:"network,omitempty"`
29880
29881	// Priority: The priority of applying this configuration. Priority is
29882	// used to break ties in cases where there is more than one matching
29883	// rule. In the case of two rules that apply for a given Instance, the
29884	// one with the lowest-numbered priority value wins. Default value is
29885	// 1000. Valid range is 0 through 65535.
29886	Priority int64 `json:"priority,omitempty"`
29887
29888	// Region: [Output Only] URI of the region where the packetMirroring
29889	// resides.
29890	Region string `json:"region,omitempty"`
29891
29892	// SelfLink: [Output Only] Server-defined URL for the resource.
29893	SelfLink string `json:"selfLink,omitempty"`
29894
29895	// ServerResponse contains the HTTP response code and headers from the
29896	// server.
29897	googleapi.ServerResponse `json:"-"`
29898
29899	// ForceSendFields is a list of field names (e.g. "CollectorIlb") to
29900	// unconditionally include in API requests. By default, fields with
29901	// empty or default values are omitted from API requests. However, any
29902	// non-pointer, non-interface field appearing in ForceSendFields will be
29903	// sent to the server regardless of whether the field is empty or not.
29904	// This may be used to include empty fields in Patch requests.
29905	ForceSendFields []string `json:"-"`
29906
29907	// NullFields is a list of field names (e.g. "CollectorIlb") to include
29908	// in API requests with the JSON null value. By default, fields with
29909	// empty values are omitted from API requests. However, any field with
29910	// an empty value appearing in NullFields will be sent to the server as
29911	// null. It is an error if a field in this list has a non-empty value.
29912	// This may be used to include null fields in Patch requests.
29913	NullFields []string `json:"-"`
29914}
29915
29916func (s *PacketMirroring) MarshalJSON() ([]byte, error) {
29917	type NoMethod PacketMirroring
29918	raw := NoMethod(*s)
29919	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29920}
29921
29922// PacketMirroringAggregatedList: Contains a list of packetMirrorings.
29923type PacketMirroringAggregatedList struct {
29924	// Id: [Output Only] Unique identifier for the resource; defined by the
29925	// server.
29926	Id string `json:"id,omitempty"`
29927
29928	// Items: A list of PacketMirroring resources.
29929	Items map[string]PacketMirroringsScopedList `json:"items,omitempty"`
29930
29931	// Kind: Type of resource.
29932	Kind string `json:"kind,omitempty"`
29933
29934	// NextPageToken: [Output Only] This token allows you to get the next
29935	// page of results for list requests. If the number of results is larger
29936	// than maxResults, use the nextPageToken as a value for the query
29937	// parameter pageToken in the next list request. Subsequent list
29938	// requests will have their own nextPageToken to continue paging through
29939	// the results.
29940	NextPageToken string `json:"nextPageToken,omitempty"`
29941
29942	// SelfLink: [Output Only] Server-defined URL for this resource.
29943	SelfLink string `json:"selfLink,omitempty"`
29944
29945	// Unreachables: [Output Only] Unreachable resources.
29946	Unreachables []string `json:"unreachables,omitempty"`
29947
29948	// Warning: [Output Only] Informational warning message.
29949	Warning *PacketMirroringAggregatedListWarning `json:"warning,omitempty"`
29950
29951	// ServerResponse contains the HTTP response code and headers from the
29952	// server.
29953	googleapi.ServerResponse `json:"-"`
29954
29955	// ForceSendFields is a list of field names (e.g. "Id") to
29956	// unconditionally include in API requests. By default, fields with
29957	// empty or default values are omitted from API requests. However, any
29958	// non-pointer, non-interface field appearing in ForceSendFields will be
29959	// sent to the server regardless of whether the field is empty or not.
29960	// This may be used to include empty fields in Patch requests.
29961	ForceSendFields []string `json:"-"`
29962
29963	// NullFields is a list of field names (e.g. "Id") to include in API
29964	// requests with the JSON null value. By default, fields with empty
29965	// values are omitted from API requests. However, any field with an
29966	// empty value appearing in NullFields will be sent to the server as
29967	// null. It is an error if a field in this list has a non-empty value.
29968	// This may be used to include null fields in Patch requests.
29969	NullFields []string `json:"-"`
29970}
29971
29972func (s *PacketMirroringAggregatedList) MarshalJSON() ([]byte, error) {
29973	type NoMethod PacketMirroringAggregatedList
29974	raw := NoMethod(*s)
29975	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29976}
29977
29978// PacketMirroringAggregatedListWarning: [Output Only] Informational
29979// warning message.
29980type PacketMirroringAggregatedListWarning struct {
29981	// Code: [Output Only] A warning code, if applicable. For example,
29982	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29983	// the response.
29984	//
29985	// Possible values:
29986	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
29987	// changes made by a failed operation.
29988	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
29989	// created.
29990	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
29991	// resources has a type marked as deprecated
29992	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
29993	// that is larger than image size.
29994	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
29995	// resources has a type marked as experimental
29996	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
29997	// call
29998	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
29999	// overridden. Deprecated unused field.
30000	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
30001	// injected kernel, which is deprecated.
30002	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
30003	// exceedingly large number of resources
30004	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
30005	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
30006	// not assigned to an instance on the network.
30007	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
30008	// ip forward.
30009	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
30010	// refers to an instance that does not exist.
30011	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
30012	// URL refers to an instance that is not on the same network as the
30013	// route.
30014	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
30015	// have a status of RUNNING.
30016	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
30017	// continue the process despite the mentioned error.
30018	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
30019	// page.
30020	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
30021	// missing due to errors
30022	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
30023	// that requires a TOS they have not accepted.
30024	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
30025	// resource is in use.
30026	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
30027	// auto-delete could not be deleted because they were in use.
30028	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
30029	// ignored.
30030	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
30031	// instance group manager is valid as such, but its application does not
30032	// make a lot of sense, because it allows only single instance in
30033	// instance group.
30034	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
30035	// are present
30036	//   "UNREACHABLE" - A given scope cannot be reached.
30037	Code string `json:"code,omitempty"`
30038
30039	// Data: [Output Only] Metadata about this warning in key: value format.
30040	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
30041	// }
30042	Data []*PacketMirroringAggregatedListWarningData `json:"data,omitempty"`
30043
30044	// Message: [Output Only] A human-readable description of the warning
30045	// code.
30046	Message string `json:"message,omitempty"`
30047
30048	// ForceSendFields is a list of field names (e.g. "Code") to
30049	// unconditionally include in API requests. By default, fields with
30050	// empty or default values are omitted from API requests. However, any
30051	// non-pointer, non-interface field appearing in ForceSendFields will be
30052	// sent to the server regardless of whether the field is empty or not.
30053	// This may be used to include empty fields in Patch requests.
30054	ForceSendFields []string `json:"-"`
30055
30056	// NullFields is a list of field names (e.g. "Code") to include in API
30057	// requests with the JSON null value. By default, fields with empty
30058	// values are omitted from API requests. However, any field with an
30059	// empty value appearing in NullFields will be sent to the server as
30060	// null. It is an error if a field in this list has a non-empty value.
30061	// This may be used to include null fields in Patch requests.
30062	NullFields []string `json:"-"`
30063}
30064
30065func (s *PacketMirroringAggregatedListWarning) MarshalJSON() ([]byte, error) {
30066	type NoMethod PacketMirroringAggregatedListWarning
30067	raw := NoMethod(*s)
30068	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30069}
30070
30071type PacketMirroringAggregatedListWarningData struct {
30072	// Key: [Output Only] A key that provides more detail on the warning
30073	// being returned. For example, for warnings where there are no results
30074	// in a list request for a particular zone, this key might be scope and
30075	// the key value might be the zone name. Other examples might be a key
30076	// indicating a deprecated resource and a suggested replacement, or a
30077	// warning about invalid network settings (for example, if an instance
30078	// attempts to perform IP forwarding but is not enabled for IP
30079	// forwarding).
30080	Key string `json:"key,omitempty"`
30081
30082	// Value: [Output Only] A warning data value corresponding to the key.
30083	Value string `json:"value,omitempty"`
30084
30085	// ForceSendFields is a list of field names (e.g. "Key") to
30086	// unconditionally include in API requests. By default, fields with
30087	// empty or default values are omitted from API requests. However, any
30088	// non-pointer, non-interface field appearing in ForceSendFields will be
30089	// sent to the server regardless of whether the field is empty or not.
30090	// This may be used to include empty fields in Patch requests.
30091	ForceSendFields []string `json:"-"`
30092
30093	// NullFields is a list of field names (e.g. "Key") to include in API
30094	// requests with the JSON null value. By default, fields with empty
30095	// values are omitted from API requests. However, any field with an
30096	// empty value appearing in NullFields will be sent to the server as
30097	// null. It is an error if a field in this list has a non-empty value.
30098	// This may be used to include null fields in Patch requests.
30099	NullFields []string `json:"-"`
30100}
30101
30102func (s *PacketMirroringAggregatedListWarningData) MarshalJSON() ([]byte, error) {
30103	type NoMethod PacketMirroringAggregatedListWarningData
30104	raw := NoMethod(*s)
30105	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30106}
30107
30108type PacketMirroringFilter struct {
30109	// IPProtocols: Protocols that apply as filter on mirrored traffic. If
30110	// no protocols are specified, all traffic that matches the specified
30111	// CIDR ranges is mirrored. If neither cidrRanges nor IPProtocols is
30112	// specified, all traffic is mirrored.
30113	IPProtocols []string `json:"IPProtocols,omitempty"`
30114
30115	// CidrRanges: IP CIDR ranges that apply as filter on the source
30116	// (ingress) or destination (egress) IP in the IP header. Only IPv4 is
30117	// supported. If no ranges are specified, all traffic that matches the
30118	// specified IPProtocols is mirrored. If neither cidrRanges nor
30119	// IPProtocols is specified, all traffic is mirrored.
30120	CidrRanges []string `json:"cidrRanges,omitempty"`
30121
30122	// Direction: Direction of traffic to mirror, either INGRESS, EGRESS, or
30123	// BOTH. The default is BOTH.
30124	//
30125	// Possible values:
30126	//   "BOTH" - Default, both directions are mirrored.
30127	//   "EGRESS" - Only egress traffic is mirrored.
30128	//   "INGRESS" - Only ingress traffic is mirrored.
30129	Direction string `json:"direction,omitempty"`
30130
30131	// ForceSendFields is a list of field names (e.g. "IPProtocols") to
30132	// unconditionally include in API requests. By default, fields with
30133	// empty or default values are omitted from API requests. However, any
30134	// non-pointer, non-interface field appearing in ForceSendFields will be
30135	// sent to the server regardless of whether the field is empty or not.
30136	// This may be used to include empty fields in Patch requests.
30137	ForceSendFields []string `json:"-"`
30138
30139	// NullFields is a list of field names (e.g. "IPProtocols") to include
30140	// in API requests with the JSON null value. By default, fields with
30141	// empty values are omitted from API requests. However, any field with
30142	// an empty value appearing in NullFields will be sent to the server as
30143	// null. It is an error if a field in this list has a non-empty value.
30144	// This may be used to include null fields in Patch requests.
30145	NullFields []string `json:"-"`
30146}
30147
30148func (s *PacketMirroringFilter) MarshalJSON() ([]byte, error) {
30149	type NoMethod PacketMirroringFilter
30150	raw := NoMethod(*s)
30151	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30152}
30153
30154type PacketMirroringForwardingRuleInfo struct {
30155	// CanonicalUrl: [Output Only] Unique identifier for the forwarding
30156	// rule; defined by the server.
30157	CanonicalUrl string `json:"canonicalUrl,omitempty"`
30158
30159	// Url: Resource URL to the forwarding rule representing the ILB
30160	// configured as destination of the mirrored traffic.
30161	Url string `json:"url,omitempty"`
30162
30163	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
30164	// unconditionally include in API requests. By default, fields with
30165	// empty or default values are omitted from API requests. However, any
30166	// non-pointer, non-interface field appearing in ForceSendFields will be
30167	// sent to the server regardless of whether the field is empty or not.
30168	// This may be used to include empty fields in Patch requests.
30169	ForceSendFields []string `json:"-"`
30170
30171	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
30172	// in API requests with the JSON null value. By default, fields with
30173	// empty values are omitted from API requests. However, any field with
30174	// an empty value appearing in NullFields will be sent to the server as
30175	// null. It is an error if a field in this list has a non-empty value.
30176	// This may be used to include null fields in Patch requests.
30177	NullFields []string `json:"-"`
30178}
30179
30180func (s *PacketMirroringForwardingRuleInfo) MarshalJSON() ([]byte, error) {
30181	type NoMethod PacketMirroringForwardingRuleInfo
30182	raw := NoMethod(*s)
30183	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30184}
30185
30186// PacketMirroringList: Contains a list of PacketMirroring resources.
30187type PacketMirroringList struct {
30188	// Id: [Output Only] Unique identifier for the resource; defined by the
30189	// server.
30190	Id string `json:"id,omitempty"`
30191
30192	// Items: A list of PacketMirroring resources.
30193	Items []*PacketMirroring `json:"items,omitempty"`
30194
30195	// Kind: [Output Only] Type of resource. Always compute#packetMirroring
30196	// for packetMirrorings.
30197	Kind string `json:"kind,omitempty"`
30198
30199	// NextPageToken: [Output Only] This token allows you to get the next
30200	// page of results for list requests. If the number of results is larger
30201	// than maxResults, use the nextPageToken as a value for the query
30202	// parameter pageToken in the next list request. Subsequent list
30203	// requests will have their own nextPageToken to continue paging through
30204	// the results.
30205	NextPageToken string `json:"nextPageToken,omitempty"`
30206
30207	// SelfLink: [Output Only] Server-defined URL for this resource.
30208	SelfLink string `json:"selfLink,omitempty"`
30209
30210	// Warning: [Output Only] Informational warning message.
30211	Warning *PacketMirroringListWarning `json:"warning,omitempty"`
30212
30213	// ServerResponse contains the HTTP response code and headers from the
30214	// server.
30215	googleapi.ServerResponse `json:"-"`
30216
30217	// ForceSendFields is a list of field names (e.g. "Id") to
30218	// unconditionally include in API requests. By default, fields with
30219	// empty or default values are omitted from API requests. However, any
30220	// non-pointer, non-interface field appearing in ForceSendFields will be
30221	// sent to the server regardless of whether the field is empty or not.
30222	// This may be used to include empty fields in Patch requests.
30223	ForceSendFields []string `json:"-"`
30224
30225	// NullFields is a list of field names (e.g. "Id") to include in API
30226	// requests with the JSON null value. By default, fields with empty
30227	// values are omitted from API requests. However, any field with an
30228	// empty value appearing in NullFields will be sent to the server as
30229	// null. It is an error if a field in this list has a non-empty value.
30230	// This may be used to include null fields in Patch requests.
30231	NullFields []string `json:"-"`
30232}
30233
30234func (s *PacketMirroringList) MarshalJSON() ([]byte, error) {
30235	type NoMethod PacketMirroringList
30236	raw := NoMethod(*s)
30237	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30238}
30239
30240// PacketMirroringListWarning: [Output Only] Informational warning
30241// message.
30242type PacketMirroringListWarning struct {
30243	// Code: [Output Only] A warning code, if applicable. For example,
30244	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30245	// the response.
30246	//
30247	// Possible values:
30248	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
30249	// changes made by a failed operation.
30250	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
30251	// created.
30252	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
30253	// resources has a type marked as deprecated
30254	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
30255	// that is larger than image size.
30256	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
30257	// resources has a type marked as experimental
30258	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
30259	// call
30260	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
30261	// overridden. Deprecated unused field.
30262	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
30263	// injected kernel, which is deprecated.
30264	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
30265	// exceedingly large number of resources
30266	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
30267	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
30268	// not assigned to an instance on the network.
30269	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
30270	// ip forward.
30271	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
30272	// refers to an instance that does not exist.
30273	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
30274	// URL refers to an instance that is not on the same network as the
30275	// route.
30276	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
30277	// have a status of RUNNING.
30278	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
30279	// continue the process despite the mentioned error.
30280	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
30281	// page.
30282	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
30283	// missing due to errors
30284	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
30285	// that requires a TOS they have not accepted.
30286	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
30287	// resource is in use.
30288	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
30289	// auto-delete could not be deleted because they were in use.
30290	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
30291	// ignored.
30292	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
30293	// instance group manager is valid as such, but its application does not
30294	// make a lot of sense, because it allows only single instance in
30295	// instance group.
30296	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
30297	// are present
30298	//   "UNREACHABLE" - A given scope cannot be reached.
30299	Code string `json:"code,omitempty"`
30300
30301	// Data: [Output Only] Metadata about this warning in key: value format.
30302	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
30303	// }
30304	Data []*PacketMirroringListWarningData `json:"data,omitempty"`
30305
30306	// Message: [Output Only] A human-readable description of the warning
30307	// code.
30308	Message string `json:"message,omitempty"`
30309
30310	// ForceSendFields is a list of field names (e.g. "Code") to
30311	// unconditionally include in API requests. By default, fields with
30312	// empty or default values are omitted from API requests. However, any
30313	// non-pointer, non-interface field appearing in ForceSendFields will be
30314	// sent to the server regardless of whether the field is empty or not.
30315	// This may be used to include empty fields in Patch requests.
30316	ForceSendFields []string `json:"-"`
30317
30318	// NullFields is a list of field names (e.g. "Code") to include in API
30319	// requests with the JSON null value. By default, fields with empty
30320	// values are omitted from API requests. However, any field with an
30321	// empty value appearing in NullFields will be sent to the server as
30322	// null. It is an error if a field in this list has a non-empty value.
30323	// This may be used to include null fields in Patch requests.
30324	NullFields []string `json:"-"`
30325}
30326
30327func (s *PacketMirroringListWarning) MarshalJSON() ([]byte, error) {
30328	type NoMethod PacketMirroringListWarning
30329	raw := NoMethod(*s)
30330	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30331}
30332
30333type PacketMirroringListWarningData struct {
30334	// Key: [Output Only] A key that provides more detail on the warning
30335	// being returned. For example, for warnings where there are no results
30336	// in a list request for a particular zone, this key might be scope and
30337	// the key value might be the zone name. Other examples might be a key
30338	// indicating a deprecated resource and a suggested replacement, or a
30339	// warning about invalid network settings (for example, if an instance
30340	// attempts to perform IP forwarding but is not enabled for IP
30341	// forwarding).
30342	Key string `json:"key,omitempty"`
30343
30344	// Value: [Output Only] A warning data value corresponding to the key.
30345	Value string `json:"value,omitempty"`
30346
30347	// ForceSendFields is a list of field names (e.g. "Key") to
30348	// unconditionally include in API requests. By default, fields with
30349	// empty or default values are omitted from API requests. However, any
30350	// non-pointer, non-interface field appearing in ForceSendFields will be
30351	// sent to the server regardless of whether the field is empty or not.
30352	// This may be used to include empty fields in Patch requests.
30353	ForceSendFields []string `json:"-"`
30354
30355	// NullFields is a list of field names (e.g. "Key") to include in API
30356	// requests with the JSON null value. By default, fields with empty
30357	// values are omitted from API requests. However, any field with an
30358	// empty value appearing in NullFields will be sent to the server as
30359	// null. It is an error if a field in this list has a non-empty value.
30360	// This may be used to include null fields in Patch requests.
30361	NullFields []string `json:"-"`
30362}
30363
30364func (s *PacketMirroringListWarningData) MarshalJSON() ([]byte, error) {
30365	type NoMethod PacketMirroringListWarningData
30366	raw := NoMethod(*s)
30367	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30368}
30369
30370type PacketMirroringMirroredResourceInfo struct {
30371	// Instances: A set of virtual machine instances that are being
30372	// mirrored. They must live in zones contained in the same region as
30373	// this packetMirroring. Note that this config will apply only to those
30374	// network interfaces of the Instances that belong to the network
30375	// specified in this packetMirroring. You may specify a maximum of 50
30376	// Instances.
30377	Instances []*PacketMirroringMirroredResourceInfoInstanceInfo `json:"instances,omitempty"`
30378
30379	// Subnetworks: A set of subnetworks for which traffic from/to all VM
30380	// instances will be mirrored. They must live in the same region as this
30381	// packetMirroring. You may specify a maximum of 5 subnetworks.
30382	Subnetworks []*PacketMirroringMirroredResourceInfoSubnetInfo `json:"subnetworks,omitempty"`
30383
30384	// Tags: A set of mirrored tags. Traffic from/to all VM instances that
30385	// have one or more of these tags will be mirrored.
30386	Tags []string `json:"tags,omitempty"`
30387
30388	// ForceSendFields is a list of field names (e.g. "Instances") to
30389	// unconditionally include in API requests. By default, fields with
30390	// empty or default values are omitted from API requests. However, any
30391	// non-pointer, non-interface field appearing in ForceSendFields will be
30392	// sent to the server regardless of whether the field is empty or not.
30393	// This may be used to include empty fields in Patch requests.
30394	ForceSendFields []string `json:"-"`
30395
30396	// NullFields is a list of field names (e.g. "Instances") to include in
30397	// API requests with the JSON null value. By default, fields with empty
30398	// values are omitted from API requests. However, any field with an
30399	// empty value appearing in NullFields will be sent to the server as
30400	// null. It is an error if a field in this list has a non-empty value.
30401	// This may be used to include null fields in Patch requests.
30402	NullFields []string `json:"-"`
30403}
30404
30405func (s *PacketMirroringMirroredResourceInfo) MarshalJSON() ([]byte, error) {
30406	type NoMethod PacketMirroringMirroredResourceInfo
30407	raw := NoMethod(*s)
30408	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30409}
30410
30411type PacketMirroringMirroredResourceInfoInstanceInfo struct {
30412	// CanonicalUrl: [Output Only] Unique identifier for the instance;
30413	// defined by the server.
30414	CanonicalUrl string `json:"canonicalUrl,omitempty"`
30415
30416	// Url: Resource URL to the virtual machine instance which is being
30417	// mirrored.
30418	Url string `json:"url,omitempty"`
30419
30420	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
30421	// unconditionally include in API requests. By default, fields with
30422	// empty or default values are omitted from API requests. However, any
30423	// non-pointer, non-interface field appearing in ForceSendFields will be
30424	// sent to the server regardless of whether the field is empty or not.
30425	// This may be used to include empty fields in Patch requests.
30426	ForceSendFields []string `json:"-"`
30427
30428	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
30429	// in API requests with the JSON null value. By default, fields with
30430	// empty values are omitted from API requests. However, any field with
30431	// an empty value appearing in NullFields will be sent to the server as
30432	// null. It is an error if a field in this list has a non-empty value.
30433	// This may be used to include null fields in Patch requests.
30434	NullFields []string `json:"-"`
30435}
30436
30437func (s *PacketMirroringMirroredResourceInfoInstanceInfo) MarshalJSON() ([]byte, error) {
30438	type NoMethod PacketMirroringMirroredResourceInfoInstanceInfo
30439	raw := NoMethod(*s)
30440	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30441}
30442
30443type PacketMirroringMirroredResourceInfoSubnetInfo struct {
30444	// CanonicalUrl: [Output Only] Unique identifier for the subnetwork;
30445	// defined by the server.
30446	CanonicalUrl string `json:"canonicalUrl,omitempty"`
30447
30448	// Url: Resource URL to the subnetwork for which traffic from/to all VM
30449	// instances will be mirrored.
30450	Url string `json:"url,omitempty"`
30451
30452	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
30453	// unconditionally include in API requests. By default, fields with
30454	// empty or default values are omitted from API requests. However, any
30455	// non-pointer, non-interface field appearing in ForceSendFields will be
30456	// sent to the server regardless of whether the field is empty or not.
30457	// This may be used to include empty fields in Patch requests.
30458	ForceSendFields []string `json:"-"`
30459
30460	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
30461	// in API requests with the JSON null value. By default, fields with
30462	// empty values are omitted from API requests. However, any field with
30463	// an empty value appearing in NullFields will be sent to the server as
30464	// null. It is an error if a field in this list has a non-empty value.
30465	// This may be used to include null fields in Patch requests.
30466	NullFields []string `json:"-"`
30467}
30468
30469func (s *PacketMirroringMirroredResourceInfoSubnetInfo) MarshalJSON() ([]byte, error) {
30470	type NoMethod PacketMirroringMirroredResourceInfoSubnetInfo
30471	raw := NoMethod(*s)
30472	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30473}
30474
30475type PacketMirroringNetworkInfo struct {
30476	// CanonicalUrl: [Output Only] Unique identifier for the network;
30477	// defined by the server.
30478	CanonicalUrl string `json:"canonicalUrl,omitempty"`
30479
30480	// Url: URL of the network resource.
30481	Url string `json:"url,omitempty"`
30482
30483	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
30484	// unconditionally include in API requests. By default, fields with
30485	// empty or default values are omitted from API requests. However, any
30486	// non-pointer, non-interface field appearing in ForceSendFields will be
30487	// sent to the server regardless of whether the field is empty or not.
30488	// This may be used to include empty fields in Patch requests.
30489	ForceSendFields []string `json:"-"`
30490
30491	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
30492	// in API requests with the JSON null value. By default, fields with
30493	// empty values are omitted from API requests. However, any field with
30494	// an empty value appearing in NullFields will be sent to the server as
30495	// null. It is an error if a field in this list has a non-empty value.
30496	// This may be used to include null fields in Patch requests.
30497	NullFields []string `json:"-"`
30498}
30499
30500func (s *PacketMirroringNetworkInfo) MarshalJSON() ([]byte, error) {
30501	type NoMethod PacketMirroringNetworkInfo
30502	raw := NoMethod(*s)
30503	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30504}
30505
30506type PacketMirroringsScopedList struct {
30507	// PacketMirrorings: A list of packetMirrorings contained in this scope.
30508	PacketMirrorings []*PacketMirroring `json:"packetMirrorings,omitempty"`
30509
30510	// Warning: Informational warning which replaces the list of
30511	// packetMirrorings when the list is empty.
30512	Warning *PacketMirroringsScopedListWarning `json:"warning,omitempty"`
30513
30514	// ForceSendFields is a list of field names (e.g. "PacketMirrorings") to
30515	// unconditionally include in API requests. By default, fields with
30516	// empty or default values are omitted from API requests. However, any
30517	// non-pointer, non-interface field appearing in ForceSendFields will be
30518	// sent to the server regardless of whether the field is empty or not.
30519	// This may be used to include empty fields in Patch requests.
30520	ForceSendFields []string `json:"-"`
30521
30522	// NullFields is a list of field names (e.g. "PacketMirrorings") to
30523	// include in API requests with the JSON null value. By default, fields
30524	// with empty values are omitted from API requests. However, any field
30525	// with an empty value appearing in NullFields will be sent to the
30526	// server as null. It is an error if a field in this list has a
30527	// non-empty value. This may be used to include null fields in Patch
30528	// requests.
30529	NullFields []string `json:"-"`
30530}
30531
30532func (s *PacketMirroringsScopedList) MarshalJSON() ([]byte, error) {
30533	type NoMethod PacketMirroringsScopedList
30534	raw := NoMethod(*s)
30535	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30536}
30537
30538// PacketMirroringsScopedListWarning: Informational warning which
30539// replaces the list of packetMirrorings when the list is empty.
30540type PacketMirroringsScopedListWarning struct {
30541	// Code: [Output Only] A warning code, if applicable. For example,
30542	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30543	// the response.
30544	//
30545	// Possible values:
30546	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
30547	// changes made by a failed operation.
30548	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
30549	// created.
30550	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
30551	// resources has a type marked as deprecated
30552	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
30553	// that is larger than image size.
30554	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
30555	// resources has a type marked as experimental
30556	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
30557	// call
30558	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
30559	// overridden. Deprecated unused field.
30560	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
30561	// injected kernel, which is deprecated.
30562	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
30563	// exceedingly large number of resources
30564	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
30565	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
30566	// not assigned to an instance on the network.
30567	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
30568	// ip forward.
30569	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
30570	// refers to an instance that does not exist.
30571	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
30572	// URL refers to an instance that is not on the same network as the
30573	// route.
30574	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
30575	// have a status of RUNNING.
30576	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
30577	// continue the process despite the mentioned error.
30578	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
30579	// page.
30580	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
30581	// missing due to errors
30582	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
30583	// that requires a TOS they have not accepted.
30584	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
30585	// resource is in use.
30586	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
30587	// auto-delete could not be deleted because they were in use.
30588	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
30589	// ignored.
30590	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
30591	// instance group manager is valid as such, but its application does not
30592	// make a lot of sense, because it allows only single instance in
30593	// instance group.
30594	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
30595	// are present
30596	//   "UNREACHABLE" - A given scope cannot be reached.
30597	Code string `json:"code,omitempty"`
30598
30599	// Data: [Output Only] Metadata about this warning in key: value format.
30600	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
30601	// }
30602	Data []*PacketMirroringsScopedListWarningData `json:"data,omitempty"`
30603
30604	// Message: [Output Only] A human-readable description of the warning
30605	// code.
30606	Message string `json:"message,omitempty"`
30607
30608	// ForceSendFields is a list of field names (e.g. "Code") to
30609	// unconditionally include in API requests. By default, fields with
30610	// empty or default values are omitted from API requests. However, any
30611	// non-pointer, non-interface field appearing in ForceSendFields will be
30612	// sent to the server regardless of whether the field is empty or not.
30613	// This may be used to include empty fields in Patch requests.
30614	ForceSendFields []string `json:"-"`
30615
30616	// NullFields is a list of field names (e.g. "Code") to include in API
30617	// requests with the JSON null value. By default, fields with empty
30618	// values are omitted from API requests. However, any field with an
30619	// empty value appearing in NullFields will be sent to the server as
30620	// null. It is an error if a field in this list has a non-empty value.
30621	// This may be used to include null fields in Patch requests.
30622	NullFields []string `json:"-"`
30623}
30624
30625func (s *PacketMirroringsScopedListWarning) MarshalJSON() ([]byte, error) {
30626	type NoMethod PacketMirroringsScopedListWarning
30627	raw := NoMethod(*s)
30628	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30629}
30630
30631type PacketMirroringsScopedListWarningData struct {
30632	// Key: [Output Only] A key that provides more detail on the warning
30633	// being returned. For example, for warnings where there are no results
30634	// in a list request for a particular zone, this key might be scope and
30635	// the key value might be the zone name. Other examples might be a key
30636	// indicating a deprecated resource and a suggested replacement, or a
30637	// warning about invalid network settings (for example, if an instance
30638	// attempts to perform IP forwarding but is not enabled for IP
30639	// forwarding).
30640	Key string `json:"key,omitempty"`
30641
30642	// Value: [Output Only] A warning data value corresponding to the key.
30643	Value string `json:"value,omitempty"`
30644
30645	// ForceSendFields is a list of field names (e.g. "Key") to
30646	// unconditionally include in API requests. By default, fields with
30647	// empty or default values are omitted from API requests. However, any
30648	// non-pointer, non-interface field appearing in ForceSendFields will be
30649	// sent to the server regardless of whether the field is empty or not.
30650	// This may be used to include empty fields in Patch requests.
30651	ForceSendFields []string `json:"-"`
30652
30653	// NullFields is a list of field names (e.g. "Key") to include in API
30654	// requests with the JSON null value. By default, fields with empty
30655	// values are omitted from API requests. However, any field with an
30656	// empty value appearing in NullFields will be sent to the server as
30657	// null. It is an error if a field in this list has a non-empty value.
30658	// This may be used to include null fields in Patch requests.
30659	NullFields []string `json:"-"`
30660}
30661
30662func (s *PacketMirroringsScopedListWarningData) MarshalJSON() ([]byte, error) {
30663	type NoMethod PacketMirroringsScopedListWarningData
30664	raw := NoMethod(*s)
30665	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30666}
30667
30668// PathMatcher: A matcher for the path portion of the URL. The
30669// BackendService from the longest-matched rule will serve the URL. If
30670// no rule was matched, the default service will be used.
30671type PathMatcher struct {
30672	// DefaultRouteAction: defaultRouteAction takes effect when none of the
30673	// pathRules or routeRules match. The load balancer performs advanced
30674	// routing actions like URL rewrites, header transformations, etc. prior
30675	// to forwarding the request to the selected backend. If
30676	// defaultRouteAction specifies any weightedBackendServices,
30677	// defaultService must not be set. Conversely if defaultService is set,
30678	// defaultRouteAction cannot contain any weightedBackendServices. Only
30679	// one of defaultRouteAction or defaultUrlRedirect must be set. UrlMaps
30680	// for external HTTP(S) load balancers support only the urlRewrite
30681	// action within a pathMatcher's defaultRouteAction.
30682	DefaultRouteAction *HttpRouteAction `json:"defaultRouteAction,omitempty"`
30683
30684	// DefaultService: The full or partial URL to the BackendService
30685	// resource. This will be used if none of the pathRules or routeRules
30686	// defined by this PathMatcher are matched. For example, the following
30687	// are all valid URLs to a BackendService resource: -
30688	// https://www.googleapis.com/compute/v1/projects/project
30689	// /global/backendServices/backendService -
30690	// compute/v1/projects/project/global/backendServices/backendService -
30691	// global/backendServices/backendService If defaultRouteAction is
30692	// additionally specified, advanced routing actions like URL Rewrites,
30693	// etc. take effect prior to sending the request to the backend.
30694	// However, if defaultService is specified, defaultRouteAction cannot
30695	// contain any weightedBackendServices. Conversely, if
30696	// defaultRouteAction specifies any weightedBackendServices,
30697	// defaultService must not be specified. Only one of defaultService,
30698	// defaultUrlRedirect or defaultRouteAction.weightedBackendService must
30699	// be set. Authorization requires one or more of the following Google
30700	// IAM permissions on the specified resource default_service: -
30701	// compute.backendBuckets.use - compute.backendServices.use
30702	DefaultService string `json:"defaultService,omitempty"`
30703
30704	// DefaultUrlRedirect: When none of the specified pathRules or
30705	// routeRules match, the request is redirected to a URL specified by
30706	// defaultUrlRedirect. If defaultUrlRedirect is specified,
30707	// defaultService or defaultRouteAction must not be set. Not supported
30708	// when the URL map is bound to target gRPC proxy.
30709	DefaultUrlRedirect *HttpRedirectAction `json:"defaultUrlRedirect,omitempty"`
30710
30711	// Description: An optional description of this resource. Provide this
30712	// property when you create the resource.
30713	Description string `json:"description,omitempty"`
30714
30715	// HeaderAction: Specifies changes to request and response headers that
30716	// need to take effect for the selected backendService. HeaderAction
30717	// specified here are applied after the matching HttpRouteRule
30718	// HeaderAction and before the HeaderAction in the UrlMap Note that
30719	// headerAction is not supported for Loadbalancers that have their
30720	// loadBalancingScheme set to EXTERNAL. Not supported when the URL map
30721	// is bound to target gRPC proxy that has validateForProxyless field set
30722	// to true.
30723	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
30724
30725	// Name: The name to which this PathMatcher is referred by the HostRule.
30726	Name string `json:"name,omitempty"`
30727
30728	// PathRules: The list of path rules. Use this list instead of
30729	// routeRules when routing based on simple path matching is all that's
30730	// required. The order by which path rules are specified does not
30731	// matter. Matches are always done on the longest-path-first basis. For
30732	// example: a pathRule with a path /a/b/c/* will match before /a/b/*
30733	// irrespective of the order in which those paths appear in this list.
30734	// Within a given pathMatcher, only one of pathRules or routeRules must
30735	// be set.
30736	PathRules []*PathRule `json:"pathRules,omitempty"`
30737
30738	// RouteRules: The list of HTTP route rules. Use this list instead of
30739	// pathRules when advanced route matching and routing actions are
30740	// desired. routeRules are evaluated in order of priority, from the
30741	// lowest to highest number. Within a given pathMatcher, you can set
30742	// only one of pathRules or routeRules.
30743	RouteRules []*HttpRouteRule `json:"routeRules,omitempty"`
30744
30745	// ForceSendFields is a list of field names (e.g. "DefaultRouteAction")
30746	// to unconditionally include in API requests. By default, fields with
30747	// empty or default values are omitted from API requests. However, any
30748	// non-pointer, non-interface field appearing in ForceSendFields will be
30749	// sent to the server regardless of whether the field is empty or not.
30750	// This may be used to include empty fields in Patch requests.
30751	ForceSendFields []string `json:"-"`
30752
30753	// NullFields is a list of field names (e.g. "DefaultRouteAction") to
30754	// include in API requests with the JSON null value. By default, fields
30755	// with empty values are omitted from API requests. However, any field
30756	// with an empty value appearing in NullFields will be sent to the
30757	// server as null. It is an error if a field in this list has a
30758	// non-empty value. This may be used to include null fields in Patch
30759	// requests.
30760	NullFields []string `json:"-"`
30761}
30762
30763func (s *PathMatcher) MarshalJSON() ([]byte, error) {
30764	type NoMethod PathMatcher
30765	raw := NoMethod(*s)
30766	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30767}
30768
30769// PathRule: A path-matching rule for a URL. If matched, will use the
30770// specified BackendService to handle the traffic arriving at this URL.
30771type PathRule struct {
30772	// Paths: The list of path patterns to match. Each must start with / and
30773	// the only place a * is allowed is at the end following a /. The string
30774	// fed to the path matcher does not include any text after the first ?
30775	// or #, and those chars are not allowed here.
30776	Paths []string `json:"paths,omitempty"`
30777
30778	// RouteAction: In response to a matching path, the load balancer
30779	// performs advanced routing actions like URL rewrites, header
30780	// transformations, etc. prior to forwarding the request to the selected
30781	// backend. If routeAction specifies any weightedBackendServices,
30782	// service must not be set. Conversely if service is set, routeAction
30783	// cannot contain any weightedBackendServices. Only one of routeAction
30784	// or urlRedirect must be set. UrlMaps for external HTTP(S) load
30785	// balancers support only the urlRewrite action within a pathRule's
30786	// routeAction.
30787	RouteAction *HttpRouteAction `json:"routeAction,omitempty"`
30788
30789	// Service: The full or partial URL of the backend service resource to
30790	// which traffic is directed if this rule is matched. If routeAction is
30791	// additionally specified, advanced routing actions like URL Rewrites,
30792	// etc. take effect prior to sending the request to the backend.
30793	// However, if service is specified, routeAction cannot contain any
30794	// weightedBackendService s. Conversely, if routeAction specifies any
30795	// weightedBackendServices, service must not be specified. Only one of
30796	// urlRedirect, service or routeAction.weightedBackendService must be
30797	// set.
30798	Service string `json:"service,omitempty"`
30799
30800	// UrlRedirect: When a path pattern is matched, the request is
30801	// redirected to a URL specified by urlRedirect. If urlRedirect is
30802	// specified, service or routeAction must not be set. Not supported when
30803	// the URL map is bound to target gRPC proxy.
30804	UrlRedirect *HttpRedirectAction `json:"urlRedirect,omitempty"`
30805
30806	// ForceSendFields is a list of field names (e.g. "Paths") to
30807	// unconditionally include in API requests. By default, fields with
30808	// empty or default values are omitted from API requests. However, any
30809	// non-pointer, non-interface field appearing in ForceSendFields will be
30810	// sent to the server regardless of whether the field is empty or not.
30811	// This may be used to include empty fields in Patch requests.
30812	ForceSendFields []string `json:"-"`
30813
30814	// NullFields is a list of field names (e.g. "Paths") to include in API
30815	// requests with the JSON null value. By default, fields with empty
30816	// values are omitted from API requests. However, any field with an
30817	// empty value appearing in NullFields will be sent to the server as
30818	// null. It is an error if a field in this list has a non-empty value.
30819	// This may be used to include null fields in Patch requests.
30820	NullFields []string `json:"-"`
30821}
30822
30823func (s *PathRule) MarshalJSON() ([]byte, error) {
30824	type NoMethod PathRule
30825	raw := NoMethod(*s)
30826	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30827}
30828
30829type PerInstanceConfig struct {
30830	// Fingerprint: Fingerprint of this per-instance config. This field can
30831	// be used in optimistic locking. It is ignored when inserting a
30832	// per-instance config. An up-to-date fingerprint must be provided in
30833	// order to update an existing per-instance config or the field needs to
30834	// be unset.
30835	Fingerprint string `json:"fingerprint,omitempty"`
30836
30837	// Name: The name of a per-instance config and its corresponding
30838	// instance. Serves as a merge key during UpdatePerInstanceConfigs
30839	// operations, that is, if a per-instance config with the same name
30840	// exists then it will be updated, otherwise a new one will be created
30841	// for the VM instance with the same name. An attempt to create a
30842	// per-instance config for a VM instance that either doesn't exist or is
30843	// not part of the group will result in an error.
30844	Name string `json:"name,omitempty"`
30845
30846	// PreservedState: The intended preserved state for the given instance.
30847	// Does not contain preserved state generated from a stateful policy.
30848	PreservedState *PreservedState `json:"preservedState,omitempty"`
30849
30850	// Status: The status of applying this per-instance config on the
30851	// corresponding managed instance.
30852	//
30853	// Possible values:
30854	//   "APPLYING" - The per-instance config is being applied to the
30855	// instance, but is not yet effective, possibly waiting for the instance
30856	// to, for example, REFRESH.
30857	//   "DELETING" - The per-instance config deletion is being applied on
30858	// the instance, possibly waiting for the instance to, for example,
30859	// REFRESH.
30860	//   "EFFECTIVE" - The per-instance config is effective on the instance,
30861	// meaning that all disks, ips and metadata specified in this config are
30862	// attached or set on the instance.
30863	//   "NONE" - *[Default]* The default status, when no per-instance
30864	// config exists.
30865	//   "UNAPPLIED" - The per-instance config is set on an instance but not
30866	// been applied yet.
30867	//   "UNAPPLIED_DELETION" - The per-instance config has been deleted,
30868	// but the deletion is not yet applied.
30869	Status string `json:"status,omitempty"`
30870
30871	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
30872	// unconditionally include in API requests. By default, fields with
30873	// empty or default values are omitted from API requests. However, any
30874	// non-pointer, non-interface field appearing in ForceSendFields will be
30875	// sent to the server regardless of whether the field is empty or not.
30876	// This may be used to include empty fields in Patch requests.
30877	ForceSendFields []string `json:"-"`
30878
30879	// NullFields is a list of field names (e.g. "Fingerprint") to include
30880	// in API requests with the JSON null value. By default, fields with
30881	// empty values are omitted from API requests. However, any field with
30882	// an empty value appearing in NullFields will be sent to the server as
30883	// null. It is an error if a field in this list has a non-empty value.
30884	// This may be used to include null fields in Patch requests.
30885	NullFields []string `json:"-"`
30886}
30887
30888func (s *PerInstanceConfig) MarshalJSON() ([]byte, error) {
30889	type NoMethod PerInstanceConfig
30890	raw := NoMethod(*s)
30891	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30892}
30893
30894// Policy: An Identity and Access Management (IAM) policy, which
30895// specifies access controls for Google Cloud resources. A `Policy` is a
30896// collection of `bindings`. A `binding` binds one or more `members` to
30897// a single `role`. Members can be user accounts, service accounts,
30898// Google groups, and domains (such as G Suite). A `role` is a named
30899// list of permissions; each `role` can be an IAM predefined role or a
30900// user-created custom role. For some types of Google Cloud resources, a
30901// `binding` can also specify a `condition`, which is a logical
30902// expression that allows access to a resource only if the expression
30903// evaluates to `true`. A condition can add constraints based on
30904// attributes of the request, the resource, or both. To learn which
30905// resources support conditions in their IAM policies, see the IAM
30906// documentation
30907// (https://cloud.google.com/iam/help/conditions/resource-policies).
30908// **JSON example:** { "bindings": [ { "role":
30909// "roles/resourcemanager.organizationAdmin", "members": [
30910// "user:mike@example.com", "group:admins@example.com",
30911// "domain:google.com",
30912// "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, {
30913// "role": "roles/resourcemanager.organizationViewer", "members": [
30914// "user:eve@example.com" ], "condition": { "title": "expirable access",
30915// "description": "Does not grant access after Sep 2020", "expression":
30916// "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ],
30917// "etag": "BwWWja0YfJA=", "version": 3 } **YAML example:** bindings: -
30918// members: - user:mike@example.com - group:admins@example.com -
30919// domain:google.com -
30920// serviceAccount:my-project-id@appspot.gserviceaccount.com role:
30921// roles/resourcemanager.organizationAdmin - members: -
30922// user:eve@example.com role: roles/resourcemanager.organizationViewer
30923// condition: title: expirable access description: Does not grant access
30924// after Sep 2020 expression: request.time <
30925// timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3
30926// For a description of IAM and its features, see the IAM documentation
30927// (https://cloud.google.com/iam/docs/).
30928type Policy struct {
30929	// AuditConfigs: Specifies cloud audit logging configuration for this
30930	// policy.
30931	AuditConfigs []*AuditConfig `json:"auditConfigs,omitempty"`
30932
30933	// Bindings: Associates a list of `members` to a `role`. Optionally, may
30934	// specify a `condition` that determines how and when the `bindings` are
30935	// applied. Each of the `bindings` must contain at least one member.
30936	Bindings []*Binding `json:"bindings,omitempty"`
30937
30938	// Etag: `etag` is used for optimistic concurrency control as a way to
30939	// help prevent simultaneous updates of a policy from overwriting each
30940	// other. It is strongly suggested that systems make use of the `etag`
30941	// in the read-modify-write cycle to perform policy updates in order to
30942	// avoid race conditions: An `etag` is returned in the response to
30943	// `getIamPolicy`, and systems are expected to put that etag in the
30944	// request to `setIamPolicy` to ensure that their change will be applied
30945	// to the same version of the policy. **Important:** If you use IAM
30946	// Conditions, you must include the `etag` field whenever you call
30947	// `setIamPolicy`. If you omit this field, then IAM allows you to
30948	// overwrite a version `3` policy with a version `1` policy, and all of
30949	// the conditions in the version `3` policy are lost.
30950	Etag string `json:"etag,omitempty"`
30951
30952	// IamOwned: This is deprecated and has no effect. Do not use.
30953	IamOwned bool `json:"iamOwned,omitempty"`
30954
30955	// Rules: This is deprecated and has no effect. Do not use.
30956	Rules []*Rule `json:"rules,omitempty"`
30957
30958	// Version: Specifies the format of the policy. Valid values are `0`,
30959	// `1`, and `3`. Requests that specify an invalid value are rejected.
30960	// Any operation that affects conditional role bindings must specify
30961	// version `3`. This requirement applies to the following operations: *
30962	// Getting a policy that includes a conditional role binding * Adding a
30963	// conditional role binding to a policy * Changing a conditional role
30964	// binding in a policy * Removing any role binding, with or without a
30965	// condition, from a policy that includes conditions **Important:** If
30966	// you use IAM Conditions, you must include the `etag` field whenever
30967	// you call `setIamPolicy`. If you omit this field, then IAM allows you
30968	// to overwrite a version `3` policy with a version `1` policy, and all
30969	// of the conditions in the version `3` policy are lost. If a policy
30970	// does not include any conditions, operations on that policy may
30971	// specify any valid version or leave the field unset. To learn which
30972	// resources support conditions in their IAM policies, see the IAM
30973	// documentation
30974	// (https://cloud.google.com/iam/help/conditions/resource-policies).
30975	Version int64 `json:"version,omitempty"`
30976
30977	// ServerResponse contains the HTTP response code and headers from the
30978	// server.
30979	googleapi.ServerResponse `json:"-"`
30980
30981	// ForceSendFields is a list of field names (e.g. "AuditConfigs") to
30982	// unconditionally include in API requests. By default, fields with
30983	// empty or default values are omitted from API requests. However, any
30984	// non-pointer, non-interface field appearing in ForceSendFields will be
30985	// sent to the server regardless of whether the field is empty or not.
30986	// This may be used to include empty fields in Patch requests.
30987	ForceSendFields []string `json:"-"`
30988
30989	// NullFields is a list of field names (e.g. "AuditConfigs") to include
30990	// in API requests with the JSON null value. By default, fields with
30991	// empty values are omitted from API requests. However, any field with
30992	// an empty value appearing in NullFields will be sent to the server as
30993	// null. It is an error if a field in this list has a non-empty value.
30994	// This may be used to include null fields in Patch requests.
30995	NullFields []string `json:"-"`
30996}
30997
30998func (s *Policy) MarshalJSON() ([]byte, error) {
30999	type NoMethod Policy
31000	raw := NoMethod(*s)
31001	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31002}
31003
31004type PreconfiguredWafSet struct {
31005	// ExpressionSets: List of entities that are currently supported for WAF
31006	// rules.
31007	ExpressionSets []*WafExpressionSet `json:"expressionSets,omitempty"`
31008
31009	// ForceSendFields is a list of field names (e.g. "ExpressionSets") to
31010	// unconditionally include in API requests. By default, fields with
31011	// empty or default values are omitted from API requests. However, any
31012	// non-pointer, non-interface field appearing in ForceSendFields will be
31013	// sent to the server regardless of whether the field is empty or not.
31014	// This may be used to include empty fields in Patch requests.
31015	ForceSendFields []string `json:"-"`
31016
31017	// NullFields is a list of field names (e.g. "ExpressionSets") to
31018	// include in API requests with the JSON null value. By default, fields
31019	// with empty values are omitted from API requests. However, any field
31020	// with an empty value appearing in NullFields will be sent to the
31021	// server as null. It is an error if a field in this list has a
31022	// non-empty value. This may be used to include null fields in Patch
31023	// requests.
31024	NullFields []string `json:"-"`
31025}
31026
31027func (s *PreconfiguredWafSet) MarshalJSON() ([]byte, error) {
31028	type NoMethod PreconfiguredWafSet
31029	raw := NoMethod(*s)
31030	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31031}
31032
31033// PreservedState: Preserved state for a given instance.
31034type PreservedState struct {
31035	// Disks: Preserved disks defined for this instance. This map is keyed
31036	// with the device names of the disks.
31037	Disks map[string]PreservedStatePreservedDisk `json:"disks,omitempty"`
31038
31039	// Metadata: Preserved metadata defined for this instance.
31040	Metadata map[string]string `json:"metadata,omitempty"`
31041
31042	// ForceSendFields is a list of field names (e.g. "Disks") to
31043	// unconditionally include in API requests. By default, fields with
31044	// empty or default values are omitted from API requests. However, any
31045	// non-pointer, non-interface field appearing in ForceSendFields will be
31046	// sent to the server regardless of whether the field is empty or not.
31047	// This may be used to include empty fields in Patch requests.
31048	ForceSendFields []string `json:"-"`
31049
31050	// NullFields is a list of field names (e.g. "Disks") to include in API
31051	// requests with the JSON null value. By default, fields with empty
31052	// values are omitted from API requests. However, any field with an
31053	// empty value appearing in NullFields will be sent to the server as
31054	// null. It is an error if a field in this list has a non-empty value.
31055	// This may be used to include null fields in Patch requests.
31056	NullFields []string `json:"-"`
31057}
31058
31059func (s *PreservedState) MarshalJSON() ([]byte, error) {
31060	type NoMethod PreservedState
31061	raw := NoMethod(*s)
31062	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31063}
31064
31065type PreservedStatePreservedDisk struct {
31066	// AutoDelete: These stateful disks will never be deleted during
31067	// autohealing, update, instance recreate operations. This flag is used
31068	// to configure if the disk should be deleted after it is no longer used
31069	// by the group, e.g. when the given instance or the whole MIG is
31070	// deleted. Note: disks attached in READ_ONLY mode cannot be
31071	// auto-deleted.
31072	//
31073	// Possible values:
31074	//   "NEVER"
31075	//   "ON_PERMANENT_INSTANCE_DELETION"
31076	AutoDelete string `json:"autoDelete,omitempty"`
31077
31078	// Mode: The mode in which to attach this disk, either READ_WRITE or
31079	// READ_ONLY. If not specified, the default is to attach the disk in
31080	// READ_WRITE mode.
31081	//
31082	// Possible values:
31083	//   "READ_ONLY" - Attaches this disk in read-only mode. Multiple VM
31084	// instances can use a disk in READ_ONLY mode at a time.
31085	//   "READ_WRITE" - *[Default]* Attaches this disk in READ_WRITE mode.
31086	// Only one VM instance at a time can be attached to a disk in
31087	// READ_WRITE mode.
31088	Mode string `json:"mode,omitempty"`
31089
31090	// Source: The URL of the disk resource that is stateful and should be
31091	// attached to the VM instance.
31092	Source string `json:"source,omitempty"`
31093
31094	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
31095	// unconditionally include in API requests. By default, fields with
31096	// empty or default values are omitted from API requests. However, any
31097	// non-pointer, non-interface field appearing in ForceSendFields will be
31098	// sent to the server regardless of whether the field is empty or not.
31099	// This may be used to include empty fields in Patch requests.
31100	ForceSendFields []string `json:"-"`
31101
31102	// NullFields is a list of field names (e.g. "AutoDelete") to include in
31103	// API requests with the JSON null value. By default, fields with empty
31104	// values are omitted from API requests. However, any field with an
31105	// empty value appearing in NullFields will be sent to the server as
31106	// null. It is an error if a field in this list has a non-empty value.
31107	// This may be used to include null fields in Patch requests.
31108	NullFields []string `json:"-"`
31109}
31110
31111func (s *PreservedStatePreservedDisk) MarshalJSON() ([]byte, error) {
31112	type NoMethod PreservedStatePreservedDisk
31113	raw := NoMethod(*s)
31114	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31115}
31116
31117// Project: Represents a Project resource. A project is used to organize
31118// resources in a Google Cloud Platform environment. For more
31119// information, read about the Resource Hierarchy.
31120type Project struct {
31121	// CommonInstanceMetadata: Metadata key/value pairs available to all
31122	// instances contained in this project. See Custom metadata for more
31123	// information.
31124	CommonInstanceMetadata *Metadata `json:"commonInstanceMetadata,omitempty"`
31125
31126	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
31127	// format.
31128	CreationTimestamp string `json:"creationTimestamp,omitempty"`
31129
31130	// DefaultNetworkTier: This signifies the default network tier used for
31131	// configuring resources of the project and can only take the following
31132	// values: PREMIUM, STANDARD. Initially the default network tier is
31133	// PREMIUM.
31134	//
31135	// Possible values:
31136	//   "PREMIUM" - High quality, Google-grade network tier, support for
31137	// all networking products.
31138	//   "STANDARD" - Public internet quality, only limited support for
31139	// other networking products.
31140	DefaultNetworkTier string `json:"defaultNetworkTier,omitempty"`
31141
31142	// DefaultServiceAccount: [Output Only] Default service account used by
31143	// VMs running in this project.
31144	DefaultServiceAccount string `json:"defaultServiceAccount,omitempty"`
31145
31146	// Description: An optional textual description of the resource.
31147	Description string `json:"description,omitempty"`
31148
31149	// EnabledFeatures: Restricted features enabled for use on this project.
31150	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
31151
31152	// Id: [Output Only] The unique identifier for the resource. This
31153	// identifier is defined by the server. This is *not* the project ID,
31154	// and is just a unique ID used by Compute Engine to identify resources.
31155	Id uint64 `json:"id,omitempty,string"`
31156
31157	// Kind: [Output Only] Type of the resource. Always compute#project for
31158	// projects.
31159	Kind string `json:"kind,omitempty"`
31160
31161	// Name: The project ID. For example: my-example-project. Use the
31162	// project ID to make requests to Compute Engine.
31163	Name string `json:"name,omitempty"`
31164
31165	// Quotas: [Output Only] Quotas assigned to this project.
31166	Quotas []*Quota `json:"quotas,omitempty"`
31167
31168	// SelfLink: [Output Only] Server-defined URL for the resource.
31169	SelfLink string `json:"selfLink,omitempty"`
31170
31171	// UsageExportLocation: The naming prefix for daily usage reports and
31172	// the Google Cloud Storage bucket where they are stored.
31173	UsageExportLocation *UsageExportLocation `json:"usageExportLocation,omitempty"`
31174
31175	// XpnProjectStatus: [Output Only] The role this project has in a shared
31176	// VPC configuration. Currently, only projects with the host role, which
31177	// is specified by the value HOST, are differentiated.
31178	//
31179	// Possible values:
31180	//   "HOST"
31181	//   "UNSPECIFIED_XPN_PROJECT_STATUS"
31182	XpnProjectStatus string `json:"xpnProjectStatus,omitempty"`
31183
31184	// ServerResponse contains the HTTP response code and headers from the
31185	// server.
31186	googleapi.ServerResponse `json:"-"`
31187
31188	// ForceSendFields is a list of field names (e.g.
31189	// "CommonInstanceMetadata") to unconditionally include in API requests.
31190	// By default, fields with empty or default values are omitted from API
31191	// requests. However, any non-pointer, non-interface field appearing in
31192	// ForceSendFields will be sent to the server regardless of whether the
31193	// field is empty or not. This may be used to include empty fields in
31194	// Patch requests.
31195	ForceSendFields []string `json:"-"`
31196
31197	// NullFields is a list of field names (e.g. "CommonInstanceMetadata")
31198	// to include in API requests with the JSON null value. By default,
31199	// fields with empty values are omitted from API requests. However, any
31200	// field with an empty value appearing in NullFields will be sent to the
31201	// server as null. It is an error if a field in this list has a
31202	// non-empty value. This may be used to include null fields in Patch
31203	// requests.
31204	NullFields []string `json:"-"`
31205}
31206
31207func (s *Project) MarshalJSON() ([]byte, error) {
31208	type NoMethod Project
31209	raw := NoMethod(*s)
31210	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31211}
31212
31213type ProjectsDisableXpnResourceRequest struct {
31214	// XpnResource: Service resource (a.k.a service project) ID.
31215	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
31216
31217	// ForceSendFields is a list of field names (e.g. "XpnResource") to
31218	// unconditionally include in API requests. By default, fields with
31219	// empty or default values are omitted from API requests. However, any
31220	// non-pointer, non-interface field appearing in ForceSendFields will be
31221	// sent to the server regardless of whether the field is empty or not.
31222	// This may be used to include empty fields in Patch requests.
31223	ForceSendFields []string `json:"-"`
31224
31225	// NullFields is a list of field names (e.g. "XpnResource") to include
31226	// in API requests with the JSON null value. By default, fields with
31227	// empty values are omitted from API requests. However, any field with
31228	// an empty value appearing in NullFields will be sent to the server as
31229	// null. It is an error if a field in this list has a non-empty value.
31230	// This may be used to include null fields in Patch requests.
31231	NullFields []string `json:"-"`
31232}
31233
31234func (s *ProjectsDisableXpnResourceRequest) MarshalJSON() ([]byte, error) {
31235	type NoMethod ProjectsDisableXpnResourceRequest
31236	raw := NoMethod(*s)
31237	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31238}
31239
31240type ProjectsEnableXpnResourceRequest struct {
31241	// XpnResource: Service resource (a.k.a service project) ID.
31242	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
31243
31244	// ForceSendFields is a list of field names (e.g. "XpnResource") to
31245	// unconditionally include in API requests. By default, fields with
31246	// empty or default values are omitted from API requests. However, any
31247	// non-pointer, non-interface field appearing in ForceSendFields will be
31248	// sent to the server regardless of whether the field is empty or not.
31249	// This may be used to include empty fields in Patch requests.
31250	ForceSendFields []string `json:"-"`
31251
31252	// NullFields is a list of field names (e.g. "XpnResource") to include
31253	// in API requests with the JSON null value. By default, fields with
31254	// empty values are omitted from API requests. However, any field with
31255	// an empty value appearing in NullFields will be sent to the server as
31256	// null. It is an error if a field in this list has a non-empty value.
31257	// This may be used to include null fields in Patch requests.
31258	NullFields []string `json:"-"`
31259}
31260
31261func (s *ProjectsEnableXpnResourceRequest) MarshalJSON() ([]byte, error) {
31262	type NoMethod ProjectsEnableXpnResourceRequest
31263	raw := NoMethod(*s)
31264	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31265}
31266
31267type ProjectsGetXpnResources struct {
31268	// Kind: [Output Only] Type of resource. Always
31269	// compute#projectsGetXpnResources for lists of service resources (a.k.a
31270	// service projects)
31271	Kind string `json:"kind,omitempty"`
31272
31273	// NextPageToken: [Output Only] This token allows you to get the next
31274	// page of results for list requests. If the number of results is larger
31275	// than maxResults, use the nextPageToken as a value for the query
31276	// parameter pageToken in the next list request. Subsequent list
31277	// requests will have their own nextPageToken to continue paging through
31278	// the results.
31279	NextPageToken string `json:"nextPageToken,omitempty"`
31280
31281	// Resources: Service resources (a.k.a service projects) attached to
31282	// this project as their shared VPC host.
31283	Resources []*XpnResourceId `json:"resources,omitempty"`
31284
31285	// ServerResponse contains the HTTP response code and headers from the
31286	// server.
31287	googleapi.ServerResponse `json:"-"`
31288
31289	// ForceSendFields is a list of field names (e.g. "Kind") to
31290	// unconditionally include in API requests. By default, fields with
31291	// empty or default values are omitted from API requests. However, any
31292	// non-pointer, non-interface field appearing in ForceSendFields will be
31293	// sent to the server regardless of whether the field is empty or not.
31294	// This may be used to include empty fields in Patch requests.
31295	ForceSendFields []string `json:"-"`
31296
31297	// NullFields is a list of field names (e.g. "Kind") to include in API
31298	// requests with the JSON null value. By default, fields with empty
31299	// values are omitted from API requests. However, any field with an
31300	// empty value appearing in NullFields will be sent to the server as
31301	// null. It is an error if a field in this list has a non-empty value.
31302	// This may be used to include null fields in Patch requests.
31303	NullFields []string `json:"-"`
31304}
31305
31306func (s *ProjectsGetXpnResources) MarshalJSON() ([]byte, error) {
31307	type NoMethod ProjectsGetXpnResources
31308	raw := NoMethod(*s)
31309	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31310}
31311
31312type ProjectsListXpnHostsRequest struct {
31313	// Organization: Optional organization ID managed by Cloud Resource
31314	// Manager, for which to list shared VPC host projects. If not
31315	// specified, the organization will be inferred from the project.
31316	Organization string `json:"organization,omitempty"`
31317
31318	// ForceSendFields is a list of field names (e.g. "Organization") to
31319	// unconditionally include in API requests. By default, fields with
31320	// empty or default values are omitted from API requests. However, any
31321	// non-pointer, non-interface field appearing in ForceSendFields will be
31322	// sent to the server regardless of whether the field is empty or not.
31323	// This may be used to include empty fields in Patch requests.
31324	ForceSendFields []string `json:"-"`
31325
31326	// NullFields is a list of field names (e.g. "Organization") to include
31327	// in API requests with the JSON null value. By default, fields with
31328	// empty values are omitted from API requests. However, any field with
31329	// an empty value appearing in NullFields will be sent to the server as
31330	// null. It is an error if a field in this list has a non-empty value.
31331	// This may be used to include null fields in Patch requests.
31332	NullFields []string `json:"-"`
31333}
31334
31335func (s *ProjectsListXpnHostsRequest) MarshalJSON() ([]byte, error) {
31336	type NoMethod ProjectsListXpnHostsRequest
31337	raw := NoMethod(*s)
31338	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31339}
31340
31341type ProjectsSetDefaultNetworkTierRequest struct {
31342	// NetworkTier: Default network tier to be set.
31343	//
31344	// Possible values:
31345	//   "PREMIUM" - High quality, Google-grade network tier, support for
31346	// all networking products.
31347	//   "STANDARD" - Public internet quality, only limited support for
31348	// other networking products.
31349	NetworkTier string `json:"networkTier,omitempty"`
31350
31351	// ForceSendFields is a list of field names (e.g. "NetworkTier") to
31352	// unconditionally include in API requests. By default, fields with
31353	// empty or default values are omitted from API requests. However, any
31354	// non-pointer, non-interface field appearing in ForceSendFields will be
31355	// sent to the server regardless of whether the field is empty or not.
31356	// This may be used to include empty fields in Patch requests.
31357	ForceSendFields []string `json:"-"`
31358
31359	// NullFields is a list of field names (e.g. "NetworkTier") to include
31360	// in API requests with the JSON null value. By default, fields with
31361	// empty values are omitted from API requests. However, any field with
31362	// an empty value appearing in NullFields will be sent to the server as
31363	// null. It is an error if a field in this list has a non-empty value.
31364	// This may be used to include null fields in Patch requests.
31365	NullFields []string `json:"-"`
31366}
31367
31368func (s *ProjectsSetDefaultNetworkTierRequest) MarshalJSON() ([]byte, error) {
31369	type NoMethod ProjectsSetDefaultNetworkTierRequest
31370	raw := NoMethod(*s)
31371	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31372}
31373
31374// PublicAdvertisedPrefix: A public advertised prefix represents an
31375// aggregated IP prefix or netblock which customers bring to cloud. The
31376// IP prefix is a single unit of route advertisement and is announced
31377// globally to the internet.
31378type PublicAdvertisedPrefix struct {
31379	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
31380	// format.
31381	CreationTimestamp string `json:"creationTimestamp,omitempty"`
31382
31383	// Description: An optional description of this resource. Provide this
31384	// property when you create the resource.
31385	Description string `json:"description,omitempty"`
31386
31387	// DnsVerificationIp: The IPv4 address to be used for reverse DNS
31388	// verification.
31389	DnsVerificationIp string `json:"dnsVerificationIp,omitempty"`
31390
31391	// Fingerprint: Fingerprint of this resource. A hash of the contents
31392	// stored in this object. This field is used in optimistic locking. This
31393	// field will be ignored when inserting a new PublicAdvertisedPrefix. An
31394	// up-to-date fingerprint must be provided in order to update the
31395	// PublicAdvertisedPrefix, otherwise the request will fail with error
31396	// 412 conditionNotMet. To see the latest fingerprint, make a get()
31397	// request to retrieve a PublicAdvertisedPrefix.
31398	Fingerprint string `json:"fingerprint,omitempty"`
31399
31400	// Id: [Output Only] The unique identifier for the resource type. The
31401	// server generates this identifier.
31402	Id uint64 `json:"id,omitempty,string"`
31403
31404	// IpCidrRange: The IPv4 address range, in CIDR format, represented by
31405	// this public advertised prefix.
31406	IpCidrRange string `json:"ipCidrRange,omitempty"`
31407
31408	// Kind: [Output Only] Type of the resource. Always
31409	// compute#publicAdvertisedPrefix for public advertised prefixes.
31410	Kind string `json:"kind,omitempty"`
31411
31412	// Name: Name of the resource. Provided by the client when the resource
31413	// is created. The name must be 1-63 characters long, and comply with
31414	// RFC1035. Specifically, the name must be 1-63 characters long and
31415	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
31416	// the first character must be a lowercase letter, and all following
31417	// characters must be a dash, lowercase letter, or digit, except the
31418	// last character, which cannot be a dash.
31419	Name string `json:"name,omitempty"`
31420
31421	// PublicDelegatedPrefixs: [Output Only] The list of public delegated
31422	// prefixes that exist for this public advertised prefix.
31423	PublicDelegatedPrefixs []*PublicAdvertisedPrefixPublicDelegatedPrefix `json:"publicDelegatedPrefixs,omitempty"`
31424
31425	// SelfLink: [Output Only] Server-defined URL for the resource.
31426	SelfLink string `json:"selfLink,omitempty"`
31427
31428	// SharedSecret: [Output Only] The shared secret to be used for reverse
31429	// DNS verification.
31430	SharedSecret string `json:"sharedSecret,omitempty"`
31431
31432	// Status: The status of the public advertised prefix.
31433	//
31434	// Possible values:
31435	//   "INITIAL"
31436	//   "PREFIX_CONFIGURATION_COMPLETE"
31437	//   "PREFIX_CONFIGURATION_IN_PROGRESS"
31438	//   "PREFIX_REMOVAL_IN_PROGRESS"
31439	//   "PTR_CONFIGURED"
31440	//   "REVERSE_DNS_LOOKUP_FAILED"
31441	//   "VALIDATED"
31442	Status string `json:"status,omitempty"`
31443
31444	// ServerResponse contains the HTTP response code and headers from the
31445	// server.
31446	googleapi.ServerResponse `json:"-"`
31447
31448	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
31449	// to unconditionally include in API requests. By default, fields with
31450	// empty or default values are omitted from API requests. However, any
31451	// non-pointer, non-interface field appearing in ForceSendFields will be
31452	// sent to the server regardless of whether the field is empty or not.
31453	// This may be used to include empty fields in Patch requests.
31454	ForceSendFields []string `json:"-"`
31455
31456	// NullFields is a list of field names (e.g. "CreationTimestamp") to
31457	// include in API requests with the JSON null value. By default, fields
31458	// with empty values are omitted from API requests. However, any field
31459	// with an empty value appearing in NullFields will be sent to the
31460	// server as null. It is an error if a field in this list has a
31461	// non-empty value. This may be used to include null fields in Patch
31462	// requests.
31463	NullFields []string `json:"-"`
31464}
31465
31466func (s *PublicAdvertisedPrefix) MarshalJSON() ([]byte, error) {
31467	type NoMethod PublicAdvertisedPrefix
31468	raw := NoMethod(*s)
31469	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31470}
31471
31472type PublicAdvertisedPrefixList struct {
31473	// Id: [Output Only] Unique identifier for the resource; defined by the
31474	// server.
31475	Id string `json:"id,omitempty"`
31476
31477	// Items: A list of PublicAdvertisedPrefix resources.
31478	Items []*PublicAdvertisedPrefix `json:"items,omitempty"`
31479
31480	// Kind: [Output Only] Type of the resource. Always
31481	// compute#publicAdvertisedPrefix for public advertised prefixes.
31482	Kind string `json:"kind,omitempty"`
31483
31484	// NextPageToken: [Output Only] This token allows you to get the next
31485	// page of results for list requests. If the number of results is larger
31486	// than maxResults, use the nextPageToken as a value for the query
31487	// parameter pageToken in the next list request. Subsequent list
31488	// requests will have their own nextPageToken to continue paging through
31489	// the results.
31490	NextPageToken string `json:"nextPageToken,omitempty"`
31491
31492	// SelfLink: [Output Only] Server-defined URL for this resource.
31493	SelfLink string `json:"selfLink,omitempty"`
31494
31495	// Warning: [Output Only] Informational warning message.
31496	Warning *PublicAdvertisedPrefixListWarning `json:"warning,omitempty"`
31497
31498	// ServerResponse contains the HTTP response code and headers from the
31499	// server.
31500	googleapi.ServerResponse `json:"-"`
31501
31502	// ForceSendFields is a list of field names (e.g. "Id") to
31503	// unconditionally include in API requests. By default, fields with
31504	// empty or default values are omitted from API requests. However, any
31505	// non-pointer, non-interface field appearing in ForceSendFields will be
31506	// sent to the server regardless of whether the field is empty or not.
31507	// This may be used to include empty fields in Patch requests.
31508	ForceSendFields []string `json:"-"`
31509
31510	// NullFields is a list of field names (e.g. "Id") to include in API
31511	// requests with the JSON null value. By default, fields with empty
31512	// values are omitted from API requests. However, any field with an
31513	// empty value appearing in NullFields will be sent to the server as
31514	// null. It is an error if a field in this list has a non-empty value.
31515	// This may be used to include null fields in Patch requests.
31516	NullFields []string `json:"-"`
31517}
31518
31519func (s *PublicAdvertisedPrefixList) MarshalJSON() ([]byte, error) {
31520	type NoMethod PublicAdvertisedPrefixList
31521	raw := NoMethod(*s)
31522	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31523}
31524
31525// PublicAdvertisedPrefixListWarning: [Output Only] Informational
31526// warning message.
31527type PublicAdvertisedPrefixListWarning struct {
31528	// Code: [Output Only] A warning code, if applicable. For example,
31529	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31530	// the response.
31531	//
31532	// Possible values:
31533	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
31534	// changes made by a failed operation.
31535	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
31536	// created.
31537	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
31538	// resources has a type marked as deprecated
31539	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
31540	// that is larger than image size.
31541	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
31542	// resources has a type marked as experimental
31543	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
31544	// call
31545	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
31546	// overridden. Deprecated unused field.
31547	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
31548	// injected kernel, which is deprecated.
31549	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
31550	// exceedingly large number of resources
31551	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
31552	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
31553	// not assigned to an instance on the network.
31554	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
31555	// ip forward.
31556	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
31557	// refers to an instance that does not exist.
31558	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
31559	// URL refers to an instance that is not on the same network as the
31560	// route.
31561	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
31562	// have a status of RUNNING.
31563	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
31564	// continue the process despite the mentioned error.
31565	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
31566	// page.
31567	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
31568	// missing due to errors
31569	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
31570	// that requires a TOS they have not accepted.
31571	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
31572	// resource is in use.
31573	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
31574	// auto-delete could not be deleted because they were in use.
31575	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
31576	// ignored.
31577	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
31578	// instance group manager is valid as such, but its application does not
31579	// make a lot of sense, because it allows only single instance in
31580	// instance group.
31581	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
31582	// are present
31583	//   "UNREACHABLE" - A given scope cannot be reached.
31584	Code string `json:"code,omitempty"`
31585
31586	// Data: [Output Only] Metadata about this warning in key: value format.
31587	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
31588	// }
31589	Data []*PublicAdvertisedPrefixListWarningData `json:"data,omitempty"`
31590
31591	// Message: [Output Only] A human-readable description of the warning
31592	// code.
31593	Message string `json:"message,omitempty"`
31594
31595	// ForceSendFields is a list of field names (e.g. "Code") to
31596	// unconditionally include in API requests. By default, fields with
31597	// empty or default values are omitted from API requests. However, any
31598	// non-pointer, non-interface field appearing in ForceSendFields will be
31599	// sent to the server regardless of whether the field is empty or not.
31600	// This may be used to include empty fields in Patch requests.
31601	ForceSendFields []string `json:"-"`
31602
31603	// NullFields is a list of field names (e.g. "Code") to include in API
31604	// requests with the JSON null value. By default, fields with empty
31605	// values are omitted from API requests. However, any field with an
31606	// empty value appearing in NullFields will be sent to the server as
31607	// null. It is an error if a field in this list has a non-empty value.
31608	// This may be used to include null fields in Patch requests.
31609	NullFields []string `json:"-"`
31610}
31611
31612func (s *PublicAdvertisedPrefixListWarning) MarshalJSON() ([]byte, error) {
31613	type NoMethod PublicAdvertisedPrefixListWarning
31614	raw := NoMethod(*s)
31615	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31616}
31617
31618type PublicAdvertisedPrefixListWarningData struct {
31619	// Key: [Output Only] A key that provides more detail on the warning
31620	// being returned. For example, for warnings where there are no results
31621	// in a list request for a particular zone, this key might be scope and
31622	// the key value might be the zone name. Other examples might be a key
31623	// indicating a deprecated resource and a suggested replacement, or a
31624	// warning about invalid network settings (for example, if an instance
31625	// attempts to perform IP forwarding but is not enabled for IP
31626	// forwarding).
31627	Key string `json:"key,omitempty"`
31628
31629	// Value: [Output Only] A warning data value corresponding to the key.
31630	Value string `json:"value,omitempty"`
31631
31632	// ForceSendFields is a list of field names (e.g. "Key") to
31633	// unconditionally include in API requests. By default, fields with
31634	// empty or default values are omitted from API requests. However, any
31635	// non-pointer, non-interface field appearing in ForceSendFields will be
31636	// sent to the server regardless of whether the field is empty or not.
31637	// This may be used to include empty fields in Patch requests.
31638	ForceSendFields []string `json:"-"`
31639
31640	// NullFields is a list of field names (e.g. "Key") to include in API
31641	// requests with the JSON null value. By default, fields with empty
31642	// values are omitted from API requests. However, any field with an
31643	// empty value appearing in NullFields will be sent to the server as
31644	// null. It is an error if a field in this list has a non-empty value.
31645	// This may be used to include null fields in Patch requests.
31646	NullFields []string `json:"-"`
31647}
31648
31649func (s *PublicAdvertisedPrefixListWarningData) MarshalJSON() ([]byte, error) {
31650	type NoMethod PublicAdvertisedPrefixListWarningData
31651	raw := NoMethod(*s)
31652	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31653}
31654
31655// PublicAdvertisedPrefixPublicDelegatedPrefix: Represents a CIDR range
31656// which can be used to assign addresses.
31657type PublicAdvertisedPrefixPublicDelegatedPrefix struct {
31658	// IpRange: The IP address range of the public delegated prefix
31659	IpRange string `json:"ipRange,omitempty"`
31660
31661	// Name: The name of the public delegated prefix
31662	Name string `json:"name,omitempty"`
31663
31664	// Project: The project number of the public delegated prefix
31665	Project string `json:"project,omitempty"`
31666
31667	// Region: The region of the public delegated prefix if it is regional.
31668	// If absent, the prefix is global.
31669	Region string `json:"region,omitempty"`
31670
31671	// Status: The status of the public delegated prefix. Possible values
31672	// are: INITIALIZING: The public delegated prefix is being initialized
31673	// and addresses cannot be created yet. ANNOUNCED: The public delegated
31674	// prefix is active.
31675	Status string `json:"status,omitempty"`
31676
31677	// ForceSendFields is a list of field names (e.g. "IpRange") to
31678	// unconditionally include in API requests. By default, fields with
31679	// empty or default values are omitted from API requests. However, any
31680	// non-pointer, non-interface field appearing in ForceSendFields will be
31681	// sent to the server regardless of whether the field is empty or not.
31682	// This may be used to include empty fields in Patch requests.
31683	ForceSendFields []string `json:"-"`
31684
31685	// NullFields is a list of field names (e.g. "IpRange") to include in
31686	// API requests with the JSON null value. By default, fields with empty
31687	// values are omitted from API requests. However, any field with an
31688	// empty value appearing in NullFields will be sent to the server as
31689	// null. It is an error if a field in this list has a non-empty value.
31690	// This may be used to include null fields in Patch requests.
31691	NullFields []string `json:"-"`
31692}
31693
31694func (s *PublicAdvertisedPrefixPublicDelegatedPrefix) MarshalJSON() ([]byte, error) {
31695	type NoMethod PublicAdvertisedPrefixPublicDelegatedPrefix
31696	raw := NoMethod(*s)
31697	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31698}
31699
31700// PublicDelegatedPrefix: A PublicDelegatedPrefix resource represents an
31701// IP block within a PublicAdvertisedPrefix that is configured within a
31702// single cloud scope (global or region). IPs in the block can be
31703// allocated to resources within that scope. Public delegated prefixes
31704// may be further broken up into smaller IP blocks in the same scope as
31705// the parent block.
31706type PublicDelegatedPrefix struct {
31707	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
31708	// format.
31709	CreationTimestamp string `json:"creationTimestamp,omitempty"`
31710
31711	// Description: An optional description of this resource. Provide this
31712	// property when you create the resource.
31713	Description string `json:"description,omitempty"`
31714
31715	// Fingerprint: Fingerprint of this resource. A hash of the contents
31716	// stored in this object. This field is used in optimistic locking. This
31717	// field will be ignored when inserting a new PublicDelegatedPrefix. An
31718	// up-to-date fingerprint must be provided in order to update the
31719	// PublicDelegatedPrefix, otherwise the request will fail with error 412
31720	// conditionNotMet. To see the latest fingerprint, make a get() request
31721	// to retrieve a PublicDelegatedPrefix.
31722	Fingerprint string `json:"fingerprint,omitempty"`
31723
31724	// Id: [Output Only] The unique identifier for the resource type. The
31725	// server generates this identifier.
31726	Id uint64 `json:"id,omitempty,string"`
31727
31728	// IpCidrRange: The IPv4 address range, in CIDR format, represented by
31729	// this public delegated prefix.
31730	IpCidrRange string `json:"ipCidrRange,omitempty"`
31731
31732	// IsLiveMigration: If true, the prefix will be live migrated.
31733	IsLiveMigration bool `json:"isLiveMigration,omitempty"`
31734
31735	// Kind: [Output Only] Type of the resource. Always
31736	// compute#publicDelegatedPrefix for public delegated prefixes.
31737	Kind string `json:"kind,omitempty"`
31738
31739	// Name: Name of the resource. Provided by the client when the resource
31740	// is created. The name must be 1-63 characters long, and comply with
31741	// RFC1035. Specifically, the name must be 1-63 characters long and
31742	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
31743	// the first character must be a lowercase letter, and all following
31744	// characters must be a dash, lowercase letter, or digit, except the
31745	// last character, which cannot be a dash.
31746	Name string `json:"name,omitempty"`
31747
31748	// ParentPrefix: The URL of parent prefix. Either PublicAdvertisedPrefix
31749	// or PublicDelegatedPrefix.
31750	ParentPrefix string `json:"parentPrefix,omitempty"`
31751
31752	// PublicDelegatedSubPrefixs: The list of sub public delegated prefixes
31753	// that exist for this public delegated prefix.
31754	PublicDelegatedSubPrefixs []*PublicDelegatedPrefixPublicDelegatedSubPrefix `json:"publicDelegatedSubPrefixs,omitempty"`
31755
31756	// Region: [Output Only] URL of the region where the public delegated
31757	// prefix resides. This field applies only to the region resource. You
31758	// must specify this field as part of the HTTP request URL. It is not
31759	// settable as a field in the request body.
31760	Region string `json:"region,omitempty"`
31761
31762	// SelfLink: [Output Only] Server-defined URL for the resource.
31763	SelfLink string `json:"selfLink,omitempty"`
31764
31765	// Status: [Output Only] The status of the public delegated prefix.
31766	//
31767	// Possible values:
31768	//   "ANNOUNCED"
31769	//   "DELETING"
31770	//   "INITIALIZING"
31771	//   "READY_TO_ANNOUNCE"
31772	Status string `json:"status,omitempty"`
31773
31774	// ServerResponse contains the HTTP response code and headers from the
31775	// server.
31776	googleapi.ServerResponse `json:"-"`
31777
31778	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
31779	// to unconditionally include in API requests. By default, fields with
31780	// empty or default values are omitted from API requests. However, any
31781	// non-pointer, non-interface field appearing in ForceSendFields will be
31782	// sent to the server regardless of whether the field is empty or not.
31783	// This may be used to include empty fields in Patch requests.
31784	ForceSendFields []string `json:"-"`
31785
31786	// NullFields is a list of field names (e.g. "CreationTimestamp") to
31787	// include in API requests with the JSON null value. By default, fields
31788	// with empty values are omitted from API requests. However, any field
31789	// with an empty value appearing in NullFields will be sent to the
31790	// server as null. It is an error if a field in this list has a
31791	// non-empty value. This may be used to include null fields in Patch
31792	// requests.
31793	NullFields []string `json:"-"`
31794}
31795
31796func (s *PublicDelegatedPrefix) MarshalJSON() ([]byte, error) {
31797	type NoMethod PublicDelegatedPrefix
31798	raw := NoMethod(*s)
31799	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31800}
31801
31802type PublicDelegatedPrefixAggregatedList struct {
31803	// Id: [Output Only] Unique identifier for the resource; defined by the
31804	// server.
31805	Id string `json:"id,omitempty"`
31806
31807	// Items: A list of PublicDelegatedPrefixesScopedList resources.
31808	Items map[string]PublicDelegatedPrefixesScopedList `json:"items,omitempty"`
31809
31810	// Kind: [Output Only] Type of the resource. Always
31811	// compute#publicDelegatedPrefixAggregatedList for aggregated lists of
31812	// public delegated prefixes.
31813	Kind string `json:"kind,omitempty"`
31814
31815	// NextPageToken: [Output Only] This token allows you to get the next
31816	// page of results for list requests. If the number of results is larger
31817	// than maxResults, use the nextPageToken as a value for the query
31818	// parameter pageToken in the next list request. Subsequent list
31819	// requests will have their own nextPageToken to continue paging through
31820	// the results.
31821	NextPageToken string `json:"nextPageToken,omitempty"`
31822
31823	// SelfLink: [Output Only] Server-defined URL for this resource.
31824	SelfLink string `json:"selfLink,omitempty"`
31825
31826	// Unreachables: [Output Only] Unreachable resources.
31827	Unreachables []string `json:"unreachables,omitempty"`
31828
31829	// Warning: [Output Only] Informational warning message.
31830	Warning *PublicDelegatedPrefixAggregatedListWarning `json:"warning,omitempty"`
31831
31832	// ServerResponse contains the HTTP response code and headers from the
31833	// server.
31834	googleapi.ServerResponse `json:"-"`
31835
31836	// ForceSendFields is a list of field names (e.g. "Id") to
31837	// unconditionally include in API requests. By default, fields with
31838	// empty or default values are omitted from API requests. However, any
31839	// non-pointer, non-interface field appearing in ForceSendFields will be
31840	// sent to the server regardless of whether the field is empty or not.
31841	// This may be used to include empty fields in Patch requests.
31842	ForceSendFields []string `json:"-"`
31843
31844	// NullFields is a list of field names (e.g. "Id") to include in API
31845	// requests with the JSON null value. By default, fields with empty
31846	// values are omitted from API requests. However, any field with an
31847	// empty value appearing in NullFields will be sent to the server as
31848	// null. It is an error if a field in this list has a non-empty value.
31849	// This may be used to include null fields in Patch requests.
31850	NullFields []string `json:"-"`
31851}
31852
31853func (s *PublicDelegatedPrefixAggregatedList) MarshalJSON() ([]byte, error) {
31854	type NoMethod PublicDelegatedPrefixAggregatedList
31855	raw := NoMethod(*s)
31856	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31857}
31858
31859// PublicDelegatedPrefixAggregatedListWarning: [Output Only]
31860// Informational warning message.
31861type PublicDelegatedPrefixAggregatedListWarning struct {
31862	// Code: [Output Only] A warning code, if applicable. For example,
31863	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31864	// the response.
31865	//
31866	// Possible values:
31867	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
31868	// changes made by a failed operation.
31869	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
31870	// created.
31871	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
31872	// resources has a type marked as deprecated
31873	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
31874	// that is larger than image size.
31875	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
31876	// resources has a type marked as experimental
31877	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
31878	// call
31879	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
31880	// overridden. Deprecated unused field.
31881	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
31882	// injected kernel, which is deprecated.
31883	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
31884	// exceedingly large number of resources
31885	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
31886	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
31887	// not assigned to an instance on the network.
31888	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
31889	// ip forward.
31890	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
31891	// refers to an instance that does not exist.
31892	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
31893	// URL refers to an instance that is not on the same network as the
31894	// route.
31895	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
31896	// have a status of RUNNING.
31897	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
31898	// continue the process despite the mentioned error.
31899	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
31900	// page.
31901	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
31902	// missing due to errors
31903	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
31904	// that requires a TOS they have not accepted.
31905	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
31906	// resource is in use.
31907	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
31908	// auto-delete could not be deleted because they were in use.
31909	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
31910	// ignored.
31911	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
31912	// instance group manager is valid as such, but its application does not
31913	// make a lot of sense, because it allows only single instance in
31914	// instance group.
31915	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
31916	// are present
31917	//   "UNREACHABLE" - A given scope cannot be reached.
31918	Code string `json:"code,omitempty"`
31919
31920	// Data: [Output Only] Metadata about this warning in key: value format.
31921	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
31922	// }
31923	Data []*PublicDelegatedPrefixAggregatedListWarningData `json:"data,omitempty"`
31924
31925	// Message: [Output Only] A human-readable description of the warning
31926	// code.
31927	Message string `json:"message,omitempty"`
31928
31929	// ForceSendFields is a list of field names (e.g. "Code") to
31930	// unconditionally include in API requests. By default, fields with
31931	// empty or default values are omitted from API requests. However, any
31932	// non-pointer, non-interface field appearing in ForceSendFields will be
31933	// sent to the server regardless of whether the field is empty or not.
31934	// This may be used to include empty fields in Patch requests.
31935	ForceSendFields []string `json:"-"`
31936
31937	// NullFields is a list of field names (e.g. "Code") to include in API
31938	// requests with the JSON null value. By default, fields with empty
31939	// values are omitted from API requests. However, any field with an
31940	// empty value appearing in NullFields will be sent to the server as
31941	// null. It is an error if a field in this list has a non-empty value.
31942	// This may be used to include null fields in Patch requests.
31943	NullFields []string `json:"-"`
31944}
31945
31946func (s *PublicDelegatedPrefixAggregatedListWarning) MarshalJSON() ([]byte, error) {
31947	type NoMethod PublicDelegatedPrefixAggregatedListWarning
31948	raw := NoMethod(*s)
31949	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31950}
31951
31952type PublicDelegatedPrefixAggregatedListWarningData struct {
31953	// Key: [Output Only] A key that provides more detail on the warning
31954	// being returned. For example, for warnings where there are no results
31955	// in a list request for a particular zone, this key might be scope and
31956	// the key value might be the zone name. Other examples might be a key
31957	// indicating a deprecated resource and a suggested replacement, or a
31958	// warning about invalid network settings (for example, if an instance
31959	// attempts to perform IP forwarding but is not enabled for IP
31960	// forwarding).
31961	Key string `json:"key,omitempty"`
31962
31963	// Value: [Output Only] A warning data value corresponding to the key.
31964	Value string `json:"value,omitempty"`
31965
31966	// ForceSendFields is a list of field names (e.g. "Key") to
31967	// unconditionally include in API requests. By default, fields with
31968	// empty or default values are omitted from API requests. However, any
31969	// non-pointer, non-interface field appearing in ForceSendFields will be
31970	// sent to the server regardless of whether the field is empty or not.
31971	// This may be used to include empty fields in Patch requests.
31972	ForceSendFields []string `json:"-"`
31973
31974	// NullFields is a list of field names (e.g. "Key") to include in API
31975	// requests with the JSON null value. By default, fields with empty
31976	// values are omitted from API requests. However, any field with an
31977	// empty value appearing in NullFields will be sent to the server as
31978	// null. It is an error if a field in this list has a non-empty value.
31979	// This may be used to include null fields in Patch requests.
31980	NullFields []string `json:"-"`
31981}
31982
31983func (s *PublicDelegatedPrefixAggregatedListWarningData) MarshalJSON() ([]byte, error) {
31984	type NoMethod PublicDelegatedPrefixAggregatedListWarningData
31985	raw := NoMethod(*s)
31986	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31987}
31988
31989type PublicDelegatedPrefixList struct {
31990	// Id: [Output Only] Unique identifier for the resource; defined by the
31991	// server.
31992	Id string `json:"id,omitempty"`
31993
31994	// Items: A list of PublicDelegatedPrefix resources.
31995	Items []*PublicDelegatedPrefix `json:"items,omitempty"`
31996
31997	// Kind: [Output Only] Type of the resource. Always
31998	// compute#publicDelegatedPrefixList for public delegated prefixes.
31999	Kind string `json:"kind,omitempty"`
32000
32001	// NextPageToken: [Output Only] This token allows you to get the next
32002	// page of results for list requests. If the number of results is larger
32003	// than maxResults, use the nextPageToken as a value for the query
32004	// parameter pageToken in the next list request. Subsequent list
32005	// requests will have their own nextPageToken to continue paging through
32006	// the results.
32007	NextPageToken string `json:"nextPageToken,omitempty"`
32008
32009	// SelfLink: [Output Only] Server-defined URL for this resource.
32010	SelfLink string `json:"selfLink,omitempty"`
32011
32012	// Warning: [Output Only] Informational warning message.
32013	Warning *PublicDelegatedPrefixListWarning `json:"warning,omitempty"`
32014
32015	// ServerResponse contains the HTTP response code and headers from the
32016	// server.
32017	googleapi.ServerResponse `json:"-"`
32018
32019	// ForceSendFields is a list of field names (e.g. "Id") to
32020	// unconditionally include in API requests. By default, fields with
32021	// empty or default values are omitted from API requests. However, any
32022	// non-pointer, non-interface field appearing in ForceSendFields will be
32023	// sent to the server regardless of whether the field is empty or not.
32024	// This may be used to include empty fields in Patch requests.
32025	ForceSendFields []string `json:"-"`
32026
32027	// NullFields is a list of field names (e.g. "Id") to include in API
32028	// requests with the JSON null value. By default, fields with empty
32029	// values are omitted from API requests. However, any field with an
32030	// empty value appearing in NullFields will be sent to the server as
32031	// null. It is an error if a field in this list has a non-empty value.
32032	// This may be used to include null fields in Patch requests.
32033	NullFields []string `json:"-"`
32034}
32035
32036func (s *PublicDelegatedPrefixList) MarshalJSON() ([]byte, error) {
32037	type NoMethod PublicDelegatedPrefixList
32038	raw := NoMethod(*s)
32039	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32040}
32041
32042// PublicDelegatedPrefixListWarning: [Output Only] Informational warning
32043// message.
32044type PublicDelegatedPrefixListWarning struct {
32045	// Code: [Output Only] A warning code, if applicable. For example,
32046	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32047	// the response.
32048	//
32049	// Possible values:
32050	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
32051	// changes made by a failed operation.
32052	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
32053	// created.
32054	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
32055	// resources has a type marked as deprecated
32056	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
32057	// that is larger than image size.
32058	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
32059	// resources has a type marked as experimental
32060	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
32061	// call
32062	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
32063	// overridden. Deprecated unused field.
32064	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
32065	// injected kernel, which is deprecated.
32066	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
32067	// exceedingly large number of resources
32068	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
32069	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
32070	// not assigned to an instance on the network.
32071	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
32072	// ip forward.
32073	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
32074	// refers to an instance that does not exist.
32075	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
32076	// URL refers to an instance that is not on the same network as the
32077	// route.
32078	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
32079	// have a status of RUNNING.
32080	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
32081	// continue the process despite the mentioned error.
32082	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
32083	// page.
32084	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
32085	// missing due to errors
32086	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
32087	// that requires a TOS they have not accepted.
32088	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
32089	// resource is in use.
32090	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
32091	// auto-delete could not be deleted because they were in use.
32092	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
32093	// ignored.
32094	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
32095	// instance group manager is valid as such, but its application does not
32096	// make a lot of sense, because it allows only single instance in
32097	// instance group.
32098	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
32099	// are present
32100	//   "UNREACHABLE" - A given scope cannot be reached.
32101	Code string `json:"code,omitempty"`
32102
32103	// Data: [Output Only] Metadata about this warning in key: value format.
32104	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
32105	// }
32106	Data []*PublicDelegatedPrefixListWarningData `json:"data,omitempty"`
32107
32108	// Message: [Output Only] A human-readable description of the warning
32109	// code.
32110	Message string `json:"message,omitempty"`
32111
32112	// ForceSendFields is a list of field names (e.g. "Code") to
32113	// unconditionally include in API requests. By default, fields with
32114	// empty or default values are omitted from API requests. However, any
32115	// non-pointer, non-interface field appearing in ForceSendFields will be
32116	// sent to the server regardless of whether the field is empty or not.
32117	// This may be used to include empty fields in Patch requests.
32118	ForceSendFields []string `json:"-"`
32119
32120	// NullFields is a list of field names (e.g. "Code") to include in API
32121	// requests with the JSON null value. By default, fields with empty
32122	// values are omitted from API requests. However, any field with an
32123	// empty value appearing in NullFields will be sent to the server as
32124	// null. It is an error if a field in this list has a non-empty value.
32125	// This may be used to include null fields in Patch requests.
32126	NullFields []string `json:"-"`
32127}
32128
32129func (s *PublicDelegatedPrefixListWarning) MarshalJSON() ([]byte, error) {
32130	type NoMethod PublicDelegatedPrefixListWarning
32131	raw := NoMethod(*s)
32132	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32133}
32134
32135type PublicDelegatedPrefixListWarningData struct {
32136	// Key: [Output Only] A key that provides more detail on the warning
32137	// being returned. For example, for warnings where there are no results
32138	// in a list request for a particular zone, this key might be scope and
32139	// the key value might be the zone name. Other examples might be a key
32140	// indicating a deprecated resource and a suggested replacement, or a
32141	// warning about invalid network settings (for example, if an instance
32142	// attempts to perform IP forwarding but is not enabled for IP
32143	// forwarding).
32144	Key string `json:"key,omitempty"`
32145
32146	// Value: [Output Only] A warning data value corresponding to the key.
32147	Value string `json:"value,omitempty"`
32148
32149	// ForceSendFields is a list of field names (e.g. "Key") to
32150	// unconditionally include in API requests. By default, fields with
32151	// empty or default values are omitted from API requests. However, any
32152	// non-pointer, non-interface field appearing in ForceSendFields will be
32153	// sent to the server regardless of whether the field is empty or not.
32154	// This may be used to include empty fields in Patch requests.
32155	ForceSendFields []string `json:"-"`
32156
32157	// NullFields is a list of field names (e.g. "Key") to include in API
32158	// requests with the JSON null value. By default, fields with empty
32159	// values are omitted from API requests. However, any field with an
32160	// empty value appearing in NullFields will be sent to the server as
32161	// null. It is an error if a field in this list has a non-empty value.
32162	// This may be used to include null fields in Patch requests.
32163	NullFields []string `json:"-"`
32164}
32165
32166func (s *PublicDelegatedPrefixListWarningData) MarshalJSON() ([]byte, error) {
32167	type NoMethod PublicDelegatedPrefixListWarningData
32168	raw := NoMethod(*s)
32169	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32170}
32171
32172// PublicDelegatedPrefixPublicDelegatedSubPrefix: Represents a sub
32173// PublicDelegatedPrefix.
32174type PublicDelegatedPrefixPublicDelegatedSubPrefix struct {
32175	// DelegateeProject: Name of the project scoping this
32176	// PublicDelegatedSubPrefix.
32177	DelegateeProject string `json:"delegateeProject,omitempty"`
32178
32179	// Description: An optional description of this resource. Provide this
32180	// property when you create the resource.
32181	Description string `json:"description,omitempty"`
32182
32183	// IpCidrRange: The IPv4 address range, in CIDR format, represented by
32184	// this sub public delegated prefix.
32185	IpCidrRange string `json:"ipCidrRange,omitempty"`
32186
32187	// IsAddress: Whether the sub prefix is delegated to create Address
32188	// resources in the delegatee project.
32189	IsAddress bool `json:"isAddress,omitempty"`
32190
32191	// Name: The name of the sub public delegated prefix.
32192	Name string `json:"name,omitempty"`
32193
32194	// Region: [Output Only] The region of the sub public delegated prefix
32195	// if it is regional. If absent, the sub prefix is global.
32196	Region string `json:"region,omitempty"`
32197
32198	// Status: [Output Only] The status of the sub public delegated prefix.
32199	//
32200	// Possible values:
32201	//   "ACTIVE"
32202	//   "INACTIVE"
32203	Status string `json:"status,omitempty"`
32204
32205	// ForceSendFields is a list of field names (e.g. "DelegateeProject") to
32206	// unconditionally include in API requests. By default, fields with
32207	// empty or default values are omitted from API requests. However, any
32208	// non-pointer, non-interface field appearing in ForceSendFields will be
32209	// sent to the server regardless of whether the field is empty or not.
32210	// This may be used to include empty fields in Patch requests.
32211	ForceSendFields []string `json:"-"`
32212
32213	// NullFields is a list of field names (e.g. "DelegateeProject") to
32214	// include in API requests with the JSON null value. By default, fields
32215	// with empty values are omitted from API requests. However, any field
32216	// with an empty value appearing in NullFields will be sent to the
32217	// server as null. It is an error if a field in this list has a
32218	// non-empty value. This may be used to include null fields in Patch
32219	// requests.
32220	NullFields []string `json:"-"`
32221}
32222
32223func (s *PublicDelegatedPrefixPublicDelegatedSubPrefix) MarshalJSON() ([]byte, error) {
32224	type NoMethod PublicDelegatedPrefixPublicDelegatedSubPrefix
32225	raw := NoMethod(*s)
32226	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32227}
32228
32229type PublicDelegatedPrefixesScopedList struct {
32230	// PublicDelegatedPrefixes: [Output Only] A list of
32231	// PublicDelegatedPrefixes contained in this scope.
32232	PublicDelegatedPrefixes []*PublicDelegatedPrefix `json:"publicDelegatedPrefixes,omitempty"`
32233
32234	// Warning: [Output Only] Informational warning which replaces the list
32235	// of public delegated prefixes when the list is empty.
32236	Warning *PublicDelegatedPrefixesScopedListWarning `json:"warning,omitempty"`
32237
32238	// ForceSendFields is a list of field names (e.g.
32239	// "PublicDelegatedPrefixes") to unconditionally include in API
32240	// requests. By default, fields with empty or default values are omitted
32241	// from API requests. However, any non-pointer, non-interface field
32242	// appearing in ForceSendFields will be sent to the server regardless of
32243	// whether the field is empty or not. This may be used to include empty
32244	// fields in Patch requests.
32245	ForceSendFields []string `json:"-"`
32246
32247	// NullFields is a list of field names (e.g. "PublicDelegatedPrefixes")
32248	// to include in API requests with the JSON null value. By default,
32249	// fields with empty values are omitted from API requests. However, any
32250	// field with an empty value appearing in NullFields will be sent to the
32251	// server as null. It is an error if a field in this list has a
32252	// non-empty value. This may be used to include null fields in Patch
32253	// requests.
32254	NullFields []string `json:"-"`
32255}
32256
32257func (s *PublicDelegatedPrefixesScopedList) MarshalJSON() ([]byte, error) {
32258	type NoMethod PublicDelegatedPrefixesScopedList
32259	raw := NoMethod(*s)
32260	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32261}
32262
32263// PublicDelegatedPrefixesScopedListWarning: [Output Only] Informational
32264// warning which replaces the list of public delegated prefixes when the
32265// list is empty.
32266type PublicDelegatedPrefixesScopedListWarning struct {
32267	// Code: [Output Only] A warning code, if applicable. For example,
32268	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32269	// the response.
32270	//
32271	// Possible values:
32272	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
32273	// changes made by a failed operation.
32274	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
32275	// created.
32276	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
32277	// resources has a type marked as deprecated
32278	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
32279	// that is larger than image size.
32280	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
32281	// resources has a type marked as experimental
32282	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
32283	// call
32284	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
32285	// overridden. Deprecated unused field.
32286	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
32287	// injected kernel, which is deprecated.
32288	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
32289	// exceedingly large number of resources
32290	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
32291	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
32292	// not assigned to an instance on the network.
32293	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
32294	// ip forward.
32295	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
32296	// refers to an instance that does not exist.
32297	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
32298	// URL refers to an instance that is not on the same network as the
32299	// route.
32300	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
32301	// have a status of RUNNING.
32302	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
32303	// continue the process despite the mentioned error.
32304	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
32305	// page.
32306	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
32307	// missing due to errors
32308	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
32309	// that requires a TOS they have not accepted.
32310	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
32311	// resource is in use.
32312	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
32313	// auto-delete could not be deleted because they were in use.
32314	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
32315	// ignored.
32316	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
32317	// instance group manager is valid as such, but its application does not
32318	// make a lot of sense, because it allows only single instance in
32319	// instance group.
32320	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
32321	// are present
32322	//   "UNREACHABLE" - A given scope cannot be reached.
32323	Code string `json:"code,omitempty"`
32324
32325	// Data: [Output Only] Metadata about this warning in key: value format.
32326	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
32327	// }
32328	Data []*PublicDelegatedPrefixesScopedListWarningData `json:"data,omitempty"`
32329
32330	// Message: [Output Only] A human-readable description of the warning
32331	// code.
32332	Message string `json:"message,omitempty"`
32333
32334	// ForceSendFields is a list of field names (e.g. "Code") to
32335	// unconditionally include in API requests. By default, fields with
32336	// empty or default values are omitted from API requests. However, any
32337	// non-pointer, non-interface field appearing in ForceSendFields will be
32338	// sent to the server regardless of whether the field is empty or not.
32339	// This may be used to include empty fields in Patch requests.
32340	ForceSendFields []string `json:"-"`
32341
32342	// NullFields is a list of field names (e.g. "Code") to include in API
32343	// requests with the JSON null value. By default, fields with empty
32344	// values are omitted from API requests. However, any field with an
32345	// empty value appearing in NullFields will be sent to the server as
32346	// null. It is an error if a field in this list has a non-empty value.
32347	// This may be used to include null fields in Patch requests.
32348	NullFields []string `json:"-"`
32349}
32350
32351func (s *PublicDelegatedPrefixesScopedListWarning) MarshalJSON() ([]byte, error) {
32352	type NoMethod PublicDelegatedPrefixesScopedListWarning
32353	raw := NoMethod(*s)
32354	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32355}
32356
32357type PublicDelegatedPrefixesScopedListWarningData struct {
32358	// Key: [Output Only] A key that provides more detail on the warning
32359	// being returned. For example, for warnings where there are no results
32360	// in a list request for a particular zone, this key might be scope and
32361	// the key value might be the zone name. Other examples might be a key
32362	// indicating a deprecated resource and a suggested replacement, or a
32363	// warning about invalid network settings (for example, if an instance
32364	// attempts to perform IP forwarding but is not enabled for IP
32365	// forwarding).
32366	Key string `json:"key,omitempty"`
32367
32368	// Value: [Output Only] A warning data value corresponding to the key.
32369	Value string `json:"value,omitempty"`
32370
32371	// ForceSendFields is a list of field names (e.g. "Key") to
32372	// unconditionally include in API requests. By default, fields with
32373	// empty or default values are omitted from API requests. However, any
32374	// non-pointer, non-interface field appearing in ForceSendFields will be
32375	// sent to the server regardless of whether the field is empty or not.
32376	// This may be used to include empty fields in Patch requests.
32377	ForceSendFields []string `json:"-"`
32378
32379	// NullFields is a list of field names (e.g. "Key") to include in API
32380	// requests with the JSON null value. By default, fields with empty
32381	// values are omitted from API requests. However, any field with an
32382	// empty value appearing in NullFields will be sent to the server as
32383	// null. It is an error if a field in this list has a non-empty value.
32384	// This may be used to include null fields in Patch requests.
32385	NullFields []string `json:"-"`
32386}
32387
32388func (s *PublicDelegatedPrefixesScopedListWarningData) MarshalJSON() ([]byte, error) {
32389	type NoMethod PublicDelegatedPrefixesScopedListWarningData
32390	raw := NoMethod(*s)
32391	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32392}
32393
32394// Quota: A quotas entry.
32395type Quota struct {
32396	// Limit: [Output Only] Quota limit for this metric.
32397	Limit float64 `json:"limit,omitempty"`
32398
32399	// Metric: [Output Only] Name of the quota metric.
32400	//
32401	// Possible values:
32402	//   "A2_CPUS"
32403	//   "AFFINITY_GROUPS"
32404	//   "AUTOSCALERS"
32405	//   "BACKEND_BUCKETS"
32406	//   "BACKEND_SERVICES"
32407	//   "C2D_CPUS"
32408	//   "C2_CPUS"
32409	//   "C3_CPUS"
32410	//   "COMMITMENTS"
32411	//   "COMMITTED_A2_CPUS"
32412	//   "COMMITTED_C2D_CPUS"
32413	//   "COMMITTED_C2_CPUS"
32414	//   "COMMITTED_C3_CPUS"
32415	//   "COMMITTED_CPUS"
32416	//   "COMMITTED_E2_CPUS"
32417	//   "COMMITTED_LICENSES"
32418	//   "COMMITTED_LOCAL_SSD_TOTAL_GB"
32419	//   "COMMITTED_MEMORY_OPTIMIZED_CPUS"
32420	//   "COMMITTED_N2A_CPUS"
32421	//   "COMMITTED_N2D_CPUS"
32422	//   "COMMITTED_N2_CPUS"
32423	//   "COMMITTED_NVIDIA_A100_GPUS"
32424	//   "COMMITTED_NVIDIA_K80_GPUS"
32425	//   "COMMITTED_NVIDIA_P100_GPUS"
32426	//   "COMMITTED_NVIDIA_P4_GPUS"
32427	//   "COMMITTED_NVIDIA_T4_GPUS"
32428	//   "COMMITTED_NVIDIA_V100_GPUS"
32429	//   "COMMITTED_T2D_CPUS"
32430	//   "CPUS" - Guest CPUs
32431	//   "CPUS_ALL_REGIONS"
32432	//   "DISKS_TOTAL_GB"
32433	//   "E2_CPUS"
32434	//   "EXTERNAL_NETWORK_LB_FORWARDING_RULES"
32435	//   "EXTERNAL_PROTOCOL_FORWARDING_RULES"
32436	//   "EXTERNAL_VPN_GATEWAYS"
32437	//   "FIREWALLS"
32438	//   "FORWARDING_RULES"
32439	//   "GLOBAL_INTERNAL_ADDRESSES"
32440	//   "GPUS_ALL_REGIONS"
32441	//   "HEALTH_CHECKS"
32442	//   "IMAGES"
32443	//   "INSTANCES"
32444	//   "INSTANCE_GROUPS"
32445	//   "INSTANCE_GROUP_MANAGERS"
32446	//   "INSTANCE_TEMPLATES"
32447	//   "INTERCONNECTS"
32448	//   "INTERCONNECT_ATTACHMENTS_PER_REGION"
32449	//   "INTERCONNECT_ATTACHMENTS_TOTAL_MBPS"
32450	//   "INTERCONNECT_TOTAL_GBPS"
32451	//   "INTERNAL_ADDRESSES"
32452	//   "INTERNAL_TRAFFIC_DIRECTOR_FORWARDING_RULES"
32453	//   "IN_PLACE_SNAPSHOTS"
32454	//   "IN_USE_ADDRESSES"
32455	//   "IN_USE_BACKUP_SCHEDULES"
32456	//   "IN_USE_SNAPSHOT_SCHEDULES"
32457	//   "LOCAL_SSD_TOTAL_GB"
32458	//   "M1_CPUS"
32459	//   "M2_CPUS"
32460	//   "MACHINE_IMAGES"
32461	//   "N2A_CPUS"
32462	//   "N2D_CPUS"
32463	//   "N2_CPUS"
32464	//   "NETWORKS"
32465	//   "NETWORK_ENDPOINT_GROUPS"
32466	//   "NETWORK_FIREWALL_POLICIES"
32467	//   "NODE_GROUPS"
32468	//   "NODE_TEMPLATES"
32469	//   "NVIDIA_A100_GPUS"
32470	//   "NVIDIA_K80_GPUS"
32471	//   "NVIDIA_P100_GPUS"
32472	//   "NVIDIA_P100_VWS_GPUS"
32473	//   "NVIDIA_P4_GPUS"
32474	//   "NVIDIA_P4_VWS_GPUS"
32475	//   "NVIDIA_T4_GPUS"
32476	//   "NVIDIA_T4_VWS_GPUS"
32477	//   "NVIDIA_V100_GPUS"
32478	//   "PACKET_MIRRORINGS"
32479	//   "PD_EXTREME_TOTAL_PROVISIONED_IOPS"
32480	//   "PREEMPTIBLE_CPUS"
32481	//   "PREEMPTIBLE_LOCAL_SSD_GB"
32482	//   "PREEMPTIBLE_NVIDIA_A100_GPUS"
32483	//   "PREEMPTIBLE_NVIDIA_K80_GPUS"
32484	//   "PREEMPTIBLE_NVIDIA_P100_GPUS"
32485	//   "PREEMPTIBLE_NVIDIA_P100_VWS_GPUS"
32486	//   "PREEMPTIBLE_NVIDIA_P4_GPUS"
32487	//   "PREEMPTIBLE_NVIDIA_P4_VWS_GPUS"
32488	//   "PREEMPTIBLE_NVIDIA_T4_GPUS"
32489	//   "PREEMPTIBLE_NVIDIA_T4_VWS_GPUS"
32490	//   "PREEMPTIBLE_NVIDIA_V100_GPUS"
32491	//   "PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK"
32492	//   "PSC_INTERNAL_LB_FORWARDING_RULES"
32493	//   "PUBLIC_ADVERTISED_PREFIXES"
32494	//   "PUBLIC_DELEGATED_PREFIXES"
32495	//   "REGIONAL_AUTOSCALERS"
32496	//   "REGIONAL_INSTANCE_GROUP_MANAGERS"
32497	//   "RESERVATIONS"
32498	//   "RESOURCE_POLICIES"
32499	//   "ROUTERS"
32500	//   "ROUTES"
32501	//   "SECURITY_POLICIES"
32502	//   "SECURITY_POLICIES_PER_REGION"
32503	//   "SECURITY_POLICY_CEVAL_RULES"
32504	//   "SECURITY_POLICY_RULES"
32505	//   "SECURITY_POLICY_RULES_PER_REGION"
32506	//   "SERVICE_ATTACHMENTS"
32507	//   "SNAPSHOTS" - The total number of snapshots allowed for a single
32508	// project.
32509	//   "SSD_TOTAL_GB"
32510	//   "SSL_CERTIFICATES"
32511	//   "STATIC_ADDRESSES"
32512	//   "STATIC_BYOIP_ADDRESSES"
32513	//   "SUBNETWORKS"
32514	//   "T2D_CPUS"
32515	//   "TARGET_HTTPS_PROXIES"
32516	//   "TARGET_HTTP_PROXIES"
32517	//   "TARGET_INSTANCES"
32518	//   "TARGET_POOLS"
32519	//   "TARGET_SSL_PROXIES"
32520	//   "TARGET_TCP_PROXIES"
32521	//   "TARGET_VPN_GATEWAYS"
32522	//   "URL_MAPS"
32523	//   "VPN_GATEWAYS"
32524	//   "VPN_TUNNELS"
32525	//   "XPN_SERVICE_PROJECTS"
32526	Metric string `json:"metric,omitempty"`
32527
32528	// Owner: [Output Only] Owning resource. This is the resource on which
32529	// this quota is applied.
32530	Owner string `json:"owner,omitempty"`
32531
32532	// Usage: [Output Only] Current usage of this metric.
32533	Usage float64 `json:"usage,omitempty"`
32534
32535	// ForceSendFields is a list of field names (e.g. "Limit") to
32536	// unconditionally include in API requests. By default, fields with
32537	// empty or default values are omitted from API requests. However, any
32538	// non-pointer, non-interface field appearing in ForceSendFields will be
32539	// sent to the server regardless of whether the field is empty or not.
32540	// This may be used to include empty fields in Patch requests.
32541	ForceSendFields []string `json:"-"`
32542
32543	// NullFields is a list of field names (e.g. "Limit") to include in API
32544	// requests with the JSON null value. By default, fields with empty
32545	// values are omitted from API requests. However, any field with an
32546	// empty value appearing in NullFields will be sent to the server as
32547	// null. It is an error if a field in this list has a non-empty value.
32548	// This may be used to include null fields in Patch requests.
32549	NullFields []string `json:"-"`
32550}
32551
32552func (s *Quota) MarshalJSON() ([]byte, error) {
32553	type NoMethod Quota
32554	raw := NoMethod(*s)
32555	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32556}
32557
32558func (s *Quota) UnmarshalJSON(data []byte) error {
32559	type NoMethod Quota
32560	var s1 struct {
32561		Limit gensupport.JSONFloat64 `json:"limit"`
32562		Usage gensupport.JSONFloat64 `json:"usage"`
32563		*NoMethod
32564	}
32565	s1.NoMethod = (*NoMethod)(s)
32566	if err := json.Unmarshal(data, &s1); err != nil {
32567		return err
32568	}
32569	s.Limit = float64(s1.Limit)
32570	s.Usage = float64(s1.Usage)
32571	return nil
32572}
32573
32574// Reference: Represents a reference to a resource.
32575type Reference struct {
32576	// Kind: [Output Only] Type of the resource. Always compute#reference
32577	// for references.
32578	Kind string `json:"kind,omitempty"`
32579
32580	// ReferenceType: A description of the reference type with no implied
32581	// semantics. Possible values include: 1. MEMBER_OF
32582	ReferenceType string `json:"referenceType,omitempty"`
32583
32584	// Referrer: URL of the resource which refers to the target.
32585	Referrer string `json:"referrer,omitempty"`
32586
32587	// Target: URL of the resource to which this reference points.
32588	Target string `json:"target,omitempty"`
32589
32590	// ForceSendFields is a list of field names (e.g. "Kind") to
32591	// unconditionally include in API requests. By default, fields with
32592	// empty or default values are omitted from API requests. However, any
32593	// non-pointer, non-interface field appearing in ForceSendFields will be
32594	// sent to the server regardless of whether the field is empty or not.
32595	// This may be used to include empty fields in Patch requests.
32596	ForceSendFields []string `json:"-"`
32597
32598	// NullFields is a list of field names (e.g. "Kind") to include in API
32599	// requests with the JSON null value. By default, fields with empty
32600	// values are omitted from API requests. However, any field with an
32601	// empty value appearing in NullFields will be sent to the server as
32602	// null. It is an error if a field in this list has a non-empty value.
32603	// This may be used to include null fields in Patch requests.
32604	NullFields []string `json:"-"`
32605}
32606
32607func (s *Reference) MarshalJSON() ([]byte, error) {
32608	type NoMethod Reference
32609	raw := NoMethod(*s)
32610	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32611}
32612
32613// Region: Represents a Region resource. A region is a geographical area
32614// where a resource is located. For more information, read Regions and
32615// Zones.
32616type Region struct {
32617	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
32618	// format.
32619	CreationTimestamp string `json:"creationTimestamp,omitempty"`
32620
32621	// Deprecated -- [Output Only] The deprecation status associated with
32622	// this region.
32623	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
32624
32625	// Description: [Output Only] Textual description of the resource.
32626	Description string `json:"description,omitempty"`
32627
32628	// Id: [Output Only] The unique identifier for the resource. This
32629	// identifier is defined by the server.
32630	Id uint64 `json:"id,omitempty,string"`
32631
32632	// Kind: [Output Only] Type of the resource. Always compute#region for
32633	// regions.
32634	Kind string `json:"kind,omitempty"`
32635
32636	// Name: [Output Only] Name of the resource.
32637	Name string `json:"name,omitempty"`
32638
32639	// Quotas: [Output Only] Quotas assigned to this region.
32640	Quotas []*Quota `json:"quotas,omitempty"`
32641
32642	// SelfLink: [Output Only] Server-defined URL for the resource.
32643	SelfLink string `json:"selfLink,omitempty"`
32644
32645	// Status: [Output Only] Status of the region, either UP or DOWN.
32646	//
32647	// Possible values:
32648	//   "DOWN"
32649	//   "UP"
32650	Status string `json:"status,omitempty"`
32651
32652	// SupportsPzs: [Output Only] Reserved for future use.
32653	SupportsPzs bool `json:"supportsPzs,omitempty"`
32654
32655	// Zones: [Output Only] A list of zones available in this region, in the
32656	// form of resource URLs.
32657	Zones []string `json:"zones,omitempty"`
32658
32659	// ServerResponse contains the HTTP response code and headers from the
32660	// server.
32661	googleapi.ServerResponse `json:"-"`
32662
32663	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
32664	// to unconditionally include in API requests. By default, fields with
32665	// empty or default values are omitted from API requests. However, any
32666	// non-pointer, non-interface field appearing in ForceSendFields will be
32667	// sent to the server regardless of whether the field is empty or not.
32668	// This may be used to include empty fields in Patch requests.
32669	ForceSendFields []string `json:"-"`
32670
32671	// NullFields is a list of field names (e.g. "CreationTimestamp") to
32672	// include in API requests with the JSON null value. By default, fields
32673	// with empty values are omitted from API requests. However, any field
32674	// with an empty value appearing in NullFields will be sent to the
32675	// server as null. It is an error if a field in this list has a
32676	// non-empty value. This may be used to include null fields in Patch
32677	// requests.
32678	NullFields []string `json:"-"`
32679}
32680
32681func (s *Region) MarshalJSON() ([]byte, error) {
32682	type NoMethod Region
32683	raw := NoMethod(*s)
32684	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32685}
32686
32687// RegionAutoscalerList: Contains a list of autoscalers.
32688type RegionAutoscalerList struct {
32689	// Id: [Output Only] Unique identifier for the resource; defined by the
32690	// server.
32691	Id string `json:"id,omitempty"`
32692
32693	// Items: A list of Autoscaler resources.
32694	Items []*Autoscaler `json:"items,omitempty"`
32695
32696	// Kind: Type of resource.
32697	Kind string `json:"kind,omitempty"`
32698
32699	// NextPageToken: [Output Only] This token allows you to get the next
32700	// page of results for list requests. If the number of results is larger
32701	// than maxResults, use the nextPageToken as a value for the query
32702	// parameter pageToken in the next list request. Subsequent list
32703	// requests will have their own nextPageToken to continue paging through
32704	// the results.
32705	NextPageToken string `json:"nextPageToken,omitempty"`
32706
32707	// SelfLink: [Output Only] Server-defined URL for this resource.
32708	SelfLink string `json:"selfLink,omitempty"`
32709
32710	// Warning: [Output Only] Informational warning message.
32711	Warning *RegionAutoscalerListWarning `json:"warning,omitempty"`
32712
32713	// ServerResponse contains the HTTP response code and headers from the
32714	// server.
32715	googleapi.ServerResponse `json:"-"`
32716
32717	// ForceSendFields is a list of field names (e.g. "Id") to
32718	// unconditionally include in API requests. By default, fields with
32719	// empty or default values are omitted from API requests. However, any
32720	// non-pointer, non-interface field appearing in ForceSendFields will be
32721	// sent to the server regardless of whether the field is empty or not.
32722	// This may be used to include empty fields in Patch requests.
32723	ForceSendFields []string `json:"-"`
32724
32725	// NullFields is a list of field names (e.g. "Id") to include in API
32726	// requests with the JSON null value. By default, fields with empty
32727	// values are omitted from API requests. However, any field with an
32728	// empty value appearing in NullFields will be sent to the server as
32729	// null. It is an error if a field in this list has a non-empty value.
32730	// This may be used to include null fields in Patch requests.
32731	NullFields []string `json:"-"`
32732}
32733
32734func (s *RegionAutoscalerList) MarshalJSON() ([]byte, error) {
32735	type NoMethod RegionAutoscalerList
32736	raw := NoMethod(*s)
32737	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32738}
32739
32740// RegionAutoscalerListWarning: [Output Only] Informational warning
32741// message.
32742type RegionAutoscalerListWarning struct {
32743	// Code: [Output Only] A warning code, if applicable. For example,
32744	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32745	// the response.
32746	//
32747	// Possible values:
32748	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
32749	// changes made by a failed operation.
32750	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
32751	// created.
32752	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
32753	// resources has a type marked as deprecated
32754	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
32755	// that is larger than image size.
32756	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
32757	// resources has a type marked as experimental
32758	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
32759	// call
32760	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
32761	// overridden. Deprecated unused field.
32762	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
32763	// injected kernel, which is deprecated.
32764	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
32765	// exceedingly large number of resources
32766	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
32767	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
32768	// not assigned to an instance on the network.
32769	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
32770	// ip forward.
32771	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
32772	// refers to an instance that does not exist.
32773	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
32774	// URL refers to an instance that is not on the same network as the
32775	// route.
32776	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
32777	// have a status of RUNNING.
32778	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
32779	// continue the process despite the mentioned error.
32780	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
32781	// page.
32782	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
32783	// missing due to errors
32784	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
32785	// that requires a TOS they have not accepted.
32786	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
32787	// resource is in use.
32788	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
32789	// auto-delete could not be deleted because they were in use.
32790	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
32791	// ignored.
32792	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
32793	// instance group manager is valid as such, but its application does not
32794	// make a lot of sense, because it allows only single instance in
32795	// instance group.
32796	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
32797	// are present
32798	//   "UNREACHABLE" - A given scope cannot be reached.
32799	Code string `json:"code,omitempty"`
32800
32801	// Data: [Output Only] Metadata about this warning in key: value format.
32802	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
32803	// }
32804	Data []*RegionAutoscalerListWarningData `json:"data,omitempty"`
32805
32806	// Message: [Output Only] A human-readable description of the warning
32807	// code.
32808	Message string `json:"message,omitempty"`
32809
32810	// ForceSendFields is a list of field names (e.g. "Code") to
32811	// unconditionally include in API requests. By default, fields with
32812	// empty or default values are omitted from API requests. However, any
32813	// non-pointer, non-interface field appearing in ForceSendFields will be
32814	// sent to the server regardless of whether the field is empty or not.
32815	// This may be used to include empty fields in Patch requests.
32816	ForceSendFields []string `json:"-"`
32817
32818	// NullFields is a list of field names (e.g. "Code") to include in API
32819	// requests with the JSON null value. By default, fields with empty
32820	// values are omitted from API requests. However, any field with an
32821	// empty value appearing in NullFields will be sent to the server as
32822	// null. It is an error if a field in this list has a non-empty value.
32823	// This may be used to include null fields in Patch requests.
32824	NullFields []string `json:"-"`
32825}
32826
32827func (s *RegionAutoscalerListWarning) MarshalJSON() ([]byte, error) {
32828	type NoMethod RegionAutoscalerListWarning
32829	raw := NoMethod(*s)
32830	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32831}
32832
32833type RegionAutoscalerListWarningData struct {
32834	// Key: [Output Only] A key that provides more detail on the warning
32835	// being returned. For example, for warnings where there are no results
32836	// in a list request for a particular zone, this key might be scope and
32837	// the key value might be the zone name. Other examples might be a key
32838	// indicating a deprecated resource and a suggested replacement, or a
32839	// warning about invalid network settings (for example, if an instance
32840	// attempts to perform IP forwarding but is not enabled for IP
32841	// forwarding).
32842	Key string `json:"key,omitempty"`
32843
32844	// Value: [Output Only] A warning data value corresponding to the key.
32845	Value string `json:"value,omitempty"`
32846
32847	// ForceSendFields is a list of field names (e.g. "Key") to
32848	// unconditionally include in API requests. By default, fields with
32849	// empty or default values are omitted from API requests. However, any
32850	// non-pointer, non-interface field appearing in ForceSendFields will be
32851	// sent to the server regardless of whether the field is empty or not.
32852	// This may be used to include empty fields in Patch requests.
32853	ForceSendFields []string `json:"-"`
32854
32855	// NullFields is a list of field names (e.g. "Key") to include in API
32856	// requests with the JSON null value. By default, fields with empty
32857	// values are omitted from API requests. However, any field with an
32858	// empty value appearing in NullFields will be sent to the server as
32859	// null. It is an error if a field in this list has a non-empty value.
32860	// This may be used to include null fields in Patch requests.
32861	NullFields []string `json:"-"`
32862}
32863
32864func (s *RegionAutoscalerListWarningData) MarshalJSON() ([]byte, error) {
32865	type NoMethod RegionAutoscalerListWarningData
32866	raw := NoMethod(*s)
32867	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32868}
32869
32870type RegionDiskTypeList struct {
32871	// Id: [Output Only] Unique identifier for the resource; defined by the
32872	// server.
32873	Id string `json:"id,omitempty"`
32874
32875	// Items: A list of DiskType resources.
32876	Items []*DiskType `json:"items,omitempty"`
32877
32878	// Kind: [Output Only] Type of resource. Always
32879	// compute#regionDiskTypeList for region disk types.
32880	Kind string `json:"kind,omitempty"`
32881
32882	// NextPageToken: [Output Only] This token allows you to get the next
32883	// page of results for list requests. If the number of results is larger
32884	// than maxResults, use the nextPageToken as a value for the query
32885	// parameter pageToken in the next list request. Subsequent list
32886	// requests will have their own nextPageToken to continue paging through
32887	// the results.
32888	NextPageToken string `json:"nextPageToken,omitempty"`
32889
32890	// SelfLink: [Output Only] Server-defined URL for this resource.
32891	SelfLink string `json:"selfLink,omitempty"`
32892
32893	// Warning: [Output Only] Informational warning message.
32894	Warning *RegionDiskTypeListWarning `json:"warning,omitempty"`
32895
32896	// ServerResponse contains the HTTP response code and headers from the
32897	// server.
32898	googleapi.ServerResponse `json:"-"`
32899
32900	// ForceSendFields is a list of field names (e.g. "Id") to
32901	// unconditionally include in API requests. By default, fields with
32902	// empty or default values are omitted from API requests. However, any
32903	// non-pointer, non-interface field appearing in ForceSendFields will be
32904	// sent to the server regardless of whether the field is empty or not.
32905	// This may be used to include empty fields in Patch requests.
32906	ForceSendFields []string `json:"-"`
32907
32908	// NullFields is a list of field names (e.g. "Id") to include in API
32909	// requests with the JSON null value. By default, fields with empty
32910	// values are omitted from API requests. However, any field with an
32911	// empty value appearing in NullFields will be sent to the server as
32912	// null. It is an error if a field in this list has a non-empty value.
32913	// This may be used to include null fields in Patch requests.
32914	NullFields []string `json:"-"`
32915}
32916
32917func (s *RegionDiskTypeList) MarshalJSON() ([]byte, error) {
32918	type NoMethod RegionDiskTypeList
32919	raw := NoMethod(*s)
32920	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32921}
32922
32923// RegionDiskTypeListWarning: [Output Only] Informational warning
32924// message.
32925type RegionDiskTypeListWarning struct {
32926	// Code: [Output Only] A warning code, if applicable. For example,
32927	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32928	// the response.
32929	//
32930	// Possible values:
32931	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
32932	// changes made by a failed operation.
32933	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
32934	// created.
32935	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
32936	// resources has a type marked as deprecated
32937	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
32938	// that is larger than image size.
32939	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
32940	// resources has a type marked as experimental
32941	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
32942	// call
32943	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
32944	// overridden. Deprecated unused field.
32945	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
32946	// injected kernel, which is deprecated.
32947	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
32948	// exceedingly large number of resources
32949	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
32950	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
32951	// not assigned to an instance on the network.
32952	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
32953	// ip forward.
32954	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
32955	// refers to an instance that does not exist.
32956	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
32957	// URL refers to an instance that is not on the same network as the
32958	// route.
32959	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
32960	// have a status of RUNNING.
32961	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
32962	// continue the process despite the mentioned error.
32963	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
32964	// page.
32965	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
32966	// missing due to errors
32967	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
32968	// that requires a TOS they have not accepted.
32969	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
32970	// resource is in use.
32971	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
32972	// auto-delete could not be deleted because they were in use.
32973	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
32974	// ignored.
32975	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
32976	// instance group manager is valid as such, but its application does not
32977	// make a lot of sense, because it allows only single instance in
32978	// instance group.
32979	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
32980	// are present
32981	//   "UNREACHABLE" - A given scope cannot be reached.
32982	Code string `json:"code,omitempty"`
32983
32984	// Data: [Output Only] Metadata about this warning in key: value format.
32985	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
32986	// }
32987	Data []*RegionDiskTypeListWarningData `json:"data,omitempty"`
32988
32989	// Message: [Output Only] A human-readable description of the warning
32990	// code.
32991	Message string `json:"message,omitempty"`
32992
32993	// ForceSendFields is a list of field names (e.g. "Code") to
32994	// unconditionally include in API requests. By default, fields with
32995	// empty or default values are omitted from API requests. However, any
32996	// non-pointer, non-interface field appearing in ForceSendFields will be
32997	// sent to the server regardless of whether the field is empty or not.
32998	// This may be used to include empty fields in Patch requests.
32999	ForceSendFields []string `json:"-"`
33000
33001	// NullFields is a list of field names (e.g. "Code") to include in API
33002	// requests with the JSON null value. By default, fields with empty
33003	// values are omitted from API requests. However, any field with an
33004	// empty value appearing in NullFields will be sent to the server as
33005	// null. It is an error if a field in this list has a non-empty value.
33006	// This may be used to include null fields in Patch requests.
33007	NullFields []string `json:"-"`
33008}
33009
33010func (s *RegionDiskTypeListWarning) MarshalJSON() ([]byte, error) {
33011	type NoMethod RegionDiskTypeListWarning
33012	raw := NoMethod(*s)
33013	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33014}
33015
33016type RegionDiskTypeListWarningData struct {
33017	// Key: [Output Only] A key that provides more detail on the warning
33018	// being returned. For example, for warnings where there are no results
33019	// in a list request for a particular zone, this key might be scope and
33020	// the key value might be the zone name. Other examples might be a key
33021	// indicating a deprecated resource and a suggested replacement, or a
33022	// warning about invalid network settings (for example, if an instance
33023	// attempts to perform IP forwarding but is not enabled for IP
33024	// forwarding).
33025	Key string `json:"key,omitempty"`
33026
33027	// Value: [Output Only] A warning data value corresponding to the key.
33028	Value string `json:"value,omitempty"`
33029
33030	// ForceSendFields is a list of field names (e.g. "Key") to
33031	// unconditionally include in API requests. By default, fields with
33032	// empty or default values are omitted from API requests. However, any
33033	// non-pointer, non-interface field appearing in ForceSendFields will be
33034	// sent to the server regardless of whether the field is empty or not.
33035	// This may be used to include empty fields in Patch requests.
33036	ForceSendFields []string `json:"-"`
33037
33038	// NullFields is a list of field names (e.g. "Key") to include in API
33039	// requests with the JSON null value. By default, fields with empty
33040	// values are omitted from API requests. However, any field with an
33041	// empty value appearing in NullFields will be sent to the server as
33042	// null. It is an error if a field in this list has a non-empty value.
33043	// This may be used to include null fields in Patch requests.
33044	NullFields []string `json:"-"`
33045}
33046
33047func (s *RegionDiskTypeListWarningData) MarshalJSON() ([]byte, error) {
33048	type NoMethod RegionDiskTypeListWarningData
33049	raw := NoMethod(*s)
33050	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33051}
33052
33053type RegionDisksAddResourcePoliciesRequest struct {
33054	// ResourcePolicies: Resource policies to be added to this disk.
33055	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
33056
33057	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
33058	// unconditionally include in API requests. By default, fields with
33059	// empty or default values are omitted from API requests. However, any
33060	// non-pointer, non-interface field appearing in ForceSendFields will be
33061	// sent to the server regardless of whether the field is empty or not.
33062	// This may be used to include empty fields in Patch requests.
33063	ForceSendFields []string `json:"-"`
33064
33065	// NullFields is a list of field names (e.g. "ResourcePolicies") to
33066	// include in API requests with the JSON null value. By default, fields
33067	// with empty values are omitted from API requests. However, any field
33068	// with an empty value appearing in NullFields will be sent to the
33069	// server as null. It is an error if a field in this list has a
33070	// non-empty value. This may be used to include null fields in Patch
33071	// requests.
33072	NullFields []string `json:"-"`
33073}
33074
33075func (s *RegionDisksAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
33076	type NoMethod RegionDisksAddResourcePoliciesRequest
33077	raw := NoMethod(*s)
33078	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33079}
33080
33081type RegionDisksRemoveResourcePoliciesRequest struct {
33082	// ResourcePolicies: Resource policies to be removed from this disk.
33083	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
33084
33085	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
33086	// unconditionally include in API requests. By default, fields with
33087	// empty or default values are omitted from API requests. However, any
33088	// non-pointer, non-interface field appearing in ForceSendFields will be
33089	// sent to the server regardless of whether the field is empty or not.
33090	// This may be used to include empty fields in Patch requests.
33091	ForceSendFields []string `json:"-"`
33092
33093	// NullFields is a list of field names (e.g. "ResourcePolicies") to
33094	// include in API requests with the JSON null value. By default, fields
33095	// with empty values are omitted from API requests. However, any field
33096	// with an empty value appearing in NullFields will be sent to the
33097	// server as null. It is an error if a field in this list has a
33098	// non-empty value. This may be used to include null fields in Patch
33099	// requests.
33100	NullFields []string `json:"-"`
33101}
33102
33103func (s *RegionDisksRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
33104	type NoMethod RegionDisksRemoveResourcePoliciesRequest
33105	raw := NoMethod(*s)
33106	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33107}
33108
33109type RegionDisksResizeRequest struct {
33110	// SizeGb: The new size of the regional persistent disk, which is
33111	// specified in GB.
33112	SizeGb int64 `json:"sizeGb,omitempty,string"`
33113
33114	// ForceSendFields is a list of field names (e.g. "SizeGb") to
33115	// unconditionally include in API requests. By default, fields with
33116	// empty or default values are omitted from API requests. However, any
33117	// non-pointer, non-interface field appearing in ForceSendFields will be
33118	// sent to the server regardless of whether the field is empty or not.
33119	// This may be used to include empty fields in Patch requests.
33120	ForceSendFields []string `json:"-"`
33121
33122	// NullFields is a list of field names (e.g. "SizeGb") to include in API
33123	// requests with the JSON null value. By default, fields with empty
33124	// values are omitted from API requests. However, any field with an
33125	// empty value appearing in NullFields will be sent to the server as
33126	// null. It is an error if a field in this list has a non-empty value.
33127	// This may be used to include null fields in Patch requests.
33128	NullFields []string `json:"-"`
33129}
33130
33131func (s *RegionDisksResizeRequest) MarshalJSON() ([]byte, error) {
33132	type NoMethod RegionDisksResizeRequest
33133	raw := NoMethod(*s)
33134	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33135}
33136
33137// RegionInstanceGroupList: Contains a list of InstanceGroup resources.
33138type RegionInstanceGroupList struct {
33139	// Id: [Output Only] Unique identifier for the resource; defined by the
33140	// server.
33141	Id string `json:"id,omitempty"`
33142
33143	// Items: A list of InstanceGroup resources.
33144	Items []*InstanceGroup `json:"items,omitempty"`
33145
33146	// Kind: The resource type.
33147	Kind string `json:"kind,omitempty"`
33148
33149	// NextPageToken: [Output Only] This token allows you to get the next
33150	// page of results for list requests. If the number of results is larger
33151	// than maxResults, use the nextPageToken as a value for the query
33152	// parameter pageToken in the next list request. Subsequent list
33153	// requests will have their own nextPageToken to continue paging through
33154	// the results.
33155	NextPageToken string `json:"nextPageToken,omitempty"`
33156
33157	// SelfLink: [Output Only] Server-defined URL for this resource.
33158	SelfLink string `json:"selfLink,omitempty"`
33159
33160	// Warning: [Output Only] Informational warning message.
33161	Warning *RegionInstanceGroupListWarning `json:"warning,omitempty"`
33162
33163	// ServerResponse contains the HTTP response code and headers from the
33164	// server.
33165	googleapi.ServerResponse `json:"-"`
33166
33167	// ForceSendFields is a list of field names (e.g. "Id") to
33168	// unconditionally include in API requests. By default, fields with
33169	// empty or default values are omitted from API requests. However, any
33170	// non-pointer, non-interface field appearing in ForceSendFields will be
33171	// sent to the server regardless of whether the field is empty or not.
33172	// This may be used to include empty fields in Patch requests.
33173	ForceSendFields []string `json:"-"`
33174
33175	// NullFields is a list of field names (e.g. "Id") to include in API
33176	// requests with the JSON null value. By default, fields with empty
33177	// values are omitted from API requests. However, any field with an
33178	// empty value appearing in NullFields will be sent to the server as
33179	// null. It is an error if a field in this list has a non-empty value.
33180	// This may be used to include null fields in Patch requests.
33181	NullFields []string `json:"-"`
33182}
33183
33184func (s *RegionInstanceGroupList) MarshalJSON() ([]byte, error) {
33185	type NoMethod RegionInstanceGroupList
33186	raw := NoMethod(*s)
33187	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33188}
33189
33190// RegionInstanceGroupListWarning: [Output Only] Informational warning
33191// message.
33192type RegionInstanceGroupListWarning struct {
33193	// Code: [Output Only] A warning code, if applicable. For example,
33194	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33195	// the response.
33196	//
33197	// Possible values:
33198	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
33199	// changes made by a failed operation.
33200	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
33201	// created.
33202	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
33203	// resources has a type marked as deprecated
33204	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
33205	// that is larger than image size.
33206	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
33207	// resources has a type marked as experimental
33208	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
33209	// call
33210	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
33211	// overridden. Deprecated unused field.
33212	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
33213	// injected kernel, which is deprecated.
33214	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
33215	// exceedingly large number of resources
33216	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
33217	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
33218	// not assigned to an instance on the network.
33219	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
33220	// ip forward.
33221	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
33222	// refers to an instance that does not exist.
33223	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
33224	// URL refers to an instance that is not on the same network as the
33225	// route.
33226	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
33227	// have a status of RUNNING.
33228	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
33229	// continue the process despite the mentioned error.
33230	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
33231	// page.
33232	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
33233	// missing due to errors
33234	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
33235	// that requires a TOS they have not accepted.
33236	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
33237	// resource is in use.
33238	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
33239	// auto-delete could not be deleted because they were in use.
33240	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
33241	// ignored.
33242	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
33243	// instance group manager is valid as such, but its application does not
33244	// make a lot of sense, because it allows only single instance in
33245	// instance group.
33246	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
33247	// are present
33248	//   "UNREACHABLE" - A given scope cannot be reached.
33249	Code string `json:"code,omitempty"`
33250
33251	// Data: [Output Only] Metadata about this warning in key: value format.
33252	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
33253	// }
33254	Data []*RegionInstanceGroupListWarningData `json:"data,omitempty"`
33255
33256	// Message: [Output Only] A human-readable description of the warning
33257	// code.
33258	Message string `json:"message,omitempty"`
33259
33260	// ForceSendFields is a list of field names (e.g. "Code") to
33261	// unconditionally include in API requests. By default, fields with
33262	// empty or default values are omitted from API requests. However, any
33263	// non-pointer, non-interface field appearing in ForceSendFields will be
33264	// sent to the server regardless of whether the field is empty or not.
33265	// This may be used to include empty fields in Patch requests.
33266	ForceSendFields []string `json:"-"`
33267
33268	// NullFields is a list of field names (e.g. "Code") to include in API
33269	// requests with the JSON null value. By default, fields with empty
33270	// values are omitted from API requests. However, any field with an
33271	// empty value appearing in NullFields will be sent to the server as
33272	// null. It is an error if a field in this list has a non-empty value.
33273	// This may be used to include null fields in Patch requests.
33274	NullFields []string `json:"-"`
33275}
33276
33277func (s *RegionInstanceGroupListWarning) MarshalJSON() ([]byte, error) {
33278	type NoMethod RegionInstanceGroupListWarning
33279	raw := NoMethod(*s)
33280	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33281}
33282
33283type RegionInstanceGroupListWarningData struct {
33284	// Key: [Output Only] A key that provides more detail on the warning
33285	// being returned. For example, for warnings where there are no results
33286	// in a list request for a particular zone, this key might be scope and
33287	// the key value might be the zone name. Other examples might be a key
33288	// indicating a deprecated resource and a suggested replacement, or a
33289	// warning about invalid network settings (for example, if an instance
33290	// attempts to perform IP forwarding but is not enabled for IP
33291	// forwarding).
33292	Key string `json:"key,omitempty"`
33293
33294	// Value: [Output Only] A warning data value corresponding to the key.
33295	Value string `json:"value,omitempty"`
33296
33297	// ForceSendFields is a list of field names (e.g. "Key") to
33298	// unconditionally include in API requests. By default, fields with
33299	// empty or default values are omitted from API requests. However, any
33300	// non-pointer, non-interface field appearing in ForceSendFields will be
33301	// sent to the server regardless of whether the field is empty or not.
33302	// This may be used to include empty fields in Patch requests.
33303	ForceSendFields []string `json:"-"`
33304
33305	// NullFields is a list of field names (e.g. "Key") to include in API
33306	// requests with the JSON null value. By default, fields with empty
33307	// values are omitted from API requests. However, any field with an
33308	// empty value appearing in NullFields will be sent to the server as
33309	// null. It is an error if a field in this list has a non-empty value.
33310	// This may be used to include null fields in Patch requests.
33311	NullFields []string `json:"-"`
33312}
33313
33314func (s *RegionInstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
33315	type NoMethod RegionInstanceGroupListWarningData
33316	raw := NoMethod(*s)
33317	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33318}
33319
33320// RegionInstanceGroupManagerDeleteInstanceConfigReq:
33321// RegionInstanceGroupManagers.deletePerInstanceConfigs
33322type RegionInstanceGroupManagerDeleteInstanceConfigReq struct {
33323	// Names: The list of instance names for which we want to delete
33324	// per-instance configs on this managed instance group.
33325	Names []string `json:"names,omitempty"`
33326
33327	// ForceSendFields is a list of field names (e.g. "Names") to
33328	// unconditionally include in API requests. By default, fields with
33329	// empty or default values are omitted from API requests. However, any
33330	// non-pointer, non-interface field appearing in ForceSendFields will be
33331	// sent to the server regardless of whether the field is empty or not.
33332	// This may be used to include empty fields in Patch requests.
33333	ForceSendFields []string `json:"-"`
33334
33335	// NullFields is a list of field names (e.g. "Names") to include in API
33336	// requests with the JSON null value. By default, fields with empty
33337	// values are omitted from API requests. However, any field with an
33338	// empty value appearing in NullFields will be sent to the server as
33339	// null. It is an error if a field in this list has a non-empty value.
33340	// This may be used to include null fields in Patch requests.
33341	NullFields []string `json:"-"`
33342}
33343
33344func (s *RegionInstanceGroupManagerDeleteInstanceConfigReq) MarshalJSON() ([]byte, error) {
33345	type NoMethod RegionInstanceGroupManagerDeleteInstanceConfigReq
33346	raw := NoMethod(*s)
33347	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33348}
33349
33350// RegionInstanceGroupManagerList: Contains a list of managed instance
33351// groups.
33352type RegionInstanceGroupManagerList struct {
33353	// Id: [Output Only] Unique identifier for the resource; defined by the
33354	// server.
33355	Id string `json:"id,omitempty"`
33356
33357	// Items: A list of InstanceGroupManager resources.
33358	Items []*InstanceGroupManager `json:"items,omitempty"`
33359
33360	// Kind: [Output Only] The resource type, which is always
33361	// compute#instanceGroupManagerList for a list of managed instance
33362	// groups that exist in th regional scope.
33363	Kind string `json:"kind,omitempty"`
33364
33365	// NextPageToken: [Output Only] This token allows you to get the next
33366	// page of results for list requests. If the number of results is larger
33367	// than maxResults, use the nextPageToken as a value for the query
33368	// parameter pageToken in the next list request. Subsequent list
33369	// requests will have their own nextPageToken to continue paging through
33370	// the results.
33371	NextPageToken string `json:"nextPageToken,omitempty"`
33372
33373	// SelfLink: [Output Only] Server-defined URL for this resource.
33374	SelfLink string `json:"selfLink,omitempty"`
33375
33376	// Warning: [Output Only] Informational warning message.
33377	Warning *RegionInstanceGroupManagerListWarning `json:"warning,omitempty"`
33378
33379	// ServerResponse contains the HTTP response code and headers from the
33380	// server.
33381	googleapi.ServerResponse `json:"-"`
33382
33383	// ForceSendFields is a list of field names (e.g. "Id") to
33384	// unconditionally include in API requests. By default, fields with
33385	// empty or default values are omitted from API requests. However, any
33386	// non-pointer, non-interface field appearing in ForceSendFields will be
33387	// sent to the server regardless of whether the field is empty or not.
33388	// This may be used to include empty fields in Patch requests.
33389	ForceSendFields []string `json:"-"`
33390
33391	// NullFields is a list of field names (e.g. "Id") to include in API
33392	// requests with the JSON null value. By default, fields with empty
33393	// values are omitted from API requests. However, any field with an
33394	// empty value appearing in NullFields will be sent to the server as
33395	// null. It is an error if a field in this list has a non-empty value.
33396	// This may be used to include null fields in Patch requests.
33397	NullFields []string `json:"-"`
33398}
33399
33400func (s *RegionInstanceGroupManagerList) MarshalJSON() ([]byte, error) {
33401	type NoMethod RegionInstanceGroupManagerList
33402	raw := NoMethod(*s)
33403	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33404}
33405
33406// RegionInstanceGroupManagerListWarning: [Output Only] Informational
33407// warning message.
33408type RegionInstanceGroupManagerListWarning struct {
33409	// Code: [Output Only] A warning code, if applicable. For example,
33410	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33411	// the response.
33412	//
33413	// Possible values:
33414	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
33415	// changes made by a failed operation.
33416	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
33417	// created.
33418	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
33419	// resources has a type marked as deprecated
33420	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
33421	// that is larger than image size.
33422	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
33423	// resources has a type marked as experimental
33424	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
33425	// call
33426	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
33427	// overridden. Deprecated unused field.
33428	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
33429	// injected kernel, which is deprecated.
33430	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
33431	// exceedingly large number of resources
33432	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
33433	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
33434	// not assigned to an instance on the network.
33435	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
33436	// ip forward.
33437	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
33438	// refers to an instance that does not exist.
33439	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
33440	// URL refers to an instance that is not on the same network as the
33441	// route.
33442	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
33443	// have a status of RUNNING.
33444	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
33445	// continue the process despite the mentioned error.
33446	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
33447	// page.
33448	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
33449	// missing due to errors
33450	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
33451	// that requires a TOS they have not accepted.
33452	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
33453	// resource is in use.
33454	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
33455	// auto-delete could not be deleted because they were in use.
33456	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
33457	// ignored.
33458	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
33459	// instance group manager is valid as such, but its application does not
33460	// make a lot of sense, because it allows only single instance in
33461	// instance group.
33462	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
33463	// are present
33464	//   "UNREACHABLE" - A given scope cannot be reached.
33465	Code string `json:"code,omitempty"`
33466
33467	// Data: [Output Only] Metadata about this warning in key: value format.
33468	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
33469	// }
33470	Data []*RegionInstanceGroupManagerListWarningData `json:"data,omitempty"`
33471
33472	// Message: [Output Only] A human-readable description of the warning
33473	// code.
33474	Message string `json:"message,omitempty"`
33475
33476	// ForceSendFields is a list of field names (e.g. "Code") to
33477	// unconditionally include in API requests. By default, fields with
33478	// empty or default values are omitted from API requests. However, any
33479	// non-pointer, non-interface field appearing in ForceSendFields will be
33480	// sent to the server regardless of whether the field is empty or not.
33481	// This may be used to include empty fields in Patch requests.
33482	ForceSendFields []string `json:"-"`
33483
33484	// NullFields is a list of field names (e.g. "Code") to include in API
33485	// requests with the JSON null value. By default, fields with empty
33486	// values are omitted from API requests. However, any field with an
33487	// empty value appearing in NullFields will be sent to the server as
33488	// null. It is an error if a field in this list has a non-empty value.
33489	// This may be used to include null fields in Patch requests.
33490	NullFields []string `json:"-"`
33491}
33492
33493func (s *RegionInstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
33494	type NoMethod RegionInstanceGroupManagerListWarning
33495	raw := NoMethod(*s)
33496	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33497}
33498
33499type RegionInstanceGroupManagerListWarningData struct {
33500	// Key: [Output Only] A key that provides more detail on the warning
33501	// being returned. For example, for warnings where there are no results
33502	// in a list request for a particular zone, this key might be scope and
33503	// the key value might be the zone name. Other examples might be a key
33504	// indicating a deprecated resource and a suggested replacement, or a
33505	// warning about invalid network settings (for example, if an instance
33506	// attempts to perform IP forwarding but is not enabled for IP
33507	// forwarding).
33508	Key string `json:"key,omitempty"`
33509
33510	// Value: [Output Only] A warning data value corresponding to the key.
33511	Value string `json:"value,omitempty"`
33512
33513	// ForceSendFields is a list of field names (e.g. "Key") to
33514	// unconditionally include in API requests. By default, fields with
33515	// empty or default values are omitted from API requests. However, any
33516	// non-pointer, non-interface field appearing in ForceSendFields will be
33517	// sent to the server regardless of whether the field is empty or not.
33518	// This may be used to include empty fields in Patch requests.
33519	ForceSendFields []string `json:"-"`
33520
33521	// NullFields is a list of field names (e.g. "Key") to include in API
33522	// requests with the JSON null value. By default, fields with empty
33523	// values are omitted from API requests. However, any field with an
33524	// empty value appearing in NullFields will be sent to the server as
33525	// null. It is an error if a field in this list has a non-empty value.
33526	// This may be used to include null fields in Patch requests.
33527	NullFields []string `json:"-"`
33528}
33529
33530func (s *RegionInstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
33531	type NoMethod RegionInstanceGroupManagerListWarningData
33532	raw := NoMethod(*s)
33533	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33534}
33535
33536// RegionInstanceGroupManagerPatchInstanceConfigReq:
33537// RegionInstanceGroupManagers.patchPerInstanceConfigs
33538type RegionInstanceGroupManagerPatchInstanceConfigReq struct {
33539	// PerInstanceConfigs: The list of per-instance configs to insert or
33540	// patch on this managed instance group.
33541	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
33542
33543	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
33544	// to unconditionally include in API requests. By default, fields with
33545	// empty or default values are omitted from API requests. However, any
33546	// non-pointer, non-interface field appearing in ForceSendFields will be
33547	// sent to the server regardless of whether the field is empty or not.
33548	// This may be used to include empty fields in Patch requests.
33549	ForceSendFields []string `json:"-"`
33550
33551	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
33552	// include in API requests with the JSON null value. By default, fields
33553	// with empty values are omitted from API requests. However, any field
33554	// with an empty value appearing in NullFields will be sent to the
33555	// server as null. It is an error if a field in this list has a
33556	// non-empty value. This may be used to include null fields in Patch
33557	// requests.
33558	NullFields []string `json:"-"`
33559}
33560
33561func (s *RegionInstanceGroupManagerPatchInstanceConfigReq) MarshalJSON() ([]byte, error) {
33562	type NoMethod RegionInstanceGroupManagerPatchInstanceConfigReq
33563	raw := NoMethod(*s)
33564	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33565}
33566
33567// RegionInstanceGroupManagerUpdateInstanceConfigReq:
33568// RegionInstanceGroupManagers.updatePerInstanceConfigs
33569type RegionInstanceGroupManagerUpdateInstanceConfigReq struct {
33570	// PerInstanceConfigs: The list of per-instance configs to insert or
33571	// patch on this managed instance group.
33572	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
33573
33574	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
33575	// to unconditionally include in API requests. By default, fields with
33576	// empty or default values are omitted from API requests. However, any
33577	// non-pointer, non-interface field appearing in ForceSendFields will be
33578	// sent to the server regardless of whether the field is empty or not.
33579	// This may be used to include empty fields in Patch requests.
33580	ForceSendFields []string `json:"-"`
33581
33582	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
33583	// include in API requests with the JSON null value. By default, fields
33584	// with empty values are omitted from API requests. However, any field
33585	// with an empty value appearing in NullFields will be sent to the
33586	// server as null. It is an error if a field in this list has a
33587	// non-empty value. This may be used to include null fields in Patch
33588	// requests.
33589	NullFields []string `json:"-"`
33590}
33591
33592func (s *RegionInstanceGroupManagerUpdateInstanceConfigReq) MarshalJSON() ([]byte, error) {
33593	type NoMethod RegionInstanceGroupManagerUpdateInstanceConfigReq
33594	raw := NoMethod(*s)
33595	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33596}
33597
33598type RegionInstanceGroupManagersAbandonInstancesRequest struct {
33599	// Instances: The URLs of one or more instances to abandon. This can be
33600	// a full URL or a partial URL, such as
33601	// zones/[ZONE]/instances/[INSTANCE_NAME].
33602	Instances []string `json:"instances,omitempty"`
33603
33604	// ForceSendFields is a list of field names (e.g. "Instances") to
33605	// unconditionally include in API requests. By default, fields with
33606	// empty or default values are omitted from API requests. However, any
33607	// non-pointer, non-interface field appearing in ForceSendFields will be
33608	// sent to the server regardless of whether the field is empty or not.
33609	// This may be used to include empty fields in Patch requests.
33610	ForceSendFields []string `json:"-"`
33611
33612	// NullFields is a list of field names (e.g. "Instances") to include in
33613	// API requests with the JSON null value. By default, fields with empty
33614	// values are omitted from API requests. However, any field with an
33615	// empty value appearing in NullFields will be sent to the server as
33616	// null. It is an error if a field in this list has a non-empty value.
33617	// This may be used to include null fields in Patch requests.
33618	NullFields []string `json:"-"`
33619}
33620
33621func (s *RegionInstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
33622	type NoMethod RegionInstanceGroupManagersAbandonInstancesRequest
33623	raw := NoMethod(*s)
33624	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33625}
33626
33627// RegionInstanceGroupManagersApplyUpdatesRequest:
33628// RegionInstanceGroupManagers.applyUpdatesToInstances
33629type RegionInstanceGroupManagersApplyUpdatesRequest struct {
33630	// AllInstances: Flag to update all instances instead of specified list
33631	// of “instances”. If the flag is set to true then the instances may
33632	// not be specified in the request.
33633	AllInstances bool `json:"allInstances,omitempty"`
33634
33635	// Instances: The list of URLs of one or more instances for which you
33636	// want to apply updates. Each URL can be a full URL or a partial URL,
33637	// such as zones/[ZONE]/instances/[INSTANCE_NAME].
33638	Instances []string `json:"instances,omitempty"`
33639
33640	// MinimalAction: The minimal action that you want to perform on each
33641	// instance during the update: - REPLACE: At minimum, delete the
33642	// instance and create it again. - RESTART: Stop the instance and start
33643	// it again. - REFRESH: Do not stop the instance. - NONE: Do not disrupt
33644	// the instance at all. By default, the minimum action is NONE. If your
33645	// update requires a more disruptive action than you set with this flag,
33646	// the necessary action is performed to execute the update.
33647	//
33648	// Possible values:
33649	//   "NONE" - Do not perform any action.
33650	//   "REFRESH" - Updates applied in runtime, instances will not be
33651	// disrupted.
33652	//   "REPLACE" - Old instances will be deleted. New instances will be
33653	// created from the target template.
33654	//   "RESTART" - Every instance will be restarted.
33655	MinimalAction string `json:"minimalAction,omitempty"`
33656
33657	// MostDisruptiveAllowedAction: The most disruptive action that you want
33658	// to perform on each instance during the update: - REPLACE: Delete the
33659	// instance and create it again. - RESTART: Stop the instance and start
33660	// it again. - REFRESH: Do not stop the instance. - NONE: Do not disrupt
33661	// the instance at all. By default, the most disruptive allowed action
33662	// is REPLACE. If your update requires a more disruptive action than you
33663	// set with this flag, the update request will fail.
33664	//
33665	// Possible values:
33666	//   "NONE" - Do not perform any action.
33667	//   "REFRESH" - Updates applied in runtime, instances will not be
33668	// disrupted.
33669	//   "REPLACE" - Old instances will be deleted. New instances will be
33670	// created from the target template.
33671	//   "RESTART" - Every instance will be restarted.
33672	MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"`
33673
33674	// ForceSendFields is a list of field names (e.g. "AllInstances") to
33675	// unconditionally include in API requests. By default, fields with
33676	// empty or default values are omitted from API requests. However, any
33677	// non-pointer, non-interface field appearing in ForceSendFields will be
33678	// sent to the server regardless of whether the field is empty or not.
33679	// This may be used to include empty fields in Patch requests.
33680	ForceSendFields []string `json:"-"`
33681
33682	// NullFields is a list of field names (e.g. "AllInstances") to include
33683	// in API requests with the JSON null value. By default, fields with
33684	// empty values are omitted from API requests. However, any field with
33685	// an empty value appearing in NullFields will be sent to the server as
33686	// null. It is an error if a field in this list has a non-empty value.
33687	// This may be used to include null fields in Patch requests.
33688	NullFields []string `json:"-"`
33689}
33690
33691func (s *RegionInstanceGroupManagersApplyUpdatesRequest) MarshalJSON() ([]byte, error) {
33692	type NoMethod RegionInstanceGroupManagersApplyUpdatesRequest
33693	raw := NoMethod(*s)
33694	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33695}
33696
33697// RegionInstanceGroupManagersCreateInstancesRequest:
33698// RegionInstanceGroupManagers.createInstances
33699type RegionInstanceGroupManagersCreateInstancesRequest struct {
33700	// Instances: [Required] List of specifications of per-instance configs.
33701	Instances []*PerInstanceConfig `json:"instances,omitempty"`
33702
33703	// ForceSendFields is a list of field names (e.g. "Instances") to
33704	// unconditionally include in API requests. By default, fields with
33705	// empty or default values are omitted from API requests. However, any
33706	// non-pointer, non-interface field appearing in ForceSendFields will be
33707	// sent to the server regardless of whether the field is empty or not.
33708	// This may be used to include empty fields in Patch requests.
33709	ForceSendFields []string `json:"-"`
33710
33711	// NullFields is a list of field names (e.g. "Instances") to include in
33712	// API requests with the JSON null value. By default, fields with empty
33713	// values are omitted from API requests. However, any field with an
33714	// empty value appearing in NullFields will be sent to the server as
33715	// null. It is an error if a field in this list has a non-empty value.
33716	// This may be used to include null fields in Patch requests.
33717	NullFields []string `json:"-"`
33718}
33719
33720func (s *RegionInstanceGroupManagersCreateInstancesRequest) MarshalJSON() ([]byte, error) {
33721	type NoMethod RegionInstanceGroupManagersCreateInstancesRequest
33722	raw := NoMethod(*s)
33723	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33724}
33725
33726type RegionInstanceGroupManagersDeleteInstancesRequest struct {
33727	// Instances: The URLs of one or more instances to delete. This can be a
33728	// full URL or a partial URL, such as
33729	// zones/[ZONE]/instances/[INSTANCE_NAME].
33730	Instances []string `json:"instances,omitempty"`
33731
33732	// SkipInstancesOnValidationError: Specifies whether the request should
33733	// proceed despite the inclusion of instances that are not members of
33734	// the group or that are already in the process of being deleted or
33735	// abandoned. If this field is set to `false` and such an instance is
33736	// specified in the request, the operation fails. The operation always
33737	// fails if the request contains a malformed instance URL or a reference
33738	// to an instance that exists in a zone or region other than the group's
33739	// zone or region.
33740	SkipInstancesOnValidationError bool `json:"skipInstancesOnValidationError,omitempty"`
33741
33742	// ForceSendFields is a list of field names (e.g. "Instances") to
33743	// unconditionally include in API requests. By default, fields with
33744	// empty or default values are omitted from API requests. However, any
33745	// non-pointer, non-interface field appearing in ForceSendFields will be
33746	// sent to the server regardless of whether the field is empty or not.
33747	// This may be used to include empty fields in Patch requests.
33748	ForceSendFields []string `json:"-"`
33749
33750	// NullFields is a list of field names (e.g. "Instances") to include in
33751	// API requests with the JSON null value. By default, fields with empty
33752	// values are omitted from API requests. However, any field with an
33753	// empty value appearing in NullFields will be sent to the server as
33754	// null. It is an error if a field in this list has a non-empty value.
33755	// This may be used to include null fields in Patch requests.
33756	NullFields []string `json:"-"`
33757}
33758
33759func (s *RegionInstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
33760	type NoMethod RegionInstanceGroupManagersDeleteInstancesRequest
33761	raw := NoMethod(*s)
33762	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33763}
33764
33765type RegionInstanceGroupManagersListErrorsResponse struct {
33766	// Items: [Output Only] The list of errors of the managed instance
33767	// group.
33768	Items []*InstanceManagedByIgmError `json:"items,omitempty"`
33769
33770	// NextPageToken: [Output Only] This token allows you to get the next
33771	// page of results for list requests. If the number of results is larger
33772	// than maxResults, use the nextPageToken as a value for the query
33773	// parameter pageToken in the next list request. Subsequent list
33774	// requests will have their own nextPageToken to continue paging through
33775	// the results.
33776	NextPageToken string `json:"nextPageToken,omitempty"`
33777
33778	// ServerResponse contains the HTTP response code and headers from the
33779	// server.
33780	googleapi.ServerResponse `json:"-"`
33781
33782	// ForceSendFields is a list of field names (e.g. "Items") to
33783	// unconditionally include in API requests. By default, fields with
33784	// empty or default values are omitted from API requests. However, any
33785	// non-pointer, non-interface field appearing in ForceSendFields will be
33786	// sent to the server regardless of whether the field is empty or not.
33787	// This may be used to include empty fields in Patch requests.
33788	ForceSendFields []string `json:"-"`
33789
33790	// NullFields is a list of field names (e.g. "Items") to include in API
33791	// requests with the JSON null value. By default, fields with empty
33792	// values are omitted from API requests. However, any field with an
33793	// empty value appearing in NullFields will be sent to the server as
33794	// null. It is an error if a field in this list has a non-empty value.
33795	// This may be used to include null fields in Patch requests.
33796	NullFields []string `json:"-"`
33797}
33798
33799func (s *RegionInstanceGroupManagersListErrorsResponse) MarshalJSON() ([]byte, error) {
33800	type NoMethod RegionInstanceGroupManagersListErrorsResponse
33801	raw := NoMethod(*s)
33802	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33803}
33804
33805type RegionInstanceGroupManagersListInstanceConfigsResp struct {
33806	// Items: [Output Only] The list of PerInstanceConfig.
33807	Items []*PerInstanceConfig `json:"items,omitempty"`
33808
33809	// NextPageToken: [Output Only] This token allows you to get the next
33810	// page of results for list requests. If the number of results is larger
33811	// than maxResults, use the nextPageToken as a value for the query
33812	// parameter pageToken in the next list request. Subsequent list
33813	// requests will have their own nextPageToken to continue paging through
33814	// the results.
33815	NextPageToken string `json:"nextPageToken,omitempty"`
33816
33817	// Warning: [Output Only] Informational warning message.
33818	Warning *RegionInstanceGroupManagersListInstanceConfigsRespWarning `json:"warning,omitempty"`
33819
33820	// ServerResponse contains the HTTP response code and headers from the
33821	// server.
33822	googleapi.ServerResponse `json:"-"`
33823
33824	// ForceSendFields is a list of field names (e.g. "Items") to
33825	// unconditionally include in API requests. By default, fields with
33826	// empty or default values are omitted from API requests. However, any
33827	// non-pointer, non-interface field appearing in ForceSendFields will be
33828	// sent to the server regardless of whether the field is empty or not.
33829	// This may be used to include empty fields in Patch requests.
33830	ForceSendFields []string `json:"-"`
33831
33832	// NullFields is a list of field names (e.g. "Items") to include in API
33833	// requests with the JSON null value. By default, fields with empty
33834	// values are omitted from API requests. However, any field with an
33835	// empty value appearing in NullFields will be sent to the server as
33836	// null. It is an error if a field in this list has a non-empty value.
33837	// This may be used to include null fields in Patch requests.
33838	NullFields []string `json:"-"`
33839}
33840
33841func (s *RegionInstanceGroupManagersListInstanceConfigsResp) MarshalJSON() ([]byte, error) {
33842	type NoMethod RegionInstanceGroupManagersListInstanceConfigsResp
33843	raw := NoMethod(*s)
33844	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33845}
33846
33847// RegionInstanceGroupManagersListInstanceConfigsRespWarning: [Output
33848// Only] Informational warning message.
33849type RegionInstanceGroupManagersListInstanceConfigsRespWarning struct {
33850	// Code: [Output Only] A warning code, if applicable. For example,
33851	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33852	// the response.
33853	//
33854	// Possible values:
33855	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
33856	// changes made by a failed operation.
33857	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
33858	// created.
33859	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
33860	// resources has a type marked as deprecated
33861	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
33862	// that is larger than image size.
33863	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
33864	// resources has a type marked as experimental
33865	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
33866	// call
33867	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
33868	// overridden. Deprecated unused field.
33869	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
33870	// injected kernel, which is deprecated.
33871	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
33872	// exceedingly large number of resources
33873	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
33874	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
33875	// not assigned to an instance on the network.
33876	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
33877	// ip forward.
33878	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
33879	// refers to an instance that does not exist.
33880	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
33881	// URL refers to an instance that is not on the same network as the
33882	// route.
33883	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
33884	// have a status of RUNNING.
33885	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
33886	// continue the process despite the mentioned error.
33887	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
33888	// page.
33889	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
33890	// missing due to errors
33891	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
33892	// that requires a TOS they have not accepted.
33893	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
33894	// resource is in use.
33895	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
33896	// auto-delete could not be deleted because they were in use.
33897	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
33898	// ignored.
33899	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
33900	// instance group manager is valid as such, but its application does not
33901	// make a lot of sense, because it allows only single instance in
33902	// instance group.
33903	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
33904	// are present
33905	//   "UNREACHABLE" - A given scope cannot be reached.
33906	Code string `json:"code,omitempty"`
33907
33908	// Data: [Output Only] Metadata about this warning in key: value format.
33909	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
33910	// }
33911	Data []*RegionInstanceGroupManagersListInstanceConfigsRespWarningData `json:"data,omitempty"`
33912
33913	// Message: [Output Only] A human-readable description of the warning
33914	// code.
33915	Message string `json:"message,omitempty"`
33916
33917	// ForceSendFields is a list of field names (e.g. "Code") to
33918	// unconditionally include in API requests. By default, fields with
33919	// empty or default values are omitted from API requests. However, any
33920	// non-pointer, non-interface field appearing in ForceSendFields will be
33921	// sent to the server regardless of whether the field is empty or not.
33922	// This may be used to include empty fields in Patch requests.
33923	ForceSendFields []string `json:"-"`
33924
33925	// NullFields is a list of field names (e.g. "Code") to include in API
33926	// requests with the JSON null value. By default, fields with empty
33927	// values are omitted from API requests. However, any field with an
33928	// empty value appearing in NullFields will be sent to the server as
33929	// null. It is an error if a field in this list has a non-empty value.
33930	// This may be used to include null fields in Patch requests.
33931	NullFields []string `json:"-"`
33932}
33933
33934func (s *RegionInstanceGroupManagersListInstanceConfigsRespWarning) MarshalJSON() ([]byte, error) {
33935	type NoMethod RegionInstanceGroupManagersListInstanceConfigsRespWarning
33936	raw := NoMethod(*s)
33937	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33938}
33939
33940type RegionInstanceGroupManagersListInstanceConfigsRespWarningData struct {
33941	// Key: [Output Only] A key that provides more detail on the warning
33942	// being returned. For example, for warnings where there are no results
33943	// in a list request for a particular zone, this key might be scope and
33944	// the key value might be the zone name. Other examples might be a key
33945	// indicating a deprecated resource and a suggested replacement, or a
33946	// warning about invalid network settings (for example, if an instance
33947	// attempts to perform IP forwarding but is not enabled for IP
33948	// forwarding).
33949	Key string `json:"key,omitempty"`
33950
33951	// Value: [Output Only] A warning data value corresponding to the key.
33952	Value string `json:"value,omitempty"`
33953
33954	// ForceSendFields is a list of field names (e.g. "Key") to
33955	// unconditionally include in API requests. By default, fields with
33956	// empty or default values are omitted from API requests. However, any
33957	// non-pointer, non-interface field appearing in ForceSendFields will be
33958	// sent to the server regardless of whether the field is empty or not.
33959	// This may be used to include empty fields in Patch requests.
33960	ForceSendFields []string `json:"-"`
33961
33962	// NullFields is a list of field names (e.g. "Key") to include in API
33963	// requests with the JSON null value. By default, fields with empty
33964	// values are omitted from API requests. However, any field with an
33965	// empty value appearing in NullFields will be sent to the server as
33966	// null. It is an error if a field in this list has a non-empty value.
33967	// This may be used to include null fields in Patch requests.
33968	NullFields []string `json:"-"`
33969}
33970
33971func (s *RegionInstanceGroupManagersListInstanceConfigsRespWarningData) MarshalJSON() ([]byte, error) {
33972	type NoMethod RegionInstanceGroupManagersListInstanceConfigsRespWarningData
33973	raw := NoMethod(*s)
33974	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33975}
33976
33977type RegionInstanceGroupManagersListInstancesResponse struct {
33978	// ManagedInstances: A list of managed instances.
33979	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
33980
33981	// NextPageToken: [Output Only] This token allows you to get the next
33982	// page of results for list requests. If the number of results is larger
33983	// than maxResults, use the nextPageToken as a value for the query
33984	// parameter pageToken in the next list request. Subsequent list
33985	// requests will have their own nextPageToken to continue paging through
33986	// the results.
33987	NextPageToken string `json:"nextPageToken,omitempty"`
33988
33989	// ServerResponse contains the HTTP response code and headers from the
33990	// server.
33991	googleapi.ServerResponse `json:"-"`
33992
33993	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
33994	// unconditionally include in API requests. By default, fields with
33995	// empty or default values are omitted from API requests. However, any
33996	// non-pointer, non-interface field appearing in ForceSendFields will be
33997	// sent to the server regardless of whether the field is empty or not.
33998	// This may be used to include empty fields in Patch requests.
33999	ForceSendFields []string `json:"-"`
34000
34001	// NullFields is a list of field names (e.g. "ManagedInstances") to
34002	// include in API requests with the JSON null value. By default, fields
34003	// with empty values are omitted from API requests. However, any field
34004	// with an empty value appearing in NullFields will be sent to the
34005	// server as null. It is an error if a field in this list has a
34006	// non-empty value. This may be used to include null fields in Patch
34007	// requests.
34008	NullFields []string `json:"-"`
34009}
34010
34011func (s *RegionInstanceGroupManagersListInstancesResponse) MarshalJSON() ([]byte, error) {
34012	type NoMethod RegionInstanceGroupManagersListInstancesResponse
34013	raw := NoMethod(*s)
34014	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34015}
34016
34017type RegionInstanceGroupManagersRecreateRequest struct {
34018	// Instances: The URLs of one or more instances to recreate. This can be
34019	// a full URL or a partial URL, such as
34020	// zones/[ZONE]/instances/[INSTANCE_NAME].
34021	Instances []string `json:"instances,omitempty"`
34022
34023	// ForceSendFields is a list of field names (e.g. "Instances") to
34024	// unconditionally include in API requests. By default, fields with
34025	// empty or default values are omitted from API requests. However, any
34026	// non-pointer, non-interface field appearing in ForceSendFields will be
34027	// sent to the server regardless of whether the field is empty or not.
34028	// This may be used to include empty fields in Patch requests.
34029	ForceSendFields []string `json:"-"`
34030
34031	// NullFields is a list of field names (e.g. "Instances") to include in
34032	// API requests with the JSON null value. By default, fields with empty
34033	// values are omitted from API requests. However, any field with an
34034	// empty value appearing in NullFields will be sent to the server as
34035	// null. It is an error if a field in this list has a non-empty value.
34036	// This may be used to include null fields in Patch requests.
34037	NullFields []string `json:"-"`
34038}
34039
34040func (s *RegionInstanceGroupManagersRecreateRequest) MarshalJSON() ([]byte, error) {
34041	type NoMethod RegionInstanceGroupManagersRecreateRequest
34042	raw := NoMethod(*s)
34043	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34044}
34045
34046type RegionInstanceGroupManagersSetTargetPoolsRequest struct {
34047	// Fingerprint: Fingerprint of the target pools information, which is a
34048	// hash of the contents. This field is used for optimistic locking when
34049	// you update the target pool entries. This field is optional.
34050	Fingerprint string `json:"fingerprint,omitempty"`
34051
34052	// TargetPools: The URL of all TargetPool resources to which instances
34053	// in the instanceGroup field are added. The target pools automatically
34054	// apply to all of the instances in the managed instance group.
34055	TargetPools []string `json:"targetPools,omitempty"`
34056
34057	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
34058	// unconditionally include in API requests. By default, fields with
34059	// empty or default values are omitted from API requests. However, any
34060	// non-pointer, non-interface field appearing in ForceSendFields will be
34061	// sent to the server regardless of whether the field is empty or not.
34062	// This may be used to include empty fields in Patch requests.
34063	ForceSendFields []string `json:"-"`
34064
34065	// NullFields is a list of field names (e.g. "Fingerprint") to include
34066	// in API requests with the JSON null value. By default, fields with
34067	// empty values are omitted from API requests. However, any field with
34068	// an empty value appearing in NullFields will be sent to the server as
34069	// null. It is an error if a field in this list has a non-empty value.
34070	// This may be used to include null fields in Patch requests.
34071	NullFields []string `json:"-"`
34072}
34073
34074func (s *RegionInstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
34075	type NoMethod RegionInstanceGroupManagersSetTargetPoolsRequest
34076	raw := NoMethod(*s)
34077	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34078}
34079
34080type RegionInstanceGroupManagersSetTemplateRequest struct {
34081	// InstanceTemplate: URL of the InstanceTemplate resource from which all
34082	// new instances will be created.
34083	InstanceTemplate string `json:"instanceTemplate,omitempty"`
34084
34085	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
34086	// unconditionally include in API requests. By default, fields with
34087	// empty or default values are omitted from API requests. However, any
34088	// non-pointer, non-interface field appearing in ForceSendFields will be
34089	// sent to the server regardless of whether the field is empty or not.
34090	// This may be used to include empty fields in Patch requests.
34091	ForceSendFields []string `json:"-"`
34092
34093	// NullFields is a list of field names (e.g. "InstanceTemplate") to
34094	// include in API requests with the JSON null value. By default, fields
34095	// with empty values are omitted from API requests. However, any field
34096	// with an empty value appearing in NullFields will be sent to the
34097	// server as null. It is an error if a field in this list has a
34098	// non-empty value. This may be used to include null fields in Patch
34099	// requests.
34100	NullFields []string `json:"-"`
34101}
34102
34103func (s *RegionInstanceGroupManagersSetTemplateRequest) MarshalJSON() ([]byte, error) {
34104	type NoMethod RegionInstanceGroupManagersSetTemplateRequest
34105	raw := NoMethod(*s)
34106	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34107}
34108
34109type RegionInstanceGroupsListInstances struct {
34110	// Id: [Output Only] Unique identifier for the resource; defined by the
34111	// server.
34112	Id string `json:"id,omitempty"`
34113
34114	// Items: A list of InstanceWithNamedPorts resources.
34115	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
34116
34117	// Kind: The resource type.
34118	Kind string `json:"kind,omitempty"`
34119
34120	// NextPageToken: [Output Only] This token allows you to get the next
34121	// page of results for list requests. If the number of results is larger
34122	// than maxResults, use the nextPageToken as a value for the query
34123	// parameter pageToken in the next list request. Subsequent list
34124	// requests will have their own nextPageToken to continue paging through
34125	// the results.
34126	NextPageToken string `json:"nextPageToken,omitempty"`
34127
34128	// SelfLink: [Output Only] Server-defined URL for this resource.
34129	SelfLink string `json:"selfLink,omitempty"`
34130
34131	// Warning: [Output Only] Informational warning message.
34132	Warning *RegionInstanceGroupsListInstancesWarning `json:"warning,omitempty"`
34133
34134	// ServerResponse contains the HTTP response code and headers from the
34135	// server.
34136	googleapi.ServerResponse `json:"-"`
34137
34138	// ForceSendFields is a list of field names (e.g. "Id") to
34139	// unconditionally include in API requests. By default, fields with
34140	// empty or default values are omitted from API requests. However, any
34141	// non-pointer, non-interface field appearing in ForceSendFields will be
34142	// sent to the server regardless of whether the field is empty or not.
34143	// This may be used to include empty fields in Patch requests.
34144	ForceSendFields []string `json:"-"`
34145
34146	// NullFields is a list of field names (e.g. "Id") to include in API
34147	// requests with the JSON null value. By default, fields with empty
34148	// values are omitted from API requests. However, any field with an
34149	// empty value appearing in NullFields will be sent to the server as
34150	// null. It is an error if a field in this list has a non-empty value.
34151	// This may be used to include null fields in Patch requests.
34152	NullFields []string `json:"-"`
34153}
34154
34155func (s *RegionInstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
34156	type NoMethod RegionInstanceGroupsListInstances
34157	raw := NoMethod(*s)
34158	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34159}
34160
34161// RegionInstanceGroupsListInstancesWarning: [Output Only] Informational
34162// warning message.
34163type RegionInstanceGroupsListInstancesWarning struct {
34164	// Code: [Output Only] A warning code, if applicable. For example,
34165	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34166	// the response.
34167	//
34168	// Possible values:
34169	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
34170	// changes made by a failed operation.
34171	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
34172	// created.
34173	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
34174	// resources has a type marked as deprecated
34175	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
34176	// that is larger than image size.
34177	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
34178	// resources has a type marked as experimental
34179	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
34180	// call
34181	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
34182	// overridden. Deprecated unused field.
34183	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
34184	// injected kernel, which is deprecated.
34185	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
34186	// exceedingly large number of resources
34187	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
34188	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
34189	// not assigned to an instance on the network.
34190	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
34191	// ip forward.
34192	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
34193	// refers to an instance that does not exist.
34194	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
34195	// URL refers to an instance that is not on the same network as the
34196	// route.
34197	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
34198	// have a status of RUNNING.
34199	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
34200	// continue the process despite the mentioned error.
34201	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
34202	// page.
34203	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
34204	// missing due to errors
34205	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
34206	// that requires a TOS they have not accepted.
34207	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
34208	// resource is in use.
34209	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
34210	// auto-delete could not be deleted because they were in use.
34211	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
34212	// ignored.
34213	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
34214	// instance group manager is valid as such, but its application does not
34215	// make a lot of sense, because it allows only single instance in
34216	// instance group.
34217	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
34218	// are present
34219	//   "UNREACHABLE" - A given scope cannot be reached.
34220	Code string `json:"code,omitempty"`
34221
34222	// Data: [Output Only] Metadata about this warning in key: value format.
34223	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
34224	// }
34225	Data []*RegionInstanceGroupsListInstancesWarningData `json:"data,omitempty"`
34226
34227	// Message: [Output Only] A human-readable description of the warning
34228	// code.
34229	Message string `json:"message,omitempty"`
34230
34231	// ForceSendFields is a list of field names (e.g. "Code") to
34232	// unconditionally include in API requests. By default, fields with
34233	// empty or default values are omitted from API requests. However, any
34234	// non-pointer, non-interface field appearing in ForceSendFields will be
34235	// sent to the server regardless of whether the field is empty or not.
34236	// This may be used to include empty fields in Patch requests.
34237	ForceSendFields []string `json:"-"`
34238
34239	// NullFields is a list of field names (e.g. "Code") to include in API
34240	// requests with the JSON null value. By default, fields with empty
34241	// values are omitted from API requests. However, any field with an
34242	// empty value appearing in NullFields will be sent to the server as
34243	// null. It is an error if a field in this list has a non-empty value.
34244	// This may be used to include null fields in Patch requests.
34245	NullFields []string `json:"-"`
34246}
34247
34248func (s *RegionInstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
34249	type NoMethod RegionInstanceGroupsListInstancesWarning
34250	raw := NoMethod(*s)
34251	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34252}
34253
34254type RegionInstanceGroupsListInstancesWarningData struct {
34255	// Key: [Output Only] A key that provides more detail on the warning
34256	// being returned. For example, for warnings where there are no results
34257	// in a list request for a particular zone, this key might be scope and
34258	// the key value might be the zone name. Other examples might be a key
34259	// indicating a deprecated resource and a suggested replacement, or a
34260	// warning about invalid network settings (for example, if an instance
34261	// attempts to perform IP forwarding but is not enabled for IP
34262	// forwarding).
34263	Key string `json:"key,omitempty"`
34264
34265	// Value: [Output Only] A warning data value corresponding to the key.
34266	Value string `json:"value,omitempty"`
34267
34268	// ForceSendFields is a list of field names (e.g. "Key") to
34269	// unconditionally include in API requests. By default, fields with
34270	// empty or default values are omitted from API requests. However, any
34271	// non-pointer, non-interface field appearing in ForceSendFields will be
34272	// sent to the server regardless of whether the field is empty or not.
34273	// This may be used to include empty fields in Patch requests.
34274	ForceSendFields []string `json:"-"`
34275
34276	// NullFields is a list of field names (e.g. "Key") to include in API
34277	// requests with the JSON null value. By default, fields with empty
34278	// values are omitted from API requests. However, any field with an
34279	// empty value appearing in NullFields will be sent to the server as
34280	// null. It is an error if a field in this list has a non-empty value.
34281	// This may be used to include null fields in Patch requests.
34282	NullFields []string `json:"-"`
34283}
34284
34285func (s *RegionInstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
34286	type NoMethod RegionInstanceGroupsListInstancesWarningData
34287	raw := NoMethod(*s)
34288	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34289}
34290
34291type RegionInstanceGroupsListInstancesRequest struct {
34292	// InstanceState: Instances in which state should be returned. Valid
34293	// options are: 'ALL', 'RUNNING'. By default, it lists all instances.
34294	//
34295	// Possible values:
34296	//   "ALL" - Matches any status of the instances, running, non-running
34297	// and others.
34298	//   "RUNNING" - Instance is in RUNNING state if it is running.
34299	InstanceState string `json:"instanceState,omitempty"`
34300
34301	// PortName: Name of port user is interested in. It is optional. If it
34302	// is set, only information about this ports will be returned. If it is
34303	// not set, all the named ports will be returned. Always lists all
34304	// instances.
34305	PortName string `json:"portName,omitempty"`
34306
34307	// ForceSendFields is a list of field names (e.g. "InstanceState") to
34308	// unconditionally include in API requests. By default, fields with
34309	// empty or default values are omitted from API requests. However, any
34310	// non-pointer, non-interface field appearing in ForceSendFields will be
34311	// sent to the server regardless of whether the field is empty or not.
34312	// This may be used to include empty fields in Patch requests.
34313	ForceSendFields []string `json:"-"`
34314
34315	// NullFields is a list of field names (e.g. "InstanceState") to include
34316	// in API requests with the JSON null value. By default, fields with
34317	// empty values are omitted from API requests. However, any field with
34318	// an empty value appearing in NullFields will be sent to the server as
34319	// null. It is an error if a field in this list has a non-empty value.
34320	// This may be used to include null fields in Patch requests.
34321	NullFields []string `json:"-"`
34322}
34323
34324func (s *RegionInstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
34325	type NoMethod RegionInstanceGroupsListInstancesRequest
34326	raw := NoMethod(*s)
34327	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34328}
34329
34330type RegionInstanceGroupsSetNamedPortsRequest struct {
34331	// Fingerprint: The fingerprint of the named ports information for this
34332	// instance group. Use this optional property to prevent conflicts when
34333	// multiple users change the named ports settings concurrently. Obtain
34334	// the fingerprint with the instanceGroups.get method. Then, include the
34335	// fingerprint in your request to ensure that you do not overwrite
34336	// changes that were applied from another concurrent request.
34337	Fingerprint string `json:"fingerprint,omitempty"`
34338
34339	// NamedPorts: The list of named ports to set for this instance group.
34340	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
34341
34342	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
34343	// unconditionally include in API requests. By default, fields with
34344	// empty or default values are omitted from API requests. However, any
34345	// non-pointer, non-interface field appearing in ForceSendFields will be
34346	// sent to the server regardless of whether the field is empty or not.
34347	// This may be used to include empty fields in Patch requests.
34348	ForceSendFields []string `json:"-"`
34349
34350	// NullFields is a list of field names (e.g. "Fingerprint") to include
34351	// in API requests with the JSON null value. By default, fields with
34352	// empty values are omitted from API requests. However, any field with
34353	// an empty value appearing in NullFields will be sent to the server as
34354	// null. It is an error if a field in this list has a non-empty value.
34355	// This may be used to include null fields in Patch requests.
34356	NullFields []string `json:"-"`
34357}
34358
34359func (s *RegionInstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
34360	type NoMethod RegionInstanceGroupsSetNamedPortsRequest
34361	raw := NoMethod(*s)
34362	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34363}
34364
34365// RegionList: Contains a list of region resources.
34366type RegionList struct {
34367	// Id: [Output Only] Unique identifier for the resource; defined by the
34368	// server.
34369	Id string `json:"id,omitempty"`
34370
34371	// Items: A list of Region resources.
34372	Items []*Region `json:"items,omitempty"`
34373
34374	// Kind: [Output Only] Type of resource. Always compute#regionList for
34375	// lists of regions.
34376	Kind string `json:"kind,omitempty"`
34377
34378	// NextPageToken: [Output Only] This token allows you to get the next
34379	// page of results for list requests. If the number of results is larger
34380	// than maxResults, use the nextPageToken as a value for the query
34381	// parameter pageToken in the next list request. Subsequent list
34382	// requests will have their own nextPageToken to continue paging through
34383	// the results.
34384	NextPageToken string `json:"nextPageToken,omitempty"`
34385
34386	// SelfLink: [Output Only] Server-defined URL for this resource.
34387	SelfLink string `json:"selfLink,omitempty"`
34388
34389	// Warning: [Output Only] Informational warning message.
34390	Warning *RegionListWarning `json:"warning,omitempty"`
34391
34392	// ServerResponse contains the HTTP response code and headers from the
34393	// server.
34394	googleapi.ServerResponse `json:"-"`
34395
34396	// ForceSendFields is a list of field names (e.g. "Id") to
34397	// unconditionally include in API requests. By default, fields with
34398	// empty or default values are omitted from API requests. However, any
34399	// non-pointer, non-interface field appearing in ForceSendFields will be
34400	// sent to the server regardless of whether the field is empty or not.
34401	// This may be used to include empty fields in Patch requests.
34402	ForceSendFields []string `json:"-"`
34403
34404	// NullFields is a list of field names (e.g. "Id") to include in API
34405	// requests with the JSON null value. By default, fields with empty
34406	// values are omitted from API requests. However, any field with an
34407	// empty value appearing in NullFields will be sent to the server as
34408	// null. It is an error if a field in this list has a non-empty value.
34409	// This may be used to include null fields in Patch requests.
34410	NullFields []string `json:"-"`
34411}
34412
34413func (s *RegionList) MarshalJSON() ([]byte, error) {
34414	type NoMethod RegionList
34415	raw := NoMethod(*s)
34416	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34417}
34418
34419// RegionListWarning: [Output Only] Informational warning message.
34420type RegionListWarning struct {
34421	// Code: [Output Only] A warning code, if applicable. For example,
34422	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34423	// the response.
34424	//
34425	// Possible values:
34426	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
34427	// changes made by a failed operation.
34428	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
34429	// created.
34430	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
34431	// resources has a type marked as deprecated
34432	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
34433	// that is larger than image size.
34434	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
34435	// resources has a type marked as experimental
34436	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
34437	// call
34438	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
34439	// overridden. Deprecated unused field.
34440	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
34441	// injected kernel, which is deprecated.
34442	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
34443	// exceedingly large number of resources
34444	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
34445	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
34446	// not assigned to an instance on the network.
34447	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
34448	// ip forward.
34449	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
34450	// refers to an instance that does not exist.
34451	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
34452	// URL refers to an instance that is not on the same network as the
34453	// route.
34454	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
34455	// have a status of RUNNING.
34456	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
34457	// continue the process despite the mentioned error.
34458	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
34459	// page.
34460	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
34461	// missing due to errors
34462	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
34463	// that requires a TOS they have not accepted.
34464	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
34465	// resource is in use.
34466	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
34467	// auto-delete could not be deleted because they were in use.
34468	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
34469	// ignored.
34470	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
34471	// instance group manager is valid as such, but its application does not
34472	// make a lot of sense, because it allows only single instance in
34473	// instance group.
34474	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
34475	// are present
34476	//   "UNREACHABLE" - A given scope cannot be reached.
34477	Code string `json:"code,omitempty"`
34478
34479	// Data: [Output Only] Metadata about this warning in key: value format.
34480	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
34481	// }
34482	Data []*RegionListWarningData `json:"data,omitempty"`
34483
34484	// Message: [Output Only] A human-readable description of the warning
34485	// code.
34486	Message string `json:"message,omitempty"`
34487
34488	// ForceSendFields is a list of field names (e.g. "Code") to
34489	// unconditionally include in API requests. By default, fields with
34490	// empty or default values are omitted from API requests. However, any
34491	// non-pointer, non-interface field appearing in ForceSendFields will be
34492	// sent to the server regardless of whether the field is empty or not.
34493	// This may be used to include empty fields in Patch requests.
34494	ForceSendFields []string `json:"-"`
34495
34496	// NullFields is a list of field names (e.g. "Code") to include in API
34497	// requests with the JSON null value. By default, fields with empty
34498	// values are omitted from API requests. However, any field with an
34499	// empty value appearing in NullFields will be sent to the server as
34500	// null. It is an error if a field in this list has a non-empty value.
34501	// This may be used to include null fields in Patch requests.
34502	NullFields []string `json:"-"`
34503}
34504
34505func (s *RegionListWarning) MarshalJSON() ([]byte, error) {
34506	type NoMethod RegionListWarning
34507	raw := NoMethod(*s)
34508	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34509}
34510
34511type RegionListWarningData struct {
34512	// Key: [Output Only] A key that provides more detail on the warning
34513	// being returned. For example, for warnings where there are no results
34514	// in a list request for a particular zone, this key might be scope and
34515	// the key value might be the zone name. Other examples might be a key
34516	// indicating a deprecated resource and a suggested replacement, or a
34517	// warning about invalid network settings (for example, if an instance
34518	// attempts to perform IP forwarding but is not enabled for IP
34519	// forwarding).
34520	Key string `json:"key,omitempty"`
34521
34522	// Value: [Output Only] A warning data value corresponding to the key.
34523	Value string `json:"value,omitempty"`
34524
34525	// ForceSendFields is a list of field names (e.g. "Key") to
34526	// unconditionally include in API requests. By default, fields with
34527	// empty or default values are omitted from API requests. However, any
34528	// non-pointer, non-interface field appearing in ForceSendFields will be
34529	// sent to the server regardless of whether the field is empty or not.
34530	// This may be used to include empty fields in Patch requests.
34531	ForceSendFields []string `json:"-"`
34532
34533	// NullFields is a list of field names (e.g. "Key") to include in API
34534	// requests with the JSON null value. By default, fields with empty
34535	// values are omitted from API requests. However, any field with an
34536	// empty value appearing in NullFields will be sent to the server as
34537	// null. It is an error if a field in this list has a non-empty value.
34538	// This may be used to include null fields in Patch requests.
34539	NullFields []string `json:"-"`
34540}
34541
34542func (s *RegionListWarningData) MarshalJSON() ([]byte, error) {
34543	type NoMethod RegionListWarningData
34544	raw := NoMethod(*s)
34545	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34546}
34547
34548type RegionSetLabelsRequest struct {
34549	// LabelFingerprint: The fingerprint of the previous set of labels for
34550	// this resource, used to detect conflicts. The fingerprint is initially
34551	// generated by Compute Engine and changes after every request to modify
34552	// or update labels. You must always provide an up-to-date fingerprint
34553	// hash in order to update or change labels. Make a get() request to the
34554	// resource to get the latest fingerprint.
34555	LabelFingerprint string `json:"labelFingerprint,omitempty"`
34556
34557	// Labels: The labels to set for this resource.
34558	Labels map[string]string `json:"labels,omitempty"`
34559
34560	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
34561	// unconditionally include in API requests. By default, fields with
34562	// empty or default values are omitted from API requests. However, any
34563	// non-pointer, non-interface field appearing in ForceSendFields will be
34564	// sent to the server regardless of whether the field is empty or not.
34565	// This may be used to include empty fields in Patch requests.
34566	ForceSendFields []string `json:"-"`
34567
34568	// NullFields is a list of field names (e.g. "LabelFingerprint") to
34569	// include in API requests with the JSON null value. By default, fields
34570	// with empty values are omitted from API requests. However, any field
34571	// with an empty value appearing in NullFields will be sent to the
34572	// server as null. It is an error if a field in this list has a
34573	// non-empty value. This may be used to include null fields in Patch
34574	// requests.
34575	NullFields []string `json:"-"`
34576}
34577
34578func (s *RegionSetLabelsRequest) MarshalJSON() ([]byte, error) {
34579	type NoMethod RegionSetLabelsRequest
34580	raw := NoMethod(*s)
34581	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34582}
34583
34584type RegionSetPolicyRequest struct {
34585	// Bindings: Flatten Policy to create a backwacd compatible wire-format.
34586	// Deprecated. Use 'policy' to specify bindings.
34587	Bindings []*Binding `json:"bindings,omitempty"`
34588
34589	// Etag: Flatten Policy to create a backward compatible wire-format.
34590	// Deprecated. Use 'policy' to specify the etag.
34591	Etag string `json:"etag,omitempty"`
34592
34593	// Policy: REQUIRED: The complete policy to be applied to the
34594	// 'resource'. The size of the policy is limited to a few 10s of KB. An
34595	// empty policy is in general a valid policy but certain services (like
34596	// Projects) might reject them.
34597	Policy *Policy `json:"policy,omitempty"`
34598
34599	// ForceSendFields is a list of field names (e.g. "Bindings") to
34600	// unconditionally include in API requests. By default, fields with
34601	// empty or default values are omitted from API requests. However, any
34602	// non-pointer, non-interface field appearing in ForceSendFields will be
34603	// sent to the server regardless of whether the field is empty or not.
34604	// This may be used to include empty fields in Patch requests.
34605	ForceSendFields []string `json:"-"`
34606
34607	// NullFields is a list of field names (e.g. "Bindings") to include in
34608	// API requests with the JSON null value. By default, fields with empty
34609	// values are omitted from API requests. However, any field with an
34610	// empty value appearing in NullFields will be sent to the server as
34611	// null. It is an error if a field in this list has a non-empty value.
34612	// This may be used to include null fields in Patch requests.
34613	NullFields []string `json:"-"`
34614}
34615
34616func (s *RegionSetPolicyRequest) MarshalJSON() ([]byte, error) {
34617	type NoMethod RegionSetPolicyRequest
34618	raw := NoMethod(*s)
34619	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34620}
34621
34622type RegionTargetHttpsProxiesSetSslCertificatesRequest struct {
34623	// SslCertificates: New set of SslCertificate resources to associate
34624	// with this TargetHttpsProxy resource. Currently exactly one
34625	// SslCertificate resource must be specified.
34626	SslCertificates []string `json:"sslCertificates,omitempty"`
34627
34628	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
34629	// unconditionally include in API requests. By default, fields with
34630	// empty or default values are omitted from API requests. However, any
34631	// non-pointer, non-interface field appearing in ForceSendFields will be
34632	// sent to the server regardless of whether the field is empty or not.
34633	// This may be used to include empty fields in Patch requests.
34634	ForceSendFields []string `json:"-"`
34635
34636	// NullFields is a list of field names (e.g. "SslCertificates") to
34637	// include in API requests with the JSON null value. By default, fields
34638	// with empty values are omitted from API requests. However, any field
34639	// with an empty value appearing in NullFields will be sent to the
34640	// server as null. It is an error if a field in this list has a
34641	// non-empty value. This may be used to include null fields in Patch
34642	// requests.
34643	NullFields []string `json:"-"`
34644}
34645
34646func (s *RegionTargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
34647	type NoMethod RegionTargetHttpsProxiesSetSslCertificatesRequest
34648	raw := NoMethod(*s)
34649	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34650}
34651
34652type RegionUrlMapsValidateRequest struct {
34653	// Resource: Content of the UrlMap to be validated.
34654	Resource *UrlMap `json:"resource,omitempty"`
34655
34656	// ForceSendFields is a list of field names (e.g. "Resource") to
34657	// unconditionally include in API requests. By default, fields with
34658	// empty or default values are omitted from API requests. However, any
34659	// non-pointer, non-interface field appearing in ForceSendFields will be
34660	// sent to the server regardless of whether the field is empty or not.
34661	// This may be used to include empty fields in Patch requests.
34662	ForceSendFields []string `json:"-"`
34663
34664	// NullFields is a list of field names (e.g. "Resource") to include in
34665	// API requests with the JSON null value. By default, fields with empty
34666	// values are omitted from API requests. However, any field with an
34667	// empty value appearing in NullFields will be sent to the server as
34668	// null. It is an error if a field in this list has a non-empty value.
34669	// This may be used to include null fields in Patch requests.
34670	NullFields []string `json:"-"`
34671}
34672
34673func (s *RegionUrlMapsValidateRequest) MarshalJSON() ([]byte, error) {
34674	type NoMethod RegionUrlMapsValidateRequest
34675	raw := NoMethod(*s)
34676	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34677}
34678
34679// RequestMirrorPolicy: A policy that specifies how requests intended
34680// for the route's backends are shadowed to a separate mirrored backend
34681// service. Loadbalancer does not wait for responses from the shadow
34682// service. Prior to sending traffic to the shadow service, the host /
34683// authority header is suffixed with -shadow.
34684type RequestMirrorPolicy struct {
34685	// BackendService: The full or partial URL to the BackendService
34686	// resource being mirrored to.
34687	BackendService string `json:"backendService,omitempty"`
34688
34689	// ForceSendFields is a list of field names (e.g. "BackendService") to
34690	// unconditionally include in API requests. By default, fields with
34691	// empty or default values are omitted from API requests. However, any
34692	// non-pointer, non-interface field appearing in ForceSendFields will be
34693	// sent to the server regardless of whether the field is empty or not.
34694	// This may be used to include empty fields in Patch requests.
34695	ForceSendFields []string `json:"-"`
34696
34697	// NullFields is a list of field names (e.g. "BackendService") to
34698	// include in API requests with the JSON null value. By default, fields
34699	// with empty values are omitted from API requests. However, any field
34700	// with an empty value appearing in NullFields will be sent to the
34701	// server as null. It is an error if a field in this list has a
34702	// non-empty value. This may be used to include null fields in Patch
34703	// requests.
34704	NullFields []string `json:"-"`
34705}
34706
34707func (s *RequestMirrorPolicy) MarshalJSON() ([]byte, error) {
34708	type NoMethod RequestMirrorPolicy
34709	raw := NoMethod(*s)
34710	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34711}
34712
34713// Reservation: Represents a reservation resource. A reservation ensures
34714// that capacity is held in a specific zone even if the reserved VMs are
34715// not running. For more information, read Reserving zonal resources.
34716type Reservation struct {
34717	// Commitment: [Output Only] Full or partial URL to a parent commitment.
34718	// This field displays for reservations that are tied to a commitment.
34719	Commitment string `json:"commitment,omitempty"`
34720
34721	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
34722	// format.
34723	CreationTimestamp string `json:"creationTimestamp,omitempty"`
34724
34725	// Description: An optional description of this resource. Provide this
34726	// property when you create the resource.
34727	Description string `json:"description,omitempty"`
34728
34729	// Id: [Output Only] The unique identifier for the resource. This
34730	// identifier is defined by the server.
34731	Id uint64 `json:"id,omitempty,string"`
34732
34733	// Kind: [Output Only] Type of the resource. Always compute#reservations
34734	// for reservations.
34735	Kind string `json:"kind,omitempty"`
34736
34737	// Name: The name of the resource, provided by the client when initially
34738	// creating the resource. The resource name must be 1-63 characters
34739	// long, and comply with RFC1035. Specifically, the name must be 1-63
34740	// characters long and match the regular expression
34741	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
34742	// a lowercase letter, and all following characters must be a dash,
34743	// lowercase letter, or digit, except the last character, which cannot
34744	// be a dash.
34745	Name string `json:"name,omitempty"`
34746
34747	// SatisfiesPzs: [Output Only] Reserved for future use.
34748	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
34749
34750	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
34751	// resource.
34752	SelfLink string `json:"selfLink,omitempty"`
34753
34754	// SpecificReservation: Reservation for instances with specific machine
34755	// shapes.
34756	SpecificReservation *AllocationSpecificSKUReservation `json:"specificReservation,omitempty"`
34757
34758	// SpecificReservationRequired: Indicates whether the reservation can be
34759	// consumed by VMs with affinity for "any" reservation. If the field is
34760	// set, then only VMs that target the reservation by name can consume
34761	// from this reservation.
34762	SpecificReservationRequired bool `json:"specificReservationRequired,omitempty"`
34763
34764	// Status: [Output Only] The status of the reservation.
34765	//
34766	// Possible values:
34767	//   "CREATING" - Resources are being allocated for the reservation.
34768	//   "DELETING" - Reservation is currently being deleted.
34769	//   "INVALID"
34770	//   "READY" - Reservation has allocated all its resources.
34771	//   "UPDATING" - Reservation is currently being resized.
34772	Status string `json:"status,omitempty"`
34773
34774	// Zone: Zone in which the reservation resides. A zone must be provided
34775	// if the reservation is created within a commitment.
34776	Zone string `json:"zone,omitempty"`
34777
34778	// ServerResponse contains the HTTP response code and headers from the
34779	// server.
34780	googleapi.ServerResponse `json:"-"`
34781
34782	// ForceSendFields is a list of field names (e.g. "Commitment") to
34783	// unconditionally include in API requests. By default, fields with
34784	// empty or default values are omitted from API requests. However, any
34785	// non-pointer, non-interface field appearing in ForceSendFields will be
34786	// sent to the server regardless of whether the field is empty or not.
34787	// This may be used to include empty fields in Patch requests.
34788	ForceSendFields []string `json:"-"`
34789
34790	// NullFields is a list of field names (e.g. "Commitment") to include in
34791	// API requests with the JSON null value. By default, fields with empty
34792	// values are omitted from API requests. However, any field with an
34793	// empty value appearing in NullFields will be sent to the server as
34794	// null. It is an error if a field in this list has a non-empty value.
34795	// This may be used to include null fields in Patch requests.
34796	NullFields []string `json:"-"`
34797}
34798
34799func (s *Reservation) MarshalJSON() ([]byte, error) {
34800	type NoMethod Reservation
34801	raw := NoMethod(*s)
34802	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34803}
34804
34805// ReservationAffinity: Specifies the reservations that this instance
34806// can consume from.
34807type ReservationAffinity struct {
34808	// ConsumeReservationType: Specifies the type of reservation from which
34809	// this instance can consume resources: ANY_RESERVATION (default),
34810	// SPECIFIC_RESERVATION, or NO_RESERVATION. See Consuming reserved
34811	// instances for examples.
34812	//
34813	// Possible values:
34814	//   "ANY_RESERVATION" - Consume any allocation available.
34815	//   "NO_RESERVATION" - Do not consume from any allocated capacity.
34816	//   "SPECIFIC_RESERVATION" - Must consume from a specific reservation.
34817	// Must specify key value fields for specifying the reservations.
34818	//   "UNSPECIFIED"
34819	ConsumeReservationType string `json:"consumeReservationType,omitempty"`
34820
34821	// Key: Corresponds to the label key of a reservation resource. To
34822	// target a SPECIFIC_RESERVATION by name, specify
34823	// googleapis.com/reservation-name as the key and specify the name of
34824	// your reservation as its value.
34825	Key string `json:"key,omitempty"`
34826
34827	// Values: Corresponds to the label values of a reservation resource.
34828	// This can be either a name to a reservation in the same project or
34829	// "projects/different-project/reservations/some-reservation-name" to
34830	// target a shared reservation in the same zone but in a different
34831	// project.
34832	Values []string `json:"values,omitempty"`
34833
34834	// ForceSendFields is a list of field names (e.g.
34835	// "ConsumeReservationType") to unconditionally include in API requests.
34836	// By default, fields with empty or default values are omitted from API
34837	// requests. However, any non-pointer, non-interface field appearing in
34838	// ForceSendFields will be sent to the server regardless of whether the
34839	// field is empty or not. This may be used to include empty fields in
34840	// Patch requests.
34841	ForceSendFields []string `json:"-"`
34842
34843	// NullFields is a list of field names (e.g. "ConsumeReservationType")
34844	// to include in API requests with the JSON null value. By default,
34845	// fields with empty values are omitted from API requests. However, any
34846	// field with an empty value appearing in NullFields will be sent to the
34847	// server as null. It is an error if a field in this list has a
34848	// non-empty value. This may be used to include null fields in Patch
34849	// requests.
34850	NullFields []string `json:"-"`
34851}
34852
34853func (s *ReservationAffinity) MarshalJSON() ([]byte, error) {
34854	type NoMethod ReservationAffinity
34855	raw := NoMethod(*s)
34856	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34857}
34858
34859// ReservationAggregatedList: Contains a list of reservations.
34860type ReservationAggregatedList struct {
34861	// Id: [Output Only] Unique identifier for the resource; defined by the
34862	// server.
34863	Id string `json:"id,omitempty"`
34864
34865	// Items: A list of Allocation resources.
34866	Items map[string]ReservationsScopedList `json:"items,omitempty"`
34867
34868	// Kind: Type of resource.
34869	Kind string `json:"kind,omitempty"`
34870
34871	// NextPageToken: [Output Only] This token allows you to get the next
34872	// page of results for list requests. If the number of results is larger
34873	// than maxResults, use the nextPageToken as a value for the query
34874	// parameter pageToken in the next list request. Subsequent list
34875	// requests will have their own nextPageToken to continue paging through
34876	// the results.
34877	NextPageToken string `json:"nextPageToken,omitempty"`
34878
34879	// SelfLink: [Output Only] Server-defined URL for this resource.
34880	SelfLink string `json:"selfLink,omitempty"`
34881
34882	// Unreachables: [Output Only] Unreachable resources.
34883	Unreachables []string `json:"unreachables,omitempty"`
34884
34885	// Warning: [Output Only] Informational warning message.
34886	Warning *ReservationAggregatedListWarning `json:"warning,omitempty"`
34887
34888	// ServerResponse contains the HTTP response code and headers from the
34889	// server.
34890	googleapi.ServerResponse `json:"-"`
34891
34892	// ForceSendFields is a list of field names (e.g. "Id") to
34893	// unconditionally include in API requests. By default, fields with
34894	// empty or default values are omitted from API requests. However, any
34895	// non-pointer, non-interface field appearing in ForceSendFields will be
34896	// sent to the server regardless of whether the field is empty or not.
34897	// This may be used to include empty fields in Patch requests.
34898	ForceSendFields []string `json:"-"`
34899
34900	// NullFields is a list of field names (e.g. "Id") to include in API
34901	// requests with the JSON null value. By default, fields with empty
34902	// values are omitted from API requests. However, any field with an
34903	// empty value appearing in NullFields will be sent to the server as
34904	// null. It is an error if a field in this list has a non-empty value.
34905	// This may be used to include null fields in Patch requests.
34906	NullFields []string `json:"-"`
34907}
34908
34909func (s *ReservationAggregatedList) MarshalJSON() ([]byte, error) {
34910	type NoMethod ReservationAggregatedList
34911	raw := NoMethod(*s)
34912	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34913}
34914
34915// ReservationAggregatedListWarning: [Output Only] Informational warning
34916// message.
34917type ReservationAggregatedListWarning struct {
34918	// Code: [Output Only] A warning code, if applicable. For example,
34919	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34920	// the response.
34921	//
34922	// Possible values:
34923	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
34924	// changes made by a failed operation.
34925	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
34926	// created.
34927	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
34928	// resources has a type marked as deprecated
34929	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
34930	// that is larger than image size.
34931	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
34932	// resources has a type marked as experimental
34933	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
34934	// call
34935	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
34936	// overridden. Deprecated unused field.
34937	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
34938	// injected kernel, which is deprecated.
34939	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
34940	// exceedingly large number of resources
34941	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
34942	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
34943	// not assigned to an instance on the network.
34944	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
34945	// ip forward.
34946	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
34947	// refers to an instance that does not exist.
34948	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
34949	// URL refers to an instance that is not on the same network as the
34950	// route.
34951	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
34952	// have a status of RUNNING.
34953	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
34954	// continue the process despite the mentioned error.
34955	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
34956	// page.
34957	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
34958	// missing due to errors
34959	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
34960	// that requires a TOS they have not accepted.
34961	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
34962	// resource is in use.
34963	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
34964	// auto-delete could not be deleted because they were in use.
34965	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
34966	// ignored.
34967	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
34968	// instance group manager is valid as such, but its application does not
34969	// make a lot of sense, because it allows only single instance in
34970	// instance group.
34971	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
34972	// are present
34973	//   "UNREACHABLE" - A given scope cannot be reached.
34974	Code string `json:"code,omitempty"`
34975
34976	// Data: [Output Only] Metadata about this warning in key: value format.
34977	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
34978	// }
34979	Data []*ReservationAggregatedListWarningData `json:"data,omitempty"`
34980
34981	// Message: [Output Only] A human-readable description of the warning
34982	// code.
34983	Message string `json:"message,omitempty"`
34984
34985	// ForceSendFields is a list of field names (e.g. "Code") to
34986	// unconditionally include in API requests. By default, fields with
34987	// empty or default values are omitted from API requests. However, any
34988	// non-pointer, non-interface field appearing in ForceSendFields will be
34989	// sent to the server regardless of whether the field is empty or not.
34990	// This may be used to include empty fields in Patch requests.
34991	ForceSendFields []string `json:"-"`
34992
34993	// NullFields is a list of field names (e.g. "Code") to include in API
34994	// requests with the JSON null value. By default, fields with empty
34995	// values are omitted from API requests. However, any field with an
34996	// empty value appearing in NullFields will be sent to the server as
34997	// null. It is an error if a field in this list has a non-empty value.
34998	// This may be used to include null fields in Patch requests.
34999	NullFields []string `json:"-"`
35000}
35001
35002func (s *ReservationAggregatedListWarning) MarshalJSON() ([]byte, error) {
35003	type NoMethod ReservationAggregatedListWarning
35004	raw := NoMethod(*s)
35005	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35006}
35007
35008type ReservationAggregatedListWarningData struct {
35009	// Key: [Output Only] A key that provides more detail on the warning
35010	// being returned. For example, for warnings where there are no results
35011	// in a list request for a particular zone, this key might be scope and
35012	// the key value might be the zone name. Other examples might be a key
35013	// indicating a deprecated resource and a suggested replacement, or a
35014	// warning about invalid network settings (for example, if an instance
35015	// attempts to perform IP forwarding but is not enabled for IP
35016	// forwarding).
35017	Key string `json:"key,omitempty"`
35018
35019	// Value: [Output Only] A warning data value corresponding to the key.
35020	Value string `json:"value,omitempty"`
35021
35022	// ForceSendFields is a list of field names (e.g. "Key") to
35023	// unconditionally include in API requests. By default, fields with
35024	// empty or default values are omitted from API requests. However, any
35025	// non-pointer, non-interface field appearing in ForceSendFields will be
35026	// sent to the server regardless of whether the field is empty or not.
35027	// This may be used to include empty fields in Patch requests.
35028	ForceSendFields []string `json:"-"`
35029
35030	// NullFields is a list of field names (e.g. "Key") to include in API
35031	// requests with the JSON null value. By default, fields with empty
35032	// values are omitted from API requests. However, any field with an
35033	// empty value appearing in NullFields will be sent to the server as
35034	// null. It is an error if a field in this list has a non-empty value.
35035	// This may be used to include null fields in Patch requests.
35036	NullFields []string `json:"-"`
35037}
35038
35039func (s *ReservationAggregatedListWarningData) MarshalJSON() ([]byte, error) {
35040	type NoMethod ReservationAggregatedListWarningData
35041	raw := NoMethod(*s)
35042	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35043}
35044
35045type ReservationList struct {
35046	// Id: [Output Only] The unique identifier for the resource. This
35047	// identifier is defined by the server.
35048	Id string `json:"id,omitempty"`
35049
35050	// Items: [Output Only] A list of Allocation resources.
35051	Items []*Reservation `json:"items,omitempty"`
35052
35053	// Kind: [Output Only] Type of resource.Always compute#reservationsList
35054	// for listsof reservations
35055	Kind string `json:"kind,omitempty"`
35056
35057	// NextPageToken: [Output Only] This token allows you to get the next
35058	// page of results for list requests. If the number of results is larger
35059	// than maxResults, use the nextPageToken as a value for the query
35060	// parameter pageToken in the next list request. Subsequent list
35061	// requests will have their own nextPageToken to continue paging through
35062	// the results.
35063	NextPageToken string `json:"nextPageToken,omitempty"`
35064
35065	// SelfLink: [Output Only] Server-defined URL for this resource.
35066	SelfLink string `json:"selfLink,omitempty"`
35067
35068	// Warning: [Output Only] Informational warning message.
35069	Warning *ReservationListWarning `json:"warning,omitempty"`
35070
35071	// ServerResponse contains the HTTP response code and headers from the
35072	// server.
35073	googleapi.ServerResponse `json:"-"`
35074
35075	// ForceSendFields is a list of field names (e.g. "Id") to
35076	// unconditionally include in API requests. By default, fields with
35077	// empty or default values are omitted from API requests. However, any
35078	// non-pointer, non-interface field appearing in ForceSendFields will be
35079	// sent to the server regardless of whether the field is empty or not.
35080	// This may be used to include empty fields in Patch requests.
35081	ForceSendFields []string `json:"-"`
35082
35083	// NullFields is a list of field names (e.g. "Id") to include in API
35084	// requests with the JSON null value. By default, fields with empty
35085	// values are omitted from API requests. However, any field with an
35086	// empty value appearing in NullFields will be sent to the server as
35087	// null. It is an error if a field in this list has a non-empty value.
35088	// This may be used to include null fields in Patch requests.
35089	NullFields []string `json:"-"`
35090}
35091
35092func (s *ReservationList) MarshalJSON() ([]byte, error) {
35093	type NoMethod ReservationList
35094	raw := NoMethod(*s)
35095	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35096}
35097
35098// ReservationListWarning: [Output Only] Informational warning message.
35099type ReservationListWarning struct {
35100	// Code: [Output Only] A warning code, if applicable. For example,
35101	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35102	// the response.
35103	//
35104	// Possible values:
35105	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
35106	// changes made by a failed operation.
35107	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
35108	// created.
35109	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
35110	// resources has a type marked as deprecated
35111	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
35112	// that is larger than image size.
35113	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
35114	// resources has a type marked as experimental
35115	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
35116	// call
35117	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
35118	// overridden. Deprecated unused field.
35119	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
35120	// injected kernel, which is deprecated.
35121	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
35122	// exceedingly large number of resources
35123	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
35124	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
35125	// not assigned to an instance on the network.
35126	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
35127	// ip forward.
35128	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
35129	// refers to an instance that does not exist.
35130	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
35131	// URL refers to an instance that is not on the same network as the
35132	// route.
35133	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
35134	// have a status of RUNNING.
35135	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
35136	// continue the process despite the mentioned error.
35137	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
35138	// page.
35139	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
35140	// missing due to errors
35141	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
35142	// that requires a TOS they have not accepted.
35143	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
35144	// resource is in use.
35145	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
35146	// auto-delete could not be deleted because they were in use.
35147	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
35148	// ignored.
35149	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
35150	// instance group manager is valid as such, but its application does not
35151	// make a lot of sense, because it allows only single instance in
35152	// instance group.
35153	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
35154	// are present
35155	//   "UNREACHABLE" - A given scope cannot be reached.
35156	Code string `json:"code,omitempty"`
35157
35158	// Data: [Output Only] Metadata about this warning in key: value format.
35159	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
35160	// }
35161	Data []*ReservationListWarningData `json:"data,omitempty"`
35162
35163	// Message: [Output Only] A human-readable description of the warning
35164	// code.
35165	Message string `json:"message,omitempty"`
35166
35167	// ForceSendFields is a list of field names (e.g. "Code") to
35168	// unconditionally include in API requests. By default, fields with
35169	// empty or default values are omitted from API requests. However, any
35170	// non-pointer, non-interface field appearing in ForceSendFields will be
35171	// sent to the server regardless of whether the field is empty or not.
35172	// This may be used to include empty fields in Patch requests.
35173	ForceSendFields []string `json:"-"`
35174
35175	// NullFields is a list of field names (e.g. "Code") to include in API
35176	// requests with the JSON null value. By default, fields with empty
35177	// values are omitted from API requests. However, any field with an
35178	// empty value appearing in NullFields will be sent to the server as
35179	// null. It is an error if a field in this list has a non-empty value.
35180	// This may be used to include null fields in Patch requests.
35181	NullFields []string `json:"-"`
35182}
35183
35184func (s *ReservationListWarning) MarshalJSON() ([]byte, error) {
35185	type NoMethod ReservationListWarning
35186	raw := NoMethod(*s)
35187	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35188}
35189
35190type ReservationListWarningData struct {
35191	// Key: [Output Only] A key that provides more detail on the warning
35192	// being returned. For example, for warnings where there are no results
35193	// in a list request for a particular zone, this key might be scope and
35194	// the key value might be the zone name. Other examples might be a key
35195	// indicating a deprecated resource and a suggested replacement, or a
35196	// warning about invalid network settings (for example, if an instance
35197	// attempts to perform IP forwarding but is not enabled for IP
35198	// forwarding).
35199	Key string `json:"key,omitempty"`
35200
35201	// Value: [Output Only] A warning data value corresponding to the key.
35202	Value string `json:"value,omitempty"`
35203
35204	// ForceSendFields is a list of field names (e.g. "Key") to
35205	// unconditionally include in API requests. By default, fields with
35206	// empty or default values are omitted from API requests. However, any
35207	// non-pointer, non-interface field appearing in ForceSendFields will be
35208	// sent to the server regardless of whether the field is empty or not.
35209	// This may be used to include empty fields in Patch requests.
35210	ForceSendFields []string `json:"-"`
35211
35212	// NullFields is a list of field names (e.g. "Key") to include in API
35213	// requests with the JSON null value. By default, fields with empty
35214	// values are omitted from API requests. However, any field with an
35215	// empty value appearing in NullFields will be sent to the server as
35216	// null. It is an error if a field in this list has a non-empty value.
35217	// This may be used to include null fields in Patch requests.
35218	NullFields []string `json:"-"`
35219}
35220
35221func (s *ReservationListWarningData) MarshalJSON() ([]byte, error) {
35222	type NoMethod ReservationListWarningData
35223	raw := NoMethod(*s)
35224	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35225}
35226
35227type ReservationsResizeRequest struct {
35228	// SpecificSkuCount: Number of allocated resources can be resized with
35229	// minimum = 1 and maximum = 1000.
35230	SpecificSkuCount int64 `json:"specificSkuCount,omitempty,string"`
35231
35232	// ForceSendFields is a list of field names (e.g. "SpecificSkuCount") to
35233	// unconditionally include in API requests. By default, fields with
35234	// empty or default values are omitted from API requests. However, any
35235	// non-pointer, non-interface field appearing in ForceSendFields will be
35236	// sent to the server regardless of whether the field is empty or not.
35237	// This may be used to include empty fields in Patch requests.
35238	ForceSendFields []string `json:"-"`
35239
35240	// NullFields is a list of field names (e.g. "SpecificSkuCount") to
35241	// include in API requests with the JSON null value. By default, fields
35242	// with empty values are omitted from API requests. However, any field
35243	// with an empty value appearing in NullFields will be sent to the
35244	// server as null. It is an error if a field in this list has a
35245	// non-empty value. This may be used to include null fields in Patch
35246	// requests.
35247	NullFields []string `json:"-"`
35248}
35249
35250func (s *ReservationsResizeRequest) MarshalJSON() ([]byte, error) {
35251	type NoMethod ReservationsResizeRequest
35252	raw := NoMethod(*s)
35253	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35254}
35255
35256type ReservationsScopedList struct {
35257	// Reservations: A list of reservations contained in this scope.
35258	Reservations []*Reservation `json:"reservations,omitempty"`
35259
35260	// Warning: Informational warning which replaces the list of
35261	// reservations when the list is empty.
35262	Warning *ReservationsScopedListWarning `json:"warning,omitempty"`
35263
35264	// ForceSendFields is a list of field names (e.g. "Reservations") to
35265	// unconditionally include in API requests. By default, fields with
35266	// empty or default values are omitted from API requests. However, any
35267	// non-pointer, non-interface field appearing in ForceSendFields will be
35268	// sent to the server regardless of whether the field is empty or not.
35269	// This may be used to include empty fields in Patch requests.
35270	ForceSendFields []string `json:"-"`
35271
35272	// NullFields is a list of field names (e.g. "Reservations") to include
35273	// in API requests with the JSON null value. By default, fields with
35274	// empty values are omitted from API requests. However, any field with
35275	// an empty value appearing in NullFields will be sent to the server as
35276	// null. It is an error if a field in this list has a non-empty value.
35277	// This may be used to include null fields in Patch requests.
35278	NullFields []string `json:"-"`
35279}
35280
35281func (s *ReservationsScopedList) MarshalJSON() ([]byte, error) {
35282	type NoMethod ReservationsScopedList
35283	raw := NoMethod(*s)
35284	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35285}
35286
35287// ReservationsScopedListWarning: Informational warning which replaces
35288// the list of reservations when the list is empty.
35289type ReservationsScopedListWarning struct {
35290	// Code: [Output Only] A warning code, if applicable. For example,
35291	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35292	// the response.
35293	//
35294	// Possible values:
35295	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
35296	// changes made by a failed operation.
35297	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
35298	// created.
35299	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
35300	// resources has a type marked as deprecated
35301	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
35302	// that is larger than image size.
35303	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
35304	// resources has a type marked as experimental
35305	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
35306	// call
35307	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
35308	// overridden. Deprecated unused field.
35309	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
35310	// injected kernel, which is deprecated.
35311	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
35312	// exceedingly large number of resources
35313	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
35314	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
35315	// not assigned to an instance on the network.
35316	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
35317	// ip forward.
35318	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
35319	// refers to an instance that does not exist.
35320	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
35321	// URL refers to an instance that is not on the same network as the
35322	// route.
35323	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
35324	// have a status of RUNNING.
35325	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
35326	// continue the process despite the mentioned error.
35327	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
35328	// page.
35329	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
35330	// missing due to errors
35331	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
35332	// that requires a TOS they have not accepted.
35333	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
35334	// resource is in use.
35335	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
35336	// auto-delete could not be deleted because they were in use.
35337	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
35338	// ignored.
35339	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
35340	// instance group manager is valid as such, but its application does not
35341	// make a lot of sense, because it allows only single instance in
35342	// instance group.
35343	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
35344	// are present
35345	//   "UNREACHABLE" - A given scope cannot be reached.
35346	Code string `json:"code,omitempty"`
35347
35348	// Data: [Output Only] Metadata about this warning in key: value format.
35349	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
35350	// }
35351	Data []*ReservationsScopedListWarningData `json:"data,omitempty"`
35352
35353	// Message: [Output Only] A human-readable description of the warning
35354	// code.
35355	Message string `json:"message,omitempty"`
35356
35357	// ForceSendFields is a list of field names (e.g. "Code") to
35358	// unconditionally include in API requests. By default, fields with
35359	// empty or default values are omitted from API requests. However, any
35360	// non-pointer, non-interface field appearing in ForceSendFields will be
35361	// sent to the server regardless of whether the field is empty or not.
35362	// This may be used to include empty fields in Patch requests.
35363	ForceSendFields []string `json:"-"`
35364
35365	// NullFields is a list of field names (e.g. "Code") to include in API
35366	// requests with the JSON null value. By default, fields with empty
35367	// values are omitted from API requests. However, any field with an
35368	// empty value appearing in NullFields will be sent to the server as
35369	// null. It is an error if a field in this list has a non-empty value.
35370	// This may be used to include null fields in Patch requests.
35371	NullFields []string `json:"-"`
35372}
35373
35374func (s *ReservationsScopedListWarning) MarshalJSON() ([]byte, error) {
35375	type NoMethod ReservationsScopedListWarning
35376	raw := NoMethod(*s)
35377	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35378}
35379
35380type ReservationsScopedListWarningData struct {
35381	// Key: [Output Only] A key that provides more detail on the warning
35382	// being returned. For example, for warnings where there are no results
35383	// in a list request for a particular zone, this key might be scope and
35384	// the key value might be the zone name. Other examples might be a key
35385	// indicating a deprecated resource and a suggested replacement, or a
35386	// warning about invalid network settings (for example, if an instance
35387	// attempts to perform IP forwarding but is not enabled for IP
35388	// forwarding).
35389	Key string `json:"key,omitempty"`
35390
35391	// Value: [Output Only] A warning data value corresponding to the key.
35392	Value string `json:"value,omitempty"`
35393
35394	// ForceSendFields is a list of field names (e.g. "Key") to
35395	// unconditionally include in API requests. By default, fields with
35396	// empty or default values are omitted from API requests. However, any
35397	// non-pointer, non-interface field appearing in ForceSendFields will be
35398	// sent to the server regardless of whether the field is empty or not.
35399	// This may be used to include empty fields in Patch requests.
35400	ForceSendFields []string `json:"-"`
35401
35402	// NullFields is a list of field names (e.g. "Key") to include in API
35403	// requests with the JSON null value. By default, fields with empty
35404	// values are omitted from API requests. However, any field with an
35405	// empty value appearing in NullFields will be sent to the server as
35406	// null. It is an error if a field in this list has a non-empty value.
35407	// This may be used to include null fields in Patch requests.
35408	NullFields []string `json:"-"`
35409}
35410
35411func (s *ReservationsScopedListWarningData) MarshalJSON() ([]byte, error) {
35412	type NoMethod ReservationsScopedListWarningData
35413	raw := NoMethod(*s)
35414	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35415}
35416
35417// ResourceCommitment: Commitment for a particular resource (a
35418// Commitment is composed of one or more of these).
35419type ResourceCommitment struct {
35420	// AcceleratorType: Name of the accelerator type resource. Applicable
35421	// only when the type is ACCELERATOR.
35422	AcceleratorType string `json:"acceleratorType,omitempty"`
35423
35424	// Amount: The amount of the resource purchased (in a type-dependent
35425	// unit, such as bytes). For vCPUs, this can just be an integer. For
35426	// memory, this must be provided in MB. Memory must be a multiple of 256
35427	// MB, with up to 6.5GB of memory per every vCPU.
35428	Amount int64 `json:"amount,omitempty,string"`
35429
35430	// Type: Type of resource for which this commitment applies. Possible
35431	// values are VCPU and MEMORY
35432	//
35433	// Possible values:
35434	//   "ACCELERATOR"
35435	//   "LOCAL_SSD"
35436	//   "MEMORY"
35437	//   "UNSPECIFIED"
35438	//   "VCPU"
35439	Type string `json:"type,omitempty"`
35440
35441	// ForceSendFields is a list of field names (e.g. "AcceleratorType") to
35442	// unconditionally include in API requests. By default, fields with
35443	// empty or default values are omitted from API requests. However, any
35444	// non-pointer, non-interface field appearing in ForceSendFields will be
35445	// sent to the server regardless of whether the field is empty or not.
35446	// This may be used to include empty fields in Patch requests.
35447	ForceSendFields []string `json:"-"`
35448
35449	// NullFields is a list of field names (e.g. "AcceleratorType") to
35450	// include in API requests with the JSON null value. By default, fields
35451	// with empty values are omitted from API requests. However, any field
35452	// with an empty value appearing in NullFields will be sent to the
35453	// server as null. It is an error if a field in this list has a
35454	// non-empty value. This may be used to include null fields in Patch
35455	// requests.
35456	NullFields []string `json:"-"`
35457}
35458
35459func (s *ResourceCommitment) MarshalJSON() ([]byte, error) {
35460	type NoMethod ResourceCommitment
35461	raw := NoMethod(*s)
35462	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35463}
35464
35465type ResourceGroupReference struct {
35466	// Group: A URI referencing one of the instance groups or network
35467	// endpoint groups listed in the backend service.
35468	Group string `json:"group,omitempty"`
35469
35470	// ForceSendFields is a list of field names (e.g. "Group") to
35471	// unconditionally include in API requests. By default, fields with
35472	// empty or default values are omitted from API requests. However, any
35473	// non-pointer, non-interface field appearing in ForceSendFields will be
35474	// sent to the server regardless of whether the field is empty or not.
35475	// This may be used to include empty fields in Patch requests.
35476	ForceSendFields []string `json:"-"`
35477
35478	// NullFields is a list of field names (e.g. "Group") to include in API
35479	// requests with the JSON null value. By default, fields with empty
35480	// values are omitted from API requests. However, any field with an
35481	// empty value appearing in NullFields will be sent to the server as
35482	// null. It is an error if a field in this list has a non-empty value.
35483	// This may be used to include null fields in Patch requests.
35484	NullFields []string `json:"-"`
35485}
35486
35487func (s *ResourceGroupReference) MarshalJSON() ([]byte, error) {
35488	type NoMethod ResourceGroupReference
35489	raw := NoMethod(*s)
35490	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35491}
35492
35493type ResourcePoliciesScopedList struct {
35494	// ResourcePolicies: A list of resourcePolicies contained in this scope.
35495	ResourcePolicies []*ResourcePolicy `json:"resourcePolicies,omitempty"`
35496
35497	// Warning: Informational warning which replaces the list of
35498	// resourcePolicies when the list is empty.
35499	Warning *ResourcePoliciesScopedListWarning `json:"warning,omitempty"`
35500
35501	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
35502	// unconditionally include in API requests. By default, fields with
35503	// empty or default values are omitted from API requests. However, any
35504	// non-pointer, non-interface field appearing in ForceSendFields will be
35505	// sent to the server regardless of whether the field is empty or not.
35506	// This may be used to include empty fields in Patch requests.
35507	ForceSendFields []string `json:"-"`
35508
35509	// NullFields is a list of field names (e.g. "ResourcePolicies") to
35510	// include in API requests with the JSON null value. By default, fields
35511	// with empty values are omitted from API requests. However, any field
35512	// with an empty value appearing in NullFields will be sent to the
35513	// server as null. It is an error if a field in this list has a
35514	// non-empty value. This may be used to include null fields in Patch
35515	// requests.
35516	NullFields []string `json:"-"`
35517}
35518
35519func (s *ResourcePoliciesScopedList) MarshalJSON() ([]byte, error) {
35520	type NoMethod ResourcePoliciesScopedList
35521	raw := NoMethod(*s)
35522	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35523}
35524
35525// ResourcePoliciesScopedListWarning: Informational warning which
35526// replaces the list of resourcePolicies when the list is empty.
35527type ResourcePoliciesScopedListWarning struct {
35528	// Code: [Output Only] A warning code, if applicable. For example,
35529	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35530	// the response.
35531	//
35532	// Possible values:
35533	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
35534	// changes made by a failed operation.
35535	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
35536	// created.
35537	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
35538	// resources has a type marked as deprecated
35539	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
35540	// that is larger than image size.
35541	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
35542	// resources has a type marked as experimental
35543	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
35544	// call
35545	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
35546	// overridden. Deprecated unused field.
35547	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
35548	// injected kernel, which is deprecated.
35549	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
35550	// exceedingly large number of resources
35551	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
35552	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
35553	// not assigned to an instance on the network.
35554	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
35555	// ip forward.
35556	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
35557	// refers to an instance that does not exist.
35558	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
35559	// URL refers to an instance that is not on the same network as the
35560	// route.
35561	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
35562	// have a status of RUNNING.
35563	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
35564	// continue the process despite the mentioned error.
35565	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
35566	// page.
35567	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
35568	// missing due to errors
35569	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
35570	// that requires a TOS they have not accepted.
35571	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
35572	// resource is in use.
35573	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
35574	// auto-delete could not be deleted because they were in use.
35575	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
35576	// ignored.
35577	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
35578	// instance group manager is valid as such, but its application does not
35579	// make a lot of sense, because it allows only single instance in
35580	// instance group.
35581	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
35582	// are present
35583	//   "UNREACHABLE" - A given scope cannot be reached.
35584	Code string `json:"code,omitempty"`
35585
35586	// Data: [Output Only] Metadata about this warning in key: value format.
35587	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
35588	// }
35589	Data []*ResourcePoliciesScopedListWarningData `json:"data,omitempty"`
35590
35591	// Message: [Output Only] A human-readable description of the warning
35592	// code.
35593	Message string `json:"message,omitempty"`
35594
35595	// ForceSendFields is a list of field names (e.g. "Code") to
35596	// unconditionally include in API requests. By default, fields with
35597	// empty or default values are omitted from API requests. However, any
35598	// non-pointer, non-interface field appearing in ForceSendFields will be
35599	// sent to the server regardless of whether the field is empty or not.
35600	// This may be used to include empty fields in Patch requests.
35601	ForceSendFields []string `json:"-"`
35602
35603	// NullFields is a list of field names (e.g. "Code") to include in API
35604	// requests with the JSON null value. By default, fields with empty
35605	// values are omitted from API requests. However, any field with an
35606	// empty value appearing in NullFields will be sent to the server as
35607	// null. It is an error if a field in this list has a non-empty value.
35608	// This may be used to include null fields in Patch requests.
35609	NullFields []string `json:"-"`
35610}
35611
35612func (s *ResourcePoliciesScopedListWarning) MarshalJSON() ([]byte, error) {
35613	type NoMethod ResourcePoliciesScopedListWarning
35614	raw := NoMethod(*s)
35615	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35616}
35617
35618type ResourcePoliciesScopedListWarningData struct {
35619	// Key: [Output Only] A key that provides more detail on the warning
35620	// being returned. For example, for warnings where there are no results
35621	// in a list request for a particular zone, this key might be scope and
35622	// the key value might be the zone name. Other examples might be a key
35623	// indicating a deprecated resource and a suggested replacement, or a
35624	// warning about invalid network settings (for example, if an instance
35625	// attempts to perform IP forwarding but is not enabled for IP
35626	// forwarding).
35627	Key string `json:"key,omitempty"`
35628
35629	// Value: [Output Only] A warning data value corresponding to the key.
35630	Value string `json:"value,omitempty"`
35631
35632	// ForceSendFields is a list of field names (e.g. "Key") to
35633	// unconditionally include in API requests. By default, fields with
35634	// empty or default values are omitted from API requests. However, any
35635	// non-pointer, non-interface field appearing in ForceSendFields will be
35636	// sent to the server regardless of whether the field is empty or not.
35637	// This may be used to include empty fields in Patch requests.
35638	ForceSendFields []string `json:"-"`
35639
35640	// NullFields is a list of field names (e.g. "Key") to include in API
35641	// requests with the JSON null value. By default, fields with empty
35642	// values are omitted from API requests. However, any field with an
35643	// empty value appearing in NullFields will be sent to the server as
35644	// null. It is an error if a field in this list has a non-empty value.
35645	// This may be used to include null fields in Patch requests.
35646	NullFields []string `json:"-"`
35647}
35648
35649func (s *ResourcePoliciesScopedListWarningData) MarshalJSON() ([]byte, error) {
35650	type NoMethod ResourcePoliciesScopedListWarningData
35651	raw := NoMethod(*s)
35652	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35653}
35654
35655// ResourcePolicy: Represents a Resource Policy resource. You can use
35656// resource policies to schedule actions for some Compute Engine
35657// resources. For example, you can use them to schedule persistent disk
35658// snapshots.
35659type ResourcePolicy struct {
35660	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
35661	// format.
35662	CreationTimestamp string `json:"creationTimestamp,omitempty"`
35663
35664	Description string `json:"description,omitempty"`
35665
35666	// GroupPlacementPolicy: Resource policy for instances for placement
35667	// configuration.
35668	GroupPlacementPolicy *ResourcePolicyGroupPlacementPolicy `json:"groupPlacementPolicy,omitempty"`
35669
35670	// Id: [Output Only] The unique identifier for the resource. This
35671	// identifier is defined by the server.
35672	Id uint64 `json:"id,omitempty,string"`
35673
35674	// InstanceSchedulePolicy: Resource policy for scheduling instance
35675	// operations.
35676	InstanceSchedulePolicy *ResourcePolicyInstanceSchedulePolicy `json:"instanceSchedulePolicy,omitempty"`
35677
35678	// Kind: [Output Only] Type of the resource. Always
35679	// compute#resource_policies for resource policies.
35680	Kind string `json:"kind,omitempty"`
35681
35682	// Name: The name of the resource, provided by the client when initially
35683	// creating the resource. The resource name must be 1-63 characters
35684	// long, and comply with RFC1035. Specifically, the name must be 1-63
35685	// characters long and match the regular expression
35686	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
35687	// a lowercase letter, and all following characters must be a dash,
35688	// lowercase letter, or digit, except the last character, which cannot
35689	// be a dash.
35690	Name string `json:"name,omitempty"`
35691
35692	Region string `json:"region,omitempty"`
35693
35694	// ResourceStatus: [Output Only] The system status of the resource
35695	// policy.
35696	ResourceStatus *ResourcePolicyResourceStatus `json:"resourceStatus,omitempty"`
35697
35698	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
35699	// resource.
35700	SelfLink string `json:"selfLink,omitempty"`
35701
35702	// SnapshotSchedulePolicy: Resource policy for persistent disks for
35703	// creating snapshots.
35704	SnapshotSchedulePolicy *ResourcePolicySnapshotSchedulePolicy `json:"snapshotSchedulePolicy,omitempty"`
35705
35706	// Status: [Output Only] The status of resource policy creation.
35707	//
35708	// Possible values:
35709	//   "CREATING" - Resource policy is being created.
35710	//   "DELETING" - Resource policy is being deleted.
35711	//   "EXPIRED" - Resource policy is expired and will not run again.
35712	//   "INVALID"
35713	//   "READY" - Resource policy is ready to be used.
35714	Status string `json:"status,omitempty"`
35715
35716	// ServerResponse contains the HTTP response code and headers from the
35717	// server.
35718	googleapi.ServerResponse `json:"-"`
35719
35720	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
35721	// to unconditionally include in API requests. By default, fields with
35722	// empty or default values are omitted from API requests. However, any
35723	// non-pointer, non-interface field appearing in ForceSendFields will be
35724	// sent to the server regardless of whether the field is empty or not.
35725	// This may be used to include empty fields in Patch requests.
35726	ForceSendFields []string `json:"-"`
35727
35728	// NullFields is a list of field names (e.g. "CreationTimestamp") to
35729	// include in API requests with the JSON null value. By default, fields
35730	// with empty values are omitted from API requests. However, any field
35731	// with an empty value appearing in NullFields will be sent to the
35732	// server as null. It is an error if a field in this list has a
35733	// non-empty value. This may be used to include null fields in Patch
35734	// requests.
35735	NullFields []string `json:"-"`
35736}
35737
35738func (s *ResourcePolicy) MarshalJSON() ([]byte, error) {
35739	type NoMethod ResourcePolicy
35740	raw := NoMethod(*s)
35741	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35742}
35743
35744// ResourcePolicyAggregatedList: Contains a list of resourcePolicies.
35745type ResourcePolicyAggregatedList struct {
35746	Etag string `json:"etag,omitempty"`
35747
35748	// Id: [Output Only] Unique identifier for the resource; defined by the
35749	// server.
35750	Id string `json:"id,omitempty"`
35751
35752	// Items: A list of ResourcePolicy resources.
35753	Items map[string]ResourcePoliciesScopedList `json:"items,omitempty"`
35754
35755	// Kind: Type of resource.
35756	Kind string `json:"kind,omitempty"`
35757
35758	// NextPageToken: [Output Only] This token allows you to get the next
35759	// page of results for list requests. If the number of results is larger
35760	// than maxResults, use the nextPageToken as a value for the query
35761	// parameter pageToken in the next list request. Subsequent list
35762	// requests will have their own nextPageToken to continue paging through
35763	// the results.
35764	NextPageToken string `json:"nextPageToken,omitempty"`
35765
35766	// SelfLink: [Output Only] Server-defined URL for this resource.
35767	SelfLink string `json:"selfLink,omitempty"`
35768
35769	// Unreachables: [Output Only] Unreachable resources.
35770	Unreachables []string `json:"unreachables,omitempty"`
35771
35772	// Warning: [Output Only] Informational warning message.
35773	Warning *ResourcePolicyAggregatedListWarning `json:"warning,omitempty"`
35774
35775	// ServerResponse contains the HTTP response code and headers from the
35776	// server.
35777	googleapi.ServerResponse `json:"-"`
35778
35779	// ForceSendFields is a list of field names (e.g. "Etag") to
35780	// unconditionally include in API requests. By default, fields with
35781	// empty or default values are omitted from API requests. However, any
35782	// non-pointer, non-interface field appearing in ForceSendFields will be
35783	// sent to the server regardless of whether the field is empty or not.
35784	// This may be used to include empty fields in Patch requests.
35785	ForceSendFields []string `json:"-"`
35786
35787	// NullFields is a list of field names (e.g. "Etag") to include in API
35788	// requests with the JSON null value. By default, fields with empty
35789	// values are omitted from API requests. However, any field with an
35790	// empty value appearing in NullFields will be sent to the server as
35791	// null. It is an error if a field in this list has a non-empty value.
35792	// This may be used to include null fields in Patch requests.
35793	NullFields []string `json:"-"`
35794}
35795
35796func (s *ResourcePolicyAggregatedList) MarshalJSON() ([]byte, error) {
35797	type NoMethod ResourcePolicyAggregatedList
35798	raw := NoMethod(*s)
35799	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35800}
35801
35802// ResourcePolicyAggregatedListWarning: [Output Only] Informational
35803// warning message.
35804type ResourcePolicyAggregatedListWarning struct {
35805	// Code: [Output Only] A warning code, if applicable. For example,
35806	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35807	// the response.
35808	//
35809	// Possible values:
35810	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
35811	// changes made by a failed operation.
35812	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
35813	// created.
35814	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
35815	// resources has a type marked as deprecated
35816	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
35817	// that is larger than image size.
35818	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
35819	// resources has a type marked as experimental
35820	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
35821	// call
35822	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
35823	// overridden. Deprecated unused field.
35824	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
35825	// injected kernel, which is deprecated.
35826	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
35827	// exceedingly large number of resources
35828	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
35829	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
35830	// not assigned to an instance on the network.
35831	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
35832	// ip forward.
35833	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
35834	// refers to an instance that does not exist.
35835	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
35836	// URL refers to an instance that is not on the same network as the
35837	// route.
35838	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
35839	// have a status of RUNNING.
35840	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
35841	// continue the process despite the mentioned error.
35842	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
35843	// page.
35844	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
35845	// missing due to errors
35846	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
35847	// that requires a TOS they have not accepted.
35848	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
35849	// resource is in use.
35850	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
35851	// auto-delete could not be deleted because they were in use.
35852	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
35853	// ignored.
35854	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
35855	// instance group manager is valid as such, but its application does not
35856	// make a lot of sense, because it allows only single instance in
35857	// instance group.
35858	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
35859	// are present
35860	//   "UNREACHABLE" - A given scope cannot be reached.
35861	Code string `json:"code,omitempty"`
35862
35863	// Data: [Output Only] Metadata about this warning in key: value format.
35864	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
35865	// }
35866	Data []*ResourcePolicyAggregatedListWarningData `json:"data,omitempty"`
35867
35868	// Message: [Output Only] A human-readable description of the warning
35869	// code.
35870	Message string `json:"message,omitempty"`
35871
35872	// ForceSendFields is a list of field names (e.g. "Code") to
35873	// unconditionally include in API requests. By default, fields with
35874	// empty or default values are omitted from API requests. However, any
35875	// non-pointer, non-interface field appearing in ForceSendFields will be
35876	// sent to the server regardless of whether the field is empty or not.
35877	// This may be used to include empty fields in Patch requests.
35878	ForceSendFields []string `json:"-"`
35879
35880	// NullFields is a list of field names (e.g. "Code") to include in API
35881	// requests with the JSON null value. By default, fields with empty
35882	// values are omitted from API requests. However, any field with an
35883	// empty value appearing in NullFields will be sent to the server as
35884	// null. It is an error if a field in this list has a non-empty value.
35885	// This may be used to include null fields in Patch requests.
35886	NullFields []string `json:"-"`
35887}
35888
35889func (s *ResourcePolicyAggregatedListWarning) MarshalJSON() ([]byte, error) {
35890	type NoMethod ResourcePolicyAggregatedListWarning
35891	raw := NoMethod(*s)
35892	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35893}
35894
35895type ResourcePolicyAggregatedListWarningData struct {
35896	// Key: [Output Only] A key that provides more detail on the warning
35897	// being returned. For example, for warnings where there are no results
35898	// in a list request for a particular zone, this key might be scope and
35899	// the key value might be the zone name. Other examples might be a key
35900	// indicating a deprecated resource and a suggested replacement, or a
35901	// warning about invalid network settings (for example, if an instance
35902	// attempts to perform IP forwarding but is not enabled for IP
35903	// forwarding).
35904	Key string `json:"key,omitempty"`
35905
35906	// Value: [Output Only] A warning data value corresponding to the key.
35907	Value string `json:"value,omitempty"`
35908
35909	// ForceSendFields is a list of field names (e.g. "Key") to
35910	// unconditionally include in API requests. By default, fields with
35911	// empty or default values are omitted from API requests. However, any
35912	// non-pointer, non-interface field appearing in ForceSendFields will be
35913	// sent to the server regardless of whether the field is empty or not.
35914	// This may be used to include empty fields in Patch requests.
35915	ForceSendFields []string `json:"-"`
35916
35917	// NullFields is a list of field names (e.g. "Key") to include in API
35918	// requests with the JSON null value. By default, fields with empty
35919	// values are omitted from API requests. However, any field with an
35920	// empty value appearing in NullFields will be sent to the server as
35921	// null. It is an error if a field in this list has a non-empty value.
35922	// This may be used to include null fields in Patch requests.
35923	NullFields []string `json:"-"`
35924}
35925
35926func (s *ResourcePolicyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
35927	type NoMethod ResourcePolicyAggregatedListWarningData
35928	raw := NoMethod(*s)
35929	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35930}
35931
35932// ResourcePolicyDailyCycle: Time window specified for daily operations.
35933type ResourcePolicyDailyCycle struct {
35934	// DaysInCycle: Defines a schedule with units measured in months. The
35935	// value determines how many months pass between the start of each
35936	// cycle.
35937	DaysInCycle int64 `json:"daysInCycle,omitempty"`
35938
35939	// Duration: [Output only] A predetermined duration for the window,
35940	// automatically chosen to be the smallest possible in the given
35941	// scenario.
35942	Duration string `json:"duration,omitempty"`
35943
35944	// StartTime: Start time of the window. This must be in UTC format that
35945	// resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For
35946	// example, both 13:00-5 and 08:00 are valid.
35947	StartTime string `json:"startTime,omitempty"`
35948
35949	// ForceSendFields is a list of field names (e.g. "DaysInCycle") to
35950	// unconditionally include in API requests. By default, fields with
35951	// empty or default values are omitted from API requests. However, any
35952	// non-pointer, non-interface field appearing in ForceSendFields will be
35953	// sent to the server regardless of whether the field is empty or not.
35954	// This may be used to include empty fields in Patch requests.
35955	ForceSendFields []string `json:"-"`
35956
35957	// NullFields is a list of field names (e.g. "DaysInCycle") to include
35958	// in API requests with the JSON null value. By default, fields with
35959	// empty values are omitted from API requests. However, any field with
35960	// an empty value appearing in NullFields will be sent to the server as
35961	// null. It is an error if a field in this list has a non-empty value.
35962	// This may be used to include null fields in Patch requests.
35963	NullFields []string `json:"-"`
35964}
35965
35966func (s *ResourcePolicyDailyCycle) MarshalJSON() ([]byte, error) {
35967	type NoMethod ResourcePolicyDailyCycle
35968	raw := NoMethod(*s)
35969	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35970}
35971
35972// ResourcePolicyGroupPlacementPolicy: A GroupPlacementPolicy specifies
35973// resource placement configuration. It specifies the failure bucket
35974// separation as well as network locality
35975type ResourcePolicyGroupPlacementPolicy struct {
35976	// AvailabilityDomainCount: The number of availability domains instances
35977	// will be spread across. If two instances are in different availability
35978	// domain, they will not be put in the same low latency network
35979	AvailabilityDomainCount int64 `json:"availabilityDomainCount,omitempty"`
35980
35981	// Collocation: Specifies network collocation
35982	//
35983	// Possible values:
35984	//   "COLLOCATED"
35985	//   "UNSPECIFIED_COLLOCATION"
35986	Collocation string `json:"collocation,omitempty"`
35987
35988	// VmCount: Number of vms in this placement group
35989	VmCount int64 `json:"vmCount,omitempty"`
35990
35991	// ForceSendFields is a list of field names (e.g.
35992	// "AvailabilityDomainCount") to unconditionally include in API
35993	// requests. By default, fields with empty or default values are omitted
35994	// from API requests. However, any non-pointer, non-interface field
35995	// appearing in ForceSendFields will be sent to the server regardless of
35996	// whether the field is empty or not. This may be used to include empty
35997	// fields in Patch requests.
35998	ForceSendFields []string `json:"-"`
35999
36000	// NullFields is a list of field names (e.g. "AvailabilityDomainCount")
36001	// to include in API requests with the JSON null value. By default,
36002	// fields with empty values are omitted from API requests. However, any
36003	// field with an empty value appearing in NullFields will be sent to the
36004	// server as null. It is an error if a field in this list has a
36005	// non-empty value. This may be used to include null fields in Patch
36006	// requests.
36007	NullFields []string `json:"-"`
36008}
36009
36010func (s *ResourcePolicyGroupPlacementPolicy) MarshalJSON() ([]byte, error) {
36011	type NoMethod ResourcePolicyGroupPlacementPolicy
36012	raw := NoMethod(*s)
36013	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36014}
36015
36016// ResourcePolicyHourlyCycle: Time window specified for hourly
36017// operations.
36018type ResourcePolicyHourlyCycle struct {
36019	// Duration: [Output only] Duration of the time window, automatically
36020	// chosen to be smallest possible in the given scenario.
36021	Duration string `json:"duration,omitempty"`
36022
36023	// HoursInCycle: Defines a schedule with units measured in hours. The
36024	// value determines how many hours pass between the start of each cycle.
36025	HoursInCycle int64 `json:"hoursInCycle,omitempty"`
36026
36027	// StartTime: Time within the window to start the operations. It must be
36028	// in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT.
36029	StartTime string `json:"startTime,omitempty"`
36030
36031	// ForceSendFields is a list of field names (e.g. "Duration") to
36032	// unconditionally include in API requests. By default, fields with
36033	// empty or default values are omitted from API requests. However, any
36034	// non-pointer, non-interface field appearing in ForceSendFields will be
36035	// sent to the server regardless of whether the field is empty or not.
36036	// This may be used to include empty fields in Patch requests.
36037	ForceSendFields []string `json:"-"`
36038
36039	// NullFields is a list of field names (e.g. "Duration") to include in
36040	// API requests with the JSON null value. By default, fields with empty
36041	// values are omitted from API requests. However, any field with an
36042	// empty value appearing in NullFields will be sent to the server as
36043	// null. It is an error if a field in this list has a non-empty value.
36044	// This may be used to include null fields in Patch requests.
36045	NullFields []string `json:"-"`
36046}
36047
36048func (s *ResourcePolicyHourlyCycle) MarshalJSON() ([]byte, error) {
36049	type NoMethod ResourcePolicyHourlyCycle
36050	raw := NoMethod(*s)
36051	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36052}
36053
36054// ResourcePolicyInstanceSchedulePolicy: An InstanceSchedulePolicy
36055// specifies when and how frequent certain operations are performed on
36056// the instance.
36057type ResourcePolicyInstanceSchedulePolicy struct {
36058	// ExpirationTime: The expiration time of the schedule. The timestamp is
36059	// an RFC3339 string.
36060	ExpirationTime string `json:"expirationTime,omitempty"`
36061
36062	// StartTime: The start time of the schedule. The timestamp is an
36063	// RFC3339 string.
36064	StartTime string `json:"startTime,omitempty"`
36065
36066	// TimeZone: Specifies the time zone to be used in interpreting
36067	// Schedule.schedule. The value of this field must be a time zone name
36068	// from the tz database: http://en.wikipedia.org/wiki/Tz_database.
36069	TimeZone string `json:"timeZone,omitempty"`
36070
36071	// VmStartSchedule: Specifies the schedule for starting instances.
36072	VmStartSchedule *ResourcePolicyInstanceSchedulePolicySchedule `json:"vmStartSchedule,omitempty"`
36073
36074	// VmStopSchedule: Specifies the schedule for stopping instances.
36075	VmStopSchedule *ResourcePolicyInstanceSchedulePolicySchedule `json:"vmStopSchedule,omitempty"`
36076
36077	// ForceSendFields is a list of field names (e.g. "ExpirationTime") to
36078	// unconditionally include in API requests. By default, fields with
36079	// empty or default values are omitted from API requests. However, any
36080	// non-pointer, non-interface field appearing in ForceSendFields will be
36081	// sent to the server regardless of whether the field is empty or not.
36082	// This may be used to include empty fields in Patch requests.
36083	ForceSendFields []string `json:"-"`
36084
36085	// NullFields is a list of field names (e.g. "ExpirationTime") to
36086	// include in API requests with the JSON null value. By default, fields
36087	// with empty values are omitted from API requests. However, any field
36088	// with an empty value appearing in NullFields will be sent to the
36089	// server as null. It is an error if a field in this list has a
36090	// non-empty value. This may be used to include null fields in Patch
36091	// requests.
36092	NullFields []string `json:"-"`
36093}
36094
36095func (s *ResourcePolicyInstanceSchedulePolicy) MarshalJSON() ([]byte, error) {
36096	type NoMethod ResourcePolicyInstanceSchedulePolicy
36097	raw := NoMethod(*s)
36098	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36099}
36100
36101// ResourcePolicyInstanceSchedulePolicySchedule: Schedule for an
36102// instance operation.
36103type ResourcePolicyInstanceSchedulePolicySchedule struct {
36104	// Schedule: Specifies the frequency for the operation, using the
36105	// unix-cron format.
36106	Schedule string `json:"schedule,omitempty"`
36107
36108	// ForceSendFields is a list of field names (e.g. "Schedule") to
36109	// unconditionally include in API requests. By default, fields with
36110	// empty or default values are omitted from API requests. However, any
36111	// non-pointer, non-interface field appearing in ForceSendFields will be
36112	// sent to the server regardless of whether the field is empty or not.
36113	// This may be used to include empty fields in Patch requests.
36114	ForceSendFields []string `json:"-"`
36115
36116	// NullFields is a list of field names (e.g. "Schedule") to include in
36117	// API requests with the JSON null value. By default, fields with empty
36118	// values are omitted from API requests. However, any field with an
36119	// empty value appearing in NullFields will be sent to the server as
36120	// null. It is an error if a field in this list has a non-empty value.
36121	// This may be used to include null fields in Patch requests.
36122	NullFields []string `json:"-"`
36123}
36124
36125func (s *ResourcePolicyInstanceSchedulePolicySchedule) MarshalJSON() ([]byte, error) {
36126	type NoMethod ResourcePolicyInstanceSchedulePolicySchedule
36127	raw := NoMethod(*s)
36128	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36129}
36130
36131type ResourcePolicyList struct {
36132	Etag string `json:"etag,omitempty"`
36133
36134	// Id: [Output Only] The unique identifier for the resource. This
36135	// identifier is defined by the server.
36136	Id string `json:"id,omitempty"`
36137
36138	// Items: [Output Only] A list of ResourcePolicy resources.
36139	Items []*ResourcePolicy `json:"items,omitempty"`
36140
36141	// Kind: [Output Only] Type of resource.Always
36142	// compute#resourcePoliciesList for listsof resourcePolicies
36143	Kind string `json:"kind,omitempty"`
36144
36145	// NextPageToken: [Output Only] This token allows you to get the next
36146	// page of results for list requests. If the number of results is larger
36147	// than maxResults, use the nextPageToken as a value for the query
36148	// parameter pageToken in the next list request. Subsequent list
36149	// requests will have their own nextPageToken to continue paging through
36150	// the results.
36151	NextPageToken string `json:"nextPageToken,omitempty"`
36152
36153	// SelfLink: [Output Only] Server-defined URL for this resource.
36154	SelfLink string `json:"selfLink,omitempty"`
36155
36156	// Warning: [Output Only] Informational warning message.
36157	Warning *ResourcePolicyListWarning `json:"warning,omitempty"`
36158
36159	// ServerResponse contains the HTTP response code and headers from the
36160	// server.
36161	googleapi.ServerResponse `json:"-"`
36162
36163	// ForceSendFields is a list of field names (e.g. "Etag") to
36164	// unconditionally include in API requests. By default, fields with
36165	// empty or default values are omitted from API requests. However, any
36166	// non-pointer, non-interface field appearing in ForceSendFields will be
36167	// sent to the server regardless of whether the field is empty or not.
36168	// This may be used to include empty fields in Patch requests.
36169	ForceSendFields []string `json:"-"`
36170
36171	// NullFields is a list of field names (e.g. "Etag") to include in API
36172	// requests with the JSON null value. By default, fields with empty
36173	// values are omitted from API requests. However, any field with an
36174	// empty value appearing in NullFields will be sent to the server as
36175	// null. It is an error if a field in this list has a non-empty value.
36176	// This may be used to include null fields in Patch requests.
36177	NullFields []string `json:"-"`
36178}
36179
36180func (s *ResourcePolicyList) MarshalJSON() ([]byte, error) {
36181	type NoMethod ResourcePolicyList
36182	raw := NoMethod(*s)
36183	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36184}
36185
36186// ResourcePolicyListWarning: [Output Only] Informational warning
36187// message.
36188type ResourcePolicyListWarning struct {
36189	// Code: [Output Only] A warning code, if applicable. For example,
36190	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36191	// the response.
36192	//
36193	// Possible values:
36194	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
36195	// changes made by a failed operation.
36196	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
36197	// created.
36198	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
36199	// resources has a type marked as deprecated
36200	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
36201	// that is larger than image size.
36202	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
36203	// resources has a type marked as experimental
36204	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
36205	// call
36206	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
36207	// overridden. Deprecated unused field.
36208	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
36209	// injected kernel, which is deprecated.
36210	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
36211	// exceedingly large number of resources
36212	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
36213	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
36214	// not assigned to an instance on the network.
36215	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
36216	// ip forward.
36217	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
36218	// refers to an instance that does not exist.
36219	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
36220	// URL refers to an instance that is not on the same network as the
36221	// route.
36222	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
36223	// have a status of RUNNING.
36224	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
36225	// continue the process despite the mentioned error.
36226	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
36227	// page.
36228	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
36229	// missing due to errors
36230	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
36231	// that requires a TOS they have not accepted.
36232	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
36233	// resource is in use.
36234	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
36235	// auto-delete could not be deleted because they were in use.
36236	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
36237	// ignored.
36238	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
36239	// instance group manager is valid as such, but its application does not
36240	// make a lot of sense, because it allows only single instance in
36241	// instance group.
36242	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
36243	// are present
36244	//   "UNREACHABLE" - A given scope cannot be reached.
36245	Code string `json:"code,omitempty"`
36246
36247	// Data: [Output Only] Metadata about this warning in key: value format.
36248	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
36249	// }
36250	Data []*ResourcePolicyListWarningData `json:"data,omitempty"`
36251
36252	// Message: [Output Only] A human-readable description of the warning
36253	// code.
36254	Message string `json:"message,omitempty"`
36255
36256	// ForceSendFields is a list of field names (e.g. "Code") to
36257	// unconditionally include in API requests. By default, fields with
36258	// empty or default values are omitted from API requests. However, any
36259	// non-pointer, non-interface field appearing in ForceSendFields will be
36260	// sent to the server regardless of whether the field is empty or not.
36261	// This may be used to include empty fields in Patch requests.
36262	ForceSendFields []string `json:"-"`
36263
36264	// NullFields is a list of field names (e.g. "Code") to include in API
36265	// requests with the JSON null value. By default, fields with empty
36266	// values are omitted from API requests. However, any field with an
36267	// empty value appearing in NullFields will be sent to the server as
36268	// null. It is an error if a field in this list has a non-empty value.
36269	// This may be used to include null fields in Patch requests.
36270	NullFields []string `json:"-"`
36271}
36272
36273func (s *ResourcePolicyListWarning) MarshalJSON() ([]byte, error) {
36274	type NoMethod ResourcePolicyListWarning
36275	raw := NoMethod(*s)
36276	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36277}
36278
36279type ResourcePolicyListWarningData struct {
36280	// Key: [Output Only] A key that provides more detail on the warning
36281	// being returned. For example, for warnings where there are no results
36282	// in a list request for a particular zone, this key might be scope and
36283	// the key value might be the zone name. Other examples might be a key
36284	// indicating a deprecated resource and a suggested replacement, or a
36285	// warning about invalid network settings (for example, if an instance
36286	// attempts to perform IP forwarding but is not enabled for IP
36287	// forwarding).
36288	Key string `json:"key,omitempty"`
36289
36290	// Value: [Output Only] A warning data value corresponding to the key.
36291	Value string `json:"value,omitempty"`
36292
36293	// ForceSendFields is a list of field names (e.g. "Key") to
36294	// unconditionally include in API requests. By default, fields with
36295	// empty or default values are omitted from API requests. However, any
36296	// non-pointer, non-interface field appearing in ForceSendFields will be
36297	// sent to the server regardless of whether the field is empty or not.
36298	// This may be used to include empty fields in Patch requests.
36299	ForceSendFields []string `json:"-"`
36300
36301	// NullFields is a list of field names (e.g. "Key") to include in API
36302	// requests with the JSON null value. By default, fields with empty
36303	// values are omitted from API requests. However, any field with an
36304	// empty value appearing in NullFields will be sent to the server as
36305	// null. It is an error if a field in this list has a non-empty value.
36306	// This may be used to include null fields in Patch requests.
36307	NullFields []string `json:"-"`
36308}
36309
36310func (s *ResourcePolicyListWarningData) MarshalJSON() ([]byte, error) {
36311	type NoMethod ResourcePolicyListWarningData
36312	raw := NoMethod(*s)
36313	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36314}
36315
36316// ResourcePolicyResourceStatus: Contains output only fields. Use this
36317// sub-message for all output fields set on ResourcePolicy. The internal
36318// structure of this "status" field should mimic the structure of
36319// ResourcePolicy proto specification.
36320type ResourcePolicyResourceStatus struct {
36321	// InstanceSchedulePolicy: [Output Only] Specifies a set of output
36322	// values reffering to the instance_schedule_policy system status. This
36323	// field should have the same name as corresponding policy field.
36324	InstanceSchedulePolicy *ResourcePolicyResourceStatusInstanceSchedulePolicyStatus `json:"instanceSchedulePolicy,omitempty"`
36325
36326	// ForceSendFields is a list of field names (e.g.
36327	// "InstanceSchedulePolicy") to unconditionally include in API requests.
36328	// By default, fields with empty or default values are omitted from API
36329	// requests. However, any non-pointer, non-interface field appearing in
36330	// ForceSendFields will be sent to the server regardless of whether the
36331	// field is empty or not. This may be used to include empty fields in
36332	// Patch requests.
36333	ForceSendFields []string `json:"-"`
36334
36335	// NullFields is a list of field names (e.g. "InstanceSchedulePolicy")
36336	// to include in API requests with the JSON null value. By default,
36337	// fields with empty values are omitted from API requests. However, any
36338	// field with an empty value appearing in NullFields will be sent to the
36339	// server as null. It is an error if a field in this list has a
36340	// non-empty value. This may be used to include null fields in Patch
36341	// requests.
36342	NullFields []string `json:"-"`
36343}
36344
36345func (s *ResourcePolicyResourceStatus) MarshalJSON() ([]byte, error) {
36346	type NoMethod ResourcePolicyResourceStatus
36347	raw := NoMethod(*s)
36348	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36349}
36350
36351type ResourcePolicyResourceStatusInstanceSchedulePolicyStatus struct {
36352	// LastRunStartTime: [Output Only] The last time the schedule
36353	// successfully ran. The timestamp is an RFC3339 string.
36354	LastRunStartTime string `json:"lastRunStartTime,omitempty"`
36355
36356	// NextRunStartTime: [Output Only] The next time the schedule is planned
36357	// to run. The actual time might be slightly different. The timestamp is
36358	// an RFC3339 string.
36359	NextRunStartTime string `json:"nextRunStartTime,omitempty"`
36360
36361	// ForceSendFields is a list of field names (e.g. "LastRunStartTime") to
36362	// unconditionally include in API requests. By default, fields with
36363	// empty or default values are omitted from API requests. However, any
36364	// non-pointer, non-interface field appearing in ForceSendFields will be
36365	// sent to the server regardless of whether the field is empty or not.
36366	// This may be used to include empty fields in Patch requests.
36367	ForceSendFields []string `json:"-"`
36368
36369	// NullFields is a list of field names (e.g. "LastRunStartTime") to
36370	// include in API requests with the JSON null value. By default, fields
36371	// with empty values are omitted from API requests. However, any field
36372	// with an empty value appearing in NullFields will be sent to the
36373	// server as null. It is an error if a field in this list has a
36374	// non-empty value. This may be used to include null fields in Patch
36375	// requests.
36376	NullFields []string `json:"-"`
36377}
36378
36379func (s *ResourcePolicyResourceStatusInstanceSchedulePolicyStatus) MarshalJSON() ([]byte, error) {
36380	type NoMethod ResourcePolicyResourceStatusInstanceSchedulePolicyStatus
36381	raw := NoMethod(*s)
36382	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36383}
36384
36385// ResourcePolicySnapshotSchedulePolicy: A snapshot schedule policy
36386// specifies when and how frequently snapshots are to be created for the
36387// target disk. Also specifies how many and how long these scheduled
36388// snapshots should be retained.
36389type ResourcePolicySnapshotSchedulePolicy struct {
36390	// RetentionPolicy: Retention policy applied to snapshots created by
36391	// this resource policy.
36392	RetentionPolicy *ResourcePolicySnapshotSchedulePolicyRetentionPolicy `json:"retentionPolicy,omitempty"`
36393
36394	// Schedule: A Vm Maintenance Policy specifies what kind of
36395	// infrastructure maintenance we are allowed to perform on this VM and
36396	// when. Schedule that is applied to disks covered by this policy.
36397	Schedule *ResourcePolicySnapshotSchedulePolicySchedule `json:"schedule,omitempty"`
36398
36399	// SnapshotProperties: Properties with which snapshots are created such
36400	// as labels, encryption keys.
36401	SnapshotProperties *ResourcePolicySnapshotSchedulePolicySnapshotProperties `json:"snapshotProperties,omitempty"`
36402
36403	// ForceSendFields is a list of field names (e.g. "RetentionPolicy") to
36404	// unconditionally include in API requests. By default, fields with
36405	// empty or default values are omitted from API requests. However, any
36406	// non-pointer, non-interface field appearing in ForceSendFields will be
36407	// sent to the server regardless of whether the field is empty or not.
36408	// This may be used to include empty fields in Patch requests.
36409	ForceSendFields []string `json:"-"`
36410
36411	// NullFields is a list of field names (e.g. "RetentionPolicy") to
36412	// include in API requests with the JSON null value. By default, fields
36413	// with empty values are omitted from API requests. However, any field
36414	// with an empty value appearing in NullFields will be sent to the
36415	// server as null. It is an error if a field in this list has a
36416	// non-empty value. This may be used to include null fields in Patch
36417	// requests.
36418	NullFields []string `json:"-"`
36419}
36420
36421func (s *ResourcePolicySnapshotSchedulePolicy) MarshalJSON() ([]byte, error) {
36422	type NoMethod ResourcePolicySnapshotSchedulePolicy
36423	raw := NoMethod(*s)
36424	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36425}
36426
36427// ResourcePolicySnapshotSchedulePolicyRetentionPolicy: Policy for
36428// retention of scheduled snapshots.
36429type ResourcePolicySnapshotSchedulePolicyRetentionPolicy struct {
36430	// MaxRetentionDays: Maximum age of the snapshot that is allowed to be
36431	// kept.
36432	MaxRetentionDays int64 `json:"maxRetentionDays,omitempty"`
36433
36434	// OnSourceDiskDelete: Specifies the behavior to apply to scheduled
36435	// snapshots when the source disk is deleted.
36436	//
36437	// Possible values:
36438	//   "APPLY_RETENTION_POLICY"
36439	//   "KEEP_AUTO_SNAPSHOTS"
36440	//   "UNSPECIFIED_ON_SOURCE_DISK_DELETE"
36441	OnSourceDiskDelete string `json:"onSourceDiskDelete,omitempty"`
36442
36443	// ForceSendFields is a list of field names (e.g. "MaxRetentionDays") to
36444	// unconditionally include in API requests. By default, fields with
36445	// empty or default values are omitted from API requests. However, any
36446	// non-pointer, non-interface field appearing in ForceSendFields will be
36447	// sent to the server regardless of whether the field is empty or not.
36448	// This may be used to include empty fields in Patch requests.
36449	ForceSendFields []string `json:"-"`
36450
36451	// NullFields is a list of field names (e.g. "MaxRetentionDays") to
36452	// include in API requests with the JSON null value. By default, fields
36453	// with empty values are omitted from API requests. However, any field
36454	// with an empty value appearing in NullFields will be sent to the
36455	// server as null. It is an error if a field in this list has a
36456	// non-empty value. This may be used to include null fields in Patch
36457	// requests.
36458	NullFields []string `json:"-"`
36459}
36460
36461func (s *ResourcePolicySnapshotSchedulePolicyRetentionPolicy) MarshalJSON() ([]byte, error) {
36462	type NoMethod ResourcePolicySnapshotSchedulePolicyRetentionPolicy
36463	raw := NoMethod(*s)
36464	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36465}
36466
36467// ResourcePolicySnapshotSchedulePolicySchedule: A schedule for disks
36468// where the schedueled operations are performed.
36469type ResourcePolicySnapshotSchedulePolicySchedule struct {
36470	DailySchedule *ResourcePolicyDailyCycle `json:"dailySchedule,omitempty"`
36471
36472	HourlySchedule *ResourcePolicyHourlyCycle `json:"hourlySchedule,omitempty"`
36473
36474	WeeklySchedule *ResourcePolicyWeeklyCycle `json:"weeklySchedule,omitempty"`
36475
36476	// ForceSendFields is a list of field names (e.g. "DailySchedule") to
36477	// unconditionally include in API requests. By default, fields with
36478	// empty or default values are omitted from API requests. However, any
36479	// non-pointer, non-interface field appearing in ForceSendFields will be
36480	// sent to the server regardless of whether the field is empty or not.
36481	// This may be used to include empty fields in Patch requests.
36482	ForceSendFields []string `json:"-"`
36483
36484	// NullFields is a list of field names (e.g. "DailySchedule") to include
36485	// in API requests with the JSON null value. By default, fields with
36486	// empty values are omitted from API requests. However, any field with
36487	// an empty value appearing in NullFields will be sent to the server as
36488	// null. It is an error if a field in this list has a non-empty value.
36489	// This may be used to include null fields in Patch requests.
36490	NullFields []string `json:"-"`
36491}
36492
36493func (s *ResourcePolicySnapshotSchedulePolicySchedule) MarshalJSON() ([]byte, error) {
36494	type NoMethod ResourcePolicySnapshotSchedulePolicySchedule
36495	raw := NoMethod(*s)
36496	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36497}
36498
36499// ResourcePolicySnapshotSchedulePolicySnapshotProperties: Specified
36500// snapshot properties for scheduled snapshots created by this policy.
36501type ResourcePolicySnapshotSchedulePolicySnapshotProperties struct {
36502	// ChainName: Chain name that the snapshot is created in.
36503	ChainName string `json:"chainName,omitempty"`
36504
36505	// GuestFlush: Indication to perform a 'guest aware' snapshot.
36506	GuestFlush bool `json:"guestFlush,omitempty"`
36507
36508	// Labels: Labels to apply to scheduled snapshots. These can be later
36509	// modified by the setLabels method. Label values may be empty.
36510	Labels map[string]string `json:"labels,omitempty"`
36511
36512	// StorageLocations: Cloud Storage bucket storage location of the auto
36513	// snapshot (regional or multi-regional).
36514	StorageLocations []string `json:"storageLocations,omitempty"`
36515
36516	// ForceSendFields is a list of field names (e.g. "ChainName") to
36517	// unconditionally include in API requests. By default, fields with
36518	// empty or default values are omitted from API requests. However, any
36519	// non-pointer, non-interface field appearing in ForceSendFields will be
36520	// sent to the server regardless of whether the field is empty or not.
36521	// This may be used to include empty fields in Patch requests.
36522	ForceSendFields []string `json:"-"`
36523
36524	// NullFields is a list of field names (e.g. "ChainName") to include in
36525	// API requests with the JSON null value. By default, fields with empty
36526	// values are omitted from API requests. However, any field with an
36527	// empty value appearing in NullFields will be sent to the server as
36528	// null. It is an error if a field in this list has a non-empty value.
36529	// This may be used to include null fields in Patch requests.
36530	NullFields []string `json:"-"`
36531}
36532
36533func (s *ResourcePolicySnapshotSchedulePolicySnapshotProperties) MarshalJSON() ([]byte, error) {
36534	type NoMethod ResourcePolicySnapshotSchedulePolicySnapshotProperties
36535	raw := NoMethod(*s)
36536	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36537}
36538
36539// ResourcePolicyWeeklyCycle: Time window specified for weekly
36540// operations.
36541type ResourcePolicyWeeklyCycle struct {
36542	// DayOfWeeks: Up to 7 intervals/windows, one for each day of the week.
36543	DayOfWeeks []*ResourcePolicyWeeklyCycleDayOfWeek `json:"dayOfWeeks,omitempty"`
36544
36545	// ForceSendFields is a list of field names (e.g. "DayOfWeeks") to
36546	// unconditionally include in API requests. By default, fields with
36547	// empty or default values are omitted from API requests. However, any
36548	// non-pointer, non-interface field appearing in ForceSendFields will be
36549	// sent to the server regardless of whether the field is empty or not.
36550	// This may be used to include empty fields in Patch requests.
36551	ForceSendFields []string `json:"-"`
36552
36553	// NullFields is a list of field names (e.g. "DayOfWeeks") to include in
36554	// API requests with the JSON null value. By default, fields with empty
36555	// values are omitted from API requests. However, any field with an
36556	// empty value appearing in NullFields will be sent to the server as
36557	// null. It is an error if a field in this list has a non-empty value.
36558	// This may be used to include null fields in Patch requests.
36559	NullFields []string `json:"-"`
36560}
36561
36562func (s *ResourcePolicyWeeklyCycle) MarshalJSON() ([]byte, error) {
36563	type NoMethod ResourcePolicyWeeklyCycle
36564	raw := NoMethod(*s)
36565	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36566}
36567
36568type ResourcePolicyWeeklyCycleDayOfWeek struct {
36569	// Day: Defines a schedule that runs on specific days of the week.
36570	// Specify one or more days. The following options are available:
36571	// MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.
36572	//
36573	// Possible values:
36574	//   "FRIDAY"
36575	//   "INVALID"
36576	//   "MONDAY"
36577	//   "SATURDAY"
36578	//   "SUNDAY"
36579	//   "THURSDAY"
36580	//   "TUESDAY"
36581	//   "WEDNESDAY"
36582	Day string `json:"day,omitempty"`
36583
36584	// Duration: [Output only] Duration of the time window, automatically
36585	// chosen to be smallest possible in the given scenario.
36586	Duration string `json:"duration,omitempty"`
36587
36588	// StartTime: Time within the window to start the operations. It must be
36589	// in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT.
36590	StartTime string `json:"startTime,omitempty"`
36591
36592	// ForceSendFields is a list of field names (e.g. "Day") to
36593	// unconditionally include in API requests. By default, fields with
36594	// empty or default values are omitted from API requests. However, any
36595	// non-pointer, non-interface field appearing in ForceSendFields will be
36596	// sent to the server regardless of whether the field is empty or not.
36597	// This may be used to include empty fields in Patch requests.
36598	ForceSendFields []string `json:"-"`
36599
36600	// NullFields is a list of field names (e.g. "Day") to include in API
36601	// requests with the JSON null value. By default, fields with empty
36602	// values are omitted from API requests. However, any field with an
36603	// empty value appearing in NullFields will be sent to the server as
36604	// null. It is an error if a field in this list has a non-empty value.
36605	// This may be used to include null fields in Patch requests.
36606	NullFields []string `json:"-"`
36607}
36608
36609func (s *ResourcePolicyWeeklyCycleDayOfWeek) MarshalJSON() ([]byte, error) {
36610	type NoMethod ResourcePolicyWeeklyCycleDayOfWeek
36611	raw := NoMethod(*s)
36612	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36613}
36614
36615// Route: Represents a Route resource. A route defines a path from VM
36616// instances in the VPC network to a specific destination. This
36617// destination can be inside or outside the VPC network. For more
36618// information, read the Routes overview.
36619type Route struct {
36620	// AsPaths: [Output Only] AS path.
36621	AsPaths []*RouteAsPath `json:"asPaths,omitempty"`
36622
36623	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
36624	// format.
36625	CreationTimestamp string `json:"creationTimestamp,omitempty"`
36626
36627	// Description: An optional description of this resource. Provide this
36628	// field when you create the resource.
36629	Description string `json:"description,omitempty"`
36630
36631	// DestRange: The destination range of outgoing packets that this route
36632	// applies to. Both IPv4 and IPv6 are supported.
36633	DestRange string `json:"destRange,omitempty"`
36634
36635	// Id: [Output Only] The unique identifier for the resource. This
36636	// identifier is defined by the server.
36637	Id uint64 `json:"id,omitempty,string"`
36638
36639	// Kind: [Output Only] Type of this resource. Always compute#routes for
36640	// Route resources.
36641	Kind string `json:"kind,omitempty"`
36642
36643	// Name: Name of the resource. Provided by the client when the resource
36644	// is created. The name must be 1-63 characters long, and comply with
36645	// RFC1035. Specifically, the name must be 1-63 characters long and
36646	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
36647	// character must be a lowercase letter, and all following characters
36648	// (except for the last character) must be a dash, lowercase letter, or
36649	// digit. The last character must be a lowercase letter or digit.
36650	Name string `json:"name,omitempty"`
36651
36652	// Network: Fully-qualified URL of the network that this route applies
36653	// to.
36654	Network string `json:"network,omitempty"`
36655
36656	// NextHopGateway: The URL to a gateway that should handle matching
36657	// packets. You can only specify the internet gateway using a full or
36658	// partial valid URL: projects/
36659	// project/global/gateways/default-internet-gateway
36660	NextHopGateway string `json:"nextHopGateway,omitempty"`
36661
36662	// NextHopIlb: The URL to a forwarding rule of type
36663	// loadBalancingScheme=INTERNAL that should handle matching packets or
36664	// the IP address of the forwarding Rule. For example, the following are
36665	// all valid URLs: - 10.128.0.56 -
36666	// https://www.googleapis.com/compute/v1/projects/project/regions/region
36667	// /forwardingRules/forwardingRule -
36668	// regions/region/forwardingRules/forwardingRule
36669	NextHopIlb string `json:"nextHopIlb,omitempty"`
36670
36671	// NextHopInstance: The URL to an instance that should handle matching
36672	// packets. You can specify this as a full or partial URL. For example:
36673	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/
36674	NextHopInstance string `json:"nextHopInstance,omitempty"`
36675
36676	// NextHopIp: The network IP address of an instance that should handle
36677	// matching packets. Only IPv4 is supported.
36678	NextHopIp string `json:"nextHopIp,omitempty"`
36679
36680	// NextHopNetwork: The URL of the local network if it should handle
36681	// matching packets.
36682	NextHopNetwork string `json:"nextHopNetwork,omitempty"`
36683
36684	// NextHopPeering: [Output Only] The network peering name that should
36685	// handle matching packets, which should conform to RFC1035.
36686	NextHopPeering string `json:"nextHopPeering,omitempty"`
36687
36688	// NextHopVpnTunnel: The URL to a VpnTunnel that should handle matching
36689	// packets.
36690	NextHopVpnTunnel string `json:"nextHopVpnTunnel,omitempty"`
36691
36692	// Priority: The priority of this route. Priority is used to break ties
36693	// in cases where there is more than one matching route of equal prefix
36694	// length. In cases where multiple routes have equal prefix length, the
36695	// one with the lowest-numbered priority value wins. The default value
36696	// is `1000`. The priority value must be from `0` to `65535`, inclusive.
36697	Priority int64 `json:"priority,omitempty"`
36698
36699	// RouteType: [Output Only] The type of this route, which can be one of
36700	// the following values: - 'TRANSIT' for a transit route that this
36701	// router learned from another Cloud Router and will readvertise to one
36702	// of its BGP peers - 'SUBNET' for a route from a subnet of the VPC -
36703	// 'BGP' for a route learned from a BGP peer of this router - 'STATIC'
36704	// for a static route
36705	//
36706	// Possible values:
36707	//   "BGP"
36708	//   "STATIC"
36709	//   "SUBNET"
36710	//   "TRANSIT"
36711	RouteType string `json:"routeType,omitempty"`
36712
36713	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
36714	// resource.
36715	SelfLink string `json:"selfLink,omitempty"`
36716
36717	// Tags: A list of instance tags to which this route applies.
36718	Tags []string `json:"tags,omitempty"`
36719
36720	// Warnings: [Output Only] If potential misconfigurations are detected
36721	// for this route, this field will be populated with warning messages.
36722	Warnings []*RouteWarnings `json:"warnings,omitempty"`
36723
36724	// ServerResponse contains the HTTP response code and headers from the
36725	// server.
36726	googleapi.ServerResponse `json:"-"`
36727
36728	// ForceSendFields is a list of field names (e.g. "AsPaths") to
36729	// unconditionally include in API requests. By default, fields with
36730	// empty or default values are omitted from API requests. However, any
36731	// non-pointer, non-interface field appearing in ForceSendFields will be
36732	// sent to the server regardless of whether the field is empty or not.
36733	// This may be used to include empty fields in Patch requests.
36734	ForceSendFields []string `json:"-"`
36735
36736	// NullFields is a list of field names (e.g. "AsPaths") to include in
36737	// API requests with the JSON null value. By default, fields with empty
36738	// values are omitted from API requests. However, any field with an
36739	// empty value appearing in NullFields will be sent to the server as
36740	// null. It is an error if a field in this list has a non-empty value.
36741	// This may be used to include null fields in Patch requests.
36742	NullFields []string `json:"-"`
36743}
36744
36745func (s *Route) MarshalJSON() ([]byte, error) {
36746	type NoMethod Route
36747	raw := NoMethod(*s)
36748	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36749}
36750
36751type RouteWarnings struct {
36752	// Code: [Output Only] A warning code, if applicable. For example,
36753	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36754	// the response.
36755	//
36756	// Possible values:
36757	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
36758	// changes made by a failed operation.
36759	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
36760	// created.
36761	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
36762	// resources has a type marked as deprecated
36763	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
36764	// that is larger than image size.
36765	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
36766	// resources has a type marked as experimental
36767	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
36768	// call
36769	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
36770	// overridden. Deprecated unused field.
36771	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
36772	// injected kernel, which is deprecated.
36773	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
36774	// exceedingly large number of resources
36775	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
36776	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
36777	// not assigned to an instance on the network.
36778	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
36779	// ip forward.
36780	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
36781	// refers to an instance that does not exist.
36782	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
36783	// URL refers to an instance that is not on the same network as the
36784	// route.
36785	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
36786	// have a status of RUNNING.
36787	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
36788	// continue the process despite the mentioned error.
36789	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
36790	// page.
36791	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
36792	// missing due to errors
36793	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
36794	// that requires a TOS they have not accepted.
36795	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
36796	// resource is in use.
36797	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
36798	// auto-delete could not be deleted because they were in use.
36799	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
36800	// ignored.
36801	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
36802	// instance group manager is valid as such, but its application does not
36803	// make a lot of sense, because it allows only single instance in
36804	// instance group.
36805	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
36806	// are present
36807	//   "UNREACHABLE" - A given scope cannot be reached.
36808	Code string `json:"code,omitempty"`
36809
36810	// Data: [Output Only] Metadata about this warning in key: value format.
36811	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
36812	// }
36813	Data []*RouteWarningsData `json:"data,omitempty"`
36814
36815	// Message: [Output Only] A human-readable description of the warning
36816	// code.
36817	Message string `json:"message,omitempty"`
36818
36819	// ForceSendFields is a list of field names (e.g. "Code") to
36820	// unconditionally include in API requests. By default, fields with
36821	// empty or default values are omitted from API requests. However, any
36822	// non-pointer, non-interface field appearing in ForceSendFields will be
36823	// sent to the server regardless of whether the field is empty or not.
36824	// This may be used to include empty fields in Patch requests.
36825	ForceSendFields []string `json:"-"`
36826
36827	// NullFields is a list of field names (e.g. "Code") to include in API
36828	// requests with the JSON null value. By default, fields with empty
36829	// values are omitted from API requests. However, any field with an
36830	// empty value appearing in NullFields will be sent to the server as
36831	// null. It is an error if a field in this list has a non-empty value.
36832	// This may be used to include null fields in Patch requests.
36833	NullFields []string `json:"-"`
36834}
36835
36836func (s *RouteWarnings) MarshalJSON() ([]byte, error) {
36837	type NoMethod RouteWarnings
36838	raw := NoMethod(*s)
36839	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36840}
36841
36842type RouteWarningsData struct {
36843	// Key: [Output Only] A key that provides more detail on the warning
36844	// being returned. For example, for warnings where there are no results
36845	// in a list request for a particular zone, this key might be scope and
36846	// the key value might be the zone name. Other examples might be a key
36847	// indicating a deprecated resource and a suggested replacement, or a
36848	// warning about invalid network settings (for example, if an instance
36849	// attempts to perform IP forwarding but is not enabled for IP
36850	// forwarding).
36851	Key string `json:"key,omitempty"`
36852
36853	// Value: [Output Only] A warning data value corresponding to the key.
36854	Value string `json:"value,omitempty"`
36855
36856	// ForceSendFields is a list of field names (e.g. "Key") to
36857	// unconditionally include in API requests. By default, fields with
36858	// empty or default values are omitted from API requests. However, any
36859	// non-pointer, non-interface field appearing in ForceSendFields will be
36860	// sent to the server regardless of whether the field is empty or not.
36861	// This may be used to include empty fields in Patch requests.
36862	ForceSendFields []string `json:"-"`
36863
36864	// NullFields is a list of field names (e.g. "Key") to include in API
36865	// requests with the JSON null value. By default, fields with empty
36866	// values are omitted from API requests. However, any field with an
36867	// empty value appearing in NullFields will be sent to the server as
36868	// null. It is an error if a field in this list has a non-empty value.
36869	// This may be used to include null fields in Patch requests.
36870	NullFields []string `json:"-"`
36871}
36872
36873func (s *RouteWarningsData) MarshalJSON() ([]byte, error) {
36874	type NoMethod RouteWarningsData
36875	raw := NoMethod(*s)
36876	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36877}
36878
36879type RouteAsPath struct {
36880	// AsLists: [Output Only] The AS numbers of the AS Path.
36881	AsLists []int64 `json:"asLists,omitempty"`
36882
36883	// PathSegmentType: [Output Only] The type of the AS Path, which can be
36884	// one of the following values: - 'AS_SET': unordered set of autonomous
36885	// systems that the route in has traversed - 'AS_SEQUENCE': ordered set
36886	// of autonomous systems that the route has traversed -
36887	// 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the
36888	// local confederation that the route has traversed - 'AS_CONFED_SET':
36889	// unordered set of Member Autonomous Systems in the local confederation
36890	// that the route has traversed
36891	//
36892	// Possible values:
36893	//   "AS_CONFED_SEQUENCE"
36894	//   "AS_CONFED_SET"
36895	//   "AS_SEQUENCE"
36896	//   "AS_SET"
36897	PathSegmentType string `json:"pathSegmentType,omitempty"`
36898
36899	// ForceSendFields is a list of field names (e.g. "AsLists") to
36900	// unconditionally include in API requests. By default, fields with
36901	// empty or default values are omitted from API requests. However, any
36902	// non-pointer, non-interface field appearing in ForceSendFields will be
36903	// sent to the server regardless of whether the field is empty or not.
36904	// This may be used to include empty fields in Patch requests.
36905	ForceSendFields []string `json:"-"`
36906
36907	// NullFields is a list of field names (e.g. "AsLists") to include in
36908	// API requests with the JSON null value. By default, fields with empty
36909	// values are omitted from API requests. However, any field with an
36910	// empty value appearing in NullFields will be sent to the server as
36911	// null. It is an error if a field in this list has a non-empty value.
36912	// This may be used to include null fields in Patch requests.
36913	NullFields []string `json:"-"`
36914}
36915
36916func (s *RouteAsPath) MarshalJSON() ([]byte, error) {
36917	type NoMethod RouteAsPath
36918	raw := NoMethod(*s)
36919	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36920}
36921
36922// RouteList: Contains a list of Route resources.
36923type RouteList struct {
36924	// Id: [Output Only] Unique identifier for the resource; defined by the
36925	// server.
36926	Id string `json:"id,omitempty"`
36927
36928	// Items: A list of Route resources.
36929	Items []*Route `json:"items,omitempty"`
36930
36931	// Kind: Type of resource.
36932	Kind string `json:"kind,omitempty"`
36933
36934	// NextPageToken: [Output Only] This token allows you to get the next
36935	// page of results for list requests. If the number of results is larger
36936	// than maxResults, use the nextPageToken as a value for the query
36937	// parameter pageToken in the next list request. Subsequent list
36938	// requests will have their own nextPageToken to continue paging through
36939	// the results.
36940	NextPageToken string `json:"nextPageToken,omitempty"`
36941
36942	// SelfLink: [Output Only] Server-defined URL for this resource.
36943	SelfLink string `json:"selfLink,omitempty"`
36944
36945	// Warning: [Output Only] Informational warning message.
36946	Warning *RouteListWarning `json:"warning,omitempty"`
36947
36948	// ServerResponse contains the HTTP response code and headers from the
36949	// server.
36950	googleapi.ServerResponse `json:"-"`
36951
36952	// ForceSendFields is a list of field names (e.g. "Id") to
36953	// unconditionally include in API requests. By default, fields with
36954	// empty or default values are omitted from API requests. However, any
36955	// non-pointer, non-interface field appearing in ForceSendFields will be
36956	// sent to the server regardless of whether the field is empty or not.
36957	// This may be used to include empty fields in Patch requests.
36958	ForceSendFields []string `json:"-"`
36959
36960	// NullFields is a list of field names (e.g. "Id") to include in API
36961	// requests with the JSON null value. By default, fields with empty
36962	// values are omitted from API requests. However, any field with an
36963	// empty value appearing in NullFields will be sent to the server as
36964	// null. It is an error if a field in this list has a non-empty value.
36965	// This may be used to include null fields in Patch requests.
36966	NullFields []string `json:"-"`
36967}
36968
36969func (s *RouteList) MarshalJSON() ([]byte, error) {
36970	type NoMethod RouteList
36971	raw := NoMethod(*s)
36972	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36973}
36974
36975// RouteListWarning: [Output Only] Informational warning message.
36976type RouteListWarning struct {
36977	// Code: [Output Only] A warning code, if applicable. For example,
36978	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36979	// the response.
36980	//
36981	// Possible values:
36982	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
36983	// changes made by a failed operation.
36984	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
36985	// created.
36986	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
36987	// resources has a type marked as deprecated
36988	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
36989	// that is larger than image size.
36990	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
36991	// resources has a type marked as experimental
36992	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
36993	// call
36994	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
36995	// overridden. Deprecated unused field.
36996	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
36997	// injected kernel, which is deprecated.
36998	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
36999	// exceedingly large number of resources
37000	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
37001	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
37002	// not assigned to an instance on the network.
37003	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
37004	// ip forward.
37005	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
37006	// refers to an instance that does not exist.
37007	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
37008	// URL refers to an instance that is not on the same network as the
37009	// route.
37010	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
37011	// have a status of RUNNING.
37012	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
37013	// continue the process despite the mentioned error.
37014	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
37015	// page.
37016	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
37017	// missing due to errors
37018	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
37019	// that requires a TOS they have not accepted.
37020	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
37021	// resource is in use.
37022	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
37023	// auto-delete could not be deleted because they were in use.
37024	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
37025	// ignored.
37026	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
37027	// instance group manager is valid as such, but its application does not
37028	// make a lot of sense, because it allows only single instance in
37029	// instance group.
37030	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
37031	// are present
37032	//   "UNREACHABLE" - A given scope cannot be reached.
37033	Code string `json:"code,omitempty"`
37034
37035	// Data: [Output Only] Metadata about this warning in key: value format.
37036	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
37037	// }
37038	Data []*RouteListWarningData `json:"data,omitempty"`
37039
37040	// Message: [Output Only] A human-readable description of the warning
37041	// code.
37042	Message string `json:"message,omitempty"`
37043
37044	// ForceSendFields is a list of field names (e.g. "Code") to
37045	// unconditionally include in API requests. By default, fields with
37046	// empty or default values are omitted from API requests. However, any
37047	// non-pointer, non-interface field appearing in ForceSendFields will be
37048	// sent to the server regardless of whether the field is empty or not.
37049	// This may be used to include empty fields in Patch requests.
37050	ForceSendFields []string `json:"-"`
37051
37052	// NullFields is a list of field names (e.g. "Code") to include in API
37053	// requests with the JSON null value. By default, fields with empty
37054	// values are omitted from API requests. However, any field with an
37055	// empty value appearing in NullFields will be sent to the server as
37056	// null. It is an error if a field in this list has a non-empty value.
37057	// This may be used to include null fields in Patch requests.
37058	NullFields []string `json:"-"`
37059}
37060
37061func (s *RouteListWarning) MarshalJSON() ([]byte, error) {
37062	type NoMethod RouteListWarning
37063	raw := NoMethod(*s)
37064	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37065}
37066
37067type RouteListWarningData struct {
37068	// Key: [Output Only] A key that provides more detail on the warning
37069	// being returned. For example, for warnings where there are no results
37070	// in a list request for a particular zone, this key might be scope and
37071	// the key value might be the zone name. Other examples might be a key
37072	// indicating a deprecated resource and a suggested replacement, or a
37073	// warning about invalid network settings (for example, if an instance
37074	// attempts to perform IP forwarding but is not enabled for IP
37075	// forwarding).
37076	Key string `json:"key,omitempty"`
37077
37078	// Value: [Output Only] A warning data value corresponding to the key.
37079	Value string `json:"value,omitempty"`
37080
37081	// ForceSendFields is a list of field names (e.g. "Key") to
37082	// unconditionally include in API requests. By default, fields with
37083	// empty or default values are omitted from API requests. However, any
37084	// non-pointer, non-interface field appearing in ForceSendFields will be
37085	// sent to the server regardless of whether the field is empty or not.
37086	// This may be used to include empty fields in Patch requests.
37087	ForceSendFields []string `json:"-"`
37088
37089	// NullFields is a list of field names (e.g. "Key") to include in API
37090	// requests with the JSON null value. By default, fields with empty
37091	// values are omitted from API requests. However, any field with an
37092	// empty value appearing in NullFields will be sent to the server as
37093	// null. It is an error if a field in this list has a non-empty value.
37094	// This may be used to include null fields in Patch requests.
37095	NullFields []string `json:"-"`
37096}
37097
37098func (s *RouteListWarningData) MarshalJSON() ([]byte, error) {
37099	type NoMethod RouteListWarningData
37100	raw := NoMethod(*s)
37101	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37102}
37103
37104// Router: Represents a Cloud Router resource. For more information
37105// about Cloud Router, read the Cloud Router overview.
37106type Router struct {
37107	// Bgp: BGP information specific to this router.
37108	Bgp *RouterBgp `json:"bgp,omitempty"`
37109
37110	// BgpPeers: BGP information that must be configured into the routing
37111	// stack to establish BGP peering. This information must specify the
37112	// peer ASN and either the interface name, IP address, or peer IP
37113	// address. Please refer to RFC4273.
37114	BgpPeers []*RouterBgpPeer `json:"bgpPeers,omitempty"`
37115
37116	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
37117	// format.
37118	CreationTimestamp string `json:"creationTimestamp,omitempty"`
37119
37120	// Description: An optional description of this resource. Provide this
37121	// property when you create the resource.
37122	Description string `json:"description,omitempty"`
37123
37124	// EncryptedInterconnectRouter: Indicates if a router is dedicated for
37125	// use with encrypted VLAN attachments (interconnectAttachments). Not
37126	// currently available publicly.
37127	EncryptedInterconnectRouter bool `json:"encryptedInterconnectRouter,omitempty"`
37128
37129	// Id: [Output Only] The unique identifier for the resource. This
37130	// identifier is defined by the server.
37131	Id uint64 `json:"id,omitempty,string"`
37132
37133	// Interfaces: Router interfaces. Each interface requires either one
37134	// linked resource, (for example, linkedVpnTunnel), or IP address and IP
37135	// address range (for example, ipRange), or both.
37136	Interfaces []*RouterInterface `json:"interfaces,omitempty"`
37137
37138	// Kind: [Output Only] Type of resource. Always compute#router for
37139	// routers.
37140	Kind string `json:"kind,omitempty"`
37141
37142	// Name: Name of the resource. Provided by the client when the resource
37143	// is created. The name must be 1-63 characters long, and comply with
37144	// RFC1035. Specifically, the name must be 1-63 characters long and
37145	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
37146	// the first character must be a lowercase letter, and all following
37147	// characters must be a dash, lowercase letter, or digit, except the
37148	// last character, which cannot be a dash.
37149	Name string `json:"name,omitempty"`
37150
37151	// Nats: A list of NAT services created in this router.
37152	Nats []*RouterNat `json:"nats,omitempty"`
37153
37154	// Network: URI of the network to which this router belongs.
37155	Network string `json:"network,omitempty"`
37156
37157	// Region: [Output Only] URI of the region where the router resides. You
37158	// must specify this field as part of the HTTP request URL. It is not
37159	// settable as a field in the request body.
37160	Region string `json:"region,omitempty"`
37161
37162	// SelfLink: [Output Only] Server-defined URL for the resource.
37163	SelfLink string `json:"selfLink,omitempty"`
37164
37165	// ServerResponse contains the HTTP response code and headers from the
37166	// server.
37167	googleapi.ServerResponse `json:"-"`
37168
37169	// ForceSendFields is a list of field names (e.g. "Bgp") to
37170	// unconditionally include in API requests. By default, fields with
37171	// empty or default values are omitted from API requests. However, any
37172	// non-pointer, non-interface field appearing in ForceSendFields will be
37173	// sent to the server regardless of whether the field is empty or not.
37174	// This may be used to include empty fields in Patch requests.
37175	ForceSendFields []string `json:"-"`
37176
37177	// NullFields is a list of field names (e.g. "Bgp") to include in API
37178	// requests with the JSON null value. By default, fields with empty
37179	// values are omitted from API requests. However, any field with an
37180	// empty value appearing in NullFields will be sent to the server as
37181	// null. It is an error if a field in this list has a non-empty value.
37182	// This may be used to include null fields in Patch requests.
37183	NullFields []string `json:"-"`
37184}
37185
37186func (s *Router) MarshalJSON() ([]byte, error) {
37187	type NoMethod Router
37188	raw := NoMethod(*s)
37189	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37190}
37191
37192// RouterAdvertisedIpRange: Description-tagged IP ranges for the router
37193// to advertise.
37194type RouterAdvertisedIpRange struct {
37195	// Description: User-specified description for the IP range.
37196	Description string `json:"description,omitempty"`
37197
37198	// Range: The IP range to advertise. The value must be a CIDR-formatted
37199	// string.
37200	Range string `json:"range,omitempty"`
37201
37202	// ForceSendFields is a list of field names (e.g. "Description") to
37203	// unconditionally include in API requests. By default, fields with
37204	// empty or default values are omitted from API requests. However, any
37205	// non-pointer, non-interface field appearing in ForceSendFields will be
37206	// sent to the server regardless of whether the field is empty or not.
37207	// This may be used to include empty fields in Patch requests.
37208	ForceSendFields []string `json:"-"`
37209
37210	// NullFields is a list of field names (e.g. "Description") to include
37211	// in API requests with the JSON null value. By default, fields with
37212	// empty values are omitted from API requests. However, any field with
37213	// an empty value appearing in NullFields will be sent to the server as
37214	// null. It is an error if a field in this list has a non-empty value.
37215	// This may be used to include null fields in Patch requests.
37216	NullFields []string `json:"-"`
37217}
37218
37219func (s *RouterAdvertisedIpRange) MarshalJSON() ([]byte, error) {
37220	type NoMethod RouterAdvertisedIpRange
37221	raw := NoMethod(*s)
37222	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37223}
37224
37225// RouterAggregatedList: Contains a list of routers.
37226type RouterAggregatedList struct {
37227	// Id: [Output Only] Unique identifier for the resource; defined by the
37228	// server.
37229	Id string `json:"id,omitempty"`
37230
37231	// Items: A list of Router resources.
37232	Items map[string]RoutersScopedList `json:"items,omitempty"`
37233
37234	// Kind: Type of resource.
37235	Kind string `json:"kind,omitempty"`
37236
37237	// NextPageToken: [Output Only] This token allows you to get the next
37238	// page of results for list requests. If the number of results is larger
37239	// than maxResults, use the nextPageToken as a value for the query
37240	// parameter pageToken in the next list request. Subsequent list
37241	// requests will have their own nextPageToken to continue paging through
37242	// the results.
37243	NextPageToken string `json:"nextPageToken,omitempty"`
37244
37245	// SelfLink: [Output Only] Server-defined URL for this resource.
37246	SelfLink string `json:"selfLink,omitempty"`
37247
37248	// Unreachables: [Output Only] Unreachable resources.
37249	Unreachables []string `json:"unreachables,omitempty"`
37250
37251	// Warning: [Output Only] Informational warning message.
37252	Warning *RouterAggregatedListWarning `json:"warning,omitempty"`
37253
37254	// ServerResponse contains the HTTP response code and headers from the
37255	// server.
37256	googleapi.ServerResponse `json:"-"`
37257
37258	// ForceSendFields is a list of field names (e.g. "Id") to
37259	// unconditionally include in API requests. By default, fields with
37260	// empty or default values are omitted from API requests. However, any
37261	// non-pointer, non-interface field appearing in ForceSendFields will be
37262	// sent to the server regardless of whether the field is empty or not.
37263	// This may be used to include empty fields in Patch requests.
37264	ForceSendFields []string `json:"-"`
37265
37266	// NullFields is a list of field names (e.g. "Id") to include in API
37267	// requests with the JSON null value. By default, fields with empty
37268	// values are omitted from API requests. However, any field with an
37269	// empty value appearing in NullFields will be sent to the server as
37270	// null. It is an error if a field in this list has a non-empty value.
37271	// This may be used to include null fields in Patch requests.
37272	NullFields []string `json:"-"`
37273}
37274
37275func (s *RouterAggregatedList) MarshalJSON() ([]byte, error) {
37276	type NoMethod RouterAggregatedList
37277	raw := NoMethod(*s)
37278	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37279}
37280
37281// RouterAggregatedListWarning: [Output Only] Informational warning
37282// message.
37283type RouterAggregatedListWarning struct {
37284	// Code: [Output Only] A warning code, if applicable. For example,
37285	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
37286	// the response.
37287	//
37288	// Possible values:
37289	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
37290	// changes made by a failed operation.
37291	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
37292	// created.
37293	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
37294	// resources has a type marked as deprecated
37295	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
37296	// that is larger than image size.
37297	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
37298	// resources has a type marked as experimental
37299	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
37300	// call
37301	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
37302	// overridden. Deprecated unused field.
37303	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
37304	// injected kernel, which is deprecated.
37305	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
37306	// exceedingly large number of resources
37307	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
37308	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
37309	// not assigned to an instance on the network.
37310	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
37311	// ip forward.
37312	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
37313	// refers to an instance that does not exist.
37314	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
37315	// URL refers to an instance that is not on the same network as the
37316	// route.
37317	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
37318	// have a status of RUNNING.
37319	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
37320	// continue the process despite the mentioned error.
37321	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
37322	// page.
37323	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
37324	// missing due to errors
37325	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
37326	// that requires a TOS they have not accepted.
37327	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
37328	// resource is in use.
37329	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
37330	// auto-delete could not be deleted because they were in use.
37331	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
37332	// ignored.
37333	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
37334	// instance group manager is valid as such, but its application does not
37335	// make a lot of sense, because it allows only single instance in
37336	// instance group.
37337	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
37338	// are present
37339	//   "UNREACHABLE" - A given scope cannot be reached.
37340	Code string `json:"code,omitempty"`
37341
37342	// Data: [Output Only] Metadata about this warning in key: value format.
37343	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
37344	// }
37345	Data []*RouterAggregatedListWarningData `json:"data,omitempty"`
37346
37347	// Message: [Output Only] A human-readable description of the warning
37348	// code.
37349	Message string `json:"message,omitempty"`
37350
37351	// ForceSendFields is a list of field names (e.g. "Code") to
37352	// unconditionally include in API requests. By default, fields with
37353	// empty or default values are omitted from API requests. However, any
37354	// non-pointer, non-interface field appearing in ForceSendFields will be
37355	// sent to the server regardless of whether the field is empty or not.
37356	// This may be used to include empty fields in Patch requests.
37357	ForceSendFields []string `json:"-"`
37358
37359	// NullFields is a list of field names (e.g. "Code") to include in API
37360	// requests with the JSON null value. By default, fields with empty
37361	// values are omitted from API requests. However, any field with an
37362	// empty value appearing in NullFields will be sent to the server as
37363	// null. It is an error if a field in this list has a non-empty value.
37364	// This may be used to include null fields in Patch requests.
37365	NullFields []string `json:"-"`
37366}
37367
37368func (s *RouterAggregatedListWarning) MarshalJSON() ([]byte, error) {
37369	type NoMethod RouterAggregatedListWarning
37370	raw := NoMethod(*s)
37371	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37372}
37373
37374type RouterAggregatedListWarningData struct {
37375	// Key: [Output Only] A key that provides more detail on the warning
37376	// being returned. For example, for warnings where there are no results
37377	// in a list request for a particular zone, this key might be scope and
37378	// the key value might be the zone name. Other examples might be a key
37379	// indicating a deprecated resource and a suggested replacement, or a
37380	// warning about invalid network settings (for example, if an instance
37381	// attempts to perform IP forwarding but is not enabled for IP
37382	// forwarding).
37383	Key string `json:"key,omitempty"`
37384
37385	// Value: [Output Only] A warning data value corresponding to the key.
37386	Value string `json:"value,omitempty"`
37387
37388	// ForceSendFields is a list of field names (e.g. "Key") to
37389	// unconditionally include in API requests. By default, fields with
37390	// empty or default values are omitted from API requests. However, any
37391	// non-pointer, non-interface field appearing in ForceSendFields will be
37392	// sent to the server regardless of whether the field is empty or not.
37393	// This may be used to include empty fields in Patch requests.
37394	ForceSendFields []string `json:"-"`
37395
37396	// NullFields is a list of field names (e.g. "Key") to include in API
37397	// requests with the JSON null value. By default, fields with empty
37398	// values are omitted from API requests. However, any field with an
37399	// empty value appearing in NullFields will be sent to the server as
37400	// null. It is an error if a field in this list has a non-empty value.
37401	// This may be used to include null fields in Patch requests.
37402	NullFields []string `json:"-"`
37403}
37404
37405func (s *RouterAggregatedListWarningData) MarshalJSON() ([]byte, error) {
37406	type NoMethod RouterAggregatedListWarningData
37407	raw := NoMethod(*s)
37408	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37409}
37410
37411type RouterBgp struct {
37412	// AdvertiseMode: User-specified flag to indicate which mode to use for
37413	// advertisement. The options are DEFAULT or CUSTOM.
37414	//
37415	// Possible values:
37416	//   "CUSTOM"
37417	//   "DEFAULT"
37418	AdvertiseMode string `json:"advertiseMode,omitempty"`
37419
37420	// AdvertisedGroups: User-specified list of prefix groups to advertise
37421	// in custom mode. This field can only be populated if advertise_mode is
37422	// CUSTOM and is advertised to all peers of the router. These groups
37423	// will be advertised in addition to any specified prefixes. Leave this
37424	// field blank to advertise no custom groups.
37425	//
37426	// Possible values:
37427	//   "ALL_SUBNETS" - Advertise all available subnets (including peer VPC
37428	// subnets).
37429	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`
37430
37431	// AdvertisedIpRanges: User-specified list of individual IP ranges to
37432	// advertise in custom mode. This field can only be populated if
37433	// advertise_mode is CUSTOM and is advertised to all peers of the
37434	// router. These IP ranges will be advertised in addition to any
37435	// specified groups. Leave this field blank to advertise no custom IP
37436	// ranges.
37437	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"`
37438
37439	// Asn: Local BGP Autonomous System Number (ASN). Must be an RFC6996
37440	// private ASN, either 16-bit or 32-bit. The value will be fixed for
37441	// this router resource. All VPN tunnels that link to this router will
37442	// have the same local ASN.
37443	Asn int64 `json:"asn,omitempty"`
37444
37445	// KeepaliveInterval: The interval in seconds between BGP keepalive
37446	// messages that are sent to the peer. Hold time is three times the
37447	// interval at which keepalive messages are sent, and the hold time is
37448	// the maximum number of seconds allowed to elapse between successive
37449	// keepalive messages that BGP receives from a peer. BGP will use the
37450	// smaller of either the local hold time value or the peer's hold time
37451	// value as the hold time for the BGP connection between the two peers.
37452	// If set, this value must be between 20 and 60. The default is 20.
37453	KeepaliveInterval int64 `json:"keepaliveInterval,omitempty"`
37454
37455	// ForceSendFields is a list of field names (e.g. "AdvertiseMode") to
37456	// unconditionally include in API requests. By default, fields with
37457	// empty or default values are omitted from API requests. However, any
37458	// non-pointer, non-interface field appearing in ForceSendFields will be
37459	// sent to the server regardless of whether the field is empty or not.
37460	// This may be used to include empty fields in Patch requests.
37461	ForceSendFields []string `json:"-"`
37462
37463	// NullFields is a list of field names (e.g. "AdvertiseMode") to include
37464	// in API requests with the JSON null value. By default, fields with
37465	// empty values are omitted from API requests. However, any field with
37466	// an empty value appearing in NullFields will be sent to the server as
37467	// null. It is an error if a field in this list has a non-empty value.
37468	// This may be used to include null fields in Patch requests.
37469	NullFields []string `json:"-"`
37470}
37471
37472func (s *RouterBgp) MarshalJSON() ([]byte, error) {
37473	type NoMethod RouterBgp
37474	raw := NoMethod(*s)
37475	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37476}
37477
37478type RouterBgpPeer struct {
37479	// AdvertiseMode: User-specified flag to indicate which mode to use for
37480	// advertisement.
37481	//
37482	// Possible values:
37483	//   "CUSTOM"
37484	//   "DEFAULT"
37485	AdvertiseMode string `json:"advertiseMode,omitempty"`
37486
37487	// AdvertisedGroups: User-specified list of prefix groups to advertise
37488	// in custom mode, which can take one of the following options: -
37489	// ALL_SUBNETS: Advertises all available subnets, including peer VPC
37490	// subnets. - ALL_VPC_SUBNETS: Advertises the router's own VPC subnets.
37491	// Note that this field can only be populated if advertise_mode is
37492	// CUSTOM and overrides the list defined for the router (in the "bgp"
37493	// message). These groups are advertised in addition to any specified
37494	// prefixes. Leave this field blank to advertise no custom groups.
37495	//
37496	// Possible values:
37497	//   "ALL_SUBNETS" - Advertise all available subnets (including peer VPC
37498	// subnets).
37499	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`
37500
37501	// AdvertisedIpRanges: User-specified list of individual IP ranges to
37502	// advertise in custom mode. This field can only be populated if
37503	// advertise_mode is CUSTOM and overrides the list defined for the
37504	// router (in the "bgp" message). These IP ranges are advertised in
37505	// addition to any specified groups. Leave this field blank to advertise
37506	// no custom IP ranges.
37507	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"`
37508
37509	// AdvertisedRoutePriority: The priority of routes advertised to this
37510	// BGP peer. Where there is more than one matching route of maximum
37511	// length, the routes with the lowest priority value win.
37512	AdvertisedRoutePriority int64 `json:"advertisedRoutePriority,omitempty"`
37513
37514	// Bfd: BFD configuration for the BGP peering.
37515	Bfd *RouterBgpPeerBfd `json:"bfd,omitempty"`
37516
37517	// Enable: The status of the BGP peer connection. If set to FALSE, any
37518	// active session with the peer is terminated and all associated routing
37519	// information is removed. If set to TRUE, the peer connection can be
37520	// established with routing information. The default is TRUE.
37521	//
37522	// Possible values:
37523	//   "FALSE"
37524	//   "TRUE"
37525	Enable string `json:"enable,omitempty"`
37526
37527	// InterfaceName: Name of the interface the BGP peer is associated with.
37528	InterfaceName string `json:"interfaceName,omitempty"`
37529
37530	// IpAddress: IP address of the interface inside Google Cloud Platform.
37531	// Only IPv4 is supported.
37532	IpAddress string `json:"ipAddress,omitempty"`
37533
37534	// ManagementType: [Output Only] The resource that configures and
37535	// manages this BGP peer. - MANAGED_BY_USER is the default value and can
37536	// be managed by you or other users - MANAGED_BY_ATTACHMENT is a BGP
37537	// peer that is configured and managed by Cloud Interconnect,
37538	// specifically by an InterconnectAttachment of type PARTNER. Google
37539	// automatically creates, updates, and deletes this type of BGP peer
37540	// when the PARTNER InterconnectAttachment is created, updated, or
37541	// deleted.
37542	//
37543	// Possible values:
37544	//   "MANAGED_BY_ATTACHMENT" - The BGP peer is automatically created for
37545	// PARTNER type InterconnectAttachment; Google will automatically
37546	// create/delete this BGP peer when the PARTNER InterconnectAttachment
37547	// is created/deleted, and Google will update the ipAddress and
37548	// peerIpAddress when the PARTNER InterconnectAttachment is provisioned.
37549	// This type of BGP peer cannot be created or deleted, but can be
37550	// modified for all fields except for name, ipAddress and peerIpAddress.
37551	//   "MANAGED_BY_USER" - Default value, the BGP peer is manually created
37552	// and managed by user.
37553	ManagementType string `json:"managementType,omitempty"`
37554
37555	// Name: Name of this BGP peer. The name must be 1-63 characters long,
37556	// and comply with RFC1035. Specifically, the name must be 1-63
37557	// characters long and match the regular expression
37558	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
37559	// a lowercase letter, and all following characters must be a dash,
37560	// lowercase letter, or digit, except the last character, which cannot
37561	// be a dash.
37562	Name string `json:"name,omitempty"`
37563
37564	// PeerAsn: Peer BGP Autonomous System Number (ASN). Each BGP interface
37565	// may use a different value.
37566	PeerAsn int64 `json:"peerAsn,omitempty"`
37567
37568	// PeerIpAddress: IP address of the BGP interface outside Google Cloud
37569	// Platform. Only IPv4 is supported.
37570	PeerIpAddress string `json:"peerIpAddress,omitempty"`
37571
37572	// RouterApplianceInstance: URI of the VM instance that is used as
37573	// third-party router appliances such as Next Gen Firewalls, Virtual
37574	// Routers, or Router Appliances. The VM instance must be located in
37575	// zones contained in the same region as this Cloud Router. The VM
37576	// instance is the peer side of the BGP session.
37577	RouterApplianceInstance string `json:"routerApplianceInstance,omitempty"`
37578
37579	// ForceSendFields is a list of field names (e.g. "AdvertiseMode") to
37580	// unconditionally include in API requests. By default, fields with
37581	// empty or default values are omitted from API requests. However, any
37582	// non-pointer, non-interface field appearing in ForceSendFields will be
37583	// sent to the server regardless of whether the field is empty or not.
37584	// This may be used to include empty fields in Patch requests.
37585	ForceSendFields []string `json:"-"`
37586
37587	// NullFields is a list of field names (e.g. "AdvertiseMode") to include
37588	// in API requests with the JSON null value. By default, fields with
37589	// empty values are omitted from API requests. However, any field with
37590	// an empty value appearing in NullFields will be sent to the server as
37591	// null. It is an error if a field in this list has a non-empty value.
37592	// This may be used to include null fields in Patch requests.
37593	NullFields []string `json:"-"`
37594}
37595
37596func (s *RouterBgpPeer) MarshalJSON() ([]byte, error) {
37597	type NoMethod RouterBgpPeer
37598	raw := NoMethod(*s)
37599	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37600}
37601
37602type RouterBgpPeerBfd struct {
37603	// MinReceiveInterval: The minimum interval, in milliseconds, between
37604	// BFD control packets received from the peer router. The actual value
37605	// is negotiated between the two routers and is equal to the greater of
37606	// this value and the transmit interval of the other router. If set,
37607	// this value must be between 1000 and 30000. The default is 1000.
37608	MinReceiveInterval int64 `json:"minReceiveInterval,omitempty"`
37609
37610	// MinTransmitInterval: The minimum interval, in milliseconds, between
37611	// BFD control packets transmitted to the peer router. The actual value
37612	// is negotiated between the two routers and is equal to the greater of
37613	// this value and the corresponding receive interval of the other
37614	// router. If set, this value must be between 1000 and 30000. The
37615	// default is 1000.
37616	MinTransmitInterval int64 `json:"minTransmitInterval,omitempty"`
37617
37618	// Multiplier: The number of consecutive BFD packets that must be missed
37619	// before BFD declares that a peer is unavailable. If set, the value
37620	// must be a value between 5 and 16. The default is 5.
37621	Multiplier int64 `json:"multiplier,omitempty"`
37622
37623	// SessionInitializationMode: The BFD session initialization mode for
37624	// this BGP peer. If set to ACTIVE, the Cloud Router will initiate the
37625	// BFD session for this BGP peer. If set to PASSIVE, the Cloud Router
37626	// will wait for the peer router to initiate the BFD session for this
37627	// BGP peer. If set to DISABLED, BFD is disabled for this BGP peer. The
37628	// default is PASSIVE.
37629	//
37630	// Possible values:
37631	//   "ACTIVE"
37632	//   "DISABLED"
37633	//   "PASSIVE"
37634	SessionInitializationMode string `json:"sessionInitializationMode,omitempty"`
37635
37636	// ForceSendFields is a list of field names (e.g. "MinReceiveInterval")
37637	// to unconditionally include in API requests. By default, fields with
37638	// empty or default values are omitted from API requests. However, any
37639	// non-pointer, non-interface field appearing in ForceSendFields will be
37640	// sent to the server regardless of whether the field is empty or not.
37641	// This may be used to include empty fields in Patch requests.
37642	ForceSendFields []string `json:"-"`
37643
37644	// NullFields is a list of field names (e.g. "MinReceiveInterval") to
37645	// include in API requests with the JSON null value. By default, fields
37646	// with empty values are omitted from API requests. However, any field
37647	// with an empty value appearing in NullFields will be sent to the
37648	// server as null. It is an error if a field in this list has a
37649	// non-empty value. This may be used to include null fields in Patch
37650	// requests.
37651	NullFields []string `json:"-"`
37652}
37653
37654func (s *RouterBgpPeerBfd) MarshalJSON() ([]byte, error) {
37655	type NoMethod RouterBgpPeerBfd
37656	raw := NoMethod(*s)
37657	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37658}
37659
37660type RouterInterface struct {
37661	// IpRange: IP address and range of the interface. The IP range must be
37662	// in the RFC3927 link-local IP address space. The value must be a
37663	// CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not
37664	// truncate the address as it represents the IP address of the
37665	// interface.
37666	IpRange string `json:"ipRange,omitempty"`
37667
37668	// LinkedInterconnectAttachment: URI of the linked Interconnect
37669	// attachment. It must be in the same region as the router. Each
37670	// interface can have one linked resource, which can be a VPN tunnel, an
37671	// Interconnect attachment, or a virtual machine instance.
37672	LinkedInterconnectAttachment string `json:"linkedInterconnectAttachment,omitempty"`
37673
37674	// LinkedVpnTunnel: URI of the linked VPN tunnel, which must be in the
37675	// same region as the router. Each interface can have one linked
37676	// resource, which can be a VPN tunnel, an Interconnect attachment, or a
37677	// virtual machine instance.
37678	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
37679
37680	// ManagementType: [Output Only] The resource that configures and
37681	// manages this interface. - MANAGED_BY_USER is the default value and
37682	// can be managed directly by users. - MANAGED_BY_ATTACHMENT is an
37683	// interface that is configured and managed by Cloud Interconnect,
37684	// specifically, by an InterconnectAttachment of type PARTNER. Google
37685	// automatically creates, updates, and deletes this type of interface
37686	// when the PARTNER InterconnectAttachment is created, updated, or
37687	// deleted.
37688	//
37689	// Possible values:
37690	//   "MANAGED_BY_ATTACHMENT" - The interface is automatically created
37691	// for PARTNER type InterconnectAttachment, Google will automatically
37692	// create/update/delete this interface when the PARTNER
37693	// InterconnectAttachment is created/provisioned/deleted. This type of
37694	// interface cannot be manually managed by user.
37695	//   "MANAGED_BY_USER" - Default value, the interface is manually
37696	// created and managed by user.
37697	ManagementType string `json:"managementType,omitempty"`
37698
37699	// Name: Name of this interface entry. The name must be 1-63 characters
37700	// long, and comply with RFC1035. Specifically, the name must be 1-63
37701	// characters long and match the regular expression
37702	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
37703	// a lowercase letter, and all following characters must be a dash,
37704	// lowercase letter, or digit, except the last character, which cannot
37705	// be a dash.
37706	Name string `json:"name,omitempty"`
37707
37708	// PrivateIpAddress: The regional private internal IP address that is
37709	// used to establish BGP sessions to a VM instance acting as a
37710	// third-party Router Appliance, such as a Next Gen Firewall, a Virtual
37711	// Router, or an SD-WAN VM.
37712	PrivateIpAddress string `json:"privateIpAddress,omitempty"`
37713
37714	// RedundantInterface: Name of the interface that will be redundant with
37715	// the current interface you are creating. The redundantInterface must
37716	// belong to the same Cloud Router as the interface here. To establish
37717	// the BGP session to a Router Appliance VM, you must create two BGP
37718	// peers. The two BGP peers must be attached to two separate interfaces
37719	// that are redundant with each other. The redundant_interface must be
37720	// 1-63 characters long, and comply with RFC1035. Specifically, the
37721	// redundant_interface must be 1-63 characters long and match the
37722	// regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
37723	// character must be a lowercase letter, and all following characters
37724	// must be a dash, lowercase letter, or digit, except the last
37725	// character, which cannot be a dash.
37726	RedundantInterface string `json:"redundantInterface,omitempty"`
37727
37728	// Subnetwork: The URI of the subnetwork resource that this interface
37729	// belongs to, which must be in the same region as the Cloud Router.
37730	// When you establish a BGP session to a VM instance using this
37731	// interface, the VM instance must belong to the same subnetwork as the
37732	// subnetwork specified here.
37733	Subnetwork string `json:"subnetwork,omitempty"`
37734
37735	// ForceSendFields is a list of field names (e.g. "IpRange") to
37736	// unconditionally include in API requests. By default, fields with
37737	// empty or default values are omitted from API requests. However, any
37738	// non-pointer, non-interface field appearing in ForceSendFields will be
37739	// sent to the server regardless of whether the field is empty or not.
37740	// This may be used to include empty fields in Patch requests.
37741	ForceSendFields []string `json:"-"`
37742
37743	// NullFields is a list of field names (e.g. "IpRange") to include in
37744	// API requests with the JSON null value. By default, fields with empty
37745	// values are omitted from API requests. However, any field with an
37746	// empty value appearing in NullFields will be sent to the server as
37747	// null. It is an error if a field in this list has a non-empty value.
37748	// This may be used to include null fields in Patch requests.
37749	NullFields []string `json:"-"`
37750}
37751
37752func (s *RouterInterface) MarshalJSON() ([]byte, error) {
37753	type NoMethod RouterInterface
37754	raw := NoMethod(*s)
37755	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37756}
37757
37758// RouterList: Contains a list of Router resources.
37759type RouterList struct {
37760	// Id: [Output Only] Unique identifier for the resource; defined by the
37761	// server.
37762	Id string `json:"id,omitempty"`
37763
37764	// Items: A list of Router resources.
37765	Items []*Router `json:"items,omitempty"`
37766
37767	// Kind: [Output Only] Type of resource. Always compute#router for
37768	// routers.
37769	Kind string `json:"kind,omitempty"`
37770
37771	// NextPageToken: [Output Only] This token allows you to get the next
37772	// page of results for list requests. If the number of results is larger
37773	// than maxResults, use the nextPageToken as a value for the query
37774	// parameter pageToken in the next list request. Subsequent list
37775	// requests will have their own nextPageToken to continue paging through
37776	// the results.
37777	NextPageToken string `json:"nextPageToken,omitempty"`
37778
37779	// SelfLink: [Output Only] Server-defined URL for this resource.
37780	SelfLink string `json:"selfLink,omitempty"`
37781
37782	// Warning: [Output Only] Informational warning message.
37783	Warning *RouterListWarning `json:"warning,omitempty"`
37784
37785	// ServerResponse contains the HTTP response code and headers from the
37786	// server.
37787	googleapi.ServerResponse `json:"-"`
37788
37789	// ForceSendFields is a list of field names (e.g. "Id") to
37790	// unconditionally include in API requests. By default, fields with
37791	// empty or default values are omitted from API requests. However, any
37792	// non-pointer, non-interface field appearing in ForceSendFields will be
37793	// sent to the server regardless of whether the field is empty or not.
37794	// This may be used to include empty fields in Patch requests.
37795	ForceSendFields []string `json:"-"`
37796
37797	// NullFields is a list of field names (e.g. "Id") to include in API
37798	// requests with the JSON null value. By default, fields with empty
37799	// values are omitted from API requests. However, any field with an
37800	// empty value appearing in NullFields will be sent to the server as
37801	// null. It is an error if a field in this list has a non-empty value.
37802	// This may be used to include null fields in Patch requests.
37803	NullFields []string `json:"-"`
37804}
37805
37806func (s *RouterList) MarshalJSON() ([]byte, error) {
37807	type NoMethod RouterList
37808	raw := NoMethod(*s)
37809	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37810}
37811
37812// RouterListWarning: [Output Only] Informational warning message.
37813type RouterListWarning struct {
37814	// Code: [Output Only] A warning code, if applicable. For example,
37815	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
37816	// the response.
37817	//
37818	// Possible values:
37819	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
37820	// changes made by a failed operation.
37821	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
37822	// created.
37823	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
37824	// resources has a type marked as deprecated
37825	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
37826	// that is larger than image size.
37827	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
37828	// resources has a type marked as experimental
37829	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
37830	// call
37831	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
37832	// overridden. Deprecated unused field.
37833	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
37834	// injected kernel, which is deprecated.
37835	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
37836	// exceedingly large number of resources
37837	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
37838	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
37839	// not assigned to an instance on the network.
37840	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
37841	// ip forward.
37842	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
37843	// refers to an instance that does not exist.
37844	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
37845	// URL refers to an instance that is not on the same network as the
37846	// route.
37847	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
37848	// have a status of RUNNING.
37849	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
37850	// continue the process despite the mentioned error.
37851	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
37852	// page.
37853	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
37854	// missing due to errors
37855	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
37856	// that requires a TOS they have not accepted.
37857	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
37858	// resource is in use.
37859	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
37860	// auto-delete could not be deleted because they were in use.
37861	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
37862	// ignored.
37863	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
37864	// instance group manager is valid as such, but its application does not
37865	// make a lot of sense, because it allows only single instance in
37866	// instance group.
37867	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
37868	// are present
37869	//   "UNREACHABLE" - A given scope cannot be reached.
37870	Code string `json:"code,omitempty"`
37871
37872	// Data: [Output Only] Metadata about this warning in key: value format.
37873	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
37874	// }
37875	Data []*RouterListWarningData `json:"data,omitempty"`
37876
37877	// Message: [Output Only] A human-readable description of the warning
37878	// code.
37879	Message string `json:"message,omitempty"`
37880
37881	// ForceSendFields is a list of field names (e.g. "Code") to
37882	// unconditionally include in API requests. By default, fields with
37883	// empty or default values are omitted from API requests. However, any
37884	// non-pointer, non-interface field appearing in ForceSendFields will be
37885	// sent to the server regardless of whether the field is empty or not.
37886	// This may be used to include empty fields in Patch requests.
37887	ForceSendFields []string `json:"-"`
37888
37889	// NullFields is a list of field names (e.g. "Code") to include in API
37890	// requests with the JSON null value. By default, fields with empty
37891	// values are omitted from API requests. However, any field with an
37892	// empty value appearing in NullFields will be sent to the server as
37893	// null. It is an error if a field in this list has a non-empty value.
37894	// This may be used to include null fields in Patch requests.
37895	NullFields []string `json:"-"`
37896}
37897
37898func (s *RouterListWarning) MarshalJSON() ([]byte, error) {
37899	type NoMethod RouterListWarning
37900	raw := NoMethod(*s)
37901	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37902}
37903
37904type RouterListWarningData struct {
37905	// Key: [Output Only] A key that provides more detail on the warning
37906	// being returned. For example, for warnings where there are no results
37907	// in a list request for a particular zone, this key might be scope and
37908	// the key value might be the zone name. Other examples might be a key
37909	// indicating a deprecated resource and a suggested replacement, or a
37910	// warning about invalid network settings (for example, if an instance
37911	// attempts to perform IP forwarding but is not enabled for IP
37912	// forwarding).
37913	Key string `json:"key,omitempty"`
37914
37915	// Value: [Output Only] A warning data value corresponding to the key.
37916	Value string `json:"value,omitempty"`
37917
37918	// ForceSendFields is a list of field names (e.g. "Key") to
37919	// unconditionally include in API requests. By default, fields with
37920	// empty or default values are omitted from API requests. However, any
37921	// non-pointer, non-interface field appearing in ForceSendFields will be
37922	// sent to the server regardless of whether the field is empty or not.
37923	// This may be used to include empty fields in Patch requests.
37924	ForceSendFields []string `json:"-"`
37925
37926	// NullFields is a list of field names (e.g. "Key") to include in API
37927	// requests with the JSON null value. By default, fields with empty
37928	// values are omitted from API requests. However, any field with an
37929	// empty value appearing in NullFields will be sent to the server as
37930	// null. It is an error if a field in this list has a non-empty value.
37931	// This may be used to include null fields in Patch requests.
37932	NullFields []string `json:"-"`
37933}
37934
37935func (s *RouterListWarningData) MarshalJSON() ([]byte, error) {
37936	type NoMethod RouterListWarningData
37937	raw := NoMethod(*s)
37938	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37939}
37940
37941// RouterNat: Represents a Nat resource. It enables the VMs within the
37942// specified subnetworks to access Internet without external IP
37943// addresses. It specifies a list of subnetworks (and the ranges within)
37944// that want to use NAT. Customers can also provide the external IPs
37945// that would be used for NAT. GCP would auto-allocate ephemeral IPs if
37946// no external IPs are provided.
37947type RouterNat struct {
37948	// DrainNatIps: A list of URLs of the IP resources to be drained. These
37949	// IPs must be valid static external IPs that have been assigned to the
37950	// NAT. These IPs should be used for updating/patching a NAT only.
37951	DrainNatIps []string `json:"drainNatIps,omitempty"`
37952
37953	EnableEndpointIndependentMapping bool `json:"enableEndpointIndependentMapping,omitempty"`
37954
37955	// IcmpIdleTimeoutSec: Timeout (in seconds) for ICMP connections.
37956	// Defaults to 30s if not set.
37957	IcmpIdleTimeoutSec int64 `json:"icmpIdleTimeoutSec,omitempty"`
37958
37959	// LogConfig: Configure logging on this NAT.
37960	LogConfig *RouterNatLogConfig `json:"logConfig,omitempty"`
37961
37962	// MinPortsPerVm: Minimum number of ports allocated to a VM from this
37963	// NAT config. If not set, a default number of ports is allocated to a
37964	// VM. This is rounded up to the nearest power of 2. For example, if the
37965	// value of this field is 50, at least 64 ports are allocated to a VM.
37966	MinPortsPerVm int64 `json:"minPortsPerVm,omitempty"`
37967
37968	// Name: Unique name of this Nat service. The name must be 1-63
37969	// characters long and comply with RFC1035.
37970	Name string `json:"name,omitempty"`
37971
37972	// NatIpAllocateOption: Specify the NatIpAllocateOption, which can take
37973	// one of the following values: - MANUAL_ONLY: Uses only Nat IP
37974	// addresses provided by customers. When there are not enough specified
37975	// Nat IPs, the Nat service fails for new VMs. - AUTO_ONLY: Nat IPs are
37976	// allocated by Google Cloud Platform; customers can't specify any Nat
37977	// IPs. When choosing AUTO_ONLY, then nat_ip should be empty.
37978	//
37979	// Possible values:
37980	//   "AUTO_ONLY" - Nat IPs are allocated by GCP; customers can not
37981	// specify any Nat IPs.
37982	//   "MANUAL_ONLY" - Only use Nat IPs provided by customers. When
37983	// specified Nat IPs are not enough then the Nat service fails for new
37984	// VMs.
37985	NatIpAllocateOption string `json:"natIpAllocateOption,omitempty"`
37986
37987	// NatIps: A list of URLs of the IP resources used for this Nat service.
37988	// These IP addresses must be valid static external IP addresses
37989	// assigned to the project.
37990	NatIps []string `json:"natIps,omitempty"`
37991
37992	// Rules: A list of rules associated with this NAT.
37993	Rules []*RouterNatRule `json:"rules,omitempty"`
37994
37995	// SourceSubnetworkIpRangesToNat: Specify the Nat option, which can take
37996	// one of the following values: - ALL_SUBNETWORKS_ALL_IP_RANGES: All of
37997	// the IP ranges in every Subnetwork are allowed to Nat. -
37998	// ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges
37999	// in every Subnetwork are allowed to Nat. - LIST_OF_SUBNETWORKS: A list
38000	// of Subnetworks are allowed to Nat (specified in the field subnetwork
38001	// below) The default is SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED.
38002	// Note that if this field contains ALL_SUBNETWORKS_ALL_IP_RANGES or
38003	// ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any
38004	// other Router.Nat section in any Router for this network in this
38005	// region.
38006	//
38007	// Possible values:
38008	//   "ALL_SUBNETWORKS_ALL_IP_RANGES" - All the IP ranges in every
38009	// Subnetwork are allowed to Nat.
38010	//   "ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES" - All the primary IP ranges
38011	// in every Subnetwork are allowed to Nat.
38012	//   "LIST_OF_SUBNETWORKS" - A list of Subnetworks are allowed to Nat
38013	// (specified in the field subnetwork below)
38014	SourceSubnetworkIpRangesToNat string `json:"sourceSubnetworkIpRangesToNat,omitempty"`
38015
38016	// Subnetworks: A list of Subnetwork resources whose traffic should be
38017	// translated by NAT Gateway. It is used only when LIST_OF_SUBNETWORKS
38018	// is selected for the SubnetworkIpRangeToNatOption above.
38019	Subnetworks []*RouterNatSubnetworkToNat `json:"subnetworks,omitempty"`
38020
38021	// TcpEstablishedIdleTimeoutSec: Timeout (in seconds) for TCP
38022	// established connections. Defaults to 1200s if not set.
38023	TcpEstablishedIdleTimeoutSec int64 `json:"tcpEstablishedIdleTimeoutSec,omitempty"`
38024
38025	// TcpTimeWaitTimeoutSec: Timeout (in seconds) for TCP connections that
38026	// are in TIME_WAIT state. Defaults to 120s if not set.
38027	TcpTimeWaitTimeoutSec int64 `json:"tcpTimeWaitTimeoutSec,omitempty"`
38028
38029	// TcpTransitoryIdleTimeoutSec: Timeout (in seconds) for TCP transitory
38030	// connections. Defaults to 30s if not set.
38031	TcpTransitoryIdleTimeoutSec int64 `json:"tcpTransitoryIdleTimeoutSec,omitempty"`
38032
38033	// UdpIdleTimeoutSec: Timeout (in seconds) for UDP connections. Defaults
38034	// to 30s if not set.
38035	UdpIdleTimeoutSec int64 `json:"udpIdleTimeoutSec,omitempty"`
38036
38037	// ForceSendFields is a list of field names (e.g. "DrainNatIps") to
38038	// unconditionally include in API requests. By default, fields with
38039	// empty or default values are omitted from API requests. However, any
38040	// non-pointer, non-interface field appearing in ForceSendFields will be
38041	// sent to the server regardless of whether the field is empty or not.
38042	// This may be used to include empty fields in Patch requests.
38043	ForceSendFields []string `json:"-"`
38044
38045	// NullFields is a list of field names (e.g. "DrainNatIps") to include
38046	// in API requests with the JSON null value. By default, fields with
38047	// empty values are omitted from API requests. However, any field with
38048	// an empty value appearing in NullFields will be sent to the server as
38049	// null. It is an error if a field in this list has a non-empty value.
38050	// This may be used to include null fields in Patch requests.
38051	NullFields []string `json:"-"`
38052}
38053
38054func (s *RouterNat) MarshalJSON() ([]byte, error) {
38055	type NoMethod RouterNat
38056	raw := NoMethod(*s)
38057	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38058}
38059
38060// RouterNatLogConfig: Configuration of logging on a NAT.
38061type RouterNatLogConfig struct {
38062	// Enable: Indicates whether or not to export logs. This is false by
38063	// default.
38064	Enable bool `json:"enable,omitempty"`
38065
38066	// Filter: Specify the desired filtering of logs on this NAT. If
38067	// unspecified, logs are exported for all connections handled by this
38068	// NAT. This option can take one of the following values: - ERRORS_ONLY:
38069	// Export logs only for connection failures. - TRANSLATIONS_ONLY: Export
38070	// logs only for successful connections. - ALL: Export logs for all
38071	// connections, successful and unsuccessful.
38072	//
38073	// Possible values:
38074	//   "ALL" - Export logs for all (successful and unsuccessful)
38075	// connections.
38076	//   "ERRORS_ONLY" - Export logs for connection failures only.
38077	//   "TRANSLATIONS_ONLY" - Export logs for successful connections only.
38078	Filter string `json:"filter,omitempty"`
38079
38080	// ForceSendFields is a list of field names (e.g. "Enable") to
38081	// unconditionally include in API requests. By default, fields with
38082	// empty or default values are omitted from API requests. However, any
38083	// non-pointer, non-interface field appearing in ForceSendFields will be
38084	// sent to the server regardless of whether the field is empty or not.
38085	// This may be used to include empty fields in Patch requests.
38086	ForceSendFields []string `json:"-"`
38087
38088	// NullFields is a list of field names (e.g. "Enable") to include in API
38089	// requests with the JSON null value. By default, fields with empty
38090	// values are omitted from API requests. However, any field with an
38091	// empty value appearing in NullFields will be sent to the server as
38092	// null. It is an error if a field in this list has a non-empty value.
38093	// This may be used to include null fields in Patch requests.
38094	NullFields []string `json:"-"`
38095}
38096
38097func (s *RouterNatLogConfig) MarshalJSON() ([]byte, error) {
38098	type NoMethod RouterNatLogConfig
38099	raw := NoMethod(*s)
38100	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38101}
38102
38103type RouterNatRule struct {
38104	// Action: The action to be enforced for traffic that matches this rule.
38105	Action *RouterNatRuleAction `json:"action,omitempty"`
38106
38107	// Description: An optional description of this rule.
38108	Description string `json:"description,omitempty"`
38109
38110	// Match: CEL expression that specifies the match condition that egress
38111	// traffic from a VM is evaluated against. If it evaluates to true, the
38112	// corresponding `action` is enforced. The following examples are valid
38113	// match expressions for public NAT: "inIpRange(destination.ip,
38114	// '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')"
38115	// "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" The
38116	// following example is a valid match expression for private NAT:
38117	// "nexthop.hub == '/projects/my-project/global/hub/hub-1'"
38118	Match string `json:"match,omitempty"`
38119
38120	// RuleNumber: An integer uniquely identifying a rule in the list. The
38121	// rule number must be a positive value between 0 and 65000, and must be
38122	// unique among rules within a NAT.
38123	RuleNumber int64 `json:"ruleNumber,omitempty"`
38124
38125	// ForceSendFields is a list of field names (e.g. "Action") to
38126	// unconditionally include in API requests. By default, fields with
38127	// empty or default values are omitted from API requests. However, any
38128	// non-pointer, non-interface field appearing in ForceSendFields will be
38129	// sent to the server regardless of whether the field is empty or not.
38130	// This may be used to include empty fields in Patch requests.
38131	ForceSendFields []string `json:"-"`
38132
38133	// NullFields is a list of field names (e.g. "Action") to include in API
38134	// requests with the JSON null value. By default, fields with empty
38135	// values are omitted from API requests. However, any field with an
38136	// empty value appearing in NullFields will be sent to the server as
38137	// null. It is an error if a field in this list has a non-empty value.
38138	// This may be used to include null fields in Patch requests.
38139	NullFields []string `json:"-"`
38140}
38141
38142func (s *RouterNatRule) MarshalJSON() ([]byte, error) {
38143	type NoMethod RouterNatRule
38144	raw := NoMethod(*s)
38145	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38146}
38147
38148type RouterNatRuleAction struct {
38149	// SourceNatActiveIps: A list of URLs of the IP resources used for this
38150	// NAT rule. These IP addresses must be valid static external IP
38151	// addresses assigned to the project. This field is used for public NAT.
38152	SourceNatActiveIps []string `json:"sourceNatActiveIps,omitempty"`
38153
38154	// SourceNatDrainIps: A list of URLs of the IP resources to be drained.
38155	// These IPs must be valid static external IPs that have been assigned
38156	// to the NAT. These IPs should be used for updating/patching a NAT rule
38157	// only. This field is used for public NAT.
38158	SourceNatDrainIps []string `json:"sourceNatDrainIps,omitempty"`
38159
38160	// ForceSendFields is a list of field names (e.g. "SourceNatActiveIps")
38161	// to unconditionally include in API requests. By default, fields with
38162	// empty or default values are omitted from API requests. However, any
38163	// non-pointer, non-interface field appearing in ForceSendFields will be
38164	// sent to the server regardless of whether the field is empty or not.
38165	// This may be used to include empty fields in Patch requests.
38166	ForceSendFields []string `json:"-"`
38167
38168	// NullFields is a list of field names (e.g. "SourceNatActiveIps") to
38169	// include in API requests with the JSON null value. By default, fields
38170	// with empty values are omitted from API requests. However, any field
38171	// with an empty value appearing in NullFields will be sent to the
38172	// server as null. It is an error if a field in this list has a
38173	// non-empty value. This may be used to include null fields in Patch
38174	// requests.
38175	NullFields []string `json:"-"`
38176}
38177
38178func (s *RouterNatRuleAction) MarshalJSON() ([]byte, error) {
38179	type NoMethod RouterNatRuleAction
38180	raw := NoMethod(*s)
38181	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38182}
38183
38184// RouterNatSubnetworkToNat: Defines the IP ranges that want to use NAT
38185// for a subnetwork.
38186type RouterNatSubnetworkToNat struct {
38187	// Name: URL for the subnetwork resource that will use NAT.
38188	Name string `json:"name,omitempty"`
38189
38190	// SecondaryIpRangeNames: A list of the secondary ranges of the
38191	// Subnetwork that are allowed to use NAT. This can be populated only if
38192	// "LIST_OF_SECONDARY_IP_RANGES" is one of the values in
38193	// source_ip_ranges_to_nat.
38194	SecondaryIpRangeNames []string `json:"secondaryIpRangeNames,omitempty"`
38195
38196	// SourceIpRangesToNat: Specify the options for NAT ranges in the
38197	// Subnetwork. All options of a single value are valid except
38198	// NAT_IP_RANGE_OPTION_UNSPECIFIED. The only valid option with multiple
38199	// values is: ["PRIMARY_IP_RANGE", "LIST_OF_SECONDARY_IP_RANGES"]
38200	// Default: [ALL_IP_RANGES]
38201	//
38202	// Possible values:
38203	//   "ALL_IP_RANGES" - The primary and all the secondary ranges are
38204	// allowed to Nat.
38205	//   "LIST_OF_SECONDARY_IP_RANGES" - A list of secondary ranges are
38206	// allowed to Nat.
38207	//   "PRIMARY_IP_RANGE" - The primary range is allowed to Nat.
38208	SourceIpRangesToNat []string `json:"sourceIpRangesToNat,omitempty"`
38209
38210	// ForceSendFields is a list of field names (e.g. "Name") to
38211	// unconditionally include in API requests. By default, fields with
38212	// empty or default values are omitted from API requests. However, any
38213	// non-pointer, non-interface field appearing in ForceSendFields will be
38214	// sent to the server regardless of whether the field is empty or not.
38215	// This may be used to include empty fields in Patch requests.
38216	ForceSendFields []string `json:"-"`
38217
38218	// NullFields is a list of field names (e.g. "Name") to include in API
38219	// requests with the JSON null value. By default, fields with empty
38220	// values are omitted from API requests. However, any field with an
38221	// empty value appearing in NullFields will be sent to the server as
38222	// null. It is an error if a field in this list has a non-empty value.
38223	// This may be used to include null fields in Patch requests.
38224	NullFields []string `json:"-"`
38225}
38226
38227func (s *RouterNatSubnetworkToNat) MarshalJSON() ([]byte, error) {
38228	type NoMethod RouterNatSubnetworkToNat
38229	raw := NoMethod(*s)
38230	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38231}
38232
38233type RouterStatus struct {
38234	// BestRoutes: Best routes for this router's network.
38235	BestRoutes []*Route `json:"bestRoutes,omitempty"`
38236
38237	// BestRoutesForRouter: Best routes learned by this router.
38238	BestRoutesForRouter []*Route `json:"bestRoutesForRouter,omitempty"`
38239
38240	BgpPeerStatus []*RouterStatusBgpPeerStatus `json:"bgpPeerStatus,omitempty"`
38241
38242	NatStatus []*RouterStatusNatStatus `json:"natStatus,omitempty"`
38243
38244	// Network: URI of the network to which this router belongs.
38245	Network string `json:"network,omitempty"`
38246
38247	// ForceSendFields is a list of field names (e.g. "BestRoutes") to
38248	// unconditionally include in API requests. By default, fields with
38249	// empty or default values are omitted from API requests. However, any
38250	// non-pointer, non-interface field appearing in ForceSendFields will be
38251	// sent to the server regardless of whether the field is empty or not.
38252	// This may be used to include empty fields in Patch requests.
38253	ForceSendFields []string `json:"-"`
38254
38255	// NullFields is a list of field names (e.g. "BestRoutes") to include in
38256	// API requests with the JSON null value. By default, fields with empty
38257	// values are omitted from API requests. However, any field with an
38258	// empty value appearing in NullFields will be sent to the server as
38259	// null. It is an error if a field in this list has a non-empty value.
38260	// This may be used to include null fields in Patch requests.
38261	NullFields []string `json:"-"`
38262}
38263
38264func (s *RouterStatus) MarshalJSON() ([]byte, error) {
38265	type NoMethod RouterStatus
38266	raw := NoMethod(*s)
38267	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38268}
38269
38270type RouterStatusBgpPeerStatus struct {
38271	// AdvertisedRoutes: Routes that were advertised to the remote BGP peer
38272	AdvertisedRoutes []*Route `json:"advertisedRoutes,omitempty"`
38273
38274	// IpAddress: IP address of the local BGP interface.
38275	IpAddress string `json:"ipAddress,omitempty"`
38276
38277	// LinkedVpnTunnel: URL of the VPN tunnel that this BGP peer controls.
38278	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
38279
38280	// Name: Name of this BGP peer. Unique within the Routers resource.
38281	Name string `json:"name,omitempty"`
38282
38283	// NumLearnedRoutes: Number of routes learned from the remote BGP Peer.
38284	NumLearnedRoutes int64 `json:"numLearnedRoutes,omitempty"`
38285
38286	// PeerIpAddress: IP address of the remote BGP interface.
38287	PeerIpAddress string `json:"peerIpAddress,omitempty"`
38288
38289	// RouterApplianceInstance: [Output only] URI of the VM instance that is
38290	// used as third-party router appliances such as Next Gen Firewalls,
38291	// Virtual Routers, or Router Appliances. The VM instance is the peer
38292	// side of the BGP session.
38293	RouterApplianceInstance string `json:"routerApplianceInstance,omitempty"`
38294
38295	// State: BGP state as specified in RFC1771.
38296	State string `json:"state,omitempty"`
38297
38298	// Status: Status of the BGP peer: {UP, DOWN}
38299	//
38300	// Possible values:
38301	//   "DOWN"
38302	//   "UNKNOWN"
38303	//   "UP"
38304	Status string `json:"status,omitempty"`
38305
38306	// Uptime: Time this session has been up. Format: 14 years, 51 weeks, 6
38307	// days, 23 hours, 59 minutes, 59 seconds
38308	Uptime string `json:"uptime,omitempty"`
38309
38310	// UptimeSeconds: Time this session has been up, in seconds. Format: 145
38311	UptimeSeconds string `json:"uptimeSeconds,omitempty"`
38312
38313	// ForceSendFields is a list of field names (e.g. "AdvertisedRoutes") to
38314	// unconditionally include in API requests. By default, fields with
38315	// empty or default values are omitted from API requests. However, any
38316	// non-pointer, non-interface field appearing in ForceSendFields will be
38317	// sent to the server regardless of whether the field is empty or not.
38318	// This may be used to include empty fields in Patch requests.
38319	ForceSendFields []string `json:"-"`
38320
38321	// NullFields is a list of field names (e.g. "AdvertisedRoutes") to
38322	// include in API requests with the JSON null value. By default, fields
38323	// with empty values are omitted from API requests. However, any field
38324	// with an empty value appearing in NullFields will be sent to the
38325	// server as null. It is an error if a field in this list has a
38326	// non-empty value. This may be used to include null fields in Patch
38327	// requests.
38328	NullFields []string `json:"-"`
38329}
38330
38331func (s *RouterStatusBgpPeerStatus) MarshalJSON() ([]byte, error) {
38332	type NoMethod RouterStatusBgpPeerStatus
38333	raw := NoMethod(*s)
38334	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38335}
38336
38337// RouterStatusNatStatus: Status of a NAT contained in this router.
38338type RouterStatusNatStatus struct {
38339	// AutoAllocatedNatIps: A list of IPs auto-allocated for NAT. Example:
38340	// ["1.1.1.1", "129.2.16.89"]
38341	AutoAllocatedNatIps []string `json:"autoAllocatedNatIps,omitempty"`
38342
38343	// DrainAutoAllocatedNatIps: A list of IPs auto-allocated for NAT that
38344	// are in drain mode. Example: ["1.1.1.1", "179.12.26.133"].
38345	DrainAutoAllocatedNatIps []string `json:"drainAutoAllocatedNatIps,omitempty"`
38346
38347	// DrainUserAllocatedNatIps: A list of IPs user-allocated for NAT that
38348	// are in drain mode. Example: ["1.1.1.1", "179.12.26.133"].
38349	DrainUserAllocatedNatIps []string `json:"drainUserAllocatedNatIps,omitempty"`
38350
38351	// MinExtraNatIpsNeeded: The number of extra IPs to allocate. This will
38352	// be greater than 0 only if user-specified IPs are NOT enough to allow
38353	// all configured VMs to use NAT. This value is meaningful only when
38354	// auto-allocation of NAT IPs is *not* used.
38355	MinExtraNatIpsNeeded int64 `json:"minExtraNatIpsNeeded,omitempty"`
38356
38357	// Name: Unique name of this NAT.
38358	Name string `json:"name,omitempty"`
38359
38360	// NumVmEndpointsWithNatMappings: Number of VM endpoints (i.e., Nics)
38361	// that can use NAT.
38362	NumVmEndpointsWithNatMappings int64 `json:"numVmEndpointsWithNatMappings,omitempty"`
38363
38364	// RuleStatus: Status of rules in this NAT.
38365	RuleStatus []*RouterStatusNatStatusNatRuleStatus `json:"ruleStatus,omitempty"`
38366
38367	// UserAllocatedNatIpResources: A list of fully qualified URLs of
38368	// reserved IP address resources.
38369	UserAllocatedNatIpResources []string `json:"userAllocatedNatIpResources,omitempty"`
38370
38371	// UserAllocatedNatIps: A list of IPs user-allocated for NAT. They will
38372	// be raw IP strings like "179.12.26.133".
38373	UserAllocatedNatIps []string `json:"userAllocatedNatIps,omitempty"`
38374
38375	// ForceSendFields is a list of field names (e.g. "AutoAllocatedNatIps")
38376	// to unconditionally include in API requests. By default, fields with
38377	// empty or default values are omitted from API requests. However, any
38378	// non-pointer, non-interface field appearing in ForceSendFields will be
38379	// sent to the server regardless of whether the field is empty or not.
38380	// This may be used to include empty fields in Patch requests.
38381	ForceSendFields []string `json:"-"`
38382
38383	// NullFields is a list of field names (e.g. "AutoAllocatedNatIps") to
38384	// include in API requests with the JSON null value. By default, fields
38385	// with empty values are omitted from API requests. However, any field
38386	// with an empty value appearing in NullFields will be sent to the
38387	// server as null. It is an error if a field in this list has a
38388	// non-empty value. This may be used to include null fields in Patch
38389	// requests.
38390	NullFields []string `json:"-"`
38391}
38392
38393func (s *RouterStatusNatStatus) MarshalJSON() ([]byte, error) {
38394	type NoMethod RouterStatusNatStatus
38395	raw := NoMethod(*s)
38396	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38397}
38398
38399// RouterStatusNatStatusNatRuleStatus: Status of a NAT Rule contained in
38400// this NAT.
38401type RouterStatusNatStatusNatRuleStatus struct {
38402	// ActiveNatIps: A list of active IPs for NAT. Example: ["1.1.1.1",
38403	// "179.12.26.133"].
38404	ActiveNatIps []string `json:"activeNatIps,omitempty"`
38405
38406	// DrainNatIps: A list of IPs for NAT that are in drain mode. Example:
38407	// ["1.1.1.1", "179.12.26.133"].
38408	DrainNatIps []string `json:"drainNatIps,omitempty"`
38409
38410	// MinExtraIpsNeeded: The number of extra IPs to allocate. This will be
38411	// greater than 0 only if the existing IPs in this NAT Rule are NOT
38412	// enough to allow all configured VMs to use NAT.
38413	MinExtraIpsNeeded int64 `json:"minExtraIpsNeeded,omitempty"`
38414
38415	// NumVmEndpointsWithNatMappings: Number of VM endpoints (i.e., NICs)
38416	// that have NAT Mappings from this NAT Rule.
38417	NumVmEndpointsWithNatMappings int64 `json:"numVmEndpointsWithNatMappings,omitempty"`
38418
38419	// RuleNumber: Rule number of the rule.
38420	RuleNumber int64 `json:"ruleNumber,omitempty"`
38421
38422	// ForceSendFields is a list of field names (e.g. "ActiveNatIps") to
38423	// unconditionally include in API requests. By default, fields with
38424	// empty or default values are omitted from API requests. However, any
38425	// non-pointer, non-interface field appearing in ForceSendFields will be
38426	// sent to the server regardless of whether the field is empty or not.
38427	// This may be used to include empty fields in Patch requests.
38428	ForceSendFields []string `json:"-"`
38429
38430	// NullFields is a list of field names (e.g. "ActiveNatIps") to include
38431	// in API requests with the JSON null value. By default, fields with
38432	// empty values are omitted from API requests. However, any field with
38433	// an empty value appearing in NullFields will be sent to the server as
38434	// null. It is an error if a field in this list has a non-empty value.
38435	// This may be used to include null fields in Patch requests.
38436	NullFields []string `json:"-"`
38437}
38438
38439func (s *RouterStatusNatStatusNatRuleStatus) MarshalJSON() ([]byte, error) {
38440	type NoMethod RouterStatusNatStatusNatRuleStatus
38441	raw := NoMethod(*s)
38442	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38443}
38444
38445type RouterStatusResponse struct {
38446	// Kind: Type of resource.
38447	Kind string `json:"kind,omitempty"`
38448
38449	Result *RouterStatus `json:"result,omitempty"`
38450
38451	// ServerResponse contains the HTTP response code and headers from the
38452	// server.
38453	googleapi.ServerResponse `json:"-"`
38454
38455	// ForceSendFields is a list of field names (e.g. "Kind") to
38456	// unconditionally include in API requests. By default, fields with
38457	// empty or default values are omitted from API requests. However, any
38458	// non-pointer, non-interface field appearing in ForceSendFields will be
38459	// sent to the server regardless of whether the field is empty or not.
38460	// This may be used to include empty fields in Patch requests.
38461	ForceSendFields []string `json:"-"`
38462
38463	// NullFields is a list of field names (e.g. "Kind") to include in API
38464	// requests with the JSON null value. By default, fields with empty
38465	// values are omitted from API requests. However, any field with an
38466	// empty value appearing in NullFields will be sent to the server as
38467	// null. It is an error if a field in this list has a non-empty value.
38468	// This may be used to include null fields in Patch requests.
38469	NullFields []string `json:"-"`
38470}
38471
38472func (s *RouterStatusResponse) MarshalJSON() ([]byte, error) {
38473	type NoMethod RouterStatusResponse
38474	raw := NoMethod(*s)
38475	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38476}
38477
38478type RoutersPreviewResponse struct {
38479	// Resource: Preview of given router.
38480	Resource *Router `json:"resource,omitempty"`
38481
38482	// ServerResponse contains the HTTP response code and headers from the
38483	// server.
38484	googleapi.ServerResponse `json:"-"`
38485
38486	// ForceSendFields is a list of field names (e.g. "Resource") to
38487	// unconditionally include in API requests. By default, fields with
38488	// empty or default values are omitted from API requests. However, any
38489	// non-pointer, non-interface field appearing in ForceSendFields will be
38490	// sent to the server regardless of whether the field is empty or not.
38491	// This may be used to include empty fields in Patch requests.
38492	ForceSendFields []string `json:"-"`
38493
38494	// NullFields is a list of field names (e.g. "Resource") to include in
38495	// API requests with the JSON null value. By default, fields with empty
38496	// values are omitted from API requests. However, any field with an
38497	// empty value appearing in NullFields will be sent to the server as
38498	// null. It is an error if a field in this list has a non-empty value.
38499	// This may be used to include null fields in Patch requests.
38500	NullFields []string `json:"-"`
38501}
38502
38503func (s *RoutersPreviewResponse) MarshalJSON() ([]byte, error) {
38504	type NoMethod RoutersPreviewResponse
38505	raw := NoMethod(*s)
38506	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38507}
38508
38509type RoutersScopedList struct {
38510	// Routers: A list of routers contained in this scope.
38511	Routers []*Router `json:"routers,omitempty"`
38512
38513	// Warning: Informational warning which replaces the list of routers
38514	// when the list is empty.
38515	Warning *RoutersScopedListWarning `json:"warning,omitempty"`
38516
38517	// ForceSendFields is a list of field names (e.g. "Routers") to
38518	// unconditionally include in API requests. By default, fields with
38519	// empty or default values are omitted from API requests. However, any
38520	// non-pointer, non-interface field appearing in ForceSendFields will be
38521	// sent to the server regardless of whether the field is empty or not.
38522	// This may be used to include empty fields in Patch requests.
38523	ForceSendFields []string `json:"-"`
38524
38525	// NullFields is a list of field names (e.g. "Routers") to include in
38526	// API requests with the JSON null value. By default, fields with empty
38527	// values are omitted from API requests. However, any field with an
38528	// empty value appearing in NullFields will be sent to the server as
38529	// null. It is an error if a field in this list has a non-empty value.
38530	// This may be used to include null fields in Patch requests.
38531	NullFields []string `json:"-"`
38532}
38533
38534func (s *RoutersScopedList) MarshalJSON() ([]byte, error) {
38535	type NoMethod RoutersScopedList
38536	raw := NoMethod(*s)
38537	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38538}
38539
38540// RoutersScopedListWarning: Informational warning which replaces the
38541// list of routers when the list is empty.
38542type RoutersScopedListWarning struct {
38543	// Code: [Output Only] A warning code, if applicable. For example,
38544	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
38545	// the response.
38546	//
38547	// Possible values:
38548	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
38549	// changes made by a failed operation.
38550	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
38551	// created.
38552	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
38553	// resources has a type marked as deprecated
38554	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
38555	// that is larger than image size.
38556	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
38557	// resources has a type marked as experimental
38558	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
38559	// call
38560	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
38561	// overridden. Deprecated unused field.
38562	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
38563	// injected kernel, which is deprecated.
38564	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
38565	// exceedingly large number of resources
38566	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
38567	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
38568	// not assigned to an instance on the network.
38569	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
38570	// ip forward.
38571	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
38572	// refers to an instance that does not exist.
38573	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
38574	// URL refers to an instance that is not on the same network as the
38575	// route.
38576	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
38577	// have a status of RUNNING.
38578	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
38579	// continue the process despite the mentioned error.
38580	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
38581	// page.
38582	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
38583	// missing due to errors
38584	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
38585	// that requires a TOS they have not accepted.
38586	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
38587	// resource is in use.
38588	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
38589	// auto-delete could not be deleted because they were in use.
38590	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
38591	// ignored.
38592	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
38593	// instance group manager is valid as such, but its application does not
38594	// make a lot of sense, because it allows only single instance in
38595	// instance group.
38596	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
38597	// are present
38598	//   "UNREACHABLE" - A given scope cannot be reached.
38599	Code string `json:"code,omitempty"`
38600
38601	// Data: [Output Only] Metadata about this warning in key: value format.
38602	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
38603	// }
38604	Data []*RoutersScopedListWarningData `json:"data,omitempty"`
38605
38606	// Message: [Output Only] A human-readable description of the warning
38607	// code.
38608	Message string `json:"message,omitempty"`
38609
38610	// ForceSendFields is a list of field names (e.g. "Code") to
38611	// unconditionally include in API requests. By default, fields with
38612	// empty or default values are omitted from API requests. However, any
38613	// non-pointer, non-interface field appearing in ForceSendFields will be
38614	// sent to the server regardless of whether the field is empty or not.
38615	// This may be used to include empty fields in Patch requests.
38616	ForceSendFields []string `json:"-"`
38617
38618	// NullFields is a list of field names (e.g. "Code") to include in API
38619	// requests with the JSON null value. By default, fields with empty
38620	// values are omitted from API requests. However, any field with an
38621	// empty value appearing in NullFields will be sent to the server as
38622	// null. It is an error if a field in this list has a non-empty value.
38623	// This may be used to include null fields in Patch requests.
38624	NullFields []string `json:"-"`
38625}
38626
38627func (s *RoutersScopedListWarning) MarshalJSON() ([]byte, error) {
38628	type NoMethod RoutersScopedListWarning
38629	raw := NoMethod(*s)
38630	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38631}
38632
38633type RoutersScopedListWarningData struct {
38634	// Key: [Output Only] A key that provides more detail on the warning
38635	// being returned. For example, for warnings where there are no results
38636	// in a list request for a particular zone, this key might be scope and
38637	// the key value might be the zone name. Other examples might be a key
38638	// indicating a deprecated resource and a suggested replacement, or a
38639	// warning about invalid network settings (for example, if an instance
38640	// attempts to perform IP forwarding but is not enabled for IP
38641	// forwarding).
38642	Key string `json:"key,omitempty"`
38643
38644	// Value: [Output Only] A warning data value corresponding to the key.
38645	Value string `json:"value,omitempty"`
38646
38647	// ForceSendFields is a list of field names (e.g. "Key") to
38648	// unconditionally include in API requests. By default, fields with
38649	// empty or default values are omitted from API requests. However, any
38650	// non-pointer, non-interface field appearing in ForceSendFields will be
38651	// sent to the server regardless of whether the field is empty or not.
38652	// This may be used to include empty fields in Patch requests.
38653	ForceSendFields []string `json:"-"`
38654
38655	// NullFields is a list of field names (e.g. "Key") to include in API
38656	// requests with the JSON null value. By default, fields with empty
38657	// values are omitted from API requests. However, any field with an
38658	// empty value appearing in NullFields will be sent to the server as
38659	// null. It is an error if a field in this list has a non-empty value.
38660	// This may be used to include null fields in Patch requests.
38661	NullFields []string `json:"-"`
38662}
38663
38664func (s *RoutersScopedListWarningData) MarshalJSON() ([]byte, error) {
38665	type NoMethod RoutersScopedListWarningData
38666	raw := NoMethod(*s)
38667	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38668}
38669
38670// Rule: This is deprecated and has no effect. Do not use.
38671type Rule struct {
38672	// Action: This is deprecated and has no effect. Do not use.
38673	//
38674	// Possible values:
38675	//   "ALLOW" - This is deprecated and has no effect. Do not use.
38676	//   "ALLOW_WITH_LOG" - This is deprecated and has no effect. Do not
38677	// use.
38678	//   "DENY" - This is deprecated and has no effect. Do not use.
38679	//   "DENY_WITH_LOG" - This is deprecated and has no effect. Do not use.
38680	//   "LOG" - This is deprecated and has no effect. Do not use.
38681	//   "NO_ACTION" - This is deprecated and has no effect. Do not use.
38682	Action string `json:"action,omitempty"`
38683
38684	// Conditions: This is deprecated and has no effect. Do not use.
38685	Conditions []*Condition `json:"conditions,omitempty"`
38686
38687	// Description: This is deprecated and has no effect. Do not use.
38688	Description string `json:"description,omitempty"`
38689
38690	// Ins: This is deprecated and has no effect. Do not use.
38691	Ins []string `json:"ins,omitempty"`
38692
38693	// LogConfigs: This is deprecated and has no effect. Do not use.
38694	LogConfigs []*LogConfig `json:"logConfigs,omitempty"`
38695
38696	// NotIns: This is deprecated and has no effect. Do not use.
38697	NotIns []string `json:"notIns,omitempty"`
38698
38699	// Permissions: This is deprecated and has no effect. Do not use.
38700	Permissions []string `json:"permissions,omitempty"`
38701
38702	// ForceSendFields is a list of field names (e.g. "Action") to
38703	// unconditionally include in API requests. By default, fields with
38704	// empty or default values are omitted from API requests. However, any
38705	// non-pointer, non-interface field appearing in ForceSendFields will be
38706	// sent to the server regardless of whether the field is empty or not.
38707	// This may be used to include empty fields in Patch requests.
38708	ForceSendFields []string `json:"-"`
38709
38710	// NullFields is a list of field names (e.g. "Action") to include in API
38711	// requests with the JSON null value. By default, fields with empty
38712	// values are omitted from API requests. However, any field with an
38713	// empty value appearing in NullFields will be sent to the server as
38714	// null. It is an error if a field in this list has a non-empty value.
38715	// This may be used to include null fields in Patch requests.
38716	NullFields []string `json:"-"`
38717}
38718
38719func (s *Rule) MarshalJSON() ([]byte, error) {
38720	type NoMethod Rule
38721	raw := NoMethod(*s)
38722	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38723}
38724
38725type SSLHealthCheck struct {
38726	// Port: The TCP port number for the health check request. The default
38727	// value is 443. Valid values are 1 through 65535.
38728	Port int64 `json:"port,omitempty"`
38729
38730	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
38731	// both port and port_name are defined, port takes precedence.
38732	PortName string `json:"portName,omitempty"`
38733
38734	// PortSpecification: Specifies how port is selected for health
38735	// checking, can be one of following values: USE_FIXED_PORT: The port
38736	// number in port is used for health checking. USE_NAMED_PORT: The
38737	// portName is used for health checking. USE_SERVING_PORT: For
38738	// NetworkEndpointGroup, the port specified for each network endpoint is
38739	// used for health checking. For other backends, the port or named port
38740	// specified in the Backend Service is used for health checking. If not
38741	// specified, SSL health check follows behavior specified in port and
38742	// portName fields.
38743	//
38744	// Possible values:
38745	//   "USE_FIXED_PORT" - The port number in port is used for health
38746	// checking.
38747	//   "USE_NAMED_PORT" - The portName is used for health checking.
38748	//   "USE_SERVING_PORT" - For NetworkEndpointGroup, the port specified
38749	// for each network endpoint is used for health checking. For other
38750	// backends, the port or named port specified in the Backend Service is
38751	// used for health checking.
38752	PortSpecification string `json:"portSpecification,omitempty"`
38753
38754	// ProxyHeader: Specifies the type of proxy header to append before
38755	// sending data to the backend, either NONE or PROXY_V1. The default is
38756	// NONE.
38757	//
38758	// Possible values:
38759	//   "NONE"
38760	//   "PROXY_V1"
38761	ProxyHeader string `json:"proxyHeader,omitempty"`
38762
38763	// Request: The application data to send once the SSL connection has
38764	// been established (default value is empty). If both request and
38765	// response are empty, the connection establishment alone will indicate
38766	// health. The request data can only be ASCII.
38767	Request string `json:"request,omitempty"`
38768
38769	// Response: The bytes to match against the beginning of the response
38770	// data. If left empty (the default value), any response will indicate
38771	// health. The response data can only be ASCII.
38772	Response string `json:"response,omitempty"`
38773
38774	// ForceSendFields is a list of field names (e.g. "Port") to
38775	// unconditionally include in API requests. By default, fields with
38776	// empty or default values are omitted from API requests. However, any
38777	// non-pointer, non-interface field appearing in ForceSendFields will be
38778	// sent to the server regardless of whether the field is empty or not.
38779	// This may be used to include empty fields in Patch requests.
38780	ForceSendFields []string `json:"-"`
38781
38782	// NullFields is a list of field names (e.g. "Port") to include in API
38783	// requests with the JSON null value. By default, fields with empty
38784	// values are omitted from API requests. However, any field with an
38785	// empty value appearing in NullFields will be sent to the server as
38786	// null. It is an error if a field in this list has a non-empty value.
38787	// This may be used to include null fields in Patch requests.
38788	NullFields []string `json:"-"`
38789}
38790
38791func (s *SSLHealthCheck) MarshalJSON() ([]byte, error) {
38792	type NoMethod SSLHealthCheck
38793	raw := NoMethod(*s)
38794	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38795}
38796
38797type ScalingScheduleStatus struct {
38798	// LastStartTime: [Output Only] The last time the scaling schedule
38799	// became active. Note: this is a timestamp when a schedule actually
38800	// became active, not when it was planned to do so. The timestamp is in
38801	// RFC3339 text format.
38802	LastStartTime string `json:"lastStartTime,omitempty"`
38803
38804	// NextStartTime: [Output Only] The next time the scaling schedule is to
38805	// become active. Note: this is a timestamp when a schedule is planned
38806	// to run, but the actual time might be slightly different. The
38807	// timestamp is in RFC3339 text format.
38808	NextStartTime string `json:"nextStartTime,omitempty"`
38809
38810	// State: [Output Only] The current state of a scaling schedule.
38811	//
38812	// Possible values:
38813	//   "ACTIVE" - The current autoscaling recommendation is influenced by
38814	// this scaling schedule.
38815	//   "DISABLED" - This scaling schedule has been disabled by the user.
38816	//   "OBSOLETE" - This scaling schedule will never become active again.
38817	//   "READY" - The current autoscaling recommendation is not influenced
38818	// by this scaling schedule.
38819	State string `json:"state,omitempty"`
38820
38821	// ForceSendFields is a list of field names (e.g. "LastStartTime") to
38822	// unconditionally include in API requests. By default, fields with
38823	// empty or default values are omitted from API requests. However, any
38824	// non-pointer, non-interface field appearing in ForceSendFields will be
38825	// sent to the server regardless of whether the field is empty or not.
38826	// This may be used to include empty fields in Patch requests.
38827	ForceSendFields []string `json:"-"`
38828
38829	// NullFields is a list of field names (e.g. "LastStartTime") to include
38830	// in API requests with the JSON null value. By default, fields with
38831	// empty values are omitted from API requests. However, any field with
38832	// an empty value appearing in NullFields will be sent to the server as
38833	// null. It is an error if a field in this list has a non-empty value.
38834	// This may be used to include null fields in Patch requests.
38835	NullFields []string `json:"-"`
38836}
38837
38838func (s *ScalingScheduleStatus) MarshalJSON() ([]byte, error) {
38839	type NoMethod ScalingScheduleStatus
38840	raw := NoMethod(*s)
38841	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38842}
38843
38844// Scheduling: Sets the scheduling options for an Instance. NextID: 21
38845type Scheduling struct {
38846	// AutomaticRestart: Specifies whether the instance should be
38847	// automatically restarted if it is terminated by Compute Engine (not
38848	// terminated by a user). You can only set the automatic restart option
38849	// for standard instances. Preemptible instances cannot be automatically
38850	// restarted. By default, this is set to true so an instance is
38851	// automatically restarted if it is terminated by Compute Engine.
38852	AutomaticRestart *bool `json:"automaticRestart,omitempty"`
38853
38854	// LocationHint: An opaque location hint used to place the instance
38855	// close to other resources. This field is for use by internal tools
38856	// that use the public API.
38857	LocationHint string `json:"locationHint,omitempty"`
38858
38859	// MinNodeCpus: The minimum number of virtual CPUs this instance will
38860	// consume when running on a sole-tenant node.
38861	MinNodeCpus int64 `json:"minNodeCpus,omitempty"`
38862
38863	// NodeAffinities: A set of node affinity and anti-affinity
38864	// configurations. Refer to Configuring node affinity for more
38865	// information. Overrides reservationAffinity.
38866	NodeAffinities []*SchedulingNodeAffinity `json:"nodeAffinities,omitempty"`
38867
38868	// OnHostMaintenance: Defines the maintenance behavior for this
38869	// instance. For standard instances, the default behavior is MIGRATE.
38870	// For preemptible instances, the default and only possible behavior is
38871	// TERMINATE. For more information, see Setting Instance Scheduling
38872	// Options.
38873	//
38874	// Possible values:
38875	//   "MIGRATE" - *[Default]* Allows Compute Engine to automatically
38876	// migrate instances out of the way of maintenance events.
38877	//   "TERMINATE" - Tells Compute Engine to terminate and (optionally)
38878	// restart the instance away from the maintenance activity. If you would
38879	// like your instance to be restarted, set the automaticRestart flag to
38880	// true. Your instance may be restarted more than once, and it may be
38881	// restarted outside the window of maintenance events.
38882	OnHostMaintenance string `json:"onHostMaintenance,omitempty"`
38883
38884	// Preemptible: Defines whether the instance is preemptible. This can
38885	// only be set during instance creation or while the instance is stopped
38886	// and therefore, in a `TERMINATED` state. See Instance Life Cycle for
38887	// more information on the possible instance states.
38888	Preemptible bool `json:"preemptible,omitempty"`
38889
38890	// ForceSendFields is a list of field names (e.g. "AutomaticRestart") to
38891	// unconditionally include in API requests. By default, fields with
38892	// empty or default values are omitted from API requests. However, any
38893	// non-pointer, non-interface field appearing in ForceSendFields will be
38894	// sent to the server regardless of whether the field is empty or not.
38895	// This may be used to include empty fields in Patch requests.
38896	ForceSendFields []string `json:"-"`
38897
38898	// NullFields is a list of field names (e.g. "AutomaticRestart") to
38899	// include in API requests with the JSON null value. By default, fields
38900	// with empty values are omitted from API requests. However, any field
38901	// with an empty value appearing in NullFields will be sent to the
38902	// server as null. It is an error if a field in this list has a
38903	// non-empty value. This may be used to include null fields in Patch
38904	// requests.
38905	NullFields []string `json:"-"`
38906}
38907
38908func (s *Scheduling) MarshalJSON() ([]byte, error) {
38909	type NoMethod Scheduling
38910	raw := NoMethod(*s)
38911	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38912}
38913
38914// SchedulingNodeAffinity: Node Affinity: the configuration of desired
38915// nodes onto which this Instance could be scheduled.
38916type SchedulingNodeAffinity struct {
38917	// Key: Corresponds to the label key of Node resource.
38918	Key string `json:"key,omitempty"`
38919
38920	// Operator: Defines the operation of node selection. Valid operators
38921	// are IN for affinity and NOT_IN for anti-affinity.
38922	//
38923	// Possible values:
38924	//   "IN" - Requires Compute Engine to seek for matched nodes.
38925	//   "NOT_IN" - Requires Compute Engine to avoid certain nodes.
38926	//   "OPERATOR_UNSPECIFIED"
38927	Operator string `json:"operator,omitempty"`
38928
38929	// Values: Corresponds to the label values of Node resource.
38930	Values []string `json:"values,omitempty"`
38931
38932	// ForceSendFields is a list of field names (e.g. "Key") to
38933	// unconditionally include in API requests. By default, fields with
38934	// empty or default values are omitted from API requests. However, any
38935	// non-pointer, non-interface field appearing in ForceSendFields will be
38936	// sent to the server regardless of whether the field is empty or not.
38937	// This may be used to include empty fields in Patch requests.
38938	ForceSendFields []string `json:"-"`
38939
38940	// NullFields is a list of field names (e.g. "Key") to include in API
38941	// requests with the JSON null value. By default, fields with empty
38942	// values are omitted from API requests. However, any field with an
38943	// empty value appearing in NullFields will be sent to the server as
38944	// null. It is an error if a field in this list has a non-empty value.
38945	// This may be used to include null fields in Patch requests.
38946	NullFields []string `json:"-"`
38947}
38948
38949func (s *SchedulingNodeAffinity) MarshalJSON() ([]byte, error) {
38950	type NoMethod SchedulingNodeAffinity
38951	raw := NoMethod(*s)
38952	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38953}
38954
38955// Screenshot: An instance's screenshot.
38956type Screenshot struct {
38957	// Contents: [Output Only] The Base64-encoded screenshot data.
38958	Contents string `json:"contents,omitempty"`
38959
38960	// Kind: [Output Only] Type of the resource. Always compute#screenshot
38961	// for the screenshots.
38962	Kind string `json:"kind,omitempty"`
38963
38964	// ServerResponse contains the HTTP response code and headers from the
38965	// server.
38966	googleapi.ServerResponse `json:"-"`
38967
38968	// ForceSendFields is a list of field names (e.g. "Contents") to
38969	// unconditionally include in API requests. By default, fields with
38970	// empty or default values are omitted from API requests. However, any
38971	// non-pointer, non-interface field appearing in ForceSendFields will be
38972	// sent to the server regardless of whether the field is empty or not.
38973	// This may be used to include empty fields in Patch requests.
38974	ForceSendFields []string `json:"-"`
38975
38976	// NullFields is a list of field names (e.g. "Contents") to include in
38977	// API requests with the JSON null value. By default, fields with empty
38978	// values are omitted from API requests. However, any field with an
38979	// empty value appearing in NullFields will be sent to the server as
38980	// null. It is an error if a field in this list has a non-empty value.
38981	// This may be used to include null fields in Patch requests.
38982	NullFields []string `json:"-"`
38983}
38984
38985func (s *Screenshot) MarshalJSON() ([]byte, error) {
38986	type NoMethod Screenshot
38987	raw := NoMethod(*s)
38988	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38989}
38990
38991type SecurityPoliciesListPreconfiguredExpressionSetsResponse struct {
38992	PreconfiguredExpressionSets *SecurityPoliciesWafConfig `json:"preconfiguredExpressionSets,omitempty"`
38993
38994	// ServerResponse contains the HTTP response code and headers from the
38995	// server.
38996	googleapi.ServerResponse `json:"-"`
38997
38998	// ForceSendFields is a list of field names (e.g.
38999	// "PreconfiguredExpressionSets") to unconditionally include in API
39000	// requests. By default, fields with empty or default values are omitted
39001	// from API requests. However, any non-pointer, non-interface field
39002	// appearing in ForceSendFields will be sent to the server regardless of
39003	// whether the field is empty or not. This may be used to include empty
39004	// fields in Patch requests.
39005	ForceSendFields []string `json:"-"`
39006
39007	// NullFields is a list of field names (e.g.
39008	// "PreconfiguredExpressionSets") to include in API requests with the
39009	// JSON null value. By default, fields with empty values are omitted
39010	// from API requests. However, any field with an empty value appearing
39011	// in NullFields will be sent to the server as null. It is an error if a
39012	// field in this list has a non-empty value. This may be used to include
39013	// null fields in Patch requests.
39014	NullFields []string `json:"-"`
39015}
39016
39017func (s *SecurityPoliciesListPreconfiguredExpressionSetsResponse) MarshalJSON() ([]byte, error) {
39018	type NoMethod SecurityPoliciesListPreconfiguredExpressionSetsResponse
39019	raw := NoMethod(*s)
39020	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39021}
39022
39023type SecurityPoliciesWafConfig struct {
39024	WafRules *PreconfiguredWafSet `json:"wafRules,omitempty"`
39025
39026	// ForceSendFields is a list of field names (e.g. "WafRules") to
39027	// unconditionally include in API requests. By default, fields with
39028	// empty or default values are omitted from API requests. However, any
39029	// non-pointer, non-interface field appearing in ForceSendFields will be
39030	// sent to the server regardless of whether the field is empty or not.
39031	// This may be used to include empty fields in Patch requests.
39032	ForceSendFields []string `json:"-"`
39033
39034	// NullFields is a list of field names (e.g. "WafRules") to include in
39035	// API requests with the JSON null value. By default, fields with empty
39036	// values are omitted from API requests. However, any field with an
39037	// empty value appearing in NullFields will be sent to the server as
39038	// null. It is an error if a field in this list has a non-empty value.
39039	// This may be used to include null fields in Patch requests.
39040	NullFields []string `json:"-"`
39041}
39042
39043func (s *SecurityPoliciesWafConfig) MarshalJSON() ([]byte, error) {
39044	type NoMethod SecurityPoliciesWafConfig
39045	raw := NoMethod(*s)
39046	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39047}
39048
39049// SecurityPolicy: Represents a Google Cloud Armor security policy
39050// resource. Only external backend services that use load balancers can
39051// reference a security policy. For more information, see Google Cloud
39052// Armor security policy overview.
39053type SecurityPolicy struct {
39054	AdaptiveProtectionConfig *SecurityPolicyAdaptiveProtectionConfig `json:"adaptiveProtectionConfig,omitempty"`
39055
39056	AdvancedOptionsConfig *SecurityPolicyAdvancedOptionsConfig `json:"advancedOptionsConfig,omitempty"`
39057
39058	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
39059	// format.
39060	CreationTimestamp string `json:"creationTimestamp,omitempty"`
39061
39062	// Description: An optional description of this resource. Provide this
39063	// property when you create the resource.
39064	Description string `json:"description,omitempty"`
39065
39066	// Fingerprint: Specifies a fingerprint for this resource, which is
39067	// essentially a hash of the metadata's contents and used for optimistic
39068	// locking. The fingerprint is initially generated by Compute Engine and
39069	// changes after every request to modify or update metadata. You must
39070	// always provide an up-to-date fingerprint hash in order to update or
39071	// change metadata, otherwise the request will fail with error 412
39072	// conditionNotMet. To see the latest fingerprint, make get() request to
39073	// the security policy.
39074	Fingerprint string `json:"fingerprint,omitempty"`
39075
39076	// Id: [Output Only] The unique identifier for the resource. This
39077	// identifier is defined by the server.
39078	Id uint64 `json:"id,omitempty,string"`
39079
39080	// Kind: [Output only] Type of the resource. Always
39081	// compute#securityPolicyfor security policies
39082	Kind string `json:"kind,omitempty"`
39083
39084	// Name: Name of the resource. Provided by the client when the resource
39085	// is created. The name must be 1-63 characters long, and comply with
39086	// RFC1035. Specifically, the name must be 1-63 characters long and
39087	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
39088	// the first character must be a lowercase letter, and all following
39089	// characters must be a dash, lowercase letter, or digit, except the
39090	// last character, which cannot be a dash.
39091	Name string `json:"name,omitempty"`
39092
39093	// Rules: A list of rules that belong to this policy. There must always
39094	// be a default rule (rule with priority 2147483647 and match "*"). If
39095	// no rules are provided when creating a security policy, a default rule
39096	// with action "allow" will be added.
39097	Rules []*SecurityPolicyRule `json:"rules,omitempty"`
39098
39099	// SelfLink: [Output Only] Server-defined URL for the resource.
39100	SelfLink string `json:"selfLink,omitempty"`
39101
39102	// ServerResponse contains the HTTP response code and headers from the
39103	// server.
39104	googleapi.ServerResponse `json:"-"`
39105
39106	// ForceSendFields is a list of field names (e.g.
39107	// "AdaptiveProtectionConfig") to unconditionally include in API
39108	// requests. By default, fields with empty or default values are omitted
39109	// from API requests. However, any non-pointer, non-interface field
39110	// appearing in ForceSendFields will be sent to the server regardless of
39111	// whether the field is empty or not. This may be used to include empty
39112	// fields in Patch requests.
39113	ForceSendFields []string `json:"-"`
39114
39115	// NullFields is a list of field names (e.g. "AdaptiveProtectionConfig")
39116	// to include in API requests with the JSON null value. By default,
39117	// fields with empty values are omitted from API requests. However, any
39118	// field with an empty value appearing in NullFields will be sent to the
39119	// server as null. It is an error if a field in this list has a
39120	// non-empty value. This may be used to include null fields in Patch
39121	// requests.
39122	NullFields []string `json:"-"`
39123}
39124
39125func (s *SecurityPolicy) MarshalJSON() ([]byte, error) {
39126	type NoMethod SecurityPolicy
39127	raw := NoMethod(*s)
39128	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39129}
39130
39131// SecurityPolicyAdaptiveProtectionConfig: Configuration options for
39132// Cloud Armor Adaptive Protection (CAAP).
39133type SecurityPolicyAdaptiveProtectionConfig struct {
39134	// Layer7DdosDefenseConfig: If set to true, enables Cloud Armor Machine
39135	// Learning.
39136	Layer7DdosDefenseConfig *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig `json:"layer7DdosDefenseConfig,omitempty"`
39137
39138	// ForceSendFields is a list of field names (e.g.
39139	// "Layer7DdosDefenseConfig") to unconditionally include in API
39140	// requests. By default, fields with empty or default values are omitted
39141	// from API requests. However, any non-pointer, non-interface field
39142	// appearing in ForceSendFields will be sent to the server regardless of
39143	// whether the field is empty or not. This may be used to include empty
39144	// fields in Patch requests.
39145	ForceSendFields []string `json:"-"`
39146
39147	// NullFields is a list of field names (e.g. "Layer7DdosDefenseConfig")
39148	// to include in API requests with the JSON null value. By default,
39149	// fields with empty values are omitted from API requests. However, any
39150	// field with an empty value appearing in NullFields will be sent to the
39151	// server as null. It is an error if a field in this list has a
39152	// non-empty value. This may be used to include null fields in Patch
39153	// requests.
39154	NullFields []string `json:"-"`
39155}
39156
39157func (s *SecurityPolicyAdaptiveProtectionConfig) MarshalJSON() ([]byte, error) {
39158	type NoMethod SecurityPolicyAdaptiveProtectionConfig
39159	raw := NoMethod(*s)
39160	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39161}
39162
39163// SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig:
39164// Configuration options for L7 DDoS detection.
39165type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig struct {
39166	// Enable: If set to true, enables CAAP for L7 DDoS detection.
39167	Enable bool `json:"enable,omitempty"`
39168
39169	// RuleVisibility: Rule visibility can be one of the following: STANDARD
39170	// - opaque rules. (default) PREMIUM - transparent rules.
39171	//
39172	// Possible values:
39173	//   "PREMIUM"
39174	//   "STANDARD"
39175	RuleVisibility string `json:"ruleVisibility,omitempty"`
39176
39177	// ForceSendFields is a list of field names (e.g. "Enable") to
39178	// unconditionally include in API requests. By default, fields with
39179	// empty or default values are omitted from API requests. However, any
39180	// non-pointer, non-interface field appearing in ForceSendFields will be
39181	// sent to the server regardless of whether the field is empty or not.
39182	// This may be used to include empty fields in Patch requests.
39183	ForceSendFields []string `json:"-"`
39184
39185	// NullFields is a list of field names (e.g. "Enable") to include in API
39186	// requests with the JSON null value. By default, fields with empty
39187	// values are omitted from API requests. However, any field with an
39188	// empty value appearing in NullFields will be sent to the server as
39189	// null. It is an error if a field in this list has a non-empty value.
39190	// This may be used to include null fields in Patch requests.
39191	NullFields []string `json:"-"`
39192}
39193
39194func (s *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) MarshalJSON() ([]byte, error) {
39195	type NoMethod SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig
39196	raw := NoMethod(*s)
39197	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39198}
39199
39200type SecurityPolicyAdvancedOptionsConfig struct {
39201	// Possible values:
39202	//   "DISABLED"
39203	//   "STANDARD"
39204	JsonParsing string `json:"jsonParsing,omitempty"`
39205
39206	// Possible values:
39207	//   "NORMAL"
39208	//   "VERBOSE"
39209	LogLevel string `json:"logLevel,omitempty"`
39210
39211	// ForceSendFields is a list of field names (e.g. "JsonParsing") 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. "JsonParsing") 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 *SecurityPolicyAdvancedOptionsConfig) MarshalJSON() ([]byte, error) {
39229	type NoMethod SecurityPolicyAdvancedOptionsConfig
39230	raw := NoMethod(*s)
39231	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39232}
39233
39234type SecurityPolicyList struct {
39235	// Id: [Output Only] Unique identifier for the resource; defined by the
39236	// server.
39237	Id string `json:"id,omitempty"`
39238
39239	// Items: A list of SecurityPolicy resources.
39240	Items []*SecurityPolicy `json:"items,omitempty"`
39241
39242	// Kind: [Output Only] Type of resource. Always
39243	// compute#securityPolicyList for listsof securityPolicies
39244	Kind string `json:"kind,omitempty"`
39245
39246	// NextPageToken: [Output Only] This token allows you to get the next
39247	// page of results for list requests. If the number of results is larger
39248	// than maxResults, use the nextPageToken as a value for the query
39249	// parameter pageToken in the next list request. Subsequent list
39250	// requests will have their own nextPageToken to continue paging through
39251	// the results.
39252	NextPageToken string `json:"nextPageToken,omitempty"`
39253
39254	// Warning: [Output Only] Informational warning message.
39255	Warning *SecurityPolicyListWarning `json:"warning,omitempty"`
39256
39257	// ServerResponse contains the HTTP response code and headers from the
39258	// server.
39259	googleapi.ServerResponse `json:"-"`
39260
39261	// ForceSendFields is a list of field names (e.g. "Id") 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. "Id") to include in API
39270	// requests with the JSON null value. By default, fields with empty
39271	// values are omitted from API requests. However, any field with an
39272	// empty value appearing in NullFields will be sent to the server as
39273	// null. It is an error if a field in this list has a non-empty value.
39274	// This may be used to include null fields in Patch requests.
39275	NullFields []string `json:"-"`
39276}
39277
39278func (s *SecurityPolicyList) MarshalJSON() ([]byte, error) {
39279	type NoMethod SecurityPolicyList
39280	raw := NoMethod(*s)
39281	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39282}
39283
39284// SecurityPolicyListWarning: [Output Only] Informational warning
39285// message.
39286type SecurityPolicyListWarning struct {
39287	// Code: [Output Only] A warning code, if applicable. For example,
39288	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39289	// the response.
39290	//
39291	// Possible values:
39292	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
39293	// changes made by a failed operation.
39294	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
39295	// created.
39296	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
39297	// resources has a type marked as deprecated
39298	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
39299	// that is larger than image size.
39300	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
39301	// resources has a type marked as experimental
39302	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
39303	// call
39304	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
39305	// overridden. Deprecated unused field.
39306	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
39307	// injected kernel, which is deprecated.
39308	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
39309	// exceedingly large number of resources
39310	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
39311	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
39312	// not assigned to an instance on the network.
39313	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
39314	// ip forward.
39315	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
39316	// refers to an instance that does not exist.
39317	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
39318	// URL refers to an instance that is not on the same network as the
39319	// route.
39320	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
39321	// have a status of RUNNING.
39322	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
39323	// continue the process despite the mentioned error.
39324	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
39325	// page.
39326	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
39327	// missing due to errors
39328	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
39329	// that requires a TOS they have not accepted.
39330	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
39331	// resource is in use.
39332	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
39333	// auto-delete could not be deleted because they were in use.
39334	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
39335	// ignored.
39336	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
39337	// instance group manager is valid as such, but its application does not
39338	// make a lot of sense, because it allows only single instance in
39339	// instance group.
39340	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
39341	// are present
39342	//   "UNREACHABLE" - A given scope cannot be reached.
39343	Code string `json:"code,omitempty"`
39344
39345	// Data: [Output Only] Metadata about this warning in key: value format.
39346	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
39347	// }
39348	Data []*SecurityPolicyListWarningData `json:"data,omitempty"`
39349
39350	// Message: [Output Only] A human-readable description of the warning
39351	// code.
39352	Message string `json:"message,omitempty"`
39353
39354	// ForceSendFields is a list of field names (e.g. "Code") to
39355	// unconditionally include in API requests. By default, fields with
39356	// empty or default values are omitted from API requests. However, any
39357	// non-pointer, non-interface field appearing in ForceSendFields will be
39358	// sent to the server regardless of whether the field is empty or not.
39359	// This may be used to include empty fields in Patch requests.
39360	ForceSendFields []string `json:"-"`
39361
39362	// NullFields is a list of field names (e.g. "Code") to include in API
39363	// requests with the JSON null value. By default, fields with empty
39364	// values are omitted from API requests. However, any field with an
39365	// empty value appearing in NullFields will be sent to the server as
39366	// null. It is an error if a field in this list has a non-empty value.
39367	// This may be used to include null fields in Patch requests.
39368	NullFields []string `json:"-"`
39369}
39370
39371func (s *SecurityPolicyListWarning) MarshalJSON() ([]byte, error) {
39372	type NoMethod SecurityPolicyListWarning
39373	raw := NoMethod(*s)
39374	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39375}
39376
39377type SecurityPolicyListWarningData struct {
39378	// Key: [Output Only] A key that provides more detail on the warning
39379	// being returned. For example, for warnings where there are no results
39380	// in a list request for a particular zone, this key might be scope and
39381	// the key value might be the zone name. Other examples might be a key
39382	// indicating a deprecated resource and a suggested replacement, or a
39383	// warning about invalid network settings (for example, if an instance
39384	// attempts to perform IP forwarding but is not enabled for IP
39385	// forwarding).
39386	Key string `json:"key,omitempty"`
39387
39388	// Value: [Output Only] A warning data value corresponding to the key.
39389	Value string `json:"value,omitempty"`
39390
39391	// ForceSendFields is a list of field names (e.g. "Key") to
39392	// unconditionally include in API requests. By default, fields with
39393	// empty or default values are omitted from API requests. However, any
39394	// non-pointer, non-interface field appearing in ForceSendFields will be
39395	// sent to the server regardless of whether the field is empty or not.
39396	// This may be used to include empty fields in Patch requests.
39397	ForceSendFields []string `json:"-"`
39398
39399	// NullFields is a list of field names (e.g. "Key") to include in API
39400	// requests with the JSON null value. By default, fields with empty
39401	// values are omitted from API requests. However, any field with an
39402	// empty value appearing in NullFields will be sent to the server as
39403	// null. It is an error if a field in this list has a non-empty value.
39404	// This may be used to include null fields in Patch requests.
39405	NullFields []string `json:"-"`
39406}
39407
39408func (s *SecurityPolicyListWarningData) MarshalJSON() ([]byte, error) {
39409	type NoMethod SecurityPolicyListWarningData
39410	raw := NoMethod(*s)
39411	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39412}
39413
39414type SecurityPolicyReference struct {
39415	SecurityPolicy string `json:"securityPolicy,omitempty"`
39416
39417	// ForceSendFields is a list of field names (e.g. "SecurityPolicy") to
39418	// unconditionally include in API requests. By default, fields with
39419	// empty or default values are omitted from API requests. However, any
39420	// non-pointer, non-interface field appearing in ForceSendFields will be
39421	// sent to the server regardless of whether the field is empty or not.
39422	// This may be used to include empty fields in Patch requests.
39423	ForceSendFields []string `json:"-"`
39424
39425	// NullFields is a list of field names (e.g. "SecurityPolicy") to
39426	// include in API requests with the JSON null value. By default, fields
39427	// with empty values are omitted from API requests. However, any field
39428	// with an empty value appearing in NullFields will be sent to the
39429	// server as null. It is an error if a field in this list has a
39430	// non-empty value. This may be used to include null fields in Patch
39431	// requests.
39432	NullFields []string `json:"-"`
39433}
39434
39435func (s *SecurityPolicyReference) MarshalJSON() ([]byte, error) {
39436	type NoMethod SecurityPolicyReference
39437	raw := NoMethod(*s)
39438	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39439}
39440
39441// SecurityPolicyRule: Represents a rule that describes one or more
39442// match conditions along with the action to be taken when traffic
39443// matches this condition (allow or deny).
39444type SecurityPolicyRule struct {
39445	// Action: The Action to perform when the client connection triggers the
39446	// rule. Can currently be either "allow" or "deny()" where valid values
39447	// for status are 403, 404, and 502.
39448	Action string `json:"action,omitempty"`
39449
39450	// Description: An optional description of this resource. Provide this
39451	// property when you create the resource.
39452	Description string `json:"description,omitempty"`
39453
39454	// Kind: [Output only] Type of the resource. Always
39455	// compute#securityPolicyRule for security policy rules
39456	Kind string `json:"kind,omitempty"`
39457
39458	// Match: A match condition that incoming traffic is evaluated against.
39459	// If it evaluates to true, the corresponding 'action' is enforced.
39460	Match *SecurityPolicyRuleMatcher `json:"match,omitempty"`
39461
39462	// Preview: If set to true, the specified action is not enforced.
39463	Preview bool `json:"preview,omitempty"`
39464
39465	// Priority: An integer indicating the priority of a rule in the list.
39466	// The priority must be a positive value between 0 and 2147483647. Rules
39467	// are evaluated from highest to lowest priority where 0 is the highest
39468	// priority and 2147483647 is the lowest priority.
39469	Priority int64 `json:"priority,omitempty"`
39470
39471	// ServerResponse contains the HTTP response code and headers from the
39472	// server.
39473	googleapi.ServerResponse `json:"-"`
39474
39475	// ForceSendFields is a list of field names (e.g. "Action") to
39476	// unconditionally include in API requests. By default, fields with
39477	// empty or default values are omitted from API requests. However, any
39478	// non-pointer, non-interface field appearing in ForceSendFields will be
39479	// sent to the server regardless of whether the field is empty or not.
39480	// This may be used to include empty fields in Patch requests.
39481	ForceSendFields []string `json:"-"`
39482
39483	// NullFields is a list of field names (e.g. "Action") to include in API
39484	// requests with the JSON null value. By default, fields with empty
39485	// values are omitted from API requests. However, any field with an
39486	// empty value appearing in NullFields will be sent to the server as
39487	// null. It is an error if a field in this list has a non-empty value.
39488	// This may be used to include null fields in Patch requests.
39489	NullFields []string `json:"-"`
39490}
39491
39492func (s *SecurityPolicyRule) MarshalJSON() ([]byte, error) {
39493	type NoMethod SecurityPolicyRule
39494	raw := NoMethod(*s)
39495	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39496}
39497
39498// SecurityPolicyRuleMatcher: Represents a match condition that incoming
39499// traffic is evaluated against. Exactly one field must be specified.
39500type SecurityPolicyRuleMatcher struct {
39501	// Config: The configuration options available when specifying
39502	// versioned_expr. This field must be specified if versioned_expr is
39503	// specified and cannot be specified if versioned_expr is not specified.
39504	Config *SecurityPolicyRuleMatcherConfig `json:"config,omitempty"`
39505
39506	// Expr: User defined CEVAL expression. A CEVAL expression is used to
39507	// specify match criteria such as origin.ip, source.region_code and
39508	// contents in the request header.
39509	Expr *Expr `json:"expr,omitempty"`
39510
39511	// VersionedExpr: Preconfigured versioned expression. If this field is
39512	// specified, config must also be specified. Available preconfigured
39513	// expressions along with their requirements are: SRC_IPS_V1 - must
39514	// specify the corresponding src_ip_range field in config.
39515	//
39516	// Possible values:
39517	//   "SRC_IPS_V1" - Matches the source IP address of a request to the IP
39518	// ranges supplied in config.
39519	VersionedExpr string `json:"versionedExpr,omitempty"`
39520
39521	// ForceSendFields is a list of field names (e.g. "Config") to
39522	// unconditionally include in API requests. By default, fields with
39523	// empty or default values are omitted from API requests. However, any
39524	// non-pointer, non-interface field appearing in ForceSendFields will be
39525	// sent to the server regardless of whether the field is empty or not.
39526	// This may be used to include empty fields in Patch requests.
39527	ForceSendFields []string `json:"-"`
39528
39529	// NullFields is a list of field names (e.g. "Config") to include in API
39530	// requests with the JSON null value. By default, fields with empty
39531	// values are omitted from API requests. However, any field with an
39532	// empty value appearing in NullFields will be sent to the server as
39533	// null. It is an error if a field in this list has a non-empty value.
39534	// This may be used to include null fields in Patch requests.
39535	NullFields []string `json:"-"`
39536}
39537
39538func (s *SecurityPolicyRuleMatcher) MarshalJSON() ([]byte, error) {
39539	type NoMethod SecurityPolicyRuleMatcher
39540	raw := NoMethod(*s)
39541	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39542}
39543
39544type SecurityPolicyRuleMatcherConfig struct {
39545	// SrcIpRanges: CIDR IP address range. Maximum number of src_ip_ranges
39546	// allowed is 10.
39547	SrcIpRanges []string `json:"srcIpRanges,omitempty"`
39548
39549	// ForceSendFields is a list of field names (e.g. "SrcIpRanges") to
39550	// unconditionally include in API requests. By default, fields with
39551	// empty or default values are omitted from API requests. However, any
39552	// non-pointer, non-interface field appearing in ForceSendFields will be
39553	// sent to the server regardless of whether the field is empty or not.
39554	// This may be used to include empty fields in Patch requests.
39555	ForceSendFields []string `json:"-"`
39556
39557	// NullFields is a list of field names (e.g. "SrcIpRanges") to include
39558	// in API requests with the JSON null value. By default, fields with
39559	// empty values are omitted from API requests. However, any field with
39560	// an empty value appearing in NullFields will be sent to the server as
39561	// null. It is an error if a field in this list has a non-empty value.
39562	// This may be used to include null fields in Patch requests.
39563	NullFields []string `json:"-"`
39564}
39565
39566func (s *SecurityPolicyRuleMatcherConfig) MarshalJSON() ([]byte, error) {
39567	type NoMethod SecurityPolicyRuleMatcherConfig
39568	raw := NoMethod(*s)
39569	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39570}
39571
39572// SecuritySettings: The authentication and authorization settings for a
39573// BackendService.
39574type SecuritySettings struct {
39575	// ClientTlsPolicy: Optional. A URL referring to a
39576	// networksecurity.ClientTlsPolicy resource that describes how clients
39577	// should authenticate with this service's backends. clientTlsPolicy
39578	// only applies to a global BackendService with the loadBalancingScheme
39579	// set to INTERNAL_SELF_MANAGED. If left blank, communications are not
39580	// encrypted. Note: This field currently has no impact.
39581	ClientTlsPolicy string `json:"clientTlsPolicy,omitempty"`
39582
39583	// SubjectAltNames: Optional. A list of Subject Alternative Names (SANs)
39584	// that the client verifies during a mutual TLS handshake with an
39585	// server/endpoint for this BackendService. When the server presents its
39586	// X.509 certificate to the client, the client inspects the
39587	// certificate's subjectAltName field. If the field contains one of the
39588	// specified values, the communication continues. Otherwise, it fails.
39589	// This additional check enables the client to verify that the server is
39590	// authorized to run the requested service. Note that the contents of
39591	// the server certificate's subjectAltName field are configured by the
39592	// Public Key Infrastructure which provisions server identities. Only
39593	// applies to a global BackendService with loadBalancingScheme set to
39594	// INTERNAL_SELF_MANAGED. Only applies when BackendService has an
39595	// attached clientTlsPolicy with clientCertificate (mTLS mode). Note:
39596	// This field currently has no impact.
39597	SubjectAltNames []string `json:"subjectAltNames,omitempty"`
39598
39599	// ForceSendFields is a list of field names (e.g. "ClientTlsPolicy") to
39600	// unconditionally include in API requests. By default, fields with
39601	// empty or default values are omitted from API requests. However, any
39602	// non-pointer, non-interface field appearing in ForceSendFields will be
39603	// sent to the server regardless of whether the field is empty or not.
39604	// This may be used to include empty fields in Patch requests.
39605	ForceSendFields []string `json:"-"`
39606
39607	// NullFields is a list of field names (e.g. "ClientTlsPolicy") to
39608	// include in API requests with the JSON null value. By default, fields
39609	// with empty values are omitted from API requests. However, any field
39610	// with an empty value appearing in NullFields will be sent to the
39611	// server as null. It is an error if a field in this list has a
39612	// non-empty value. This may be used to include null fields in Patch
39613	// requests.
39614	NullFields []string `json:"-"`
39615}
39616
39617func (s *SecuritySettings) MarshalJSON() ([]byte, error) {
39618	type NoMethod SecuritySettings
39619	raw := NoMethod(*s)
39620	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39621}
39622
39623// SerialPortOutput: An instance serial console output.
39624type SerialPortOutput struct {
39625	// Contents: [Output Only] The contents of the console output.
39626	Contents string `json:"contents,omitempty"`
39627
39628	// Kind: [Output Only] Type of the resource. Always
39629	// compute#serialPortOutput for serial port output.
39630	Kind string `json:"kind,omitempty"`
39631
39632	// Next: [Output Only] The position of the next byte of content,
39633	// regardless of whether the content exists, following the output
39634	// returned in the `contents` property. Use this value in the next
39635	// request as the start parameter.
39636	Next int64 `json:"next,omitempty,string"`
39637
39638	// SelfLink: [Output Only] Server-defined URL for this resource.
39639	SelfLink string `json:"selfLink,omitempty"`
39640
39641	// Start: The starting byte position of the output that was returned.
39642	// This should match the start parameter sent with the request. If the
39643	// serial console output exceeds the size of the buffer (1 MB), older
39644	// output is overwritten by newer content. The output start value will
39645	// indicate the byte position of the output that was returned, which
39646	// might be different than the `start` value that was specified in the
39647	// request.
39648	Start int64 `json:"start,omitempty,string"`
39649
39650	// ServerResponse contains the HTTP response code and headers from the
39651	// server.
39652	googleapi.ServerResponse `json:"-"`
39653
39654	// ForceSendFields is a list of field names (e.g. "Contents") 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. "Contents") to include in
39663	// API 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 *SerialPortOutput) MarshalJSON() ([]byte, error) {
39672	type NoMethod SerialPortOutput
39673	raw := NoMethod(*s)
39674	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39675}
39676
39677type ServerBinding struct {
39678	// Possible values:
39679	//   "RESTART_NODE_ON_ANY_SERVER" - Node may associate with any physical
39680	// server over its lifetime.
39681	//   "RESTART_NODE_ON_MINIMAL_SERVERS" - Node may associate with minimal
39682	// physical servers over its lifetime.
39683	//   "SERVER_BINDING_TYPE_UNSPECIFIED"
39684	Type string `json:"type,omitempty"`
39685
39686	// ForceSendFields is a list of field names (e.g. "Type") to
39687	// unconditionally include in API requests. By default, fields with
39688	// empty or default values are omitted from API requests. However, any
39689	// non-pointer, non-interface field appearing in ForceSendFields will be
39690	// sent to the server regardless of whether the field is empty or not.
39691	// This may be used to include empty fields in Patch requests.
39692	ForceSendFields []string `json:"-"`
39693
39694	// NullFields is a list of field names (e.g. "Type") to include in API
39695	// requests with the JSON null value. By default, fields with empty
39696	// values are omitted from API requests. However, any field with an
39697	// empty value appearing in NullFields will be sent to the server as
39698	// null. It is an error if a field in this list has a non-empty value.
39699	// This may be used to include null fields in Patch requests.
39700	NullFields []string `json:"-"`
39701}
39702
39703func (s *ServerBinding) MarshalJSON() ([]byte, error) {
39704	type NoMethod ServerBinding
39705	raw := NoMethod(*s)
39706	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39707}
39708
39709// ServiceAccount: A service account.
39710type ServiceAccount struct {
39711	// Email: Email address of the service account.
39712	Email string `json:"email,omitempty"`
39713
39714	// Scopes: The list of scopes to be made available for this service
39715	// account.
39716	Scopes []string `json:"scopes,omitempty"`
39717
39718	// ForceSendFields is a list of field names (e.g. "Email") to
39719	// unconditionally include in API requests. By default, fields with
39720	// empty or default values are omitted from API requests. However, any
39721	// non-pointer, non-interface field appearing in ForceSendFields will be
39722	// sent to the server regardless of whether the field is empty or not.
39723	// This may be used to include empty fields in Patch requests.
39724	ForceSendFields []string `json:"-"`
39725
39726	// NullFields is a list of field names (e.g. "Email") to include in API
39727	// requests with the JSON null value. By default, fields with empty
39728	// values are omitted from API requests. However, any field with an
39729	// empty value appearing in NullFields will be sent to the server as
39730	// null. It is an error if a field in this list has a non-empty value.
39731	// This may be used to include null fields in Patch requests.
39732	NullFields []string `json:"-"`
39733}
39734
39735func (s *ServiceAccount) MarshalJSON() ([]byte, error) {
39736	type NoMethod ServiceAccount
39737	raw := NoMethod(*s)
39738	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39739}
39740
39741// ServiceAttachment: Represents a ServiceAttachment resource. A service
39742// attachment represents a service that a producer has exposed. It
39743// encapsulates the load balancer which fronts the service runs and a
39744// list of NAT IP ranges that the producers uses to represent the
39745// consumers connecting to the service. next tag = 20
39746type ServiceAttachment struct {
39747	// ConnectedEndpoints: [Output Only] An array of connections for all the
39748	// consumers connected to this service attachment.
39749	ConnectedEndpoints []*ServiceAttachmentConnectedEndpoint `json:"connectedEndpoints,omitempty"`
39750
39751	// ConnectionPreference: The connection preference of service
39752	// attachment. The value can be set to ACCEPT_AUTOMATIC. An
39753	// ACCEPT_AUTOMATIC service attachment is one that always accepts the
39754	// connection from consumer forwarding rules.
39755	//
39756	// Possible values:
39757	//   "ACCEPT_AUTOMATIC"
39758	//   "ACCEPT_MANUAL"
39759	//   "CONNECTION_PREFERENCE_UNSPECIFIED"
39760	ConnectionPreference string `json:"connectionPreference,omitempty"`
39761
39762	// ConsumerAcceptLists: Projects that are allowed to connect to this
39763	// service attachment.
39764	ConsumerAcceptLists []*ServiceAttachmentConsumerProjectLimit `json:"consumerAcceptLists,omitempty"`
39765
39766	// ConsumerRejectLists: Projects that are not allowed to connect to this
39767	// service attachment. The project can be specified using its id or
39768	// number.
39769	ConsumerRejectLists []string `json:"consumerRejectLists,omitempty"`
39770
39771	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
39772	// format.
39773	CreationTimestamp string `json:"creationTimestamp,omitempty"`
39774
39775	// Description: An optional description of this resource. Provide this
39776	// property when you create the resource.
39777	Description string `json:"description,omitempty"`
39778
39779	// EnableProxyProtocol: If true, enable the proxy protocol which is for
39780	// supplying client TCP/IP address data in TCP connections that traverse
39781	// proxies on their way to destination servers.
39782	EnableProxyProtocol bool `json:"enableProxyProtocol,omitempty"`
39783
39784	// Fingerprint: Fingerprint of this resource. A hash of the contents
39785	// stored in this object. This field is used in optimistic locking. This
39786	// field will be ignored when inserting a ServiceAttachment. An
39787	// up-to-date fingerprint must be provided in order to patch/update the
39788	// ServiceAttachment; otherwise, the request will fail with error 412
39789	// conditionNotMet. To see the latest fingerprint, make a get() request
39790	// to retrieve the ServiceAttachment.
39791	Fingerprint string `json:"fingerprint,omitempty"`
39792
39793	// Id: [Output Only] The unique identifier for the resource type. The
39794	// server generates this identifier.
39795	Id uint64 `json:"id,omitempty,string"`
39796
39797	// Kind: [Output Only] Type of the resource. Always
39798	// compute#serviceAttachment for service attachments.
39799	Kind string `json:"kind,omitempty"`
39800
39801	// Name: Name of the resource. Provided by the client when the resource
39802	// is created. The name must be 1-63 characters long, and comply with
39803	// RFC1035. Specifically, the name must be 1-63 characters long and
39804	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
39805	// the first character must be a lowercase letter, and all following
39806	// characters must be a dash, lowercase letter, or digit, except the
39807	// last character, which cannot be a dash.
39808	Name string `json:"name,omitempty"`
39809
39810	// NatSubnets: An array of URLs where each entry is the URL of a subnet
39811	// provided by the service producer to use for NAT in this service
39812	// attachment.
39813	NatSubnets []string `json:"natSubnets,omitempty"`
39814
39815	// ProducerForwardingRule: The URL of a forwarding rule with
39816	// loadBalancingScheme INTERNAL* that is serving the endpoint identified
39817	// by this service attachment.
39818	ProducerForwardingRule string `json:"producerForwardingRule,omitempty"`
39819
39820	// PscServiceAttachmentId: [Output Only] An 128-bit global unique ID of
39821	// the PSC service attachment.
39822	PscServiceAttachmentId *Uint128 `json:"pscServiceAttachmentId,omitempty"`
39823
39824	// Region: [Output Only] URL of the region where the service attachment
39825	// resides. This field applies only to the region resource. You must
39826	// specify this field as part of the HTTP request URL. It is not
39827	// settable as a field in the request body.
39828	Region string `json:"region,omitempty"`
39829
39830	// SelfLink: [Output Only] Server-defined URL for the resource.
39831	SelfLink string `json:"selfLink,omitempty"`
39832
39833	// TargetService: The URL of a service serving the endpoint identified
39834	// by this service attachment.
39835	TargetService string `json:"targetService,omitempty"`
39836
39837	// ServerResponse contains the HTTP response code and headers from the
39838	// server.
39839	googleapi.ServerResponse `json:"-"`
39840
39841	// ForceSendFields is a list of field names (e.g. "ConnectedEndpoints")
39842	// to unconditionally include in API requests. By default, fields with
39843	// empty or default values are omitted from API requests. However, any
39844	// non-pointer, non-interface field appearing in ForceSendFields will be
39845	// sent to the server regardless of whether the field is empty or not.
39846	// This may be used to include empty fields in Patch requests.
39847	ForceSendFields []string `json:"-"`
39848
39849	// NullFields is a list of field names (e.g. "ConnectedEndpoints") to
39850	// include in API requests with the JSON null value. By default, fields
39851	// with empty values are omitted from API requests. However, any field
39852	// with an empty value appearing in NullFields will be sent to the
39853	// server as null. It is an error if a field in this list has a
39854	// non-empty value. This may be used to include null fields in Patch
39855	// requests.
39856	NullFields []string `json:"-"`
39857}
39858
39859func (s *ServiceAttachment) MarshalJSON() ([]byte, error) {
39860	type NoMethod ServiceAttachment
39861	raw := NoMethod(*s)
39862	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39863}
39864
39865// ServiceAttachmentAggregatedList: Contains a list of
39866// ServiceAttachmentsScopedList.
39867type ServiceAttachmentAggregatedList struct {
39868	// Id: [Output Only] Unique identifier for the resource; defined by the
39869	// server.
39870	Id string `json:"id,omitempty"`
39871
39872	// Items: A list of ServiceAttachmentsScopedList resources.
39873	Items map[string]ServiceAttachmentsScopedList `json:"items,omitempty"`
39874
39875	// Kind: Type of resource.
39876	Kind string `json:"kind,omitempty"`
39877
39878	// NextPageToken: [Output Only] This token allows you to get the next
39879	// page of results for list requests. If the number of results is larger
39880	// than maxResults, use the nextPageToken as a value for the query
39881	// parameter pageToken in the next list request. Subsequent list
39882	// requests will have their own nextPageToken to continue paging through
39883	// the results.
39884	NextPageToken string `json:"nextPageToken,omitempty"`
39885
39886	// SelfLink: [Output Only] Server-defined URL for this resource.
39887	SelfLink string `json:"selfLink,omitempty"`
39888
39889	// Unreachables: [Output Only] Unreachable resources.
39890	Unreachables []string `json:"unreachables,omitempty"`
39891
39892	// Warning: [Output Only] Informational warning message.
39893	Warning *ServiceAttachmentAggregatedListWarning `json:"warning,omitempty"`
39894
39895	// ServerResponse contains the HTTP response code and headers from the
39896	// server.
39897	googleapi.ServerResponse `json:"-"`
39898
39899	// ForceSendFields is a list of field names (e.g. "Id") to
39900	// unconditionally include in API requests. By default, fields with
39901	// empty or default values are omitted from API requests. However, any
39902	// non-pointer, non-interface field appearing in ForceSendFields will be
39903	// sent to the server regardless of whether the field is empty or not.
39904	// This may be used to include empty fields in Patch requests.
39905	ForceSendFields []string `json:"-"`
39906
39907	// NullFields is a list of field names (e.g. "Id") to include in API
39908	// requests with the JSON null value. By default, fields with empty
39909	// values are omitted from API requests. However, any field with an
39910	// empty value appearing in NullFields will be sent to the server as
39911	// null. It is an error if a field in this list has a non-empty value.
39912	// This may be used to include null fields in Patch requests.
39913	NullFields []string `json:"-"`
39914}
39915
39916func (s *ServiceAttachmentAggregatedList) MarshalJSON() ([]byte, error) {
39917	type NoMethod ServiceAttachmentAggregatedList
39918	raw := NoMethod(*s)
39919	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39920}
39921
39922// ServiceAttachmentAggregatedListWarning: [Output Only] Informational
39923// warning message.
39924type ServiceAttachmentAggregatedListWarning struct {
39925	// Code: [Output Only] A warning code, if applicable. For example,
39926	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39927	// the response.
39928	//
39929	// Possible values:
39930	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
39931	// changes made by a failed operation.
39932	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
39933	// created.
39934	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
39935	// resources has a type marked as deprecated
39936	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
39937	// that is larger than image size.
39938	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
39939	// resources has a type marked as experimental
39940	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
39941	// call
39942	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
39943	// overridden. Deprecated unused field.
39944	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
39945	// injected kernel, which is deprecated.
39946	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
39947	// exceedingly large number of resources
39948	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
39949	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
39950	// not assigned to an instance on the network.
39951	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
39952	// ip forward.
39953	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
39954	// refers to an instance that does not exist.
39955	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
39956	// URL refers to an instance that is not on the same network as the
39957	// route.
39958	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
39959	// have a status of RUNNING.
39960	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
39961	// continue the process despite the mentioned error.
39962	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
39963	// page.
39964	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
39965	// missing due to errors
39966	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
39967	// that requires a TOS they have not accepted.
39968	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
39969	// resource is in use.
39970	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
39971	// auto-delete could not be deleted because they were in use.
39972	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
39973	// ignored.
39974	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
39975	// instance group manager is valid as such, but its application does not
39976	// make a lot of sense, because it allows only single instance in
39977	// instance group.
39978	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
39979	// are present
39980	//   "UNREACHABLE" - A given scope cannot be reached.
39981	Code string `json:"code,omitempty"`
39982
39983	// Data: [Output Only] Metadata about this warning in key: value format.
39984	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
39985	// }
39986	Data []*ServiceAttachmentAggregatedListWarningData `json:"data,omitempty"`
39987
39988	// Message: [Output Only] A human-readable description of the warning
39989	// code.
39990	Message string `json:"message,omitempty"`
39991
39992	// ForceSendFields is a list of field names (e.g. "Code") to
39993	// unconditionally include in API requests. By default, fields with
39994	// empty or default values are omitted from API requests. However, any
39995	// non-pointer, non-interface field appearing in ForceSendFields will be
39996	// sent to the server regardless of whether the field is empty or not.
39997	// This may be used to include empty fields in Patch requests.
39998	ForceSendFields []string `json:"-"`
39999
40000	// NullFields is a list of field names (e.g. "Code") to include in API
40001	// requests with the JSON null value. By default, fields with empty
40002	// values are omitted from API requests. However, any field with an
40003	// empty value appearing in NullFields will be sent to the server as
40004	// null. It is an error if a field in this list has a non-empty value.
40005	// This may be used to include null fields in Patch requests.
40006	NullFields []string `json:"-"`
40007}
40008
40009func (s *ServiceAttachmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
40010	type NoMethod ServiceAttachmentAggregatedListWarning
40011	raw := NoMethod(*s)
40012	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40013}
40014
40015type ServiceAttachmentAggregatedListWarningData struct {
40016	// Key: [Output Only] A key that provides more detail on the warning
40017	// being returned. For example, for warnings where there are no results
40018	// in a list request for a particular zone, this key might be scope and
40019	// the key value might be the zone name. Other examples might be a key
40020	// indicating a deprecated resource and a suggested replacement, or a
40021	// warning about invalid network settings (for example, if an instance
40022	// attempts to perform IP forwarding but is not enabled for IP
40023	// forwarding).
40024	Key string `json:"key,omitempty"`
40025
40026	// Value: [Output Only] A warning data value corresponding to the key.
40027	Value string `json:"value,omitempty"`
40028
40029	// ForceSendFields is a list of field names (e.g. "Key") to
40030	// unconditionally include in API requests. By default, fields with
40031	// empty or default values are omitted from API requests. However, any
40032	// non-pointer, non-interface field appearing in ForceSendFields will be
40033	// sent to the server regardless of whether the field is empty or not.
40034	// This may be used to include empty fields in Patch requests.
40035	ForceSendFields []string `json:"-"`
40036
40037	// NullFields is a list of field names (e.g. "Key") to include in API
40038	// requests with the JSON null value. By default, fields with empty
40039	// values are omitted from API requests. However, any field with an
40040	// empty value appearing in NullFields will be sent to the server as
40041	// null. It is an error if a field in this list has a non-empty value.
40042	// This may be used to include null fields in Patch requests.
40043	NullFields []string `json:"-"`
40044}
40045
40046func (s *ServiceAttachmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
40047	type NoMethod ServiceAttachmentAggregatedListWarningData
40048	raw := NoMethod(*s)
40049	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40050}
40051
40052// ServiceAttachmentConnectedEndpoint: [Output Only] A connection
40053// connected to this service attachment.
40054type ServiceAttachmentConnectedEndpoint struct {
40055	// Endpoint: The url of a connected endpoint.
40056	Endpoint string `json:"endpoint,omitempty"`
40057
40058	// PscConnectionId: The PSC connection id of the connected endpoint.
40059	PscConnectionId uint64 `json:"pscConnectionId,omitempty,string"`
40060
40061	// Status: The status of a connected endpoint to this service
40062	// attachment.
40063	//
40064	// Possible values:
40065	//   "ACCEPTED" - The connection has been accepted by the producer.
40066	//   "CLOSED" - The connection has been closed by the producer.
40067	//   "PENDING" - The connection is pending acceptance by the producer.
40068	//   "REJECTED" - The consumer is still connected but not using the
40069	// connection.
40070	//   "STATUS_UNSPECIFIED"
40071	Status string `json:"status,omitempty"`
40072
40073	// ForceSendFields is a list of field names (e.g. "Endpoint") to
40074	// unconditionally include in API requests. By default, fields with
40075	// empty or default values are omitted from API requests. However, any
40076	// non-pointer, non-interface field appearing in ForceSendFields will be
40077	// sent to the server regardless of whether the field is empty or not.
40078	// This may be used to include empty fields in Patch requests.
40079	ForceSendFields []string `json:"-"`
40080
40081	// NullFields is a list of field names (e.g. "Endpoint") to include in
40082	// API requests with the JSON null value. By default, fields with empty
40083	// values are omitted from API requests. However, any field with an
40084	// empty value appearing in NullFields will be sent to the server as
40085	// null. It is an error if a field in this list has a non-empty value.
40086	// This may be used to include null fields in Patch requests.
40087	NullFields []string `json:"-"`
40088}
40089
40090func (s *ServiceAttachmentConnectedEndpoint) MarshalJSON() ([]byte, error) {
40091	type NoMethod ServiceAttachmentConnectedEndpoint
40092	raw := NoMethod(*s)
40093	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40094}
40095
40096type ServiceAttachmentConsumerProjectLimit struct {
40097	// ConnectionLimit: The value of the limit to set.
40098	ConnectionLimit int64 `json:"connectionLimit,omitempty"`
40099
40100	// ProjectIdOrNum: The project id or number for the project to set the
40101	// limit for.
40102	ProjectIdOrNum string `json:"projectIdOrNum,omitempty"`
40103
40104	// ForceSendFields is a list of field names (e.g. "ConnectionLimit") to
40105	// unconditionally include in API requests. By default, fields with
40106	// empty or default values are omitted from API requests. However, any
40107	// non-pointer, non-interface field appearing in ForceSendFields will be
40108	// sent to the server regardless of whether the field is empty or not.
40109	// This may be used to include empty fields in Patch requests.
40110	ForceSendFields []string `json:"-"`
40111
40112	// NullFields is a list of field names (e.g. "ConnectionLimit") to
40113	// include in API requests with the JSON null value. By default, fields
40114	// with empty values are omitted from API requests. However, any field
40115	// with an empty value appearing in NullFields will be sent to the
40116	// server as null. It is an error if a field in this list has a
40117	// non-empty value. This may be used to include null fields in Patch
40118	// requests.
40119	NullFields []string `json:"-"`
40120}
40121
40122func (s *ServiceAttachmentConsumerProjectLimit) MarshalJSON() ([]byte, error) {
40123	type NoMethod ServiceAttachmentConsumerProjectLimit
40124	raw := NoMethod(*s)
40125	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40126}
40127
40128type ServiceAttachmentList struct {
40129	// Id: [Output Only] Unique identifier for the resource; defined by the
40130	// server.
40131	Id string `json:"id,omitempty"`
40132
40133	// Items: A list of ServiceAttachment resources.
40134	Items []*ServiceAttachment `json:"items,omitempty"`
40135
40136	// Kind: [Output Only] Type of the resource. Always
40137	// compute#serviceAttachment for service attachments.
40138	Kind string `json:"kind,omitempty"`
40139
40140	// NextPageToken: [Output Only] This token allows you to get the next
40141	// page of results for list requests. If the number of results is larger
40142	// than maxResults, use the nextPageToken as a value for the query
40143	// parameter pageToken in the next list request. Subsequent list
40144	// requests will have their own nextPageToken to continue paging through
40145	// the results.
40146	NextPageToken string `json:"nextPageToken,omitempty"`
40147
40148	// SelfLink: [Output Only] Server-defined URL for this resource.
40149	SelfLink string `json:"selfLink,omitempty"`
40150
40151	// Warning: [Output Only] Informational warning message.
40152	Warning *ServiceAttachmentListWarning `json:"warning,omitempty"`
40153
40154	// ServerResponse contains the HTTP response code and headers from the
40155	// server.
40156	googleapi.ServerResponse `json:"-"`
40157
40158	// ForceSendFields is a list of field names (e.g. "Id") to
40159	// unconditionally include in API requests. By default, fields with
40160	// empty or default values are omitted from API requests. However, any
40161	// non-pointer, non-interface field appearing in ForceSendFields will be
40162	// sent to the server regardless of whether the field is empty or not.
40163	// This may be used to include empty fields in Patch requests.
40164	ForceSendFields []string `json:"-"`
40165
40166	// NullFields is a list of field names (e.g. "Id") to include in API
40167	// requests with the JSON null value. By default, fields with empty
40168	// values are omitted from API requests. However, any field with an
40169	// empty value appearing in NullFields will be sent to the server as
40170	// null. It is an error if a field in this list has a non-empty value.
40171	// This may be used to include null fields in Patch requests.
40172	NullFields []string `json:"-"`
40173}
40174
40175func (s *ServiceAttachmentList) MarshalJSON() ([]byte, error) {
40176	type NoMethod ServiceAttachmentList
40177	raw := NoMethod(*s)
40178	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40179}
40180
40181// ServiceAttachmentListWarning: [Output Only] Informational warning
40182// message.
40183type ServiceAttachmentListWarning struct {
40184	// Code: [Output Only] A warning code, if applicable. For example,
40185	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40186	// the response.
40187	//
40188	// Possible values:
40189	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
40190	// changes made by a failed operation.
40191	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
40192	// created.
40193	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
40194	// resources has a type marked as deprecated
40195	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
40196	// that is larger than image size.
40197	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
40198	// resources has a type marked as experimental
40199	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
40200	// call
40201	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
40202	// overridden. Deprecated unused field.
40203	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
40204	// injected kernel, which is deprecated.
40205	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
40206	// exceedingly large number of resources
40207	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
40208	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
40209	// not assigned to an instance on the network.
40210	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
40211	// ip forward.
40212	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
40213	// refers to an instance that does not exist.
40214	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
40215	// URL refers to an instance that is not on the same network as the
40216	// route.
40217	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
40218	// have a status of RUNNING.
40219	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
40220	// continue the process despite the mentioned error.
40221	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
40222	// page.
40223	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
40224	// missing due to errors
40225	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
40226	// that requires a TOS they have not accepted.
40227	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
40228	// resource is in use.
40229	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
40230	// auto-delete could not be deleted because they were in use.
40231	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
40232	// ignored.
40233	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
40234	// instance group manager is valid as such, but its application does not
40235	// make a lot of sense, because it allows only single instance in
40236	// instance group.
40237	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
40238	// are present
40239	//   "UNREACHABLE" - A given scope cannot be reached.
40240	Code string `json:"code,omitempty"`
40241
40242	// Data: [Output Only] Metadata about this warning in key: value format.
40243	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
40244	// }
40245	Data []*ServiceAttachmentListWarningData `json:"data,omitempty"`
40246
40247	// Message: [Output Only] A human-readable description of the warning
40248	// code.
40249	Message string `json:"message,omitempty"`
40250
40251	// ForceSendFields is a list of field names (e.g. "Code") to
40252	// unconditionally include in API requests. By default, fields with
40253	// empty or default values are omitted from API requests. However, any
40254	// non-pointer, non-interface field appearing in ForceSendFields will be
40255	// sent to the server regardless of whether the field is empty or not.
40256	// This may be used to include empty fields in Patch requests.
40257	ForceSendFields []string `json:"-"`
40258
40259	// NullFields is a list of field names (e.g. "Code") to include in API
40260	// requests with the JSON null value. By default, fields with empty
40261	// values are omitted from API requests. However, any field with an
40262	// empty value appearing in NullFields will be sent to the server as
40263	// null. It is an error if a field in this list has a non-empty value.
40264	// This may be used to include null fields in Patch requests.
40265	NullFields []string `json:"-"`
40266}
40267
40268func (s *ServiceAttachmentListWarning) MarshalJSON() ([]byte, error) {
40269	type NoMethod ServiceAttachmentListWarning
40270	raw := NoMethod(*s)
40271	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40272}
40273
40274type ServiceAttachmentListWarningData struct {
40275	// Key: [Output Only] A key that provides more detail on the warning
40276	// being returned. For example, for warnings where there are no results
40277	// in a list request for a particular zone, this key might be scope and
40278	// the key value might be the zone name. Other examples might be a key
40279	// indicating a deprecated resource and a suggested replacement, or a
40280	// warning about invalid network settings (for example, if an instance
40281	// attempts to perform IP forwarding but is not enabled for IP
40282	// forwarding).
40283	Key string `json:"key,omitempty"`
40284
40285	// Value: [Output Only] A warning data value corresponding to the key.
40286	Value string `json:"value,omitempty"`
40287
40288	// ForceSendFields is a list of field names (e.g. "Key") to
40289	// unconditionally include in API requests. By default, fields with
40290	// empty or default values are omitted from API requests. However, any
40291	// non-pointer, non-interface field appearing in ForceSendFields will be
40292	// sent to the server regardless of whether the field is empty or not.
40293	// This may be used to include empty fields in Patch requests.
40294	ForceSendFields []string `json:"-"`
40295
40296	// NullFields is a list of field names (e.g. "Key") to include in API
40297	// requests with the JSON null value. By default, fields with empty
40298	// values are omitted from API requests. However, any field with an
40299	// empty value appearing in NullFields will be sent to the server as
40300	// null. It is an error if a field in this list has a non-empty value.
40301	// This may be used to include null fields in Patch requests.
40302	NullFields []string `json:"-"`
40303}
40304
40305func (s *ServiceAttachmentListWarningData) MarshalJSON() ([]byte, error) {
40306	type NoMethod ServiceAttachmentListWarningData
40307	raw := NoMethod(*s)
40308	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40309}
40310
40311type ServiceAttachmentsScopedList struct {
40312	// ServiceAttachments: A list of ServiceAttachments contained in this
40313	// scope.
40314	ServiceAttachments []*ServiceAttachment `json:"serviceAttachments,omitempty"`
40315
40316	// Warning: Informational warning which replaces the list of service
40317	// attachments when the list is empty.
40318	Warning *ServiceAttachmentsScopedListWarning `json:"warning,omitempty"`
40319
40320	// ForceSendFields is a list of field names (e.g. "ServiceAttachments")
40321	// to unconditionally include in API requests. By default, fields with
40322	// empty or default values are omitted from API requests. However, any
40323	// non-pointer, non-interface field appearing in ForceSendFields will be
40324	// sent to the server regardless of whether the field is empty or not.
40325	// This may be used to include empty fields in Patch requests.
40326	ForceSendFields []string `json:"-"`
40327
40328	// NullFields is a list of field names (e.g. "ServiceAttachments") to
40329	// include in API requests with the JSON null value. By default, fields
40330	// with empty values are omitted from API requests. However, any field
40331	// with an empty value appearing in NullFields will be sent to the
40332	// server as null. It is an error if a field in this list has a
40333	// non-empty value. This may be used to include null fields in Patch
40334	// requests.
40335	NullFields []string `json:"-"`
40336}
40337
40338func (s *ServiceAttachmentsScopedList) MarshalJSON() ([]byte, error) {
40339	type NoMethod ServiceAttachmentsScopedList
40340	raw := NoMethod(*s)
40341	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40342}
40343
40344// ServiceAttachmentsScopedListWarning: Informational warning which
40345// replaces the list of service attachments when the list is empty.
40346type ServiceAttachmentsScopedListWarning struct {
40347	// Code: [Output Only] A warning code, if applicable. For example,
40348	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40349	// the response.
40350	//
40351	// Possible values:
40352	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
40353	// changes made by a failed operation.
40354	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
40355	// created.
40356	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
40357	// resources has a type marked as deprecated
40358	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
40359	// that is larger than image size.
40360	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
40361	// resources has a type marked as experimental
40362	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
40363	// call
40364	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
40365	// overridden. Deprecated unused field.
40366	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
40367	// injected kernel, which is deprecated.
40368	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
40369	// exceedingly large number of resources
40370	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
40371	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
40372	// not assigned to an instance on the network.
40373	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
40374	// ip forward.
40375	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
40376	// refers to an instance that does not exist.
40377	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
40378	// URL refers to an instance that is not on the same network as the
40379	// route.
40380	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
40381	// have a status of RUNNING.
40382	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
40383	// continue the process despite the mentioned error.
40384	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
40385	// page.
40386	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
40387	// missing due to errors
40388	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
40389	// that requires a TOS they have not accepted.
40390	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
40391	// resource is in use.
40392	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
40393	// auto-delete could not be deleted because they were in use.
40394	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
40395	// ignored.
40396	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
40397	// instance group manager is valid as such, but its application does not
40398	// make a lot of sense, because it allows only single instance in
40399	// instance group.
40400	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
40401	// are present
40402	//   "UNREACHABLE" - A given scope cannot be reached.
40403	Code string `json:"code,omitempty"`
40404
40405	// Data: [Output Only] Metadata about this warning in key: value format.
40406	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
40407	// }
40408	Data []*ServiceAttachmentsScopedListWarningData `json:"data,omitempty"`
40409
40410	// Message: [Output Only] A human-readable description of the warning
40411	// code.
40412	Message string `json:"message,omitempty"`
40413
40414	// ForceSendFields is a list of field names (e.g. "Code") to
40415	// unconditionally include in API requests. By default, fields with
40416	// empty or default values are omitted from API requests. However, any
40417	// non-pointer, non-interface field appearing in ForceSendFields will be
40418	// sent to the server regardless of whether the field is empty or not.
40419	// This may be used to include empty fields in Patch requests.
40420	ForceSendFields []string `json:"-"`
40421
40422	// NullFields is a list of field names (e.g. "Code") to include in API
40423	// requests with the JSON null value. By default, fields with empty
40424	// values are omitted from API requests. However, any field with an
40425	// empty value appearing in NullFields will be sent to the server as
40426	// null. It is an error if a field in this list has a non-empty value.
40427	// This may be used to include null fields in Patch requests.
40428	NullFields []string `json:"-"`
40429}
40430
40431func (s *ServiceAttachmentsScopedListWarning) MarshalJSON() ([]byte, error) {
40432	type NoMethod ServiceAttachmentsScopedListWarning
40433	raw := NoMethod(*s)
40434	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40435}
40436
40437type ServiceAttachmentsScopedListWarningData struct {
40438	// Key: [Output Only] A key that provides more detail on the warning
40439	// being returned. For example, for warnings where there are no results
40440	// in a list request for a particular zone, this key might be scope and
40441	// the key value might be the zone name. Other examples might be a key
40442	// indicating a deprecated resource and a suggested replacement, or a
40443	// warning about invalid network settings (for example, if an instance
40444	// attempts to perform IP forwarding but is not enabled for IP
40445	// forwarding).
40446	Key string `json:"key,omitempty"`
40447
40448	// Value: [Output Only] A warning data value corresponding to the key.
40449	Value string `json:"value,omitempty"`
40450
40451	// ForceSendFields is a list of field names (e.g. "Key") to
40452	// unconditionally include in API requests. By default, fields with
40453	// empty or default values are omitted from API requests. However, any
40454	// non-pointer, non-interface field appearing in ForceSendFields will be
40455	// sent to the server regardless of whether the field is empty or not.
40456	// This may be used to include empty fields in Patch requests.
40457	ForceSendFields []string `json:"-"`
40458
40459	// NullFields is a list of field names (e.g. "Key") to include in API
40460	// requests with the JSON null value. By default, fields with empty
40461	// values are omitted from API requests. However, any field with an
40462	// empty value appearing in NullFields will be sent to the server as
40463	// null. It is an error if a field in this list has a non-empty value.
40464	// This may be used to include null fields in Patch requests.
40465	NullFields []string `json:"-"`
40466}
40467
40468func (s *ServiceAttachmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
40469	type NoMethod ServiceAttachmentsScopedListWarningData
40470	raw := NoMethod(*s)
40471	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40472}
40473
40474// ShieldedInstanceConfig: A set of Shielded Instance options.
40475type ShieldedInstanceConfig struct {
40476	// EnableIntegrityMonitoring: Defines whether the instance has integrity
40477	// monitoring enabled. Enabled by default.
40478	EnableIntegrityMonitoring bool `json:"enableIntegrityMonitoring,omitempty"`
40479
40480	// EnableSecureBoot: Defines whether the instance has Secure Boot
40481	// enabled. Disabled by default.
40482	EnableSecureBoot bool `json:"enableSecureBoot,omitempty"`
40483
40484	// EnableVtpm: Defines whether the instance has the vTPM enabled.
40485	// Enabled by default.
40486	EnableVtpm bool `json:"enableVtpm,omitempty"`
40487
40488	// ForceSendFields is a list of field names (e.g.
40489	// "EnableIntegrityMonitoring") to unconditionally include in API
40490	// requests. By default, fields with empty or default values are omitted
40491	// from API requests. However, any non-pointer, non-interface field
40492	// appearing in ForceSendFields will be sent to the server regardless of
40493	// whether the field is empty or not. This may be used to include empty
40494	// fields in Patch requests.
40495	ForceSendFields []string `json:"-"`
40496
40497	// NullFields is a list of field names (e.g.
40498	// "EnableIntegrityMonitoring") to include in API requests with the JSON
40499	// null value. By default, fields with empty values are omitted from API
40500	// requests. However, any field with an empty value appearing in
40501	// NullFields will be sent to the server as null. It is an error if a
40502	// field in this list has a non-empty value. This may be used to include
40503	// null fields in Patch requests.
40504	NullFields []string `json:"-"`
40505}
40506
40507func (s *ShieldedInstanceConfig) MarshalJSON() ([]byte, error) {
40508	type NoMethod ShieldedInstanceConfig
40509	raw := NoMethod(*s)
40510	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40511}
40512
40513// ShieldedInstanceIdentity: A Shielded Instance Identity.
40514type ShieldedInstanceIdentity struct {
40515	// EncryptionKey: An Endorsement Key (EK) made by the RSA 2048 algorithm
40516	// issued to the Shielded Instance's vTPM.
40517	EncryptionKey *ShieldedInstanceIdentityEntry `json:"encryptionKey,omitempty"`
40518
40519	// Kind: [Output Only] Type of the resource. Always
40520	// compute#shieldedInstanceIdentity for shielded Instance identity
40521	// entry.
40522	Kind string `json:"kind,omitempty"`
40523
40524	// SigningKey: An Attestation Key (AK) made by the RSA 2048 algorithm
40525	// issued to the Shielded Instance's vTPM.
40526	SigningKey *ShieldedInstanceIdentityEntry `json:"signingKey,omitempty"`
40527
40528	// ServerResponse contains the HTTP response code and headers from the
40529	// server.
40530	googleapi.ServerResponse `json:"-"`
40531
40532	// ForceSendFields is a list of field names (e.g. "EncryptionKey") to
40533	// unconditionally include in API requests. By default, fields with
40534	// empty or default values are omitted from API requests. However, any
40535	// non-pointer, non-interface field appearing in ForceSendFields will be
40536	// sent to the server regardless of whether the field is empty or not.
40537	// This may be used to include empty fields in Patch requests.
40538	ForceSendFields []string `json:"-"`
40539
40540	// NullFields is a list of field names (e.g. "EncryptionKey") to include
40541	// in API requests with the JSON null value. By default, fields with
40542	// empty values are omitted from API requests. However, any field with
40543	// an empty value appearing in NullFields will be sent to the server as
40544	// null. It is an error if a field in this list has a non-empty value.
40545	// This may be used to include null fields in Patch requests.
40546	NullFields []string `json:"-"`
40547}
40548
40549func (s *ShieldedInstanceIdentity) MarshalJSON() ([]byte, error) {
40550	type NoMethod ShieldedInstanceIdentity
40551	raw := NoMethod(*s)
40552	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40553}
40554
40555// ShieldedInstanceIdentityEntry: A Shielded Instance Identity Entry.
40556type ShieldedInstanceIdentityEntry struct {
40557	// EkCert: A PEM-encoded X.509 certificate. This field can be empty.
40558	EkCert string `json:"ekCert,omitempty"`
40559
40560	// EkPub: A PEM-encoded public key.
40561	EkPub string `json:"ekPub,omitempty"`
40562
40563	// ForceSendFields is a list of field names (e.g. "EkCert") to
40564	// unconditionally include in API requests. By default, fields with
40565	// empty or default values are omitted from API requests. However, any
40566	// non-pointer, non-interface field appearing in ForceSendFields will be
40567	// sent to the server regardless of whether the field is empty or not.
40568	// This may be used to include empty fields in Patch requests.
40569	ForceSendFields []string `json:"-"`
40570
40571	// NullFields is a list of field names (e.g. "EkCert") to include in API
40572	// requests with the JSON null value. By default, fields with empty
40573	// values are omitted from API requests. However, any field with an
40574	// empty value appearing in NullFields will be sent to the server as
40575	// null. It is an error if a field in this list has a non-empty value.
40576	// This may be used to include null fields in Patch requests.
40577	NullFields []string `json:"-"`
40578}
40579
40580func (s *ShieldedInstanceIdentityEntry) MarshalJSON() ([]byte, error) {
40581	type NoMethod ShieldedInstanceIdentityEntry
40582	raw := NoMethod(*s)
40583	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40584}
40585
40586// ShieldedInstanceIntegrityPolicy: The policy describes the baseline
40587// against which Instance boot integrity is measured.
40588type ShieldedInstanceIntegrityPolicy struct {
40589	// UpdateAutoLearnPolicy: Updates the integrity policy baseline using
40590	// the measurements from the VM instance's most recent boot.
40591	UpdateAutoLearnPolicy bool `json:"updateAutoLearnPolicy,omitempty"`
40592
40593	// ForceSendFields is a list of field names (e.g.
40594	// "UpdateAutoLearnPolicy") to unconditionally include in API requests.
40595	// By default, fields with empty or default values are omitted from API
40596	// requests. However, any non-pointer, non-interface field appearing in
40597	// ForceSendFields will be sent to the server regardless of whether the
40598	// field is empty or not. This may be used to include empty fields in
40599	// Patch requests.
40600	ForceSendFields []string `json:"-"`
40601
40602	// NullFields is a list of field names (e.g. "UpdateAutoLearnPolicy") to
40603	// include in API requests with the JSON null value. By default, fields
40604	// with empty values are omitted from API requests. However, any field
40605	// with an empty value appearing in NullFields will be sent to the
40606	// server as null. It is an error if a field in this list has a
40607	// non-empty value. This may be used to include null fields in Patch
40608	// requests.
40609	NullFields []string `json:"-"`
40610}
40611
40612func (s *ShieldedInstanceIntegrityPolicy) MarshalJSON() ([]byte, error) {
40613	type NoMethod ShieldedInstanceIntegrityPolicy
40614	raw := NoMethod(*s)
40615	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40616}
40617
40618// SignedUrlKey: Represents a customer-supplied Signing Key used by
40619// Cloud CDN Signed URLs
40620type SignedUrlKey struct {
40621	// KeyName: Name of the key. The name must be 1-63 characters long, and
40622	// comply with RFC1035. Specifically, the name must be 1-63 characters
40623	// long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
40624	// which means the first character must be a lowercase letter, and all
40625	// following characters must be a dash, lowercase letter, or digit,
40626	// except the last character, which cannot be a dash.
40627	KeyName string `json:"keyName,omitempty"`
40628
40629	// KeyValue: 128-bit key value used for signing the URL. The key value
40630	// must be a valid RFC 4648 Section 5 base64url encoded string.
40631	KeyValue string `json:"keyValue,omitempty"`
40632
40633	// ForceSendFields is a list of field names (e.g. "KeyName") to
40634	// unconditionally include in API requests. By default, fields with
40635	// empty or default values are omitted from API requests. However, any
40636	// non-pointer, non-interface field appearing in ForceSendFields will be
40637	// sent to the server regardless of whether the field is empty or not.
40638	// This may be used to include empty fields in Patch requests.
40639	ForceSendFields []string `json:"-"`
40640
40641	// NullFields is a list of field names (e.g. "KeyName") to include in
40642	// API requests with the JSON null value. By default, fields with empty
40643	// values are omitted from API requests. However, any field with an
40644	// empty value appearing in NullFields will be sent to the server as
40645	// null. It is an error if a field in this list has a non-empty value.
40646	// This may be used to include null fields in Patch requests.
40647	NullFields []string `json:"-"`
40648}
40649
40650func (s *SignedUrlKey) MarshalJSON() ([]byte, error) {
40651	type NoMethod SignedUrlKey
40652	raw := NoMethod(*s)
40653	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40654}
40655
40656// Snapshot: Represents a Persistent Disk Snapshot resource. You can use
40657// snapshots to back up data on a regular interval. For more
40658// information, read Creating persistent disk snapshots.
40659type Snapshot struct {
40660	// AutoCreated: [Output Only] Set to true if snapshots are automatically
40661	// created by applying resource policy on the target disk.
40662	AutoCreated bool `json:"autoCreated,omitempty"`
40663
40664	// ChainName: Creates the new snapshot in the snapshot chain labeled
40665	// with the specified name. The chain name must be 1-63 characters long
40666	// and comply with RFC1035. This is an uncommon option only for advanced
40667	// service owners who needs to create separate snapshot chains, for
40668	// example, for chargeback tracking. When you describe your snapshot
40669	// resource, this field is visible only if it has a non-empty value.
40670	ChainName string `json:"chainName,omitempty"`
40671
40672	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
40673	// format.
40674	CreationTimestamp string `json:"creationTimestamp,omitempty"`
40675
40676	// Description: An optional description of this resource. Provide this
40677	// property when you create the resource.
40678	Description string `json:"description,omitempty"`
40679
40680	// DiskSizeGb: [Output Only] Size of the source disk, specified in GB.
40681	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
40682
40683	// DownloadBytes: [Output Only] Number of bytes downloaded to restore a
40684	// snapshot to a disk.
40685	DownloadBytes int64 `json:"downloadBytes,omitempty,string"`
40686
40687	// Id: [Output Only] The unique identifier for the resource. This
40688	// identifier is defined by the server.
40689	Id uint64 `json:"id,omitempty,string"`
40690
40691	// Kind: [Output Only] Type of the resource. Always compute#snapshot for
40692	// Snapshot resources.
40693	Kind string `json:"kind,omitempty"`
40694
40695	// LabelFingerprint: A fingerprint for the labels being applied to this
40696	// snapshot, which is essentially a hash of the labels set used for
40697	// optimistic locking. The fingerprint is initially generated by Compute
40698	// Engine and changes after every request to modify or update labels.
40699	// You must always provide an up-to-date fingerprint hash in order to
40700	// update or change labels, otherwise the request will fail with error
40701	// 412 conditionNotMet. To see the latest fingerprint, make a get()
40702	// request to retrieve a snapshot.
40703	LabelFingerprint string `json:"labelFingerprint,omitempty"`
40704
40705	// Labels: Labels to apply to this snapshot. These can be later modified
40706	// by the setLabels method. Label values may be empty.
40707	Labels map[string]string `json:"labels,omitempty"`
40708
40709	// LicenseCodes: [Output Only] Integer license codes indicating which
40710	// licenses are attached to this snapshot.
40711	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
40712
40713	// Licenses: [Output Only] A list of public visible licenses that apply
40714	// to this snapshot. This can be because the original image had licenses
40715	// attached (such as a Windows image).
40716	Licenses []string `json:"licenses,omitempty"`
40717
40718	// LocationHint: An opaque location hint used to place the snapshot
40719	// close to other resources. This field is for use by internal tools
40720	// that use the public API.
40721	LocationHint string `json:"locationHint,omitempty"`
40722
40723	// Name: Name of the resource; provided by the client when the resource
40724	// is created. The name must be 1-63 characters long, and comply with
40725	// RFC1035. Specifically, the name must be 1-63 characters long and
40726	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
40727	// the first character must be a lowercase letter, and all following
40728	// characters must be a dash, lowercase letter, or digit, except the
40729	// last character, which cannot be a dash.
40730	Name string `json:"name,omitempty"`
40731
40732	// SatisfiesPzs: [Output Only] Reserved for future use.
40733	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
40734
40735	// SelfLink: [Output Only] Server-defined URL for the resource.
40736	SelfLink string `json:"selfLink,omitempty"`
40737
40738	// SnapshotEncryptionKey: Encrypts the snapshot using a
40739	// customer-supplied encryption key. After you encrypt a snapshot using
40740	// a customer-supplied key, you must provide the same key if you use the
40741	// snapshot later. For example, you must provide the encryption key when
40742	// you create a disk from the encrypted snapshot in a future request.
40743	// Customer-supplied encryption keys do not protect access to metadata
40744	// of the snapshot. If you do not provide an encryption key when
40745	// creating the snapshot, then the snapshot will be encrypted using an
40746	// automatically generated key and you do not need to provide a key to
40747	// use the snapshot later.
40748	SnapshotEncryptionKey *CustomerEncryptionKey `json:"snapshotEncryptionKey,omitempty"`
40749
40750	// SourceDisk: The source disk used to create this snapshot.
40751	SourceDisk string `json:"sourceDisk,omitempty"`
40752
40753	// SourceDiskEncryptionKey: The customer-supplied encryption key of the
40754	// source disk. Required if the source disk is protected by a
40755	// customer-supplied encryption key.
40756	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
40757
40758	// SourceDiskId: [Output Only] The ID value of the disk used to create
40759	// this snapshot. This value may be used to determine whether the
40760	// snapshot was taken from the current or a previous instance of a given
40761	// disk name.
40762	SourceDiskId string `json:"sourceDiskId,omitempty"`
40763
40764	// Status: [Output Only] The status of the snapshot. This can be
40765	// CREATING, DELETING, FAILED, READY, or UPLOADING.
40766	//
40767	// Possible values:
40768	//   "CREATING" - Snapshot creation is in progress.
40769	//   "DELETING" - Snapshot is currently being deleted.
40770	//   "FAILED" - Snapshot creation failed.
40771	//   "READY" - Snapshot has been created successfully.
40772	//   "UPLOADING" - Snapshot is being uploaded.
40773	Status string `json:"status,omitempty"`
40774
40775	// StorageBytes: [Output Only] A size of the storage used by the
40776	// snapshot. As snapshots share storage, this number is expected to
40777	// change with snapshot creation/deletion.
40778	StorageBytes int64 `json:"storageBytes,omitempty,string"`
40779
40780	// StorageBytesStatus: [Output Only] An indicator whether storageBytes
40781	// is in a stable state or it is being adjusted as a result of shared
40782	// storage reallocation. This status can either be UPDATING, meaning the
40783	// size of the snapshot is being updated, or UP_TO_DATE, meaning the
40784	// size of the snapshot is up-to-date.
40785	//
40786	// Possible values:
40787	//   "UPDATING"
40788	//   "UP_TO_DATE"
40789	StorageBytesStatus string `json:"storageBytesStatus,omitempty"`
40790
40791	// StorageLocations: Cloud Storage bucket storage location of the
40792	// snapshot (regional or multi-regional).
40793	StorageLocations []string `json:"storageLocations,omitempty"`
40794
40795	// ServerResponse contains the HTTP response code and headers from the
40796	// server.
40797	googleapi.ServerResponse `json:"-"`
40798
40799	// ForceSendFields is a list of field names (e.g. "AutoCreated") to
40800	// unconditionally include in API requests. By default, fields with
40801	// empty or default values are omitted from API requests. However, any
40802	// non-pointer, non-interface field appearing in ForceSendFields will be
40803	// sent to the server regardless of whether the field is empty or not.
40804	// This may be used to include empty fields in Patch requests.
40805	ForceSendFields []string `json:"-"`
40806
40807	// NullFields is a list of field names (e.g. "AutoCreated") to include
40808	// in API requests with the JSON null value. By default, fields with
40809	// empty values are omitted from API requests. However, any field with
40810	// an empty value appearing in NullFields will be sent to the server as
40811	// null. It is an error if a field in this list has a non-empty value.
40812	// This may be used to include null fields in Patch requests.
40813	NullFields []string `json:"-"`
40814}
40815
40816func (s *Snapshot) MarshalJSON() ([]byte, error) {
40817	type NoMethod Snapshot
40818	raw := NoMethod(*s)
40819	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40820}
40821
40822// SnapshotList: Contains a list of Snapshot resources.
40823type SnapshotList struct {
40824	// Id: [Output Only] Unique identifier for the resource; defined by the
40825	// server.
40826	Id string `json:"id,omitempty"`
40827
40828	// Items: A list of Snapshot resources.
40829	Items []*Snapshot `json:"items,omitempty"`
40830
40831	// Kind: Type of resource.
40832	Kind string `json:"kind,omitempty"`
40833
40834	// NextPageToken: [Output Only] This token allows you to get the next
40835	// page of results for list requests. If the number of results is larger
40836	// than maxResults, use the nextPageToken as a value for the query
40837	// parameter pageToken in the next list request. Subsequent list
40838	// requests will have their own nextPageToken to continue paging through
40839	// the results.
40840	NextPageToken string `json:"nextPageToken,omitempty"`
40841
40842	// SelfLink: [Output Only] Server-defined URL for this resource.
40843	SelfLink string `json:"selfLink,omitempty"`
40844
40845	// Warning: [Output Only] Informational warning message.
40846	Warning *SnapshotListWarning `json:"warning,omitempty"`
40847
40848	// ServerResponse contains the HTTP response code and headers from the
40849	// server.
40850	googleapi.ServerResponse `json:"-"`
40851
40852	// ForceSendFields is a list of field names (e.g. "Id") to
40853	// unconditionally include in API requests. By default, fields with
40854	// empty or default values are omitted from API requests. However, any
40855	// non-pointer, non-interface field appearing in ForceSendFields will be
40856	// sent to the server regardless of whether the field is empty or not.
40857	// This may be used to include empty fields in Patch requests.
40858	ForceSendFields []string `json:"-"`
40859
40860	// NullFields is a list of field names (e.g. "Id") to include in API
40861	// requests with the JSON null value. By default, fields with empty
40862	// values are omitted from API requests. However, any field with an
40863	// empty value appearing in NullFields will be sent to the server as
40864	// null. It is an error if a field in this list has a non-empty value.
40865	// This may be used to include null fields in Patch requests.
40866	NullFields []string `json:"-"`
40867}
40868
40869func (s *SnapshotList) MarshalJSON() ([]byte, error) {
40870	type NoMethod SnapshotList
40871	raw := NoMethod(*s)
40872	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40873}
40874
40875// SnapshotListWarning: [Output Only] Informational warning message.
40876type SnapshotListWarning struct {
40877	// Code: [Output Only] A warning code, if applicable. For example,
40878	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40879	// the response.
40880	//
40881	// Possible values:
40882	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
40883	// changes made by a failed operation.
40884	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
40885	// created.
40886	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
40887	// resources has a type marked as deprecated
40888	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
40889	// that is larger than image size.
40890	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
40891	// resources has a type marked as experimental
40892	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
40893	// call
40894	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
40895	// overridden. Deprecated unused field.
40896	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
40897	// injected kernel, which is deprecated.
40898	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
40899	// exceedingly large number of resources
40900	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
40901	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
40902	// not assigned to an instance on the network.
40903	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
40904	// ip forward.
40905	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
40906	// refers to an instance that does not exist.
40907	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
40908	// URL refers to an instance that is not on the same network as the
40909	// route.
40910	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
40911	// have a status of RUNNING.
40912	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
40913	// continue the process despite the mentioned error.
40914	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
40915	// page.
40916	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
40917	// missing due to errors
40918	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
40919	// that requires a TOS they have not accepted.
40920	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
40921	// resource is in use.
40922	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
40923	// auto-delete could not be deleted because they were in use.
40924	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
40925	// ignored.
40926	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
40927	// instance group manager is valid as such, but its application does not
40928	// make a lot of sense, because it allows only single instance in
40929	// instance group.
40930	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
40931	// are present
40932	//   "UNREACHABLE" - A given scope cannot be reached.
40933	Code string `json:"code,omitempty"`
40934
40935	// Data: [Output Only] Metadata about this warning in key: value format.
40936	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
40937	// }
40938	Data []*SnapshotListWarningData `json:"data,omitempty"`
40939
40940	// Message: [Output Only] A human-readable description of the warning
40941	// code.
40942	Message string `json:"message,omitempty"`
40943
40944	// ForceSendFields is a list of field names (e.g. "Code") to
40945	// unconditionally include in API requests. By default, fields with
40946	// empty or default values are omitted from API requests. However, any
40947	// non-pointer, non-interface field appearing in ForceSendFields will be
40948	// sent to the server regardless of whether the field is empty or not.
40949	// This may be used to include empty fields in Patch requests.
40950	ForceSendFields []string `json:"-"`
40951
40952	// NullFields is a list of field names (e.g. "Code") to include in API
40953	// requests with the JSON null value. By default, fields with empty
40954	// values are omitted from API requests. However, any field with an
40955	// empty value appearing in NullFields will be sent to the server as
40956	// null. It is an error if a field in this list has a non-empty value.
40957	// This may be used to include null fields in Patch requests.
40958	NullFields []string `json:"-"`
40959}
40960
40961func (s *SnapshotListWarning) MarshalJSON() ([]byte, error) {
40962	type NoMethod SnapshotListWarning
40963	raw := NoMethod(*s)
40964	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40965}
40966
40967type SnapshotListWarningData struct {
40968	// Key: [Output Only] A key that provides more detail on the warning
40969	// being returned. For example, for warnings where there are no results
40970	// in a list request for a particular zone, this key might be scope and
40971	// the key value might be the zone name. Other examples might be a key
40972	// indicating a deprecated resource and a suggested replacement, or a
40973	// warning about invalid network settings (for example, if an instance
40974	// attempts to perform IP forwarding but is not enabled for IP
40975	// forwarding).
40976	Key string `json:"key,omitempty"`
40977
40978	// Value: [Output Only] A warning data value corresponding to the key.
40979	Value string `json:"value,omitempty"`
40980
40981	// ForceSendFields is a list of field names (e.g. "Key") to
40982	// unconditionally include in API requests. By default, fields with
40983	// empty or default values are omitted from API requests. However, any
40984	// non-pointer, non-interface field appearing in ForceSendFields will be
40985	// sent to the server regardless of whether the field is empty or not.
40986	// This may be used to include empty fields in Patch requests.
40987	ForceSendFields []string `json:"-"`
40988
40989	// NullFields is a list of field names (e.g. "Key") to include in API
40990	// requests with the JSON null value. By default, fields with empty
40991	// values are omitted from API requests. However, any field with an
40992	// empty value appearing in NullFields will be sent to the server as
40993	// null. It is an error if a field in this list has a non-empty value.
40994	// This may be used to include null fields in Patch requests.
40995	NullFields []string `json:"-"`
40996}
40997
40998func (s *SnapshotListWarningData) MarshalJSON() ([]byte, error) {
40999	type NoMethod SnapshotListWarningData
41000	raw := NoMethod(*s)
41001	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41002}
41003
41004// SourceInstanceParams: A specification of the parameters to use when
41005// creating the instance template from a source instance.
41006type SourceInstanceParams struct {
41007	// DiskConfigs: Attached disks configuration. If not provided, defaults
41008	// are applied: For boot disk and any other R/W disks, new custom images
41009	// will be created from each disk. For read-only disks, they will be
41010	// attached in read-only mode. Local SSD disks will be created as blank
41011	// volumes.
41012	DiskConfigs []*DiskInstantiationConfig `json:"diskConfigs,omitempty"`
41013
41014	// ForceSendFields is a list of field names (e.g. "DiskConfigs") to
41015	// unconditionally include in API requests. By default, fields with
41016	// empty or default values are omitted from API requests. However, any
41017	// non-pointer, non-interface field appearing in ForceSendFields will be
41018	// sent to the server regardless of whether the field is empty or not.
41019	// This may be used to include empty fields in Patch requests.
41020	ForceSendFields []string `json:"-"`
41021
41022	// NullFields is a list of field names (e.g. "DiskConfigs") to include
41023	// in API requests with the JSON null value. By default, fields with
41024	// empty values are omitted from API requests. However, any field with
41025	// an empty value appearing in NullFields will be sent to the server as
41026	// null. It is an error if a field in this list has a non-empty value.
41027	// This may be used to include null fields in Patch requests.
41028	NullFields []string `json:"-"`
41029}
41030
41031func (s *SourceInstanceParams) MarshalJSON() ([]byte, error) {
41032	type NoMethod SourceInstanceParams
41033	raw := NoMethod(*s)
41034	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41035}
41036
41037// SslCertificate: Represents an SSL Certificate resource. Google
41038// Compute Engine has two SSL Certificate resources: * Global
41039// (/compute/docs/reference/rest/v1/sslCertificates) * Regional
41040// (/compute/docs/reference/rest/v1/regionSslCertificates) The
41041// sslCertificates are used by: - external HTTPS load balancers - SSL
41042// proxy load balancers The regionSslCertificates are used by internal
41043// HTTPS load balancers. Optionally, certificate file contents that you
41044// upload can contain a set of up to five PEM-encoded certificates. The
41045// API call creates an object (sslCertificate) that holds this data. You
41046// can use SSL keys and certificates to secure connections to a load
41047// balancer. For more information, read Creating and using SSL
41048// certificates, SSL certificates quotas and limits, and Troubleshooting
41049// SSL certificates.
41050type SslCertificate struct {
41051	// Certificate: A value read into memory from a certificate file. The
41052	// certificate file must be in PEM format. The certificate chain must be
41053	// no greater than 5 certs long. The chain must include at least one
41054	// intermediate cert.
41055	Certificate string `json:"certificate,omitempty"`
41056
41057	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
41058	// format.
41059	CreationTimestamp string `json:"creationTimestamp,omitempty"`
41060
41061	// Description: An optional description of this resource. Provide this
41062	// property when you create the resource.
41063	Description string `json:"description,omitempty"`
41064
41065	// ExpireTime: [Output Only] Expire time of the certificate. RFC3339
41066	ExpireTime string `json:"expireTime,omitempty"`
41067
41068	// Id: [Output Only] The unique identifier for the resource. This
41069	// identifier is defined by the server.
41070	Id uint64 `json:"id,omitempty,string"`
41071
41072	// Kind: [Output Only] Type of the resource. Always
41073	// compute#sslCertificate for SSL certificates.
41074	Kind string `json:"kind,omitempty"`
41075
41076	// Managed: Configuration and status of a managed SSL certificate.
41077	Managed *SslCertificateManagedSslCertificate `json:"managed,omitempty"`
41078
41079	// Name: Name of the resource. Provided by the client when the resource
41080	// is created. The name must be 1-63 characters long, and comply with
41081	// RFC1035. Specifically, the name must be 1-63 characters long and
41082	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
41083	// the first character must be a lowercase letter, and all following
41084	// characters must be a dash, lowercase letter, or digit, except the
41085	// last character, which cannot be a dash.
41086	Name string `json:"name,omitempty"`
41087
41088	// PrivateKey: A value read into memory from a write-only private key
41089	// file. The private key file must be in PEM format. For security, only
41090	// insert requests include this field.
41091	PrivateKey string `json:"privateKey,omitempty"`
41092
41093	// Region: [Output Only] URL of the region where the regional SSL
41094	// Certificate resides. This field is not applicable to global SSL
41095	// Certificate.
41096	Region string `json:"region,omitempty"`
41097
41098	// SelfLink: [Output only] Server-defined URL for the resource.
41099	SelfLink string `json:"selfLink,omitempty"`
41100
41101	// SelfManaged: Configuration and status of a self-managed SSL
41102	// certificate.
41103	SelfManaged *SslCertificateSelfManagedSslCertificate `json:"selfManaged,omitempty"`
41104
41105	// SubjectAlternativeNames: [Output Only] Domains associated with the
41106	// certificate via Subject Alternative Name.
41107	SubjectAlternativeNames []string `json:"subjectAlternativeNames,omitempty"`
41108
41109	// Type: (Optional) Specifies the type of SSL certificate, either
41110	// "SELF_MANAGED" or "MANAGED". If not specified, the certificate is
41111	// self-managed and the fields certificate and private_key are used.
41112	//
41113	// Possible values:
41114	//   "MANAGED" - Google-managed SSLCertificate.
41115	//   "SELF_MANAGED" - Certificate uploaded by user.
41116	//   "TYPE_UNSPECIFIED"
41117	Type string `json:"type,omitempty"`
41118
41119	// ServerResponse contains the HTTP response code and headers from the
41120	// server.
41121	googleapi.ServerResponse `json:"-"`
41122
41123	// ForceSendFields is a list of field names (e.g. "Certificate") to
41124	// unconditionally include in API requests. By default, fields with
41125	// empty or default values are omitted from API requests. However, any
41126	// non-pointer, non-interface field appearing in ForceSendFields will be
41127	// sent to the server regardless of whether the field is empty or not.
41128	// This may be used to include empty fields in Patch requests.
41129	ForceSendFields []string `json:"-"`
41130
41131	// NullFields is a list of field names (e.g. "Certificate") to include
41132	// in API requests with the JSON null value. By default, fields with
41133	// empty values are omitted from API requests. However, any field with
41134	// an empty value appearing in NullFields will be sent to the server as
41135	// null. It is an error if a field in this list has a non-empty value.
41136	// This may be used to include null fields in Patch requests.
41137	NullFields []string `json:"-"`
41138}
41139
41140func (s *SslCertificate) MarshalJSON() ([]byte, error) {
41141	type NoMethod SslCertificate
41142	raw := NoMethod(*s)
41143	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41144}
41145
41146type SslCertificateAggregatedList struct {
41147	// Id: [Output Only] Unique identifier for the resource; defined by the
41148	// server.
41149	Id string `json:"id,omitempty"`
41150
41151	// Items: A list of SslCertificatesScopedList resources.
41152	Items map[string]SslCertificatesScopedList `json:"items,omitempty"`
41153
41154	// Kind: [Output Only] Type of resource. Always
41155	// compute#sslCertificateAggregatedList for lists of SSL Certificates.
41156	Kind string `json:"kind,omitempty"`
41157
41158	// NextPageToken: [Output Only] This token allows you to get the next
41159	// page of results for list requests. If the number of results is larger
41160	// than maxResults, use the nextPageToken as a value for the query
41161	// parameter pageToken in the next list request. Subsequent list
41162	// requests will have their own nextPageToken to continue paging through
41163	// the results.
41164	NextPageToken string `json:"nextPageToken,omitempty"`
41165
41166	// SelfLink: [Output Only] Server-defined URL for this resource.
41167	SelfLink string `json:"selfLink,omitempty"`
41168
41169	// Unreachables: [Output Only] Unreachable resources.
41170	Unreachables []string `json:"unreachables,omitempty"`
41171
41172	// Warning: [Output Only] Informational warning message.
41173	Warning *SslCertificateAggregatedListWarning `json:"warning,omitempty"`
41174
41175	// ServerResponse contains the HTTP response code and headers from the
41176	// server.
41177	googleapi.ServerResponse `json:"-"`
41178
41179	// ForceSendFields is a list of field names (e.g. "Id") to
41180	// unconditionally include in API requests. By default, fields with
41181	// empty or default values are omitted from API requests. However, any
41182	// non-pointer, non-interface field appearing in ForceSendFields will be
41183	// sent to the server regardless of whether the field is empty or not.
41184	// This may be used to include empty fields in Patch requests.
41185	ForceSendFields []string `json:"-"`
41186
41187	// NullFields is a list of field names (e.g. "Id") to include in API
41188	// requests with the JSON null value. By default, fields with empty
41189	// values are omitted from API requests. However, any field with an
41190	// empty value appearing in NullFields will be sent to the server as
41191	// null. It is an error if a field in this list has a non-empty value.
41192	// This may be used to include null fields in Patch requests.
41193	NullFields []string `json:"-"`
41194}
41195
41196func (s *SslCertificateAggregatedList) MarshalJSON() ([]byte, error) {
41197	type NoMethod SslCertificateAggregatedList
41198	raw := NoMethod(*s)
41199	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41200}
41201
41202// SslCertificateAggregatedListWarning: [Output Only] Informational
41203// warning message.
41204type SslCertificateAggregatedListWarning struct {
41205	// Code: [Output Only] A warning code, if applicable. For example,
41206	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41207	// the response.
41208	//
41209	// Possible values:
41210	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
41211	// changes made by a failed operation.
41212	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
41213	// created.
41214	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
41215	// resources has a type marked as deprecated
41216	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
41217	// that is larger than image size.
41218	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
41219	// resources has a type marked as experimental
41220	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
41221	// call
41222	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
41223	// overridden. Deprecated unused field.
41224	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
41225	// injected kernel, which is deprecated.
41226	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
41227	// exceedingly large number of resources
41228	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
41229	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
41230	// not assigned to an instance on the network.
41231	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
41232	// ip forward.
41233	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
41234	// refers to an instance that does not exist.
41235	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
41236	// URL refers to an instance that is not on the same network as the
41237	// route.
41238	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
41239	// have a status of RUNNING.
41240	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
41241	// continue the process despite the mentioned error.
41242	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
41243	// page.
41244	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
41245	// missing due to errors
41246	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
41247	// that requires a TOS they have not accepted.
41248	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
41249	// resource is in use.
41250	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
41251	// auto-delete could not be deleted because they were in use.
41252	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
41253	// ignored.
41254	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
41255	// instance group manager is valid as such, but its application does not
41256	// make a lot of sense, because it allows only single instance in
41257	// instance group.
41258	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
41259	// are present
41260	//   "UNREACHABLE" - A given scope cannot be reached.
41261	Code string `json:"code,omitempty"`
41262
41263	// Data: [Output Only] Metadata about this warning in key: value format.
41264	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
41265	// }
41266	Data []*SslCertificateAggregatedListWarningData `json:"data,omitempty"`
41267
41268	// Message: [Output Only] A human-readable description of the warning
41269	// code.
41270	Message string `json:"message,omitempty"`
41271
41272	// ForceSendFields is a list of field names (e.g. "Code") to
41273	// unconditionally include in API requests. By default, fields with
41274	// empty or default values are omitted from API requests. However, any
41275	// non-pointer, non-interface field appearing in ForceSendFields will be
41276	// sent to the server regardless of whether the field is empty or not.
41277	// This may be used to include empty fields in Patch requests.
41278	ForceSendFields []string `json:"-"`
41279
41280	// NullFields is a list of field names (e.g. "Code") to include in API
41281	// requests with the JSON null value. By default, fields with empty
41282	// values are omitted from API requests. However, any field with an
41283	// empty value appearing in NullFields will be sent to the server as
41284	// null. It is an error if a field in this list has a non-empty value.
41285	// This may be used to include null fields in Patch requests.
41286	NullFields []string `json:"-"`
41287}
41288
41289func (s *SslCertificateAggregatedListWarning) MarshalJSON() ([]byte, error) {
41290	type NoMethod SslCertificateAggregatedListWarning
41291	raw := NoMethod(*s)
41292	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41293}
41294
41295type SslCertificateAggregatedListWarningData struct {
41296	// Key: [Output Only] A key that provides more detail on the warning
41297	// being returned. For example, for warnings where there are no results
41298	// in a list request for a particular zone, this key might be scope and
41299	// the key value might be the zone name. Other examples might be a key
41300	// indicating a deprecated resource and a suggested replacement, or a
41301	// warning about invalid network settings (for example, if an instance
41302	// attempts to perform IP forwarding but is not enabled for IP
41303	// forwarding).
41304	Key string `json:"key,omitempty"`
41305
41306	// Value: [Output Only] A warning data value corresponding to the key.
41307	Value string `json:"value,omitempty"`
41308
41309	// ForceSendFields is a list of field names (e.g. "Key") to
41310	// unconditionally include in API requests. By default, fields with
41311	// empty or default values are omitted from API requests. However, any
41312	// non-pointer, non-interface field appearing in ForceSendFields will be
41313	// sent to the server regardless of whether the field is empty or not.
41314	// This may be used to include empty fields in Patch requests.
41315	ForceSendFields []string `json:"-"`
41316
41317	// NullFields is a list of field names (e.g. "Key") to include in API
41318	// requests with the JSON null value. By default, fields with empty
41319	// values are omitted from API requests. However, any field with an
41320	// empty value appearing in NullFields will be sent to the server as
41321	// null. It is an error if a field in this list has a non-empty value.
41322	// This may be used to include null fields in Patch requests.
41323	NullFields []string `json:"-"`
41324}
41325
41326func (s *SslCertificateAggregatedListWarningData) MarshalJSON() ([]byte, error) {
41327	type NoMethod SslCertificateAggregatedListWarningData
41328	raw := NoMethod(*s)
41329	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41330}
41331
41332// SslCertificateList: Contains a list of SslCertificate resources.
41333type SslCertificateList struct {
41334	// Id: [Output Only] Unique identifier for the resource; defined by the
41335	// server.
41336	Id string `json:"id,omitempty"`
41337
41338	// Items: A list of SslCertificate resources.
41339	Items []*SslCertificate `json:"items,omitempty"`
41340
41341	// Kind: Type of resource.
41342	Kind string `json:"kind,omitempty"`
41343
41344	// NextPageToken: [Output Only] This token allows you to get the next
41345	// page of results for list requests. If the number of results is larger
41346	// than maxResults, use the nextPageToken as a value for the query
41347	// parameter pageToken in the next list request. Subsequent list
41348	// requests will have their own nextPageToken to continue paging through
41349	// the results.
41350	NextPageToken string `json:"nextPageToken,omitempty"`
41351
41352	// SelfLink: [Output Only] Server-defined URL for this resource.
41353	SelfLink string `json:"selfLink,omitempty"`
41354
41355	// Warning: [Output Only] Informational warning message.
41356	Warning *SslCertificateListWarning `json:"warning,omitempty"`
41357
41358	// ServerResponse contains the HTTP response code and headers from the
41359	// server.
41360	googleapi.ServerResponse `json:"-"`
41361
41362	// ForceSendFields is a list of field names (e.g. "Id") to
41363	// unconditionally include in API requests. By default, fields with
41364	// empty or default values are omitted from API requests. However, any
41365	// non-pointer, non-interface field appearing in ForceSendFields will be
41366	// sent to the server regardless of whether the field is empty or not.
41367	// This may be used to include empty fields in Patch requests.
41368	ForceSendFields []string `json:"-"`
41369
41370	// NullFields is a list of field names (e.g. "Id") to include in API
41371	// requests with the JSON null value. By default, fields with empty
41372	// values are omitted from API requests. However, any field with an
41373	// empty value appearing in NullFields will be sent to the server as
41374	// null. It is an error if a field in this list has a non-empty value.
41375	// This may be used to include null fields in Patch requests.
41376	NullFields []string `json:"-"`
41377}
41378
41379func (s *SslCertificateList) MarshalJSON() ([]byte, error) {
41380	type NoMethod SslCertificateList
41381	raw := NoMethod(*s)
41382	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41383}
41384
41385// SslCertificateListWarning: [Output Only] Informational warning
41386// message.
41387type SslCertificateListWarning struct {
41388	// Code: [Output Only] A warning code, if applicable. For example,
41389	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41390	// the response.
41391	//
41392	// Possible values:
41393	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
41394	// changes made by a failed operation.
41395	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
41396	// created.
41397	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
41398	// resources has a type marked as deprecated
41399	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
41400	// that is larger than image size.
41401	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
41402	// resources has a type marked as experimental
41403	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
41404	// call
41405	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
41406	// overridden. Deprecated unused field.
41407	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
41408	// injected kernel, which is deprecated.
41409	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
41410	// exceedingly large number of resources
41411	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
41412	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
41413	// not assigned to an instance on the network.
41414	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
41415	// ip forward.
41416	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
41417	// refers to an instance that does not exist.
41418	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
41419	// URL refers to an instance that is not on the same network as the
41420	// route.
41421	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
41422	// have a status of RUNNING.
41423	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
41424	// continue the process despite the mentioned error.
41425	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
41426	// page.
41427	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
41428	// missing due to errors
41429	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
41430	// that requires a TOS they have not accepted.
41431	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
41432	// resource is in use.
41433	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
41434	// auto-delete could not be deleted because they were in use.
41435	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
41436	// ignored.
41437	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
41438	// instance group manager is valid as such, but its application does not
41439	// make a lot of sense, because it allows only single instance in
41440	// instance group.
41441	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
41442	// are present
41443	//   "UNREACHABLE" - A given scope cannot be reached.
41444	Code string `json:"code,omitempty"`
41445
41446	// Data: [Output Only] Metadata about this warning in key: value format.
41447	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
41448	// }
41449	Data []*SslCertificateListWarningData `json:"data,omitempty"`
41450
41451	// Message: [Output Only] A human-readable description of the warning
41452	// code.
41453	Message string `json:"message,omitempty"`
41454
41455	// ForceSendFields is a list of field names (e.g. "Code") to
41456	// unconditionally include in API requests. By default, fields with
41457	// empty or default values are omitted from API requests. However, any
41458	// non-pointer, non-interface field appearing in ForceSendFields will be
41459	// sent to the server regardless of whether the field is empty or not.
41460	// This may be used to include empty fields in Patch requests.
41461	ForceSendFields []string `json:"-"`
41462
41463	// NullFields is a list of field names (e.g. "Code") to include in API
41464	// requests with the JSON null value. By default, fields with empty
41465	// values are omitted from API requests. However, any field with an
41466	// empty value appearing in NullFields will be sent to the server as
41467	// null. It is an error if a field in this list has a non-empty value.
41468	// This may be used to include null fields in Patch requests.
41469	NullFields []string `json:"-"`
41470}
41471
41472func (s *SslCertificateListWarning) MarshalJSON() ([]byte, error) {
41473	type NoMethod SslCertificateListWarning
41474	raw := NoMethod(*s)
41475	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41476}
41477
41478type SslCertificateListWarningData struct {
41479	// Key: [Output Only] A key that provides more detail on the warning
41480	// being returned. For example, for warnings where there are no results
41481	// in a list request for a particular zone, this key might be scope and
41482	// the key value might be the zone name. Other examples might be a key
41483	// indicating a deprecated resource and a suggested replacement, or a
41484	// warning about invalid network settings (for example, if an instance
41485	// attempts to perform IP forwarding but is not enabled for IP
41486	// forwarding).
41487	Key string `json:"key,omitempty"`
41488
41489	// Value: [Output Only] A warning data value corresponding to the key.
41490	Value string `json:"value,omitempty"`
41491
41492	// ForceSendFields is a list of field names (e.g. "Key") to
41493	// unconditionally include in API requests. By default, fields with
41494	// empty or default values are omitted from API requests. However, any
41495	// non-pointer, non-interface field appearing in ForceSendFields will be
41496	// sent to the server regardless of whether the field is empty or not.
41497	// This may be used to include empty fields in Patch requests.
41498	ForceSendFields []string `json:"-"`
41499
41500	// NullFields is a list of field names (e.g. "Key") to include in API
41501	// requests with the JSON null value. By default, fields with empty
41502	// values are omitted from API requests. However, any field with an
41503	// empty value appearing in NullFields will be sent to the server as
41504	// null. It is an error if a field in this list has a non-empty value.
41505	// This may be used to include null fields in Patch requests.
41506	NullFields []string `json:"-"`
41507}
41508
41509func (s *SslCertificateListWarningData) MarshalJSON() ([]byte, error) {
41510	type NoMethod SslCertificateListWarningData
41511	raw := NoMethod(*s)
41512	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41513}
41514
41515// SslCertificateManagedSslCertificate: Configuration and status of a
41516// managed SSL certificate.
41517type SslCertificateManagedSslCertificate struct {
41518	// DomainStatus: [Output only] Detailed statuses of the domains
41519	// specified for managed certificate resource.
41520	DomainStatus map[string]string `json:"domainStatus,omitempty"`
41521
41522	// Domains: The domains for which a managed SSL certificate will be
41523	// generated. Each Google-managed SSL certificate supports up to the
41524	// maximum number of domains per Google-managed SSL certificate
41525	// (/load-balancing/docs/quotas#ssl_certificates).
41526	Domains []string `json:"domains,omitempty"`
41527
41528	// Status: [Output only] Status of the managed certificate resource.
41529	//
41530	// Possible values:
41531	//   "ACTIVE" - The certificate management is working, and a certificate
41532	// has been provisioned.
41533	//   "MANAGED_CERTIFICATE_STATUS_UNSPECIFIED"
41534	//   "PROVISIONING" - The certificate management is working. GCP will
41535	// attempt to provision the first certificate.
41536	//   "PROVISIONING_FAILED" - Certificate provisioning failed due to an
41537	// issue with the DNS or load balancing configuration. For details of
41538	// which domain failed, consult domain_status field.
41539	//   "PROVISIONING_FAILED_PERMANENTLY" - Certificate provisioning failed
41540	// due to an issue with the DNS or load balancing configuration. It
41541	// won't be retried. To try again delete and create a new managed
41542	// SslCertificate resource. For details of which domain failed, consult
41543	// domain_status field.
41544	//   "RENEWAL_FAILED" - Renewal of the certificate has failed due to an
41545	// issue with the DNS or load balancing configuration. The existing cert
41546	// is still serving; however, it will expire shortly. To provision a
41547	// renewed certificate, delete and create a new managed SslCertificate
41548	// resource. For details on which domain failed, consult domain_status
41549	// field.
41550	Status string `json:"status,omitempty"`
41551
41552	// ForceSendFields is a list of field names (e.g. "DomainStatus") to
41553	// unconditionally include in API requests. By default, fields with
41554	// empty or default values are omitted from API requests. However, any
41555	// non-pointer, non-interface field appearing in ForceSendFields will be
41556	// sent to the server regardless of whether the field is empty or not.
41557	// This may be used to include empty fields in Patch requests.
41558	ForceSendFields []string `json:"-"`
41559
41560	// NullFields is a list of field names (e.g. "DomainStatus") to include
41561	// in API requests with the JSON null value. By default, fields with
41562	// empty values are omitted from API requests. However, any field with
41563	// an empty value appearing in NullFields will be sent to the server as
41564	// null. It is an error if a field in this list has a non-empty value.
41565	// This may be used to include null fields in Patch requests.
41566	NullFields []string `json:"-"`
41567}
41568
41569func (s *SslCertificateManagedSslCertificate) MarshalJSON() ([]byte, error) {
41570	type NoMethod SslCertificateManagedSslCertificate
41571	raw := NoMethod(*s)
41572	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41573}
41574
41575// SslCertificateSelfManagedSslCertificate: Configuration and status of
41576// a self-managed SSL certificate.
41577type SslCertificateSelfManagedSslCertificate struct {
41578	// Certificate: A local certificate file. The certificate must be in PEM
41579	// format. The certificate chain must be no greater than 5 certs long.
41580	// The chain must include at least one intermediate cert.
41581	Certificate string `json:"certificate,omitempty"`
41582
41583	// PrivateKey: A write-only private key in PEM format. Only insert
41584	// requests will include this field.
41585	PrivateKey string `json:"privateKey,omitempty"`
41586
41587	// ForceSendFields is a list of field names (e.g. "Certificate") to
41588	// unconditionally include in API requests. By default, fields with
41589	// empty or default values are omitted from API requests. However, any
41590	// non-pointer, non-interface field appearing in ForceSendFields will be
41591	// sent to the server regardless of whether the field is empty or not.
41592	// This may be used to include empty fields in Patch requests.
41593	ForceSendFields []string `json:"-"`
41594
41595	// NullFields is a list of field names (e.g. "Certificate") to include
41596	// in API requests with the JSON null value. By default, fields with
41597	// empty values are omitted from API requests. However, any field with
41598	// an empty value appearing in NullFields will be sent to the server as
41599	// null. It is an error if a field in this list has a non-empty value.
41600	// This may be used to include null fields in Patch requests.
41601	NullFields []string `json:"-"`
41602}
41603
41604func (s *SslCertificateSelfManagedSslCertificate) MarshalJSON() ([]byte, error) {
41605	type NoMethod SslCertificateSelfManagedSslCertificate
41606	raw := NoMethod(*s)
41607	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41608}
41609
41610type SslCertificatesScopedList struct {
41611	// SslCertificates: List of SslCertificates contained in this scope.
41612	SslCertificates []*SslCertificate `json:"sslCertificates,omitempty"`
41613
41614	// Warning: Informational warning which replaces the list of backend
41615	// services when the list is empty.
41616	Warning *SslCertificatesScopedListWarning `json:"warning,omitempty"`
41617
41618	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
41619	// unconditionally include in API requests. By default, fields with
41620	// empty or default values are omitted from API requests. However, any
41621	// non-pointer, non-interface field appearing in ForceSendFields will be
41622	// sent to the server regardless of whether the field is empty or not.
41623	// This may be used to include empty fields in Patch requests.
41624	ForceSendFields []string `json:"-"`
41625
41626	// NullFields is a list of field names (e.g. "SslCertificates") to
41627	// include in API requests with the JSON null value. By default, fields
41628	// with empty values are omitted from API requests. However, any field
41629	// with an empty value appearing in NullFields will be sent to the
41630	// server as null. It is an error if a field in this list has a
41631	// non-empty value. This may be used to include null fields in Patch
41632	// requests.
41633	NullFields []string `json:"-"`
41634}
41635
41636func (s *SslCertificatesScopedList) MarshalJSON() ([]byte, error) {
41637	type NoMethod SslCertificatesScopedList
41638	raw := NoMethod(*s)
41639	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41640}
41641
41642// SslCertificatesScopedListWarning: Informational warning which
41643// replaces the list of backend services when the list is empty.
41644type SslCertificatesScopedListWarning struct {
41645	// Code: [Output Only] A warning code, if applicable. For example,
41646	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41647	// the response.
41648	//
41649	// Possible values:
41650	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
41651	// changes made by a failed operation.
41652	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
41653	// created.
41654	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
41655	// resources has a type marked as deprecated
41656	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
41657	// that is larger than image size.
41658	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
41659	// resources has a type marked as experimental
41660	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
41661	// call
41662	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
41663	// overridden. Deprecated unused field.
41664	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
41665	// injected kernel, which is deprecated.
41666	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
41667	// exceedingly large number of resources
41668	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
41669	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
41670	// not assigned to an instance on the network.
41671	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
41672	// ip forward.
41673	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
41674	// refers to an instance that does not exist.
41675	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
41676	// URL refers to an instance that is not on the same network as the
41677	// route.
41678	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
41679	// have a status of RUNNING.
41680	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
41681	// continue the process despite the mentioned error.
41682	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
41683	// page.
41684	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
41685	// missing due to errors
41686	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
41687	// that requires a TOS they have not accepted.
41688	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
41689	// resource is in use.
41690	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
41691	// auto-delete could not be deleted because they were in use.
41692	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
41693	// ignored.
41694	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
41695	// instance group manager is valid as such, but its application does not
41696	// make a lot of sense, because it allows only single instance in
41697	// instance group.
41698	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
41699	// are present
41700	//   "UNREACHABLE" - A given scope cannot be reached.
41701	Code string `json:"code,omitempty"`
41702
41703	// Data: [Output Only] Metadata about this warning in key: value format.
41704	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
41705	// }
41706	Data []*SslCertificatesScopedListWarningData `json:"data,omitempty"`
41707
41708	// Message: [Output Only] A human-readable description of the warning
41709	// code.
41710	Message string `json:"message,omitempty"`
41711
41712	// ForceSendFields is a list of field names (e.g. "Code") to
41713	// unconditionally include in API requests. By default, fields with
41714	// empty or default values are omitted from API requests. However, any
41715	// non-pointer, non-interface field appearing in ForceSendFields will be
41716	// sent to the server regardless of whether the field is empty or not.
41717	// This may be used to include empty fields in Patch requests.
41718	ForceSendFields []string `json:"-"`
41719
41720	// NullFields is a list of field names (e.g. "Code") to include in API
41721	// requests with the JSON null value. By default, fields with empty
41722	// values are omitted from API requests. However, any field with an
41723	// empty value appearing in NullFields will be sent to the server as
41724	// null. It is an error if a field in this list has a non-empty value.
41725	// This may be used to include null fields in Patch requests.
41726	NullFields []string `json:"-"`
41727}
41728
41729func (s *SslCertificatesScopedListWarning) MarshalJSON() ([]byte, error) {
41730	type NoMethod SslCertificatesScopedListWarning
41731	raw := NoMethod(*s)
41732	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41733}
41734
41735type SslCertificatesScopedListWarningData struct {
41736	// Key: [Output Only] A key that provides more detail on the warning
41737	// being returned. For example, for warnings where there are no results
41738	// in a list request for a particular zone, this key might be scope and
41739	// the key value might be the zone name. Other examples might be a key
41740	// indicating a deprecated resource and a suggested replacement, or a
41741	// warning about invalid network settings (for example, if an instance
41742	// attempts to perform IP forwarding but is not enabled for IP
41743	// forwarding).
41744	Key string `json:"key,omitempty"`
41745
41746	// Value: [Output Only] A warning data value corresponding to the key.
41747	Value string `json:"value,omitempty"`
41748
41749	// ForceSendFields is a list of field names (e.g. "Key") to
41750	// unconditionally include in API requests. By default, fields with
41751	// empty or default values are omitted from API requests. However, any
41752	// non-pointer, non-interface field appearing in ForceSendFields will be
41753	// sent to the server regardless of whether the field is empty or not.
41754	// This may be used to include empty fields in Patch requests.
41755	ForceSendFields []string `json:"-"`
41756
41757	// NullFields is a list of field names (e.g. "Key") to include in API
41758	// requests with the JSON null value. By default, fields with empty
41759	// values are omitted from API requests. However, any field with an
41760	// empty value appearing in NullFields will be sent to the server as
41761	// null. It is an error if a field in this list has a non-empty value.
41762	// This may be used to include null fields in Patch requests.
41763	NullFields []string `json:"-"`
41764}
41765
41766func (s *SslCertificatesScopedListWarningData) MarshalJSON() ([]byte, error) {
41767	type NoMethod SslCertificatesScopedListWarningData
41768	raw := NoMethod(*s)
41769	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41770}
41771
41772type SslPoliciesList struct {
41773	// Id: [Output Only] Unique identifier for the resource; defined by the
41774	// server.
41775	Id string `json:"id,omitempty"`
41776
41777	// Items: A list of SslPolicy resources.
41778	Items []*SslPolicy `json:"items,omitempty"`
41779
41780	// Kind: [Output Only] Type of the resource. Always
41781	// compute#sslPoliciesList for lists of sslPolicies.
41782	Kind string `json:"kind,omitempty"`
41783
41784	// NextPageToken: [Output Only] This token allows you to get the next
41785	// page of results for list requests. If the number of results is larger
41786	// than maxResults, use the nextPageToken as a value for the query
41787	// parameter pageToken in the next list request. Subsequent list
41788	// requests will have their own nextPageToken to continue paging through
41789	// the results.
41790	NextPageToken string `json:"nextPageToken,omitempty"`
41791
41792	// SelfLink: [Output Only] Server-defined URL for this resource.
41793	SelfLink string `json:"selfLink,omitempty"`
41794
41795	// Warning: [Output Only] Informational warning message.
41796	Warning *SslPoliciesListWarning `json:"warning,omitempty"`
41797
41798	// ServerResponse contains the HTTP response code and headers from the
41799	// server.
41800	googleapi.ServerResponse `json:"-"`
41801
41802	// ForceSendFields is a list of field names (e.g. "Id") to
41803	// unconditionally include in API requests. By default, fields with
41804	// empty or default values are omitted from API requests. However, any
41805	// non-pointer, non-interface field appearing in ForceSendFields will be
41806	// sent to the server regardless of whether the field is empty or not.
41807	// This may be used to include empty fields in Patch requests.
41808	ForceSendFields []string `json:"-"`
41809
41810	// NullFields is a list of field names (e.g. "Id") to include in API
41811	// requests with the JSON null value. By default, fields with empty
41812	// values are omitted from API requests. However, any field with an
41813	// empty value appearing in NullFields will be sent to the server as
41814	// null. It is an error if a field in this list has a non-empty value.
41815	// This may be used to include null fields in Patch requests.
41816	NullFields []string `json:"-"`
41817}
41818
41819func (s *SslPoliciesList) MarshalJSON() ([]byte, error) {
41820	type NoMethod SslPoliciesList
41821	raw := NoMethod(*s)
41822	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41823}
41824
41825// SslPoliciesListWarning: [Output Only] Informational warning message.
41826type SslPoliciesListWarning struct {
41827	// Code: [Output Only] A warning code, if applicable. For example,
41828	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41829	// the response.
41830	//
41831	// Possible values:
41832	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
41833	// changes made by a failed operation.
41834	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
41835	// created.
41836	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
41837	// resources has a type marked as deprecated
41838	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
41839	// that is larger than image size.
41840	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
41841	// resources has a type marked as experimental
41842	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
41843	// call
41844	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
41845	// overridden. Deprecated unused field.
41846	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
41847	// injected kernel, which is deprecated.
41848	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
41849	// exceedingly large number of resources
41850	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
41851	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
41852	// not assigned to an instance on the network.
41853	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
41854	// ip forward.
41855	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
41856	// refers to an instance that does not exist.
41857	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
41858	// URL refers to an instance that is not on the same network as the
41859	// route.
41860	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
41861	// have a status of RUNNING.
41862	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
41863	// continue the process despite the mentioned error.
41864	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
41865	// page.
41866	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
41867	// missing due to errors
41868	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
41869	// that requires a TOS they have not accepted.
41870	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
41871	// resource is in use.
41872	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
41873	// auto-delete could not be deleted because they were in use.
41874	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
41875	// ignored.
41876	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
41877	// instance group manager is valid as such, but its application does not
41878	// make a lot of sense, because it allows only single instance in
41879	// instance group.
41880	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
41881	// are present
41882	//   "UNREACHABLE" - A given scope cannot be reached.
41883	Code string `json:"code,omitempty"`
41884
41885	// Data: [Output Only] Metadata about this warning in key: value format.
41886	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
41887	// }
41888	Data []*SslPoliciesListWarningData `json:"data,omitempty"`
41889
41890	// Message: [Output Only] A human-readable description of the warning
41891	// code.
41892	Message string `json:"message,omitempty"`
41893
41894	// ForceSendFields is a list of field names (e.g. "Code") to
41895	// unconditionally include in API requests. By default, fields with
41896	// empty or default values are omitted from API requests. However, any
41897	// non-pointer, non-interface field appearing in ForceSendFields will be
41898	// sent to the server regardless of whether the field is empty or not.
41899	// This may be used to include empty fields in Patch requests.
41900	ForceSendFields []string `json:"-"`
41901
41902	// NullFields is a list of field names (e.g. "Code") to include in API
41903	// requests with the JSON null value. By default, fields with empty
41904	// values are omitted from API requests. However, any field with an
41905	// empty value appearing in NullFields will be sent to the server as
41906	// null. It is an error if a field in this list has a non-empty value.
41907	// This may be used to include null fields in Patch requests.
41908	NullFields []string `json:"-"`
41909}
41910
41911func (s *SslPoliciesListWarning) MarshalJSON() ([]byte, error) {
41912	type NoMethod SslPoliciesListWarning
41913	raw := NoMethod(*s)
41914	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41915}
41916
41917type SslPoliciesListWarningData struct {
41918	// Key: [Output Only] A key that provides more detail on the warning
41919	// being returned. For example, for warnings where there are no results
41920	// in a list request for a particular zone, this key might be scope and
41921	// the key value might be the zone name. Other examples might be a key
41922	// indicating a deprecated resource and a suggested replacement, or a
41923	// warning about invalid network settings (for example, if an instance
41924	// attempts to perform IP forwarding but is not enabled for IP
41925	// forwarding).
41926	Key string `json:"key,omitempty"`
41927
41928	// Value: [Output Only] A warning data value corresponding to the key.
41929	Value string `json:"value,omitempty"`
41930
41931	// ForceSendFields is a list of field names (e.g. "Key") to
41932	// unconditionally include in API requests. By default, fields with
41933	// empty or default values are omitted from API requests. However, any
41934	// non-pointer, non-interface field appearing in ForceSendFields will be
41935	// sent to the server regardless of whether the field is empty or not.
41936	// This may be used to include empty fields in Patch requests.
41937	ForceSendFields []string `json:"-"`
41938
41939	// NullFields is a list of field names (e.g. "Key") to include in API
41940	// requests with the JSON null value. By default, fields with empty
41941	// values are omitted from API requests. However, any field with an
41942	// empty value appearing in NullFields will be sent to the server as
41943	// null. It is an error if a field in this list has a non-empty value.
41944	// This may be used to include null fields in Patch requests.
41945	NullFields []string `json:"-"`
41946}
41947
41948func (s *SslPoliciesListWarningData) MarshalJSON() ([]byte, error) {
41949	type NoMethod SslPoliciesListWarningData
41950	raw := NoMethod(*s)
41951	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41952}
41953
41954type SslPoliciesListAvailableFeaturesResponse struct {
41955	Features []string `json:"features,omitempty"`
41956
41957	// ServerResponse contains the HTTP response code and headers from the
41958	// server.
41959	googleapi.ServerResponse `json:"-"`
41960
41961	// ForceSendFields is a list of field names (e.g. "Features") to
41962	// unconditionally include in API requests. By default, fields with
41963	// empty or default values are omitted from API requests. However, any
41964	// non-pointer, non-interface field appearing in ForceSendFields will be
41965	// sent to the server regardless of whether the field is empty or not.
41966	// This may be used to include empty fields in Patch requests.
41967	ForceSendFields []string `json:"-"`
41968
41969	// NullFields is a list of field names (e.g. "Features") to include in
41970	// API requests with the JSON null value. By default, fields with empty
41971	// values are omitted from API requests. However, any field with an
41972	// empty value appearing in NullFields will be sent to the server as
41973	// null. It is an error if a field in this list has a non-empty value.
41974	// This may be used to include null fields in Patch requests.
41975	NullFields []string `json:"-"`
41976}
41977
41978func (s *SslPoliciesListAvailableFeaturesResponse) MarshalJSON() ([]byte, error) {
41979	type NoMethod SslPoliciesListAvailableFeaturesResponse
41980	raw := NoMethod(*s)
41981	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41982}
41983
41984// SslPolicy: Represents an SSL Policy resource. Use SSL policies to
41985// control the SSL features, such as versions and cipher suites, offered
41986// by an HTTPS or SSL Proxy load balancer. For more information, read
41987// SSL Policy Concepts.
41988type SslPolicy struct {
41989	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
41990	// format.
41991	CreationTimestamp string `json:"creationTimestamp,omitempty"`
41992
41993	// CustomFeatures: A list of features enabled when the selected profile
41994	// is CUSTOM. The method returns the set of features that can be
41995	// specified in this list. This field must be empty if the profile is
41996	// not CUSTOM.
41997	CustomFeatures []string `json:"customFeatures,omitempty"`
41998
41999	// Description: An optional description of this resource. Provide this
42000	// property when you create the resource.
42001	Description string `json:"description,omitempty"`
42002
42003	// EnabledFeatures: [Output Only] The list of features enabled in the
42004	// SSL policy.
42005	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
42006
42007	// Fingerprint: Fingerprint of this resource. A hash of the contents
42008	// stored in this object. This field is used in optimistic locking. This
42009	// field will be ignored when inserting a SslPolicy. An up-to-date
42010	// fingerprint must be provided in order to update the SslPolicy,
42011	// otherwise the request will fail with error 412 conditionNotMet. To
42012	// see the latest fingerprint, make a get() request to retrieve an
42013	// SslPolicy.
42014	Fingerprint string `json:"fingerprint,omitempty"`
42015
42016	// Id: [Output Only] The unique identifier for the resource. This
42017	// identifier is defined by the server.
42018	Id uint64 `json:"id,omitempty,string"`
42019
42020	// Kind: [Output only] Type of the resource. Always compute#sslPolicyfor
42021	// SSL policies.
42022	Kind string `json:"kind,omitempty"`
42023
42024	// MinTlsVersion: The minimum version of SSL protocol that can be used
42025	// by the clients to establish a connection with the load balancer. This
42026	// can be one of TLS_1_0, TLS_1_1, TLS_1_2.
42027	//
42028	// Possible values:
42029	//   "TLS_1_0" - TLS 1.0
42030	//   "TLS_1_1" - TLS 1.1
42031	//   "TLS_1_2" - TLS 1.2
42032	MinTlsVersion string `json:"minTlsVersion,omitempty"`
42033
42034	// Name: Name of the resource. The name must be 1-63 characters long,
42035	// and comply with RFC1035. Specifically, the name must be 1-63
42036	// characters long and match the regular expression
42037	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
42038	// a lowercase letter, and all following characters must be a dash,
42039	// lowercase letter, or digit, except the last character, which cannot
42040	// be a dash.
42041	Name string `json:"name,omitempty"`
42042
42043	// Profile: Profile specifies the set of SSL features that can be used
42044	// by the load balancer when negotiating SSL with clients. This can be
42045	// one of COMPATIBLE, MODERN, RESTRICTED, or CUSTOM. If using CUSTOM,
42046	// the set of SSL features to enable must be specified in the
42047	// customFeatures field.
42048	//
42049	// Possible values:
42050	//   "COMPATIBLE" - Compatible profile. Allows the broadset set of
42051	// clients, even those which support only out-of-date SSL features to
42052	// negotiate with the load balancer.
42053	//   "CUSTOM" - Custom profile. Allow only the set of allowed SSL
42054	// features specified in the customFeatures field.
42055	//   "MODERN" - Modern profile. Supports a wide set of SSL features,
42056	// allowing modern clients to negotiate SSL with the load balancer.
42057	//   "RESTRICTED" - Restricted profile. Supports a reduced set of SSL
42058	// features, intended to meet stricter compliance requirements.
42059	Profile string `json:"profile,omitempty"`
42060
42061	// SelfLink: [Output Only] Server-defined URL for the resource.
42062	SelfLink string `json:"selfLink,omitempty"`
42063
42064	// Warnings: [Output Only] If potential misconfigurations are detected
42065	// for this SSL policy, this field will be populated with warning
42066	// messages.
42067	Warnings []*SslPolicyWarnings `json:"warnings,omitempty"`
42068
42069	// ServerResponse contains the HTTP response code and headers from the
42070	// server.
42071	googleapi.ServerResponse `json:"-"`
42072
42073	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
42074	// to unconditionally include in API requests. By default, fields with
42075	// empty or default values are omitted from API requests. However, any
42076	// non-pointer, non-interface field appearing in ForceSendFields will be
42077	// sent to the server regardless of whether the field is empty or not.
42078	// This may be used to include empty fields in Patch requests.
42079	ForceSendFields []string `json:"-"`
42080
42081	// NullFields is a list of field names (e.g. "CreationTimestamp") to
42082	// include in API requests with the JSON null value. By default, fields
42083	// with empty values are omitted from API requests. However, any field
42084	// with an empty value appearing in NullFields will be sent to the
42085	// server as null. It is an error if a field in this list has a
42086	// non-empty value. This may be used to include null fields in Patch
42087	// requests.
42088	NullFields []string `json:"-"`
42089}
42090
42091func (s *SslPolicy) MarshalJSON() ([]byte, error) {
42092	type NoMethod SslPolicy
42093	raw := NoMethod(*s)
42094	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42095}
42096
42097type SslPolicyWarnings struct {
42098	// Code: [Output Only] A warning code, if applicable. For example,
42099	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42100	// the response.
42101	//
42102	// Possible values:
42103	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
42104	// changes made by a failed operation.
42105	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
42106	// created.
42107	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
42108	// resources has a type marked as deprecated
42109	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
42110	// that is larger than image size.
42111	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
42112	// resources has a type marked as experimental
42113	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
42114	// call
42115	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
42116	// overridden. Deprecated unused field.
42117	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
42118	// injected kernel, which is deprecated.
42119	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
42120	// exceedingly large number of resources
42121	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
42122	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
42123	// not assigned to an instance on the network.
42124	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
42125	// ip forward.
42126	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
42127	// refers to an instance that does not exist.
42128	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
42129	// URL refers to an instance that is not on the same network as the
42130	// route.
42131	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
42132	// have a status of RUNNING.
42133	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
42134	// continue the process despite the mentioned error.
42135	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
42136	// page.
42137	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
42138	// missing due to errors
42139	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
42140	// that requires a TOS they have not accepted.
42141	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
42142	// resource is in use.
42143	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
42144	// auto-delete could not be deleted because they were in use.
42145	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
42146	// ignored.
42147	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
42148	// instance group manager is valid as such, but its application does not
42149	// make a lot of sense, because it allows only single instance in
42150	// instance group.
42151	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
42152	// are present
42153	//   "UNREACHABLE" - A given scope cannot be reached.
42154	Code string `json:"code,omitempty"`
42155
42156	// Data: [Output Only] Metadata about this warning in key: value format.
42157	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
42158	// }
42159	Data []*SslPolicyWarningsData `json:"data,omitempty"`
42160
42161	// Message: [Output Only] A human-readable description of the warning
42162	// code.
42163	Message string `json:"message,omitempty"`
42164
42165	// ForceSendFields is a list of field names (e.g. "Code") to
42166	// unconditionally include in API requests. By default, fields with
42167	// empty or default values are omitted from API requests. However, any
42168	// non-pointer, non-interface field appearing in ForceSendFields will be
42169	// sent to the server regardless of whether the field is empty or not.
42170	// This may be used to include empty fields in Patch requests.
42171	ForceSendFields []string `json:"-"`
42172
42173	// NullFields is a list of field names (e.g. "Code") to include in API
42174	// requests with the JSON null value. By default, fields with empty
42175	// values are omitted from API requests. However, any field with an
42176	// empty value appearing in NullFields will be sent to the server as
42177	// null. It is an error if a field in this list has a non-empty value.
42178	// This may be used to include null fields in Patch requests.
42179	NullFields []string `json:"-"`
42180}
42181
42182func (s *SslPolicyWarnings) MarshalJSON() ([]byte, error) {
42183	type NoMethod SslPolicyWarnings
42184	raw := NoMethod(*s)
42185	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42186}
42187
42188type SslPolicyWarningsData struct {
42189	// Key: [Output Only] A key that provides more detail on the warning
42190	// being returned. For example, for warnings where there are no results
42191	// in a list request for a particular zone, this key might be scope and
42192	// the key value might be the zone name. Other examples might be a key
42193	// indicating a deprecated resource and a suggested replacement, or a
42194	// warning about invalid network settings (for example, if an instance
42195	// attempts to perform IP forwarding but is not enabled for IP
42196	// forwarding).
42197	Key string `json:"key,omitempty"`
42198
42199	// Value: [Output Only] A warning data value corresponding to the key.
42200	Value string `json:"value,omitempty"`
42201
42202	// ForceSendFields is a list of field names (e.g. "Key") to
42203	// unconditionally include in API requests. By default, fields with
42204	// empty or default values are omitted from API requests. However, any
42205	// non-pointer, non-interface field appearing in ForceSendFields will be
42206	// sent to the server regardless of whether the field is empty or not.
42207	// This may be used to include empty fields in Patch requests.
42208	ForceSendFields []string `json:"-"`
42209
42210	// NullFields is a list of field names (e.g. "Key") to include in API
42211	// requests with the JSON null value. By default, fields with empty
42212	// values are omitted from API requests. However, any field with an
42213	// empty value appearing in NullFields will be sent to the server as
42214	// null. It is an error if a field in this list has a non-empty value.
42215	// This may be used to include null fields in Patch requests.
42216	NullFields []string `json:"-"`
42217}
42218
42219func (s *SslPolicyWarningsData) MarshalJSON() ([]byte, error) {
42220	type NoMethod SslPolicyWarningsData
42221	raw := NoMethod(*s)
42222	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42223}
42224
42225type SslPolicyReference struct {
42226	// SslPolicy: URL of the SSL policy resource. Set this to empty string
42227	// to clear any existing SSL policy associated with the target proxy
42228	// resource.
42229	SslPolicy string `json:"sslPolicy,omitempty"`
42230
42231	// ForceSendFields is a list of field names (e.g. "SslPolicy") to
42232	// unconditionally include in API requests. By default, fields with
42233	// empty or default values are omitted from API requests. However, any
42234	// non-pointer, non-interface field appearing in ForceSendFields will be
42235	// sent to the server regardless of whether the field is empty or not.
42236	// This may be used to include empty fields in Patch requests.
42237	ForceSendFields []string `json:"-"`
42238
42239	// NullFields is a list of field names (e.g. "SslPolicy") to include in
42240	// API requests with the JSON null value. By default, fields with empty
42241	// values are omitted from API requests. However, any field with an
42242	// empty value appearing in NullFields will be sent to the server as
42243	// null. It is an error if a field in this list has a non-empty value.
42244	// This may be used to include null fields in Patch requests.
42245	NullFields []string `json:"-"`
42246}
42247
42248func (s *SslPolicyReference) MarshalJSON() ([]byte, error) {
42249	type NoMethod SslPolicyReference
42250	raw := NoMethod(*s)
42251	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42252}
42253
42254type StatefulPolicy struct {
42255	PreservedState *StatefulPolicyPreservedState `json:"preservedState,omitempty"`
42256
42257	// ForceSendFields is a list of field names (e.g. "PreservedState") to
42258	// unconditionally include in API requests. By default, fields with
42259	// empty or default values are omitted from API requests. However, any
42260	// non-pointer, non-interface field appearing in ForceSendFields will be
42261	// sent to the server regardless of whether the field is empty or not.
42262	// This may be used to include empty fields in Patch requests.
42263	ForceSendFields []string `json:"-"`
42264
42265	// NullFields is a list of field names (e.g. "PreservedState") to
42266	// include in API requests with the JSON null value. By default, fields
42267	// with empty values are omitted from API requests. However, any field
42268	// with an empty value appearing in NullFields will be sent to the
42269	// server as null. It is an error if a field in this list has a
42270	// non-empty value. This may be used to include null fields in Patch
42271	// requests.
42272	NullFields []string `json:"-"`
42273}
42274
42275func (s *StatefulPolicy) MarshalJSON() ([]byte, error) {
42276	type NoMethod StatefulPolicy
42277	raw := NoMethod(*s)
42278	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42279}
42280
42281// StatefulPolicyPreservedState: Configuration of preserved resources.
42282type StatefulPolicyPreservedState struct {
42283	// Disks: Disks created on the instances that will be preserved on
42284	// instance delete, update, etc. This map is keyed with the device names
42285	// of the disks.
42286	Disks map[string]StatefulPolicyPreservedStateDiskDevice `json:"disks,omitempty"`
42287
42288	// ForceSendFields is a list of field names (e.g. "Disks") to
42289	// unconditionally include in API requests. By default, fields with
42290	// empty or default values are omitted from API requests. However, any
42291	// non-pointer, non-interface field appearing in ForceSendFields will be
42292	// sent to the server regardless of whether the field is empty or not.
42293	// This may be used to include empty fields in Patch requests.
42294	ForceSendFields []string `json:"-"`
42295
42296	// NullFields is a list of field names (e.g. "Disks") to include in API
42297	// requests with the JSON null value. By default, fields with empty
42298	// values are omitted from API requests. However, any field with an
42299	// empty value appearing in NullFields will be sent to the server as
42300	// null. It is an error if a field in this list has a non-empty value.
42301	// This may be used to include null fields in Patch requests.
42302	NullFields []string `json:"-"`
42303}
42304
42305func (s *StatefulPolicyPreservedState) MarshalJSON() ([]byte, error) {
42306	type NoMethod StatefulPolicyPreservedState
42307	raw := NoMethod(*s)
42308	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42309}
42310
42311type StatefulPolicyPreservedStateDiskDevice struct {
42312	// AutoDelete: These stateful disks will never be deleted during
42313	// autohealing, update or VM instance recreate operations. This flag is
42314	// used to configure if the disk should be deleted after it is no longer
42315	// used by the group, e.g. when the given instance or the whole group is
42316	// deleted. Note: disks attached in READ_ONLY mode cannot be
42317	// auto-deleted.
42318	//
42319	// Possible values:
42320	//   "NEVER"
42321	//   "ON_PERMANENT_INSTANCE_DELETION"
42322	AutoDelete string `json:"autoDelete,omitempty"`
42323
42324	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
42325	// unconditionally include in API requests. By default, fields with
42326	// empty or default values are omitted from API requests. However, any
42327	// non-pointer, non-interface field appearing in ForceSendFields will be
42328	// sent to the server regardless of whether the field is empty or not.
42329	// This may be used to include empty fields in Patch requests.
42330	ForceSendFields []string `json:"-"`
42331
42332	// NullFields is a list of field names (e.g. "AutoDelete") to include in
42333	// API requests with the JSON null value. By default, fields with empty
42334	// values are omitted from API requests. However, any field with an
42335	// empty value appearing in NullFields will be sent to the server as
42336	// null. It is an error if a field in this list has a non-empty value.
42337	// This may be used to include null fields in Patch requests.
42338	NullFields []string `json:"-"`
42339}
42340
42341func (s *StatefulPolicyPreservedStateDiskDevice) MarshalJSON() ([]byte, error) {
42342	type NoMethod StatefulPolicyPreservedStateDiskDevice
42343	raw := NoMethod(*s)
42344	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42345}
42346
42347// Subnetwork: Represents a Subnetwork resource. A subnetwork (also
42348// known as a subnet) is a logical partition of a Virtual Private Cloud
42349// network with one primary IP range and zero or more secondary IP
42350// ranges. For more information, read Virtual Private Cloud (VPC)
42351// Network.
42352type Subnetwork struct {
42353	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
42354	// format.
42355	CreationTimestamp string `json:"creationTimestamp,omitempty"`
42356
42357	// Description: An optional description of this resource. Provide this
42358	// property when you create the resource. This field can be set only at
42359	// resource creation time.
42360	Description string `json:"description,omitempty"`
42361
42362	// EnableFlowLogs: Whether to enable flow logging for this subnetwork.
42363	// If this field is not explicitly set, it will not appear in get
42364	// listings. If not set the default behavior is to disable flow logging.
42365	// This field isn't supported with the purpose field set to
42366	// INTERNAL_HTTPS_LOAD_BALANCER.
42367	EnableFlowLogs bool `json:"enableFlowLogs,omitempty"`
42368
42369	// ExternalIpv6Prefix: [Output Only] The range of external IPv6
42370	// addresses that are owned by this subnetwork.
42371	ExternalIpv6Prefix string `json:"externalIpv6Prefix,omitempty"`
42372
42373	// Fingerprint: Fingerprint of this resource. A hash of the contents
42374	// stored in this object. This field is used in optimistic locking. This
42375	// field will be ignored when inserting a Subnetwork. An up-to-date
42376	// fingerprint must be provided in order to update the Subnetwork,
42377	// otherwise the request will fail with error 412 conditionNotMet. To
42378	// see the latest fingerprint, make a get() request to retrieve a
42379	// Subnetwork.
42380	Fingerprint string `json:"fingerprint,omitempty"`
42381
42382	// GatewayAddress: [Output Only] The gateway address for default routes
42383	// to reach destination addresses outside this subnetwork.
42384	GatewayAddress string `json:"gatewayAddress,omitempty"`
42385
42386	// Id: [Output Only] The unique identifier for the resource. This
42387	// identifier is defined by the server.
42388	Id uint64 `json:"id,omitempty,string"`
42389
42390	// IpCidrRange: The range of internal addresses that are owned by this
42391	// subnetwork. Provide this property when you create the subnetwork. For
42392	// example, 10.0.0.0/8 or 100.64.0.0/10. Ranges must be unique and
42393	// non-overlapping within a network. Only IPv4 is supported. This field
42394	// is set at resource creation time. The range can be any range listed
42395	// in the Valid ranges list. The range can be expanded after creation
42396	// using expandIpCidrRange.
42397	IpCidrRange string `json:"ipCidrRange,omitempty"`
42398
42399	// Ipv6AccessType: The access type of IPv6 address this subnet holds.
42400	// It's immutable and can only be specified during creation or the first
42401	// time the subnet is updated into IPV4_IPV6 dual stack. If the
42402	// ipv6_type is EXTERNAL then this subnet cannot enable direct path.
42403	//
42404	// Possible values:
42405	//   "EXTERNAL" - VMs on this subnet will be assigned IPv6 addresses
42406	// that are accesible via the Internet, as well as the VPC network.
42407	//   "UNSPECIFIED_IPV6_ACCESS_TYPE" - IPv6 access type not set. Means
42408	// this subnet hasn't been turned on IPv6 yet.
42409	Ipv6AccessType string `json:"ipv6AccessType,omitempty"`
42410
42411	// Ipv6CidrRange: [Output Only] The range of internal IPv6 addresses
42412	// that are owned by this subnetwork.
42413	Ipv6CidrRange string `json:"ipv6CidrRange,omitempty"`
42414
42415	// Kind: [Output Only] Type of the resource. Always compute#subnetwork
42416	// for Subnetwork resources.
42417	Kind string `json:"kind,omitempty"`
42418
42419	// LogConfig: This field denotes the VPC flow logging options for this
42420	// subnetwork. If logging is enabled, logs are exported to Cloud
42421	// Logging.
42422	LogConfig *SubnetworkLogConfig `json:"logConfig,omitempty"`
42423
42424	// Name: The name of the resource, provided by the client when initially
42425	// creating the resource. The name must be 1-63 characters long, and
42426	// comply with RFC1035. Specifically, the name must be 1-63 characters
42427	// long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
42428	// which means the first character must be a lowercase letter, and all
42429	// following characters must be a dash, lowercase letter, or digit,
42430	// except the last character, which cannot be a dash.
42431	Name string `json:"name,omitempty"`
42432
42433	// Network: The URL of the network to which this subnetwork belongs,
42434	// provided by the client when initially creating the subnetwork. This
42435	// field can be set only at resource creation time.
42436	Network string `json:"network,omitempty"`
42437
42438	// PrivateIpGoogleAccess: Whether the VMs in this subnet can access
42439	// Google services without assigned external IP addresses. This field
42440	// can be both set at resource creation time and updated using
42441	// setPrivateIpGoogleAccess.
42442	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
42443
42444	// PrivateIpv6GoogleAccess: The private IPv6 google access type for the
42445	// VMs in this subnet. This is an expanded field of
42446	// enablePrivateV6Access. If both fields are set,
42447	// privateIpv6GoogleAccess will take priority. This field can be both
42448	// set at resource creation time and updated using patch.
42449	//
42450	// Possible values:
42451	//   "DISABLE_GOOGLE_ACCESS" - Disable private IPv6 access to/from
42452	// Google services.
42453	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE" - Bidirectional private
42454	// IPv6 access to/from Google services.
42455	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE" - Outbound private IPv6
42456	// access from VMs in this subnet to Google services.
42457	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
42458
42459	// Purpose: The purpose of the resource. This field can be either
42460	// PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with
42461	// purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created
42462	// subnetwork that is reserved for Internal HTTP(S) Load Balancing. If
42463	// unspecified, the purpose defaults to PRIVATE_RFC_1918. The
42464	// enableFlowLogs field isn't supported with the purpose field set to
42465	// INTERNAL_HTTPS_LOAD_BALANCER.
42466	//
42467	// Possible values:
42468	//   "INTERNAL_HTTPS_LOAD_BALANCER" - Subnet reserved for Internal
42469	// HTTP(S) Load Balancing.
42470	//   "PRIVATE" - Regular user created or automatically created subnet.
42471	//   "PRIVATE_RFC_1918" - Regular user created or automatically created
42472	// subnet.
42473	//   "PRIVATE_SERVICE_CONNECT" - Subnetworks created for Private Service
42474	// Connect in the producer network.
42475	Purpose string `json:"purpose,omitempty"`
42476
42477	// Region: URL of the region where the Subnetwork resides. This field
42478	// can be set only at resource creation time.
42479	Region string `json:"region,omitempty"`
42480
42481	// Role: The role of subnetwork. Currently, this field is only used when
42482	// purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to
42483	// ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being
42484	// used for Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one
42485	// that is ready to be promoted to ACTIVE or is currently draining. This
42486	// field can be updated with a patch request.
42487	//
42488	// Possible values:
42489	//   "ACTIVE" - The ACTIVE subnet that is currently used.
42490	//   "BACKUP" - The BACKUP subnet that could be promoted to ACTIVE.
42491	Role string `json:"role,omitempty"`
42492
42493	// SecondaryIpRanges: An array of configurations for secondary IP ranges
42494	// for VM instances contained in this subnetwork. The primary IP of such
42495	// VM must belong to the primary ipCidrRange of the subnetwork. The
42496	// alias IPs may belong to either primary or secondary ranges. This
42497	// field can be updated with a patch request.
42498	SecondaryIpRanges []*SubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
42499
42500	// SelfLink: [Output Only] Server-defined URL for the resource.
42501	SelfLink string `json:"selfLink,omitempty"`
42502
42503	// StackType: The stack type for this subnet to identify whether the
42504	// IPv6 feature is enabled or not. If not specified IPV4_ONLY will be
42505	// used. This field can be both set at resource creation time and
42506	// updated using patch.
42507	//
42508	// Possible values:
42509	//   "IPV4_IPV6" - New VMs in this subnet can have both IPv4 and IPv6
42510	// addresses.
42511	//   "IPV4_ONLY" - New VMs in this subnet will only be assigned IPv4
42512	// addresses.
42513	//   "UNSPECIFIED_STACK_TYPE"
42514	StackType string `json:"stackType,omitempty"`
42515
42516	// State: [Output Only] The state of the subnetwork, which can be one of
42517	// the following values: READY: Subnetwork is created and ready to use
42518	// DRAINING: only applicable to subnetworks that have the purpose set to
42519	// INTERNAL_HTTPS_LOAD_BALANCER and indicates that connections to the
42520	// load balancer are being drained. A subnetwork that is draining cannot
42521	// be used or modified until it reaches a status of READY
42522	//
42523	// Possible values:
42524	//   "DRAINING" - Subnetwork is being drained.
42525	//   "READY" - Subnetwork is ready for use.
42526	State string `json:"state,omitempty"`
42527
42528	// ServerResponse contains the HTTP response code and headers from the
42529	// server.
42530	googleapi.ServerResponse `json:"-"`
42531
42532	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
42533	// to unconditionally include in API requests. By default, fields with
42534	// empty or default values are omitted from API requests. However, any
42535	// non-pointer, non-interface field appearing in ForceSendFields will be
42536	// sent to the server regardless of whether the field is empty or not.
42537	// This may be used to include empty fields in Patch requests.
42538	ForceSendFields []string `json:"-"`
42539
42540	// NullFields is a list of field names (e.g. "CreationTimestamp") to
42541	// include in API requests with the JSON null value. By default, fields
42542	// with empty values are omitted from API requests. However, any field
42543	// with an empty value appearing in NullFields will be sent to the
42544	// server as null. It is an error if a field in this list has a
42545	// non-empty value. This may be used to include null fields in Patch
42546	// requests.
42547	NullFields []string `json:"-"`
42548}
42549
42550func (s *Subnetwork) MarshalJSON() ([]byte, error) {
42551	type NoMethod Subnetwork
42552	raw := NoMethod(*s)
42553	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42554}
42555
42556type SubnetworkAggregatedList struct {
42557	// Id: [Output Only] Unique identifier for the resource; defined by the
42558	// server.
42559	Id string `json:"id,omitempty"`
42560
42561	// Items: A list of SubnetworksScopedList resources.
42562	Items map[string]SubnetworksScopedList `json:"items,omitempty"`
42563
42564	// Kind: [Output Only] Type of resource. Always
42565	// compute#subnetworkAggregatedList for aggregated lists of subnetworks.
42566	Kind string `json:"kind,omitempty"`
42567
42568	// NextPageToken: [Output Only] This token allows you to get the next
42569	// page of results for list requests. If the number of results is larger
42570	// than maxResults, use the nextPageToken as a value for the query
42571	// parameter pageToken in the next list request. Subsequent list
42572	// requests will have their own nextPageToken to continue paging through
42573	// the results.
42574	NextPageToken string `json:"nextPageToken,omitempty"`
42575
42576	// SelfLink: [Output Only] Server-defined URL for this resource.
42577	SelfLink string `json:"selfLink,omitempty"`
42578
42579	// Unreachables: [Output Only] Unreachable resources.
42580	Unreachables []string `json:"unreachables,omitempty"`
42581
42582	// Warning: [Output Only] Informational warning message.
42583	Warning *SubnetworkAggregatedListWarning `json:"warning,omitempty"`
42584
42585	// ServerResponse contains the HTTP response code and headers from the
42586	// server.
42587	googleapi.ServerResponse `json:"-"`
42588
42589	// ForceSendFields is a list of field names (e.g. "Id") to
42590	// unconditionally include in API requests. By default, fields with
42591	// empty or default values are omitted from API requests. However, any
42592	// non-pointer, non-interface field appearing in ForceSendFields will be
42593	// sent to the server regardless of whether the field is empty or not.
42594	// This may be used to include empty fields in Patch requests.
42595	ForceSendFields []string `json:"-"`
42596
42597	// NullFields is a list of field names (e.g. "Id") to include in API
42598	// requests with the JSON null value. By default, fields with empty
42599	// values are omitted from API requests. However, any field with an
42600	// empty value appearing in NullFields will be sent to the server as
42601	// null. It is an error if a field in this list has a non-empty value.
42602	// This may be used to include null fields in Patch requests.
42603	NullFields []string `json:"-"`
42604}
42605
42606func (s *SubnetworkAggregatedList) MarshalJSON() ([]byte, error) {
42607	type NoMethod SubnetworkAggregatedList
42608	raw := NoMethod(*s)
42609	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42610}
42611
42612// SubnetworkAggregatedListWarning: [Output Only] Informational warning
42613// message.
42614type SubnetworkAggregatedListWarning struct {
42615	// Code: [Output Only] A warning code, if applicable. For example,
42616	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42617	// the response.
42618	//
42619	// Possible values:
42620	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
42621	// changes made by a failed operation.
42622	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
42623	// created.
42624	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
42625	// resources has a type marked as deprecated
42626	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
42627	// that is larger than image size.
42628	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
42629	// resources has a type marked as experimental
42630	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
42631	// call
42632	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
42633	// overridden. Deprecated unused field.
42634	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
42635	// injected kernel, which is deprecated.
42636	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
42637	// exceedingly large number of resources
42638	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
42639	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
42640	// not assigned to an instance on the network.
42641	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
42642	// ip forward.
42643	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
42644	// refers to an instance that does not exist.
42645	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
42646	// URL refers to an instance that is not on the same network as the
42647	// route.
42648	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
42649	// have a status of RUNNING.
42650	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
42651	// continue the process despite the mentioned error.
42652	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
42653	// page.
42654	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
42655	// missing due to errors
42656	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
42657	// that requires a TOS they have not accepted.
42658	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
42659	// resource is in use.
42660	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
42661	// auto-delete could not be deleted because they were in use.
42662	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
42663	// ignored.
42664	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
42665	// instance group manager is valid as such, but its application does not
42666	// make a lot of sense, because it allows only single instance in
42667	// instance group.
42668	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
42669	// are present
42670	//   "UNREACHABLE" - A given scope cannot be reached.
42671	Code string `json:"code,omitempty"`
42672
42673	// Data: [Output Only] Metadata about this warning in key: value format.
42674	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
42675	// }
42676	Data []*SubnetworkAggregatedListWarningData `json:"data,omitempty"`
42677
42678	// Message: [Output Only] A human-readable description of the warning
42679	// code.
42680	Message string `json:"message,omitempty"`
42681
42682	// ForceSendFields is a list of field names (e.g. "Code") to
42683	// unconditionally include in API requests. By default, fields with
42684	// empty or default values are omitted from API requests. However, any
42685	// non-pointer, non-interface field appearing in ForceSendFields will be
42686	// sent to the server regardless of whether the field is empty or not.
42687	// This may be used to include empty fields in Patch requests.
42688	ForceSendFields []string `json:"-"`
42689
42690	// NullFields is a list of field names (e.g. "Code") to include in API
42691	// requests with the JSON null value. By default, fields with empty
42692	// values are omitted from API requests. However, any field with an
42693	// empty value appearing in NullFields will be sent to the server as
42694	// null. It is an error if a field in this list has a non-empty value.
42695	// This may be used to include null fields in Patch requests.
42696	NullFields []string `json:"-"`
42697}
42698
42699func (s *SubnetworkAggregatedListWarning) MarshalJSON() ([]byte, error) {
42700	type NoMethod SubnetworkAggregatedListWarning
42701	raw := NoMethod(*s)
42702	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42703}
42704
42705type SubnetworkAggregatedListWarningData struct {
42706	// Key: [Output Only] A key that provides more detail on the warning
42707	// being returned. For example, for warnings where there are no results
42708	// in a list request for a particular zone, this key might be scope and
42709	// the key value might be the zone name. Other examples might be a key
42710	// indicating a deprecated resource and a suggested replacement, or a
42711	// warning about invalid network settings (for example, if an instance
42712	// attempts to perform IP forwarding but is not enabled for IP
42713	// forwarding).
42714	Key string `json:"key,omitempty"`
42715
42716	// Value: [Output Only] A warning data value corresponding to the key.
42717	Value string `json:"value,omitempty"`
42718
42719	// ForceSendFields is a list of field names (e.g. "Key") to
42720	// unconditionally include in API requests. By default, fields with
42721	// empty or default values are omitted from API requests. However, any
42722	// non-pointer, non-interface field appearing in ForceSendFields will be
42723	// sent to the server regardless of whether the field is empty or not.
42724	// This may be used to include empty fields in Patch requests.
42725	ForceSendFields []string `json:"-"`
42726
42727	// NullFields is a list of field names (e.g. "Key") to include in API
42728	// requests with the JSON null value. By default, fields with empty
42729	// values are omitted from API requests. However, any field with an
42730	// empty value appearing in NullFields will be sent to the server as
42731	// null. It is an error if a field in this list has a non-empty value.
42732	// This may be used to include null fields in Patch requests.
42733	NullFields []string `json:"-"`
42734}
42735
42736func (s *SubnetworkAggregatedListWarningData) MarshalJSON() ([]byte, error) {
42737	type NoMethod SubnetworkAggregatedListWarningData
42738	raw := NoMethod(*s)
42739	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42740}
42741
42742// SubnetworkList: Contains a list of Subnetwork resources.
42743type SubnetworkList struct {
42744	// Id: [Output Only] Unique identifier for the resource; defined by the
42745	// server.
42746	Id string `json:"id,omitempty"`
42747
42748	// Items: A list of Subnetwork resources.
42749	Items []*Subnetwork `json:"items,omitempty"`
42750
42751	// Kind: [Output Only] Type of resource. Always compute#subnetworkList
42752	// for lists of subnetworks.
42753	Kind string `json:"kind,omitempty"`
42754
42755	// NextPageToken: [Output Only] This token allows you to get the next
42756	// page of results for list requests. If the number of results is larger
42757	// than maxResults, use the nextPageToken as a value for the query
42758	// parameter pageToken in the next list request. Subsequent list
42759	// requests will have their own nextPageToken to continue paging through
42760	// the results.
42761	NextPageToken string `json:"nextPageToken,omitempty"`
42762
42763	// SelfLink: [Output Only] Server-defined URL for this resource.
42764	SelfLink string `json:"selfLink,omitempty"`
42765
42766	// Warning: [Output Only] Informational warning message.
42767	Warning *SubnetworkListWarning `json:"warning,omitempty"`
42768
42769	// ServerResponse contains the HTTP response code and headers from the
42770	// server.
42771	googleapi.ServerResponse `json:"-"`
42772
42773	// ForceSendFields is a list of field names (e.g. "Id") to
42774	// unconditionally include in API requests. By default, fields with
42775	// empty or default values are omitted from API requests. However, any
42776	// non-pointer, non-interface field appearing in ForceSendFields will be
42777	// sent to the server regardless of whether the field is empty or not.
42778	// This may be used to include empty fields in Patch requests.
42779	ForceSendFields []string `json:"-"`
42780
42781	// NullFields is a list of field names (e.g. "Id") to include in API
42782	// requests with the JSON null value. By default, fields with empty
42783	// values are omitted from API requests. However, any field with an
42784	// empty value appearing in NullFields will be sent to the server as
42785	// null. It is an error if a field in this list has a non-empty value.
42786	// This may be used to include null fields in Patch requests.
42787	NullFields []string `json:"-"`
42788}
42789
42790func (s *SubnetworkList) MarshalJSON() ([]byte, error) {
42791	type NoMethod SubnetworkList
42792	raw := NoMethod(*s)
42793	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42794}
42795
42796// SubnetworkListWarning: [Output Only] Informational warning message.
42797type SubnetworkListWarning struct {
42798	// Code: [Output Only] A warning code, if applicable. For example,
42799	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42800	// the response.
42801	//
42802	// Possible values:
42803	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
42804	// changes made by a failed operation.
42805	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
42806	// created.
42807	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
42808	// resources has a type marked as deprecated
42809	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
42810	// that is larger than image size.
42811	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
42812	// resources has a type marked as experimental
42813	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
42814	// call
42815	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
42816	// overridden. Deprecated unused field.
42817	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
42818	// injected kernel, which is deprecated.
42819	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
42820	// exceedingly large number of resources
42821	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
42822	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
42823	// not assigned to an instance on the network.
42824	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
42825	// ip forward.
42826	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
42827	// refers to an instance that does not exist.
42828	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
42829	// URL refers to an instance that is not on the same network as the
42830	// route.
42831	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
42832	// have a status of RUNNING.
42833	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
42834	// continue the process despite the mentioned error.
42835	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
42836	// page.
42837	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
42838	// missing due to errors
42839	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
42840	// that requires a TOS they have not accepted.
42841	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
42842	// resource is in use.
42843	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
42844	// auto-delete could not be deleted because they were in use.
42845	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
42846	// ignored.
42847	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
42848	// instance group manager is valid as such, but its application does not
42849	// make a lot of sense, because it allows only single instance in
42850	// instance group.
42851	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
42852	// are present
42853	//   "UNREACHABLE" - A given scope cannot be reached.
42854	Code string `json:"code,omitempty"`
42855
42856	// Data: [Output Only] Metadata about this warning in key: value format.
42857	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
42858	// }
42859	Data []*SubnetworkListWarningData `json:"data,omitempty"`
42860
42861	// Message: [Output Only] A human-readable description of the warning
42862	// code.
42863	Message string `json:"message,omitempty"`
42864
42865	// ForceSendFields is a list of field names (e.g. "Code") to
42866	// unconditionally include in API requests. By default, fields with
42867	// empty or default values are omitted from API requests. However, any
42868	// non-pointer, non-interface field appearing in ForceSendFields will be
42869	// sent to the server regardless of whether the field is empty or not.
42870	// This may be used to include empty fields in Patch requests.
42871	ForceSendFields []string `json:"-"`
42872
42873	// NullFields is a list of field names (e.g. "Code") to include in API
42874	// requests with the JSON null value. By default, fields with empty
42875	// values are omitted from API requests. However, any field with an
42876	// empty value appearing in NullFields will be sent to the server as
42877	// null. It is an error if a field in this list has a non-empty value.
42878	// This may be used to include null fields in Patch requests.
42879	NullFields []string `json:"-"`
42880}
42881
42882func (s *SubnetworkListWarning) MarshalJSON() ([]byte, error) {
42883	type NoMethod SubnetworkListWarning
42884	raw := NoMethod(*s)
42885	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42886}
42887
42888type SubnetworkListWarningData struct {
42889	// Key: [Output Only] A key that provides more detail on the warning
42890	// being returned. For example, for warnings where there are no results
42891	// in a list request for a particular zone, this key might be scope and
42892	// the key value might be the zone name. Other examples might be a key
42893	// indicating a deprecated resource and a suggested replacement, or a
42894	// warning about invalid network settings (for example, if an instance
42895	// attempts to perform IP forwarding but is not enabled for IP
42896	// forwarding).
42897	Key string `json:"key,omitempty"`
42898
42899	// Value: [Output Only] A warning data value corresponding to the key.
42900	Value string `json:"value,omitempty"`
42901
42902	// ForceSendFields is a list of field names (e.g. "Key") to
42903	// unconditionally include in API requests. By default, fields with
42904	// empty or default values are omitted from API requests. However, any
42905	// non-pointer, non-interface field appearing in ForceSendFields will be
42906	// sent to the server regardless of whether the field is empty or not.
42907	// This may be used to include empty fields in Patch requests.
42908	ForceSendFields []string `json:"-"`
42909
42910	// NullFields is a list of field names (e.g. "Key") to include in API
42911	// requests with the JSON null value. By default, fields with empty
42912	// values are omitted from API requests. However, any field with an
42913	// empty value appearing in NullFields will be sent to the server as
42914	// null. It is an error if a field in this list has a non-empty value.
42915	// This may be used to include null fields in Patch requests.
42916	NullFields []string `json:"-"`
42917}
42918
42919func (s *SubnetworkListWarningData) MarshalJSON() ([]byte, error) {
42920	type NoMethod SubnetworkListWarningData
42921	raw := NoMethod(*s)
42922	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42923}
42924
42925// SubnetworkLogConfig: The available logging options for this
42926// subnetwork.
42927type SubnetworkLogConfig struct {
42928	// AggregationInterval: Can only be specified if VPC flow logging for
42929	// this subnetwork is enabled. Toggles the aggregation interval for
42930	// collecting flow logs. Increasing the interval time will reduce the
42931	// amount of generated flow logs for long lasting connections. Default
42932	// is an interval of 5 seconds per connection.
42933	//
42934	// Possible values:
42935	//   "INTERVAL_10_MIN"
42936	//   "INTERVAL_15_MIN"
42937	//   "INTERVAL_1_MIN"
42938	//   "INTERVAL_30_SEC"
42939	//   "INTERVAL_5_MIN"
42940	//   "INTERVAL_5_SEC"
42941	AggregationInterval string `json:"aggregationInterval,omitempty"`
42942
42943	// Enable: Whether to enable flow logging for this subnetwork. If this
42944	// field is not explicitly set, it will not appear in get listings. If
42945	// not set the default behavior is to disable flow logging.
42946	Enable bool `json:"enable,omitempty"`
42947
42948	// FilterExpr: Can only be specified if VPC flow logs for this
42949	// subnetwork is enabled. Export filter used to define which VPC flow
42950	// logs should be logged.
42951	FilterExpr string `json:"filterExpr,omitempty"`
42952
42953	// FlowSampling: Can only be specified if VPC flow logging for this
42954	// subnetwork is enabled. The value of the field must be in [0, 1]. Set
42955	// the sampling rate of VPC flow logs within the subnetwork where 1.0
42956	// means all collected logs are reported and 0.0 means no logs are
42957	// reported. Default is 0.5, which means half of all collected logs are
42958	// reported.
42959	FlowSampling float64 `json:"flowSampling,omitempty"`
42960
42961	// Metadata: Can only be specified if VPC flow logs for this subnetwork
42962	// is enabled. Configures whether all, none or a subset of metadata
42963	// fields should be added to the reported VPC flow logs. Default is
42964	// EXCLUDE_ALL_METADATA.
42965	//
42966	// Possible values:
42967	//   "CUSTOM_METADATA"
42968	//   "EXCLUDE_ALL_METADATA"
42969	//   "INCLUDE_ALL_METADATA"
42970	Metadata string `json:"metadata,omitempty"`
42971
42972	// MetadataFields: Can only be specified if VPC flow logs for this
42973	// subnetwork is enabled and "metadata" was set to CUSTOM_METADATA.
42974	MetadataFields []string `json:"metadataFields,omitempty"`
42975
42976	// ForceSendFields is a list of field names (e.g. "AggregationInterval")
42977	// to unconditionally include in API requests. By default, fields with
42978	// empty or default values are omitted from API requests. However, any
42979	// non-pointer, non-interface field appearing in ForceSendFields will be
42980	// sent to the server regardless of whether the field is empty or not.
42981	// This may be used to include empty fields in Patch requests.
42982	ForceSendFields []string `json:"-"`
42983
42984	// NullFields is a list of field names (e.g. "AggregationInterval") to
42985	// include in API requests with the JSON null value. By default, fields
42986	// with empty values are omitted from API requests. However, any field
42987	// with an empty value appearing in NullFields will be sent to the
42988	// server as null. It is an error if a field in this list has a
42989	// non-empty value. This may be used to include null fields in Patch
42990	// requests.
42991	NullFields []string `json:"-"`
42992}
42993
42994func (s *SubnetworkLogConfig) MarshalJSON() ([]byte, error) {
42995	type NoMethod SubnetworkLogConfig
42996	raw := NoMethod(*s)
42997	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42998}
42999
43000func (s *SubnetworkLogConfig) UnmarshalJSON(data []byte) error {
43001	type NoMethod SubnetworkLogConfig
43002	var s1 struct {
43003		FlowSampling gensupport.JSONFloat64 `json:"flowSampling"`
43004		*NoMethod
43005	}
43006	s1.NoMethod = (*NoMethod)(s)
43007	if err := json.Unmarshal(data, &s1); err != nil {
43008		return err
43009	}
43010	s.FlowSampling = float64(s1.FlowSampling)
43011	return nil
43012}
43013
43014// SubnetworkSecondaryRange: Represents a secondary IP range of a
43015// subnetwork.
43016type SubnetworkSecondaryRange struct {
43017	// IpCidrRange: The range of IP addresses belonging to this subnetwork
43018	// secondary range. Provide this property when you create the
43019	// subnetwork. Ranges must be unique and non-overlapping with all
43020	// primary and secondary IP ranges within a network. Only IPv4 is
43021	// supported. The range can be any range listed in the Valid ranges
43022	// list.
43023	IpCidrRange string `json:"ipCidrRange,omitempty"`
43024
43025	// RangeName: The name associated with this subnetwork secondary range,
43026	// used when adding an alias IP range to a VM instance. The name must be
43027	// 1-63 characters long, and comply with RFC1035. The name must be
43028	// unique within the subnetwork.
43029	RangeName string `json:"rangeName,omitempty"`
43030
43031	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
43032	// unconditionally include in API requests. By default, fields with
43033	// empty or default values are omitted from API requests. However, any
43034	// non-pointer, non-interface field appearing in ForceSendFields will be
43035	// sent to the server regardless of whether the field is empty or not.
43036	// This may be used to include empty fields in Patch requests.
43037	ForceSendFields []string `json:"-"`
43038
43039	// NullFields is a list of field names (e.g. "IpCidrRange") to include
43040	// in API requests with the JSON null value. By default, fields with
43041	// empty values are omitted from API requests. However, any field with
43042	// an empty value appearing in NullFields will be sent to the server as
43043	// null. It is an error if a field in this list has a non-empty value.
43044	// This may be used to include null fields in Patch requests.
43045	NullFields []string `json:"-"`
43046}
43047
43048func (s *SubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
43049	type NoMethod SubnetworkSecondaryRange
43050	raw := NoMethod(*s)
43051	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43052}
43053
43054type SubnetworksExpandIpCidrRangeRequest struct {
43055	// IpCidrRange: The IP (in CIDR format or netmask) of internal addresses
43056	// that are legal on this Subnetwork. This range should be disjoint from
43057	// other subnetworks within this network. This range can only be larger
43058	// than (i.e. a superset of) the range previously defined before the
43059	// update.
43060	IpCidrRange string `json:"ipCidrRange,omitempty"`
43061
43062	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
43063	// unconditionally include in API requests. By default, fields with
43064	// empty or default values are omitted from API requests. However, any
43065	// non-pointer, non-interface field appearing in ForceSendFields will be
43066	// sent to the server regardless of whether the field is empty or not.
43067	// This may be used to include empty fields in Patch requests.
43068	ForceSendFields []string `json:"-"`
43069
43070	// NullFields is a list of field names (e.g. "IpCidrRange") to include
43071	// in API requests with the JSON null value. By default, fields with
43072	// empty values are omitted from API requests. However, any field with
43073	// an empty value appearing in NullFields will be sent to the server as
43074	// null. It is an error if a field in this list has a non-empty value.
43075	// This may be used to include null fields in Patch requests.
43076	NullFields []string `json:"-"`
43077}
43078
43079func (s *SubnetworksExpandIpCidrRangeRequest) MarshalJSON() ([]byte, error) {
43080	type NoMethod SubnetworksExpandIpCidrRangeRequest
43081	raw := NoMethod(*s)
43082	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43083}
43084
43085type SubnetworksScopedList struct {
43086	// Subnetworks: A list of subnetworks contained in this scope.
43087	Subnetworks []*Subnetwork `json:"subnetworks,omitempty"`
43088
43089	// Warning: An informational warning that appears when the list of
43090	// addresses is empty.
43091	Warning *SubnetworksScopedListWarning `json:"warning,omitempty"`
43092
43093	// ForceSendFields is a list of field names (e.g. "Subnetworks") to
43094	// unconditionally include in API requests. By default, fields with
43095	// empty or default values are omitted from API requests. However, any
43096	// non-pointer, non-interface field appearing in ForceSendFields will be
43097	// sent to the server regardless of whether the field is empty or not.
43098	// This may be used to include empty fields in Patch requests.
43099	ForceSendFields []string `json:"-"`
43100
43101	// NullFields is a list of field names (e.g. "Subnetworks") to include
43102	// in API requests with the JSON null value. By default, fields with
43103	// empty values are omitted from API requests. However, any field with
43104	// an empty value appearing in NullFields will be sent to the server as
43105	// null. It is an error if a field in this list has a non-empty value.
43106	// This may be used to include null fields in Patch requests.
43107	NullFields []string `json:"-"`
43108}
43109
43110func (s *SubnetworksScopedList) MarshalJSON() ([]byte, error) {
43111	type NoMethod SubnetworksScopedList
43112	raw := NoMethod(*s)
43113	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43114}
43115
43116// SubnetworksScopedListWarning: An informational warning that appears
43117// when the list of addresses is empty.
43118type SubnetworksScopedListWarning struct {
43119	// Code: [Output Only] A warning code, if applicable. For example,
43120	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43121	// the response.
43122	//
43123	// Possible values:
43124	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
43125	// changes made by a failed operation.
43126	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
43127	// created.
43128	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
43129	// resources has a type marked as deprecated
43130	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
43131	// that is larger than image size.
43132	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
43133	// resources has a type marked as experimental
43134	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
43135	// call
43136	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
43137	// overridden. Deprecated unused field.
43138	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
43139	// injected kernel, which is deprecated.
43140	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
43141	// exceedingly large number of resources
43142	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
43143	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
43144	// not assigned to an instance on the network.
43145	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
43146	// ip forward.
43147	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
43148	// refers to an instance that does not exist.
43149	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
43150	// URL refers to an instance that is not on the same network as the
43151	// route.
43152	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
43153	// have a status of RUNNING.
43154	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
43155	// continue the process despite the mentioned error.
43156	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
43157	// page.
43158	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
43159	// missing due to errors
43160	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
43161	// that requires a TOS they have not accepted.
43162	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
43163	// resource is in use.
43164	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
43165	// auto-delete could not be deleted because they were in use.
43166	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
43167	// ignored.
43168	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
43169	// instance group manager is valid as such, but its application does not
43170	// make a lot of sense, because it allows only single instance in
43171	// instance group.
43172	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
43173	// are present
43174	//   "UNREACHABLE" - A given scope cannot be reached.
43175	Code string `json:"code,omitempty"`
43176
43177	// Data: [Output Only] Metadata about this warning in key: value format.
43178	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
43179	// }
43180	Data []*SubnetworksScopedListWarningData `json:"data,omitempty"`
43181
43182	// Message: [Output Only] A human-readable description of the warning
43183	// code.
43184	Message string `json:"message,omitempty"`
43185
43186	// ForceSendFields is a list of field names (e.g. "Code") to
43187	// unconditionally include in API requests. By default, fields with
43188	// empty or default values are omitted from API requests. However, any
43189	// non-pointer, non-interface field appearing in ForceSendFields will be
43190	// sent to the server regardless of whether the field is empty or not.
43191	// This may be used to include empty fields in Patch requests.
43192	ForceSendFields []string `json:"-"`
43193
43194	// NullFields is a list of field names (e.g. "Code") to include in API
43195	// requests with the JSON null value. By default, fields with empty
43196	// values are omitted from API requests. However, any field with an
43197	// empty value appearing in NullFields will be sent to the server as
43198	// null. It is an error if a field in this list has a non-empty value.
43199	// This may be used to include null fields in Patch requests.
43200	NullFields []string `json:"-"`
43201}
43202
43203func (s *SubnetworksScopedListWarning) MarshalJSON() ([]byte, error) {
43204	type NoMethod SubnetworksScopedListWarning
43205	raw := NoMethod(*s)
43206	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43207}
43208
43209type SubnetworksScopedListWarningData struct {
43210	// Key: [Output Only] A key that provides more detail on the warning
43211	// being returned. For example, for warnings where there are no results
43212	// in a list request for a particular zone, this key might be scope and
43213	// the key value might be the zone name. Other examples might be a key
43214	// indicating a deprecated resource and a suggested replacement, or a
43215	// warning about invalid network settings (for example, if an instance
43216	// attempts to perform IP forwarding but is not enabled for IP
43217	// forwarding).
43218	Key string `json:"key,omitempty"`
43219
43220	// Value: [Output Only] A warning data value corresponding to the key.
43221	Value string `json:"value,omitempty"`
43222
43223	// ForceSendFields is a list of field names (e.g. "Key") to
43224	// unconditionally include in API requests. By default, fields with
43225	// empty or default values are omitted from API requests. However, any
43226	// non-pointer, non-interface field appearing in ForceSendFields will be
43227	// sent to the server regardless of whether the field is empty or not.
43228	// This may be used to include empty fields in Patch requests.
43229	ForceSendFields []string `json:"-"`
43230
43231	// NullFields is a list of field names (e.g. "Key") to include in API
43232	// requests with the JSON null value. By default, fields with empty
43233	// values are omitted from API requests. However, any field with an
43234	// empty value appearing in NullFields will be sent to the server as
43235	// null. It is an error if a field in this list has a non-empty value.
43236	// This may be used to include null fields in Patch requests.
43237	NullFields []string `json:"-"`
43238}
43239
43240func (s *SubnetworksScopedListWarningData) MarshalJSON() ([]byte, error) {
43241	type NoMethod SubnetworksScopedListWarningData
43242	raw := NoMethod(*s)
43243	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43244}
43245
43246type SubnetworksSetPrivateIpGoogleAccessRequest struct {
43247	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
43248
43249	// ForceSendFields is a list of field names (e.g.
43250	// "PrivateIpGoogleAccess") to unconditionally include in API requests.
43251	// By default, fields with empty or default values are omitted from API
43252	// requests. However, any non-pointer, non-interface field appearing in
43253	// ForceSendFields will be sent to the server regardless of whether the
43254	// field is empty or not. This may be used to include empty fields in
43255	// Patch requests.
43256	ForceSendFields []string `json:"-"`
43257
43258	// NullFields is a list of field names (e.g. "PrivateIpGoogleAccess") to
43259	// include in API requests with the JSON null value. By default, fields
43260	// with empty values are omitted from API requests. However, any field
43261	// with an empty value appearing in NullFields will be sent to the
43262	// server as null. It is an error if a field in this list has a
43263	// non-empty value. This may be used to include null fields in Patch
43264	// requests.
43265	NullFields []string `json:"-"`
43266}
43267
43268func (s *SubnetworksSetPrivateIpGoogleAccessRequest) MarshalJSON() ([]byte, error) {
43269	type NoMethod SubnetworksSetPrivateIpGoogleAccessRequest
43270	raw := NoMethod(*s)
43271	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43272}
43273
43274// Subsetting: Subsetting configuration for this BackendService.
43275// Currently this is applicable only for Internal TCP/UDP load
43276// balancing, Internal HTTP(S) load balancing and Traffic Director.
43277type Subsetting struct {
43278	// Possible values:
43279	//   "CONSISTENT_HASH_SUBSETTING" - Subsetting based on consistent
43280	// hashing. For Traffic Director, the number of backends per backend
43281	// group (the subset size) is based on the `subset_size` parameter. For
43282	// Internal HTTP(S) load balancing, the number of backends per backend
43283	// group (the subset size) is dynamically adjusted in two cases: - As
43284	// the number of proxy instances participating in Internal HTTP(S) load
43285	// balancing increases, the subset size decreases. - When the total
43286	// number of backends in a network exceeds the capacity of a single
43287	// proxy instance, subset sizes are reduced automatically for each
43288	// service that has backend subsetting enabled.
43289	//   "NONE" - No Subsetting. Clients may open connections and send
43290	// traffic to all backends of this backend service. This can lead to
43291	// performance issues if there is substantial imbalance in the count of
43292	// clients and backends.
43293	Policy string `json:"policy,omitempty"`
43294
43295	// ForceSendFields is a list of field names (e.g. "Policy") to
43296	// unconditionally include in API requests. By default, fields with
43297	// empty or default values are omitted from API requests. However, any
43298	// non-pointer, non-interface field appearing in ForceSendFields will be
43299	// sent to the server regardless of whether the field is empty or not.
43300	// This may be used to include empty fields in Patch requests.
43301	ForceSendFields []string `json:"-"`
43302
43303	// NullFields is a list of field names (e.g. "Policy") to include in API
43304	// requests with the JSON null value. By default, fields with empty
43305	// values are omitted from API requests. However, any field with an
43306	// empty value appearing in NullFields will be sent to the server as
43307	// null. It is an error if a field in this list has a non-empty value.
43308	// This may be used to include null fields in Patch requests.
43309	NullFields []string `json:"-"`
43310}
43311
43312func (s *Subsetting) MarshalJSON() ([]byte, error) {
43313	type NoMethod Subsetting
43314	raw := NoMethod(*s)
43315	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43316}
43317
43318type TCPHealthCheck struct {
43319	// Port: The TCP port number for the health check request. The default
43320	// value is 80. Valid values are 1 through 65535.
43321	Port int64 `json:"port,omitempty"`
43322
43323	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
43324	// both port and port_name are defined, port takes precedence.
43325	PortName string `json:"portName,omitempty"`
43326
43327	// PortSpecification: Specifies how port is selected for health
43328	// checking, can be one of following values: USE_FIXED_PORT: The port
43329	// number in port is used for health checking. USE_NAMED_PORT: The
43330	// portName is used for health checking. USE_SERVING_PORT: For
43331	// NetworkEndpointGroup, the port specified for each network endpoint is
43332	// used for health checking. For other backends, the port or named port
43333	// specified in the Backend Service is used for health checking. If not
43334	// specified, TCP health check follows behavior specified in port and
43335	// portName fields.
43336	//
43337	// Possible values:
43338	//   "USE_FIXED_PORT" - The port number in port is used for health
43339	// checking.
43340	//   "USE_NAMED_PORT" - The portName is used for health checking.
43341	//   "USE_SERVING_PORT" - For NetworkEndpointGroup, the port specified
43342	// for each network endpoint is used for health checking. For other
43343	// backends, the port or named port specified in the Backend Service is
43344	// used for health checking.
43345	PortSpecification string `json:"portSpecification,omitempty"`
43346
43347	// ProxyHeader: Specifies the type of proxy header to append before
43348	// sending data to the backend, either NONE or PROXY_V1. The default is
43349	// NONE.
43350	//
43351	// Possible values:
43352	//   "NONE"
43353	//   "PROXY_V1"
43354	ProxyHeader string `json:"proxyHeader,omitempty"`
43355
43356	// Request: The application data to send once the TCP connection has
43357	// been established (default value is empty). If both request and
43358	// response are empty, the connection establishment alone will indicate
43359	// health. The request data can only be ASCII.
43360	Request string `json:"request,omitempty"`
43361
43362	// Response: The bytes to match against the beginning of the response
43363	// data. If left empty (the default value), any response will indicate
43364	// health. The response data can only be ASCII.
43365	Response string `json:"response,omitempty"`
43366
43367	// ForceSendFields is a list of field names (e.g. "Port") to
43368	// unconditionally include in API requests. By default, fields with
43369	// empty or default values are omitted from API requests. However, any
43370	// non-pointer, non-interface field appearing in ForceSendFields will be
43371	// sent to the server regardless of whether the field is empty or not.
43372	// This may be used to include empty fields in Patch requests.
43373	ForceSendFields []string `json:"-"`
43374
43375	// NullFields is a list of field names (e.g. "Port") to include in API
43376	// requests with the JSON null value. By default, fields with empty
43377	// values are omitted from API requests. However, any field with an
43378	// empty value appearing in NullFields will be sent to the server as
43379	// null. It is an error if a field in this list has a non-empty value.
43380	// This may be used to include null fields in Patch requests.
43381	NullFields []string `json:"-"`
43382}
43383
43384func (s *TCPHealthCheck) MarshalJSON() ([]byte, error) {
43385	type NoMethod TCPHealthCheck
43386	raw := NoMethod(*s)
43387	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43388}
43389
43390// Tags: A set of instance tags.
43391type Tags struct {
43392	// Fingerprint: Specifies a fingerprint for this request, which is
43393	// essentially a hash of the tags' contents and used for optimistic
43394	// locking. The fingerprint is initially generated by Compute Engine and
43395	// changes after every request to modify or update tags. You must always
43396	// provide an up-to-date fingerprint hash in order to update or change
43397	// tags. To see the latest fingerprint, make get() request to the
43398	// instance.
43399	Fingerprint string `json:"fingerprint,omitempty"`
43400
43401	// Items: An array of tags. Each tag must be 1-63 characters long, and
43402	// comply with RFC1035.
43403	Items []string `json:"items,omitempty"`
43404
43405	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
43406	// unconditionally include in API requests. By default, fields with
43407	// empty or default values are omitted from API requests. However, any
43408	// non-pointer, non-interface field appearing in ForceSendFields will be
43409	// sent to the server regardless of whether the field is empty or not.
43410	// This may be used to include empty fields in Patch requests.
43411	ForceSendFields []string `json:"-"`
43412
43413	// NullFields is a list of field names (e.g. "Fingerprint") to include
43414	// in API requests with the JSON null value. By default, fields with
43415	// empty values are omitted from API requests. However, any field with
43416	// an empty value appearing in NullFields will be sent to the server as
43417	// null. It is an error if a field in this list has a non-empty value.
43418	// This may be used to include null fields in Patch requests.
43419	NullFields []string `json:"-"`
43420}
43421
43422func (s *Tags) MarshalJSON() ([]byte, error) {
43423	type NoMethod Tags
43424	raw := NoMethod(*s)
43425	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43426}
43427
43428// TargetGrpcProxy: Represents a Target gRPC Proxy resource. A target
43429// gRPC proxy is a component of load balancers intended for load
43430// balancing gRPC traffic. Only global forwarding rules with load
43431// balancing scheme INTERNAL_SELF_MANAGED can reference a target gRPC
43432// proxy. The target gRPC Proxy references a URL map that specifies how
43433// traffic is routed to gRPC backend services.
43434type TargetGrpcProxy struct {
43435	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
43436	// format.
43437	CreationTimestamp string `json:"creationTimestamp,omitempty"`
43438
43439	// Description: An optional description of this resource. Provide this
43440	// property when you create the resource.
43441	Description string `json:"description,omitempty"`
43442
43443	// Fingerprint: Fingerprint of this resource. A hash of the contents
43444	// stored in this object. This field is used in optimistic locking. This
43445	// field will be ignored when inserting a TargetGrpcProxy. An up-to-date
43446	// fingerprint must be provided in order to patch/update the
43447	// TargetGrpcProxy; otherwise, the request will fail with error 412
43448	// conditionNotMet. To see the latest fingerprint, make a get() request
43449	// to retrieve the TargetGrpcProxy.
43450	Fingerprint string `json:"fingerprint,omitempty"`
43451
43452	// Id: [Output Only] The unique identifier for the resource type. The
43453	// server generates this identifier.
43454	Id uint64 `json:"id,omitempty,string"`
43455
43456	// Kind: [Output Only] Type of the resource. Always
43457	// compute#targetGrpcProxy for target grpc proxies.
43458	Kind string `json:"kind,omitempty"`
43459
43460	// Name: Name of the resource. Provided by the client when the resource
43461	// is created. The name must be 1-63 characters long, and comply with
43462	// RFC1035. Specifically, the name must be 1-63 characters long and
43463	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
43464	// the first character must be a lowercase letter, and all following
43465	// characters must be a dash, lowercase letter, or digit, except the
43466	// last character, which cannot be a dash.
43467	Name string `json:"name,omitempty"`
43468
43469	// SelfLink: [Output Only] Server-defined URL for the resource.
43470	SelfLink string `json:"selfLink,omitempty"`
43471
43472	// SelfLinkWithId: [Output Only] Server-defined URL with id for the
43473	// resource.
43474	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
43475
43476	// UrlMap: URL to the UrlMap resource that defines the mapping from URL
43477	// to the BackendService. The protocol field in the BackendService must
43478	// be set to GRPC.
43479	UrlMap string `json:"urlMap,omitempty"`
43480
43481	// ValidateForProxyless: If true, indicates that the BackendServices
43482	// referenced by the urlMap may be accessed by gRPC applications without
43483	// using a sidecar proxy. This will enable configuration checks on
43484	// urlMap and its referenced BackendServices to not allow unsupported
43485	// features. A gRPC application must use "xds:///" scheme in the target
43486	// URI of the service it is connecting to. If false, indicates that the
43487	// BackendServices referenced by the urlMap will be accessed by gRPC
43488	// applications via a sidecar proxy. In this case, a gRPC application
43489	// must not use "xds:///" scheme in the target URI of the service it is
43490	// connecting to
43491	ValidateForProxyless bool `json:"validateForProxyless,omitempty"`
43492
43493	// ServerResponse contains the HTTP response code and headers from the
43494	// server.
43495	googleapi.ServerResponse `json:"-"`
43496
43497	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
43498	// to unconditionally include in API requests. By default, fields with
43499	// empty or default values are omitted from API requests. However, any
43500	// non-pointer, non-interface field appearing in ForceSendFields will be
43501	// sent to the server regardless of whether the field is empty or not.
43502	// This may be used to include empty fields in Patch requests.
43503	ForceSendFields []string `json:"-"`
43504
43505	// NullFields is a list of field names (e.g. "CreationTimestamp") to
43506	// include in API requests with the JSON null value. By default, fields
43507	// with empty values are omitted from API requests. However, any field
43508	// with an empty value appearing in NullFields will be sent to the
43509	// server as null. It is an error if a field in this list has a
43510	// non-empty value. This may be used to include null fields in Patch
43511	// requests.
43512	NullFields []string `json:"-"`
43513}
43514
43515func (s *TargetGrpcProxy) MarshalJSON() ([]byte, error) {
43516	type NoMethod TargetGrpcProxy
43517	raw := NoMethod(*s)
43518	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43519}
43520
43521type TargetGrpcProxyList struct {
43522	// Id: [Output Only] Unique identifier for the resource; defined by the
43523	// server.
43524	Id string `json:"id,omitempty"`
43525
43526	// Items: A list of TargetGrpcProxy resources.
43527	Items []*TargetGrpcProxy `json:"items,omitempty"`
43528
43529	// Kind: [Output Only] Type of the resource. Always
43530	// compute#targetGrpcProxy for target grpc proxies.
43531	Kind string `json:"kind,omitempty"`
43532
43533	// NextPageToken: [Output Only] This token allows you to get the next
43534	// page of results for list requests. If the number of results is larger
43535	// than maxResults, use the nextPageToken as a value for the query
43536	// parameter pageToken in the next list request. Subsequent list
43537	// requests will have their own nextPageToken to continue paging through
43538	// the results.
43539	NextPageToken string `json:"nextPageToken,omitempty"`
43540
43541	// SelfLink: [Output Only] Server-defined URL for this resource.
43542	SelfLink string `json:"selfLink,omitempty"`
43543
43544	// Warning: [Output Only] Informational warning message.
43545	Warning *TargetGrpcProxyListWarning `json:"warning,omitempty"`
43546
43547	// ServerResponse contains the HTTP response code and headers from the
43548	// server.
43549	googleapi.ServerResponse `json:"-"`
43550
43551	// ForceSendFields is a list of field names (e.g. "Id") to
43552	// unconditionally include in API requests. By default, fields with
43553	// empty or default values are omitted from API requests. However, any
43554	// non-pointer, non-interface field appearing in ForceSendFields will be
43555	// sent to the server regardless of whether the field is empty or not.
43556	// This may be used to include empty fields in Patch requests.
43557	ForceSendFields []string `json:"-"`
43558
43559	// NullFields is a list of field names (e.g. "Id") to include in API
43560	// requests with the JSON null value. By default, fields with empty
43561	// values are omitted from API requests. However, any field with an
43562	// empty value appearing in NullFields will be sent to the server as
43563	// null. It is an error if a field in this list has a non-empty value.
43564	// This may be used to include null fields in Patch requests.
43565	NullFields []string `json:"-"`
43566}
43567
43568func (s *TargetGrpcProxyList) MarshalJSON() ([]byte, error) {
43569	type NoMethod TargetGrpcProxyList
43570	raw := NoMethod(*s)
43571	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43572}
43573
43574// TargetGrpcProxyListWarning: [Output Only] Informational warning
43575// message.
43576type TargetGrpcProxyListWarning struct {
43577	// Code: [Output Only] A warning code, if applicable. For example,
43578	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43579	// the response.
43580	//
43581	// Possible values:
43582	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
43583	// changes made by a failed operation.
43584	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
43585	// created.
43586	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
43587	// resources has a type marked as deprecated
43588	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
43589	// that is larger than image size.
43590	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
43591	// resources has a type marked as experimental
43592	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
43593	// call
43594	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
43595	// overridden. Deprecated unused field.
43596	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
43597	// injected kernel, which is deprecated.
43598	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
43599	// exceedingly large number of resources
43600	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
43601	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
43602	// not assigned to an instance on the network.
43603	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
43604	// ip forward.
43605	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
43606	// refers to an instance that does not exist.
43607	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
43608	// URL refers to an instance that is not on the same network as the
43609	// route.
43610	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
43611	// have a status of RUNNING.
43612	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
43613	// continue the process despite the mentioned error.
43614	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
43615	// page.
43616	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
43617	// missing due to errors
43618	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
43619	// that requires a TOS they have not accepted.
43620	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
43621	// resource is in use.
43622	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
43623	// auto-delete could not be deleted because they were in use.
43624	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
43625	// ignored.
43626	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
43627	// instance group manager is valid as such, but its application does not
43628	// make a lot of sense, because it allows only single instance in
43629	// instance group.
43630	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
43631	// are present
43632	//   "UNREACHABLE" - A given scope cannot be reached.
43633	Code string `json:"code,omitempty"`
43634
43635	// Data: [Output Only] Metadata about this warning in key: value format.
43636	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
43637	// }
43638	Data []*TargetGrpcProxyListWarningData `json:"data,omitempty"`
43639
43640	// Message: [Output Only] A human-readable description of the warning
43641	// code.
43642	Message string `json:"message,omitempty"`
43643
43644	// ForceSendFields is a list of field names (e.g. "Code") to
43645	// unconditionally include in API requests. By default, fields with
43646	// empty or default values are omitted from API requests. However, any
43647	// non-pointer, non-interface field appearing in ForceSendFields will be
43648	// sent to the server regardless of whether the field is empty or not.
43649	// This may be used to include empty fields in Patch requests.
43650	ForceSendFields []string `json:"-"`
43651
43652	// NullFields is a list of field names (e.g. "Code") to include in API
43653	// requests with the JSON null value. By default, fields with empty
43654	// values are omitted from API requests. However, any field with an
43655	// empty value appearing in NullFields will be sent to the server as
43656	// null. It is an error if a field in this list has a non-empty value.
43657	// This may be used to include null fields in Patch requests.
43658	NullFields []string `json:"-"`
43659}
43660
43661func (s *TargetGrpcProxyListWarning) MarshalJSON() ([]byte, error) {
43662	type NoMethod TargetGrpcProxyListWarning
43663	raw := NoMethod(*s)
43664	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43665}
43666
43667type TargetGrpcProxyListWarningData struct {
43668	// Key: [Output Only] A key that provides more detail on the warning
43669	// being returned. For example, for warnings where there are no results
43670	// in a list request for a particular zone, this key might be scope and
43671	// the key value might be the zone name. Other examples might be a key
43672	// indicating a deprecated resource and a suggested replacement, or a
43673	// warning about invalid network settings (for example, if an instance
43674	// attempts to perform IP forwarding but is not enabled for IP
43675	// forwarding).
43676	Key string `json:"key,omitempty"`
43677
43678	// Value: [Output Only] A warning data value corresponding to the key.
43679	Value string `json:"value,omitempty"`
43680
43681	// ForceSendFields is a list of field names (e.g. "Key") to
43682	// unconditionally include in API requests. By default, fields with
43683	// empty or default values are omitted from API requests. However, any
43684	// non-pointer, non-interface field appearing in ForceSendFields will be
43685	// sent to the server regardless of whether the field is empty or not.
43686	// This may be used to include empty fields in Patch requests.
43687	ForceSendFields []string `json:"-"`
43688
43689	// NullFields is a list of field names (e.g. "Key") to include in API
43690	// requests with the JSON null value. By default, fields with empty
43691	// values are omitted from API requests. However, any field with an
43692	// empty value appearing in NullFields will be sent to the server as
43693	// null. It is an error if a field in this list has a non-empty value.
43694	// This may be used to include null fields in Patch requests.
43695	NullFields []string `json:"-"`
43696}
43697
43698func (s *TargetGrpcProxyListWarningData) MarshalJSON() ([]byte, error) {
43699	type NoMethod TargetGrpcProxyListWarningData
43700	raw := NoMethod(*s)
43701	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43702}
43703
43704type TargetHttpProxiesScopedList struct {
43705	// TargetHttpProxies: A list of TargetHttpProxies contained in this
43706	// scope.
43707	TargetHttpProxies []*TargetHttpProxy `json:"targetHttpProxies,omitempty"`
43708
43709	// Warning: Informational warning which replaces the list of backend
43710	// services when the list is empty.
43711	Warning *TargetHttpProxiesScopedListWarning `json:"warning,omitempty"`
43712
43713	// ForceSendFields is a list of field names (e.g. "TargetHttpProxies")
43714	// to unconditionally include in API requests. By default, fields with
43715	// empty or default values are omitted from API requests. However, any
43716	// non-pointer, non-interface field appearing in ForceSendFields will be
43717	// sent to the server regardless of whether the field is empty or not.
43718	// This may be used to include empty fields in Patch requests.
43719	ForceSendFields []string `json:"-"`
43720
43721	// NullFields is a list of field names (e.g. "TargetHttpProxies") to
43722	// include in API requests with the JSON null value. By default, fields
43723	// with empty values are omitted from API requests. However, any field
43724	// with an empty value appearing in NullFields will be sent to the
43725	// server as null. It is an error if a field in this list has a
43726	// non-empty value. This may be used to include null fields in Patch
43727	// requests.
43728	NullFields []string `json:"-"`
43729}
43730
43731func (s *TargetHttpProxiesScopedList) MarshalJSON() ([]byte, error) {
43732	type NoMethod TargetHttpProxiesScopedList
43733	raw := NoMethod(*s)
43734	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43735}
43736
43737// TargetHttpProxiesScopedListWarning: Informational warning which
43738// replaces the list of backend services when the list is empty.
43739type TargetHttpProxiesScopedListWarning struct {
43740	// Code: [Output Only] A warning code, if applicable. For example,
43741	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43742	// the response.
43743	//
43744	// Possible values:
43745	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
43746	// changes made by a failed operation.
43747	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
43748	// created.
43749	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
43750	// resources has a type marked as deprecated
43751	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
43752	// that is larger than image size.
43753	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
43754	// resources has a type marked as experimental
43755	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
43756	// call
43757	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
43758	// overridden. Deprecated unused field.
43759	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
43760	// injected kernel, which is deprecated.
43761	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
43762	// exceedingly large number of resources
43763	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
43764	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
43765	// not assigned to an instance on the network.
43766	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
43767	// ip forward.
43768	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
43769	// refers to an instance that does not exist.
43770	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
43771	// URL refers to an instance that is not on the same network as the
43772	// route.
43773	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
43774	// have a status of RUNNING.
43775	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
43776	// continue the process despite the mentioned error.
43777	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
43778	// page.
43779	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
43780	// missing due to errors
43781	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
43782	// that requires a TOS they have not accepted.
43783	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
43784	// resource is in use.
43785	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
43786	// auto-delete could not be deleted because they were in use.
43787	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
43788	// ignored.
43789	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
43790	// instance group manager is valid as such, but its application does not
43791	// make a lot of sense, because it allows only single instance in
43792	// instance group.
43793	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
43794	// are present
43795	//   "UNREACHABLE" - A given scope cannot be reached.
43796	Code string `json:"code,omitempty"`
43797
43798	// Data: [Output Only] Metadata about this warning in key: value format.
43799	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
43800	// }
43801	Data []*TargetHttpProxiesScopedListWarningData `json:"data,omitempty"`
43802
43803	// Message: [Output Only] A human-readable description of the warning
43804	// code.
43805	Message string `json:"message,omitempty"`
43806
43807	// ForceSendFields is a list of field names (e.g. "Code") to
43808	// unconditionally include in API requests. By default, fields with
43809	// empty or default values are omitted from API requests. However, any
43810	// non-pointer, non-interface field appearing in ForceSendFields will be
43811	// sent to the server regardless of whether the field is empty or not.
43812	// This may be used to include empty fields in Patch requests.
43813	ForceSendFields []string `json:"-"`
43814
43815	// NullFields is a list of field names (e.g. "Code") to include in API
43816	// requests with the JSON null value. By default, fields with empty
43817	// values are omitted from API requests. However, any field with an
43818	// empty value appearing in NullFields will be sent to the server as
43819	// null. It is an error if a field in this list has a non-empty value.
43820	// This may be used to include null fields in Patch requests.
43821	NullFields []string `json:"-"`
43822}
43823
43824func (s *TargetHttpProxiesScopedListWarning) MarshalJSON() ([]byte, error) {
43825	type NoMethod TargetHttpProxiesScopedListWarning
43826	raw := NoMethod(*s)
43827	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43828}
43829
43830type TargetHttpProxiesScopedListWarningData struct {
43831	// Key: [Output Only] A key that provides more detail on the warning
43832	// being returned. For example, for warnings where there are no results
43833	// in a list request for a particular zone, this key might be scope and
43834	// the key value might be the zone name. Other examples might be a key
43835	// indicating a deprecated resource and a suggested replacement, or a
43836	// warning about invalid network settings (for example, if an instance
43837	// attempts to perform IP forwarding but is not enabled for IP
43838	// forwarding).
43839	Key string `json:"key,omitempty"`
43840
43841	// Value: [Output Only] A warning data value corresponding to the key.
43842	Value string `json:"value,omitempty"`
43843
43844	// ForceSendFields is a list of field names (e.g. "Key") to
43845	// unconditionally include in API requests. By default, fields with
43846	// empty or default values are omitted from API requests. However, any
43847	// non-pointer, non-interface field appearing in ForceSendFields will be
43848	// sent to the server regardless of whether the field is empty or not.
43849	// This may be used to include empty fields in Patch requests.
43850	ForceSendFields []string `json:"-"`
43851
43852	// NullFields is a list of field names (e.g. "Key") to include in API
43853	// requests with the JSON null value. By default, fields with empty
43854	// values are omitted from API requests. However, any field with an
43855	// empty value appearing in NullFields will be sent to the server as
43856	// null. It is an error if a field in this list has a non-empty value.
43857	// This may be used to include null fields in Patch requests.
43858	NullFields []string `json:"-"`
43859}
43860
43861func (s *TargetHttpProxiesScopedListWarningData) MarshalJSON() ([]byte, error) {
43862	type NoMethod TargetHttpProxiesScopedListWarningData
43863	raw := NoMethod(*s)
43864	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43865}
43866
43867// TargetHttpProxy: Represents a Target HTTP Proxy resource. Google
43868// Compute Engine has two Target HTTP Proxy resources: * Global
43869// (/compute/docs/reference/rest/v1/targetHttpProxies) * Regional
43870// (/compute/docs/reference/rest/v1/regionTargetHttpProxies) A target
43871// HTTP proxy is a component of GCP HTTP load balancers. *
43872// targetHttpProxies are used by external HTTP load balancers and
43873// Traffic Director. * regionTargetHttpProxies are used by internal HTTP
43874// load balancers. Forwarding rules reference a target HTTP proxy, and
43875// the target proxy then references a URL map. For more information,
43876// read Using Target Proxies and Forwarding rule concepts.
43877type TargetHttpProxy struct {
43878	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
43879	// format.
43880	CreationTimestamp string `json:"creationTimestamp,omitempty"`
43881
43882	// Description: An optional description of this resource. Provide this
43883	// property when you create the resource.
43884	Description string `json:"description,omitempty"`
43885
43886	// Fingerprint: Fingerprint of this resource. A hash of the contents
43887	// stored in this object. This field is used in optimistic locking. This
43888	// field will be ignored when inserting a TargetHttpProxy. An up-to-date
43889	// fingerprint must be provided in order to patch/update the
43890	// TargetHttpProxy; otherwise, the request will fail with error 412
43891	// conditionNotMet. To see the latest fingerprint, make a get() request
43892	// to retrieve the TargetHttpProxy.
43893	Fingerprint string `json:"fingerprint,omitempty"`
43894
43895	// Id: [Output Only] The unique identifier for the resource. This
43896	// identifier is defined by the server.
43897	Id uint64 `json:"id,omitempty,string"`
43898
43899	// Kind: [Output Only] Type of resource. Always compute#targetHttpProxy
43900	// for target HTTP proxies.
43901	Kind string `json:"kind,omitempty"`
43902
43903	// Name: Name of the resource. Provided by the client when the resource
43904	// is created. The name must be 1-63 characters long, and comply with
43905	// RFC1035. Specifically, the name must be 1-63 characters long and
43906	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
43907	// the first character must be a lowercase letter, and all following
43908	// characters must be a dash, lowercase letter, or digit, except the
43909	// last character, which cannot be a dash.
43910	Name string `json:"name,omitempty"`
43911
43912	// ProxyBind: This field only applies when the forwarding rule that
43913	// references this target proxy has a loadBalancingScheme set to
43914	// INTERNAL_SELF_MANAGED. When this field is set to true, Envoy proxies
43915	// set up inbound traffic interception and bind to the IP address and
43916	// port specified in the forwarding rule. This is generally useful when
43917	// using Traffic Director to configure Envoy as a gateway or middle
43918	// proxy (in other words, not a sidecar proxy). The Envoy proxy listens
43919	// for inbound requests and handles requests when it receives them. The
43920	// default is false.
43921	ProxyBind bool `json:"proxyBind,omitempty"`
43922
43923	// Region: [Output Only] URL of the region where the regional Target
43924	// HTTP Proxy resides. This field is not applicable to global Target
43925	// HTTP Proxies.
43926	Region string `json:"region,omitempty"`
43927
43928	// SelfLink: [Output Only] Server-defined URL for the resource.
43929	SelfLink string `json:"selfLink,omitempty"`
43930
43931	// UrlMap: URL to the UrlMap resource that defines the mapping from URL
43932	// to the BackendService.
43933	UrlMap string `json:"urlMap,omitempty"`
43934
43935	// ServerResponse contains the HTTP response code and headers from the
43936	// server.
43937	googleapi.ServerResponse `json:"-"`
43938
43939	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
43940	// to unconditionally include in API requests. By default, fields with
43941	// empty or default values are omitted from API requests. However, any
43942	// non-pointer, non-interface field appearing in ForceSendFields will be
43943	// sent to the server regardless of whether the field is empty or not.
43944	// This may be used to include empty fields in Patch requests.
43945	ForceSendFields []string `json:"-"`
43946
43947	// NullFields is a list of field names (e.g. "CreationTimestamp") to
43948	// include in API requests with the JSON null value. By default, fields
43949	// with empty values are omitted from API requests. However, any field
43950	// with an empty value appearing in NullFields will be sent to the
43951	// server as null. It is an error if a field in this list has a
43952	// non-empty value. This may be used to include null fields in Patch
43953	// requests.
43954	NullFields []string `json:"-"`
43955}
43956
43957func (s *TargetHttpProxy) MarshalJSON() ([]byte, error) {
43958	type NoMethod TargetHttpProxy
43959	raw := NoMethod(*s)
43960	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43961}
43962
43963type TargetHttpProxyAggregatedList struct {
43964	// Id: [Output Only] Unique identifier for the resource; defined by the
43965	// server.
43966	Id string `json:"id,omitempty"`
43967
43968	// Items: A list of TargetHttpProxiesScopedList resources.
43969	Items map[string]TargetHttpProxiesScopedList `json:"items,omitempty"`
43970
43971	// Kind: [Output Only] Type of resource. Always
43972	// compute#targetHttpProxyAggregatedList for lists of Target HTTP
43973	// Proxies.
43974	Kind string `json:"kind,omitempty"`
43975
43976	// NextPageToken: [Output Only] This token allows you to get the next
43977	// page of results for list requests. If the number of results is larger
43978	// than maxResults, use the nextPageToken as a value for the query
43979	// parameter pageToken in the next list request. Subsequent list
43980	// requests will have their own nextPageToken to continue paging through
43981	// the results.
43982	NextPageToken string `json:"nextPageToken,omitempty"`
43983
43984	// SelfLink: [Output Only] Server-defined URL for this resource.
43985	SelfLink string `json:"selfLink,omitempty"`
43986
43987	// Unreachables: [Output Only] Unreachable resources.
43988	Unreachables []string `json:"unreachables,omitempty"`
43989
43990	// ServerResponse contains the HTTP response code and headers from the
43991	// server.
43992	googleapi.ServerResponse `json:"-"`
43993
43994	// ForceSendFields is a list of field names (e.g. "Id") to
43995	// unconditionally include in API requests. By default, fields with
43996	// empty or default values are omitted from API requests. However, any
43997	// non-pointer, non-interface field appearing in ForceSendFields will be
43998	// sent to the server regardless of whether the field is empty or not.
43999	// This may be used to include empty fields in Patch requests.
44000	ForceSendFields []string `json:"-"`
44001
44002	// NullFields is a list of field names (e.g. "Id") to include in API
44003	// requests with the JSON null value. By default, fields with empty
44004	// values are omitted from API requests. However, any field with an
44005	// empty value appearing in NullFields will be sent to the server as
44006	// null. It is an error if a field in this list has a non-empty value.
44007	// This may be used to include null fields in Patch requests.
44008	NullFields []string `json:"-"`
44009}
44010
44011func (s *TargetHttpProxyAggregatedList) MarshalJSON() ([]byte, error) {
44012	type NoMethod TargetHttpProxyAggregatedList
44013	raw := NoMethod(*s)
44014	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44015}
44016
44017// TargetHttpProxyList: A list of TargetHttpProxy resources.
44018type TargetHttpProxyList struct {
44019	// Id: [Output Only] Unique identifier for the resource; defined by the
44020	// server.
44021	Id string `json:"id,omitempty"`
44022
44023	// Items: A list of TargetHttpProxy resources.
44024	Items []*TargetHttpProxy `json:"items,omitempty"`
44025
44026	// Kind: Type of resource. Always compute#targetHttpProxyList for lists
44027	// of target HTTP proxies.
44028	Kind string `json:"kind,omitempty"`
44029
44030	// NextPageToken: [Output Only] This token allows you to get the next
44031	// page of results for list requests. If the number of results is larger
44032	// than maxResults, use the nextPageToken as a value for the query
44033	// parameter pageToken in the next list request. Subsequent list
44034	// requests will have their own nextPageToken to continue paging through
44035	// the results.
44036	NextPageToken string `json:"nextPageToken,omitempty"`
44037
44038	// SelfLink: [Output Only] Server-defined URL for this resource.
44039	SelfLink string `json:"selfLink,omitempty"`
44040
44041	// Warning: [Output Only] Informational warning message.
44042	Warning *TargetHttpProxyListWarning `json:"warning,omitempty"`
44043
44044	// ServerResponse contains the HTTP response code and headers from the
44045	// server.
44046	googleapi.ServerResponse `json:"-"`
44047
44048	// ForceSendFields is a list of field names (e.g. "Id") to
44049	// unconditionally include in API requests. By default, fields with
44050	// empty or default values are omitted from API requests. However, any
44051	// non-pointer, non-interface field appearing in ForceSendFields will be
44052	// sent to the server regardless of whether the field is empty or not.
44053	// This may be used to include empty fields in Patch requests.
44054	ForceSendFields []string `json:"-"`
44055
44056	// NullFields is a list of field names (e.g. "Id") to include in API
44057	// requests with the JSON null value. By default, fields with empty
44058	// values are omitted from API requests. However, any field with an
44059	// empty value appearing in NullFields will be sent to the server as
44060	// null. It is an error if a field in this list has a non-empty value.
44061	// This may be used to include null fields in Patch requests.
44062	NullFields []string `json:"-"`
44063}
44064
44065func (s *TargetHttpProxyList) MarshalJSON() ([]byte, error) {
44066	type NoMethod TargetHttpProxyList
44067	raw := NoMethod(*s)
44068	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44069}
44070
44071// TargetHttpProxyListWarning: [Output Only] Informational warning
44072// message.
44073type TargetHttpProxyListWarning struct {
44074	// Code: [Output Only] A warning code, if applicable. For example,
44075	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44076	// the response.
44077	//
44078	// Possible values:
44079	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
44080	// changes made by a failed operation.
44081	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
44082	// created.
44083	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
44084	// resources has a type marked as deprecated
44085	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
44086	// that is larger than image size.
44087	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
44088	// resources has a type marked as experimental
44089	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
44090	// call
44091	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
44092	// overridden. Deprecated unused field.
44093	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
44094	// injected kernel, which is deprecated.
44095	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
44096	// exceedingly large number of resources
44097	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
44098	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
44099	// not assigned to an instance on the network.
44100	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
44101	// ip forward.
44102	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
44103	// refers to an instance that does not exist.
44104	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
44105	// URL refers to an instance that is not on the same network as the
44106	// route.
44107	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
44108	// have a status of RUNNING.
44109	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
44110	// continue the process despite the mentioned error.
44111	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
44112	// page.
44113	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
44114	// missing due to errors
44115	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
44116	// that requires a TOS they have not accepted.
44117	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
44118	// resource is in use.
44119	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
44120	// auto-delete could not be deleted because they were in use.
44121	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
44122	// ignored.
44123	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
44124	// instance group manager is valid as such, but its application does not
44125	// make a lot of sense, because it allows only single instance in
44126	// instance group.
44127	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
44128	// are present
44129	//   "UNREACHABLE" - A given scope cannot be reached.
44130	Code string `json:"code,omitempty"`
44131
44132	// Data: [Output Only] Metadata about this warning in key: value format.
44133	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
44134	// }
44135	Data []*TargetHttpProxyListWarningData `json:"data,omitempty"`
44136
44137	// Message: [Output Only] A human-readable description of the warning
44138	// code.
44139	Message string `json:"message,omitempty"`
44140
44141	// ForceSendFields is a list of field names (e.g. "Code") to
44142	// unconditionally include in API requests. By default, fields with
44143	// empty or default values are omitted from API requests. However, any
44144	// non-pointer, non-interface field appearing in ForceSendFields will be
44145	// sent to the server regardless of whether the field is empty or not.
44146	// This may be used to include empty fields in Patch requests.
44147	ForceSendFields []string `json:"-"`
44148
44149	// NullFields is a list of field names (e.g. "Code") to include in API
44150	// requests with the JSON null value. By default, fields with empty
44151	// values are omitted from API requests. However, any field with an
44152	// empty value appearing in NullFields will be sent to the server as
44153	// null. It is an error if a field in this list has a non-empty value.
44154	// This may be used to include null fields in Patch requests.
44155	NullFields []string `json:"-"`
44156}
44157
44158func (s *TargetHttpProxyListWarning) MarshalJSON() ([]byte, error) {
44159	type NoMethod TargetHttpProxyListWarning
44160	raw := NoMethod(*s)
44161	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44162}
44163
44164type TargetHttpProxyListWarningData struct {
44165	// Key: [Output Only] A key that provides more detail on the warning
44166	// being returned. For example, for warnings where there are no results
44167	// in a list request for a particular zone, this key might be scope and
44168	// the key value might be the zone name. Other examples might be a key
44169	// indicating a deprecated resource and a suggested replacement, or a
44170	// warning about invalid network settings (for example, if an instance
44171	// attempts to perform IP forwarding but is not enabled for IP
44172	// forwarding).
44173	Key string `json:"key,omitempty"`
44174
44175	// Value: [Output Only] A warning data value corresponding to the key.
44176	Value string `json:"value,omitempty"`
44177
44178	// ForceSendFields is a list of field names (e.g. "Key") to
44179	// unconditionally include in API requests. By default, fields with
44180	// empty or default values are omitted from API requests. However, any
44181	// non-pointer, non-interface field appearing in ForceSendFields will be
44182	// sent to the server regardless of whether the field is empty or not.
44183	// This may be used to include empty fields in Patch requests.
44184	ForceSendFields []string `json:"-"`
44185
44186	// NullFields is a list of field names (e.g. "Key") to include in API
44187	// requests with the JSON null value. By default, fields with empty
44188	// values are omitted from API requests. However, any field with an
44189	// empty value appearing in NullFields will be sent to the server as
44190	// null. It is an error if a field in this list has a non-empty value.
44191	// This may be used to include null fields in Patch requests.
44192	NullFields []string `json:"-"`
44193}
44194
44195func (s *TargetHttpProxyListWarningData) MarshalJSON() ([]byte, error) {
44196	type NoMethod TargetHttpProxyListWarningData
44197	raw := NoMethod(*s)
44198	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44199}
44200
44201type TargetHttpsProxiesScopedList struct {
44202	// TargetHttpsProxies: A list of TargetHttpsProxies contained in this
44203	// scope.
44204	TargetHttpsProxies []*TargetHttpsProxy `json:"targetHttpsProxies,omitempty"`
44205
44206	// Warning: Informational warning which replaces the list of backend
44207	// services when the list is empty.
44208	Warning *TargetHttpsProxiesScopedListWarning `json:"warning,omitempty"`
44209
44210	// ForceSendFields is a list of field names (e.g. "TargetHttpsProxies")
44211	// to unconditionally include in API requests. By default, fields with
44212	// empty or default values are omitted from API requests. However, any
44213	// non-pointer, non-interface field appearing in ForceSendFields will be
44214	// sent to the server regardless of whether the field is empty or not.
44215	// This may be used to include empty fields in Patch requests.
44216	ForceSendFields []string `json:"-"`
44217
44218	// NullFields is a list of field names (e.g. "TargetHttpsProxies") to
44219	// include in API requests with the JSON null value. By default, fields
44220	// with empty values are omitted from API requests. However, any field
44221	// with an empty value appearing in NullFields will be sent to the
44222	// server as null. It is an error if a field in this list has a
44223	// non-empty value. This may be used to include null fields in Patch
44224	// requests.
44225	NullFields []string `json:"-"`
44226}
44227
44228func (s *TargetHttpsProxiesScopedList) MarshalJSON() ([]byte, error) {
44229	type NoMethod TargetHttpsProxiesScopedList
44230	raw := NoMethod(*s)
44231	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44232}
44233
44234// TargetHttpsProxiesScopedListWarning: Informational warning which
44235// replaces the list of backend services when the list is empty.
44236type TargetHttpsProxiesScopedListWarning struct {
44237	// Code: [Output Only] A warning code, if applicable. For example,
44238	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44239	// the response.
44240	//
44241	// Possible values:
44242	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
44243	// changes made by a failed operation.
44244	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
44245	// created.
44246	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
44247	// resources has a type marked as deprecated
44248	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
44249	// that is larger than image size.
44250	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
44251	// resources has a type marked as experimental
44252	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
44253	// call
44254	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
44255	// overridden. Deprecated unused field.
44256	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
44257	// injected kernel, which is deprecated.
44258	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
44259	// exceedingly large number of resources
44260	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
44261	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
44262	// not assigned to an instance on the network.
44263	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
44264	// ip forward.
44265	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
44266	// refers to an instance that does not exist.
44267	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
44268	// URL refers to an instance that is not on the same network as the
44269	// route.
44270	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
44271	// have a status of RUNNING.
44272	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
44273	// continue the process despite the mentioned error.
44274	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
44275	// page.
44276	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
44277	// missing due to errors
44278	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
44279	// that requires a TOS they have not accepted.
44280	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
44281	// resource is in use.
44282	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
44283	// auto-delete could not be deleted because they were in use.
44284	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
44285	// ignored.
44286	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
44287	// instance group manager is valid as such, but its application does not
44288	// make a lot of sense, because it allows only single instance in
44289	// instance group.
44290	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
44291	// are present
44292	//   "UNREACHABLE" - A given scope cannot be reached.
44293	Code string `json:"code,omitempty"`
44294
44295	// Data: [Output Only] Metadata about this warning in key: value format.
44296	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
44297	// }
44298	Data []*TargetHttpsProxiesScopedListWarningData `json:"data,omitempty"`
44299
44300	// Message: [Output Only] A human-readable description of the warning
44301	// code.
44302	Message string `json:"message,omitempty"`
44303
44304	// ForceSendFields is a list of field names (e.g. "Code") to
44305	// unconditionally include in API requests. By default, fields with
44306	// empty or default values are omitted from API requests. However, any
44307	// non-pointer, non-interface field appearing in ForceSendFields will be
44308	// sent to the server regardless of whether the field is empty or not.
44309	// This may be used to include empty fields in Patch requests.
44310	ForceSendFields []string `json:"-"`
44311
44312	// NullFields is a list of field names (e.g. "Code") to include in API
44313	// requests with the JSON null value. By default, fields with empty
44314	// values are omitted from API requests. However, any field with an
44315	// empty value appearing in NullFields will be sent to the server as
44316	// null. It is an error if a field in this list has a non-empty value.
44317	// This may be used to include null fields in Patch requests.
44318	NullFields []string `json:"-"`
44319}
44320
44321func (s *TargetHttpsProxiesScopedListWarning) MarshalJSON() ([]byte, error) {
44322	type NoMethod TargetHttpsProxiesScopedListWarning
44323	raw := NoMethod(*s)
44324	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44325}
44326
44327type TargetHttpsProxiesScopedListWarningData struct {
44328	// Key: [Output Only] A key that provides more detail on the warning
44329	// being returned. For example, for warnings where there are no results
44330	// in a list request for a particular zone, this key might be scope and
44331	// the key value might be the zone name. Other examples might be a key
44332	// indicating a deprecated resource and a suggested replacement, or a
44333	// warning about invalid network settings (for example, if an instance
44334	// attempts to perform IP forwarding but is not enabled for IP
44335	// forwarding).
44336	Key string `json:"key,omitempty"`
44337
44338	// Value: [Output Only] A warning data value corresponding to the key.
44339	Value string `json:"value,omitempty"`
44340
44341	// ForceSendFields is a list of field names (e.g. "Key") to
44342	// unconditionally include in API requests. By default, fields with
44343	// empty or default values are omitted from API requests. However, any
44344	// non-pointer, non-interface field appearing in ForceSendFields will be
44345	// sent to the server regardless of whether the field is empty or not.
44346	// This may be used to include empty fields in Patch requests.
44347	ForceSendFields []string `json:"-"`
44348
44349	// NullFields is a list of field names (e.g. "Key") to include in API
44350	// requests with the JSON null value. By default, fields with empty
44351	// values are omitted from API requests. However, any field with an
44352	// empty value appearing in NullFields will be sent to the server as
44353	// null. It is an error if a field in this list has a non-empty value.
44354	// This may be used to include null fields in Patch requests.
44355	NullFields []string `json:"-"`
44356}
44357
44358func (s *TargetHttpsProxiesScopedListWarningData) MarshalJSON() ([]byte, error) {
44359	type NoMethod TargetHttpsProxiesScopedListWarningData
44360	raw := NoMethod(*s)
44361	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44362}
44363
44364type TargetHttpsProxiesSetQuicOverrideRequest struct {
44365	// QuicOverride: QUIC policy for the TargetHttpsProxy resource.
44366	//
44367	// Possible values:
44368	//   "DISABLE" - The load balancer will not attempt to negotiate QUIC
44369	// with clients.
44370	//   "ENABLE" - The load balancer will attempt to negotiate QUIC with
44371	// clients.
44372	//   "NONE" - No overrides to the default QUIC policy. This option is
44373	// implicit if no QUIC override has been specified in the request.
44374	QuicOverride string `json:"quicOverride,omitempty"`
44375
44376	// ForceSendFields is a list of field names (e.g. "QuicOverride") to
44377	// unconditionally include in API requests. By default, fields with
44378	// empty or default values are omitted from API requests. However, any
44379	// non-pointer, non-interface field appearing in ForceSendFields will be
44380	// sent to the server regardless of whether the field is empty or not.
44381	// This may be used to include empty fields in Patch requests.
44382	ForceSendFields []string `json:"-"`
44383
44384	// NullFields is a list of field names (e.g. "QuicOverride") to include
44385	// in API requests with the JSON null value. By default, fields with
44386	// empty values are omitted from API requests. However, any field with
44387	// an empty value appearing in NullFields will be sent to the server as
44388	// null. It is an error if a field in this list has a non-empty value.
44389	// This may be used to include null fields in Patch requests.
44390	NullFields []string `json:"-"`
44391}
44392
44393func (s *TargetHttpsProxiesSetQuicOverrideRequest) MarshalJSON() ([]byte, error) {
44394	type NoMethod TargetHttpsProxiesSetQuicOverrideRequest
44395	raw := NoMethod(*s)
44396	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44397}
44398
44399type TargetHttpsProxiesSetSslCertificatesRequest struct {
44400	// SslCertificates: New set of SslCertificate resources to associate
44401	// with this TargetHttpsProxy resource. At least one SSL certificate
44402	// must be specified. Currently, you may specify up to 15 SSL
44403	// certificates.
44404	SslCertificates []string `json:"sslCertificates,omitempty"`
44405
44406	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
44407	// unconditionally include in API requests. By default, fields with
44408	// empty or default values are omitted from API requests. However, any
44409	// non-pointer, non-interface field appearing in ForceSendFields will be
44410	// sent to the server regardless of whether the field is empty or not.
44411	// This may be used to include empty fields in Patch requests.
44412	ForceSendFields []string `json:"-"`
44413
44414	// NullFields is a list of field names (e.g. "SslCertificates") to
44415	// include in API requests with the JSON null value. By default, fields
44416	// with empty values are omitted from API requests. However, any field
44417	// with an empty value appearing in NullFields will be sent to the
44418	// server as null. It is an error if a field in this list has a
44419	// non-empty value. This may be used to include null fields in Patch
44420	// requests.
44421	NullFields []string `json:"-"`
44422}
44423
44424func (s *TargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
44425	type NoMethod TargetHttpsProxiesSetSslCertificatesRequest
44426	raw := NoMethod(*s)
44427	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44428}
44429
44430// TargetHttpsProxy: Represents a Target HTTPS Proxy resource. Google
44431// Compute Engine has two Target HTTPS Proxy resources: * Global
44432// (/compute/docs/reference/rest/v1/targetHttpsProxies) * Regional
44433// (/compute/docs/reference/rest/v1/regionTargetHttpsProxies) A target
44434// HTTPS proxy is a component of GCP HTTPS load balancers. *
44435// targetHttpsProxies are used by external HTTPS load balancers. *
44436// regionTargetHttpsProxies are used by internal HTTPS load balancers.
44437// Forwarding rules reference a target HTTPS proxy, and the target proxy
44438// then references a URL map. For more information, read Using Target
44439// Proxies and Forwarding rule concepts.
44440type TargetHttpsProxy struct {
44441	// AuthorizationPolicy: Optional. A URL referring to a
44442	// networksecurity.AuthorizationPolicy resource that describes how the
44443	// proxy should authorize inbound traffic. If left blank, access will
44444	// not be restricted by an authorization policy. Refer to the
44445	// AuthorizationPolicy resource for additional details.
44446	// authorizationPolicy only applies to a global TargetHttpsProxy
44447	// attached to globalForwardingRules with the loadBalancingScheme set to
44448	// INTERNAL_SELF_MANAGED. Note: This field currently has no impact.
44449	AuthorizationPolicy string `json:"authorizationPolicy,omitempty"`
44450
44451	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
44452	// format.
44453	CreationTimestamp string `json:"creationTimestamp,omitempty"`
44454
44455	// Description: An optional description of this resource. Provide this
44456	// property when you create the resource.
44457	Description string `json:"description,omitempty"`
44458
44459	// Fingerprint: Fingerprint of this resource. A hash of the contents
44460	// stored in this object. This field is used in optimistic locking. This
44461	// field will be ignored when inserting a TargetHttpsProxy. An
44462	// up-to-date fingerprint must be provided in order to patch the
44463	// TargetHttpsProxy; otherwise, the request will fail with error 412
44464	// conditionNotMet. To see the latest fingerprint, make a get() request
44465	// to retrieve the TargetHttpsProxy.
44466	Fingerprint string `json:"fingerprint,omitempty"`
44467
44468	// Id: [Output Only] The unique identifier for the resource. This
44469	// identifier is defined by the server.
44470	Id uint64 `json:"id,omitempty,string"`
44471
44472	// Kind: [Output Only] Type of resource. Always compute#targetHttpsProxy
44473	// for target HTTPS proxies.
44474	Kind string `json:"kind,omitempty"`
44475
44476	// Name: Name of the resource. Provided by the client when the resource
44477	// is created. The name must be 1-63 characters long, and comply with
44478	// RFC1035. Specifically, the name must be 1-63 characters long and
44479	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
44480	// the first character must be a lowercase letter, and all following
44481	// characters must be a dash, lowercase letter, or digit, except the
44482	// last character, which cannot be a dash.
44483	Name string `json:"name,omitempty"`
44484
44485	// ProxyBind: This field only applies when the forwarding rule that
44486	// references this target proxy has a loadBalancingScheme set to
44487	// INTERNAL_SELF_MANAGED. When this field is set to true, Envoy proxies
44488	// set up inbound traffic interception and bind to the IP address and
44489	// port specified in the forwarding rule. This is generally useful when
44490	// using Traffic Director to configure Envoy as a gateway or middle
44491	// proxy (in other words, not a sidecar proxy). The Envoy proxy listens
44492	// for inbound requests and handles requests when it receives them. The
44493	// default is false.
44494	ProxyBind bool `json:"proxyBind,omitempty"`
44495
44496	// QuicOverride: Specifies the QUIC override policy for this
44497	// TargetHttpsProxy resource. This setting determines whether the load
44498	// balancer attempts to negotiate QUIC with clients. You can specify
44499	// NONE, ENABLE, or DISABLE. - When quic-override is set to NONE, Google
44500	// manages whether QUIC is used. - When quic-override is set to ENABLE,
44501	// the load balancer uses QUIC when possible. - When quic-override is
44502	// set to DISABLE, the load balancer doesn't use QUIC. - If the
44503	// quic-override flag is not specified, NONE is implied.
44504	//
44505	// Possible values:
44506	//   "DISABLE" - The load balancer will not attempt to negotiate QUIC
44507	// with clients.
44508	//   "ENABLE" - The load balancer will attempt to negotiate QUIC with
44509	// clients.
44510	//   "NONE" - No overrides to the default QUIC policy. This option is
44511	// implicit if no QUIC override has been specified in the request.
44512	QuicOverride string `json:"quicOverride,omitempty"`
44513
44514	// Region: [Output Only] URL of the region where the regional
44515	// TargetHttpsProxy resides. This field is not applicable to global
44516	// TargetHttpsProxies.
44517	Region string `json:"region,omitempty"`
44518
44519	// SelfLink: [Output Only] Server-defined URL for the resource.
44520	SelfLink string `json:"selfLink,omitempty"`
44521
44522	// ServerTlsPolicy: Optional. A URL referring to a
44523	// networksecurity.ServerTlsPolicy resource that describes how the proxy
44524	// should authenticate inbound traffic. serverTlsPolicy only applies to
44525	// a global TargetHttpsProxy attached to globalForwardingRules with the
44526	// loadBalancingScheme set to INTERNAL_SELF_MANAGED. If left blank,
44527	// communications are not encrypted. Note: This field currently has no
44528	// impact.
44529	ServerTlsPolicy string `json:"serverTlsPolicy,omitempty"`
44530
44531	// SslCertificates: URLs to SslCertificate resources that are used to
44532	// authenticate connections between users and the load balancer. At
44533	// least one SSL certificate must be specified. Currently, you may
44534	// specify up to 15 SSL certificates. sslCertificates do not apply when
44535	// the load balancing scheme is set to INTERNAL_SELF_MANAGED.
44536	SslCertificates []string `json:"sslCertificates,omitempty"`
44537
44538	// SslPolicy: URL of SslPolicy resource that will be associated with the
44539	// TargetHttpsProxy resource. If not set, the TargetHttpsProxy resource
44540	// has no SSL policy configured.
44541	SslPolicy string `json:"sslPolicy,omitempty"`
44542
44543	// UrlMap: A fully-qualified or valid partial URL to the UrlMap resource
44544	// that defines the mapping from URL to the BackendService. For example,
44545	// the following are all valid URLs for specifying a URL map: -
44546	// https://www.googleapis.compute/v1/projects/project/global/urlMaps/
44547	// url-map - projects/project/global/urlMaps/url-map -
44548	// global/urlMaps/url-map
44549	UrlMap string `json:"urlMap,omitempty"`
44550
44551	// ServerResponse contains the HTTP response code and headers from the
44552	// server.
44553	googleapi.ServerResponse `json:"-"`
44554
44555	// ForceSendFields is a list of field names (e.g. "AuthorizationPolicy")
44556	// to unconditionally include in API requests. By default, fields with
44557	// empty or default values are omitted from API requests. However, any
44558	// non-pointer, non-interface field appearing in ForceSendFields will be
44559	// sent to the server regardless of whether the field is empty or not.
44560	// This may be used to include empty fields in Patch requests.
44561	ForceSendFields []string `json:"-"`
44562
44563	// NullFields is a list of field names (e.g. "AuthorizationPolicy") to
44564	// include in API requests with the JSON null value. By default, fields
44565	// with empty values are omitted from API requests. However, any field
44566	// with an empty value appearing in NullFields will be sent to the
44567	// server as null. It is an error if a field in this list has a
44568	// non-empty value. This may be used to include null fields in Patch
44569	// requests.
44570	NullFields []string `json:"-"`
44571}
44572
44573func (s *TargetHttpsProxy) MarshalJSON() ([]byte, error) {
44574	type NoMethod TargetHttpsProxy
44575	raw := NoMethod(*s)
44576	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44577}
44578
44579type TargetHttpsProxyAggregatedList struct {
44580	// Id: [Output Only] Unique identifier for the resource; defined by the
44581	// server.
44582	Id string `json:"id,omitempty"`
44583
44584	// Items: A list of TargetHttpsProxiesScopedList resources.
44585	Items map[string]TargetHttpsProxiesScopedList `json:"items,omitempty"`
44586
44587	// Kind: [Output Only] Type of resource. Always
44588	// compute#targetHttpsProxyAggregatedList for lists of Target HTTP
44589	// Proxies.
44590	Kind string `json:"kind,omitempty"`
44591
44592	// NextPageToken: [Output Only] This token allows you to get the next
44593	// page of results for list requests. If the number of results is larger
44594	// than maxResults, use the nextPageToken as a value for the query
44595	// parameter pageToken in the next list request. Subsequent list
44596	// requests will have their own nextPageToken to continue paging through
44597	// the results.
44598	NextPageToken string `json:"nextPageToken,omitempty"`
44599
44600	// SelfLink: [Output Only] Server-defined URL for this resource.
44601	SelfLink string `json:"selfLink,omitempty"`
44602
44603	// Unreachables: [Output Only] Unreachable resources.
44604	Unreachables []string `json:"unreachables,omitempty"`
44605
44606	// Warning: [Output Only] Informational warning message.
44607	Warning *TargetHttpsProxyAggregatedListWarning `json:"warning,omitempty"`
44608
44609	// ServerResponse contains the HTTP response code and headers from the
44610	// server.
44611	googleapi.ServerResponse `json:"-"`
44612
44613	// ForceSendFields is a list of field names (e.g. "Id") to
44614	// unconditionally include in API requests. By default, fields with
44615	// empty or default values are omitted from API requests. However, any
44616	// non-pointer, non-interface field appearing in ForceSendFields will be
44617	// sent to the server regardless of whether the field is empty or not.
44618	// This may be used to include empty fields in Patch requests.
44619	ForceSendFields []string `json:"-"`
44620
44621	// NullFields is a list of field names (e.g. "Id") to include in API
44622	// requests with the JSON null value. By default, fields with empty
44623	// values are omitted from API requests. However, any field with an
44624	// empty value appearing in NullFields will be sent to the server as
44625	// null. It is an error if a field in this list has a non-empty value.
44626	// This may be used to include null fields in Patch requests.
44627	NullFields []string `json:"-"`
44628}
44629
44630func (s *TargetHttpsProxyAggregatedList) MarshalJSON() ([]byte, error) {
44631	type NoMethod TargetHttpsProxyAggregatedList
44632	raw := NoMethod(*s)
44633	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44634}
44635
44636// TargetHttpsProxyAggregatedListWarning: [Output Only] Informational
44637// warning message.
44638type TargetHttpsProxyAggregatedListWarning struct {
44639	// Code: [Output Only] A warning code, if applicable. For example,
44640	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44641	// the response.
44642	//
44643	// Possible values:
44644	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
44645	// changes made by a failed operation.
44646	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
44647	// created.
44648	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
44649	// resources has a type marked as deprecated
44650	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
44651	// that is larger than image size.
44652	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
44653	// resources has a type marked as experimental
44654	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
44655	// call
44656	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
44657	// overridden. Deprecated unused field.
44658	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
44659	// injected kernel, which is deprecated.
44660	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
44661	// exceedingly large number of resources
44662	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
44663	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
44664	// not assigned to an instance on the network.
44665	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
44666	// ip forward.
44667	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
44668	// refers to an instance that does not exist.
44669	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
44670	// URL refers to an instance that is not on the same network as the
44671	// route.
44672	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
44673	// have a status of RUNNING.
44674	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
44675	// continue the process despite the mentioned error.
44676	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
44677	// page.
44678	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
44679	// missing due to errors
44680	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
44681	// that requires a TOS they have not accepted.
44682	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
44683	// resource is in use.
44684	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
44685	// auto-delete could not be deleted because they were in use.
44686	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
44687	// ignored.
44688	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
44689	// instance group manager is valid as such, but its application does not
44690	// make a lot of sense, because it allows only single instance in
44691	// instance group.
44692	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
44693	// are present
44694	//   "UNREACHABLE" - A given scope cannot be reached.
44695	Code string `json:"code,omitempty"`
44696
44697	// Data: [Output Only] Metadata about this warning in key: value format.
44698	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
44699	// }
44700	Data []*TargetHttpsProxyAggregatedListWarningData `json:"data,omitempty"`
44701
44702	// Message: [Output Only] A human-readable description of the warning
44703	// code.
44704	Message string `json:"message,omitempty"`
44705
44706	// ForceSendFields is a list of field names (e.g. "Code") to
44707	// unconditionally include in API requests. By default, fields with
44708	// empty or default values are omitted from API requests. However, any
44709	// non-pointer, non-interface field appearing in ForceSendFields will be
44710	// sent to the server regardless of whether the field is empty or not.
44711	// This may be used to include empty fields in Patch requests.
44712	ForceSendFields []string `json:"-"`
44713
44714	// NullFields is a list of field names (e.g. "Code") to include in API
44715	// requests with the JSON null value. By default, fields with empty
44716	// values are omitted from API requests. However, any field with an
44717	// empty value appearing in NullFields will be sent to the server as
44718	// null. It is an error if a field in this list has a non-empty value.
44719	// This may be used to include null fields in Patch requests.
44720	NullFields []string `json:"-"`
44721}
44722
44723func (s *TargetHttpsProxyAggregatedListWarning) MarshalJSON() ([]byte, error) {
44724	type NoMethod TargetHttpsProxyAggregatedListWarning
44725	raw := NoMethod(*s)
44726	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44727}
44728
44729type TargetHttpsProxyAggregatedListWarningData struct {
44730	// Key: [Output Only] A key that provides more detail on the warning
44731	// being returned. For example, for warnings where there are no results
44732	// in a list request for a particular zone, this key might be scope and
44733	// the key value might be the zone name. Other examples might be a key
44734	// indicating a deprecated resource and a suggested replacement, or a
44735	// warning about invalid network settings (for example, if an instance
44736	// attempts to perform IP forwarding but is not enabled for IP
44737	// forwarding).
44738	Key string `json:"key,omitempty"`
44739
44740	// Value: [Output Only] A warning data value corresponding to the key.
44741	Value string `json:"value,omitempty"`
44742
44743	// ForceSendFields is a list of field names (e.g. "Key") to
44744	// unconditionally include in API requests. By default, fields with
44745	// empty or default values are omitted from API requests. However, any
44746	// non-pointer, non-interface field appearing in ForceSendFields will be
44747	// sent to the server regardless of whether the field is empty or not.
44748	// This may be used to include empty fields in Patch requests.
44749	ForceSendFields []string `json:"-"`
44750
44751	// NullFields is a list of field names (e.g. "Key") to include in API
44752	// requests with the JSON null value. By default, fields with empty
44753	// values are omitted from API requests. However, any field with an
44754	// empty value appearing in NullFields will be sent to the server as
44755	// null. It is an error if a field in this list has a non-empty value.
44756	// This may be used to include null fields in Patch requests.
44757	NullFields []string `json:"-"`
44758}
44759
44760func (s *TargetHttpsProxyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
44761	type NoMethod TargetHttpsProxyAggregatedListWarningData
44762	raw := NoMethod(*s)
44763	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44764}
44765
44766// TargetHttpsProxyList: Contains a list of TargetHttpsProxy resources.
44767type TargetHttpsProxyList struct {
44768	// Id: [Output Only] Unique identifier for the resource; defined by the
44769	// server.
44770	Id string `json:"id,omitempty"`
44771
44772	// Items: A list of TargetHttpsProxy resources.
44773	Items []*TargetHttpsProxy `json:"items,omitempty"`
44774
44775	// Kind: Type of resource. Always compute#targetHttpsProxyList for lists
44776	// of target HTTPS proxies.
44777	Kind string `json:"kind,omitempty"`
44778
44779	// NextPageToken: [Output Only] This token allows you to get the next
44780	// page of results for list requests. If the number of results is larger
44781	// than maxResults, use the nextPageToken as a value for the query
44782	// parameter pageToken in the next list request. Subsequent list
44783	// requests will have their own nextPageToken to continue paging through
44784	// the results.
44785	NextPageToken string `json:"nextPageToken,omitempty"`
44786
44787	// SelfLink: [Output Only] Server-defined URL for this resource.
44788	SelfLink string `json:"selfLink,omitempty"`
44789
44790	// Warning: [Output Only] Informational warning message.
44791	Warning *TargetHttpsProxyListWarning `json:"warning,omitempty"`
44792
44793	// ServerResponse contains the HTTP response code and headers from the
44794	// server.
44795	googleapi.ServerResponse `json:"-"`
44796
44797	// ForceSendFields is a list of field names (e.g. "Id") to
44798	// unconditionally include in API requests. By default, fields with
44799	// empty or default values are omitted from API requests. However, any
44800	// non-pointer, non-interface field appearing in ForceSendFields will be
44801	// sent to the server regardless of whether the field is empty or not.
44802	// This may be used to include empty fields in Patch requests.
44803	ForceSendFields []string `json:"-"`
44804
44805	// NullFields is a list of field names (e.g. "Id") to include in API
44806	// requests with the JSON null value. By default, fields with empty
44807	// values are omitted from API requests. However, any field with an
44808	// empty value appearing in NullFields will be sent to the server as
44809	// null. It is an error if a field in this list has a non-empty value.
44810	// This may be used to include null fields in Patch requests.
44811	NullFields []string `json:"-"`
44812}
44813
44814func (s *TargetHttpsProxyList) MarshalJSON() ([]byte, error) {
44815	type NoMethod TargetHttpsProxyList
44816	raw := NoMethod(*s)
44817	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44818}
44819
44820// TargetHttpsProxyListWarning: [Output Only] Informational warning
44821// message.
44822type TargetHttpsProxyListWarning struct {
44823	// Code: [Output Only] A warning code, if applicable. For example,
44824	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44825	// the response.
44826	//
44827	// Possible values:
44828	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
44829	// changes made by a failed operation.
44830	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
44831	// created.
44832	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
44833	// resources has a type marked as deprecated
44834	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
44835	// that is larger than image size.
44836	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
44837	// resources has a type marked as experimental
44838	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
44839	// call
44840	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
44841	// overridden. Deprecated unused field.
44842	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
44843	// injected kernel, which is deprecated.
44844	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
44845	// exceedingly large number of resources
44846	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
44847	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
44848	// not assigned to an instance on the network.
44849	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
44850	// ip forward.
44851	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
44852	// refers to an instance that does not exist.
44853	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
44854	// URL refers to an instance that is not on the same network as the
44855	// route.
44856	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
44857	// have a status of RUNNING.
44858	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
44859	// continue the process despite the mentioned error.
44860	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
44861	// page.
44862	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
44863	// missing due to errors
44864	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
44865	// that requires a TOS they have not accepted.
44866	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
44867	// resource is in use.
44868	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
44869	// auto-delete could not be deleted because they were in use.
44870	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
44871	// ignored.
44872	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
44873	// instance group manager is valid as such, but its application does not
44874	// make a lot of sense, because it allows only single instance in
44875	// instance group.
44876	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
44877	// are present
44878	//   "UNREACHABLE" - A given scope cannot be reached.
44879	Code string `json:"code,omitempty"`
44880
44881	// Data: [Output Only] Metadata about this warning in key: value format.
44882	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
44883	// }
44884	Data []*TargetHttpsProxyListWarningData `json:"data,omitempty"`
44885
44886	// Message: [Output Only] A human-readable description of the warning
44887	// code.
44888	Message string `json:"message,omitempty"`
44889
44890	// ForceSendFields is a list of field names (e.g. "Code") to
44891	// unconditionally include in API requests. By default, fields with
44892	// empty or default values are omitted from API requests. However, any
44893	// non-pointer, non-interface field appearing in ForceSendFields will be
44894	// sent to the server regardless of whether the field is empty or not.
44895	// This may be used to include empty fields in Patch requests.
44896	ForceSendFields []string `json:"-"`
44897
44898	// NullFields is a list of field names (e.g. "Code") to include in API
44899	// requests with the JSON null value. By default, fields with empty
44900	// values are omitted from API requests. However, any field with an
44901	// empty value appearing in NullFields will be sent to the server as
44902	// null. It is an error if a field in this list has a non-empty value.
44903	// This may be used to include null fields in Patch requests.
44904	NullFields []string `json:"-"`
44905}
44906
44907func (s *TargetHttpsProxyListWarning) MarshalJSON() ([]byte, error) {
44908	type NoMethod TargetHttpsProxyListWarning
44909	raw := NoMethod(*s)
44910	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44911}
44912
44913type TargetHttpsProxyListWarningData struct {
44914	// Key: [Output Only] A key that provides more detail on the warning
44915	// being returned. For example, for warnings where there are no results
44916	// in a list request for a particular zone, this key might be scope and
44917	// the key value might be the zone name. Other examples might be a key
44918	// indicating a deprecated resource and a suggested replacement, or a
44919	// warning about invalid network settings (for example, if an instance
44920	// attempts to perform IP forwarding but is not enabled for IP
44921	// forwarding).
44922	Key string `json:"key,omitempty"`
44923
44924	// Value: [Output Only] A warning data value corresponding to the key.
44925	Value string `json:"value,omitempty"`
44926
44927	// ForceSendFields is a list of field names (e.g. "Key") to
44928	// unconditionally include in API requests. By default, fields with
44929	// empty or default values are omitted from API requests. However, any
44930	// non-pointer, non-interface field appearing in ForceSendFields will be
44931	// sent to the server regardless of whether the field is empty or not.
44932	// This may be used to include empty fields in Patch requests.
44933	ForceSendFields []string `json:"-"`
44934
44935	// NullFields is a list of field names (e.g. "Key") to include in API
44936	// requests with the JSON null value. By default, fields with empty
44937	// values are omitted from API requests. However, any field with an
44938	// empty value appearing in NullFields will be sent to the server as
44939	// null. It is an error if a field in this list has a non-empty value.
44940	// This may be used to include null fields in Patch requests.
44941	NullFields []string `json:"-"`
44942}
44943
44944func (s *TargetHttpsProxyListWarningData) MarshalJSON() ([]byte, error) {
44945	type NoMethod TargetHttpsProxyListWarningData
44946	raw := NoMethod(*s)
44947	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44948}
44949
44950// TargetInstance: Represents a Target Instance resource. You can use a
44951// target instance to handle traffic for one or more forwarding rules,
44952// which is ideal for forwarding protocol traffic that is managed by a
44953// single source. For example, ESP, AH, TCP, or UDP. For more
44954// information, read Target instances.
44955type TargetInstance struct {
44956	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
44957	// format.
44958	CreationTimestamp string `json:"creationTimestamp,omitempty"`
44959
44960	// Description: An optional description of this resource. Provide this
44961	// property when you create the resource.
44962	Description string `json:"description,omitempty"`
44963
44964	// Id: [Output Only] The unique identifier for the resource. This
44965	// identifier is defined by the server.
44966	Id uint64 `json:"id,omitempty,string"`
44967
44968	// Instance: A URL to the virtual machine instance that handles traffic
44969	// for this target instance. When creating a target instance, you can
44970	// provide the fully-qualified URL or a valid partial URL to the desired
44971	// virtual machine. For example, the following are all valid URLs: -
44972	// https://www.googleapis.com/compute/v1/projects/project/zones/zone
44973	// /instances/instance - projects/project/zones/zone/instances/instance
44974	// - zones/zone/instances/instance
44975	Instance string `json:"instance,omitempty"`
44976
44977	// Kind: [Output Only] The type of the resource. Always
44978	// compute#targetInstance for target instances.
44979	Kind string `json:"kind,omitempty"`
44980
44981	// Name: Name of the resource. Provided by the client when the resource
44982	// is created. The name must be 1-63 characters long, and comply with
44983	// RFC1035. Specifically, the name must be 1-63 characters long and
44984	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
44985	// the first character must be a lowercase letter, and all following
44986	// characters must be a dash, lowercase letter, or digit, except the
44987	// last character, which cannot be a dash.
44988	Name string `json:"name,omitempty"`
44989
44990	// NatPolicy: NAT option controlling how IPs are NAT'ed to the instance.
44991	// Currently only NO_NAT (default value) is supported.
44992	//
44993	// Possible values:
44994	//   "NO_NAT" - No NAT performed.
44995	NatPolicy string `json:"natPolicy,omitempty"`
44996
44997	// Network: The URL of the network this target instance uses to forward
44998	// traffic. If not specified, the traffic will be forwarded to the
44999	// network that the default network interface belongs to.
45000	Network string `json:"network,omitempty"`
45001
45002	// SelfLink: [Output Only] Server-defined URL for the resource.
45003	SelfLink string `json:"selfLink,omitempty"`
45004
45005	// Zone: [Output Only] URL of the zone where the target instance
45006	// resides. You must specify this field as part of the HTTP request URL.
45007	// It is not settable as a field in the request body.
45008	Zone string `json:"zone,omitempty"`
45009
45010	// ServerResponse contains the HTTP response code and headers from the
45011	// server.
45012	googleapi.ServerResponse `json:"-"`
45013
45014	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
45015	// to unconditionally include in API requests. By default, fields with
45016	// empty or default values are omitted from API requests. However, any
45017	// non-pointer, non-interface field appearing in ForceSendFields will be
45018	// sent to the server regardless of whether the field is empty or not.
45019	// This may be used to include empty fields in Patch requests.
45020	ForceSendFields []string `json:"-"`
45021
45022	// NullFields is a list of field names (e.g. "CreationTimestamp") to
45023	// include in API requests with the JSON null value. By default, fields
45024	// with empty values are omitted from API requests. However, any field
45025	// with an empty value appearing in NullFields will be sent to the
45026	// server as null. It is an error if a field in this list has a
45027	// non-empty value. This may be used to include null fields in Patch
45028	// requests.
45029	NullFields []string `json:"-"`
45030}
45031
45032func (s *TargetInstance) MarshalJSON() ([]byte, error) {
45033	type NoMethod TargetInstance
45034	raw := NoMethod(*s)
45035	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45036}
45037
45038type TargetInstanceAggregatedList struct {
45039	// Id: [Output Only] Unique identifier for the resource; defined by the
45040	// server.
45041	Id string `json:"id,omitempty"`
45042
45043	// Items: A list of TargetInstance resources.
45044	Items map[string]TargetInstancesScopedList `json:"items,omitempty"`
45045
45046	// Kind: Type of resource.
45047	Kind string `json:"kind,omitempty"`
45048
45049	// NextPageToken: [Output Only] This token allows you to get the next
45050	// page of results for list requests. If the number of results is larger
45051	// than maxResults, use the nextPageToken as a value for the query
45052	// parameter pageToken in the next list request. Subsequent list
45053	// requests will have their own nextPageToken to continue paging through
45054	// the results.
45055	NextPageToken string `json:"nextPageToken,omitempty"`
45056
45057	// SelfLink: [Output Only] Server-defined URL for this resource.
45058	SelfLink string `json:"selfLink,omitempty"`
45059
45060	// Unreachables: [Output Only] Unreachable resources.
45061	Unreachables []string `json:"unreachables,omitempty"`
45062
45063	// Warning: [Output Only] Informational warning message.
45064	Warning *TargetInstanceAggregatedListWarning `json:"warning,omitempty"`
45065
45066	// ServerResponse contains the HTTP response code and headers from the
45067	// server.
45068	googleapi.ServerResponse `json:"-"`
45069
45070	// ForceSendFields is a list of field names (e.g. "Id") to
45071	// unconditionally include in API requests. By default, fields with
45072	// empty or default values are omitted from API requests. However, any
45073	// non-pointer, non-interface field appearing in ForceSendFields will be
45074	// sent to the server regardless of whether the field is empty or not.
45075	// This may be used to include empty fields in Patch requests.
45076	ForceSendFields []string `json:"-"`
45077
45078	// NullFields is a list of field names (e.g. "Id") to include in API
45079	// requests with the JSON null value. By default, fields with empty
45080	// values are omitted from API requests. However, any field with an
45081	// empty value appearing in NullFields will be sent to the server as
45082	// null. It is an error if a field in this list has a non-empty value.
45083	// This may be used to include null fields in Patch requests.
45084	NullFields []string `json:"-"`
45085}
45086
45087func (s *TargetInstanceAggregatedList) MarshalJSON() ([]byte, error) {
45088	type NoMethod TargetInstanceAggregatedList
45089	raw := NoMethod(*s)
45090	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45091}
45092
45093// TargetInstanceAggregatedListWarning: [Output Only] Informational
45094// warning message.
45095type TargetInstanceAggregatedListWarning struct {
45096	// Code: [Output Only] A warning code, if applicable. For example,
45097	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45098	// the response.
45099	//
45100	// Possible values:
45101	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
45102	// changes made by a failed operation.
45103	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
45104	// created.
45105	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
45106	// resources has a type marked as deprecated
45107	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
45108	// that is larger than image size.
45109	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
45110	// resources has a type marked as experimental
45111	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
45112	// call
45113	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
45114	// overridden. Deprecated unused field.
45115	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
45116	// injected kernel, which is deprecated.
45117	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
45118	// exceedingly large number of resources
45119	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
45120	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
45121	// not assigned to an instance on the network.
45122	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
45123	// ip forward.
45124	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
45125	// refers to an instance that does not exist.
45126	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
45127	// URL refers to an instance that is not on the same network as the
45128	// route.
45129	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
45130	// have a status of RUNNING.
45131	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
45132	// continue the process despite the mentioned error.
45133	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
45134	// page.
45135	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
45136	// missing due to errors
45137	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
45138	// that requires a TOS they have not accepted.
45139	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
45140	// resource is in use.
45141	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
45142	// auto-delete could not be deleted because they were in use.
45143	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
45144	// ignored.
45145	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
45146	// instance group manager is valid as such, but its application does not
45147	// make a lot of sense, because it allows only single instance in
45148	// instance group.
45149	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
45150	// are present
45151	//   "UNREACHABLE" - A given scope cannot be reached.
45152	Code string `json:"code,omitempty"`
45153
45154	// Data: [Output Only] Metadata about this warning in key: value format.
45155	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
45156	// }
45157	Data []*TargetInstanceAggregatedListWarningData `json:"data,omitempty"`
45158
45159	// Message: [Output Only] A human-readable description of the warning
45160	// code.
45161	Message string `json:"message,omitempty"`
45162
45163	// ForceSendFields is a list of field names (e.g. "Code") to
45164	// unconditionally include in API requests. By default, fields with
45165	// empty or default values are omitted from API requests. However, any
45166	// non-pointer, non-interface field appearing in ForceSendFields will be
45167	// sent to the server regardless of whether the field is empty or not.
45168	// This may be used to include empty fields in Patch requests.
45169	ForceSendFields []string `json:"-"`
45170
45171	// NullFields is a list of field names (e.g. "Code") to include in API
45172	// requests with the JSON null value. By default, fields with empty
45173	// values are omitted from API requests. However, any field with an
45174	// empty value appearing in NullFields will be sent to the server as
45175	// null. It is an error if a field in this list has a non-empty value.
45176	// This may be used to include null fields in Patch requests.
45177	NullFields []string `json:"-"`
45178}
45179
45180func (s *TargetInstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
45181	type NoMethod TargetInstanceAggregatedListWarning
45182	raw := NoMethod(*s)
45183	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45184}
45185
45186type TargetInstanceAggregatedListWarningData struct {
45187	// Key: [Output Only] A key that provides more detail on the warning
45188	// being returned. For example, for warnings where there are no results
45189	// in a list request for a particular zone, this key might be scope and
45190	// the key value might be the zone name. Other examples might be a key
45191	// indicating a deprecated resource and a suggested replacement, or a
45192	// warning about invalid network settings (for example, if an instance
45193	// attempts to perform IP forwarding but is not enabled for IP
45194	// forwarding).
45195	Key string `json:"key,omitempty"`
45196
45197	// Value: [Output Only] A warning data value corresponding to the key.
45198	Value string `json:"value,omitempty"`
45199
45200	// ForceSendFields is a list of field names (e.g. "Key") to
45201	// unconditionally include in API requests. By default, fields with
45202	// empty or default values are omitted from API requests. However, any
45203	// non-pointer, non-interface field appearing in ForceSendFields will be
45204	// sent to the server regardless of whether the field is empty or not.
45205	// This may be used to include empty fields in Patch requests.
45206	ForceSendFields []string `json:"-"`
45207
45208	// NullFields is a list of field names (e.g. "Key") to include in API
45209	// requests with the JSON null value. By default, fields with empty
45210	// values are omitted from API requests. However, any field with an
45211	// empty value appearing in NullFields will be sent to the server as
45212	// null. It is an error if a field in this list has a non-empty value.
45213	// This may be used to include null fields in Patch requests.
45214	NullFields []string `json:"-"`
45215}
45216
45217func (s *TargetInstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
45218	type NoMethod TargetInstanceAggregatedListWarningData
45219	raw := NoMethod(*s)
45220	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45221}
45222
45223// TargetInstanceList: Contains a list of TargetInstance resources.
45224type TargetInstanceList struct {
45225	// Id: [Output Only] Unique identifier for the resource; defined by the
45226	// server.
45227	Id string `json:"id,omitempty"`
45228
45229	// Items: A list of TargetInstance resources.
45230	Items []*TargetInstance `json:"items,omitempty"`
45231
45232	// Kind: Type of resource.
45233	Kind string `json:"kind,omitempty"`
45234
45235	// NextPageToken: [Output Only] This token allows you to get the next
45236	// page of results for list requests. If the number of results is larger
45237	// than maxResults, use the nextPageToken as a value for the query
45238	// parameter pageToken in the next list request. Subsequent list
45239	// requests will have their own nextPageToken to continue paging through
45240	// the results.
45241	NextPageToken string `json:"nextPageToken,omitempty"`
45242
45243	// SelfLink: [Output Only] Server-defined URL for this resource.
45244	SelfLink string `json:"selfLink,omitempty"`
45245
45246	// Warning: [Output Only] Informational warning message.
45247	Warning *TargetInstanceListWarning `json:"warning,omitempty"`
45248
45249	// ServerResponse contains the HTTP response code and headers from the
45250	// server.
45251	googleapi.ServerResponse `json:"-"`
45252
45253	// ForceSendFields is a list of field names (e.g. "Id") to
45254	// unconditionally include in API requests. By default, fields with
45255	// empty or default values are omitted from API requests. However, any
45256	// non-pointer, non-interface field appearing in ForceSendFields will be
45257	// sent to the server regardless of whether the field is empty or not.
45258	// This may be used to include empty fields in Patch requests.
45259	ForceSendFields []string `json:"-"`
45260
45261	// NullFields is a list of field names (e.g. "Id") to include in API
45262	// requests with the JSON null value. By default, fields with empty
45263	// values are omitted from API requests. However, any field with an
45264	// empty value appearing in NullFields will be sent to the server as
45265	// null. It is an error if a field in this list has a non-empty value.
45266	// This may be used to include null fields in Patch requests.
45267	NullFields []string `json:"-"`
45268}
45269
45270func (s *TargetInstanceList) MarshalJSON() ([]byte, error) {
45271	type NoMethod TargetInstanceList
45272	raw := NoMethod(*s)
45273	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45274}
45275
45276// TargetInstanceListWarning: [Output Only] Informational warning
45277// message.
45278type TargetInstanceListWarning struct {
45279	// Code: [Output Only] A warning code, if applicable. For example,
45280	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45281	// the response.
45282	//
45283	// Possible values:
45284	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
45285	// changes made by a failed operation.
45286	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
45287	// created.
45288	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
45289	// resources has a type marked as deprecated
45290	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
45291	// that is larger than image size.
45292	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
45293	// resources has a type marked as experimental
45294	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
45295	// call
45296	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
45297	// overridden. Deprecated unused field.
45298	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
45299	// injected kernel, which is deprecated.
45300	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
45301	// exceedingly large number of resources
45302	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
45303	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
45304	// not assigned to an instance on the network.
45305	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
45306	// ip forward.
45307	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
45308	// refers to an instance that does not exist.
45309	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
45310	// URL refers to an instance that is not on the same network as the
45311	// route.
45312	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
45313	// have a status of RUNNING.
45314	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
45315	// continue the process despite the mentioned error.
45316	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
45317	// page.
45318	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
45319	// missing due to errors
45320	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
45321	// that requires a TOS they have not accepted.
45322	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
45323	// resource is in use.
45324	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
45325	// auto-delete could not be deleted because they were in use.
45326	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
45327	// ignored.
45328	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
45329	// instance group manager is valid as such, but its application does not
45330	// make a lot of sense, because it allows only single instance in
45331	// instance group.
45332	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
45333	// are present
45334	//   "UNREACHABLE" - A given scope cannot be reached.
45335	Code string `json:"code,omitempty"`
45336
45337	// Data: [Output Only] Metadata about this warning in key: value format.
45338	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
45339	// }
45340	Data []*TargetInstanceListWarningData `json:"data,omitempty"`
45341
45342	// Message: [Output Only] A human-readable description of the warning
45343	// code.
45344	Message string `json:"message,omitempty"`
45345
45346	// ForceSendFields is a list of field names (e.g. "Code") to
45347	// unconditionally include in API requests. By default, fields with
45348	// empty or default values are omitted from API requests. However, any
45349	// non-pointer, non-interface field appearing in ForceSendFields will be
45350	// sent to the server regardless of whether the field is empty or not.
45351	// This may be used to include empty fields in Patch requests.
45352	ForceSendFields []string `json:"-"`
45353
45354	// NullFields is a list of field names (e.g. "Code") to include in API
45355	// requests with the JSON null value. By default, fields with empty
45356	// values are omitted from API requests. However, any field with an
45357	// empty value appearing in NullFields will be sent to the server as
45358	// null. It is an error if a field in this list has a non-empty value.
45359	// This may be used to include null fields in Patch requests.
45360	NullFields []string `json:"-"`
45361}
45362
45363func (s *TargetInstanceListWarning) MarshalJSON() ([]byte, error) {
45364	type NoMethod TargetInstanceListWarning
45365	raw := NoMethod(*s)
45366	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45367}
45368
45369type TargetInstanceListWarningData struct {
45370	// Key: [Output Only] A key that provides more detail on the warning
45371	// being returned. For example, for warnings where there are no results
45372	// in a list request for a particular zone, this key might be scope and
45373	// the key value might be the zone name. Other examples might be a key
45374	// indicating a deprecated resource and a suggested replacement, or a
45375	// warning about invalid network settings (for example, if an instance
45376	// attempts to perform IP forwarding but is not enabled for IP
45377	// forwarding).
45378	Key string `json:"key,omitempty"`
45379
45380	// Value: [Output Only] A warning data value corresponding to the key.
45381	Value string `json:"value,omitempty"`
45382
45383	// ForceSendFields is a list of field names (e.g. "Key") to
45384	// unconditionally include in API requests. By default, fields with
45385	// empty or default values are omitted from API requests. However, any
45386	// non-pointer, non-interface field appearing in ForceSendFields will be
45387	// sent to the server regardless of whether the field is empty or not.
45388	// This may be used to include empty fields in Patch requests.
45389	ForceSendFields []string `json:"-"`
45390
45391	// NullFields is a list of field names (e.g. "Key") to include in API
45392	// requests with the JSON null value. By default, fields with empty
45393	// values are omitted from API requests. However, any field with an
45394	// empty value appearing in NullFields will be sent to the server as
45395	// null. It is an error if a field in this list has a non-empty value.
45396	// This may be used to include null fields in Patch requests.
45397	NullFields []string `json:"-"`
45398}
45399
45400func (s *TargetInstanceListWarningData) MarshalJSON() ([]byte, error) {
45401	type NoMethod TargetInstanceListWarningData
45402	raw := NoMethod(*s)
45403	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45404}
45405
45406type TargetInstancesScopedList struct {
45407	// TargetInstances: A list of target instances contained in this scope.
45408	TargetInstances []*TargetInstance `json:"targetInstances,omitempty"`
45409
45410	// Warning: Informational warning which replaces the list of addresses
45411	// when the list is empty.
45412	Warning *TargetInstancesScopedListWarning `json:"warning,omitempty"`
45413
45414	// ForceSendFields is a list of field names (e.g. "TargetInstances") to
45415	// unconditionally include in API requests. By default, fields with
45416	// empty or default values are omitted from API requests. However, any
45417	// non-pointer, non-interface field appearing in ForceSendFields will be
45418	// sent to the server regardless of whether the field is empty or not.
45419	// This may be used to include empty fields in Patch requests.
45420	ForceSendFields []string `json:"-"`
45421
45422	// NullFields is a list of field names (e.g. "TargetInstances") to
45423	// include in API requests with the JSON null value. By default, fields
45424	// with empty values are omitted from API requests. However, any field
45425	// with an empty value appearing in NullFields will be sent to the
45426	// server as null. It is an error if a field in this list has a
45427	// non-empty value. This may be used to include null fields in Patch
45428	// requests.
45429	NullFields []string `json:"-"`
45430}
45431
45432func (s *TargetInstancesScopedList) MarshalJSON() ([]byte, error) {
45433	type NoMethod TargetInstancesScopedList
45434	raw := NoMethod(*s)
45435	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45436}
45437
45438// TargetInstancesScopedListWarning: Informational warning which
45439// replaces the list of addresses when the list is empty.
45440type TargetInstancesScopedListWarning struct {
45441	// Code: [Output Only] A warning code, if applicable. For example,
45442	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45443	// the response.
45444	//
45445	// Possible values:
45446	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
45447	// changes made by a failed operation.
45448	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
45449	// created.
45450	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
45451	// resources has a type marked as deprecated
45452	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
45453	// that is larger than image size.
45454	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
45455	// resources has a type marked as experimental
45456	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
45457	// call
45458	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
45459	// overridden. Deprecated unused field.
45460	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
45461	// injected kernel, which is deprecated.
45462	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
45463	// exceedingly large number of resources
45464	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
45465	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
45466	// not assigned to an instance on the network.
45467	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
45468	// ip forward.
45469	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
45470	// refers to an instance that does not exist.
45471	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
45472	// URL refers to an instance that is not on the same network as the
45473	// route.
45474	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
45475	// have a status of RUNNING.
45476	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
45477	// continue the process despite the mentioned error.
45478	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
45479	// page.
45480	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
45481	// missing due to errors
45482	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
45483	// that requires a TOS they have not accepted.
45484	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
45485	// resource is in use.
45486	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
45487	// auto-delete could not be deleted because they were in use.
45488	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
45489	// ignored.
45490	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
45491	// instance group manager is valid as such, but its application does not
45492	// make a lot of sense, because it allows only single instance in
45493	// instance group.
45494	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
45495	// are present
45496	//   "UNREACHABLE" - A given scope cannot be reached.
45497	Code string `json:"code,omitempty"`
45498
45499	// Data: [Output Only] Metadata about this warning in key: value format.
45500	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
45501	// }
45502	Data []*TargetInstancesScopedListWarningData `json:"data,omitempty"`
45503
45504	// Message: [Output Only] A human-readable description of the warning
45505	// code.
45506	Message string `json:"message,omitempty"`
45507
45508	// ForceSendFields is a list of field names (e.g. "Code") to
45509	// unconditionally include in API requests. By default, fields with
45510	// empty or default values are omitted from API requests. However, any
45511	// non-pointer, non-interface field appearing in ForceSendFields will be
45512	// sent to the server regardless of whether the field is empty or not.
45513	// This may be used to include empty fields in Patch requests.
45514	ForceSendFields []string `json:"-"`
45515
45516	// NullFields is a list of field names (e.g. "Code") to include in API
45517	// requests with the JSON null value. By default, fields with empty
45518	// values are omitted from API requests. However, any field with an
45519	// empty value appearing in NullFields will be sent to the server as
45520	// null. It is an error if a field in this list has a non-empty value.
45521	// This may be used to include null fields in Patch requests.
45522	NullFields []string `json:"-"`
45523}
45524
45525func (s *TargetInstancesScopedListWarning) MarshalJSON() ([]byte, error) {
45526	type NoMethod TargetInstancesScopedListWarning
45527	raw := NoMethod(*s)
45528	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45529}
45530
45531type TargetInstancesScopedListWarningData struct {
45532	// Key: [Output Only] A key that provides more detail on the warning
45533	// being returned. For example, for warnings where there are no results
45534	// in a list request for a particular zone, this key might be scope and
45535	// the key value might be the zone name. Other examples might be a key
45536	// indicating a deprecated resource and a suggested replacement, or a
45537	// warning about invalid network settings (for example, if an instance
45538	// attempts to perform IP forwarding but is not enabled for IP
45539	// forwarding).
45540	Key string `json:"key,omitempty"`
45541
45542	// Value: [Output Only] A warning data value corresponding to the key.
45543	Value string `json:"value,omitempty"`
45544
45545	// ForceSendFields is a list of field names (e.g. "Key") to
45546	// unconditionally include in API requests. By default, fields with
45547	// empty or default values are omitted from API requests. However, any
45548	// non-pointer, non-interface field appearing in ForceSendFields will be
45549	// sent to the server regardless of whether the field is empty or not.
45550	// This may be used to include empty fields in Patch requests.
45551	ForceSendFields []string `json:"-"`
45552
45553	// NullFields is a list of field names (e.g. "Key") to include in API
45554	// requests with the JSON null value. By default, fields with empty
45555	// values are omitted from API requests. However, any field with an
45556	// empty value appearing in NullFields will be sent to the server as
45557	// null. It is an error if a field in this list has a non-empty value.
45558	// This may be used to include null fields in Patch requests.
45559	NullFields []string `json:"-"`
45560}
45561
45562func (s *TargetInstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
45563	type NoMethod TargetInstancesScopedListWarningData
45564	raw := NoMethod(*s)
45565	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45566}
45567
45568// TargetPool: Represents a Target Pool resource. Target pools are used
45569// for network TCP/UDP load balancing. A target pool references member
45570// instances, an associated legacy HttpHealthCheck resource, and,
45571// optionally, a backup target pool. For more information, read Using
45572// target pools.
45573type TargetPool struct {
45574	// BackupPool: The server-defined URL for the resource. This field is
45575	// applicable only when the containing target pool is serving a
45576	// forwarding rule as the primary pool, and its failoverRatio field is
45577	// properly set to a value between [0, 1]. backupPool and failoverRatio
45578	// together define the fallback behavior of the primary target pool: if
45579	// the ratio of the healthy instances in the primary pool is at or below
45580	// failoverRatio, traffic arriving at the load-balanced IP will be
45581	// directed to the backup pool. In case where failoverRatio and
45582	// backupPool are not set, or all the instances in the backup pool are
45583	// unhealthy, the traffic will be directed back to the primary pool in
45584	// the "force" mode, where traffic will be spread to the healthy
45585	// instances with the best effort, or to all instances when no instance
45586	// is healthy.
45587	BackupPool string `json:"backupPool,omitempty"`
45588
45589	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
45590	// format.
45591	CreationTimestamp string `json:"creationTimestamp,omitempty"`
45592
45593	// Description: An optional description of this resource. Provide this
45594	// property when you create the resource.
45595	Description string `json:"description,omitempty"`
45596
45597	// FailoverRatio: This field is applicable only when the containing
45598	// target pool is serving a forwarding rule as the primary pool (i.e.,
45599	// not as a backup pool to some other target pool). The value of the
45600	// field must be in [0, 1]. If set, backupPool must also be set. They
45601	// together define the fallback behavior of the primary target pool: if
45602	// the ratio of the healthy instances in the primary pool is at or below
45603	// this number, traffic arriving at the load-balanced IP will be
45604	// directed to the backup pool. In case where failoverRatio is not set
45605	// or all the instances in the backup pool are unhealthy, the traffic
45606	// will be directed back to the primary pool in the "force" mode, where
45607	// traffic will be spread to the healthy instances with the best effort,
45608	// or to all instances when no instance is healthy.
45609	FailoverRatio float64 `json:"failoverRatio,omitempty"`
45610
45611	// HealthChecks: The URL of the HttpHealthCheck resource. A member
45612	// instance in this pool is considered healthy if and only if the health
45613	// checks pass. Only legacy HttpHealthChecks are supported. Only one
45614	// health check may be specified.
45615	HealthChecks []string `json:"healthChecks,omitempty"`
45616
45617	// Id: [Output Only] The unique identifier for the resource. This
45618	// identifier is defined by the server.
45619	Id uint64 `json:"id,omitempty,string"`
45620
45621	// Instances: A list of resource URLs to the virtual machine instances
45622	// serving this pool. They must live in zones contained in the same
45623	// region as this pool.
45624	Instances []string `json:"instances,omitempty"`
45625
45626	// Kind: [Output Only] Type of the resource. Always compute#targetPool
45627	// for target pools.
45628	Kind string `json:"kind,omitempty"`
45629
45630	// Name: Name of the resource. Provided by the client when the resource
45631	// is created. The name must be 1-63 characters long, and comply with
45632	// RFC1035. Specifically, the name must be 1-63 characters long and
45633	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
45634	// the first character must be a lowercase letter, and all following
45635	// characters must be a dash, lowercase letter, or digit, except the
45636	// last character, which cannot be a dash.
45637	Name string `json:"name,omitempty"`
45638
45639	// Region: [Output Only] URL of the region where the target pool
45640	// resides.
45641	Region string `json:"region,omitempty"`
45642
45643	// SelfLink: [Output Only] Server-defined URL for the resource.
45644	SelfLink string `json:"selfLink,omitempty"`
45645
45646	// SessionAffinity: Session affinity option, must be one of the
45647	// following values: NONE: Connections from the same client IP may go to
45648	// any instance in the pool. CLIENT_IP: Connections from the same client
45649	// IP will go to the same instance in the pool while that instance
45650	// remains healthy. CLIENT_IP_PROTO: Connections from the same client IP
45651	// with the same IP protocol will go to the same instance in the pool
45652	// while that instance remains healthy.
45653	//
45654	// Possible values:
45655	//   "CLIENT_IP" - 2-tuple hash on packet's source and destination IP
45656	// addresses. Connections from the same source IP address to the same
45657	// destination IP address will be served by the same backend VM while
45658	// that VM remains healthy.
45659	//   "CLIENT_IP_NO_DESTINATION" - 1-tuple hash only on packet's source
45660	// IP address. Connections from the same source IP address will be
45661	// served by the same backend VM while that VM remains healthy. This
45662	// option can only be used for Internal TCP/UDP Load Balancing.
45663	//   "CLIENT_IP_PORT_PROTO" - 5-tuple hash on packet's source and
45664	// destination IP addresses, IP protocol, and source and destination
45665	// ports. Connections for the same IP protocol from the same source IP
45666	// address and port to the same destination IP address and port will be
45667	// served by the same backend VM while that VM remains healthy. This
45668	// option cannot be used for HTTP(S) load balancing.
45669	//   "CLIENT_IP_PROTO" - 3-tuple hash on packet's source and destination
45670	// IP addresses, and IP protocol. Connections for the same IP protocol
45671	// from the same source IP address to the same destination IP address
45672	// will be served by the same backend VM while that VM remains healthy.
45673	// This option cannot be used for HTTP(S) load balancing.
45674	//   "GENERATED_COOKIE" - Hash based on a cookie generated by the L7
45675	// loadbalancer. Only valid for HTTP(S) load balancing.
45676	//   "HEADER_FIELD" - The hash is based on a user specified header
45677	// field.
45678	//   "HTTP_COOKIE" - The hash is based on a user provided cookie.
45679	//   "NONE" - No session affinity. Connections from the same client IP
45680	// may go to any instance in the pool.
45681	SessionAffinity string `json:"sessionAffinity,omitempty"`
45682
45683	// ServerResponse contains the HTTP response code and headers from the
45684	// server.
45685	googleapi.ServerResponse `json:"-"`
45686
45687	// ForceSendFields is a list of field names (e.g. "BackupPool") to
45688	// unconditionally include in API requests. By default, fields with
45689	// empty or default values are omitted from API requests. However, any
45690	// non-pointer, non-interface field appearing in ForceSendFields will be
45691	// sent to the server regardless of whether the field is empty or not.
45692	// This may be used to include empty fields in Patch requests.
45693	ForceSendFields []string `json:"-"`
45694
45695	// NullFields is a list of field names (e.g. "BackupPool") to include in
45696	// API requests with the JSON null value. By default, fields with empty
45697	// values are omitted from API requests. However, any field with an
45698	// empty value appearing in NullFields will be sent to the server as
45699	// null. It is an error if a field in this list has a non-empty value.
45700	// This may be used to include null fields in Patch requests.
45701	NullFields []string `json:"-"`
45702}
45703
45704func (s *TargetPool) MarshalJSON() ([]byte, error) {
45705	type NoMethod TargetPool
45706	raw := NoMethod(*s)
45707	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45708}
45709
45710func (s *TargetPool) UnmarshalJSON(data []byte) error {
45711	type NoMethod TargetPool
45712	var s1 struct {
45713		FailoverRatio gensupport.JSONFloat64 `json:"failoverRatio"`
45714		*NoMethod
45715	}
45716	s1.NoMethod = (*NoMethod)(s)
45717	if err := json.Unmarshal(data, &s1); err != nil {
45718		return err
45719	}
45720	s.FailoverRatio = float64(s1.FailoverRatio)
45721	return nil
45722}
45723
45724type TargetPoolAggregatedList struct {
45725	// Id: [Output Only] Unique identifier for the resource; defined by the
45726	// server.
45727	Id string `json:"id,omitempty"`
45728
45729	// Items: A list of TargetPool resources.
45730	Items map[string]TargetPoolsScopedList `json:"items,omitempty"`
45731
45732	// Kind: [Output Only] Type of resource. Always
45733	// compute#targetPoolAggregatedList for aggregated lists of target
45734	// pools.
45735	Kind string `json:"kind,omitempty"`
45736
45737	// NextPageToken: [Output Only] This token allows you to get the next
45738	// page of results for list requests. If the number of results is larger
45739	// than maxResults, use the nextPageToken as a value for the query
45740	// parameter pageToken in the next list request. Subsequent list
45741	// requests will have their own nextPageToken to continue paging through
45742	// the results.
45743	NextPageToken string `json:"nextPageToken,omitempty"`
45744
45745	// SelfLink: [Output Only] Server-defined URL for this resource.
45746	SelfLink string `json:"selfLink,omitempty"`
45747
45748	// Unreachables: [Output Only] Unreachable resources.
45749	Unreachables []string `json:"unreachables,omitempty"`
45750
45751	// Warning: [Output Only] Informational warning message.
45752	Warning *TargetPoolAggregatedListWarning `json:"warning,omitempty"`
45753
45754	// ServerResponse contains the HTTP response code and headers from the
45755	// server.
45756	googleapi.ServerResponse `json:"-"`
45757
45758	// ForceSendFields is a list of field names (e.g. "Id") to
45759	// unconditionally include in API requests. By default, fields with
45760	// empty or default values are omitted from API requests. However, any
45761	// non-pointer, non-interface field appearing in ForceSendFields will be
45762	// sent to the server regardless of whether the field is empty or not.
45763	// This may be used to include empty fields in Patch requests.
45764	ForceSendFields []string `json:"-"`
45765
45766	// NullFields is a list of field names (e.g. "Id") to include in API
45767	// requests with the JSON null value. By default, fields with empty
45768	// values are omitted from API requests. However, any field with an
45769	// empty value appearing in NullFields will be sent to the server as
45770	// null. It is an error if a field in this list has a non-empty value.
45771	// This may be used to include null fields in Patch requests.
45772	NullFields []string `json:"-"`
45773}
45774
45775func (s *TargetPoolAggregatedList) MarshalJSON() ([]byte, error) {
45776	type NoMethod TargetPoolAggregatedList
45777	raw := NoMethod(*s)
45778	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45779}
45780
45781// TargetPoolAggregatedListWarning: [Output Only] Informational warning
45782// message.
45783type TargetPoolAggregatedListWarning struct {
45784	// Code: [Output Only] A warning code, if applicable. For example,
45785	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45786	// the response.
45787	//
45788	// Possible values:
45789	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
45790	// changes made by a failed operation.
45791	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
45792	// created.
45793	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
45794	// resources has a type marked as deprecated
45795	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
45796	// that is larger than image size.
45797	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
45798	// resources has a type marked as experimental
45799	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
45800	// call
45801	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
45802	// overridden. Deprecated unused field.
45803	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
45804	// injected kernel, which is deprecated.
45805	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
45806	// exceedingly large number of resources
45807	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
45808	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
45809	// not assigned to an instance on the network.
45810	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
45811	// ip forward.
45812	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
45813	// refers to an instance that does not exist.
45814	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
45815	// URL refers to an instance that is not on the same network as the
45816	// route.
45817	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
45818	// have a status of RUNNING.
45819	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
45820	// continue the process despite the mentioned error.
45821	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
45822	// page.
45823	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
45824	// missing due to errors
45825	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
45826	// that requires a TOS they have not accepted.
45827	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
45828	// resource is in use.
45829	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
45830	// auto-delete could not be deleted because they were in use.
45831	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
45832	// ignored.
45833	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
45834	// instance group manager is valid as such, but its application does not
45835	// make a lot of sense, because it allows only single instance in
45836	// instance group.
45837	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
45838	// are present
45839	//   "UNREACHABLE" - A given scope cannot be reached.
45840	Code string `json:"code,omitempty"`
45841
45842	// Data: [Output Only] Metadata about this warning in key: value format.
45843	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
45844	// }
45845	Data []*TargetPoolAggregatedListWarningData `json:"data,omitempty"`
45846
45847	// Message: [Output Only] A human-readable description of the warning
45848	// code.
45849	Message string `json:"message,omitempty"`
45850
45851	// ForceSendFields is a list of field names (e.g. "Code") to
45852	// unconditionally include in API requests. By default, fields with
45853	// empty or default values are omitted from API requests. However, any
45854	// non-pointer, non-interface field appearing in ForceSendFields will be
45855	// sent to the server regardless of whether the field is empty or not.
45856	// This may be used to include empty fields in Patch requests.
45857	ForceSendFields []string `json:"-"`
45858
45859	// NullFields is a list of field names (e.g. "Code") to include in API
45860	// requests with the JSON null value. By default, fields with empty
45861	// values are omitted from API requests. However, any field with an
45862	// empty value appearing in NullFields will be sent to the server as
45863	// null. It is an error if a field in this list has a non-empty value.
45864	// This may be used to include null fields in Patch requests.
45865	NullFields []string `json:"-"`
45866}
45867
45868func (s *TargetPoolAggregatedListWarning) MarshalJSON() ([]byte, error) {
45869	type NoMethod TargetPoolAggregatedListWarning
45870	raw := NoMethod(*s)
45871	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45872}
45873
45874type TargetPoolAggregatedListWarningData struct {
45875	// Key: [Output Only] A key that provides more detail on the warning
45876	// being returned. For example, for warnings where there are no results
45877	// in a list request for a particular zone, this key might be scope and
45878	// the key value might be the zone name. Other examples might be a key
45879	// indicating a deprecated resource and a suggested replacement, or a
45880	// warning about invalid network settings (for example, if an instance
45881	// attempts to perform IP forwarding but is not enabled for IP
45882	// forwarding).
45883	Key string `json:"key,omitempty"`
45884
45885	// Value: [Output Only] A warning data value corresponding to the key.
45886	Value string `json:"value,omitempty"`
45887
45888	// ForceSendFields is a list of field names (e.g. "Key") to
45889	// unconditionally include in API requests. By default, fields with
45890	// empty or default values are omitted from API requests. However, any
45891	// non-pointer, non-interface field appearing in ForceSendFields will be
45892	// sent to the server regardless of whether the field is empty or not.
45893	// This may be used to include empty fields in Patch requests.
45894	ForceSendFields []string `json:"-"`
45895
45896	// NullFields is a list of field names (e.g. "Key") to include in API
45897	// requests with the JSON null value. By default, fields with empty
45898	// values are omitted from API requests. However, any field with an
45899	// empty value appearing in NullFields will be sent to the server as
45900	// null. It is an error if a field in this list has a non-empty value.
45901	// This may be used to include null fields in Patch requests.
45902	NullFields []string `json:"-"`
45903}
45904
45905func (s *TargetPoolAggregatedListWarningData) MarshalJSON() ([]byte, error) {
45906	type NoMethod TargetPoolAggregatedListWarningData
45907	raw := NoMethod(*s)
45908	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45909}
45910
45911type TargetPoolInstanceHealth struct {
45912	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
45913
45914	// Kind: [Output Only] Type of resource. Always
45915	// compute#targetPoolInstanceHealth when checking the health of an
45916	// instance.
45917	Kind string `json:"kind,omitempty"`
45918
45919	// ServerResponse contains the HTTP response code and headers from the
45920	// server.
45921	googleapi.ServerResponse `json:"-"`
45922
45923	// ForceSendFields is a list of field names (e.g. "HealthStatus") to
45924	// unconditionally include in API requests. By default, fields with
45925	// empty or default values are omitted from API requests. However, any
45926	// non-pointer, non-interface field appearing in ForceSendFields will be
45927	// sent to the server regardless of whether the field is empty or not.
45928	// This may be used to include empty fields in Patch requests.
45929	ForceSendFields []string `json:"-"`
45930
45931	// NullFields is a list of field names (e.g. "HealthStatus") to include
45932	// in API requests with the JSON null value. By default, fields with
45933	// empty values are omitted from API requests. However, any field with
45934	// an empty value appearing in NullFields will be sent to the server as
45935	// null. It is an error if a field in this list has a non-empty value.
45936	// This may be used to include null fields in Patch requests.
45937	NullFields []string `json:"-"`
45938}
45939
45940func (s *TargetPoolInstanceHealth) MarshalJSON() ([]byte, error) {
45941	type NoMethod TargetPoolInstanceHealth
45942	raw := NoMethod(*s)
45943	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45944}
45945
45946// TargetPoolList: Contains a list of TargetPool resources.
45947type TargetPoolList struct {
45948	// Id: [Output Only] Unique identifier for the resource; defined by the
45949	// server.
45950	Id string `json:"id,omitempty"`
45951
45952	// Items: A list of TargetPool resources.
45953	Items []*TargetPool `json:"items,omitempty"`
45954
45955	// Kind: [Output Only] Type of resource. Always compute#targetPoolList
45956	// for lists of target pools.
45957	Kind string `json:"kind,omitempty"`
45958
45959	// NextPageToken: [Output Only] This token allows you to get the next
45960	// page of results for list requests. If the number of results is larger
45961	// than maxResults, use the nextPageToken as a value for the query
45962	// parameter pageToken in the next list request. Subsequent list
45963	// requests will have their own nextPageToken to continue paging through
45964	// the results.
45965	NextPageToken string `json:"nextPageToken,omitempty"`
45966
45967	// SelfLink: [Output Only] Server-defined URL for this resource.
45968	SelfLink string `json:"selfLink,omitempty"`
45969
45970	// Warning: [Output Only] Informational warning message.
45971	Warning *TargetPoolListWarning `json:"warning,omitempty"`
45972
45973	// ServerResponse contains the HTTP response code and headers from the
45974	// server.
45975	googleapi.ServerResponse `json:"-"`
45976
45977	// ForceSendFields is a list of field names (e.g. "Id") to
45978	// unconditionally include in API requests. By default, fields with
45979	// empty or default values are omitted from API requests. However, any
45980	// non-pointer, non-interface field appearing in ForceSendFields will be
45981	// sent to the server regardless of whether the field is empty or not.
45982	// This may be used to include empty fields in Patch requests.
45983	ForceSendFields []string `json:"-"`
45984
45985	// NullFields is a list of field names (e.g. "Id") to include in API
45986	// requests with the JSON null value. By default, fields with empty
45987	// values are omitted from API requests. However, any field with an
45988	// empty value appearing in NullFields will be sent to the server as
45989	// null. It is an error if a field in this list has a non-empty value.
45990	// This may be used to include null fields in Patch requests.
45991	NullFields []string `json:"-"`
45992}
45993
45994func (s *TargetPoolList) MarshalJSON() ([]byte, error) {
45995	type NoMethod TargetPoolList
45996	raw := NoMethod(*s)
45997	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45998}
45999
46000// TargetPoolListWarning: [Output Only] Informational warning message.
46001type TargetPoolListWarning struct {
46002	// Code: [Output Only] A warning code, if applicable. For example,
46003	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46004	// the response.
46005	//
46006	// Possible values:
46007	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
46008	// changes made by a failed operation.
46009	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
46010	// created.
46011	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
46012	// resources has a type marked as deprecated
46013	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
46014	// that is larger than image size.
46015	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
46016	// resources has a type marked as experimental
46017	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
46018	// call
46019	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
46020	// overridden. Deprecated unused field.
46021	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
46022	// injected kernel, which is deprecated.
46023	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
46024	// exceedingly large number of resources
46025	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
46026	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
46027	// not assigned to an instance on the network.
46028	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
46029	// ip forward.
46030	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
46031	// refers to an instance that does not exist.
46032	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
46033	// URL refers to an instance that is not on the same network as the
46034	// route.
46035	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
46036	// have a status of RUNNING.
46037	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
46038	// continue the process despite the mentioned error.
46039	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
46040	// page.
46041	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
46042	// missing due to errors
46043	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
46044	// that requires a TOS they have not accepted.
46045	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
46046	// resource is in use.
46047	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
46048	// auto-delete could not be deleted because they were in use.
46049	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
46050	// ignored.
46051	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
46052	// instance group manager is valid as such, but its application does not
46053	// make a lot of sense, because it allows only single instance in
46054	// instance group.
46055	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
46056	// are present
46057	//   "UNREACHABLE" - A given scope cannot be reached.
46058	Code string `json:"code,omitempty"`
46059
46060	// Data: [Output Only] Metadata about this warning in key: value format.
46061	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
46062	// }
46063	Data []*TargetPoolListWarningData `json:"data,omitempty"`
46064
46065	// Message: [Output Only] A human-readable description of the warning
46066	// code.
46067	Message string `json:"message,omitempty"`
46068
46069	// ForceSendFields is a list of field names (e.g. "Code") to
46070	// unconditionally include in API requests. By default, fields with
46071	// empty or default values are omitted from API requests. However, any
46072	// non-pointer, non-interface field appearing in ForceSendFields will be
46073	// sent to the server regardless of whether the field is empty or not.
46074	// This may be used to include empty fields in Patch requests.
46075	ForceSendFields []string `json:"-"`
46076
46077	// NullFields is a list of field names (e.g. "Code") to include in API
46078	// requests with the JSON null value. By default, fields with empty
46079	// values are omitted from API requests. However, any field with an
46080	// empty value appearing in NullFields will be sent to the server as
46081	// null. It is an error if a field in this list has a non-empty value.
46082	// This may be used to include null fields in Patch requests.
46083	NullFields []string `json:"-"`
46084}
46085
46086func (s *TargetPoolListWarning) MarshalJSON() ([]byte, error) {
46087	type NoMethod TargetPoolListWarning
46088	raw := NoMethod(*s)
46089	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46090}
46091
46092type TargetPoolListWarningData struct {
46093	// Key: [Output Only] A key that provides more detail on the warning
46094	// being returned. For example, for warnings where there are no results
46095	// in a list request for a particular zone, this key might be scope and
46096	// the key value might be the zone name. Other examples might be a key
46097	// indicating a deprecated resource and a suggested replacement, or a
46098	// warning about invalid network settings (for example, if an instance
46099	// attempts to perform IP forwarding but is not enabled for IP
46100	// forwarding).
46101	Key string `json:"key,omitempty"`
46102
46103	// Value: [Output Only] A warning data value corresponding to the key.
46104	Value string `json:"value,omitempty"`
46105
46106	// ForceSendFields is a list of field names (e.g. "Key") to
46107	// unconditionally include in API requests. By default, fields with
46108	// empty or default values are omitted from API requests. However, any
46109	// non-pointer, non-interface field appearing in ForceSendFields will be
46110	// sent to the server regardless of whether the field is empty or not.
46111	// This may be used to include empty fields in Patch requests.
46112	ForceSendFields []string `json:"-"`
46113
46114	// NullFields is a list of field names (e.g. "Key") to include in API
46115	// requests with the JSON null value. By default, fields with empty
46116	// values are omitted from API requests. However, any field with an
46117	// empty value appearing in NullFields will be sent to the server as
46118	// null. It is an error if a field in this list has a non-empty value.
46119	// This may be used to include null fields in Patch requests.
46120	NullFields []string `json:"-"`
46121}
46122
46123func (s *TargetPoolListWarningData) MarshalJSON() ([]byte, error) {
46124	type NoMethod TargetPoolListWarningData
46125	raw := NoMethod(*s)
46126	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46127}
46128
46129type TargetPoolsAddHealthCheckRequest struct {
46130	// HealthChecks: The HttpHealthCheck to add to the target pool.
46131	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
46132
46133	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
46134	// unconditionally include in API requests. By default, fields with
46135	// empty or default values are omitted from API requests. However, any
46136	// non-pointer, non-interface field appearing in ForceSendFields will be
46137	// sent to the server regardless of whether the field is empty or not.
46138	// This may be used to include empty fields in Patch requests.
46139	ForceSendFields []string `json:"-"`
46140
46141	// NullFields is a list of field names (e.g. "HealthChecks") to include
46142	// in API requests with the JSON null value. By default, fields with
46143	// empty values are omitted from API requests. However, any field with
46144	// an empty value appearing in NullFields will be sent to the server as
46145	// null. It is an error if a field in this list has a non-empty value.
46146	// This may be used to include null fields in Patch requests.
46147	NullFields []string `json:"-"`
46148}
46149
46150func (s *TargetPoolsAddHealthCheckRequest) MarshalJSON() ([]byte, error) {
46151	type NoMethod TargetPoolsAddHealthCheckRequest
46152	raw := NoMethod(*s)
46153	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46154}
46155
46156type TargetPoolsAddInstanceRequest struct {
46157	// Instances: A full or partial URL to an instance to add to this target
46158	// pool. This can be a full or partial URL. For example, the following
46159	// are valid URLs: -
46160	// https://www.googleapis.com/compute/v1/projects/project-id/zones/zone
46161	// /instances/instance-name -
46162	// projects/project-id/zones/zone/instances/instance-name -
46163	// zones/zone/instances/instance-name
46164	Instances []*InstanceReference `json:"instances,omitempty"`
46165
46166	// ForceSendFields is a list of field names (e.g. "Instances") to
46167	// unconditionally include in API requests. By default, fields with
46168	// empty or default values are omitted from API requests. However, any
46169	// non-pointer, non-interface field appearing in ForceSendFields will be
46170	// sent to the server regardless of whether the field is empty or not.
46171	// This may be used to include empty fields in Patch requests.
46172	ForceSendFields []string `json:"-"`
46173
46174	// NullFields is a list of field names (e.g. "Instances") to include in
46175	// API requests with the JSON null value. By default, fields with empty
46176	// values are omitted from API requests. However, any field with an
46177	// empty value appearing in NullFields will be sent to the server as
46178	// null. It is an error if a field in this list has a non-empty value.
46179	// This may be used to include null fields in Patch requests.
46180	NullFields []string `json:"-"`
46181}
46182
46183func (s *TargetPoolsAddInstanceRequest) MarshalJSON() ([]byte, error) {
46184	type NoMethod TargetPoolsAddInstanceRequest
46185	raw := NoMethod(*s)
46186	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46187}
46188
46189type TargetPoolsRemoveHealthCheckRequest struct {
46190	// HealthChecks: Health check URL to be removed. This can be a full or
46191	// valid partial URL. For example, the following are valid URLs: -
46192	// https://www.googleapis.com/compute/beta/projects/project
46193	// /global/httpHealthChecks/health-check -
46194	// projects/project/global/httpHealthChecks/health-check -
46195	// global/httpHealthChecks/health-check
46196	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
46197
46198	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
46199	// unconditionally include in API requests. By default, fields with
46200	// empty or default values are omitted from API requests. However, any
46201	// non-pointer, non-interface field appearing in ForceSendFields will be
46202	// sent to the server regardless of whether the field is empty or not.
46203	// This may be used to include empty fields in Patch requests.
46204	ForceSendFields []string `json:"-"`
46205
46206	// NullFields is a list of field names (e.g. "HealthChecks") to include
46207	// in API requests with the JSON null value. By default, fields with
46208	// empty values are omitted from API requests. However, any field with
46209	// an empty value appearing in NullFields will be sent to the server as
46210	// null. It is an error if a field in this list has a non-empty value.
46211	// This may be used to include null fields in Patch requests.
46212	NullFields []string `json:"-"`
46213}
46214
46215func (s *TargetPoolsRemoveHealthCheckRequest) MarshalJSON() ([]byte, error) {
46216	type NoMethod TargetPoolsRemoveHealthCheckRequest
46217	raw := NoMethod(*s)
46218	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46219}
46220
46221type TargetPoolsRemoveInstanceRequest struct {
46222	// Instances: URLs of the instances to be removed from target pool.
46223	Instances []*InstanceReference `json:"instances,omitempty"`
46224
46225	// ForceSendFields is a list of field names (e.g. "Instances") to
46226	// unconditionally include in API requests. By default, fields with
46227	// empty or default values are omitted from API requests. However, any
46228	// non-pointer, non-interface field appearing in ForceSendFields will be
46229	// sent to the server regardless of whether the field is empty or not.
46230	// This may be used to include empty fields in Patch requests.
46231	ForceSendFields []string `json:"-"`
46232
46233	// NullFields is a list of field names (e.g. "Instances") to include in
46234	// API requests with the JSON null value. By default, fields with empty
46235	// values are omitted from API requests. However, any field with an
46236	// empty value appearing in NullFields will be sent to the server as
46237	// null. It is an error if a field in this list has a non-empty value.
46238	// This may be used to include null fields in Patch requests.
46239	NullFields []string `json:"-"`
46240}
46241
46242func (s *TargetPoolsRemoveInstanceRequest) MarshalJSON() ([]byte, error) {
46243	type NoMethod TargetPoolsRemoveInstanceRequest
46244	raw := NoMethod(*s)
46245	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46246}
46247
46248type TargetPoolsScopedList struct {
46249	// TargetPools: A list of target pools contained in this scope.
46250	TargetPools []*TargetPool `json:"targetPools,omitempty"`
46251
46252	// Warning: Informational warning which replaces the list of addresses
46253	// when the list is empty.
46254	Warning *TargetPoolsScopedListWarning `json:"warning,omitempty"`
46255
46256	// ForceSendFields is a list of field names (e.g. "TargetPools") to
46257	// unconditionally include in API requests. By default, fields with
46258	// empty or default values are omitted from API requests. However, any
46259	// non-pointer, non-interface field appearing in ForceSendFields will be
46260	// sent to the server regardless of whether the field is empty or not.
46261	// This may be used to include empty fields in Patch requests.
46262	ForceSendFields []string `json:"-"`
46263
46264	// NullFields is a list of field names (e.g. "TargetPools") to include
46265	// in API requests with the JSON null value. By default, fields with
46266	// empty values are omitted from API requests. However, any field with
46267	// an empty value appearing in NullFields will be sent to the server as
46268	// null. It is an error if a field in this list has a non-empty value.
46269	// This may be used to include null fields in Patch requests.
46270	NullFields []string `json:"-"`
46271}
46272
46273func (s *TargetPoolsScopedList) MarshalJSON() ([]byte, error) {
46274	type NoMethod TargetPoolsScopedList
46275	raw := NoMethod(*s)
46276	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46277}
46278
46279// TargetPoolsScopedListWarning: Informational warning which replaces
46280// the list of addresses when the list is empty.
46281type TargetPoolsScopedListWarning struct {
46282	// Code: [Output Only] A warning code, if applicable. For example,
46283	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46284	// the response.
46285	//
46286	// Possible values:
46287	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
46288	// changes made by a failed operation.
46289	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
46290	// created.
46291	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
46292	// resources has a type marked as deprecated
46293	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
46294	// that is larger than image size.
46295	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
46296	// resources has a type marked as experimental
46297	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
46298	// call
46299	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
46300	// overridden. Deprecated unused field.
46301	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
46302	// injected kernel, which is deprecated.
46303	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
46304	// exceedingly large number of resources
46305	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
46306	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
46307	// not assigned to an instance on the network.
46308	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
46309	// ip forward.
46310	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
46311	// refers to an instance that does not exist.
46312	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
46313	// URL refers to an instance that is not on the same network as the
46314	// route.
46315	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
46316	// have a status of RUNNING.
46317	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
46318	// continue the process despite the mentioned error.
46319	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
46320	// page.
46321	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
46322	// missing due to errors
46323	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
46324	// that requires a TOS they have not accepted.
46325	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
46326	// resource is in use.
46327	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
46328	// auto-delete could not be deleted because they were in use.
46329	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
46330	// ignored.
46331	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
46332	// instance group manager is valid as such, but its application does not
46333	// make a lot of sense, because it allows only single instance in
46334	// instance group.
46335	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
46336	// are present
46337	//   "UNREACHABLE" - A given scope cannot be reached.
46338	Code string `json:"code,omitempty"`
46339
46340	// Data: [Output Only] Metadata about this warning in key: value format.
46341	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
46342	// }
46343	Data []*TargetPoolsScopedListWarningData `json:"data,omitempty"`
46344
46345	// Message: [Output Only] A human-readable description of the warning
46346	// code.
46347	Message string `json:"message,omitempty"`
46348
46349	// ForceSendFields is a list of field names (e.g. "Code") to
46350	// unconditionally include in API requests. By default, fields with
46351	// empty or default values are omitted from API requests. However, any
46352	// non-pointer, non-interface field appearing in ForceSendFields will be
46353	// sent to the server regardless of whether the field is empty or not.
46354	// This may be used to include empty fields in Patch requests.
46355	ForceSendFields []string `json:"-"`
46356
46357	// NullFields is a list of field names (e.g. "Code") to include in API
46358	// requests with the JSON null value. By default, fields with empty
46359	// values are omitted from API requests. However, any field with an
46360	// empty value appearing in NullFields will be sent to the server as
46361	// null. It is an error if a field in this list has a non-empty value.
46362	// This may be used to include null fields in Patch requests.
46363	NullFields []string `json:"-"`
46364}
46365
46366func (s *TargetPoolsScopedListWarning) MarshalJSON() ([]byte, error) {
46367	type NoMethod TargetPoolsScopedListWarning
46368	raw := NoMethod(*s)
46369	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46370}
46371
46372type TargetPoolsScopedListWarningData struct {
46373	// Key: [Output Only] A key that provides more detail on the warning
46374	// being returned. For example, for warnings where there are no results
46375	// in a list request for a particular zone, this key might be scope and
46376	// the key value might be the zone name. Other examples might be a key
46377	// indicating a deprecated resource and a suggested replacement, or a
46378	// warning about invalid network settings (for example, if an instance
46379	// attempts to perform IP forwarding but is not enabled for IP
46380	// forwarding).
46381	Key string `json:"key,omitempty"`
46382
46383	// Value: [Output Only] A warning data value corresponding to the key.
46384	Value string `json:"value,omitempty"`
46385
46386	// ForceSendFields is a list of field names (e.g. "Key") to
46387	// unconditionally include in API requests. By default, fields with
46388	// empty or default values are omitted from API requests. However, any
46389	// non-pointer, non-interface field appearing in ForceSendFields will be
46390	// sent to the server regardless of whether the field is empty or not.
46391	// This may be used to include empty fields in Patch requests.
46392	ForceSendFields []string `json:"-"`
46393
46394	// NullFields is a list of field names (e.g. "Key") to include in API
46395	// requests with the JSON null value. By default, fields with empty
46396	// values are omitted from API requests. However, any field with an
46397	// empty value appearing in NullFields will be sent to the server as
46398	// null. It is an error if a field in this list has a non-empty value.
46399	// This may be used to include null fields in Patch requests.
46400	NullFields []string `json:"-"`
46401}
46402
46403func (s *TargetPoolsScopedListWarningData) MarshalJSON() ([]byte, error) {
46404	type NoMethod TargetPoolsScopedListWarningData
46405	raw := NoMethod(*s)
46406	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46407}
46408
46409type TargetReference struct {
46410	Target string `json:"target,omitempty"`
46411
46412	// ForceSendFields is a list of field names (e.g. "Target") to
46413	// unconditionally include in API requests. By default, fields with
46414	// empty or default values are omitted from API requests. However, any
46415	// non-pointer, non-interface field appearing in ForceSendFields will be
46416	// sent to the server regardless of whether the field is empty or not.
46417	// This may be used to include empty fields in Patch requests.
46418	ForceSendFields []string `json:"-"`
46419
46420	// NullFields is a list of field names (e.g. "Target") to include in API
46421	// requests with the JSON null value. By default, fields with empty
46422	// values are omitted from API requests. However, any field with an
46423	// empty value appearing in NullFields will be sent to the server as
46424	// null. It is an error if a field in this list has a non-empty value.
46425	// This may be used to include null fields in Patch requests.
46426	NullFields []string `json:"-"`
46427}
46428
46429func (s *TargetReference) MarshalJSON() ([]byte, error) {
46430	type NoMethod TargetReference
46431	raw := NoMethod(*s)
46432	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46433}
46434
46435type TargetSslProxiesSetBackendServiceRequest struct {
46436	// Service: The URL of the new BackendService resource for the
46437	// targetSslProxy.
46438	Service string `json:"service,omitempty"`
46439
46440	// ForceSendFields is a list of field names (e.g. "Service") to
46441	// unconditionally include in API requests. By default, fields with
46442	// empty or default values are omitted from API requests. However, any
46443	// non-pointer, non-interface field appearing in ForceSendFields will be
46444	// sent to the server regardless of whether the field is empty or not.
46445	// This may be used to include empty fields in Patch requests.
46446	ForceSendFields []string `json:"-"`
46447
46448	// NullFields is a list of field names (e.g. "Service") to include in
46449	// API requests with the JSON null value. By default, fields with empty
46450	// values are omitted from API requests. However, any field with an
46451	// empty value appearing in NullFields will be sent to the server as
46452	// null. It is an error if a field in this list has a non-empty value.
46453	// This may be used to include null fields in Patch requests.
46454	NullFields []string `json:"-"`
46455}
46456
46457func (s *TargetSslProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
46458	type NoMethod TargetSslProxiesSetBackendServiceRequest
46459	raw := NoMethod(*s)
46460	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46461}
46462
46463type TargetSslProxiesSetProxyHeaderRequest struct {
46464	// ProxyHeader: The new type of proxy header to append before sending
46465	// data to the backend. NONE or PROXY_V1 are allowed.
46466	//
46467	// Possible values:
46468	//   "NONE"
46469	//   "PROXY_V1"
46470	ProxyHeader string `json:"proxyHeader,omitempty"`
46471
46472	// ForceSendFields is a list of field names (e.g. "ProxyHeader") to
46473	// unconditionally include in API requests. By default, fields with
46474	// empty or default values are omitted from API requests. However, any
46475	// non-pointer, non-interface field appearing in ForceSendFields will be
46476	// sent to the server regardless of whether the field is empty or not.
46477	// This may be used to include empty fields in Patch requests.
46478	ForceSendFields []string `json:"-"`
46479
46480	// NullFields is a list of field names (e.g. "ProxyHeader") to include
46481	// in API requests with the JSON null value. By default, fields with
46482	// empty values are omitted from API requests. However, any field with
46483	// an empty value appearing in NullFields will be sent to the server as
46484	// null. It is an error if a field in this list has a non-empty value.
46485	// This may be used to include null fields in Patch requests.
46486	NullFields []string `json:"-"`
46487}
46488
46489func (s *TargetSslProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
46490	type NoMethod TargetSslProxiesSetProxyHeaderRequest
46491	raw := NoMethod(*s)
46492	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46493}
46494
46495type TargetSslProxiesSetSslCertificatesRequest struct {
46496	// SslCertificates: New set of URLs to SslCertificate resources to
46497	// associate with this TargetSslProxy. At least one SSL certificate must
46498	// be specified. Currently, you may specify up to 15 SSL certificates.
46499	SslCertificates []string `json:"sslCertificates,omitempty"`
46500
46501	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
46502	// unconditionally include in API requests. By default, fields with
46503	// empty or default values are omitted from API requests. However, any
46504	// non-pointer, non-interface field appearing in ForceSendFields will be
46505	// sent to the server regardless of whether the field is empty or not.
46506	// This may be used to include empty fields in Patch requests.
46507	ForceSendFields []string `json:"-"`
46508
46509	// NullFields is a list of field names (e.g. "SslCertificates") to
46510	// include in API requests with the JSON null value. By default, fields
46511	// with empty values are omitted from API requests. However, any field
46512	// with an empty value appearing in NullFields will be sent to the
46513	// server as null. It is an error if a field in this list has a
46514	// non-empty value. This may be used to include null fields in Patch
46515	// requests.
46516	NullFields []string `json:"-"`
46517}
46518
46519func (s *TargetSslProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
46520	type NoMethod TargetSslProxiesSetSslCertificatesRequest
46521	raw := NoMethod(*s)
46522	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46523}
46524
46525// TargetSslProxy: Represents a Target SSL Proxy resource. A target SSL
46526// proxy is a component of a SSL Proxy load balancer. Global forwarding
46527// rules reference a target SSL proxy, and the target proxy then
46528// references an external backend service. For more information, read
46529// Using Target Proxies.
46530type TargetSslProxy struct {
46531	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
46532	// format.
46533	CreationTimestamp string `json:"creationTimestamp,omitempty"`
46534
46535	// Description: An optional description of this resource. Provide this
46536	// property when you create the resource.
46537	Description string `json:"description,omitempty"`
46538
46539	// Id: [Output Only] The unique identifier for the resource. This
46540	// identifier is defined by the server.
46541	Id uint64 `json:"id,omitempty,string"`
46542
46543	// Kind: [Output Only] Type of the resource. Always
46544	// compute#targetSslProxy for target SSL proxies.
46545	Kind string `json:"kind,omitempty"`
46546
46547	// Name: Name of the resource. Provided by the client when the resource
46548	// is created. The name must be 1-63 characters long, and comply with
46549	// RFC1035. Specifically, the name must be 1-63 characters long and
46550	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
46551	// the first character must be a lowercase letter, and all following
46552	// characters must be a dash, lowercase letter, or digit, except the
46553	// last character, which cannot be a dash.
46554	Name string `json:"name,omitempty"`
46555
46556	// ProxyHeader: Specifies the type of proxy header to append before
46557	// sending data to the backend, either NONE or PROXY_V1. The default is
46558	// NONE.
46559	//
46560	// Possible values:
46561	//   "NONE"
46562	//   "PROXY_V1"
46563	ProxyHeader string `json:"proxyHeader,omitempty"`
46564
46565	// SelfLink: [Output Only] Server-defined URL for the resource.
46566	SelfLink string `json:"selfLink,omitempty"`
46567
46568	// Service: URL to the BackendService resource.
46569	Service string `json:"service,omitempty"`
46570
46571	// SslCertificates: URLs to SslCertificate resources that are used to
46572	// authenticate connections to Backends. At least one SSL certificate
46573	// must be specified. Currently, you may specify up to 15 SSL
46574	// certificates. sslCertificates do not apply when the load balancing
46575	// scheme is set to INTERNAL_SELF_MANAGED.
46576	SslCertificates []string `json:"sslCertificates,omitempty"`
46577
46578	// SslPolicy: URL of SslPolicy resource that will be associated with the
46579	// TargetSslProxy resource. If not set, the TargetSslProxy resource will
46580	// not have any SSL policy configured.
46581	SslPolicy string `json:"sslPolicy,omitempty"`
46582
46583	// ServerResponse contains the HTTP response code and headers from the
46584	// server.
46585	googleapi.ServerResponse `json:"-"`
46586
46587	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
46588	// to unconditionally include in API requests. By default, fields with
46589	// empty or default values are omitted from API requests. However, any
46590	// non-pointer, non-interface field appearing in ForceSendFields will be
46591	// sent to the server regardless of whether the field is empty or not.
46592	// This may be used to include empty fields in Patch requests.
46593	ForceSendFields []string `json:"-"`
46594
46595	// NullFields is a list of field names (e.g. "CreationTimestamp") to
46596	// include in API requests with the JSON null value. By default, fields
46597	// with empty values are omitted from API requests. However, any field
46598	// with an empty value appearing in NullFields will be sent to the
46599	// server as null. It is an error if a field in this list has a
46600	// non-empty value. This may be used to include null fields in Patch
46601	// requests.
46602	NullFields []string `json:"-"`
46603}
46604
46605func (s *TargetSslProxy) MarshalJSON() ([]byte, error) {
46606	type NoMethod TargetSslProxy
46607	raw := NoMethod(*s)
46608	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46609}
46610
46611// TargetSslProxyList: Contains a list of TargetSslProxy resources.
46612type TargetSslProxyList struct {
46613	// Id: [Output Only] Unique identifier for the resource; defined by the
46614	// server.
46615	Id string `json:"id,omitempty"`
46616
46617	// Items: A list of TargetSslProxy resources.
46618	Items []*TargetSslProxy `json:"items,omitempty"`
46619
46620	// Kind: Type of resource.
46621	Kind string `json:"kind,omitempty"`
46622
46623	// NextPageToken: [Output Only] This token allows you to get the next
46624	// page of results for list requests. If the number of results is larger
46625	// than maxResults, use the nextPageToken as a value for the query
46626	// parameter pageToken in the next list request. Subsequent list
46627	// requests will have their own nextPageToken to continue paging through
46628	// the results.
46629	NextPageToken string `json:"nextPageToken,omitempty"`
46630
46631	// SelfLink: [Output Only] Server-defined URL for this resource.
46632	SelfLink string `json:"selfLink,omitempty"`
46633
46634	// Warning: [Output Only] Informational warning message.
46635	Warning *TargetSslProxyListWarning `json:"warning,omitempty"`
46636
46637	// ServerResponse contains the HTTP response code and headers from the
46638	// server.
46639	googleapi.ServerResponse `json:"-"`
46640
46641	// ForceSendFields is a list of field names (e.g. "Id") to
46642	// unconditionally include in API requests. By default, fields with
46643	// empty or default values are omitted from API requests. However, any
46644	// non-pointer, non-interface field appearing in ForceSendFields will be
46645	// sent to the server regardless of whether the field is empty or not.
46646	// This may be used to include empty fields in Patch requests.
46647	ForceSendFields []string `json:"-"`
46648
46649	// NullFields is a list of field names (e.g. "Id") to include in API
46650	// requests with the JSON null value. By default, fields with empty
46651	// values are omitted from API requests. However, any field with an
46652	// empty value appearing in NullFields will be sent to the server as
46653	// null. It is an error if a field in this list has a non-empty value.
46654	// This may be used to include null fields in Patch requests.
46655	NullFields []string `json:"-"`
46656}
46657
46658func (s *TargetSslProxyList) MarshalJSON() ([]byte, error) {
46659	type NoMethod TargetSslProxyList
46660	raw := NoMethod(*s)
46661	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46662}
46663
46664// TargetSslProxyListWarning: [Output Only] Informational warning
46665// message.
46666type TargetSslProxyListWarning struct {
46667	// Code: [Output Only] A warning code, if applicable. For example,
46668	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46669	// the response.
46670	//
46671	// Possible values:
46672	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
46673	// changes made by a failed operation.
46674	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
46675	// created.
46676	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
46677	// resources has a type marked as deprecated
46678	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
46679	// that is larger than image size.
46680	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
46681	// resources has a type marked as experimental
46682	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
46683	// call
46684	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
46685	// overridden. Deprecated unused field.
46686	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
46687	// injected kernel, which is deprecated.
46688	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
46689	// exceedingly large number of resources
46690	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
46691	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
46692	// not assigned to an instance on the network.
46693	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
46694	// ip forward.
46695	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
46696	// refers to an instance that does not exist.
46697	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
46698	// URL refers to an instance that is not on the same network as the
46699	// route.
46700	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
46701	// have a status of RUNNING.
46702	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
46703	// continue the process despite the mentioned error.
46704	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
46705	// page.
46706	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
46707	// missing due to errors
46708	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
46709	// that requires a TOS they have not accepted.
46710	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
46711	// resource is in use.
46712	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
46713	// auto-delete could not be deleted because they were in use.
46714	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
46715	// ignored.
46716	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
46717	// instance group manager is valid as such, but its application does not
46718	// make a lot of sense, because it allows only single instance in
46719	// instance group.
46720	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
46721	// are present
46722	//   "UNREACHABLE" - A given scope cannot be reached.
46723	Code string `json:"code,omitempty"`
46724
46725	// Data: [Output Only] Metadata about this warning in key: value format.
46726	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
46727	// }
46728	Data []*TargetSslProxyListWarningData `json:"data,omitempty"`
46729
46730	// Message: [Output Only] A human-readable description of the warning
46731	// code.
46732	Message string `json:"message,omitempty"`
46733
46734	// ForceSendFields is a list of field names (e.g. "Code") to
46735	// unconditionally include in API requests. By default, fields with
46736	// empty or default values are omitted from API requests. However, any
46737	// non-pointer, non-interface field appearing in ForceSendFields will be
46738	// sent to the server regardless of whether the field is empty or not.
46739	// This may be used to include empty fields in Patch requests.
46740	ForceSendFields []string `json:"-"`
46741
46742	// NullFields is a list of field names (e.g. "Code") to include in API
46743	// requests with the JSON null value. By default, fields with empty
46744	// values are omitted from API requests. However, any field with an
46745	// empty value appearing in NullFields will be sent to the server as
46746	// null. It is an error if a field in this list has a non-empty value.
46747	// This may be used to include null fields in Patch requests.
46748	NullFields []string `json:"-"`
46749}
46750
46751func (s *TargetSslProxyListWarning) MarshalJSON() ([]byte, error) {
46752	type NoMethod TargetSslProxyListWarning
46753	raw := NoMethod(*s)
46754	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46755}
46756
46757type TargetSslProxyListWarningData struct {
46758	// Key: [Output Only] A key that provides more detail on the warning
46759	// being returned. For example, for warnings where there are no results
46760	// in a list request for a particular zone, this key might be scope and
46761	// the key value might be the zone name. Other examples might be a key
46762	// indicating a deprecated resource and a suggested replacement, or a
46763	// warning about invalid network settings (for example, if an instance
46764	// attempts to perform IP forwarding but is not enabled for IP
46765	// forwarding).
46766	Key string `json:"key,omitempty"`
46767
46768	// Value: [Output Only] A warning data value corresponding to the key.
46769	Value string `json:"value,omitempty"`
46770
46771	// ForceSendFields is a list of field names (e.g. "Key") to
46772	// unconditionally include in API requests. By default, fields with
46773	// empty or default values are omitted from API requests. However, any
46774	// non-pointer, non-interface field appearing in ForceSendFields will be
46775	// sent to the server regardless of whether the field is empty or not.
46776	// This may be used to include empty fields in Patch requests.
46777	ForceSendFields []string `json:"-"`
46778
46779	// NullFields is a list of field names (e.g. "Key") to include in API
46780	// requests with the JSON null value. By default, fields with empty
46781	// values are omitted from API requests. However, any field with an
46782	// empty value appearing in NullFields will be sent to the server as
46783	// null. It is an error if a field in this list has a non-empty value.
46784	// This may be used to include null fields in Patch requests.
46785	NullFields []string `json:"-"`
46786}
46787
46788func (s *TargetSslProxyListWarningData) MarshalJSON() ([]byte, error) {
46789	type NoMethod TargetSslProxyListWarningData
46790	raw := NoMethod(*s)
46791	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46792}
46793
46794type TargetTcpProxiesSetBackendServiceRequest struct {
46795	// Service: The URL of the new BackendService resource for the
46796	// targetTcpProxy.
46797	Service string `json:"service,omitempty"`
46798
46799	// ForceSendFields is a list of field names (e.g. "Service") to
46800	// unconditionally include in API requests. By default, fields with
46801	// empty or default values are omitted from API requests. However, any
46802	// non-pointer, non-interface field appearing in ForceSendFields will be
46803	// sent to the server regardless of whether the field is empty or not.
46804	// This may be used to include empty fields in Patch requests.
46805	ForceSendFields []string `json:"-"`
46806
46807	// NullFields is a list of field names (e.g. "Service") to include in
46808	// API requests with the JSON null value. By default, fields with empty
46809	// values are omitted from API requests. However, any field with an
46810	// empty value appearing in NullFields will be sent to the server as
46811	// null. It is an error if a field in this list has a non-empty value.
46812	// This may be used to include null fields in Patch requests.
46813	NullFields []string `json:"-"`
46814}
46815
46816func (s *TargetTcpProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
46817	type NoMethod TargetTcpProxiesSetBackendServiceRequest
46818	raw := NoMethod(*s)
46819	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46820}
46821
46822type TargetTcpProxiesSetProxyHeaderRequest struct {
46823	// ProxyHeader: The new type of proxy header to append before sending
46824	// data to the backend. NONE or PROXY_V1 are allowed.
46825	//
46826	// Possible values:
46827	//   "NONE"
46828	//   "PROXY_V1"
46829	ProxyHeader string `json:"proxyHeader,omitempty"`
46830
46831	// ForceSendFields is a list of field names (e.g. "ProxyHeader") to
46832	// unconditionally include in API requests. By default, fields with
46833	// empty or default values are omitted from API requests. However, any
46834	// non-pointer, non-interface field appearing in ForceSendFields will be
46835	// sent to the server regardless of whether the field is empty or not.
46836	// This may be used to include empty fields in Patch requests.
46837	ForceSendFields []string `json:"-"`
46838
46839	// NullFields is a list of field names (e.g. "ProxyHeader") to include
46840	// in API requests with the JSON null value. By default, fields with
46841	// empty values are omitted from API requests. However, any field with
46842	// an empty value appearing in NullFields will be sent to the server as
46843	// null. It is an error if a field in this list has a non-empty value.
46844	// This may be used to include null fields in Patch requests.
46845	NullFields []string `json:"-"`
46846}
46847
46848func (s *TargetTcpProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
46849	type NoMethod TargetTcpProxiesSetProxyHeaderRequest
46850	raw := NoMethod(*s)
46851	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46852}
46853
46854// TargetTcpProxy: Represents a Target TCP Proxy resource. A target TCP
46855// proxy is a component of a TCP Proxy load balancer. Global forwarding
46856// rules reference target TCP proxy, and the target proxy then
46857// references an external backend service. For more information, read
46858// TCP Proxy Load Balancing overview.
46859type TargetTcpProxy struct {
46860	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
46861	// format.
46862	CreationTimestamp string `json:"creationTimestamp,omitempty"`
46863
46864	// Description: An optional description of this resource. Provide this
46865	// property when you create the resource.
46866	Description string `json:"description,omitempty"`
46867
46868	// Id: [Output Only] The unique identifier for the resource. This
46869	// identifier is defined by the server.
46870	Id uint64 `json:"id,omitempty,string"`
46871
46872	// Kind: [Output Only] Type of the resource. Always
46873	// compute#targetTcpProxy for target TCP proxies.
46874	Kind string `json:"kind,omitempty"`
46875
46876	// Name: Name of the resource. Provided by the client when the resource
46877	// is created. The name must be 1-63 characters long, and comply with
46878	// RFC1035. Specifically, the name must be 1-63 characters long and
46879	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
46880	// the first character must be a lowercase letter, and all following
46881	// characters must be a dash, lowercase letter, or digit, except the
46882	// last character, which cannot be a dash.
46883	Name string `json:"name,omitempty"`
46884
46885	// ProxyBind: This field only applies when the forwarding rule that
46886	// references this target proxy has a loadBalancingScheme set to
46887	// INTERNAL_SELF_MANAGED. When this field is set to true, Envoy proxies
46888	// set up inbound traffic interception and bind to the IP address and
46889	// port specified in the forwarding rule. This is generally useful when
46890	// using Traffic Director to configure Envoy as a gateway or middle
46891	// proxy (in other words, not a sidecar proxy). The Envoy proxy listens
46892	// for inbound requests and handles requests when it receives them. The
46893	// default is false.
46894	ProxyBind bool `json:"proxyBind,omitempty"`
46895
46896	// ProxyHeader: Specifies the type of proxy header to append before
46897	// sending data to the backend, either NONE or PROXY_V1. The default is
46898	// NONE.
46899	//
46900	// Possible values:
46901	//   "NONE"
46902	//   "PROXY_V1"
46903	ProxyHeader string `json:"proxyHeader,omitempty"`
46904
46905	// SelfLink: [Output Only] Server-defined URL for the resource.
46906	SelfLink string `json:"selfLink,omitempty"`
46907
46908	// Service: URL to the BackendService resource.
46909	Service string `json:"service,omitempty"`
46910
46911	// ServerResponse contains the HTTP response code and headers from the
46912	// server.
46913	googleapi.ServerResponse `json:"-"`
46914
46915	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
46916	// to unconditionally include in API requests. By default, fields with
46917	// empty or default values are omitted from API requests. However, any
46918	// non-pointer, non-interface field appearing in ForceSendFields will be
46919	// sent to the server regardless of whether the field is empty or not.
46920	// This may be used to include empty fields in Patch requests.
46921	ForceSendFields []string `json:"-"`
46922
46923	// NullFields is a list of field names (e.g. "CreationTimestamp") to
46924	// include in API requests with the JSON null value. By default, fields
46925	// with empty values are omitted from API requests. However, any field
46926	// with an empty value appearing in NullFields will be sent to the
46927	// server as null. It is an error if a field in this list has a
46928	// non-empty value. This may be used to include null fields in Patch
46929	// requests.
46930	NullFields []string `json:"-"`
46931}
46932
46933func (s *TargetTcpProxy) MarshalJSON() ([]byte, error) {
46934	type NoMethod TargetTcpProxy
46935	raw := NoMethod(*s)
46936	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46937}
46938
46939// TargetTcpProxyList: Contains a list of TargetTcpProxy resources.
46940type TargetTcpProxyList struct {
46941	// Id: [Output Only] Unique identifier for the resource; defined by the
46942	// server.
46943	Id string `json:"id,omitempty"`
46944
46945	// Items: A list of TargetTcpProxy resources.
46946	Items []*TargetTcpProxy `json:"items,omitempty"`
46947
46948	// Kind: Type of resource.
46949	Kind string `json:"kind,omitempty"`
46950
46951	// NextPageToken: [Output Only] This token allows you to get the next
46952	// page of results for list requests. If the number of results is larger
46953	// than maxResults, use the nextPageToken as a value for the query
46954	// parameter pageToken in the next list request. Subsequent list
46955	// requests will have their own nextPageToken to continue paging through
46956	// the results.
46957	NextPageToken string `json:"nextPageToken,omitempty"`
46958
46959	// SelfLink: [Output Only] Server-defined URL for this resource.
46960	SelfLink string `json:"selfLink,omitempty"`
46961
46962	// Warning: [Output Only] Informational warning message.
46963	Warning *TargetTcpProxyListWarning `json:"warning,omitempty"`
46964
46965	// ServerResponse contains the HTTP response code and headers from the
46966	// server.
46967	googleapi.ServerResponse `json:"-"`
46968
46969	// ForceSendFields is a list of field names (e.g. "Id") to
46970	// unconditionally include in API requests. By default, fields with
46971	// empty or default values are omitted from API requests. However, any
46972	// non-pointer, non-interface field appearing in ForceSendFields will be
46973	// sent to the server regardless of whether the field is empty or not.
46974	// This may be used to include empty fields in Patch requests.
46975	ForceSendFields []string `json:"-"`
46976
46977	// NullFields is a list of field names (e.g. "Id") to include in API
46978	// requests with the JSON null value. By default, fields with empty
46979	// values are omitted from API requests. However, any field with an
46980	// empty value appearing in NullFields will be sent to the server as
46981	// null. It is an error if a field in this list has a non-empty value.
46982	// This may be used to include null fields in Patch requests.
46983	NullFields []string `json:"-"`
46984}
46985
46986func (s *TargetTcpProxyList) MarshalJSON() ([]byte, error) {
46987	type NoMethod TargetTcpProxyList
46988	raw := NoMethod(*s)
46989	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46990}
46991
46992// TargetTcpProxyListWarning: [Output Only] Informational warning
46993// message.
46994type TargetTcpProxyListWarning struct {
46995	// Code: [Output Only] A warning code, if applicable. For example,
46996	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46997	// the response.
46998	//
46999	// Possible values:
47000	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
47001	// changes made by a failed operation.
47002	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
47003	// created.
47004	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
47005	// resources has a type marked as deprecated
47006	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
47007	// that is larger than image size.
47008	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
47009	// resources has a type marked as experimental
47010	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
47011	// call
47012	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
47013	// overridden. Deprecated unused field.
47014	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
47015	// injected kernel, which is deprecated.
47016	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
47017	// exceedingly large number of resources
47018	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
47019	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
47020	// not assigned to an instance on the network.
47021	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
47022	// ip forward.
47023	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
47024	// refers to an instance that does not exist.
47025	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
47026	// URL refers to an instance that is not on the same network as the
47027	// route.
47028	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
47029	// have a status of RUNNING.
47030	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
47031	// continue the process despite the mentioned error.
47032	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
47033	// page.
47034	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
47035	// missing due to errors
47036	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
47037	// that requires a TOS they have not accepted.
47038	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
47039	// resource is in use.
47040	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
47041	// auto-delete could not be deleted because they were in use.
47042	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
47043	// ignored.
47044	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
47045	// instance group manager is valid as such, but its application does not
47046	// make a lot of sense, because it allows only single instance in
47047	// instance group.
47048	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
47049	// are present
47050	//   "UNREACHABLE" - A given scope cannot be reached.
47051	Code string `json:"code,omitempty"`
47052
47053	// Data: [Output Only] Metadata about this warning in key: value format.
47054	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
47055	// }
47056	Data []*TargetTcpProxyListWarningData `json:"data,omitempty"`
47057
47058	// Message: [Output Only] A human-readable description of the warning
47059	// code.
47060	Message string `json:"message,omitempty"`
47061
47062	// ForceSendFields is a list of field names (e.g. "Code") to
47063	// unconditionally include in API requests. By default, fields with
47064	// empty or default values are omitted from API requests. However, any
47065	// non-pointer, non-interface field appearing in ForceSendFields will be
47066	// sent to the server regardless of whether the field is empty or not.
47067	// This may be used to include empty fields in Patch requests.
47068	ForceSendFields []string `json:"-"`
47069
47070	// NullFields is a list of field names (e.g. "Code") to include in API
47071	// requests with the JSON null value. By default, fields with empty
47072	// values are omitted from API requests. However, any field with an
47073	// empty value appearing in NullFields will be sent to the server as
47074	// null. It is an error if a field in this list has a non-empty value.
47075	// This may be used to include null fields in Patch requests.
47076	NullFields []string `json:"-"`
47077}
47078
47079func (s *TargetTcpProxyListWarning) MarshalJSON() ([]byte, error) {
47080	type NoMethod TargetTcpProxyListWarning
47081	raw := NoMethod(*s)
47082	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47083}
47084
47085type TargetTcpProxyListWarningData struct {
47086	// Key: [Output Only] A key that provides more detail on the warning
47087	// being returned. For example, for warnings where there are no results
47088	// in a list request for a particular zone, this key might be scope and
47089	// the key value might be the zone name. Other examples might be a key
47090	// indicating a deprecated resource and a suggested replacement, or a
47091	// warning about invalid network settings (for example, if an instance
47092	// attempts to perform IP forwarding but is not enabled for IP
47093	// forwarding).
47094	Key string `json:"key,omitempty"`
47095
47096	// Value: [Output Only] A warning data value corresponding to the key.
47097	Value string `json:"value,omitempty"`
47098
47099	// ForceSendFields is a list of field names (e.g. "Key") to
47100	// unconditionally include in API requests. By default, fields with
47101	// empty or default values are omitted from API requests. However, any
47102	// non-pointer, non-interface field appearing in ForceSendFields will be
47103	// sent to the server regardless of whether the field is empty or not.
47104	// This may be used to include empty fields in Patch requests.
47105	ForceSendFields []string `json:"-"`
47106
47107	// NullFields is a list of field names (e.g. "Key") to include in API
47108	// requests with the JSON null value. By default, fields with empty
47109	// values are omitted from API requests. However, any field with an
47110	// empty value appearing in NullFields will be sent to the server as
47111	// null. It is an error if a field in this list has a non-empty value.
47112	// This may be used to include null fields in Patch requests.
47113	NullFields []string `json:"-"`
47114}
47115
47116func (s *TargetTcpProxyListWarningData) MarshalJSON() ([]byte, error) {
47117	type NoMethod TargetTcpProxyListWarningData
47118	raw := NoMethod(*s)
47119	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47120}
47121
47122// TargetVpnGateway: Represents a Target VPN Gateway resource. The
47123// target VPN gateway resource represents a Classic Cloud VPN gateway.
47124// For more information, read the the Cloud VPN Overview.
47125type TargetVpnGateway struct {
47126	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
47127	// format.
47128	CreationTimestamp string `json:"creationTimestamp,omitempty"`
47129
47130	// Description: An optional description of this resource. Provide this
47131	// property when you create the resource.
47132	Description string `json:"description,omitempty"`
47133
47134	// ForwardingRules: [Output Only] A list of URLs to the ForwardingRule
47135	// resources. ForwardingRules are created using
47136	// compute.forwardingRules.insert and associated with a VPN gateway.
47137	ForwardingRules []string `json:"forwardingRules,omitempty"`
47138
47139	// Id: [Output Only] The unique identifier for the resource. This
47140	// identifier is defined by the server.
47141	Id uint64 `json:"id,omitempty,string"`
47142
47143	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
47144	// for target VPN gateways.
47145	Kind string `json:"kind,omitempty"`
47146
47147	// Name: Name of the resource. Provided by the client when the resource
47148	// is created. The name must be 1-63 characters long, and comply with
47149	// RFC1035. Specifically, the name must be 1-63 characters long and
47150	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
47151	// the first character must be a lowercase letter, and all following
47152	// characters must be a dash, lowercase letter, or digit, except the
47153	// last character, which cannot be a dash.
47154	Name string `json:"name,omitempty"`
47155
47156	// Network: URL of the network to which this VPN gateway is attached.
47157	// Provided by the client when the VPN gateway is created.
47158	Network string `json:"network,omitempty"`
47159
47160	// Region: [Output Only] URL of the region where the target VPN gateway
47161	// resides. You must specify this field as part of the HTTP request URL.
47162	// It is not settable as a field in the request body.
47163	Region string `json:"region,omitempty"`
47164
47165	// SelfLink: [Output Only] Server-defined URL for the resource.
47166	SelfLink string `json:"selfLink,omitempty"`
47167
47168	// Status: [Output Only] The status of the VPN gateway, which can be one
47169	// of the following: CREATING, READY, FAILED, or DELETING.
47170	//
47171	// Possible values:
47172	//   "CREATING"
47173	//   "DELETING"
47174	//   "FAILED"
47175	//   "READY"
47176	Status string `json:"status,omitempty"`
47177
47178	// Tunnels: [Output Only] A list of URLs to VpnTunnel resources.
47179	// VpnTunnels are created using the compute.vpntunnels.insert method and
47180	// associated with a VPN gateway.
47181	Tunnels []string `json:"tunnels,omitempty"`
47182
47183	// ServerResponse contains the HTTP response code and headers from the
47184	// server.
47185	googleapi.ServerResponse `json:"-"`
47186
47187	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
47188	// to unconditionally include in API requests. By default, fields with
47189	// empty or default values are omitted from API requests. However, any
47190	// non-pointer, non-interface field appearing in ForceSendFields will be
47191	// sent to the server regardless of whether the field is empty or not.
47192	// This may be used to include empty fields in Patch requests.
47193	ForceSendFields []string `json:"-"`
47194
47195	// NullFields is a list of field names (e.g. "CreationTimestamp") to
47196	// include in API requests with the JSON null value. By default, fields
47197	// with empty values are omitted from API requests. However, any field
47198	// with an empty value appearing in NullFields will be sent to the
47199	// server as null. It is an error if a field in this list has a
47200	// non-empty value. This may be used to include null fields in Patch
47201	// requests.
47202	NullFields []string `json:"-"`
47203}
47204
47205func (s *TargetVpnGateway) MarshalJSON() ([]byte, error) {
47206	type NoMethod TargetVpnGateway
47207	raw := NoMethod(*s)
47208	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47209}
47210
47211type TargetVpnGatewayAggregatedList struct {
47212	// Id: [Output Only] Unique identifier for the resource; defined by the
47213	// server.
47214	Id string `json:"id,omitempty"`
47215
47216	// Items: A list of TargetVpnGateway resources.
47217	Items map[string]TargetVpnGatewaysScopedList `json:"items,omitempty"`
47218
47219	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
47220	// for target VPN gateways.
47221	Kind string `json:"kind,omitempty"`
47222
47223	// NextPageToken: [Output Only] This token allows you to get the next
47224	// page of results for list requests. If the number of results is larger
47225	// than maxResults, use the nextPageToken as a value for the query
47226	// parameter pageToken in the next list request. Subsequent list
47227	// requests will have their own nextPageToken to continue paging through
47228	// the results.
47229	NextPageToken string `json:"nextPageToken,omitempty"`
47230
47231	// SelfLink: [Output Only] Server-defined URL for this resource.
47232	SelfLink string `json:"selfLink,omitempty"`
47233
47234	// Unreachables: [Output Only] Unreachable resources.
47235	Unreachables []string `json:"unreachables,omitempty"`
47236
47237	// Warning: [Output Only] Informational warning message.
47238	Warning *TargetVpnGatewayAggregatedListWarning `json:"warning,omitempty"`
47239
47240	// ServerResponse contains the HTTP response code and headers from the
47241	// server.
47242	googleapi.ServerResponse `json:"-"`
47243
47244	// ForceSendFields is a list of field names (e.g. "Id") to
47245	// unconditionally include in API requests. By default, fields with
47246	// empty or default values are omitted from API requests. However, any
47247	// non-pointer, non-interface field appearing in ForceSendFields will be
47248	// sent to the server regardless of whether the field is empty or not.
47249	// This may be used to include empty fields in Patch requests.
47250	ForceSendFields []string `json:"-"`
47251
47252	// NullFields is a list of field names (e.g. "Id") to include in API
47253	// requests with the JSON null value. By default, fields with empty
47254	// values are omitted from API requests. However, any field with an
47255	// empty value appearing in NullFields will be sent to the server as
47256	// null. It is an error if a field in this list has a non-empty value.
47257	// This may be used to include null fields in Patch requests.
47258	NullFields []string `json:"-"`
47259}
47260
47261func (s *TargetVpnGatewayAggregatedList) MarshalJSON() ([]byte, error) {
47262	type NoMethod TargetVpnGatewayAggregatedList
47263	raw := NoMethod(*s)
47264	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47265}
47266
47267// TargetVpnGatewayAggregatedListWarning: [Output Only] Informational
47268// warning message.
47269type TargetVpnGatewayAggregatedListWarning struct {
47270	// Code: [Output Only] A warning code, if applicable. For example,
47271	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
47272	// the response.
47273	//
47274	// Possible values:
47275	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
47276	// changes made by a failed operation.
47277	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
47278	// created.
47279	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
47280	// resources has a type marked as deprecated
47281	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
47282	// that is larger than image size.
47283	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
47284	// resources has a type marked as experimental
47285	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
47286	// call
47287	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
47288	// overridden. Deprecated unused field.
47289	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
47290	// injected kernel, which is deprecated.
47291	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
47292	// exceedingly large number of resources
47293	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
47294	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
47295	// not assigned to an instance on the network.
47296	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
47297	// ip forward.
47298	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
47299	// refers to an instance that does not exist.
47300	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
47301	// URL refers to an instance that is not on the same network as the
47302	// route.
47303	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
47304	// have a status of RUNNING.
47305	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
47306	// continue the process despite the mentioned error.
47307	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
47308	// page.
47309	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
47310	// missing due to errors
47311	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
47312	// that requires a TOS they have not accepted.
47313	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
47314	// resource is in use.
47315	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
47316	// auto-delete could not be deleted because they were in use.
47317	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
47318	// ignored.
47319	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
47320	// instance group manager is valid as such, but its application does not
47321	// make a lot of sense, because it allows only single instance in
47322	// instance group.
47323	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
47324	// are present
47325	//   "UNREACHABLE" - A given scope cannot be reached.
47326	Code string `json:"code,omitempty"`
47327
47328	// Data: [Output Only] Metadata about this warning in key: value format.
47329	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
47330	// }
47331	Data []*TargetVpnGatewayAggregatedListWarningData `json:"data,omitempty"`
47332
47333	// Message: [Output Only] A human-readable description of the warning
47334	// code.
47335	Message string `json:"message,omitempty"`
47336
47337	// ForceSendFields is a list of field names (e.g. "Code") to
47338	// unconditionally include in API requests. By default, fields with
47339	// empty or default values are omitted from API requests. However, any
47340	// non-pointer, non-interface field appearing in ForceSendFields will be
47341	// sent to the server regardless of whether the field is empty or not.
47342	// This may be used to include empty fields in Patch requests.
47343	ForceSendFields []string `json:"-"`
47344
47345	// NullFields is a list of field names (e.g. "Code") to include in API
47346	// requests with the JSON null value. By default, fields with empty
47347	// values are omitted from API requests. However, any field with an
47348	// empty value appearing in NullFields will be sent to the server as
47349	// null. It is an error if a field in this list has a non-empty value.
47350	// This may be used to include null fields in Patch requests.
47351	NullFields []string `json:"-"`
47352}
47353
47354func (s *TargetVpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) {
47355	type NoMethod TargetVpnGatewayAggregatedListWarning
47356	raw := NoMethod(*s)
47357	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47358}
47359
47360type TargetVpnGatewayAggregatedListWarningData struct {
47361	// Key: [Output Only] A key that provides more detail on the warning
47362	// being returned. For example, for warnings where there are no results
47363	// in a list request for a particular zone, this key might be scope and
47364	// the key value might be the zone name. Other examples might be a key
47365	// indicating a deprecated resource and a suggested replacement, or a
47366	// warning about invalid network settings (for example, if an instance
47367	// attempts to perform IP forwarding but is not enabled for IP
47368	// forwarding).
47369	Key string `json:"key,omitempty"`
47370
47371	// Value: [Output Only] A warning data value corresponding to the key.
47372	Value string `json:"value,omitempty"`
47373
47374	// ForceSendFields is a list of field names (e.g. "Key") to
47375	// unconditionally include in API requests. By default, fields with
47376	// empty or default values are omitted from API requests. However, any
47377	// non-pointer, non-interface field appearing in ForceSendFields will be
47378	// sent to the server regardless of whether the field is empty or not.
47379	// This may be used to include empty fields in Patch requests.
47380	ForceSendFields []string `json:"-"`
47381
47382	// NullFields is a list of field names (e.g. "Key") to include in API
47383	// requests with the JSON null value. By default, fields with empty
47384	// values are omitted from API requests. However, any field with an
47385	// empty value appearing in NullFields will be sent to the server as
47386	// null. It is an error if a field in this list has a non-empty value.
47387	// This may be used to include null fields in Patch requests.
47388	NullFields []string `json:"-"`
47389}
47390
47391func (s *TargetVpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) {
47392	type NoMethod TargetVpnGatewayAggregatedListWarningData
47393	raw := NoMethod(*s)
47394	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47395}
47396
47397// TargetVpnGatewayList: Contains a list of TargetVpnGateway resources.
47398type TargetVpnGatewayList struct {
47399	// Id: [Output Only] Unique identifier for the resource; defined by the
47400	// server.
47401	Id string `json:"id,omitempty"`
47402
47403	// Items: A list of TargetVpnGateway resources.
47404	Items []*TargetVpnGateway `json:"items,omitempty"`
47405
47406	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
47407	// for target VPN gateways.
47408	Kind string `json:"kind,omitempty"`
47409
47410	// NextPageToken: [Output Only] This token allows you to get the next
47411	// page of results for list requests. If the number of results is larger
47412	// than maxResults, use the nextPageToken as a value for the query
47413	// parameter pageToken in the next list request. Subsequent list
47414	// requests will have their own nextPageToken to continue paging through
47415	// the results.
47416	NextPageToken string `json:"nextPageToken,omitempty"`
47417
47418	// SelfLink: [Output Only] Server-defined URL for this resource.
47419	SelfLink string `json:"selfLink,omitempty"`
47420
47421	// Warning: [Output Only] Informational warning message.
47422	Warning *TargetVpnGatewayListWarning `json:"warning,omitempty"`
47423
47424	// ServerResponse contains the HTTP response code and headers from the
47425	// server.
47426	googleapi.ServerResponse `json:"-"`
47427
47428	// ForceSendFields is a list of field names (e.g. "Id") to
47429	// unconditionally include in API requests. By default, fields with
47430	// empty or default values are omitted from API requests. However, any
47431	// non-pointer, non-interface field appearing in ForceSendFields will be
47432	// sent to the server regardless of whether the field is empty or not.
47433	// This may be used to include empty fields in Patch requests.
47434	ForceSendFields []string `json:"-"`
47435
47436	// NullFields is a list of field names (e.g. "Id") to include in API
47437	// requests with the JSON null value. By default, fields with empty
47438	// values are omitted from API requests. However, any field with an
47439	// empty value appearing in NullFields will be sent to the server as
47440	// null. It is an error if a field in this list has a non-empty value.
47441	// This may be used to include null fields in Patch requests.
47442	NullFields []string `json:"-"`
47443}
47444
47445func (s *TargetVpnGatewayList) MarshalJSON() ([]byte, error) {
47446	type NoMethod TargetVpnGatewayList
47447	raw := NoMethod(*s)
47448	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47449}
47450
47451// TargetVpnGatewayListWarning: [Output Only] Informational warning
47452// message.
47453type TargetVpnGatewayListWarning struct {
47454	// Code: [Output Only] A warning code, if applicable. For example,
47455	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
47456	// the response.
47457	//
47458	// Possible values:
47459	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
47460	// changes made by a failed operation.
47461	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
47462	// created.
47463	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
47464	// resources has a type marked as deprecated
47465	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
47466	// that is larger than image size.
47467	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
47468	// resources has a type marked as experimental
47469	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
47470	// call
47471	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
47472	// overridden. Deprecated unused field.
47473	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
47474	// injected kernel, which is deprecated.
47475	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
47476	// exceedingly large number of resources
47477	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
47478	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
47479	// not assigned to an instance on the network.
47480	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
47481	// ip forward.
47482	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
47483	// refers to an instance that does not exist.
47484	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
47485	// URL refers to an instance that is not on the same network as the
47486	// route.
47487	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
47488	// have a status of RUNNING.
47489	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
47490	// continue the process despite the mentioned error.
47491	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
47492	// page.
47493	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
47494	// missing due to errors
47495	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
47496	// that requires a TOS they have not accepted.
47497	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
47498	// resource is in use.
47499	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
47500	// auto-delete could not be deleted because they were in use.
47501	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
47502	// ignored.
47503	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
47504	// instance group manager is valid as such, but its application does not
47505	// make a lot of sense, because it allows only single instance in
47506	// instance group.
47507	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
47508	// are present
47509	//   "UNREACHABLE" - A given scope cannot be reached.
47510	Code string `json:"code,omitempty"`
47511
47512	// Data: [Output Only] Metadata about this warning in key: value format.
47513	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
47514	// }
47515	Data []*TargetVpnGatewayListWarningData `json:"data,omitempty"`
47516
47517	// Message: [Output Only] A human-readable description of the warning
47518	// code.
47519	Message string `json:"message,omitempty"`
47520
47521	// ForceSendFields is a list of field names (e.g. "Code") to
47522	// unconditionally include in API requests. By default, fields with
47523	// empty or default values are omitted from API requests. However, any
47524	// non-pointer, non-interface field appearing in ForceSendFields will be
47525	// sent to the server regardless of whether the field is empty or not.
47526	// This may be used to include empty fields in Patch requests.
47527	ForceSendFields []string `json:"-"`
47528
47529	// NullFields is a list of field names (e.g. "Code") to include in API
47530	// requests with the JSON null value. By default, fields with empty
47531	// values are omitted from API requests. However, any field with an
47532	// empty value appearing in NullFields will be sent to the server as
47533	// null. It is an error if a field in this list has a non-empty value.
47534	// This may be used to include null fields in Patch requests.
47535	NullFields []string `json:"-"`
47536}
47537
47538func (s *TargetVpnGatewayListWarning) MarshalJSON() ([]byte, error) {
47539	type NoMethod TargetVpnGatewayListWarning
47540	raw := NoMethod(*s)
47541	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47542}
47543
47544type TargetVpnGatewayListWarningData struct {
47545	// Key: [Output Only] A key that provides more detail on the warning
47546	// being returned. For example, for warnings where there are no results
47547	// in a list request for a particular zone, this key might be scope and
47548	// the key value might be the zone name. Other examples might be a key
47549	// indicating a deprecated resource and a suggested replacement, or a
47550	// warning about invalid network settings (for example, if an instance
47551	// attempts to perform IP forwarding but is not enabled for IP
47552	// forwarding).
47553	Key string `json:"key,omitempty"`
47554
47555	// Value: [Output Only] A warning data value corresponding to the key.
47556	Value string `json:"value,omitempty"`
47557
47558	// ForceSendFields is a list of field names (e.g. "Key") to
47559	// unconditionally include in API requests. By default, fields with
47560	// empty or default values are omitted from API requests. However, any
47561	// non-pointer, non-interface field appearing in ForceSendFields will be
47562	// sent to the server regardless of whether the field is empty or not.
47563	// This may be used to include empty fields in Patch requests.
47564	ForceSendFields []string `json:"-"`
47565
47566	// NullFields is a list of field names (e.g. "Key") to include in API
47567	// requests with the JSON null value. By default, fields with empty
47568	// values are omitted from API requests. However, any field with an
47569	// empty value appearing in NullFields will be sent to the server as
47570	// null. It is an error if a field in this list has a non-empty value.
47571	// This may be used to include null fields in Patch requests.
47572	NullFields []string `json:"-"`
47573}
47574
47575func (s *TargetVpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
47576	type NoMethod TargetVpnGatewayListWarningData
47577	raw := NoMethod(*s)
47578	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47579}
47580
47581type TargetVpnGatewaysScopedList struct {
47582	// TargetVpnGateways: [Output Only] A list of target VPN gateways
47583	// contained in this scope.
47584	TargetVpnGateways []*TargetVpnGateway `json:"targetVpnGateways,omitempty"`
47585
47586	// Warning: [Output Only] Informational warning which replaces the list
47587	// of addresses when the list is empty.
47588	Warning *TargetVpnGatewaysScopedListWarning `json:"warning,omitempty"`
47589
47590	// ForceSendFields is a list of field names (e.g. "TargetVpnGateways")
47591	// to unconditionally include in API requests. By default, fields with
47592	// empty or default values are omitted from API requests. However, any
47593	// non-pointer, non-interface field appearing in ForceSendFields will be
47594	// sent to the server regardless of whether the field is empty or not.
47595	// This may be used to include empty fields in Patch requests.
47596	ForceSendFields []string `json:"-"`
47597
47598	// NullFields is a list of field names (e.g. "TargetVpnGateways") to
47599	// include in API requests with the JSON null value. By default, fields
47600	// with empty values are omitted from API requests. However, any field
47601	// with an empty value appearing in NullFields will be sent to the
47602	// server as null. It is an error if a field in this list has a
47603	// non-empty value. This may be used to include null fields in Patch
47604	// requests.
47605	NullFields []string `json:"-"`
47606}
47607
47608func (s *TargetVpnGatewaysScopedList) MarshalJSON() ([]byte, error) {
47609	type NoMethod TargetVpnGatewaysScopedList
47610	raw := NoMethod(*s)
47611	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47612}
47613
47614// TargetVpnGatewaysScopedListWarning: [Output Only] Informational
47615// warning which replaces the list of addresses when the list is empty.
47616type TargetVpnGatewaysScopedListWarning struct {
47617	// Code: [Output Only] A warning code, if applicable. For example,
47618	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
47619	// the response.
47620	//
47621	// Possible values:
47622	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
47623	// changes made by a failed operation.
47624	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
47625	// created.
47626	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
47627	// resources has a type marked as deprecated
47628	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
47629	// that is larger than image size.
47630	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
47631	// resources has a type marked as experimental
47632	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
47633	// call
47634	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
47635	// overridden. Deprecated unused field.
47636	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
47637	// injected kernel, which is deprecated.
47638	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
47639	// exceedingly large number of resources
47640	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
47641	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
47642	// not assigned to an instance on the network.
47643	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
47644	// ip forward.
47645	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
47646	// refers to an instance that does not exist.
47647	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
47648	// URL refers to an instance that is not on the same network as the
47649	// route.
47650	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
47651	// have a status of RUNNING.
47652	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
47653	// continue the process despite the mentioned error.
47654	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
47655	// page.
47656	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
47657	// missing due to errors
47658	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
47659	// that requires a TOS they have not accepted.
47660	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
47661	// resource is in use.
47662	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
47663	// auto-delete could not be deleted because they were in use.
47664	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
47665	// ignored.
47666	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
47667	// instance group manager is valid as such, but its application does not
47668	// make a lot of sense, because it allows only single instance in
47669	// instance group.
47670	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
47671	// are present
47672	//   "UNREACHABLE" - A given scope cannot be reached.
47673	Code string `json:"code,omitempty"`
47674
47675	// Data: [Output Only] Metadata about this warning in key: value format.
47676	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
47677	// }
47678	Data []*TargetVpnGatewaysScopedListWarningData `json:"data,omitempty"`
47679
47680	// Message: [Output Only] A human-readable description of the warning
47681	// code.
47682	Message string `json:"message,omitempty"`
47683
47684	// ForceSendFields is a list of field names (e.g. "Code") to
47685	// unconditionally include in API requests. By default, fields with
47686	// empty or default values are omitted from API requests. However, any
47687	// non-pointer, non-interface field appearing in ForceSendFields will be
47688	// sent to the server regardless of whether the field is empty or not.
47689	// This may be used to include empty fields in Patch requests.
47690	ForceSendFields []string `json:"-"`
47691
47692	// NullFields is a list of field names (e.g. "Code") to include in API
47693	// requests with the JSON null value. By default, fields with empty
47694	// values are omitted from API requests. However, any field with an
47695	// empty value appearing in NullFields will be sent to the server as
47696	// null. It is an error if a field in this list has a non-empty value.
47697	// This may be used to include null fields in Patch requests.
47698	NullFields []string `json:"-"`
47699}
47700
47701func (s *TargetVpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) {
47702	type NoMethod TargetVpnGatewaysScopedListWarning
47703	raw := NoMethod(*s)
47704	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47705}
47706
47707type TargetVpnGatewaysScopedListWarningData struct {
47708	// Key: [Output Only] A key that provides more detail on the warning
47709	// being returned. For example, for warnings where there are no results
47710	// in a list request for a particular zone, this key might be scope and
47711	// the key value might be the zone name. Other examples might be a key
47712	// indicating a deprecated resource and a suggested replacement, or a
47713	// warning about invalid network settings (for example, if an instance
47714	// attempts to perform IP forwarding but is not enabled for IP
47715	// forwarding).
47716	Key string `json:"key,omitempty"`
47717
47718	// Value: [Output Only] A warning data value corresponding to the key.
47719	Value string `json:"value,omitempty"`
47720
47721	// ForceSendFields is a list of field names (e.g. "Key") to
47722	// unconditionally include in API requests. By default, fields with
47723	// empty or default values are omitted from API requests. However, any
47724	// non-pointer, non-interface field appearing in ForceSendFields will be
47725	// sent to the server regardless of whether the field is empty or not.
47726	// This may be used to include empty fields in Patch requests.
47727	ForceSendFields []string `json:"-"`
47728
47729	// NullFields is a list of field names (e.g. "Key") to include in API
47730	// requests with the JSON null value. By default, fields with empty
47731	// values are omitted from API requests. However, any field with an
47732	// empty value appearing in NullFields will be sent to the server as
47733	// null. It is an error if a field in this list has a non-empty value.
47734	// This may be used to include null fields in Patch requests.
47735	NullFields []string `json:"-"`
47736}
47737
47738func (s *TargetVpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) {
47739	type NoMethod TargetVpnGatewaysScopedListWarningData
47740	raw := NoMethod(*s)
47741	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47742}
47743
47744type TestFailure struct {
47745	// ActualOutputUrl: The actual output URL evaluated by load balancer
47746	// containing the scheme, host, path and query parameters.
47747	ActualOutputUrl string `json:"actualOutputUrl,omitempty"`
47748
47749	// ActualRedirectResponseCode: Actual HTTP status code for rule with
47750	// `urlRedirect` calculated by load balancer
47751	ActualRedirectResponseCode int64 `json:"actualRedirectResponseCode,omitempty"`
47752
47753	// ActualService: BackendService or BackendBucket returned by load
47754	// balancer.
47755	ActualService string `json:"actualService,omitempty"`
47756
47757	// ExpectedOutputUrl: The expected output URL evaluated by load balancer
47758	// containing the scheme, host, path and query parameters.
47759	ExpectedOutputUrl string `json:"expectedOutputUrl,omitempty"`
47760
47761	// ExpectedRedirectResponseCode: Expected HTTP status code for rule with
47762	// `urlRedirect` calculated by load balancer
47763	ExpectedRedirectResponseCode int64 `json:"expectedRedirectResponseCode,omitempty"`
47764
47765	// ExpectedService: Expected BackendService or BackendBucket resource
47766	// the given URL should be mapped to.
47767	ExpectedService string `json:"expectedService,omitempty"`
47768
47769	// Headers: HTTP headers of the request.
47770	Headers []*UrlMapTestHeader `json:"headers,omitempty"`
47771
47772	// Host: Host portion of the URL.
47773	Host string `json:"host,omitempty"`
47774
47775	// Path: Path portion including query parameters in the URL.
47776	Path string `json:"path,omitempty"`
47777
47778	// ForceSendFields is a list of field names (e.g. "ActualOutputUrl") to
47779	// unconditionally include in API requests. By default, fields with
47780	// empty or default values are omitted from API requests. However, any
47781	// non-pointer, non-interface field appearing in ForceSendFields will be
47782	// sent to the server regardless of whether the field is empty or not.
47783	// This may be used to include empty fields in Patch requests.
47784	ForceSendFields []string `json:"-"`
47785
47786	// NullFields is a list of field names (e.g. "ActualOutputUrl") to
47787	// include in API requests with the JSON null value. By default, fields
47788	// with empty values are omitted from API requests. However, any field
47789	// with an empty value appearing in NullFields will be sent to the
47790	// server as null. It is an error if a field in this list has a
47791	// non-empty value. This may be used to include null fields in Patch
47792	// requests.
47793	NullFields []string `json:"-"`
47794}
47795
47796func (s *TestFailure) MarshalJSON() ([]byte, error) {
47797	type NoMethod TestFailure
47798	raw := NoMethod(*s)
47799	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47800}
47801
47802type TestPermissionsRequest struct {
47803	// Permissions: The set of permissions to check for the 'resource'.
47804	// Permissions with wildcards (such as '*' or 'storage.*') are not
47805	// allowed.
47806	Permissions []string `json:"permissions,omitempty"`
47807
47808	// ForceSendFields is a list of field names (e.g. "Permissions") 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. "Permissions") to include
47817	// in API requests with the JSON null value. By default, fields with
47818	// empty values are omitted from API requests. However, any field with
47819	// an 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 *TestPermissionsRequest) MarshalJSON() ([]byte, error) {
47826	type NoMethod TestPermissionsRequest
47827	raw := NoMethod(*s)
47828	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47829}
47830
47831type TestPermissionsResponse struct {
47832	// Permissions: A subset of `TestPermissionsRequest.permissions` that
47833	// the caller is allowed.
47834	Permissions []string `json:"permissions,omitempty"`
47835
47836	// ServerResponse contains the HTTP response code and headers from the
47837	// server.
47838	googleapi.ServerResponse `json:"-"`
47839
47840	// ForceSendFields is a list of field names (e.g. "Permissions") to
47841	// unconditionally include in API requests. By default, fields with
47842	// empty or default values are omitted from API requests. However, any
47843	// non-pointer, non-interface field appearing in ForceSendFields will be
47844	// sent to the server regardless of whether the field is empty or not.
47845	// This may be used to include empty fields in Patch requests.
47846	ForceSendFields []string `json:"-"`
47847
47848	// NullFields is a list of field names (e.g. "Permissions") to include
47849	// in API requests with the JSON null value. By default, fields with
47850	// empty values are omitted from API requests. However, any field with
47851	// an empty value appearing in NullFields will be sent to the server as
47852	// null. It is an error if a field in this list has a non-empty value.
47853	// This may be used to include null fields in Patch requests.
47854	NullFields []string `json:"-"`
47855}
47856
47857func (s *TestPermissionsResponse) MarshalJSON() ([]byte, error) {
47858	type NoMethod TestPermissionsResponse
47859	raw := NoMethod(*s)
47860	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47861}
47862
47863type Uint128 struct {
47864	High uint64 `json:"high,omitempty,string"`
47865
47866	Low uint64 `json:"low,omitempty,string"`
47867
47868	// ForceSendFields is a list of field names (e.g. "High") to
47869	// unconditionally include in API requests. By default, fields with
47870	// empty or default values are omitted from API requests. However, any
47871	// non-pointer, non-interface field appearing in ForceSendFields will be
47872	// sent to the server regardless of whether the field is empty or not.
47873	// This may be used to include empty fields in Patch requests.
47874	ForceSendFields []string `json:"-"`
47875
47876	// NullFields is a list of field names (e.g. "High") to include in API
47877	// requests with the JSON null value. By default, fields with empty
47878	// values are omitted from API requests. However, any field with an
47879	// empty value appearing in NullFields will be sent to the server as
47880	// null. It is an error if a field in this list has a non-empty value.
47881	// This may be used to include null fields in Patch requests.
47882	NullFields []string `json:"-"`
47883}
47884
47885func (s *Uint128) MarshalJSON() ([]byte, error) {
47886	type NoMethod Uint128
47887	raw := NoMethod(*s)
47888	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47889}
47890
47891// UrlMap: Represents a URL Map resource. Google Compute Engine has two
47892// URL Map resources: * Global (/compute/docs/reference/rest/v1/urlMaps)
47893// * Regional (/compute/docs/reference/rest/v1/regionUrlMaps) A URL map
47894// resource is a component of certain types of GCP load balancers and
47895// Traffic Director. * urlMaps are used by external HTTP(S) load
47896// balancers and Traffic Director. * regionUrlMaps are used by internal
47897// HTTP(S) load balancers. For a list of supported URL map features by
47898// load balancer type, see the Load balancing features: Routing and
47899// traffic management table. For a list of supported URL map features
47900// for Traffic Director, see the Traffic Director features: Routing and
47901// traffic management table. This resource defines mappings from host
47902// names and URL paths to either a backend service or a backend bucket.
47903// To use the global urlMaps resource, the backend service must have a
47904// loadBalancingScheme of either EXTERNAL or INTERNAL_SELF_MANAGED. To
47905// use the regionUrlMaps resource, the backend service must have a
47906// loadBalancingScheme of INTERNAL_MANAGED. For more information, read
47907// URL Map Concepts.
47908type UrlMap struct {
47909	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
47910	// format.
47911	CreationTimestamp string `json:"creationTimestamp,omitempty"`
47912
47913	// DefaultRouteAction: defaultRouteAction takes effect when none of the
47914	// hostRules match. The load balancer performs advanced routing actions
47915	// like URL rewrites, header transformations, etc. prior to forwarding
47916	// the request to the selected backend. If defaultRouteAction specifies
47917	// any weightedBackendServices, defaultService must not be set.
47918	// Conversely if defaultService is set, defaultRouteAction cannot
47919	// contain any weightedBackendServices. Only one of defaultRouteAction
47920	// or defaultUrlRedirect must be set. UrlMaps for external HTTP(S) load
47921	// balancers support only the urlRewrite action within
47922	// defaultRouteAction. defaultRouteAction has no effect when the URL map
47923	// is bound to target gRPC proxy that has validateForProxyless field set
47924	// to true.
47925	DefaultRouteAction *HttpRouteAction `json:"defaultRouteAction,omitempty"`
47926
47927	// DefaultService: The full or partial URL of the defaultService
47928	// resource to which traffic is directed if none of the hostRules match.
47929	// If defaultRouteAction is additionally specified, advanced routing
47930	// actions like URL Rewrites, etc. take effect prior to sending the
47931	// request to the backend. However, if defaultService is specified,
47932	// defaultRouteAction cannot contain any weightedBackendServices.
47933	// Conversely, if routeAction specifies any weightedBackendServices,
47934	// service must not be specified. Only one of defaultService,
47935	// defaultUrlRedirect or defaultRouteAction.weightedBackendService must
47936	// be set. defaultService has no effect when the URL map is bound to
47937	// target gRPC proxy that has validateForProxyless field set to true.
47938	DefaultService string `json:"defaultService,omitempty"`
47939
47940	// DefaultUrlRedirect: When none of the specified hostRules match, the
47941	// request is redirected to a URL specified by defaultUrlRedirect. If
47942	// defaultUrlRedirect is specified, defaultService or defaultRouteAction
47943	// must not be set. Not supported when the URL map is bound to target
47944	// gRPC proxy.
47945	DefaultUrlRedirect *HttpRedirectAction `json:"defaultUrlRedirect,omitempty"`
47946
47947	// Description: An optional description of this resource. Provide this
47948	// property when you create the resource.
47949	Description string `json:"description,omitempty"`
47950
47951	// Fingerprint: Fingerprint of this resource. A hash of the contents
47952	// stored in this object. This field is used in optimistic locking. This
47953	// field will be ignored when inserting a UrlMap. An up-to-date
47954	// fingerprint must be provided in order to update the UrlMap, otherwise
47955	// the request will fail with error 412 conditionNotMet. To see the
47956	// latest fingerprint, make a get() request to retrieve a UrlMap.
47957	Fingerprint string `json:"fingerprint,omitempty"`
47958
47959	// HeaderAction: Specifies changes to request and response headers that
47960	// need to take effect for the selected backendService. The headerAction
47961	// specified here take effect after headerAction specified under
47962	// pathMatcher. Note that headerAction is not supported for
47963	// Loadbalancers that have their loadBalancingScheme set to EXTERNAL.
47964	// Not supported when the URL map is bound to target gRPC proxy that has
47965	// validateForProxyless field set to true.
47966	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
47967
47968	// HostRules: The list of HostRules to use against the URL.
47969	HostRules []*HostRule `json:"hostRules,omitempty"`
47970
47971	// Id: [Output Only] The unique identifier for the resource. This
47972	// identifier is defined by the server.
47973	Id uint64 `json:"id,omitempty,string"`
47974
47975	// Kind: [Output Only] Type of the resource. Always compute#urlMaps for
47976	// url maps.
47977	Kind string `json:"kind,omitempty"`
47978
47979	// Name: Name of the resource. Provided by the client when the resource
47980	// is created. The name must be 1-63 characters long, and comply with
47981	// RFC1035. Specifically, the name must be 1-63 characters long and
47982	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
47983	// the first character must be a lowercase letter, and all following
47984	// characters must be a dash, lowercase letter, or digit, except the
47985	// last character, which cannot be a dash.
47986	Name string `json:"name,omitempty"`
47987
47988	// PathMatchers: The list of named PathMatchers to use against the URL.
47989	PathMatchers []*PathMatcher `json:"pathMatchers,omitempty"`
47990
47991	// Region: [Output Only] URL of the region where the regional URL map
47992	// resides. This field is not applicable to global URL maps. You must
47993	// specify this field as part of the HTTP request URL. It is not
47994	// settable as a field in the request body.
47995	Region string `json:"region,omitempty"`
47996
47997	// SelfLink: [Output Only] Server-defined URL for the resource.
47998	SelfLink string `json:"selfLink,omitempty"`
47999
48000	// Tests: The list of expected URL mapping tests. Request to update this
48001	// UrlMap will succeed only if all of the test cases pass. You can
48002	// specify a maximum of 100 tests per UrlMap. Not supported when the URL
48003	// map is bound to target gRPC proxy that has validateForProxyless field
48004	// set to true.
48005	Tests []*UrlMapTest `json:"tests,omitempty"`
48006
48007	// ServerResponse contains the HTTP response code and headers from the
48008	// server.
48009	googleapi.ServerResponse `json:"-"`
48010
48011	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
48012	// to unconditionally include in API requests. By default, fields with
48013	// empty or default values are omitted from API requests. However, any
48014	// non-pointer, non-interface field appearing in ForceSendFields will be
48015	// sent to the server regardless of whether the field is empty or not.
48016	// This may be used to include empty fields in Patch requests.
48017	ForceSendFields []string `json:"-"`
48018
48019	// NullFields is a list of field names (e.g. "CreationTimestamp") to
48020	// include in API requests with the JSON null value. By default, fields
48021	// with empty values are omitted from API requests. However, any field
48022	// with an empty value appearing in NullFields will be sent to the
48023	// server as null. It is an error if a field in this list has a
48024	// non-empty value. This may be used to include null fields in Patch
48025	// requests.
48026	NullFields []string `json:"-"`
48027}
48028
48029func (s *UrlMap) MarshalJSON() ([]byte, error) {
48030	type NoMethod UrlMap
48031	raw := NoMethod(*s)
48032	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48033}
48034
48035// UrlMapList: Contains a list of UrlMap resources.
48036type UrlMapList struct {
48037	// Id: [Output Only] Unique identifier for the resource; defined by the
48038	// server.
48039	Id string `json:"id,omitempty"`
48040
48041	// Items: A list of UrlMap resources.
48042	Items []*UrlMap `json:"items,omitempty"`
48043
48044	// Kind: Type of resource.
48045	Kind string `json:"kind,omitempty"`
48046
48047	// NextPageToken: [Output Only] This token allows you to get the next
48048	// page of results for list requests. If the number of results is larger
48049	// than maxResults, use the nextPageToken as a value for the query
48050	// parameter pageToken in the next list request. Subsequent list
48051	// requests will have their own nextPageToken to continue paging through
48052	// the results.
48053	NextPageToken string `json:"nextPageToken,omitempty"`
48054
48055	// SelfLink: [Output Only] Server-defined URL for this resource.
48056	SelfLink string `json:"selfLink,omitempty"`
48057
48058	// Warning: [Output Only] Informational warning message.
48059	Warning *UrlMapListWarning `json:"warning,omitempty"`
48060
48061	// ServerResponse contains the HTTP response code and headers from the
48062	// server.
48063	googleapi.ServerResponse `json:"-"`
48064
48065	// ForceSendFields is a list of field names (e.g. "Id") to
48066	// unconditionally include in API requests. By default, fields with
48067	// empty or default values are omitted from API requests. However, any
48068	// non-pointer, non-interface field appearing in ForceSendFields will be
48069	// sent to the server regardless of whether the field is empty or not.
48070	// This may be used to include empty fields in Patch requests.
48071	ForceSendFields []string `json:"-"`
48072
48073	// NullFields is a list of field names (e.g. "Id") to include in API
48074	// requests with the JSON null value. By default, fields with empty
48075	// values are omitted from API requests. However, any field with an
48076	// empty value appearing in NullFields will be sent to the server as
48077	// null. It is an error if a field in this list has a non-empty value.
48078	// This may be used to include null fields in Patch requests.
48079	NullFields []string `json:"-"`
48080}
48081
48082func (s *UrlMapList) MarshalJSON() ([]byte, error) {
48083	type NoMethod UrlMapList
48084	raw := NoMethod(*s)
48085	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48086}
48087
48088// UrlMapListWarning: [Output Only] Informational warning message.
48089type UrlMapListWarning struct {
48090	// Code: [Output Only] A warning code, if applicable. For example,
48091	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
48092	// the response.
48093	//
48094	// Possible values:
48095	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
48096	// changes made by a failed operation.
48097	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
48098	// created.
48099	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
48100	// resources has a type marked as deprecated
48101	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
48102	// that is larger than image size.
48103	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
48104	// resources has a type marked as experimental
48105	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
48106	// call
48107	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
48108	// overridden. Deprecated unused field.
48109	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
48110	// injected kernel, which is deprecated.
48111	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
48112	// exceedingly large number of resources
48113	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
48114	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
48115	// not assigned to an instance on the network.
48116	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
48117	// ip forward.
48118	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
48119	// refers to an instance that does not exist.
48120	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
48121	// URL refers to an instance that is not on the same network as the
48122	// route.
48123	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
48124	// have a status of RUNNING.
48125	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
48126	// continue the process despite the mentioned error.
48127	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
48128	// page.
48129	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
48130	// missing due to errors
48131	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
48132	// that requires a TOS they have not accepted.
48133	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
48134	// resource is in use.
48135	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
48136	// auto-delete could not be deleted because they were in use.
48137	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
48138	// ignored.
48139	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
48140	// instance group manager is valid as such, but its application does not
48141	// make a lot of sense, because it allows only single instance in
48142	// instance group.
48143	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
48144	// are present
48145	//   "UNREACHABLE" - A given scope cannot be reached.
48146	Code string `json:"code,omitempty"`
48147
48148	// Data: [Output Only] Metadata about this warning in key: value format.
48149	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
48150	// }
48151	Data []*UrlMapListWarningData `json:"data,omitempty"`
48152
48153	// Message: [Output Only] A human-readable description of the warning
48154	// code.
48155	Message string `json:"message,omitempty"`
48156
48157	// ForceSendFields is a list of field names (e.g. "Code") to
48158	// unconditionally include in API requests. By default, fields with
48159	// empty or default values are omitted from API requests. However, any
48160	// non-pointer, non-interface field appearing in ForceSendFields will be
48161	// sent to the server regardless of whether the field is empty or not.
48162	// This may be used to include empty fields in Patch requests.
48163	ForceSendFields []string `json:"-"`
48164
48165	// NullFields is a list of field names (e.g. "Code") to include in API
48166	// requests with the JSON null value. By default, fields with empty
48167	// values are omitted from API requests. However, any field with an
48168	// empty value appearing in NullFields will be sent to the server as
48169	// null. It is an error if a field in this list has a non-empty value.
48170	// This may be used to include null fields in Patch requests.
48171	NullFields []string `json:"-"`
48172}
48173
48174func (s *UrlMapListWarning) MarshalJSON() ([]byte, error) {
48175	type NoMethod UrlMapListWarning
48176	raw := NoMethod(*s)
48177	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48178}
48179
48180type UrlMapListWarningData struct {
48181	// Key: [Output Only] A key that provides more detail on the warning
48182	// being returned. For example, for warnings where there are no results
48183	// in a list request for a particular zone, this key might be scope and
48184	// the key value might be the zone name. Other examples might be a key
48185	// indicating a deprecated resource and a suggested replacement, or a
48186	// warning about invalid network settings (for example, if an instance
48187	// attempts to perform IP forwarding but is not enabled for IP
48188	// forwarding).
48189	Key string `json:"key,omitempty"`
48190
48191	// Value: [Output Only] A warning data value corresponding to the key.
48192	Value string `json:"value,omitempty"`
48193
48194	// ForceSendFields is a list of field names (e.g. "Key") to
48195	// unconditionally include in API requests. By default, fields with
48196	// empty or default values are omitted from API requests. However, any
48197	// non-pointer, non-interface field appearing in ForceSendFields will be
48198	// sent to the server regardless of whether the field is empty or not.
48199	// This may be used to include empty fields in Patch requests.
48200	ForceSendFields []string `json:"-"`
48201
48202	// NullFields is a list of field names (e.g. "Key") to include in API
48203	// requests with the JSON null value. By default, fields with empty
48204	// values are omitted from API requests. However, any field with an
48205	// empty value appearing in NullFields will be sent to the server as
48206	// null. It is an error if a field in this list has a non-empty value.
48207	// This may be used to include null fields in Patch requests.
48208	NullFields []string `json:"-"`
48209}
48210
48211func (s *UrlMapListWarningData) MarshalJSON() ([]byte, error) {
48212	type NoMethod UrlMapListWarningData
48213	raw := NoMethod(*s)
48214	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48215}
48216
48217type UrlMapReference struct {
48218	UrlMap string `json:"urlMap,omitempty"`
48219
48220	// ForceSendFields is a list of field names (e.g. "UrlMap") to
48221	// unconditionally include in API requests. By default, fields with
48222	// empty or default values are omitted from API requests. However, any
48223	// non-pointer, non-interface field appearing in ForceSendFields will be
48224	// sent to the server regardless of whether the field is empty or not.
48225	// This may be used to include empty fields in Patch requests.
48226	ForceSendFields []string `json:"-"`
48227
48228	// NullFields is a list of field names (e.g. "UrlMap") to include in API
48229	// requests with the JSON null value. By default, fields with empty
48230	// values are omitted from API requests. However, any field with an
48231	// empty value appearing in NullFields will be sent to the server as
48232	// null. It is an error if a field in this list has a non-empty value.
48233	// This may be used to include null fields in Patch requests.
48234	NullFields []string `json:"-"`
48235}
48236
48237func (s *UrlMapReference) MarshalJSON() ([]byte, error) {
48238	type NoMethod UrlMapReference
48239	raw := NoMethod(*s)
48240	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48241}
48242
48243// UrlMapTest: Message for the expected URL mappings.
48244type UrlMapTest struct {
48245	// Description: Description of this test case.
48246	Description string `json:"description,omitempty"`
48247
48248	// ExpectedOutputUrl: The expected output URL evaluated by load balancer
48249	// containing the scheme, host, path and query parameters. For rules
48250	// that forward requests to backends, the test passes only when
48251	// expectedOutputUrl matches the request forwarded by load balancer to
48252	// backends. For rules with urlRewrite, the test verifies that the
48253	// forwarded request matches hostRewrite and pathPrefixRewrite in the
48254	// urlRewrite action. When service is specified, expectedOutputUrl`s
48255	// scheme is ignored. For rules with urlRedirect, the test passes only
48256	// if expectedOutputUrl matches the URL in the load balancer's redirect
48257	// response. If urlRedirect specifies https_redirect, the test passes
48258	// only if the scheme in expectedOutputUrl is also set to https. If
48259	// urlRedirect specifies strip_query, the test passes only if
48260	// expectedOutputUrl does not contain any query parameters.
48261	// expectedOutputUrl is optional when service is specified.
48262	ExpectedOutputUrl string `json:"expectedOutputUrl,omitempty"`
48263
48264	// ExpectedRedirectResponseCode: For rules with urlRedirect, the test
48265	// passes only if expectedRedirectResponseCode matches the HTTP status
48266	// code in load balancer's redirect response.
48267	// expectedRedirectResponseCode cannot be set when service is set.
48268	ExpectedRedirectResponseCode int64 `json:"expectedRedirectResponseCode,omitempty"`
48269
48270	// Headers: HTTP headers for this request. If headers contains a host
48271	// header, then host must also match the header value.
48272	Headers []*UrlMapTestHeader `json:"headers,omitempty"`
48273
48274	// Host: Host portion of the URL. If headers contains a host header,
48275	// then host must also match the header value.
48276	Host string `json:"host,omitempty"`
48277
48278	// Path: Path portion of the URL.
48279	Path string `json:"path,omitempty"`
48280
48281	// Service: Expected BackendService or BackendBucket resource the given
48282	// URL should be mapped to. service cannot be set if
48283	// expectedRedirectResponseCode is set.
48284	Service string `json:"service,omitempty"`
48285
48286	// ForceSendFields is a list of field names (e.g. "Description") to
48287	// unconditionally include in API requests. By default, fields with
48288	// empty or default values are omitted from API requests. However, any
48289	// non-pointer, non-interface field appearing in ForceSendFields will be
48290	// sent to the server regardless of whether the field is empty or not.
48291	// This may be used to include empty fields in Patch requests.
48292	ForceSendFields []string `json:"-"`
48293
48294	// NullFields is a list of field names (e.g. "Description") to include
48295	// in API requests with the JSON null value. By default, fields with
48296	// empty values are omitted from API requests. However, any field with
48297	// an empty value appearing in NullFields will be sent to the server as
48298	// null. It is an error if a field in this list has a non-empty value.
48299	// This may be used to include null fields in Patch requests.
48300	NullFields []string `json:"-"`
48301}
48302
48303func (s *UrlMapTest) MarshalJSON() ([]byte, error) {
48304	type NoMethod UrlMapTest
48305	raw := NoMethod(*s)
48306	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48307}
48308
48309// UrlMapTestHeader: HTTP headers used in UrlMapTests.
48310type UrlMapTestHeader struct {
48311	// Name: Header name.
48312	Name string `json:"name,omitempty"`
48313
48314	// Value: Header value.
48315	Value string `json:"value,omitempty"`
48316
48317	// ForceSendFields is a list of field names (e.g. "Name") to
48318	// unconditionally include in API requests. By default, fields with
48319	// empty or default values are omitted from API requests. However, any
48320	// non-pointer, non-interface field appearing in ForceSendFields will be
48321	// sent to the server regardless of whether the field is empty or not.
48322	// This may be used to include empty fields in Patch requests.
48323	ForceSendFields []string `json:"-"`
48324
48325	// NullFields is a list of field names (e.g. "Name") to include in API
48326	// requests with the JSON null value. By default, fields with empty
48327	// values are omitted from API requests. However, any field with an
48328	// empty value appearing in NullFields will be sent to the server as
48329	// null. It is an error if a field in this list has a non-empty value.
48330	// This may be used to include null fields in Patch requests.
48331	NullFields []string `json:"-"`
48332}
48333
48334func (s *UrlMapTestHeader) MarshalJSON() ([]byte, error) {
48335	type NoMethod UrlMapTestHeader
48336	raw := NoMethod(*s)
48337	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48338}
48339
48340// UrlMapValidationResult: Message representing the validation result
48341// for a UrlMap.
48342type UrlMapValidationResult struct {
48343	LoadErrors []string `json:"loadErrors,omitempty"`
48344
48345	// LoadSucceeded: Whether the given UrlMap can be successfully loaded.
48346	// If false, 'loadErrors' indicates the reasons.
48347	LoadSucceeded bool `json:"loadSucceeded,omitempty"`
48348
48349	TestFailures []*TestFailure `json:"testFailures,omitempty"`
48350
48351	// TestPassed: If successfully loaded, this field indicates whether the
48352	// test passed. If false, 'testFailures's indicate the reason of
48353	// failure.
48354	TestPassed bool `json:"testPassed,omitempty"`
48355
48356	// ForceSendFields is a list of field names (e.g. "LoadErrors") to
48357	// unconditionally include in API requests. By default, fields with
48358	// empty or default values are omitted from API requests. However, any
48359	// non-pointer, non-interface field appearing in ForceSendFields will be
48360	// sent to the server regardless of whether the field is empty or not.
48361	// This may be used to include empty fields in Patch requests.
48362	ForceSendFields []string `json:"-"`
48363
48364	// NullFields is a list of field names (e.g. "LoadErrors") to include in
48365	// API requests with the JSON null value. By default, fields with empty
48366	// values are omitted from API requests. However, any field with an
48367	// empty value appearing in NullFields will be sent to the server as
48368	// null. It is an error if a field in this list has a non-empty value.
48369	// This may be used to include null fields in Patch requests.
48370	NullFields []string `json:"-"`
48371}
48372
48373func (s *UrlMapValidationResult) MarshalJSON() ([]byte, error) {
48374	type NoMethod UrlMapValidationResult
48375	raw := NoMethod(*s)
48376	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48377}
48378
48379type UrlMapsAggregatedList struct {
48380	// Id: [Output Only] Unique identifier for the resource; defined by the
48381	// server.
48382	Id string `json:"id,omitempty"`
48383
48384	// Items: A list of UrlMapsScopedList resources.
48385	Items map[string]UrlMapsScopedList `json:"items,omitempty"`
48386
48387	// Kind: Type of resource.
48388	Kind string `json:"kind,omitempty"`
48389
48390	// NextPageToken: [Output Only] This token allows you to get the next
48391	// page of results for list requests. If the number of results is larger
48392	// than maxResults, use the nextPageToken as a value for the query
48393	// parameter pageToken in the next list request. Subsequent list
48394	// requests will have their own nextPageToken to continue paging through
48395	// the results.
48396	NextPageToken string `json:"nextPageToken,omitempty"`
48397
48398	// SelfLink: [Output Only] Server-defined URL for this resource.
48399	SelfLink string `json:"selfLink,omitempty"`
48400
48401	// Unreachables: [Output Only] Unreachable resources.
48402	Unreachables []string `json:"unreachables,omitempty"`
48403
48404	// Warning: [Output Only] Informational warning message.
48405	Warning *UrlMapsAggregatedListWarning `json:"warning,omitempty"`
48406
48407	// ServerResponse contains the HTTP response code and headers from the
48408	// server.
48409	googleapi.ServerResponse `json:"-"`
48410
48411	// ForceSendFields is a list of field names (e.g. "Id") to
48412	// unconditionally include in API requests. By default, fields with
48413	// empty or default values are omitted from API requests. However, any
48414	// non-pointer, non-interface field appearing in ForceSendFields will be
48415	// sent to the server regardless of whether the field is empty or not.
48416	// This may be used to include empty fields in Patch requests.
48417	ForceSendFields []string `json:"-"`
48418
48419	// NullFields is a list of field names (e.g. "Id") to include in API
48420	// requests with the JSON null value. By default, fields with empty
48421	// values are omitted from API requests. However, any field with an
48422	// empty value appearing in NullFields will be sent to the server as
48423	// null. It is an error if a field in this list has a non-empty value.
48424	// This may be used to include null fields in Patch requests.
48425	NullFields []string `json:"-"`
48426}
48427
48428func (s *UrlMapsAggregatedList) MarshalJSON() ([]byte, error) {
48429	type NoMethod UrlMapsAggregatedList
48430	raw := NoMethod(*s)
48431	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48432}
48433
48434// UrlMapsAggregatedListWarning: [Output Only] Informational warning
48435// message.
48436type UrlMapsAggregatedListWarning struct {
48437	// Code: [Output Only] A warning code, if applicable. For example,
48438	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
48439	// the response.
48440	//
48441	// Possible values:
48442	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
48443	// changes made by a failed operation.
48444	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
48445	// created.
48446	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
48447	// resources has a type marked as deprecated
48448	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
48449	// that is larger than image size.
48450	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
48451	// resources has a type marked as experimental
48452	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
48453	// call
48454	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
48455	// overridden. Deprecated unused field.
48456	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
48457	// injected kernel, which is deprecated.
48458	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
48459	// exceedingly large number of resources
48460	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
48461	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
48462	// not assigned to an instance on the network.
48463	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
48464	// ip forward.
48465	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
48466	// refers to an instance that does not exist.
48467	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
48468	// URL refers to an instance that is not on the same network as the
48469	// route.
48470	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
48471	// have a status of RUNNING.
48472	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
48473	// continue the process despite the mentioned error.
48474	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
48475	// page.
48476	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
48477	// missing due to errors
48478	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
48479	// that requires a TOS they have not accepted.
48480	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
48481	// resource is in use.
48482	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
48483	// auto-delete could not be deleted because they were in use.
48484	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
48485	// ignored.
48486	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
48487	// instance group manager is valid as such, but its application does not
48488	// make a lot of sense, because it allows only single instance in
48489	// instance group.
48490	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
48491	// are present
48492	//   "UNREACHABLE" - A given scope cannot be reached.
48493	Code string `json:"code,omitempty"`
48494
48495	// Data: [Output Only] Metadata about this warning in key: value format.
48496	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
48497	// }
48498	Data []*UrlMapsAggregatedListWarningData `json:"data,omitempty"`
48499
48500	// Message: [Output Only] A human-readable description of the warning
48501	// code.
48502	Message string `json:"message,omitempty"`
48503
48504	// ForceSendFields is a list of field names (e.g. "Code") to
48505	// unconditionally include in API requests. By default, fields with
48506	// empty or default values are omitted from API requests. However, any
48507	// non-pointer, non-interface field appearing in ForceSendFields will be
48508	// sent to the server regardless of whether the field is empty or not.
48509	// This may be used to include empty fields in Patch requests.
48510	ForceSendFields []string `json:"-"`
48511
48512	// NullFields is a list of field names (e.g. "Code") to include in API
48513	// requests with the JSON null value. By default, fields with empty
48514	// values are omitted from API requests. However, any field with an
48515	// empty value appearing in NullFields will be sent to the server as
48516	// null. It is an error if a field in this list has a non-empty value.
48517	// This may be used to include null fields in Patch requests.
48518	NullFields []string `json:"-"`
48519}
48520
48521func (s *UrlMapsAggregatedListWarning) MarshalJSON() ([]byte, error) {
48522	type NoMethod UrlMapsAggregatedListWarning
48523	raw := NoMethod(*s)
48524	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48525}
48526
48527type UrlMapsAggregatedListWarningData struct {
48528	// Key: [Output Only] A key that provides more detail on the warning
48529	// being returned. For example, for warnings where there are no results
48530	// in a list request for a particular zone, this key might be scope and
48531	// the key value might be the zone name. Other examples might be a key
48532	// indicating a deprecated resource and a suggested replacement, or a
48533	// warning about invalid network settings (for example, if an instance
48534	// attempts to perform IP forwarding but is not enabled for IP
48535	// forwarding).
48536	Key string `json:"key,omitempty"`
48537
48538	// Value: [Output Only] A warning data value corresponding to the key.
48539	Value string `json:"value,omitempty"`
48540
48541	// ForceSendFields is a list of field names (e.g. "Key") 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. "Key") 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 *UrlMapsAggregatedListWarningData) MarshalJSON() ([]byte, error) {
48559	type NoMethod UrlMapsAggregatedListWarningData
48560	raw := NoMethod(*s)
48561	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48562}
48563
48564type UrlMapsScopedList struct {
48565	// UrlMaps: A list of UrlMaps contained in this scope.
48566	UrlMaps []*UrlMap `json:"urlMaps,omitempty"`
48567
48568	// Warning: Informational warning which replaces the list of backend
48569	// services when the list is empty.
48570	Warning *UrlMapsScopedListWarning `json:"warning,omitempty"`
48571
48572	// ForceSendFields is a list of field names (e.g. "UrlMaps") to
48573	// unconditionally include in API requests. By default, fields with
48574	// empty or default values are omitted from API requests. However, any
48575	// non-pointer, non-interface field appearing in ForceSendFields will be
48576	// sent to the server regardless of whether the field is empty or not.
48577	// This may be used to include empty fields in Patch requests.
48578	ForceSendFields []string `json:"-"`
48579
48580	// NullFields is a list of field names (e.g. "UrlMaps") to include in
48581	// API requests with the JSON null value. By default, fields with empty
48582	// values are omitted from API requests. However, any field with an
48583	// empty value appearing in NullFields will be sent to the server as
48584	// null. It is an error if a field in this list has a non-empty value.
48585	// This may be used to include null fields in Patch requests.
48586	NullFields []string `json:"-"`
48587}
48588
48589func (s *UrlMapsScopedList) MarshalJSON() ([]byte, error) {
48590	type NoMethod UrlMapsScopedList
48591	raw := NoMethod(*s)
48592	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48593}
48594
48595// UrlMapsScopedListWarning: Informational warning which replaces the
48596// list of backend services when the list is empty.
48597type UrlMapsScopedListWarning struct {
48598	// Code: [Output Only] A warning code, if applicable. For example,
48599	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
48600	// the response.
48601	//
48602	// Possible values:
48603	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
48604	// changes made by a failed operation.
48605	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
48606	// created.
48607	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
48608	// resources has a type marked as deprecated
48609	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
48610	// that is larger than image size.
48611	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
48612	// resources has a type marked as experimental
48613	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
48614	// call
48615	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
48616	// overridden. Deprecated unused field.
48617	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
48618	// injected kernel, which is deprecated.
48619	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
48620	// exceedingly large number of resources
48621	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
48622	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
48623	// not assigned to an instance on the network.
48624	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
48625	// ip forward.
48626	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
48627	// refers to an instance that does not exist.
48628	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
48629	// URL refers to an instance that is not on the same network as the
48630	// route.
48631	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
48632	// have a status of RUNNING.
48633	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
48634	// continue the process despite the mentioned error.
48635	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
48636	// page.
48637	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
48638	// missing due to errors
48639	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
48640	// that requires a TOS they have not accepted.
48641	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
48642	// resource is in use.
48643	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
48644	// auto-delete could not be deleted because they were in use.
48645	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
48646	// ignored.
48647	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
48648	// instance group manager is valid as such, but its application does not
48649	// make a lot of sense, because it allows only single instance in
48650	// instance group.
48651	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
48652	// are present
48653	//   "UNREACHABLE" - A given scope cannot be reached.
48654	Code string `json:"code,omitempty"`
48655
48656	// Data: [Output Only] Metadata about this warning in key: value format.
48657	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
48658	// }
48659	Data []*UrlMapsScopedListWarningData `json:"data,omitempty"`
48660
48661	// Message: [Output Only] A human-readable description of the warning
48662	// code.
48663	Message string `json:"message,omitempty"`
48664
48665	// ForceSendFields is a list of field names (e.g. "Code") to
48666	// unconditionally include in API requests. By default, fields with
48667	// empty or default values are omitted from API requests. However, any
48668	// non-pointer, non-interface field appearing in ForceSendFields will be
48669	// sent to the server regardless of whether the field is empty or not.
48670	// This may be used to include empty fields in Patch requests.
48671	ForceSendFields []string `json:"-"`
48672
48673	// NullFields is a list of field names (e.g. "Code") to include in API
48674	// requests with the JSON null value. By default, fields with empty
48675	// values are omitted from API requests. However, any field with an
48676	// empty value appearing in NullFields will be sent to the server as
48677	// null. It is an error if a field in this list has a non-empty value.
48678	// This may be used to include null fields in Patch requests.
48679	NullFields []string `json:"-"`
48680}
48681
48682func (s *UrlMapsScopedListWarning) MarshalJSON() ([]byte, error) {
48683	type NoMethod UrlMapsScopedListWarning
48684	raw := NoMethod(*s)
48685	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48686}
48687
48688type UrlMapsScopedListWarningData struct {
48689	// Key: [Output Only] A key that provides more detail on the warning
48690	// being returned. For example, for warnings where there are no results
48691	// in a list request for a particular zone, this key might be scope and
48692	// the key value might be the zone name. Other examples might be a key
48693	// indicating a deprecated resource and a suggested replacement, or a
48694	// warning about invalid network settings (for example, if an instance
48695	// attempts to perform IP forwarding but is not enabled for IP
48696	// forwarding).
48697	Key string `json:"key,omitempty"`
48698
48699	// Value: [Output Only] A warning data value corresponding to the key.
48700	Value string `json:"value,omitempty"`
48701
48702	// ForceSendFields is a list of field names (e.g. "Key") to
48703	// unconditionally include in API requests. By default, fields with
48704	// empty or default values are omitted from API requests. However, any
48705	// non-pointer, non-interface field appearing in ForceSendFields will be
48706	// sent to the server regardless of whether the field is empty or not.
48707	// This may be used to include empty fields in Patch requests.
48708	ForceSendFields []string `json:"-"`
48709
48710	// NullFields is a list of field names (e.g. "Key") to include in API
48711	// requests with the JSON null value. By default, fields with empty
48712	// values are omitted from API requests. However, any field with an
48713	// empty value appearing in NullFields will be sent to the server as
48714	// null. It is an error if a field in this list has a non-empty value.
48715	// This may be used to include null fields in Patch requests.
48716	NullFields []string `json:"-"`
48717}
48718
48719func (s *UrlMapsScopedListWarningData) MarshalJSON() ([]byte, error) {
48720	type NoMethod UrlMapsScopedListWarningData
48721	raw := NoMethod(*s)
48722	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48723}
48724
48725type UrlMapsValidateRequest struct {
48726	// Resource: Content of the UrlMap to be validated.
48727	Resource *UrlMap `json:"resource,omitempty"`
48728
48729	// ForceSendFields is a list of field names (e.g. "Resource") to
48730	// unconditionally include in API requests. By default, fields with
48731	// empty or default values are omitted from API requests. However, any
48732	// non-pointer, non-interface field appearing in ForceSendFields will be
48733	// sent to the server regardless of whether the field is empty or not.
48734	// This may be used to include empty fields in Patch requests.
48735	ForceSendFields []string `json:"-"`
48736
48737	// NullFields is a list of field names (e.g. "Resource") to include in
48738	// API requests with the JSON null value. By default, fields with empty
48739	// values are omitted from API requests. However, any field with an
48740	// empty value appearing in NullFields will be sent to the server as
48741	// null. It is an error if a field in this list has a non-empty value.
48742	// This may be used to include null fields in Patch requests.
48743	NullFields []string `json:"-"`
48744}
48745
48746func (s *UrlMapsValidateRequest) MarshalJSON() ([]byte, error) {
48747	type NoMethod UrlMapsValidateRequest
48748	raw := NoMethod(*s)
48749	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48750}
48751
48752type UrlMapsValidateResponse struct {
48753	Result *UrlMapValidationResult `json:"result,omitempty"`
48754
48755	// ServerResponse contains the HTTP response code and headers from the
48756	// server.
48757	googleapi.ServerResponse `json:"-"`
48758
48759	// ForceSendFields is a list of field names (e.g. "Result") to
48760	// unconditionally include in API requests. By default, fields with
48761	// empty or default values are omitted from API requests. However, any
48762	// non-pointer, non-interface field appearing in ForceSendFields will be
48763	// sent to the server regardless of whether the field is empty or not.
48764	// This may be used to include empty fields in Patch requests.
48765	ForceSendFields []string `json:"-"`
48766
48767	// NullFields is a list of field names (e.g. "Result") to include in API
48768	// requests with the JSON null value. By default, fields with empty
48769	// values are omitted from API requests. However, any field with an
48770	// empty value appearing in NullFields will be sent to the server as
48771	// null. It is an error if a field in this list has a non-empty value.
48772	// This may be used to include null fields in Patch requests.
48773	NullFields []string `json:"-"`
48774}
48775
48776func (s *UrlMapsValidateResponse) MarshalJSON() ([]byte, error) {
48777	type NoMethod UrlMapsValidateResponse
48778	raw := NoMethod(*s)
48779	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48780}
48781
48782// UrlRewrite: The spec for modifying the path before sending the
48783// request to the matched backend service.
48784type UrlRewrite struct {
48785	// HostRewrite: Prior to forwarding the request to the selected service,
48786	// the request's host header is replaced with contents of hostRewrite.
48787	// The value must be between 1 and 255 characters.
48788	HostRewrite string `json:"hostRewrite,omitempty"`
48789
48790	// PathPrefixRewrite: Prior to forwarding the request to the selected
48791	// backend service, the matching portion of the request's path is
48792	// replaced by pathPrefixRewrite. The value must be between 1 and 1024
48793	// characters.
48794	PathPrefixRewrite string `json:"pathPrefixRewrite,omitempty"`
48795
48796	// ForceSendFields is a list of field names (e.g. "HostRewrite") to
48797	// unconditionally include in API requests. By default, fields with
48798	// empty or default values are omitted from API requests. However, any
48799	// non-pointer, non-interface field appearing in ForceSendFields will be
48800	// sent to the server regardless of whether the field is empty or not.
48801	// This may be used to include empty fields in Patch requests.
48802	ForceSendFields []string `json:"-"`
48803
48804	// NullFields is a list of field names (e.g. "HostRewrite") to include
48805	// in API requests with the JSON null value. By default, fields with
48806	// empty values are omitted from API requests. However, any field with
48807	// an empty value appearing in NullFields will be sent to the server as
48808	// null. It is an error if a field in this list has a non-empty value.
48809	// This may be used to include null fields in Patch requests.
48810	NullFields []string `json:"-"`
48811}
48812
48813func (s *UrlRewrite) MarshalJSON() ([]byte, error) {
48814	type NoMethod UrlRewrite
48815	raw := NoMethod(*s)
48816	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48817}
48818
48819// UsableSubnetwork: Subnetwork which the current user has
48820// compute.subnetworks.use permission on.
48821type UsableSubnetwork struct {
48822	// IpCidrRange: The range of internal addresses that are owned by this
48823	// subnetwork.
48824	IpCidrRange string `json:"ipCidrRange,omitempty"`
48825
48826	// Network: Network URL.
48827	Network string `json:"network,omitempty"`
48828
48829	// SecondaryIpRanges: Secondary IP ranges.
48830	SecondaryIpRanges []*UsableSubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
48831
48832	// Subnetwork: Subnetwork URL.
48833	Subnetwork string `json:"subnetwork,omitempty"`
48834
48835	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
48836	// unconditionally include in API requests. By default, fields with
48837	// empty or default values are omitted from API requests. However, any
48838	// non-pointer, non-interface field appearing in ForceSendFields will be
48839	// sent to the server regardless of whether the field is empty or not.
48840	// This may be used to include empty fields in Patch requests.
48841	ForceSendFields []string `json:"-"`
48842
48843	// NullFields is a list of field names (e.g. "IpCidrRange") to include
48844	// in API requests with the JSON null value. By default, fields with
48845	// empty values are omitted from API requests. However, any field with
48846	// an empty value appearing in NullFields will be sent to the server as
48847	// null. It is an error if a field in this list has a non-empty value.
48848	// This may be used to include null fields in Patch requests.
48849	NullFields []string `json:"-"`
48850}
48851
48852func (s *UsableSubnetwork) MarshalJSON() ([]byte, error) {
48853	type NoMethod UsableSubnetwork
48854	raw := NoMethod(*s)
48855	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48856}
48857
48858// UsableSubnetworkSecondaryRange: Secondary IP range of a usable
48859// subnetwork.
48860type UsableSubnetworkSecondaryRange struct {
48861	// IpCidrRange: The range of IP addresses belonging to this subnetwork
48862	// secondary range.
48863	IpCidrRange string `json:"ipCidrRange,omitempty"`
48864
48865	// RangeName: The name associated with this subnetwork secondary range,
48866	// used when adding an alias IP range to a VM instance. The name must be
48867	// 1-63 characters long, and comply with RFC1035. The name must be
48868	// unique within the subnetwork.
48869	RangeName string `json:"rangeName,omitempty"`
48870
48871	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
48872	// unconditionally include in API requests. By default, fields with
48873	// empty or default values are omitted from API requests. However, any
48874	// non-pointer, non-interface field appearing in ForceSendFields will be
48875	// sent to the server regardless of whether the field is empty or not.
48876	// This may be used to include empty fields in Patch requests.
48877	ForceSendFields []string `json:"-"`
48878
48879	// NullFields is a list of field names (e.g. "IpCidrRange") to include
48880	// in API requests with the JSON null value. By default, fields with
48881	// empty values are omitted from API requests. However, any field with
48882	// an empty value appearing in NullFields will be sent to the server as
48883	// null. It is an error if a field in this list has a non-empty value.
48884	// This may be used to include null fields in Patch requests.
48885	NullFields []string `json:"-"`
48886}
48887
48888func (s *UsableSubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
48889	type NoMethod UsableSubnetworkSecondaryRange
48890	raw := NoMethod(*s)
48891	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48892}
48893
48894type UsableSubnetworksAggregatedList struct {
48895	// Id: [Output Only] The unique identifier for the resource. This
48896	// identifier is defined by the server.
48897	Id string `json:"id,omitempty"`
48898
48899	// Items: [Output] A list of usable subnetwork URLs.
48900	Items []*UsableSubnetwork `json:"items,omitempty"`
48901
48902	// Kind: [Output Only] Type of resource. Always
48903	// compute#usableSubnetworksAggregatedList for aggregated lists of
48904	// usable subnetworks.
48905	Kind string `json:"kind,omitempty"`
48906
48907	// NextPageToken: [Output Only] This token allows you to get the next
48908	// page of results for list requests. If the number of results is larger
48909	// than maxResults, use the nextPageToken as a value for the query
48910	// parameter pageToken in the next list request. Subsequent list
48911	// requests will have their own nextPageToken to continue paging through
48912	// the results. In special cases listUsable may return 0 subnetworks and
48913	// nextPageToken which still should be used to get the next page of
48914	// results.
48915	NextPageToken string `json:"nextPageToken,omitempty"`
48916
48917	// SelfLink: [Output Only] Server-defined URL for this resource.
48918	SelfLink string `json:"selfLink,omitempty"`
48919
48920	// Warning: [Output Only] Informational warning message.
48921	Warning *UsableSubnetworksAggregatedListWarning `json:"warning,omitempty"`
48922
48923	// ServerResponse contains the HTTP response code and headers from the
48924	// server.
48925	googleapi.ServerResponse `json:"-"`
48926
48927	// ForceSendFields is a list of field names (e.g. "Id") to
48928	// unconditionally include in API requests. By default, fields with
48929	// empty or default values are omitted from API requests. However, any
48930	// non-pointer, non-interface field appearing in ForceSendFields will be
48931	// sent to the server regardless of whether the field is empty or not.
48932	// This may be used to include empty fields in Patch requests.
48933	ForceSendFields []string `json:"-"`
48934
48935	// NullFields is a list of field names (e.g. "Id") to include in API
48936	// requests with the JSON null value. By default, fields with empty
48937	// values are omitted from API requests. However, any field with an
48938	// empty value appearing in NullFields will be sent to the server as
48939	// null. It is an error if a field in this list has a non-empty value.
48940	// This may be used to include null fields in Patch requests.
48941	NullFields []string `json:"-"`
48942}
48943
48944func (s *UsableSubnetworksAggregatedList) MarshalJSON() ([]byte, error) {
48945	type NoMethod UsableSubnetworksAggregatedList
48946	raw := NoMethod(*s)
48947	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
48948}
48949
48950// UsableSubnetworksAggregatedListWarning: [Output Only] Informational
48951// warning message.
48952type UsableSubnetworksAggregatedListWarning struct {
48953	// Code: [Output Only] A warning code, if applicable. For example,
48954	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
48955	// the response.
48956	//
48957	// Possible values:
48958	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
48959	// changes made by a failed operation.
48960	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
48961	// created.
48962	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
48963	// resources has a type marked as deprecated
48964	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
48965	// that is larger than image size.
48966	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
48967	// resources has a type marked as experimental
48968	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
48969	// call
48970	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
48971	// overridden. Deprecated unused field.
48972	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
48973	// injected kernel, which is deprecated.
48974	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
48975	// exceedingly large number of resources
48976	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
48977	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
48978	// not assigned to an instance on the network.
48979	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
48980	// ip forward.
48981	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
48982	// refers to an instance that does not exist.
48983	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
48984	// URL refers to an instance that is not on the same network as the
48985	// route.
48986	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
48987	// have a status of RUNNING.
48988	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
48989	// continue the process despite the mentioned error.
48990	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
48991	// page.
48992	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
48993	// missing due to errors
48994	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
48995	// that requires a TOS they have not accepted.
48996	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
48997	// resource is in use.
48998	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
48999	// auto-delete could not be deleted because they were in use.
49000	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
49001	// ignored.
49002	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
49003	// instance group manager is valid as such, but its application does not
49004	// make a lot of sense, because it allows only single instance in
49005	// instance group.
49006	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
49007	// are present
49008	//   "UNREACHABLE" - A given scope cannot be reached.
49009	Code string `json:"code,omitempty"`
49010
49011	// Data: [Output Only] Metadata about this warning in key: value format.
49012	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
49013	// }
49014	Data []*UsableSubnetworksAggregatedListWarningData `json:"data,omitempty"`
49015
49016	// Message: [Output Only] A human-readable description of the warning
49017	// code.
49018	Message string `json:"message,omitempty"`
49019
49020	// ForceSendFields is a list of field names (e.g. "Code") to
49021	// unconditionally include in API requests. By default, fields with
49022	// empty or default values are omitted from API requests. However, any
49023	// non-pointer, non-interface field appearing in ForceSendFields will be
49024	// sent to the server regardless of whether the field is empty or not.
49025	// This may be used to include empty fields in Patch requests.
49026	ForceSendFields []string `json:"-"`
49027
49028	// NullFields is a list of field names (e.g. "Code") to include in API
49029	// requests with the JSON null value. By default, fields with empty
49030	// values are omitted from API requests. However, any field with an
49031	// empty value appearing in NullFields will be sent to the server as
49032	// null. It is an error if a field in this list has a non-empty value.
49033	// This may be used to include null fields in Patch requests.
49034	NullFields []string `json:"-"`
49035}
49036
49037func (s *UsableSubnetworksAggregatedListWarning) MarshalJSON() ([]byte, error) {
49038	type NoMethod UsableSubnetworksAggregatedListWarning
49039	raw := NoMethod(*s)
49040	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49041}
49042
49043type UsableSubnetworksAggregatedListWarningData struct {
49044	// Key: [Output Only] A key that provides more detail on the warning
49045	// being returned. For example, for warnings where there are no results
49046	// in a list request for a particular zone, this key might be scope and
49047	// the key value might be the zone name. Other examples might be a key
49048	// indicating a deprecated resource and a suggested replacement, or a
49049	// warning about invalid network settings (for example, if an instance
49050	// attempts to perform IP forwarding but is not enabled for IP
49051	// forwarding).
49052	Key string `json:"key,omitempty"`
49053
49054	// Value: [Output Only] A warning data value corresponding to the key.
49055	Value string `json:"value,omitempty"`
49056
49057	// ForceSendFields is a list of field names (e.g. "Key") to
49058	// unconditionally include in API requests. By default, fields with
49059	// empty or default values are omitted from API requests. However, any
49060	// non-pointer, non-interface field appearing in ForceSendFields will be
49061	// sent to the server regardless of whether the field is empty or not.
49062	// This may be used to include empty fields in Patch requests.
49063	ForceSendFields []string `json:"-"`
49064
49065	// NullFields is a list of field names (e.g. "Key") to include in API
49066	// requests with the JSON null value. By default, fields with empty
49067	// values are omitted from API requests. However, any field with an
49068	// empty value appearing in NullFields will be sent to the server as
49069	// null. It is an error if a field in this list has a non-empty value.
49070	// This may be used to include null fields in Patch requests.
49071	NullFields []string `json:"-"`
49072}
49073
49074func (s *UsableSubnetworksAggregatedListWarningData) MarshalJSON() ([]byte, error) {
49075	type NoMethod UsableSubnetworksAggregatedListWarningData
49076	raw := NoMethod(*s)
49077	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49078}
49079
49080// UsageExportLocation: The location in Cloud Storage and naming method
49081// of the daily usage report. Contains bucket_name and report_name
49082// prefix.
49083type UsageExportLocation struct {
49084	// BucketName: The name of an existing bucket in Cloud Storage where the
49085	// usage report object is stored. The Google Service Account is granted
49086	// write access to this bucket. This can either be the bucket name by
49087	// itself, such as example-bucket, or the bucket name with gs:// or
49088	// https://storage.googleapis.com/ in front of it, such as
49089	// gs://example-bucket.
49090	BucketName string `json:"bucketName,omitempty"`
49091
49092	// ReportNamePrefix: An optional prefix for the name of the usage report
49093	// object stored in bucketName. If not supplied, defaults to usage_gce.
49094	// The report is stored as a CSV file named
49095	// report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the day of the
49096	// usage according to Pacific Time. If you supply a prefix, it should
49097	// conform to Cloud Storage object naming conventions.
49098	ReportNamePrefix string `json:"reportNamePrefix,omitempty"`
49099
49100	// ForceSendFields is a list of field names (e.g. "BucketName") to
49101	// unconditionally include in API requests. By default, fields with
49102	// empty or default values are omitted from API requests. However, any
49103	// non-pointer, non-interface field appearing in ForceSendFields will be
49104	// sent to the server regardless of whether the field is empty or not.
49105	// This may be used to include empty fields in Patch requests.
49106	ForceSendFields []string `json:"-"`
49107
49108	// NullFields is a list of field names (e.g. "BucketName") to include in
49109	// API requests with the JSON null value. By default, fields with empty
49110	// values are omitted from API requests. However, any field with an
49111	// empty value appearing in NullFields will be sent to the server as
49112	// null. It is an error if a field in this list has a non-empty value.
49113	// This may be used to include null fields in Patch requests.
49114	NullFields []string `json:"-"`
49115}
49116
49117func (s *UsageExportLocation) MarshalJSON() ([]byte, error) {
49118	type NoMethod UsageExportLocation
49119	raw := NoMethod(*s)
49120	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49121}
49122
49123// VmEndpointNatMappings: Contain information of Nat mapping for a VM
49124// endpoint (i.e., NIC).
49125type VmEndpointNatMappings struct {
49126	// InstanceName: Name of the VM instance which the endpoint belongs to
49127	InstanceName string `json:"instanceName,omitempty"`
49128
49129	InterfaceNatMappings []*VmEndpointNatMappingsInterfaceNatMappings `json:"interfaceNatMappings,omitempty"`
49130
49131	// ForceSendFields is a list of field names (e.g. "InstanceName") to
49132	// unconditionally include in API requests. By default, fields with
49133	// empty or default values are omitted from API requests. However, any
49134	// non-pointer, non-interface field appearing in ForceSendFields will be
49135	// sent to the server regardless of whether the field is empty or not.
49136	// This may be used to include empty fields in Patch requests.
49137	ForceSendFields []string `json:"-"`
49138
49139	// NullFields is a list of field names (e.g. "InstanceName") to include
49140	// in API requests with the JSON null value. By default, fields with
49141	// empty values are omitted from API requests. However, any field with
49142	// an empty value appearing in NullFields will be sent to the server as
49143	// null. It is an error if a field in this list has a non-empty value.
49144	// This may be used to include null fields in Patch requests.
49145	NullFields []string `json:"-"`
49146}
49147
49148func (s *VmEndpointNatMappings) MarshalJSON() ([]byte, error) {
49149	type NoMethod VmEndpointNatMappings
49150	raw := NoMethod(*s)
49151	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49152}
49153
49154// VmEndpointNatMappingsInterfaceNatMappings: Contain information of Nat
49155// mapping for an interface of this endpoint.
49156type VmEndpointNatMappingsInterfaceNatMappings struct {
49157	// DrainNatIpPortRanges: List of all drain IP:port-range mappings
49158	// assigned to this interface. These ranges are inclusive, that is, both
49159	// the first and the last ports can be used for NAT. Example:
49160	// ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
49161	DrainNatIpPortRanges []string `json:"drainNatIpPortRanges,omitempty"`
49162
49163	// NatIpPortRanges: A list of all IP:port-range mappings assigned to
49164	// this interface. These ranges are inclusive, that is, both the first
49165	// and the last ports can be used for NAT. Example:
49166	// ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
49167	NatIpPortRanges []string `json:"natIpPortRanges,omitempty"`
49168
49169	// NumTotalDrainNatPorts: Total number of drain ports across all NAT IPs
49170	// allocated to this interface. It equals to the aggregated port number
49171	// in the field drain_nat_ip_port_ranges.
49172	NumTotalDrainNatPorts int64 `json:"numTotalDrainNatPorts,omitempty"`
49173
49174	// NumTotalNatPorts: Total number of ports across all NAT IPs allocated
49175	// to this interface. It equals to the aggregated port number in the
49176	// field nat_ip_port_ranges.
49177	NumTotalNatPorts int64 `json:"numTotalNatPorts,omitempty"`
49178
49179	// SourceAliasIpRange: Alias IP range for this interface endpoint. It
49180	// will be a private (RFC 1918) IP range. Examples: "10.33.4.55/32", or
49181	// "192.168.5.0/24".
49182	SourceAliasIpRange string `json:"sourceAliasIpRange,omitempty"`
49183
49184	// SourceVirtualIp: Primary IP of the VM for this NIC.
49185	SourceVirtualIp string `json:"sourceVirtualIp,omitempty"`
49186
49187	// ForceSendFields is a list of field names (e.g.
49188	// "DrainNatIpPortRanges") to unconditionally include in API requests.
49189	// By default, fields with empty or default values are omitted from API
49190	// requests. However, any non-pointer, non-interface field appearing in
49191	// ForceSendFields will be sent to the server regardless of whether the
49192	// field is empty or not. This may be used to include empty fields in
49193	// Patch requests.
49194	ForceSendFields []string `json:"-"`
49195
49196	// NullFields is a list of field names (e.g. "DrainNatIpPortRanges") to
49197	// include in API requests with the JSON null value. By default, fields
49198	// with empty values are omitted from API requests. However, any field
49199	// with an empty value appearing in NullFields will be sent to the
49200	// server as null. It is an error if a field in this list has a
49201	// non-empty value. This may be used to include null fields in Patch
49202	// requests.
49203	NullFields []string `json:"-"`
49204}
49205
49206func (s *VmEndpointNatMappingsInterfaceNatMappings) MarshalJSON() ([]byte, error) {
49207	type NoMethod VmEndpointNatMappingsInterfaceNatMappings
49208	raw := NoMethod(*s)
49209	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49210}
49211
49212// VmEndpointNatMappingsList: Contains a list of VmEndpointNatMappings.
49213type VmEndpointNatMappingsList struct {
49214	// Id: [Output Only] The unique identifier for the resource. This
49215	// identifier is defined by the server.
49216	Id string `json:"id,omitempty"`
49217
49218	// Kind: [Output Only] Type of resource. Always
49219	// compute#vmEndpointNatMappingsList for lists of Nat mappings of VM
49220	// endpoints.
49221	Kind string `json:"kind,omitempty"`
49222
49223	// NextPageToken: [Output Only] This token allows you to get the next
49224	// page of results for list requests. If the number of results is larger
49225	// than maxResults, use the nextPageToken as a value for the query
49226	// parameter pageToken in the next list request. Subsequent list
49227	// requests will have their own nextPageToken to continue paging through
49228	// the results.
49229	NextPageToken string `json:"nextPageToken,omitempty"`
49230
49231	// Result: [Output Only] A list of Nat mapping information of VM
49232	// endpoints.
49233	Result []*VmEndpointNatMappings `json:"result,omitempty"`
49234
49235	// SelfLink: [Output Only] Server-defined URL for this resource.
49236	SelfLink string `json:"selfLink,omitempty"`
49237
49238	// Warning: [Output Only] Informational warning message.
49239	Warning *VmEndpointNatMappingsListWarning `json:"warning,omitempty"`
49240
49241	// ServerResponse contains the HTTP response code and headers from the
49242	// server.
49243	googleapi.ServerResponse `json:"-"`
49244
49245	// ForceSendFields is a list of field names (e.g. "Id") to
49246	// unconditionally include in API requests. By default, fields with
49247	// empty or default values are omitted from API requests. However, any
49248	// non-pointer, non-interface field appearing in ForceSendFields will be
49249	// sent to the server regardless of whether the field is empty or not.
49250	// This may be used to include empty fields in Patch requests.
49251	ForceSendFields []string `json:"-"`
49252
49253	// NullFields is a list of field names (e.g. "Id") to include in API
49254	// requests with the JSON null value. By default, fields with empty
49255	// values are omitted from API requests. However, any field with an
49256	// empty value appearing in NullFields will be sent to the server as
49257	// null. It is an error if a field in this list has a non-empty value.
49258	// This may be used to include null fields in Patch requests.
49259	NullFields []string `json:"-"`
49260}
49261
49262func (s *VmEndpointNatMappingsList) MarshalJSON() ([]byte, error) {
49263	type NoMethod VmEndpointNatMappingsList
49264	raw := NoMethod(*s)
49265	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49266}
49267
49268// VmEndpointNatMappingsListWarning: [Output Only] Informational warning
49269// message.
49270type VmEndpointNatMappingsListWarning struct {
49271	// Code: [Output Only] A warning code, if applicable. For example,
49272	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
49273	// the response.
49274	//
49275	// Possible values:
49276	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
49277	// changes made by a failed operation.
49278	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
49279	// created.
49280	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
49281	// resources has a type marked as deprecated
49282	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
49283	// that is larger than image size.
49284	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
49285	// resources has a type marked as experimental
49286	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
49287	// call
49288	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
49289	// overridden. Deprecated unused field.
49290	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
49291	// injected kernel, which is deprecated.
49292	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
49293	// exceedingly large number of resources
49294	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
49295	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
49296	// not assigned to an instance on the network.
49297	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
49298	// ip forward.
49299	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
49300	// refers to an instance that does not exist.
49301	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
49302	// URL refers to an instance that is not on the same network as the
49303	// route.
49304	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
49305	// have a status of RUNNING.
49306	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
49307	// continue the process despite the mentioned error.
49308	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
49309	// page.
49310	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
49311	// missing due to errors
49312	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
49313	// that requires a TOS they have not accepted.
49314	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
49315	// resource is in use.
49316	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
49317	// auto-delete could not be deleted because they were in use.
49318	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
49319	// ignored.
49320	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
49321	// instance group manager is valid as such, but its application does not
49322	// make a lot of sense, because it allows only single instance in
49323	// instance group.
49324	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
49325	// are present
49326	//   "UNREACHABLE" - A given scope cannot be reached.
49327	Code string `json:"code,omitempty"`
49328
49329	// Data: [Output Only] Metadata about this warning in key: value format.
49330	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
49331	// }
49332	Data []*VmEndpointNatMappingsListWarningData `json:"data,omitempty"`
49333
49334	// Message: [Output Only] A human-readable description of the warning
49335	// code.
49336	Message string `json:"message,omitempty"`
49337
49338	// ForceSendFields is a list of field names (e.g. "Code") to
49339	// unconditionally include in API requests. By default, fields with
49340	// empty or default values are omitted from API requests. However, any
49341	// non-pointer, non-interface field appearing in ForceSendFields will be
49342	// sent to the server regardless of whether the field is empty or not.
49343	// This may be used to include empty fields in Patch requests.
49344	ForceSendFields []string `json:"-"`
49345
49346	// NullFields is a list of field names (e.g. "Code") to include in API
49347	// requests with the JSON null value. By default, fields with empty
49348	// values are omitted from API requests. However, any field with an
49349	// empty value appearing in NullFields will be sent to the server as
49350	// null. It is an error if a field in this list has a non-empty value.
49351	// This may be used to include null fields in Patch requests.
49352	NullFields []string `json:"-"`
49353}
49354
49355func (s *VmEndpointNatMappingsListWarning) MarshalJSON() ([]byte, error) {
49356	type NoMethod VmEndpointNatMappingsListWarning
49357	raw := NoMethod(*s)
49358	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49359}
49360
49361type VmEndpointNatMappingsListWarningData struct {
49362	// Key: [Output Only] A key that provides more detail on the warning
49363	// being returned. For example, for warnings where there are no results
49364	// in a list request for a particular zone, this key might be scope and
49365	// the key value might be the zone name. Other examples might be a key
49366	// indicating a deprecated resource and a suggested replacement, or a
49367	// warning about invalid network settings (for example, if an instance
49368	// attempts to perform IP forwarding but is not enabled for IP
49369	// forwarding).
49370	Key string `json:"key,omitempty"`
49371
49372	// Value: [Output Only] A warning data value corresponding to the key.
49373	Value string `json:"value,omitempty"`
49374
49375	// ForceSendFields is a list of field names (e.g. "Key") to
49376	// unconditionally include in API requests. By default, fields with
49377	// empty or default values are omitted from API requests. However, any
49378	// non-pointer, non-interface field appearing in ForceSendFields will be
49379	// sent to the server regardless of whether the field is empty or not.
49380	// This may be used to include empty fields in Patch requests.
49381	ForceSendFields []string `json:"-"`
49382
49383	// NullFields is a list of field names (e.g. "Key") to include in API
49384	// requests with the JSON null value. By default, fields with empty
49385	// values are omitted from API requests. However, any field with an
49386	// empty value appearing in NullFields will be sent to the server as
49387	// null. It is an error if a field in this list has a non-empty value.
49388	// This may be used to include null fields in Patch requests.
49389	NullFields []string `json:"-"`
49390}
49391
49392func (s *VmEndpointNatMappingsListWarningData) MarshalJSON() ([]byte, error) {
49393	type NoMethod VmEndpointNatMappingsListWarningData
49394	raw := NoMethod(*s)
49395	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49396}
49397
49398// VpnGateway: Represents a HA VPN gateway. HA VPN is a
49399// high-availability (HA) Cloud VPN solution that lets you securely
49400// connect your on-premises network to your Google Cloud Virtual Private
49401// Cloud network through an IPsec VPN connection in a single region. For
49402// more information about Cloud HA VPN solutions, see Cloud VPN
49403// topologies .
49404type VpnGateway struct {
49405	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
49406	// format.
49407	CreationTimestamp string `json:"creationTimestamp,omitempty"`
49408
49409	// Description: An optional description of this resource. Provide this
49410	// property when you create the resource.
49411	Description string `json:"description,omitempty"`
49412
49413	// Id: [Output Only] The unique identifier for the resource. This
49414	// identifier is defined by the server.
49415	Id uint64 `json:"id,omitempty,string"`
49416
49417	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
49418	// VPN gateways.
49419	Kind string `json:"kind,omitempty"`
49420
49421	// LabelFingerprint: A fingerprint for the labels being applied to this
49422	// VpnGateway, which is essentially a hash of the labels set used for
49423	// optimistic locking. The fingerprint is initially generated by Compute
49424	// Engine and changes after every request to modify or update labels.
49425	// You must always provide an up-to-date fingerprint hash in order to
49426	// update or change labels, otherwise the request will fail with error
49427	// 412 conditionNotMet. To see the latest fingerprint, make a get()
49428	// request to retrieve an VpnGateway.
49429	LabelFingerprint string `json:"labelFingerprint,omitempty"`
49430
49431	// Labels: Labels for this resource. These can only be added or modified
49432	// by the setLabels method. Each label key/value pair must comply with
49433	// RFC1035. Label values may be empty.
49434	Labels map[string]string `json:"labels,omitempty"`
49435
49436	// Name: Name of the resource. Provided by the client when the resource
49437	// is created. The name must be 1-63 characters long, and comply with
49438	// RFC1035. Specifically, the name must be 1-63 characters long and
49439	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
49440	// the first character must be a lowercase letter, and all following
49441	// characters must be a dash, lowercase letter, or digit, except the
49442	// last character, which cannot be a dash.
49443	Name string `json:"name,omitempty"`
49444
49445	// Network: URL of the network to which this VPN gateway is attached.
49446	// Provided by the client when the VPN gateway is created.
49447	Network string `json:"network,omitempty"`
49448
49449	// Region: [Output Only] URL of the region where the VPN gateway
49450	// resides.
49451	Region string `json:"region,omitempty"`
49452
49453	// SelfLink: [Output Only] Server-defined URL for the resource.
49454	SelfLink string `json:"selfLink,omitempty"`
49455
49456	// VpnInterfaces: The list of VPN interfaces associated with this VPN
49457	// gateway.
49458	VpnInterfaces []*VpnGatewayVpnGatewayInterface `json:"vpnInterfaces,omitempty"`
49459
49460	// ServerResponse contains the HTTP response code and headers from the
49461	// server.
49462	googleapi.ServerResponse `json:"-"`
49463
49464	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
49465	// to unconditionally include in API requests. By default, fields with
49466	// empty or default values are omitted from API requests. However, any
49467	// non-pointer, non-interface field appearing in ForceSendFields will be
49468	// sent to the server regardless of whether the field is empty or not.
49469	// This may be used to include empty fields in Patch requests.
49470	ForceSendFields []string `json:"-"`
49471
49472	// NullFields is a list of field names (e.g. "CreationTimestamp") to
49473	// include in API requests with the JSON null value. By default, fields
49474	// with empty values are omitted from API requests. However, any field
49475	// with an empty value appearing in NullFields will be sent to the
49476	// server as null. It is an error if a field in this list has a
49477	// non-empty value. This may be used to include null fields in Patch
49478	// requests.
49479	NullFields []string `json:"-"`
49480}
49481
49482func (s *VpnGateway) MarshalJSON() ([]byte, error) {
49483	type NoMethod VpnGateway
49484	raw := NoMethod(*s)
49485	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49486}
49487
49488type VpnGatewayAggregatedList struct {
49489	// Id: [Output Only] Unique identifier for the resource; defined by the
49490	// server.
49491	Id string `json:"id,omitempty"`
49492
49493	// Items: A list of VpnGateway resources.
49494	Items map[string]VpnGatewaysScopedList `json:"items,omitempty"`
49495
49496	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
49497	// VPN gateways.
49498	Kind string `json:"kind,omitempty"`
49499
49500	// NextPageToken: [Output Only] This token allows you to get the next
49501	// page of results for list requests. If the number of results is larger
49502	// than maxResults, use the nextPageToken as a value for the query
49503	// parameter pageToken in the next list request. Subsequent list
49504	// requests will have their own nextPageToken to continue paging through
49505	// the results.
49506	NextPageToken string `json:"nextPageToken,omitempty"`
49507
49508	// SelfLink: [Output Only] Server-defined URL for this resource.
49509	SelfLink string `json:"selfLink,omitempty"`
49510
49511	// Unreachables: [Output Only] Unreachable resources.
49512	Unreachables []string `json:"unreachables,omitempty"`
49513
49514	// Warning: [Output Only] Informational warning message.
49515	Warning *VpnGatewayAggregatedListWarning `json:"warning,omitempty"`
49516
49517	// ServerResponse contains the HTTP response code and headers from the
49518	// server.
49519	googleapi.ServerResponse `json:"-"`
49520
49521	// ForceSendFields is a list of field names (e.g. "Id") to
49522	// unconditionally include in API requests. By default, fields with
49523	// empty or default values are omitted from API requests. However, any
49524	// non-pointer, non-interface field appearing in ForceSendFields will be
49525	// sent to the server regardless of whether the field is empty or not.
49526	// This may be used to include empty fields in Patch requests.
49527	ForceSendFields []string `json:"-"`
49528
49529	// NullFields is a list of field names (e.g. "Id") to include in API
49530	// requests with the JSON null value. By default, fields with empty
49531	// values are omitted from API requests. However, any field with an
49532	// empty value appearing in NullFields will be sent to the server as
49533	// null. It is an error if a field in this list has a non-empty value.
49534	// This may be used to include null fields in Patch requests.
49535	NullFields []string `json:"-"`
49536}
49537
49538func (s *VpnGatewayAggregatedList) MarshalJSON() ([]byte, error) {
49539	type NoMethod VpnGatewayAggregatedList
49540	raw := NoMethod(*s)
49541	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49542}
49543
49544// VpnGatewayAggregatedListWarning: [Output Only] Informational warning
49545// message.
49546type VpnGatewayAggregatedListWarning struct {
49547	// Code: [Output Only] A warning code, if applicable. For example,
49548	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
49549	// the response.
49550	//
49551	// Possible values:
49552	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
49553	// changes made by a failed operation.
49554	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
49555	// created.
49556	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
49557	// resources has a type marked as deprecated
49558	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
49559	// that is larger than image size.
49560	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
49561	// resources has a type marked as experimental
49562	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
49563	// call
49564	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
49565	// overridden. Deprecated unused field.
49566	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
49567	// injected kernel, which is deprecated.
49568	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
49569	// exceedingly large number of resources
49570	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
49571	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
49572	// not assigned to an instance on the network.
49573	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
49574	// ip forward.
49575	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
49576	// refers to an instance that does not exist.
49577	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
49578	// URL refers to an instance that is not on the same network as the
49579	// route.
49580	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
49581	// have a status of RUNNING.
49582	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
49583	// continue the process despite the mentioned error.
49584	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
49585	// page.
49586	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
49587	// missing due to errors
49588	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
49589	// that requires a TOS they have not accepted.
49590	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
49591	// resource is in use.
49592	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
49593	// auto-delete could not be deleted because they were in use.
49594	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
49595	// ignored.
49596	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
49597	// instance group manager is valid as such, but its application does not
49598	// make a lot of sense, because it allows only single instance in
49599	// instance group.
49600	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
49601	// are present
49602	//   "UNREACHABLE" - A given scope cannot be reached.
49603	Code string `json:"code,omitempty"`
49604
49605	// Data: [Output Only] Metadata about this warning in key: value format.
49606	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
49607	// }
49608	Data []*VpnGatewayAggregatedListWarningData `json:"data,omitempty"`
49609
49610	// Message: [Output Only] A human-readable description of the warning
49611	// code.
49612	Message string `json:"message,omitempty"`
49613
49614	// ForceSendFields is a list of field names (e.g. "Code") to
49615	// unconditionally include in API requests. By default, fields with
49616	// empty or default values are omitted from API requests. However, any
49617	// non-pointer, non-interface field appearing in ForceSendFields will be
49618	// sent to the server regardless of whether the field is empty or not.
49619	// This may be used to include empty fields in Patch requests.
49620	ForceSendFields []string `json:"-"`
49621
49622	// NullFields is a list of field names (e.g. "Code") to include in API
49623	// requests with the JSON null value. By default, fields with empty
49624	// values are omitted from API requests. However, any field with an
49625	// empty value appearing in NullFields will be sent to the server as
49626	// null. It is an error if a field in this list has a non-empty value.
49627	// This may be used to include null fields in Patch requests.
49628	NullFields []string `json:"-"`
49629}
49630
49631func (s *VpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) {
49632	type NoMethod VpnGatewayAggregatedListWarning
49633	raw := NoMethod(*s)
49634	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49635}
49636
49637type VpnGatewayAggregatedListWarningData struct {
49638	// Key: [Output Only] A key that provides more detail on the warning
49639	// being returned. For example, for warnings where there are no results
49640	// in a list request for a particular zone, this key might be scope and
49641	// the key value might be the zone name. Other examples might be a key
49642	// indicating a deprecated resource and a suggested replacement, or a
49643	// warning about invalid network settings (for example, if an instance
49644	// attempts to perform IP forwarding but is not enabled for IP
49645	// forwarding).
49646	Key string `json:"key,omitempty"`
49647
49648	// Value: [Output Only] A warning data value corresponding to the key.
49649	Value string `json:"value,omitempty"`
49650
49651	// ForceSendFields is a list of field names (e.g. "Key") to
49652	// unconditionally include in API requests. By default, fields with
49653	// empty or default values are omitted from API requests. However, any
49654	// non-pointer, non-interface field appearing in ForceSendFields will be
49655	// sent to the server regardless of whether the field is empty or not.
49656	// This may be used to include empty fields in Patch requests.
49657	ForceSendFields []string `json:"-"`
49658
49659	// NullFields is a list of field names (e.g. "Key") to include in API
49660	// requests with the JSON null value. By default, fields with empty
49661	// values are omitted from API requests. However, any field with an
49662	// empty value appearing in NullFields will be sent to the server as
49663	// null. It is an error if a field in this list has a non-empty value.
49664	// This may be used to include null fields in Patch requests.
49665	NullFields []string `json:"-"`
49666}
49667
49668func (s *VpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) {
49669	type NoMethod VpnGatewayAggregatedListWarningData
49670	raw := NoMethod(*s)
49671	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49672}
49673
49674// VpnGatewayList: Contains a list of VpnGateway resources.
49675type VpnGatewayList struct {
49676	// Id: [Output Only] Unique identifier for the resource; defined by the
49677	// server.
49678	Id string `json:"id,omitempty"`
49679
49680	// Items: A list of VpnGateway resources.
49681	Items []*VpnGateway `json:"items,omitempty"`
49682
49683	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
49684	// VPN gateways.
49685	Kind string `json:"kind,omitempty"`
49686
49687	// NextPageToken: [Output Only] This token allows you to get the next
49688	// page of results for list requests. If the number of results is larger
49689	// than maxResults, use the nextPageToken as a value for the query
49690	// parameter pageToken in the next list request. Subsequent list
49691	// requests will have their own nextPageToken to continue paging through
49692	// the results.
49693	NextPageToken string `json:"nextPageToken,omitempty"`
49694
49695	// SelfLink: [Output Only] Server-defined URL for this resource.
49696	SelfLink string `json:"selfLink,omitempty"`
49697
49698	// Warning: [Output Only] Informational warning message.
49699	Warning *VpnGatewayListWarning `json:"warning,omitempty"`
49700
49701	// ServerResponse contains the HTTP response code and headers from the
49702	// server.
49703	googleapi.ServerResponse `json:"-"`
49704
49705	// ForceSendFields is a list of field names (e.g. "Id") to
49706	// unconditionally include in API requests. By default, fields with
49707	// empty or default values are omitted from API requests. However, any
49708	// non-pointer, non-interface field appearing in ForceSendFields will be
49709	// sent to the server regardless of whether the field is empty or not.
49710	// This may be used to include empty fields in Patch requests.
49711	ForceSendFields []string `json:"-"`
49712
49713	// NullFields is a list of field names (e.g. "Id") to include in API
49714	// requests with the JSON null value. By default, fields with empty
49715	// values are omitted from API requests. However, any field with an
49716	// empty value appearing in NullFields will be sent to the server as
49717	// null. It is an error if a field in this list has a non-empty value.
49718	// This may be used to include null fields in Patch requests.
49719	NullFields []string `json:"-"`
49720}
49721
49722func (s *VpnGatewayList) MarshalJSON() ([]byte, error) {
49723	type NoMethod VpnGatewayList
49724	raw := NoMethod(*s)
49725	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49726}
49727
49728// VpnGatewayListWarning: [Output Only] Informational warning message.
49729type VpnGatewayListWarning struct {
49730	// Code: [Output Only] A warning code, if applicable. For example,
49731	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
49732	// the response.
49733	//
49734	// Possible values:
49735	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
49736	// changes made by a failed operation.
49737	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
49738	// created.
49739	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
49740	// resources has a type marked as deprecated
49741	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
49742	// that is larger than image size.
49743	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
49744	// resources has a type marked as experimental
49745	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
49746	// call
49747	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
49748	// overridden. Deprecated unused field.
49749	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
49750	// injected kernel, which is deprecated.
49751	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
49752	// exceedingly large number of resources
49753	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
49754	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
49755	// not assigned to an instance on the network.
49756	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
49757	// ip forward.
49758	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
49759	// refers to an instance that does not exist.
49760	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
49761	// URL refers to an instance that is not on the same network as the
49762	// route.
49763	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
49764	// have a status of RUNNING.
49765	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
49766	// continue the process despite the mentioned error.
49767	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
49768	// page.
49769	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
49770	// missing due to errors
49771	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
49772	// that requires a TOS they have not accepted.
49773	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
49774	// resource is in use.
49775	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
49776	// auto-delete could not be deleted because they were in use.
49777	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
49778	// ignored.
49779	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
49780	// instance group manager is valid as such, but its application does not
49781	// make a lot of sense, because it allows only single instance in
49782	// instance group.
49783	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
49784	// are present
49785	//   "UNREACHABLE" - A given scope cannot be reached.
49786	Code string `json:"code,omitempty"`
49787
49788	// Data: [Output Only] Metadata about this warning in key: value format.
49789	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
49790	// }
49791	Data []*VpnGatewayListWarningData `json:"data,omitempty"`
49792
49793	// Message: [Output Only] A human-readable description of the warning
49794	// code.
49795	Message string `json:"message,omitempty"`
49796
49797	// ForceSendFields is a list of field names (e.g. "Code") to
49798	// unconditionally include in API requests. By default, fields with
49799	// empty or default values are omitted from API requests. However, any
49800	// non-pointer, non-interface field appearing in ForceSendFields will be
49801	// sent to the server regardless of whether the field is empty or not.
49802	// This may be used to include empty fields in Patch requests.
49803	ForceSendFields []string `json:"-"`
49804
49805	// NullFields is a list of field names (e.g. "Code") to include in API
49806	// requests with the JSON null value. By default, fields with empty
49807	// values are omitted from API requests. However, any field with an
49808	// empty value appearing in NullFields will be sent to the server as
49809	// null. It is an error if a field in this list has a non-empty value.
49810	// This may be used to include null fields in Patch requests.
49811	NullFields []string `json:"-"`
49812}
49813
49814func (s *VpnGatewayListWarning) MarshalJSON() ([]byte, error) {
49815	type NoMethod VpnGatewayListWarning
49816	raw := NoMethod(*s)
49817	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49818}
49819
49820type VpnGatewayListWarningData struct {
49821	// Key: [Output Only] A key that provides more detail on the warning
49822	// being returned. For example, for warnings where there are no results
49823	// in a list request for a particular zone, this key might be scope and
49824	// the key value might be the zone name. Other examples might be a key
49825	// indicating a deprecated resource and a suggested replacement, or a
49826	// warning about invalid network settings (for example, if an instance
49827	// attempts to perform IP forwarding but is not enabled for IP
49828	// forwarding).
49829	Key string `json:"key,omitempty"`
49830
49831	// Value: [Output Only] A warning data value corresponding to the key.
49832	Value string `json:"value,omitempty"`
49833
49834	// ForceSendFields is a list of field names (e.g. "Key") to
49835	// unconditionally include in API requests. By default, fields with
49836	// empty or default values are omitted from API requests. However, any
49837	// non-pointer, non-interface field appearing in ForceSendFields will be
49838	// sent to the server regardless of whether the field is empty or not.
49839	// This may be used to include empty fields in Patch requests.
49840	ForceSendFields []string `json:"-"`
49841
49842	// NullFields is a list of field names (e.g. "Key") to include in API
49843	// requests with the JSON null value. By default, fields with empty
49844	// values are omitted from API requests. However, any field with an
49845	// empty value appearing in NullFields will be sent to the server as
49846	// null. It is an error if a field in this list has a non-empty value.
49847	// This may be used to include null fields in Patch requests.
49848	NullFields []string `json:"-"`
49849}
49850
49851func (s *VpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
49852	type NoMethod VpnGatewayListWarningData
49853	raw := NoMethod(*s)
49854	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49855}
49856
49857type VpnGatewayStatus struct {
49858	// VpnConnections: List of VPN connection for this VpnGateway.
49859	VpnConnections []*VpnGatewayStatusVpnConnection `json:"vpnConnections,omitempty"`
49860
49861	// ForceSendFields is a list of field names (e.g. "VpnConnections") to
49862	// unconditionally include in API requests. By default, fields with
49863	// empty or default values are omitted from API requests. However, any
49864	// non-pointer, non-interface field appearing in ForceSendFields will be
49865	// sent to the server regardless of whether the field is empty or not.
49866	// This may be used to include empty fields in Patch requests.
49867	ForceSendFields []string `json:"-"`
49868
49869	// NullFields is a list of field names (e.g. "VpnConnections") to
49870	// include in API requests with the JSON null value. By default, fields
49871	// with empty values are omitted from API requests. However, any field
49872	// with an empty value appearing in NullFields will be sent to the
49873	// server as null. It is an error if a field in this list has a
49874	// non-empty value. This may be used to include null fields in Patch
49875	// requests.
49876	NullFields []string `json:"-"`
49877}
49878
49879func (s *VpnGatewayStatus) MarshalJSON() ([]byte, error) {
49880	type NoMethod VpnGatewayStatus
49881	raw := NoMethod(*s)
49882	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49883}
49884
49885// VpnGatewayStatusHighAvailabilityRequirementState: Describes the high
49886// availability requirement state for the VPN connection between this
49887// Cloud VPN gateway and a peer gateway.
49888type VpnGatewayStatusHighAvailabilityRequirementState struct {
49889	// State: Indicates the high availability requirement state for the VPN
49890	// connection. Valid values are CONNECTION_REDUNDANCY_MET,
49891	// CONNECTION_REDUNDANCY_NOT_MET.
49892	//
49893	// Possible values:
49894	//   "CONNECTION_REDUNDANCY_MET" - VPN tunnels are configured with
49895	// adequate redundancy from Cloud VPN gateway to the peer VPN gateway.
49896	// For both GCP-to-non-GCP and GCP-to-GCP connections, the adequate
49897	// redundancy is a pre-requirement for users to get 99.99% availability
49898	// on GCP side; please note that for any connection, end-to-end 99.99%
49899	// availability is subject to proper configuration on the peer VPN
49900	// gateway.
49901	//   "CONNECTION_REDUNDANCY_NOT_MET" - VPN tunnels are not configured
49902	// with adequate redundancy from the Cloud VPN gateway to the peer
49903	// gateway
49904	State string `json:"state,omitempty"`
49905
49906	// UnsatisfiedReason: Indicates the reason why the VPN connection does
49907	// not meet the high availability redundancy criteria/requirement. Valid
49908	// values is INCOMPLETE_TUNNELS_COVERAGE.
49909	//
49910	// Possible values:
49911	//   "INCOMPLETE_TUNNELS_COVERAGE"
49912	UnsatisfiedReason string `json:"unsatisfiedReason,omitempty"`
49913
49914	// ForceSendFields is a list of field names (e.g. "State") to
49915	// unconditionally include in API requests. By default, fields with
49916	// empty or default values are omitted from API requests. However, any
49917	// non-pointer, non-interface field appearing in ForceSendFields will be
49918	// sent to the server regardless of whether the field is empty or not.
49919	// This may be used to include empty fields in Patch requests.
49920	ForceSendFields []string `json:"-"`
49921
49922	// NullFields is a list of field names (e.g. "State") to include in API
49923	// requests with the JSON null value. By default, fields with empty
49924	// values are omitted from API requests. However, any field with an
49925	// empty value appearing in NullFields will be sent to the server as
49926	// null. It is an error if a field in this list has a non-empty value.
49927	// This may be used to include null fields in Patch requests.
49928	NullFields []string `json:"-"`
49929}
49930
49931func (s *VpnGatewayStatusHighAvailabilityRequirementState) MarshalJSON() ([]byte, error) {
49932	type NoMethod VpnGatewayStatusHighAvailabilityRequirementState
49933	raw := NoMethod(*s)
49934	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49935}
49936
49937// VpnGatewayStatusTunnel: Contains some information about a VPN tunnel.
49938type VpnGatewayStatusTunnel struct {
49939	// LocalGatewayInterface: The VPN gateway interface this VPN tunnel is
49940	// associated with.
49941	LocalGatewayInterface int64 `json:"localGatewayInterface,omitempty"`
49942
49943	// PeerGatewayInterface: The peer gateway interface this VPN tunnel is
49944	// connected to, the peer gateway could either be an external VPN
49945	// gateway or GCP VPN gateway.
49946	PeerGatewayInterface int64 `json:"peerGatewayInterface,omitempty"`
49947
49948	// TunnelUrl: URL reference to the VPN tunnel.
49949	TunnelUrl string `json:"tunnelUrl,omitempty"`
49950
49951	// ForceSendFields is a list of field names (e.g.
49952	// "LocalGatewayInterface") to unconditionally include in API requests.
49953	// By default, fields with empty or default values are omitted from API
49954	// requests. However, any non-pointer, non-interface field appearing in
49955	// ForceSendFields will be sent to the server regardless of whether the
49956	// field is empty or not. This may be used to include empty fields in
49957	// Patch requests.
49958	ForceSendFields []string `json:"-"`
49959
49960	// NullFields is a list of field names (e.g. "LocalGatewayInterface") to
49961	// include in API requests with the JSON null value. By default, fields
49962	// with empty values are omitted from API requests. However, any field
49963	// with an empty value appearing in NullFields will be sent to the
49964	// server as null. It is an error if a field in this list has a
49965	// non-empty value. This may be used to include null fields in Patch
49966	// requests.
49967	NullFields []string `json:"-"`
49968}
49969
49970func (s *VpnGatewayStatusTunnel) MarshalJSON() ([]byte, error) {
49971	type NoMethod VpnGatewayStatusTunnel
49972	raw := NoMethod(*s)
49973	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
49974}
49975
49976// VpnGatewayStatusVpnConnection: A VPN connection contains all VPN
49977// tunnels connected from this VpnGateway to the same peer gateway. The
49978// peer gateway could either be a external VPN gateway or GCP VPN
49979// gateway.
49980type VpnGatewayStatusVpnConnection struct {
49981	// PeerExternalGateway: URL reference to the peer external VPN gateways
49982	// to which the VPN tunnels in this VPN connection are connected. This
49983	// field is mutually exclusive with peer_gcp_gateway.
49984	PeerExternalGateway string `json:"peerExternalGateway,omitempty"`
49985
49986	// PeerGcpGateway: URL reference to the peer side VPN gateways to which
49987	// the VPN tunnels in this VPN connection are connected. This field is
49988	// mutually exclusive with peer_gcp_gateway.
49989	PeerGcpGateway string `json:"peerGcpGateway,omitempty"`
49990
49991	// State: HighAvailabilityRequirementState for the VPN connection.
49992	State *VpnGatewayStatusHighAvailabilityRequirementState `json:"state,omitempty"`
49993
49994	// Tunnels: List of VPN tunnels that are in this VPN connection.
49995	Tunnels []*VpnGatewayStatusTunnel `json:"tunnels,omitempty"`
49996
49997	// ForceSendFields is a list of field names (e.g. "PeerExternalGateway")
49998	// to unconditionally include in API requests. By default, fields with
49999	// empty or default values are omitted from API requests. However, any
50000	// non-pointer, non-interface field appearing in ForceSendFields will be
50001	// sent to the server regardless of whether the field is empty or not.
50002	// This may be used to include empty fields in Patch requests.
50003	ForceSendFields []string `json:"-"`
50004
50005	// NullFields is a list of field names (e.g. "PeerExternalGateway") to
50006	// include in API requests with the JSON null value. By default, fields
50007	// with empty values are omitted from API requests. However, any field
50008	// with an empty value appearing in NullFields will be sent to the
50009	// server as null. It is an error if a field in this list has a
50010	// non-empty value. This may be used to include null fields in Patch
50011	// requests.
50012	NullFields []string `json:"-"`
50013}
50014
50015func (s *VpnGatewayStatusVpnConnection) MarshalJSON() ([]byte, error) {
50016	type NoMethod VpnGatewayStatusVpnConnection
50017	raw := NoMethod(*s)
50018	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50019}
50020
50021// VpnGatewayVpnGatewayInterface: A VPN gateway interface.
50022type VpnGatewayVpnGatewayInterface struct {
50023	// Id: [Output Only] Numeric identifier for this VPN interface
50024	// associated with the VPN gateway.
50025	Id int64 `json:"id,omitempty"`
50026
50027	// InterconnectAttachment: URL of the VLAN attachment
50028	// (interconnectAttachment) resource for this VPN gateway interface.
50029	// When the value of this field is present, the VPN gateway is used for
50030	// IPsec-encrypted Cloud Interconnect; all egress or ingress traffic for
50031	// this VPN gateway interface goes through the specified VLAN attachment
50032	// resource. Not currently available publicly.
50033	InterconnectAttachment string `json:"interconnectAttachment,omitempty"`
50034
50035	// IpAddress: [Output Only] IP address for this VPN interface associated
50036	// with the VPN gateway. The IP address could be either a regional
50037	// external IP address or a regional internal IP address. The two IP
50038	// addresses for a VPN gateway must be all regional external or regional
50039	// internal IP addresses. There cannot be a mix of regional external IP
50040	// addresses and regional internal IP addresses. For IPsec-encrypted
50041	// Cloud Interconnect, the IP addresses for both interfaces could either
50042	// be regional internal IP addresses or regional external IP addresses.
50043	// For regular (non IPsec-encrypted Cloud Interconnect) HA VPN tunnels,
50044	// the IP address must be a regional external IP address.
50045	IpAddress string `json:"ipAddress,omitempty"`
50046
50047	// ForceSendFields is a list of field names (e.g. "Id") to
50048	// unconditionally include in API requests. By default, fields with
50049	// empty or default values are omitted from API requests. However, any
50050	// non-pointer, non-interface field appearing in ForceSendFields will be
50051	// sent to the server regardless of whether the field is empty or not.
50052	// This may be used to include empty fields in Patch requests.
50053	ForceSendFields []string `json:"-"`
50054
50055	// NullFields is a list of field names (e.g. "Id") to include in API
50056	// requests with the JSON null value. By default, fields with empty
50057	// values are omitted from API requests. However, any field with an
50058	// empty value appearing in NullFields will be sent to the server as
50059	// null. It is an error if a field in this list has a non-empty value.
50060	// This may be used to include null fields in Patch requests.
50061	NullFields []string `json:"-"`
50062}
50063
50064func (s *VpnGatewayVpnGatewayInterface) MarshalJSON() ([]byte, error) {
50065	type NoMethod VpnGatewayVpnGatewayInterface
50066	raw := NoMethod(*s)
50067	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50068}
50069
50070type VpnGatewaysGetStatusResponse struct {
50071	Result *VpnGatewayStatus `json:"result,omitempty"`
50072
50073	// ServerResponse contains the HTTP response code and headers from the
50074	// server.
50075	googleapi.ServerResponse `json:"-"`
50076
50077	// ForceSendFields is a list of field names (e.g. "Result") to
50078	// unconditionally include in API requests. By default, fields with
50079	// empty or default values are omitted from API requests. However, any
50080	// non-pointer, non-interface field appearing in ForceSendFields will be
50081	// sent to the server regardless of whether the field is empty or not.
50082	// This may be used to include empty fields in Patch requests.
50083	ForceSendFields []string `json:"-"`
50084
50085	// NullFields is a list of field names (e.g. "Result") to include in API
50086	// requests with the JSON null value. By default, fields with empty
50087	// values are omitted from API requests. However, any field with an
50088	// empty value appearing in NullFields will be sent to the server as
50089	// null. It is an error if a field in this list has a non-empty value.
50090	// This may be used to include null fields in Patch requests.
50091	NullFields []string `json:"-"`
50092}
50093
50094func (s *VpnGatewaysGetStatusResponse) MarshalJSON() ([]byte, error) {
50095	type NoMethod VpnGatewaysGetStatusResponse
50096	raw := NoMethod(*s)
50097	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50098}
50099
50100type VpnGatewaysScopedList struct {
50101	// VpnGateways: [Output Only] A list of VPN gateways contained in this
50102	// scope.
50103	VpnGateways []*VpnGateway `json:"vpnGateways,omitempty"`
50104
50105	// Warning: [Output Only] Informational warning which replaces the list
50106	// of addresses when the list is empty.
50107	Warning *VpnGatewaysScopedListWarning `json:"warning,omitempty"`
50108
50109	// ForceSendFields is a list of field names (e.g. "VpnGateways") to
50110	// unconditionally include in API requests. By default, fields with
50111	// empty or default values are omitted from API requests. However, any
50112	// non-pointer, non-interface field appearing in ForceSendFields will be
50113	// sent to the server regardless of whether the field is empty or not.
50114	// This may be used to include empty fields in Patch requests.
50115	ForceSendFields []string `json:"-"`
50116
50117	// NullFields is a list of field names (e.g. "VpnGateways") to include
50118	// in API requests with the JSON null value. By default, fields with
50119	// empty values are omitted from API requests. However, any field with
50120	// an empty value appearing in NullFields will be sent to the server as
50121	// null. It is an error if a field in this list has a non-empty value.
50122	// This may be used to include null fields in Patch requests.
50123	NullFields []string `json:"-"`
50124}
50125
50126func (s *VpnGatewaysScopedList) MarshalJSON() ([]byte, error) {
50127	type NoMethod VpnGatewaysScopedList
50128	raw := NoMethod(*s)
50129	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50130}
50131
50132// VpnGatewaysScopedListWarning: [Output Only] Informational warning
50133// which replaces the list of addresses when the list is empty.
50134type VpnGatewaysScopedListWarning struct {
50135	// Code: [Output Only] A warning code, if applicable. For example,
50136	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
50137	// the response.
50138	//
50139	// Possible values:
50140	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
50141	// changes made by a failed operation.
50142	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
50143	// created.
50144	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
50145	// resources has a type marked as deprecated
50146	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
50147	// that is larger than image size.
50148	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
50149	// resources has a type marked as experimental
50150	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
50151	// call
50152	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
50153	// overridden. Deprecated unused field.
50154	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
50155	// injected kernel, which is deprecated.
50156	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
50157	// exceedingly large number of resources
50158	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
50159	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
50160	// not assigned to an instance on the network.
50161	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
50162	// ip forward.
50163	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
50164	// refers to an instance that does not exist.
50165	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
50166	// URL refers to an instance that is not on the same network as the
50167	// route.
50168	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
50169	// have a status of RUNNING.
50170	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
50171	// continue the process despite the mentioned error.
50172	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
50173	// page.
50174	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
50175	// missing due to errors
50176	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
50177	// that requires a TOS they have not accepted.
50178	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
50179	// resource is in use.
50180	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
50181	// auto-delete could not be deleted because they were in use.
50182	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
50183	// ignored.
50184	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
50185	// instance group manager is valid as such, but its application does not
50186	// make a lot of sense, because it allows only single instance in
50187	// instance group.
50188	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
50189	// are present
50190	//   "UNREACHABLE" - A given scope cannot be reached.
50191	Code string `json:"code,omitempty"`
50192
50193	// Data: [Output Only] Metadata about this warning in key: value format.
50194	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
50195	// }
50196	Data []*VpnGatewaysScopedListWarningData `json:"data,omitempty"`
50197
50198	// Message: [Output Only] A human-readable description of the warning
50199	// code.
50200	Message string `json:"message,omitempty"`
50201
50202	// ForceSendFields is a list of field names (e.g. "Code") to
50203	// unconditionally include in API requests. By default, fields with
50204	// empty or default values are omitted from API requests. However, any
50205	// non-pointer, non-interface field appearing in ForceSendFields will be
50206	// sent to the server regardless of whether the field is empty or not.
50207	// This may be used to include empty fields in Patch requests.
50208	ForceSendFields []string `json:"-"`
50209
50210	// NullFields is a list of field names (e.g. "Code") to include in API
50211	// requests with the JSON null value. By default, fields with empty
50212	// values are omitted from API requests. However, any field with an
50213	// empty value appearing in NullFields will be sent to the server as
50214	// null. It is an error if a field in this list has a non-empty value.
50215	// This may be used to include null fields in Patch requests.
50216	NullFields []string `json:"-"`
50217}
50218
50219func (s *VpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) {
50220	type NoMethod VpnGatewaysScopedListWarning
50221	raw := NoMethod(*s)
50222	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50223}
50224
50225type VpnGatewaysScopedListWarningData struct {
50226	// Key: [Output Only] A key that provides more detail on the warning
50227	// being returned. For example, for warnings where there are no results
50228	// in a list request for a particular zone, this key might be scope and
50229	// the key value might be the zone name. Other examples might be a key
50230	// indicating a deprecated resource and a suggested replacement, or a
50231	// warning about invalid network settings (for example, if an instance
50232	// attempts to perform IP forwarding but is not enabled for IP
50233	// forwarding).
50234	Key string `json:"key,omitempty"`
50235
50236	// Value: [Output Only] A warning data value corresponding to the key.
50237	Value string `json:"value,omitempty"`
50238
50239	// ForceSendFields is a list of field names (e.g. "Key") to
50240	// unconditionally include in API requests. By default, fields with
50241	// empty or default values are omitted from API requests. However, any
50242	// non-pointer, non-interface field appearing in ForceSendFields will be
50243	// sent to the server regardless of whether the field is empty or not.
50244	// This may be used to include empty fields in Patch requests.
50245	ForceSendFields []string `json:"-"`
50246
50247	// NullFields is a list of field names (e.g. "Key") to include in API
50248	// requests with the JSON null value. By default, fields with empty
50249	// values are omitted from API requests. However, any field with an
50250	// empty value appearing in NullFields will be sent to the server as
50251	// null. It is an error if a field in this list has a non-empty value.
50252	// This may be used to include null fields in Patch requests.
50253	NullFields []string `json:"-"`
50254}
50255
50256func (s *VpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) {
50257	type NoMethod VpnGatewaysScopedListWarningData
50258	raw := NoMethod(*s)
50259	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50260}
50261
50262// VpnTunnel: Represents a Cloud VPN Tunnel resource. For more
50263// information about VPN, read the the Cloud VPN Overview.
50264type VpnTunnel struct {
50265	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
50266	// format.
50267	CreationTimestamp string `json:"creationTimestamp,omitempty"`
50268
50269	// Description: An optional description of this resource. Provide this
50270	// property when you create the resource.
50271	Description string `json:"description,omitempty"`
50272
50273	// DetailedStatus: [Output Only] Detailed status message for the VPN
50274	// tunnel.
50275	DetailedStatus string `json:"detailedStatus,omitempty"`
50276
50277	// Id: [Output Only] The unique identifier for the resource. This
50278	// identifier is defined by the server.
50279	Id uint64 `json:"id,omitempty,string"`
50280
50281	// IkeVersion: IKE protocol version to use when establishing the VPN
50282	// tunnel with the peer VPN gateway. Acceptable IKE versions are 1 or 2.
50283	// The default version is 2.
50284	IkeVersion int64 `json:"ikeVersion,omitempty"`
50285
50286	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
50287	// VPN tunnels.
50288	Kind string `json:"kind,omitempty"`
50289
50290	// LocalTrafficSelector: Local traffic selector to use when establishing
50291	// the VPN tunnel with the peer VPN gateway. The value should be a CIDR
50292	// formatted string, for example: 192.168.0.0/16. The ranges must be
50293	// disjoint. Only IPv4 is supported.
50294	LocalTrafficSelector []string `json:"localTrafficSelector,omitempty"`
50295
50296	// Name: Name of the resource. Provided by the client when the resource
50297	// is created. The name must be 1-63 characters long, and comply with
50298	// RFC1035. Specifically, the name must be 1-63 characters long and
50299	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
50300	// the first character must be a lowercase letter, and all following
50301	// characters must be a dash, lowercase letter, or digit, except the
50302	// last character, which cannot be a dash.
50303	Name string `json:"name,omitempty"`
50304
50305	// PeerExternalGateway: URL of the peer side external VPN gateway to
50306	// which this VPN tunnel is connected. Provided by the client when the
50307	// VPN tunnel is created. This field is exclusive with the field
50308	// peerGcpGateway.
50309	PeerExternalGateway string `json:"peerExternalGateway,omitempty"`
50310
50311	// PeerExternalGatewayInterface: The interface ID of the external VPN
50312	// gateway to which this VPN tunnel is connected. Provided by the client
50313	// when the VPN tunnel is created.
50314	PeerExternalGatewayInterface int64 `json:"peerExternalGatewayInterface,omitempty"`
50315
50316	// PeerGcpGateway: URL of the peer side HA GCP VPN gateway to which this
50317	// VPN tunnel is connected. Provided by the client when the VPN tunnel
50318	// is created. This field can be used when creating highly available VPN
50319	// from VPC network to VPC network, the field is exclusive with the
50320	// field peerExternalGateway. If provided, the VPN tunnel will
50321	// automatically use the same vpnGatewayInterface ID in the peer GCP VPN
50322	// gateway.
50323	PeerGcpGateway string `json:"peerGcpGateway,omitempty"`
50324
50325	// PeerIp: IP address of the peer VPN gateway. Only IPv4 is supported.
50326	PeerIp string `json:"peerIp,omitempty"`
50327
50328	// Region: [Output Only] URL of the region where the VPN tunnel resides.
50329	// You must specify this field as part of the HTTP request URL. It is
50330	// not settable as a field in the request body.
50331	Region string `json:"region,omitempty"`
50332
50333	// RemoteTrafficSelector: Remote traffic selectors to use when
50334	// establishing the VPN tunnel with the peer VPN gateway. The value
50335	// should be a CIDR formatted string, for example: 192.168.0.0/16. The
50336	// ranges should be disjoint. Only IPv4 is supported.
50337	RemoteTrafficSelector []string `json:"remoteTrafficSelector,omitempty"`
50338
50339	// Router: URL of the router resource to be used for dynamic routing.
50340	Router string `json:"router,omitempty"`
50341
50342	// SelfLink: [Output Only] Server-defined URL for the resource.
50343	SelfLink string `json:"selfLink,omitempty"`
50344
50345	// SharedSecret: Shared secret used to set the secure session between
50346	// the Cloud VPN gateway and the peer VPN gateway.
50347	SharedSecret string `json:"sharedSecret,omitempty"`
50348
50349	// SharedSecretHash: Hash of the shared secret.
50350	SharedSecretHash string `json:"sharedSecretHash,omitempty"`
50351
50352	// Status: [Output Only] The status of the VPN tunnel, which can be one
50353	// of the following: - PROVISIONING: Resource is being allocated for the
50354	// VPN tunnel. - WAITING_FOR_FULL_CONFIG: Waiting to receive all
50355	// VPN-related configs from the user. Network, TargetVpnGateway,
50356	// VpnTunnel, ForwardingRule, and Route resources are needed to setup
50357	// the VPN tunnel. - FIRST_HANDSHAKE: Successful first handshake with
50358	// the peer VPN. - ESTABLISHED: Secure session is successfully
50359	// established with the peer VPN. - NETWORK_ERROR: Deprecated, replaced
50360	// by NO_INCOMING_PACKETS - AUTHORIZATION_ERROR: Auth error (for
50361	// example, bad shared secret). - NEGOTIATION_FAILURE: Handshake failed.
50362	// - DEPROVISIONING: Resources are being deallocated for the VPN tunnel.
50363	// - FAILED: Tunnel creation has failed and the tunnel is not ready to
50364	// be used. - NO_INCOMING_PACKETS: No incoming packets from peer. -
50365	// REJECTED: Tunnel configuration was rejected, can be result of being
50366	// denied access. - ALLOCATING_RESOURCES: Cloud VPN is in the process of
50367	// allocating all required resources. - STOPPED: Tunnel is stopped due
50368	// to its Forwarding Rules being deleted for Classic VPN tunnels or the
50369	// project is in frozen state. - PEER_IDENTITY_MISMATCH: Peer identity
50370	// does not match peer IP, probably behind NAT. -
50371	// TS_NARROWING_NOT_ALLOWED: Traffic selector narrowing not allowed for
50372	// an HA-VPN tunnel.
50373	//
50374	// Possible values:
50375	//   "ALLOCATING_RESOURCES" - Cloud VPN is in the process of allocating
50376	// all required resources (specifically, a borg task).
50377	//   "AUTHORIZATION_ERROR" - Auth error (e.g. bad shared secret).
50378	//   "DEPROVISIONING" - Resources is being deallocated for the VPN
50379	// tunnel.
50380	//   "ESTABLISHED" - Secure session is successfully established with
50381	// peer VPN.
50382	//   "FAILED" - Tunnel creation has failed and the tunnel is not ready
50383	// to be used.
50384	//   "FIRST_HANDSHAKE" - Successful first handshake with peer VPN.
50385	//   "NEGOTIATION_FAILURE" - Handshake failed.
50386	//   "NETWORK_ERROR" - Deprecated, replaced by NO_INCOMING_PACKETS
50387	//   "NO_INCOMING_PACKETS" - No incoming packets from peer
50388	//   "PROVISIONING" - Resource is being allocated for the VPN tunnel.
50389	//   "REJECTED" - Tunnel configuration was rejected, can be result of
50390	// being denylisted.
50391	//   "STOPPED" - Tunnel is stopped due to its Forwarding Rules being
50392	// deleted.
50393	//   "WAITING_FOR_FULL_CONFIG" - Waiting to receive all VPN-related
50394	// configs from user. Network, TargetVpnGateway, VpnTunnel,
50395	// ForwardingRule and Route resources are needed to setup VPN tunnel.
50396	Status string `json:"status,omitempty"`
50397
50398	// TargetVpnGateway: URL of the Target VPN gateway with which this VPN
50399	// tunnel is associated. Provided by the client when the VPN tunnel is
50400	// created.
50401	TargetVpnGateway string `json:"targetVpnGateway,omitempty"`
50402
50403	// VpnGateway: URL of the VPN gateway with which this VPN tunnel is
50404	// associated. Provided by the client when the VPN tunnel is created.
50405	// This must be used (instead of target_vpn_gateway) if a High
50406	// Availability VPN gateway resource is created.
50407	VpnGateway string `json:"vpnGateway,omitempty"`
50408
50409	// VpnGatewayInterface: The interface ID of the VPN gateway with which
50410	// this VPN tunnel is associated.
50411	VpnGatewayInterface int64 `json:"vpnGatewayInterface,omitempty"`
50412
50413	// ServerResponse contains the HTTP response code and headers from the
50414	// server.
50415	googleapi.ServerResponse `json:"-"`
50416
50417	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
50418	// to unconditionally include in API requests. By default, fields with
50419	// empty or default values are omitted from API requests. However, any
50420	// non-pointer, non-interface field appearing in ForceSendFields will be
50421	// sent to the server regardless of whether the field is empty or not.
50422	// This may be used to include empty fields in Patch requests.
50423	ForceSendFields []string `json:"-"`
50424
50425	// NullFields is a list of field names (e.g. "CreationTimestamp") to
50426	// include in API requests with the JSON null value. By default, fields
50427	// with empty values are omitted from API requests. However, any field
50428	// with an empty value appearing in NullFields will be sent to the
50429	// server as null. It is an error if a field in this list has a
50430	// non-empty value. This may be used to include null fields in Patch
50431	// requests.
50432	NullFields []string `json:"-"`
50433}
50434
50435func (s *VpnTunnel) MarshalJSON() ([]byte, error) {
50436	type NoMethod VpnTunnel
50437	raw := NoMethod(*s)
50438	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50439}
50440
50441type VpnTunnelAggregatedList struct {
50442	// Id: [Output Only] Unique identifier for the resource; defined by the
50443	// server.
50444	Id string `json:"id,omitempty"`
50445
50446	// Items: A list of VpnTunnelsScopedList resources.
50447	Items map[string]VpnTunnelsScopedList `json:"items,omitempty"`
50448
50449	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
50450	// VPN tunnels.
50451	Kind string `json:"kind,omitempty"`
50452
50453	// NextPageToken: [Output Only] This token allows you to get the next
50454	// page of results for list requests. If the number of results is larger
50455	// than maxResults, use the nextPageToken as a value for the query
50456	// parameter pageToken in the next list request. Subsequent list
50457	// requests will have their own nextPageToken to continue paging through
50458	// the results.
50459	NextPageToken string `json:"nextPageToken,omitempty"`
50460
50461	// SelfLink: [Output Only] Server-defined URL for this resource.
50462	SelfLink string `json:"selfLink,omitempty"`
50463
50464	// Unreachables: [Output Only] Unreachable resources.
50465	Unreachables []string `json:"unreachables,omitempty"`
50466
50467	// Warning: [Output Only] Informational warning message.
50468	Warning *VpnTunnelAggregatedListWarning `json:"warning,omitempty"`
50469
50470	// ServerResponse contains the HTTP response code and headers from the
50471	// server.
50472	googleapi.ServerResponse `json:"-"`
50473
50474	// ForceSendFields is a list of field names (e.g. "Id") to
50475	// unconditionally include in API requests. By default, fields with
50476	// empty or default values are omitted from API requests. However, any
50477	// non-pointer, non-interface field appearing in ForceSendFields will be
50478	// sent to the server regardless of whether the field is empty or not.
50479	// This may be used to include empty fields in Patch requests.
50480	ForceSendFields []string `json:"-"`
50481
50482	// NullFields is a list of field names (e.g. "Id") to include in API
50483	// requests with the JSON null value. By default, fields with empty
50484	// values are omitted from API requests. However, any field with an
50485	// empty value appearing in NullFields will be sent to the server as
50486	// null. It is an error if a field in this list has a non-empty value.
50487	// This may be used to include null fields in Patch requests.
50488	NullFields []string `json:"-"`
50489}
50490
50491func (s *VpnTunnelAggregatedList) MarshalJSON() ([]byte, error) {
50492	type NoMethod VpnTunnelAggregatedList
50493	raw := NoMethod(*s)
50494	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50495}
50496
50497// VpnTunnelAggregatedListWarning: [Output Only] Informational warning
50498// message.
50499type VpnTunnelAggregatedListWarning struct {
50500	// Code: [Output Only] A warning code, if applicable. For example,
50501	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
50502	// the response.
50503	//
50504	// Possible values:
50505	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
50506	// changes made by a failed operation.
50507	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
50508	// created.
50509	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
50510	// resources has a type marked as deprecated
50511	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
50512	// that is larger than image size.
50513	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
50514	// resources has a type marked as experimental
50515	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
50516	// call
50517	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
50518	// overridden. Deprecated unused field.
50519	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
50520	// injected kernel, which is deprecated.
50521	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
50522	// exceedingly large number of resources
50523	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
50524	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
50525	// not assigned to an instance on the network.
50526	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
50527	// ip forward.
50528	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
50529	// refers to an instance that does not exist.
50530	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
50531	// URL refers to an instance that is not on the same network as the
50532	// route.
50533	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
50534	// have a status of RUNNING.
50535	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
50536	// continue the process despite the mentioned error.
50537	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
50538	// page.
50539	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
50540	// missing due to errors
50541	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
50542	// that requires a TOS they have not accepted.
50543	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
50544	// resource is in use.
50545	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
50546	// auto-delete could not be deleted because they were in use.
50547	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
50548	// ignored.
50549	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
50550	// instance group manager is valid as such, but its application does not
50551	// make a lot of sense, because it allows only single instance in
50552	// instance group.
50553	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
50554	// are present
50555	//   "UNREACHABLE" - A given scope cannot be reached.
50556	Code string `json:"code,omitempty"`
50557
50558	// Data: [Output Only] Metadata about this warning in key: value format.
50559	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
50560	// }
50561	Data []*VpnTunnelAggregatedListWarningData `json:"data,omitempty"`
50562
50563	// Message: [Output Only] A human-readable description of the warning
50564	// code.
50565	Message string `json:"message,omitempty"`
50566
50567	// ForceSendFields is a list of field names (e.g. "Code") to
50568	// unconditionally include in API requests. By default, fields with
50569	// empty or default values are omitted from API requests. However, any
50570	// non-pointer, non-interface field appearing in ForceSendFields will be
50571	// sent to the server regardless of whether the field is empty or not.
50572	// This may be used to include empty fields in Patch requests.
50573	ForceSendFields []string `json:"-"`
50574
50575	// NullFields is a list of field names (e.g. "Code") to include in API
50576	// requests with the JSON null value. By default, fields with empty
50577	// values are omitted from API requests. However, any field with an
50578	// empty value appearing in NullFields will be sent to the server as
50579	// null. It is an error if a field in this list has a non-empty value.
50580	// This may be used to include null fields in Patch requests.
50581	NullFields []string `json:"-"`
50582}
50583
50584func (s *VpnTunnelAggregatedListWarning) MarshalJSON() ([]byte, error) {
50585	type NoMethod VpnTunnelAggregatedListWarning
50586	raw := NoMethod(*s)
50587	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50588}
50589
50590type VpnTunnelAggregatedListWarningData struct {
50591	// Key: [Output Only] A key that provides more detail on the warning
50592	// being returned. For example, for warnings where there are no results
50593	// in a list request for a particular zone, this key might be scope and
50594	// the key value might be the zone name. Other examples might be a key
50595	// indicating a deprecated resource and a suggested replacement, or a
50596	// warning about invalid network settings (for example, if an instance
50597	// attempts to perform IP forwarding but is not enabled for IP
50598	// forwarding).
50599	Key string `json:"key,omitempty"`
50600
50601	// Value: [Output Only] A warning data value corresponding to the key.
50602	Value string `json:"value,omitempty"`
50603
50604	// ForceSendFields is a list of field names (e.g. "Key") to
50605	// unconditionally include in API requests. By default, fields with
50606	// empty or default values are omitted from API requests. However, any
50607	// non-pointer, non-interface field appearing in ForceSendFields will be
50608	// sent to the server regardless of whether the field is empty or not.
50609	// This may be used to include empty fields in Patch requests.
50610	ForceSendFields []string `json:"-"`
50611
50612	// NullFields is a list of field names (e.g. "Key") to include in API
50613	// requests with the JSON null value. By default, fields with empty
50614	// values are omitted from API requests. However, any field with an
50615	// empty value appearing in NullFields will be sent to the server as
50616	// null. It is an error if a field in this list has a non-empty value.
50617	// This may be used to include null fields in Patch requests.
50618	NullFields []string `json:"-"`
50619}
50620
50621func (s *VpnTunnelAggregatedListWarningData) MarshalJSON() ([]byte, error) {
50622	type NoMethod VpnTunnelAggregatedListWarningData
50623	raw := NoMethod(*s)
50624	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50625}
50626
50627// VpnTunnelList: Contains a list of VpnTunnel resources.
50628type VpnTunnelList struct {
50629	// Id: [Output Only] Unique identifier for the resource; defined by the
50630	// server.
50631	Id string `json:"id,omitempty"`
50632
50633	// Items: A list of VpnTunnel resources.
50634	Items []*VpnTunnel `json:"items,omitempty"`
50635
50636	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
50637	// VPN tunnels.
50638	Kind string `json:"kind,omitempty"`
50639
50640	// NextPageToken: [Output Only] This token allows you to get the next
50641	// page of results for list requests. If the number of results is larger
50642	// than maxResults, use the nextPageToken as a value for the query
50643	// parameter pageToken in the next list request. Subsequent list
50644	// requests will have their own nextPageToken to continue paging through
50645	// the results.
50646	NextPageToken string `json:"nextPageToken,omitempty"`
50647
50648	// SelfLink: [Output Only] Server-defined URL for this resource.
50649	SelfLink string `json:"selfLink,omitempty"`
50650
50651	// Warning: [Output Only] Informational warning message.
50652	Warning *VpnTunnelListWarning `json:"warning,omitempty"`
50653
50654	// ServerResponse contains the HTTP response code and headers from the
50655	// server.
50656	googleapi.ServerResponse `json:"-"`
50657
50658	// ForceSendFields is a list of field names (e.g. "Id") to
50659	// unconditionally include in API requests. By default, fields with
50660	// empty or default values are omitted from API requests. However, any
50661	// non-pointer, non-interface field appearing in ForceSendFields will be
50662	// sent to the server regardless of whether the field is empty or not.
50663	// This may be used to include empty fields in Patch requests.
50664	ForceSendFields []string `json:"-"`
50665
50666	// NullFields is a list of field names (e.g. "Id") to include in API
50667	// requests with the JSON null value. By default, fields with empty
50668	// values are omitted from API requests. However, any field with an
50669	// empty value appearing in NullFields will be sent to the server as
50670	// null. It is an error if a field in this list has a non-empty value.
50671	// This may be used to include null fields in Patch requests.
50672	NullFields []string `json:"-"`
50673}
50674
50675func (s *VpnTunnelList) MarshalJSON() ([]byte, error) {
50676	type NoMethod VpnTunnelList
50677	raw := NoMethod(*s)
50678	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50679}
50680
50681// VpnTunnelListWarning: [Output Only] Informational warning message.
50682type VpnTunnelListWarning struct {
50683	// Code: [Output Only] A warning code, if applicable. For example,
50684	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
50685	// the response.
50686	//
50687	// Possible values:
50688	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
50689	// changes made by a failed operation.
50690	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
50691	// created.
50692	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
50693	// resources has a type marked as deprecated
50694	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
50695	// that is larger than image size.
50696	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
50697	// resources has a type marked as experimental
50698	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
50699	// call
50700	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
50701	// overridden. Deprecated unused field.
50702	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
50703	// injected kernel, which is deprecated.
50704	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
50705	// exceedingly large number of resources
50706	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
50707	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
50708	// not assigned to an instance on the network.
50709	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
50710	// ip forward.
50711	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
50712	// refers to an instance that does not exist.
50713	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
50714	// URL refers to an instance that is not on the same network as the
50715	// route.
50716	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
50717	// have a status of RUNNING.
50718	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
50719	// continue the process despite the mentioned error.
50720	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
50721	// page.
50722	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
50723	// missing due to errors
50724	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
50725	// that requires a TOS they have not accepted.
50726	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
50727	// resource is in use.
50728	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
50729	// auto-delete could not be deleted because they were in use.
50730	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
50731	// ignored.
50732	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
50733	// instance group manager is valid as such, but its application does not
50734	// make a lot of sense, because it allows only single instance in
50735	// instance group.
50736	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
50737	// are present
50738	//   "UNREACHABLE" - A given scope cannot be reached.
50739	Code string `json:"code,omitempty"`
50740
50741	// Data: [Output Only] Metadata about this warning in key: value format.
50742	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
50743	// }
50744	Data []*VpnTunnelListWarningData `json:"data,omitempty"`
50745
50746	// Message: [Output Only] A human-readable description of the warning
50747	// code.
50748	Message string `json:"message,omitempty"`
50749
50750	// ForceSendFields is a list of field names (e.g. "Code") to
50751	// unconditionally include in API requests. By default, fields with
50752	// empty or default values are omitted from API requests. However, any
50753	// non-pointer, non-interface field appearing in ForceSendFields will be
50754	// sent to the server regardless of whether the field is empty or not.
50755	// This may be used to include empty fields in Patch requests.
50756	ForceSendFields []string `json:"-"`
50757
50758	// NullFields is a list of field names (e.g. "Code") to include in API
50759	// requests with the JSON null value. By default, fields with empty
50760	// values are omitted from API requests. However, any field with an
50761	// empty value appearing in NullFields will be sent to the server as
50762	// null. It is an error if a field in this list has a non-empty value.
50763	// This may be used to include null fields in Patch requests.
50764	NullFields []string `json:"-"`
50765}
50766
50767func (s *VpnTunnelListWarning) MarshalJSON() ([]byte, error) {
50768	type NoMethod VpnTunnelListWarning
50769	raw := NoMethod(*s)
50770	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50771}
50772
50773type VpnTunnelListWarningData struct {
50774	// Key: [Output Only] A key that provides more detail on the warning
50775	// being returned. For example, for warnings where there are no results
50776	// in a list request for a particular zone, this key might be scope and
50777	// the key value might be the zone name. Other examples might be a key
50778	// indicating a deprecated resource and a suggested replacement, or a
50779	// warning about invalid network settings (for example, if an instance
50780	// attempts to perform IP forwarding but is not enabled for IP
50781	// forwarding).
50782	Key string `json:"key,omitempty"`
50783
50784	// Value: [Output Only] A warning data value corresponding to the key.
50785	Value string `json:"value,omitempty"`
50786
50787	// ForceSendFields is a list of field names (e.g. "Key") to
50788	// unconditionally include in API requests. By default, fields with
50789	// empty or default values are omitted from API requests. However, any
50790	// non-pointer, non-interface field appearing in ForceSendFields will be
50791	// sent to the server regardless of whether the field is empty or not.
50792	// This may be used to include empty fields in Patch requests.
50793	ForceSendFields []string `json:"-"`
50794
50795	// NullFields is a list of field names (e.g. "Key") to include in API
50796	// requests with the JSON null value. By default, fields with empty
50797	// values are omitted from API requests. However, any field with an
50798	// empty value appearing in NullFields will be sent to the server as
50799	// null. It is an error if a field in this list has a non-empty value.
50800	// This may be used to include null fields in Patch requests.
50801	NullFields []string `json:"-"`
50802}
50803
50804func (s *VpnTunnelListWarningData) MarshalJSON() ([]byte, error) {
50805	type NoMethod VpnTunnelListWarningData
50806	raw := NoMethod(*s)
50807	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50808}
50809
50810type VpnTunnelsScopedList struct {
50811	// VpnTunnels: A list of VPN tunnels contained in this scope.
50812	VpnTunnels []*VpnTunnel `json:"vpnTunnels,omitempty"`
50813
50814	// Warning: Informational warning which replaces the list of addresses
50815	// when the list is empty.
50816	Warning *VpnTunnelsScopedListWarning `json:"warning,omitempty"`
50817
50818	// ForceSendFields is a list of field names (e.g. "VpnTunnels") to
50819	// unconditionally include in API requests. By default, fields with
50820	// empty or default values are omitted from API requests. However, any
50821	// non-pointer, non-interface field appearing in ForceSendFields will be
50822	// sent to the server regardless of whether the field is empty or not.
50823	// This may be used to include empty fields in Patch requests.
50824	ForceSendFields []string `json:"-"`
50825
50826	// NullFields is a list of field names (e.g. "VpnTunnels") to include in
50827	// API requests with the JSON null value. By default, fields with empty
50828	// values are omitted from API requests. However, any field with an
50829	// empty value appearing in NullFields will be sent to the server as
50830	// null. It is an error if a field in this list has a non-empty value.
50831	// This may be used to include null fields in Patch requests.
50832	NullFields []string `json:"-"`
50833}
50834
50835func (s *VpnTunnelsScopedList) MarshalJSON() ([]byte, error) {
50836	type NoMethod VpnTunnelsScopedList
50837	raw := NoMethod(*s)
50838	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50839}
50840
50841// VpnTunnelsScopedListWarning: Informational warning which replaces the
50842// list of addresses when the list is empty.
50843type VpnTunnelsScopedListWarning struct {
50844	// Code: [Output Only] A warning code, if applicable. For example,
50845	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
50846	// the response.
50847	//
50848	// Possible values:
50849	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
50850	// changes made by a failed operation.
50851	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
50852	// created.
50853	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
50854	// resources has a type marked as deprecated
50855	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
50856	// that is larger than image size.
50857	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
50858	// resources has a type marked as experimental
50859	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
50860	// call
50861	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
50862	// overridden. Deprecated unused field.
50863	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
50864	// injected kernel, which is deprecated.
50865	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
50866	// exceedingly large number of resources
50867	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
50868	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
50869	// not assigned to an instance on the network.
50870	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
50871	// ip forward.
50872	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
50873	// refers to an instance that does not exist.
50874	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
50875	// URL refers to an instance that is not on the same network as the
50876	// route.
50877	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
50878	// have a status of RUNNING.
50879	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
50880	// continue the process despite the mentioned error.
50881	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
50882	// page.
50883	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
50884	// missing due to errors
50885	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
50886	// that requires a TOS they have not accepted.
50887	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
50888	// resource is in use.
50889	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
50890	// auto-delete could not be deleted because they were in use.
50891	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
50892	// ignored.
50893	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
50894	// instance group manager is valid as such, but its application does not
50895	// make a lot of sense, because it allows only single instance in
50896	// instance group.
50897	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
50898	// are present
50899	//   "UNREACHABLE" - A given scope cannot be reached.
50900	Code string `json:"code,omitempty"`
50901
50902	// Data: [Output Only] Metadata about this warning in key: value format.
50903	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
50904	// }
50905	Data []*VpnTunnelsScopedListWarningData `json:"data,omitempty"`
50906
50907	// Message: [Output Only] A human-readable description of the warning
50908	// code.
50909	Message string `json:"message,omitempty"`
50910
50911	// ForceSendFields is a list of field names (e.g. "Code") to
50912	// unconditionally include in API requests. By default, fields with
50913	// empty or default values are omitted from API requests. However, any
50914	// non-pointer, non-interface field appearing in ForceSendFields will be
50915	// sent to the server regardless of whether the field is empty or not.
50916	// This may be used to include empty fields in Patch requests.
50917	ForceSendFields []string `json:"-"`
50918
50919	// NullFields is a list of field names (e.g. "Code") to include in API
50920	// requests with the JSON null value. By default, fields with empty
50921	// values are omitted from API requests. However, any field with an
50922	// empty value appearing in NullFields will be sent to the server as
50923	// null. It is an error if a field in this list has a non-empty value.
50924	// This may be used to include null fields in Patch requests.
50925	NullFields []string `json:"-"`
50926}
50927
50928func (s *VpnTunnelsScopedListWarning) MarshalJSON() ([]byte, error) {
50929	type NoMethod VpnTunnelsScopedListWarning
50930	raw := NoMethod(*s)
50931	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50932}
50933
50934type VpnTunnelsScopedListWarningData struct {
50935	// Key: [Output Only] A key that provides more detail on the warning
50936	// being returned. For example, for warnings where there are no results
50937	// in a list request for a particular zone, this key might be scope and
50938	// the key value might be the zone name. Other examples might be a key
50939	// indicating a deprecated resource and a suggested replacement, or a
50940	// warning about invalid network settings (for example, if an instance
50941	// attempts to perform IP forwarding but is not enabled for IP
50942	// forwarding).
50943	Key string `json:"key,omitempty"`
50944
50945	// Value: [Output Only] A warning data value corresponding to the key.
50946	Value string `json:"value,omitempty"`
50947
50948	// ForceSendFields is a list of field names (e.g. "Key") to
50949	// unconditionally include in API requests. By default, fields with
50950	// empty or default values are omitted from API requests. However, any
50951	// non-pointer, non-interface field appearing in ForceSendFields will be
50952	// sent to the server regardless of whether the field is empty or not.
50953	// This may be used to include empty fields in Patch requests.
50954	ForceSendFields []string `json:"-"`
50955
50956	// NullFields is a list of field names (e.g. "Key") to include in API
50957	// requests with the JSON null value. By default, fields with empty
50958	// values are omitted from API requests. However, any field with an
50959	// empty value appearing in NullFields will be sent to the server as
50960	// null. It is an error if a field in this list has a non-empty value.
50961	// This may be used to include null fields in Patch requests.
50962	NullFields []string `json:"-"`
50963}
50964
50965func (s *VpnTunnelsScopedListWarningData) MarshalJSON() ([]byte, error) {
50966	type NoMethod VpnTunnelsScopedListWarningData
50967	raw := NoMethod(*s)
50968	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
50969}
50970
50971type WafExpressionSet struct {
50972	// Aliases: A list of alternate IDs. The format should be: - E.g.
50973	// XSS-stable Generic suffix like "stable" is particularly useful if a
50974	// policy likes to avail newer set of expressions without having to
50975	// change the policy. A given alias name can't be used for more than one
50976	// entity set.
50977	Aliases []string `json:"aliases,omitempty"`
50978
50979	// Expressions: List of available expressions.
50980	Expressions []*WafExpressionSetExpression `json:"expressions,omitempty"`
50981
50982	// Id: Google specified expression set ID. The format should be: - E.g.
50983	// XSS-20170329 required
50984	Id string `json:"id,omitempty"`
50985
50986	// ForceSendFields is a list of field names (e.g. "Aliases") to
50987	// unconditionally include in API requests. By default, fields with
50988	// empty or default values are omitted from API requests. However, any
50989	// non-pointer, non-interface field appearing in ForceSendFields will be
50990	// sent to the server regardless of whether the field is empty or not.
50991	// This may be used to include empty fields in Patch requests.
50992	ForceSendFields []string `json:"-"`
50993
50994	// NullFields is a list of field names (e.g. "Aliases") to include in
50995	// API requests with the JSON null value. By default, fields with empty
50996	// values are omitted from API requests. However, any field with an
50997	// empty value appearing in NullFields will be sent to the server as
50998	// null. It is an error if a field in this list has a non-empty value.
50999	// This may be used to include null fields in Patch requests.
51000	NullFields []string `json:"-"`
51001}
51002
51003func (s *WafExpressionSet) MarshalJSON() ([]byte, error) {
51004	type NoMethod WafExpressionSet
51005	raw := NoMethod(*s)
51006	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
51007}
51008
51009type WafExpressionSetExpression struct {
51010	// Id: Expression ID should uniquely identify the origin of the
51011	// expression. E.g. owasp-crs-v020901-id973337 identifies Owasp core
51012	// rule set version 2.9.1 rule id 973337. The ID could be used to
51013	// determine the individual attack definition that has been detected. It
51014	// could also be used to exclude it from the policy in case of false
51015	// positive. required
51016	Id string `json:"id,omitempty"`
51017
51018	// ForceSendFields is a list of field names (e.g. "Id") to
51019	// unconditionally include in API requests. By default, fields with
51020	// empty or default values are omitted from API requests. However, any
51021	// non-pointer, non-interface field appearing in ForceSendFields will be
51022	// sent to the server regardless of whether the field is empty or not.
51023	// This may be used to include empty fields in Patch requests.
51024	ForceSendFields []string `json:"-"`
51025
51026	// NullFields is a list of field names (e.g. "Id") to include in API
51027	// requests with the JSON null value. By default, fields with empty
51028	// values are omitted from API requests. However, any field with an
51029	// empty value appearing in NullFields will be sent to the server as
51030	// null. It is an error if a field in this list has a non-empty value.
51031	// This may be used to include null fields in Patch requests.
51032	NullFields []string `json:"-"`
51033}
51034
51035func (s *WafExpressionSetExpression) MarshalJSON() ([]byte, error) {
51036	type NoMethod WafExpressionSetExpression
51037	raw := NoMethod(*s)
51038	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
51039}
51040
51041// WeightedBackendService: In contrast to a single BackendService in
51042// HttpRouteAction to which all matching traffic is directed to,
51043// WeightedBackendService allows traffic to be split across multiple
51044// BackendServices. The volume of traffic for each BackendService is
51045// proportional to the weight specified in each WeightedBackendService
51046type WeightedBackendService struct {
51047	// BackendService: The full or partial URL to the default BackendService
51048	// resource. Before forwarding the request to backendService, the
51049	// loadbalancer applies any relevant headerActions specified as part of
51050	// this backendServiceWeight.
51051	BackendService string `json:"backendService,omitempty"`
51052
51053	// HeaderAction: Specifies changes to request and response headers that
51054	// need to take effect for the selected backendService. headerAction
51055	// specified here take effect before headerAction in the enclosing
51056	// HttpRouteRule, PathMatcher and UrlMap. Note that headerAction is not
51057	// supported for Loadbalancers that have their loadBalancingScheme set
51058	// to EXTERNAL. Not supported when the URL map is bound to target gRPC
51059	// proxy that has validateForProxyless field set to true.
51060	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
51061
51062	// Weight: Specifies the fraction of traffic sent to backendService,
51063	// computed as weight / (sum of all weightedBackendService weights in
51064	// routeAction) . The selection of a backend service is determined only
51065	// for new traffic. Once a user's request has been directed to a
51066	// backendService, subsequent requests will be sent to the same
51067	// backendService as determined by the BackendService's session affinity
51068	// policy. The value must be between 0 and 1000
51069	Weight int64 `json:"weight,omitempty"`
51070
51071	// ForceSendFields is a list of field names (e.g. "BackendService") to
51072	// unconditionally include in API requests. By default, fields with
51073	// empty or default values are omitted from API requests. However, any
51074	// non-pointer, non-interface field appearing in ForceSendFields will be
51075	// sent to the server regardless of whether the field is empty or not.
51076	// This may be used to include empty fields in Patch requests.
51077	ForceSendFields []string `json:"-"`
51078
51079	// NullFields is a list of field names (e.g. "BackendService") to
51080	// include in API requests with the JSON null value. By default, fields
51081	// with empty values are omitted from API requests. However, any field
51082	// with an empty value appearing in NullFields will be sent to the
51083	// server as null. It is an error if a field in this list has a
51084	// non-empty value. This may be used to include null fields in Patch
51085	// requests.
51086	NullFields []string `json:"-"`
51087}
51088
51089func (s *WeightedBackendService) MarshalJSON() ([]byte, error) {
51090	type NoMethod WeightedBackendService
51091	raw := NoMethod(*s)
51092	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
51093}
51094
51095type XpnHostList struct {
51096	// Id: [Output Only] Unique identifier for the resource; defined by the
51097	// server.
51098	Id string `json:"id,omitempty"`
51099
51100	// Items: [Output Only] A list of shared VPC host project URLs.
51101	Items []*Project `json:"items,omitempty"`
51102
51103	// Kind: [Output Only] Type of resource. Always compute#xpnHostList for
51104	// lists of shared VPC hosts.
51105	Kind string `json:"kind,omitempty"`
51106
51107	// NextPageToken: [Output Only] This token allows you to get the next
51108	// page of results for list requests. If the number of results is larger
51109	// than maxResults, use the nextPageToken as a value for the query
51110	// parameter pageToken in the next list request. Subsequent list
51111	// requests will have their own nextPageToken to continue paging through
51112	// the results.
51113	NextPageToken string `json:"nextPageToken,omitempty"`
51114
51115	// SelfLink: [Output Only] Server-defined URL for this resource.
51116	SelfLink string `json:"selfLink,omitempty"`
51117
51118	// Warning: [Output Only] Informational warning message.
51119	Warning *XpnHostListWarning `json:"warning,omitempty"`
51120
51121	// ServerResponse contains the HTTP response code and headers from the
51122	// server.
51123	googleapi.ServerResponse `json:"-"`
51124
51125	// ForceSendFields is a list of field names (e.g. "Id") to
51126	// unconditionally include in API requests. By default, fields with
51127	// empty or default values are omitted from API requests. However, any
51128	// non-pointer, non-interface field appearing in ForceSendFields will be
51129	// sent to the server regardless of whether the field is empty or not.
51130	// This may be used to include empty fields in Patch requests.
51131	ForceSendFields []string `json:"-"`
51132
51133	// NullFields is a list of field names (e.g. "Id") to include in API
51134	// requests with the JSON null value. By default, fields with empty
51135	// values are omitted from API requests. However, any field with an
51136	// empty value appearing in NullFields will be sent to the server as
51137	// null. It is an error if a field in this list has a non-empty value.
51138	// This may be used to include null fields in Patch requests.
51139	NullFields []string `json:"-"`
51140}
51141
51142func (s *XpnHostList) MarshalJSON() ([]byte, error) {
51143	type NoMethod XpnHostList
51144	raw := NoMethod(*s)
51145	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
51146}
51147
51148// XpnHostListWarning: [Output Only] Informational warning message.
51149type XpnHostListWarning struct {
51150	// Code: [Output Only] A warning code, if applicable. For example,
51151	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
51152	// the response.
51153	//
51154	// Possible values:
51155	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
51156	// changes made by a failed operation.
51157	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
51158	// created.
51159	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
51160	// resources has a type marked as deprecated
51161	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
51162	// that is larger than image size.
51163	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
51164	// resources has a type marked as experimental
51165	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
51166	// call
51167	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
51168	// overridden. Deprecated unused field.
51169	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
51170	// injected kernel, which is deprecated.
51171	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
51172	// exceedingly large number of resources
51173	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
51174	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
51175	// not assigned to an instance on the network.
51176	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
51177	// ip forward.
51178	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
51179	// refers to an instance that does not exist.
51180	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
51181	// URL refers to an instance that is not on the same network as the
51182	// route.
51183	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
51184	// have a status of RUNNING.
51185	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
51186	// continue the process despite the mentioned error.
51187	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
51188	// page.
51189	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
51190	// missing due to errors
51191	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
51192	// that requires a TOS they have not accepted.
51193	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
51194	// resource is in use.
51195	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
51196	// auto-delete could not be deleted because they were in use.
51197	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
51198	// ignored.
51199	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
51200	// instance group manager is valid as such, but its application does not
51201	// make a lot of sense, because it allows only single instance in
51202	// instance group.
51203	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
51204	// are present
51205	//   "UNREACHABLE" - A given scope cannot be reached.
51206	Code string `json:"code,omitempty"`
51207
51208	// Data: [Output Only] Metadata about this warning in key: value format.
51209	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
51210	// }
51211	Data []*XpnHostListWarningData `json:"data,omitempty"`
51212
51213	// Message: [Output Only] A human-readable description of the warning
51214	// code.
51215	Message string `json:"message,omitempty"`
51216
51217	// ForceSendFields is a list of field names (e.g. "Code") to
51218	// unconditionally include in API requests. By default, fields with
51219	// empty or default values are omitted from API requests. However, any
51220	// non-pointer, non-interface field appearing in ForceSendFields will be
51221	// sent to the server regardless of whether the field is empty or not.
51222	// This may be used to include empty fields in Patch requests.
51223	ForceSendFields []string `json:"-"`
51224
51225	// NullFields is a list of field names (e.g. "Code") to include in API
51226	// requests with the JSON null value. By default, fields with empty
51227	// values are omitted from API requests. However, any field with an
51228	// empty value appearing in NullFields will be sent to the server as
51229	// null. It is an error if a field in this list has a non-empty value.
51230	// This may be used to include null fields in Patch requests.
51231	NullFields []string `json:"-"`
51232}
51233
51234func (s *XpnHostListWarning) MarshalJSON() ([]byte, error) {
51235	type NoMethod XpnHostListWarning
51236	raw := NoMethod(*s)
51237	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
51238}
51239
51240type XpnHostListWarningData struct {
51241	// Key: [Output Only] A key that provides more detail on the warning
51242	// being returned. For example, for warnings where there are no results
51243	// in a list request for a particular zone, this key might be scope and
51244	// the key value might be the zone name. Other examples might be a key
51245	// indicating a deprecated resource and a suggested replacement, or a
51246	// warning about invalid network settings (for example, if an instance
51247	// attempts to perform IP forwarding but is not enabled for IP
51248	// forwarding).
51249	Key string `json:"key,omitempty"`
51250
51251	// Value: [Output Only] A warning data value corresponding to the key.
51252	Value string `json:"value,omitempty"`
51253
51254	// ForceSendFields is a list of field names (e.g. "Key") to
51255	// unconditionally include in API requests. By default, fields with
51256	// empty or default values are omitted from API requests. However, any
51257	// non-pointer, non-interface field appearing in ForceSendFields will be
51258	// sent to the server regardless of whether the field is empty or not.
51259	// This may be used to include empty fields in Patch requests.
51260	ForceSendFields []string `json:"-"`
51261
51262	// NullFields is a list of field names (e.g. "Key") to include in API
51263	// requests with the JSON null value. By default, fields with empty
51264	// values are omitted from API requests. However, any field with an
51265	// empty value appearing in NullFields will be sent to the server as
51266	// null. It is an error if a field in this list has a non-empty value.
51267	// This may be used to include null fields in Patch requests.
51268	NullFields []string `json:"-"`
51269}
51270
51271func (s *XpnHostListWarningData) MarshalJSON() ([]byte, error) {
51272	type NoMethod XpnHostListWarningData
51273	raw := NoMethod(*s)
51274	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
51275}
51276
51277// XpnResourceId: Service resource (a.k.a service project) ID.
51278type XpnResourceId struct {
51279	// Id: The ID of the service resource. In the case of projects, this
51280	// field supports project id (e.g., my-project-123) and project number
51281	// (e.g. 12345678).
51282	Id string `json:"id,omitempty"`
51283
51284	// Type: The type of the service resource.
51285	//
51286	// Possible values:
51287	//   "PROJECT"
51288	//   "XPN_RESOURCE_TYPE_UNSPECIFIED"
51289	Type string `json:"type,omitempty"`
51290
51291	// ForceSendFields is a list of field names (e.g. "Id") to
51292	// unconditionally include in API requests. By default, fields with
51293	// empty or default values are omitted from API requests. However, any
51294	// non-pointer, non-interface field appearing in ForceSendFields will be
51295	// sent to the server regardless of whether the field is empty or not.
51296	// This may be used to include empty fields in Patch requests.
51297	ForceSendFields []string `json:"-"`
51298
51299	// NullFields is a list of field names (e.g. "Id") to include in API
51300	// requests with the JSON null value. By default, fields with empty
51301	// values are omitted from API requests. However, any field with an
51302	// empty value appearing in NullFields will be sent to the server as
51303	// null. It is an error if a field in this list has a non-empty value.
51304	// This may be used to include null fields in Patch requests.
51305	NullFields []string `json:"-"`
51306}
51307
51308func (s *XpnResourceId) MarshalJSON() ([]byte, error) {
51309	type NoMethod XpnResourceId
51310	raw := NoMethod(*s)
51311	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
51312}
51313
51314// Zone: Represents a Zone resource. A zone is a deployment area. These
51315// deployment areas are subsets of a region. For example the zone
51316// us-east1-a is located in the us-east1 region. For more information,
51317// read Regions and Zones.
51318type Zone struct {
51319	// AvailableCpuPlatforms: [Output Only] Available cpu/platform
51320	// selections for the zone.
51321	AvailableCpuPlatforms []string `json:"availableCpuPlatforms,omitempty"`
51322
51323	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
51324	// format.
51325	CreationTimestamp string `json:"creationTimestamp,omitempty"`
51326
51327	// Deprecated -- [Output Only] The deprecation status associated with
51328	// this zone.
51329	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
51330
51331	// Description: [Output Only] Textual description of the resource.
51332	Description string `json:"description,omitempty"`
51333
51334	// Id: [Output Only] The unique identifier for the resource. This
51335	// identifier is defined by the server.
51336	Id uint64 `json:"id,omitempty,string"`
51337
51338	// Kind: [Output Only] Type of the resource. Always compute#zone for
51339	// zones.
51340	Kind string `json:"kind,omitempty"`
51341
51342	// Name: [Output Only] Name of the resource.
51343	Name string `json:"name,omitempty"`
51344
51345	// Region: [Output Only] Full URL reference to the region which hosts
51346	// the zone.
51347	Region string `json:"region,omitempty"`
51348
51349	// SelfLink: [Output Only] Server-defined URL for the resource.
51350	SelfLink string `json:"selfLink,omitempty"`
51351
51352	// Status: [Output Only] Status of the zone, either UP or DOWN.
51353	//
51354	// Possible values:
51355	//   "DOWN"
51356	//   "UP"
51357	Status string `json:"status,omitempty"`
51358
51359	// SupportsPzs: [Output Only] Reserved for future use.
51360	SupportsPzs bool `json:"supportsPzs,omitempty"`
51361
51362	// ServerResponse contains the HTTP response code and headers from the
51363	// server.
51364	googleapi.ServerResponse `json:"-"`
51365
51366	// ForceSendFields is a list of field names (e.g.
51367	// "AvailableCpuPlatforms") to unconditionally include in API requests.
51368	// By default, fields with empty or default values are omitted from API
51369	// requests. However, any non-pointer, non-interface field appearing in
51370	// ForceSendFields will be sent to the server regardless of whether the
51371	// field is empty or not. This may be used to include empty fields in
51372	// Patch requests.
51373	ForceSendFields []string `json:"-"`
51374
51375	// NullFields is a list of field names (e.g. "AvailableCpuPlatforms") to
51376	// include in API requests with the JSON null value. By default, fields
51377	// with empty values are omitted from API requests. However, any field
51378	// with an empty value appearing in NullFields will be sent to the
51379	// server as null. It is an error if a field in this list has a
51380	// non-empty value. This may be used to include null fields in Patch
51381	// requests.
51382	NullFields []string `json:"-"`
51383}
51384
51385func (s *Zone) MarshalJSON() ([]byte, error) {
51386	type NoMethod Zone
51387	raw := NoMethod(*s)
51388	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
51389}
51390
51391// ZoneList: Contains a list of zone resources.
51392type ZoneList struct {
51393	// Id: [Output Only] Unique identifier for the resource; defined by the
51394	// server.
51395	Id string `json:"id,omitempty"`
51396
51397	// Items: A list of Zone resources.
51398	Items []*Zone `json:"items,omitempty"`
51399
51400	// Kind: Type of resource.
51401	Kind string `json:"kind,omitempty"`
51402
51403	// NextPageToken: [Output Only] This token allows you to get the next
51404	// page of results for list requests. If the number of results is larger
51405	// than maxResults, use the nextPageToken as a value for the query
51406	// parameter pageToken in the next list request. Subsequent list
51407	// requests will have their own nextPageToken to continue paging through
51408	// the results.
51409	NextPageToken string `json:"nextPageToken,omitempty"`
51410
51411	// SelfLink: [Output Only] Server-defined URL for this resource.
51412	SelfLink string `json:"selfLink,omitempty"`
51413
51414	// Warning: [Output Only] Informational warning message.
51415	Warning *ZoneListWarning `json:"warning,omitempty"`
51416
51417	// ServerResponse contains the HTTP response code and headers from the
51418	// server.
51419	googleapi.ServerResponse `json:"-"`
51420
51421	// ForceSendFields is a list of field names (e.g. "Id") to
51422	// unconditionally include in API requests. By default, fields with
51423	// empty or default values are omitted from API requests. However, any
51424	// non-pointer, non-interface field appearing in ForceSendFields will be
51425	// sent to the server regardless of whether the field is empty or not.
51426	// This may be used to include empty fields in Patch requests.
51427	ForceSendFields []string `json:"-"`
51428
51429	// NullFields is a list of field names (e.g. "Id") to include in API
51430	// requests with the JSON null value. By default, fields with empty
51431	// values are omitted from API requests. However, any field with an
51432	// empty value appearing in NullFields will be sent to the server as
51433	// null. It is an error if a field in this list has a non-empty value.
51434	// This may be used to include null fields in Patch requests.
51435	NullFields []string `json:"-"`
51436}
51437
51438func (s *ZoneList) MarshalJSON() ([]byte, error) {
51439	type NoMethod ZoneList
51440	raw := NoMethod(*s)
51441	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
51442}
51443
51444// ZoneListWarning: [Output Only] Informational warning message.
51445type ZoneListWarning struct {
51446	// Code: [Output Only] A warning code, if applicable. For example,
51447	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
51448	// the response.
51449	//
51450	// Possible values:
51451	//   "CLEANUP_FAILED" - Warning about failed cleanup of transient
51452	// changes made by a failed operation.
51453	//   "DEPRECATED_RESOURCE_USED" - A link to a deprecated resource was
51454	// created.
51455	//   "DEPRECATED_TYPE_USED" - When deploying and at least one of the
51456	// resources has a type marked as deprecated
51457	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" - The user created a boot disk
51458	// that is larger than image size.
51459	//   "EXPERIMENTAL_TYPE_USED" - When deploying and at least one of the
51460	// resources has a type marked as experimental
51461	//   "EXTERNAL_API_WARNING" - Warning that is present in an external api
51462	// call
51463	//   "FIELD_VALUE_OVERRIDEN" - Warning that value of a field has been
51464	// overridden. Deprecated unused field.
51465	//   "INJECTED_KERNELS_DEPRECATED" - The operation involved use of an
51466	// injected kernel, which is deprecated.
51467	//   "LARGE_DEPLOYMENT_WARNING" - When deploying a deployment with a
51468	// exceedingly large number of resources
51469	//   "MISSING_TYPE_DEPENDENCY" - A resource depends on a missing type
51470	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED" - The route's nextHopIp address is
51471	// not assigned to an instance on the network.
51472	//   "NEXT_HOP_CANNOT_IP_FORWARD" - The route's next hop instance cannot
51473	// ip forward.
51474	//   "NEXT_HOP_INSTANCE_NOT_FOUND" - The route's nextHopInstance URL
51475	// refers to an instance that does not exist.
51476	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" - The route's nextHopInstance
51477	// URL refers to an instance that is not on the same network as the
51478	// route.
51479	//   "NEXT_HOP_NOT_RUNNING" - The route's next hop instance does not
51480	// have a status of RUNNING.
51481	//   "NOT_CRITICAL_ERROR" - Error which is not critical. We decided to
51482	// continue the process despite the mentioned error.
51483	//   "NO_RESULTS_ON_PAGE" - No results are present on a particular list
51484	// page.
51485	//   "PARTIAL_SUCCESS" - Success is reported, but some results may be
51486	// missing due to errors
51487	//   "REQUIRED_TOS_AGREEMENT" - The user attempted to use a resource
51488	// that requires a TOS they have not accepted.
51489	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" - Warning that a
51490	// resource is in use.
51491	//   "RESOURCE_NOT_DELETED" - One or more of the resources set to
51492	// auto-delete could not be deleted because they were in use.
51493	//   "SCHEMA_VALIDATION_IGNORED" - When a resource schema validation is
51494	// ignored.
51495	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE" - Instance template used in
51496	// instance group manager is valid as such, but its application does not
51497	// make a lot of sense, because it allows only single instance in
51498	// instance group.
51499	//   "UNDECLARED_PROPERTIES" - When undeclared properties in the schema
51500	// are present
51501	//   "UNREACHABLE" - A given scope cannot be reached.
51502	Code string `json:"code,omitempty"`
51503
51504	// Data: [Output Only] Metadata about this warning in key: value format.
51505	// For example: "data": [ { "key": "scope", "value": "zones/us-east1-d"
51506	// }
51507	Data []*ZoneListWarningData `json:"data,omitempty"`
51508
51509	// Message: [Output Only] A human-readable description of the warning
51510	// code.
51511	Message string `json:"message,omitempty"`
51512
51513	// ForceSendFields is a list of field names (e.g. "Code") to
51514	// unconditionally include in API requests. By default, fields with
51515	// empty or default values are omitted from API requests. However, any
51516	// non-pointer, non-interface field appearing in ForceSendFields will be
51517	// sent to the server regardless of whether the field is empty or not.
51518	// This may be used to include empty fields in Patch requests.
51519	ForceSendFields []string `json:"-"`
51520
51521	// NullFields is a list of field names (e.g. "Code") to include in API
51522	// requests with the JSON null value. By default, fields with empty
51523	// values are omitted from API requests. However, any field with an
51524	// empty value appearing in NullFields will be sent to the server as
51525	// null. It is an error if a field in this list has a non-empty value.
51526	// This may be used to include null fields in Patch requests.
51527	NullFields []string `json:"-"`
51528}
51529
51530func (s *ZoneListWarning) MarshalJSON() ([]byte, error) {
51531	type NoMethod ZoneListWarning
51532	raw := NoMethod(*s)
51533	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
51534}
51535
51536type ZoneListWarningData struct {
51537	// Key: [Output Only] A key that provides more detail on the warning
51538	// being returned. For example, for warnings where there are no results
51539	// in a list request for a particular zone, this key might be scope and
51540	// the key value might be the zone name. Other examples might be a key
51541	// indicating a deprecated resource and a suggested replacement, or a
51542	// warning about invalid network settings (for example, if an instance
51543	// attempts to perform IP forwarding but is not enabled for IP
51544	// forwarding).
51545	Key string `json:"key,omitempty"`
51546
51547	// Value: [Output Only] A warning data value corresponding to the key.
51548	Value string `json:"value,omitempty"`
51549
51550	// ForceSendFields is a list of field names (e.g. "Key") to
51551	// unconditionally include in API requests. By default, fields with
51552	// empty or default values are omitted from API requests. However, any
51553	// non-pointer, non-interface field appearing in ForceSendFields will be
51554	// sent to the server regardless of whether the field is empty or not.
51555	// This may be used to include empty fields in Patch requests.
51556	ForceSendFields []string `json:"-"`
51557
51558	// NullFields is a list of field names (e.g. "Key") to include in API
51559	// requests with the JSON null value. By default, fields with empty
51560	// values are omitted from API requests. However, any field with an
51561	// empty value appearing in NullFields will be sent to the server as
51562	// null. It is an error if a field in this list has a non-empty value.
51563	// This may be used to include null fields in Patch requests.
51564	NullFields []string `json:"-"`
51565}
51566
51567func (s *ZoneListWarningData) MarshalJSON() ([]byte, error) {
51568	type NoMethod ZoneListWarningData
51569	raw := NoMethod(*s)
51570	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
51571}
51572
51573type ZoneSetLabelsRequest struct {
51574	// LabelFingerprint: The fingerprint of the previous set of labels for
51575	// this resource, used to detect conflicts. The fingerprint is initially
51576	// generated by Compute Engine and changes after every request to modify
51577	// or update labels. You must always provide an up-to-date fingerprint
51578	// hash in order to update or change labels. Make a get() request to the
51579	// resource to get the latest fingerprint.
51580	LabelFingerprint string `json:"labelFingerprint,omitempty"`
51581
51582	// Labels: The labels to set for this resource.
51583	Labels map[string]string `json:"labels,omitempty"`
51584
51585	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
51586	// unconditionally include in API requests. By default, fields with
51587	// empty or default values are omitted from API requests. However, any
51588	// non-pointer, non-interface field appearing in ForceSendFields will be
51589	// sent to the server regardless of whether the field is empty or not.
51590	// This may be used to include empty fields in Patch requests.
51591	ForceSendFields []string `json:"-"`
51592
51593	// NullFields is a list of field names (e.g. "LabelFingerprint") to
51594	// include in API requests with the JSON null value. By default, fields
51595	// with empty values are omitted from API requests. However, any field
51596	// with an empty value appearing in NullFields will be sent to the
51597	// server as null. It is an error if a field in this list has a
51598	// non-empty value. This may be used to include null fields in Patch
51599	// requests.
51600	NullFields []string `json:"-"`
51601}
51602
51603func (s *ZoneSetLabelsRequest) MarshalJSON() ([]byte, error) {
51604	type NoMethod ZoneSetLabelsRequest
51605	raw := NoMethod(*s)
51606	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
51607}
51608
51609type ZoneSetPolicyRequest struct {
51610	// Bindings: Flatten Policy to create a backwacd compatible wire-format.
51611	// Deprecated. Use 'policy' to specify bindings.
51612	Bindings []*Binding `json:"bindings,omitempty"`
51613
51614	// Etag: Flatten Policy to create a backward compatible wire-format.
51615	// Deprecated. Use 'policy' to specify the etag.
51616	Etag string `json:"etag,omitempty"`
51617
51618	// Policy: REQUIRED: The complete policy to be applied to the
51619	// 'resource'. The size of the policy is limited to a few 10s of KB. An
51620	// empty policy is in general a valid policy but certain services (like
51621	// Projects) might reject them.
51622	Policy *Policy `json:"policy,omitempty"`
51623
51624	// ForceSendFields is a list of field names (e.g. "Bindings") to
51625	// unconditionally include in API requests. By default, fields with
51626	// empty or default values are omitted from API requests. However, any
51627	// non-pointer, non-interface field appearing in ForceSendFields will be
51628	// sent to the server regardless of whether the field is empty or not.
51629	// This may be used to include empty fields in Patch requests.
51630	ForceSendFields []string `json:"-"`
51631
51632	// NullFields is a list of field names (e.g. "Bindings") to include in
51633	// API requests with the JSON null value. By default, fields with empty
51634	// values are omitted from API requests. However, any field with an
51635	// empty value appearing in NullFields will be sent to the server as
51636	// null. It is an error if a field in this list has a non-empty value.
51637	// This may be used to include null fields in Patch requests.
51638	NullFields []string `json:"-"`
51639}
51640
51641func (s *ZoneSetPolicyRequest) MarshalJSON() ([]byte, error) {
51642	type NoMethod ZoneSetPolicyRequest
51643	raw := NoMethod(*s)
51644	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
51645}
51646
51647// method id "compute.acceleratorTypes.aggregatedList":
51648
51649type AcceleratorTypesAggregatedListCall struct {
51650	s            *Service
51651	project      string
51652	urlParams_   gensupport.URLParams
51653	ifNoneMatch_ string
51654	ctx_         context.Context
51655	header_      http.Header
51656}
51657
51658// AggregatedList: Retrieves an aggregated list of accelerator types.
51659//
51660// - project: Project ID for this request.
51661func (r *AcceleratorTypesService) AggregatedList(project string) *AcceleratorTypesAggregatedListCall {
51662	c := &AcceleratorTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51663	c.project = project
51664	return c
51665}
51666
51667// Filter sets the optional parameter "filter": A filter expression that
51668// filters resources listed in the response. The expression must specify
51669// the field name, a comparison operator, and the value that you want to
51670// use for filtering. The value must be a string, a number, or a
51671// boolean. The comparison operator must be either `=`, `!=`, `>`, or
51672// `<`. For example, if you are filtering Compute Engine instances, you
51673// can exclude instances named `example-instance` by specifying `name !=
51674// example-instance`. You can also filter nested fields. For example,
51675// you could specify `scheduling.automaticRestart = false` to include
51676// instances only if they are not scheduled for automatic restarts. You
51677// can use filtering on nested fields to filter based on resource
51678// labels. To filter on multiple expressions, provide each separate
51679// expression within parentheses. For example: ```
51680// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
51681// ``` By default, each expression is an `AND` expression. However, you
51682// can include `AND` and `OR` expressions explicitly. For example: ```
51683// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
51684// AND (scheduling.automaticRestart = true) ```
51685func (c *AcceleratorTypesAggregatedListCall) Filter(filter string) *AcceleratorTypesAggregatedListCall {
51686	c.urlParams_.Set("filter", filter)
51687	return c
51688}
51689
51690// IncludeAllScopes sets the optional parameter "includeAllScopes":
51691// Indicates whether every visible scope for each scope type (zone,
51692// region, global) should be included in the response. For new resource
51693// types added after this field, the flag has no effect as new resource
51694// types will always include every visible scope for each scope type in
51695// response. For resource types which predate this field, if this flag
51696// is omitted or false, only scopes of the scope types where the
51697// resource type is expected to be found will be included.
51698func (c *AcceleratorTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AcceleratorTypesAggregatedListCall {
51699	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
51700	return c
51701}
51702
51703// MaxResults sets the optional parameter "maxResults": The maximum
51704// number of results per page that should be returned. If the number of
51705// available results is larger than `maxResults`, Compute Engine returns
51706// a `nextPageToken` that can be used to get the next page of results in
51707// subsequent list requests. Acceptable values are `0` to `500`,
51708// inclusive. (Default: `500`)
51709func (c *AcceleratorTypesAggregatedListCall) MaxResults(maxResults int64) *AcceleratorTypesAggregatedListCall {
51710	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
51711	return c
51712}
51713
51714// OrderBy sets the optional parameter "orderBy": Sorts list results by
51715// a certain order. By default, results are returned in alphanumerical
51716// order based on the resource name. You can also sort results in
51717// descending order based on the creation timestamp using
51718// `orderBy="creationTimestamp desc". This sorts results based on the
51719// `creationTimestamp` field in reverse chronological order (newest
51720// result first). Use this to sort resources like operations so that the
51721// newest operation is returned first. Currently, only sorting by `name`
51722// or `creationTimestamp desc` is supported.
51723func (c *AcceleratorTypesAggregatedListCall) OrderBy(orderBy string) *AcceleratorTypesAggregatedListCall {
51724	c.urlParams_.Set("orderBy", orderBy)
51725	return c
51726}
51727
51728// PageToken sets the optional parameter "pageToken": Specifies a page
51729// token to use. Set `pageToken` to the `nextPageToken` returned by a
51730// previous list request to get the next page of results.
51731func (c *AcceleratorTypesAggregatedListCall) PageToken(pageToken string) *AcceleratorTypesAggregatedListCall {
51732	c.urlParams_.Set("pageToken", pageToken)
51733	return c
51734}
51735
51736// ReturnPartialSuccess sets the optional parameter
51737// "returnPartialSuccess": Opt-in for partial success behavior which
51738// provides partial results in case of failure. The default value is
51739// false.
51740func (c *AcceleratorTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AcceleratorTypesAggregatedListCall {
51741	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
51742	return c
51743}
51744
51745// Fields allows partial responses to be retrieved. See
51746// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51747// for more information.
51748func (c *AcceleratorTypesAggregatedListCall) Fields(s ...googleapi.Field) *AcceleratorTypesAggregatedListCall {
51749	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51750	return c
51751}
51752
51753// IfNoneMatch sets the optional parameter which makes the operation
51754// fail if the object's ETag matches the given value. This is useful for
51755// getting updates only after the object has changed since the last
51756// request. Use googleapi.IsNotModified to check whether the response
51757// error from Do is the result of In-None-Match.
51758func (c *AcceleratorTypesAggregatedListCall) IfNoneMatch(entityTag string) *AcceleratorTypesAggregatedListCall {
51759	c.ifNoneMatch_ = entityTag
51760	return c
51761}
51762
51763// Context sets the context to be used in this call's Do method. Any
51764// pending HTTP request will be aborted if the provided context is
51765// canceled.
51766func (c *AcceleratorTypesAggregatedListCall) Context(ctx context.Context) *AcceleratorTypesAggregatedListCall {
51767	c.ctx_ = ctx
51768	return c
51769}
51770
51771// Header returns an http.Header that can be modified by the caller to
51772// add HTTP headers to the request.
51773func (c *AcceleratorTypesAggregatedListCall) Header() http.Header {
51774	if c.header_ == nil {
51775		c.header_ = make(http.Header)
51776	}
51777	return c.header_
51778}
51779
51780func (c *AcceleratorTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
51781	reqHeaders := make(http.Header)
51782	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
51783	for k, v := range c.header_ {
51784		reqHeaders[k] = v
51785	}
51786	reqHeaders.Set("User-Agent", c.s.userAgent())
51787	if c.ifNoneMatch_ != "" {
51788		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
51789	}
51790	var body io.Reader = nil
51791	c.urlParams_.Set("alt", alt)
51792	c.urlParams_.Set("prettyPrint", "false")
51793	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/acceleratorTypes")
51794	urls += "?" + c.urlParams_.Encode()
51795	req, err := http.NewRequest("GET", urls, body)
51796	if err != nil {
51797		return nil, err
51798	}
51799	req.Header = reqHeaders
51800	googleapi.Expand(req.URL, map[string]string{
51801		"project": c.project,
51802	})
51803	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51804}
51805
51806// Do executes the "compute.acceleratorTypes.aggregatedList" call.
51807// Exactly one of *AcceleratorTypeAggregatedList or error will be
51808// non-nil. Any non-2xx status code is an error. Response headers are in
51809// either *AcceleratorTypeAggregatedList.ServerResponse.Header or (if a
51810// response was returned at all) in error.(*googleapi.Error).Header. Use
51811// googleapi.IsNotModified to check whether the returned error was
51812// because http.StatusNotModified was returned.
51813func (c *AcceleratorTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*AcceleratorTypeAggregatedList, error) {
51814	gensupport.SetOptions(c.urlParams_, opts...)
51815	res, err := c.doRequest("json")
51816	if res != nil && res.StatusCode == http.StatusNotModified {
51817		if res.Body != nil {
51818			res.Body.Close()
51819		}
51820		return nil, &googleapi.Error{
51821			Code:   res.StatusCode,
51822			Header: res.Header,
51823		}
51824	}
51825	if err != nil {
51826		return nil, err
51827	}
51828	defer googleapi.CloseBody(res)
51829	if err := googleapi.CheckResponse(res); err != nil {
51830		return nil, err
51831	}
51832	ret := &AcceleratorTypeAggregatedList{
51833		ServerResponse: googleapi.ServerResponse{
51834			Header:         res.Header,
51835			HTTPStatusCode: res.StatusCode,
51836		},
51837	}
51838	target := &ret
51839	if err := gensupport.DecodeResponse(target, res); err != nil {
51840		return nil, err
51841	}
51842	return ret, nil
51843	// {
51844	//   "description": "Retrieves an aggregated list of accelerator types.",
51845	//   "flatPath": "projects/{project}/aggregated/acceleratorTypes",
51846	//   "httpMethod": "GET",
51847	//   "id": "compute.acceleratorTypes.aggregatedList",
51848	//   "parameterOrder": [
51849	//     "project"
51850	//   ],
51851	//   "parameters": {
51852	//     "filter": {
51853	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
51854	//       "location": "query",
51855	//       "type": "string"
51856	//     },
51857	//     "includeAllScopes": {
51858	//       "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.",
51859	//       "location": "query",
51860	//       "type": "boolean"
51861	//     },
51862	//     "maxResults": {
51863	//       "default": "500",
51864	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
51865	//       "format": "uint32",
51866	//       "location": "query",
51867	//       "minimum": "0",
51868	//       "type": "integer"
51869	//     },
51870	//     "orderBy": {
51871	//       "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.",
51872	//       "location": "query",
51873	//       "type": "string"
51874	//     },
51875	//     "pageToken": {
51876	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
51877	//       "location": "query",
51878	//       "type": "string"
51879	//     },
51880	//     "project": {
51881	//       "description": "Project ID for this request.",
51882	//       "location": "path",
51883	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51884	//       "required": true,
51885	//       "type": "string"
51886	//     },
51887	//     "returnPartialSuccess": {
51888	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
51889	//       "location": "query",
51890	//       "type": "boolean"
51891	//     }
51892	//   },
51893	//   "path": "projects/{project}/aggregated/acceleratorTypes",
51894	//   "response": {
51895	//     "$ref": "AcceleratorTypeAggregatedList"
51896	//   },
51897	//   "scopes": [
51898	//     "https://www.googleapis.com/auth/cloud-platform",
51899	//     "https://www.googleapis.com/auth/compute",
51900	//     "https://www.googleapis.com/auth/compute.readonly"
51901	//   ]
51902	// }
51903
51904}
51905
51906// Pages invokes f for each page of results.
51907// A non-nil error returned from f will halt the iteration.
51908// The provided context supersedes any context provided to the Context method.
51909func (c *AcceleratorTypesAggregatedListCall) Pages(ctx context.Context, f func(*AcceleratorTypeAggregatedList) error) error {
51910	c.ctx_ = ctx
51911	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
51912	for {
51913		x, err := c.Do()
51914		if err != nil {
51915			return err
51916		}
51917		if err := f(x); err != nil {
51918			return err
51919		}
51920		if x.NextPageToken == "" {
51921			return nil
51922		}
51923		c.PageToken(x.NextPageToken)
51924	}
51925}
51926
51927// method id "compute.acceleratorTypes.get":
51928
51929type AcceleratorTypesGetCall struct {
51930	s               *Service
51931	project         string
51932	zone            string
51933	acceleratorType string
51934	urlParams_      gensupport.URLParams
51935	ifNoneMatch_    string
51936	ctx_            context.Context
51937	header_         http.Header
51938}
51939
51940// Get: Returns the specified accelerator type.
51941//
51942// - acceleratorType: Name of the accelerator type to return.
51943// - project: Project ID for this request.
51944// - zone: The name of the zone for this request.
51945func (r *AcceleratorTypesService) Get(project string, zone string, acceleratorType string) *AcceleratorTypesGetCall {
51946	c := &AcceleratorTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51947	c.project = project
51948	c.zone = zone
51949	c.acceleratorType = acceleratorType
51950	return c
51951}
51952
51953// Fields allows partial responses to be retrieved. See
51954// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51955// for more information.
51956func (c *AcceleratorTypesGetCall) Fields(s ...googleapi.Field) *AcceleratorTypesGetCall {
51957	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51958	return c
51959}
51960
51961// IfNoneMatch sets the optional parameter which makes the operation
51962// fail if the object's ETag matches the given value. This is useful for
51963// getting updates only after the object has changed since the last
51964// request. Use googleapi.IsNotModified to check whether the response
51965// error from Do is the result of In-None-Match.
51966func (c *AcceleratorTypesGetCall) IfNoneMatch(entityTag string) *AcceleratorTypesGetCall {
51967	c.ifNoneMatch_ = entityTag
51968	return c
51969}
51970
51971// Context sets the context to be used in this call's Do method. Any
51972// pending HTTP request will be aborted if the provided context is
51973// canceled.
51974func (c *AcceleratorTypesGetCall) Context(ctx context.Context) *AcceleratorTypesGetCall {
51975	c.ctx_ = ctx
51976	return c
51977}
51978
51979// Header returns an http.Header that can be modified by the caller to
51980// add HTTP headers to the request.
51981func (c *AcceleratorTypesGetCall) Header() http.Header {
51982	if c.header_ == nil {
51983		c.header_ = make(http.Header)
51984	}
51985	return c.header_
51986}
51987
51988func (c *AcceleratorTypesGetCall) doRequest(alt string) (*http.Response, error) {
51989	reqHeaders := make(http.Header)
51990	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
51991	for k, v := range c.header_ {
51992		reqHeaders[k] = v
51993	}
51994	reqHeaders.Set("User-Agent", c.s.userAgent())
51995	if c.ifNoneMatch_ != "" {
51996		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
51997	}
51998	var body io.Reader = nil
51999	c.urlParams_.Set("alt", alt)
52000	c.urlParams_.Set("prettyPrint", "false")
52001	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/acceleratorTypes/{acceleratorType}")
52002	urls += "?" + c.urlParams_.Encode()
52003	req, err := http.NewRequest("GET", urls, body)
52004	if err != nil {
52005		return nil, err
52006	}
52007	req.Header = reqHeaders
52008	googleapi.Expand(req.URL, map[string]string{
52009		"project":         c.project,
52010		"zone":            c.zone,
52011		"acceleratorType": c.acceleratorType,
52012	})
52013	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52014}
52015
52016// Do executes the "compute.acceleratorTypes.get" call.
52017// Exactly one of *AcceleratorType or error will be non-nil. Any non-2xx
52018// status code is an error. Response headers are in either
52019// *AcceleratorType.ServerResponse.Header or (if a response was returned
52020// at all) in error.(*googleapi.Error).Header. Use
52021// googleapi.IsNotModified to check whether the returned error was
52022// because http.StatusNotModified was returned.
52023func (c *AcceleratorTypesGetCall) Do(opts ...googleapi.CallOption) (*AcceleratorType, error) {
52024	gensupport.SetOptions(c.urlParams_, opts...)
52025	res, err := c.doRequest("json")
52026	if res != nil && res.StatusCode == http.StatusNotModified {
52027		if res.Body != nil {
52028			res.Body.Close()
52029		}
52030		return nil, &googleapi.Error{
52031			Code:   res.StatusCode,
52032			Header: res.Header,
52033		}
52034	}
52035	if err != nil {
52036		return nil, err
52037	}
52038	defer googleapi.CloseBody(res)
52039	if err := googleapi.CheckResponse(res); err != nil {
52040		return nil, err
52041	}
52042	ret := &AcceleratorType{
52043		ServerResponse: googleapi.ServerResponse{
52044			Header:         res.Header,
52045			HTTPStatusCode: res.StatusCode,
52046		},
52047	}
52048	target := &ret
52049	if err := gensupport.DecodeResponse(target, res); err != nil {
52050		return nil, err
52051	}
52052	return ret, nil
52053	// {
52054	//   "description": "Returns the specified accelerator type.",
52055	//   "flatPath": "projects/{project}/zones/{zone}/acceleratorTypes/{acceleratorType}",
52056	//   "httpMethod": "GET",
52057	//   "id": "compute.acceleratorTypes.get",
52058	//   "parameterOrder": [
52059	//     "project",
52060	//     "zone",
52061	//     "acceleratorType"
52062	//   ],
52063	//   "parameters": {
52064	//     "acceleratorType": {
52065	//       "description": "Name of the accelerator type to return.",
52066	//       "location": "path",
52067	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52068	//       "required": true,
52069	//       "type": "string"
52070	//     },
52071	//     "project": {
52072	//       "description": "Project ID for this request.",
52073	//       "location": "path",
52074	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52075	//       "required": true,
52076	//       "type": "string"
52077	//     },
52078	//     "zone": {
52079	//       "description": "The name of the zone for this request.",
52080	//       "location": "path",
52081	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52082	//       "required": true,
52083	//       "type": "string"
52084	//     }
52085	//   },
52086	//   "path": "projects/{project}/zones/{zone}/acceleratorTypes/{acceleratorType}",
52087	//   "response": {
52088	//     "$ref": "AcceleratorType"
52089	//   },
52090	//   "scopes": [
52091	//     "https://www.googleapis.com/auth/cloud-platform",
52092	//     "https://www.googleapis.com/auth/compute",
52093	//     "https://www.googleapis.com/auth/compute.readonly"
52094	//   ]
52095	// }
52096
52097}
52098
52099// method id "compute.acceleratorTypes.list":
52100
52101type AcceleratorTypesListCall struct {
52102	s            *Service
52103	project      string
52104	zone         string
52105	urlParams_   gensupport.URLParams
52106	ifNoneMatch_ string
52107	ctx_         context.Context
52108	header_      http.Header
52109}
52110
52111// List: Retrieves a list of accelerator types that are available to the
52112// specified project.
52113//
52114// - project: Project ID for this request.
52115// - zone: The name of the zone for this request.
52116func (r *AcceleratorTypesService) List(project string, zone string) *AcceleratorTypesListCall {
52117	c := &AcceleratorTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52118	c.project = project
52119	c.zone = zone
52120	return c
52121}
52122
52123// Filter sets the optional parameter "filter": A filter expression that
52124// filters resources listed in the response. The expression must specify
52125// the field name, a comparison operator, and the value that you want to
52126// use for filtering. The value must be a string, a number, or a
52127// boolean. The comparison operator must be either `=`, `!=`, `>`, or
52128// `<`. For example, if you are filtering Compute Engine instances, you
52129// can exclude instances named `example-instance` by specifying `name !=
52130// example-instance`. You can also filter nested fields. For example,
52131// you could specify `scheduling.automaticRestart = false` to include
52132// instances only if they are not scheduled for automatic restarts. You
52133// can use filtering on nested fields to filter based on resource
52134// labels. To filter on multiple expressions, provide each separate
52135// expression within parentheses. For example: ```
52136// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
52137// ``` By default, each expression is an `AND` expression. However, you
52138// can include `AND` and `OR` expressions explicitly. For example: ```
52139// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
52140// AND (scheduling.automaticRestart = true) ```
52141func (c *AcceleratorTypesListCall) Filter(filter string) *AcceleratorTypesListCall {
52142	c.urlParams_.Set("filter", filter)
52143	return c
52144}
52145
52146// MaxResults sets the optional parameter "maxResults": The maximum
52147// number of results per page that should be returned. If the number of
52148// available results is larger than `maxResults`, Compute Engine returns
52149// a `nextPageToken` that can be used to get the next page of results in
52150// subsequent list requests. Acceptable values are `0` to `500`,
52151// inclusive. (Default: `500`)
52152func (c *AcceleratorTypesListCall) MaxResults(maxResults int64) *AcceleratorTypesListCall {
52153	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
52154	return c
52155}
52156
52157// OrderBy sets the optional parameter "orderBy": Sorts list results by
52158// a certain order. By default, results are returned in alphanumerical
52159// order based on the resource name. You can also sort results in
52160// descending order based on the creation timestamp using
52161// `orderBy="creationTimestamp desc". This sorts results based on the
52162// `creationTimestamp` field in reverse chronological order (newest
52163// result first). Use this to sort resources like operations so that the
52164// newest operation is returned first. Currently, only sorting by `name`
52165// or `creationTimestamp desc` is supported.
52166func (c *AcceleratorTypesListCall) OrderBy(orderBy string) *AcceleratorTypesListCall {
52167	c.urlParams_.Set("orderBy", orderBy)
52168	return c
52169}
52170
52171// PageToken sets the optional parameter "pageToken": Specifies a page
52172// token to use. Set `pageToken` to the `nextPageToken` returned by a
52173// previous list request to get the next page of results.
52174func (c *AcceleratorTypesListCall) PageToken(pageToken string) *AcceleratorTypesListCall {
52175	c.urlParams_.Set("pageToken", pageToken)
52176	return c
52177}
52178
52179// ReturnPartialSuccess sets the optional parameter
52180// "returnPartialSuccess": Opt-in for partial success behavior which
52181// provides partial results in case of failure. The default value is
52182// false.
52183func (c *AcceleratorTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AcceleratorTypesListCall {
52184	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
52185	return c
52186}
52187
52188// Fields allows partial responses to be retrieved. See
52189// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52190// for more information.
52191func (c *AcceleratorTypesListCall) Fields(s ...googleapi.Field) *AcceleratorTypesListCall {
52192	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52193	return c
52194}
52195
52196// IfNoneMatch sets the optional parameter which makes the operation
52197// fail if the object's ETag matches the given value. This is useful for
52198// getting updates only after the object has changed since the last
52199// request. Use googleapi.IsNotModified to check whether the response
52200// error from Do is the result of In-None-Match.
52201func (c *AcceleratorTypesListCall) IfNoneMatch(entityTag string) *AcceleratorTypesListCall {
52202	c.ifNoneMatch_ = entityTag
52203	return c
52204}
52205
52206// Context sets the context to be used in this call's Do method. Any
52207// pending HTTP request will be aborted if the provided context is
52208// canceled.
52209func (c *AcceleratorTypesListCall) Context(ctx context.Context) *AcceleratorTypesListCall {
52210	c.ctx_ = ctx
52211	return c
52212}
52213
52214// Header returns an http.Header that can be modified by the caller to
52215// add HTTP headers to the request.
52216func (c *AcceleratorTypesListCall) Header() http.Header {
52217	if c.header_ == nil {
52218		c.header_ = make(http.Header)
52219	}
52220	return c.header_
52221}
52222
52223func (c *AcceleratorTypesListCall) doRequest(alt string) (*http.Response, error) {
52224	reqHeaders := make(http.Header)
52225	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
52226	for k, v := range c.header_ {
52227		reqHeaders[k] = v
52228	}
52229	reqHeaders.Set("User-Agent", c.s.userAgent())
52230	if c.ifNoneMatch_ != "" {
52231		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52232	}
52233	var body io.Reader = nil
52234	c.urlParams_.Set("alt", alt)
52235	c.urlParams_.Set("prettyPrint", "false")
52236	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/acceleratorTypes")
52237	urls += "?" + c.urlParams_.Encode()
52238	req, err := http.NewRequest("GET", urls, body)
52239	if err != nil {
52240		return nil, err
52241	}
52242	req.Header = reqHeaders
52243	googleapi.Expand(req.URL, map[string]string{
52244		"project": c.project,
52245		"zone":    c.zone,
52246	})
52247	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52248}
52249
52250// Do executes the "compute.acceleratorTypes.list" call.
52251// Exactly one of *AcceleratorTypeList or error will be non-nil. Any
52252// non-2xx status code is an error. Response headers are in either
52253// *AcceleratorTypeList.ServerResponse.Header or (if a response was
52254// returned at all) in error.(*googleapi.Error).Header. Use
52255// googleapi.IsNotModified to check whether the returned error was
52256// because http.StatusNotModified was returned.
52257func (c *AcceleratorTypesListCall) Do(opts ...googleapi.CallOption) (*AcceleratorTypeList, error) {
52258	gensupport.SetOptions(c.urlParams_, opts...)
52259	res, err := c.doRequest("json")
52260	if res != nil && res.StatusCode == http.StatusNotModified {
52261		if res.Body != nil {
52262			res.Body.Close()
52263		}
52264		return nil, &googleapi.Error{
52265			Code:   res.StatusCode,
52266			Header: res.Header,
52267		}
52268	}
52269	if err != nil {
52270		return nil, err
52271	}
52272	defer googleapi.CloseBody(res)
52273	if err := googleapi.CheckResponse(res); err != nil {
52274		return nil, err
52275	}
52276	ret := &AcceleratorTypeList{
52277		ServerResponse: googleapi.ServerResponse{
52278			Header:         res.Header,
52279			HTTPStatusCode: res.StatusCode,
52280		},
52281	}
52282	target := &ret
52283	if err := gensupport.DecodeResponse(target, res); err != nil {
52284		return nil, err
52285	}
52286	return ret, nil
52287	// {
52288	//   "description": "Retrieves a list of accelerator types that are available to the specified project.",
52289	//   "flatPath": "projects/{project}/zones/{zone}/acceleratorTypes",
52290	//   "httpMethod": "GET",
52291	//   "id": "compute.acceleratorTypes.list",
52292	//   "parameterOrder": [
52293	//     "project",
52294	//     "zone"
52295	//   ],
52296	//   "parameters": {
52297	//     "filter": {
52298	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
52299	//       "location": "query",
52300	//       "type": "string"
52301	//     },
52302	//     "maxResults": {
52303	//       "default": "500",
52304	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
52305	//       "format": "uint32",
52306	//       "location": "query",
52307	//       "minimum": "0",
52308	//       "type": "integer"
52309	//     },
52310	//     "orderBy": {
52311	//       "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.",
52312	//       "location": "query",
52313	//       "type": "string"
52314	//     },
52315	//     "pageToken": {
52316	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
52317	//       "location": "query",
52318	//       "type": "string"
52319	//     },
52320	//     "project": {
52321	//       "description": "Project ID for this request.",
52322	//       "location": "path",
52323	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52324	//       "required": true,
52325	//       "type": "string"
52326	//     },
52327	//     "returnPartialSuccess": {
52328	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
52329	//       "location": "query",
52330	//       "type": "boolean"
52331	//     },
52332	//     "zone": {
52333	//       "description": "The name of the zone for this request.",
52334	//       "location": "path",
52335	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52336	//       "required": true,
52337	//       "type": "string"
52338	//     }
52339	//   },
52340	//   "path": "projects/{project}/zones/{zone}/acceleratorTypes",
52341	//   "response": {
52342	//     "$ref": "AcceleratorTypeList"
52343	//   },
52344	//   "scopes": [
52345	//     "https://www.googleapis.com/auth/cloud-platform",
52346	//     "https://www.googleapis.com/auth/compute",
52347	//     "https://www.googleapis.com/auth/compute.readonly"
52348	//   ]
52349	// }
52350
52351}
52352
52353// Pages invokes f for each page of results.
52354// A non-nil error returned from f will halt the iteration.
52355// The provided context supersedes any context provided to the Context method.
52356func (c *AcceleratorTypesListCall) Pages(ctx context.Context, f func(*AcceleratorTypeList) error) error {
52357	c.ctx_ = ctx
52358	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
52359	for {
52360		x, err := c.Do()
52361		if err != nil {
52362			return err
52363		}
52364		if err := f(x); err != nil {
52365			return err
52366		}
52367		if x.NextPageToken == "" {
52368			return nil
52369		}
52370		c.PageToken(x.NextPageToken)
52371	}
52372}
52373
52374// method id "compute.addresses.aggregatedList":
52375
52376type AddressesAggregatedListCall struct {
52377	s            *Service
52378	project      string
52379	urlParams_   gensupport.URLParams
52380	ifNoneMatch_ string
52381	ctx_         context.Context
52382	header_      http.Header
52383}
52384
52385// AggregatedList: Retrieves an aggregated list of addresses.
52386//
52387// - project: Project ID for this request.
52388func (r *AddressesService) AggregatedList(project string) *AddressesAggregatedListCall {
52389	c := &AddressesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52390	c.project = project
52391	return c
52392}
52393
52394// Filter sets the optional parameter "filter": A filter expression that
52395// filters resources listed in the response. The expression must specify
52396// the field name, a comparison operator, and the value that you want to
52397// use for filtering. The value must be a string, a number, or a
52398// boolean. The comparison operator must be either `=`, `!=`, `>`, or
52399// `<`. For example, if you are filtering Compute Engine instances, you
52400// can exclude instances named `example-instance` by specifying `name !=
52401// example-instance`. You can also filter nested fields. For example,
52402// you could specify `scheduling.automaticRestart = false` to include
52403// instances only if they are not scheduled for automatic restarts. You
52404// can use filtering on nested fields to filter based on resource
52405// labels. To filter on multiple expressions, provide each separate
52406// expression within parentheses. For example: ```
52407// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
52408// ``` By default, each expression is an `AND` expression. However, you
52409// can include `AND` and `OR` expressions explicitly. For example: ```
52410// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
52411// AND (scheduling.automaticRestart = true) ```
52412func (c *AddressesAggregatedListCall) Filter(filter string) *AddressesAggregatedListCall {
52413	c.urlParams_.Set("filter", filter)
52414	return c
52415}
52416
52417// IncludeAllScopes sets the optional parameter "includeAllScopes":
52418// Indicates whether every visible scope for each scope type (zone,
52419// region, global) should be included in the response. For new resource
52420// types added after this field, the flag has no effect as new resource
52421// types will always include every visible scope for each scope type in
52422// response. For resource types which predate this field, if this flag
52423// is omitted or false, only scopes of the scope types where the
52424// resource type is expected to be found will be included.
52425func (c *AddressesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AddressesAggregatedListCall {
52426	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
52427	return c
52428}
52429
52430// MaxResults sets the optional parameter "maxResults": The maximum
52431// number of results per page that should be returned. If the number of
52432// available results is larger than `maxResults`, Compute Engine returns
52433// a `nextPageToken` that can be used to get the next page of results in
52434// subsequent list requests. Acceptable values are `0` to `500`,
52435// inclusive. (Default: `500`)
52436func (c *AddressesAggregatedListCall) MaxResults(maxResults int64) *AddressesAggregatedListCall {
52437	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
52438	return c
52439}
52440
52441// OrderBy sets the optional parameter "orderBy": Sorts list results by
52442// a certain order. By default, results are returned in alphanumerical
52443// order based on the resource name. You can also sort results in
52444// descending order based on the creation timestamp using
52445// `orderBy="creationTimestamp desc". This sorts results based on the
52446// `creationTimestamp` field in reverse chronological order (newest
52447// result first). Use this to sort resources like operations so that the
52448// newest operation is returned first. Currently, only sorting by `name`
52449// or `creationTimestamp desc` is supported.
52450func (c *AddressesAggregatedListCall) OrderBy(orderBy string) *AddressesAggregatedListCall {
52451	c.urlParams_.Set("orderBy", orderBy)
52452	return c
52453}
52454
52455// PageToken sets the optional parameter "pageToken": Specifies a page
52456// token to use. Set `pageToken` to the `nextPageToken` returned by a
52457// previous list request to get the next page of results.
52458func (c *AddressesAggregatedListCall) PageToken(pageToken string) *AddressesAggregatedListCall {
52459	c.urlParams_.Set("pageToken", pageToken)
52460	return c
52461}
52462
52463// ReturnPartialSuccess sets the optional parameter
52464// "returnPartialSuccess": Opt-in for partial success behavior which
52465// provides partial results in case of failure. The default value is
52466// false.
52467func (c *AddressesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AddressesAggregatedListCall {
52468	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
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 *AddressesAggregatedListCall) Fields(s ...googleapi.Field) *AddressesAggregatedListCall {
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 *AddressesAggregatedListCall) IfNoneMatch(entityTag string) *AddressesAggregatedListCall {
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 *AddressesAggregatedListCall) Context(ctx context.Context) *AddressesAggregatedListCall {
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 *AddressesAggregatedListCall) Header() http.Header {
52501	if c.header_ == nil {
52502		c.header_ = make(http.Header)
52503	}
52504	return c.header_
52505}
52506
52507func (c *AddressesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
52508	reqHeaders := make(http.Header)
52509	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
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}/aggregated/addresses")
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	})
52530	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52531}
52532
52533// Do executes the "compute.addresses.aggregatedList" call.
52534// Exactly one of *AddressAggregatedList or error will be non-nil. Any
52535// non-2xx status code is an error. Response headers are in either
52536// *AddressAggregatedList.ServerResponse.Header or (if a response was
52537// returned at all) in error.(*googleapi.Error).Header. Use
52538// googleapi.IsNotModified to check whether the returned error was
52539// because http.StatusNotModified was returned.
52540func (c *AddressesAggregatedListCall) Do(opts ...googleapi.CallOption) (*AddressAggregatedList, error) {
52541	gensupport.SetOptions(c.urlParams_, opts...)
52542	res, err := c.doRequest("json")
52543	if res != nil && res.StatusCode == http.StatusNotModified {
52544		if res.Body != nil {
52545			res.Body.Close()
52546		}
52547		return nil, &googleapi.Error{
52548			Code:   res.StatusCode,
52549			Header: res.Header,
52550		}
52551	}
52552	if err != nil {
52553		return nil, err
52554	}
52555	defer googleapi.CloseBody(res)
52556	if err := googleapi.CheckResponse(res); err != nil {
52557		return nil, err
52558	}
52559	ret := &AddressAggregatedList{
52560		ServerResponse: googleapi.ServerResponse{
52561			Header:         res.Header,
52562			HTTPStatusCode: res.StatusCode,
52563		},
52564	}
52565	target := &ret
52566	if err := gensupport.DecodeResponse(target, res); err != nil {
52567		return nil, err
52568	}
52569	return ret, nil
52570	// {
52571	//   "description": "Retrieves an aggregated list of addresses.",
52572	//   "flatPath": "projects/{project}/aggregated/addresses",
52573	//   "httpMethod": "GET",
52574	//   "id": "compute.addresses.aggregatedList",
52575	//   "parameterOrder": [
52576	//     "project"
52577	//   ],
52578	//   "parameters": {
52579	//     "filter": {
52580	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
52581	//       "location": "query",
52582	//       "type": "string"
52583	//     },
52584	//     "includeAllScopes": {
52585	//       "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.",
52586	//       "location": "query",
52587	//       "type": "boolean"
52588	//     },
52589	//     "maxResults": {
52590	//       "default": "500",
52591	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
52592	//       "format": "uint32",
52593	//       "location": "query",
52594	//       "minimum": "0",
52595	//       "type": "integer"
52596	//     },
52597	//     "orderBy": {
52598	//       "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.",
52599	//       "location": "query",
52600	//       "type": "string"
52601	//     },
52602	//     "pageToken": {
52603	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
52604	//       "location": "query",
52605	//       "type": "string"
52606	//     },
52607	//     "project": {
52608	//       "description": "Project ID for this request.",
52609	//       "location": "path",
52610	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52611	//       "required": true,
52612	//       "type": "string"
52613	//     },
52614	//     "returnPartialSuccess": {
52615	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
52616	//       "location": "query",
52617	//       "type": "boolean"
52618	//     }
52619	//   },
52620	//   "path": "projects/{project}/aggregated/addresses",
52621	//   "response": {
52622	//     "$ref": "AddressAggregatedList"
52623	//   },
52624	//   "scopes": [
52625	//     "https://www.googleapis.com/auth/cloud-platform",
52626	//     "https://www.googleapis.com/auth/compute",
52627	//     "https://www.googleapis.com/auth/compute.readonly"
52628	//   ]
52629	// }
52630
52631}
52632
52633// Pages invokes f for each page of results.
52634// A non-nil error returned from f will halt the iteration.
52635// The provided context supersedes any context provided to the Context method.
52636func (c *AddressesAggregatedListCall) Pages(ctx context.Context, f func(*AddressAggregatedList) error) error {
52637	c.ctx_ = ctx
52638	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
52639	for {
52640		x, err := c.Do()
52641		if err != nil {
52642			return err
52643		}
52644		if err := f(x); err != nil {
52645			return err
52646		}
52647		if x.NextPageToken == "" {
52648			return nil
52649		}
52650		c.PageToken(x.NextPageToken)
52651	}
52652}
52653
52654// method id "compute.addresses.delete":
52655
52656type AddressesDeleteCall struct {
52657	s          *Service
52658	project    string
52659	region     string
52660	address    string
52661	urlParams_ gensupport.URLParams
52662	ctx_       context.Context
52663	header_    http.Header
52664}
52665
52666// Delete: Deletes the specified address resource.
52667//
52668// - address: Name of the address resource to delete.
52669// - project: Project ID for this request.
52670// - region: Name of the region for this request.
52671func (r *AddressesService) Delete(project string, region string, address string) *AddressesDeleteCall {
52672	c := &AddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52673	c.project = project
52674	c.region = region
52675	c.address = address
52676	return c
52677}
52678
52679// RequestId sets the optional parameter "requestId": An optional
52680// request ID to identify requests. Specify a unique request ID so that
52681// if you must retry your request, the server will know to ignore the
52682// request if it has already been completed. For example, consider a
52683// situation where you make an initial request and the request times
52684// out. If you make the request again with the same request ID, the
52685// server can check if original operation with the same request ID was
52686// received, and if so, will ignore the second request. This prevents
52687// clients from accidentally creating duplicate commitments. The request
52688// ID must be a valid UUID with the exception that zero UUID is not
52689// supported ( 00000000-0000-0000-0000-000000000000).
52690func (c *AddressesDeleteCall) RequestId(requestId string) *AddressesDeleteCall {
52691	c.urlParams_.Set("requestId", requestId)
52692	return c
52693}
52694
52695// Fields allows partial responses to be retrieved. See
52696// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52697// for more information.
52698func (c *AddressesDeleteCall) Fields(s ...googleapi.Field) *AddressesDeleteCall {
52699	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52700	return c
52701}
52702
52703// Context sets the context to be used in this call's Do method. Any
52704// pending HTTP request will be aborted if the provided context is
52705// canceled.
52706func (c *AddressesDeleteCall) Context(ctx context.Context) *AddressesDeleteCall {
52707	c.ctx_ = ctx
52708	return c
52709}
52710
52711// Header returns an http.Header that can be modified by the caller to
52712// add HTTP headers to the request.
52713func (c *AddressesDeleteCall) Header() http.Header {
52714	if c.header_ == nil {
52715		c.header_ = make(http.Header)
52716	}
52717	return c.header_
52718}
52719
52720func (c *AddressesDeleteCall) doRequest(alt string) (*http.Response, error) {
52721	reqHeaders := make(http.Header)
52722	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
52723	for k, v := range c.header_ {
52724		reqHeaders[k] = v
52725	}
52726	reqHeaders.Set("User-Agent", c.s.userAgent())
52727	var body io.Reader = nil
52728	c.urlParams_.Set("alt", alt)
52729	c.urlParams_.Set("prettyPrint", "false")
52730	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses/{address}")
52731	urls += "?" + c.urlParams_.Encode()
52732	req, err := http.NewRequest("DELETE", urls, body)
52733	if err != nil {
52734		return nil, err
52735	}
52736	req.Header = reqHeaders
52737	googleapi.Expand(req.URL, map[string]string{
52738		"project": c.project,
52739		"region":  c.region,
52740		"address": c.address,
52741	})
52742	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52743}
52744
52745// Do executes the "compute.addresses.delete" call.
52746// Exactly one of *Operation or error will be non-nil. Any non-2xx
52747// status code is an error. Response headers are in either
52748// *Operation.ServerResponse.Header or (if a response was returned at
52749// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52750// to check whether the returned error was because
52751// http.StatusNotModified was returned.
52752func (c *AddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
52753	gensupport.SetOptions(c.urlParams_, opts...)
52754	res, err := c.doRequest("json")
52755	if res != nil && res.StatusCode == http.StatusNotModified {
52756		if res.Body != nil {
52757			res.Body.Close()
52758		}
52759		return nil, &googleapi.Error{
52760			Code:   res.StatusCode,
52761			Header: res.Header,
52762		}
52763	}
52764	if err != nil {
52765		return nil, err
52766	}
52767	defer googleapi.CloseBody(res)
52768	if err := googleapi.CheckResponse(res); err != nil {
52769		return nil, err
52770	}
52771	ret := &Operation{
52772		ServerResponse: googleapi.ServerResponse{
52773			Header:         res.Header,
52774			HTTPStatusCode: res.StatusCode,
52775		},
52776	}
52777	target := &ret
52778	if err := gensupport.DecodeResponse(target, res); err != nil {
52779		return nil, err
52780	}
52781	return ret, nil
52782	// {
52783	//   "description": "Deletes the specified address resource.",
52784	//   "flatPath": "projects/{project}/regions/{region}/addresses/{address}",
52785	//   "httpMethod": "DELETE",
52786	//   "id": "compute.addresses.delete",
52787	//   "parameterOrder": [
52788	//     "project",
52789	//     "region",
52790	//     "address"
52791	//   ],
52792	//   "parameters": {
52793	//     "address": {
52794	//       "description": "Name of the address resource to delete.",
52795	//       "location": "path",
52796	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52797	//       "required": true,
52798	//       "type": "string"
52799	//     },
52800	//     "project": {
52801	//       "description": "Project ID for this request.",
52802	//       "location": "path",
52803	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52804	//       "required": true,
52805	//       "type": "string"
52806	//     },
52807	//     "region": {
52808	//       "description": "Name of the region for this request.",
52809	//       "location": "path",
52810	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52811	//       "required": true,
52812	//       "type": "string"
52813	//     },
52814	//     "requestId": {
52815	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
52816	//       "location": "query",
52817	//       "type": "string"
52818	//     }
52819	//   },
52820	//   "path": "projects/{project}/regions/{region}/addresses/{address}",
52821	//   "response": {
52822	//     "$ref": "Operation"
52823	//   },
52824	//   "scopes": [
52825	//     "https://www.googleapis.com/auth/cloud-platform",
52826	//     "https://www.googleapis.com/auth/compute"
52827	//   ]
52828	// }
52829
52830}
52831
52832// method id "compute.addresses.get":
52833
52834type AddressesGetCall struct {
52835	s            *Service
52836	project      string
52837	region       string
52838	address      string
52839	urlParams_   gensupport.URLParams
52840	ifNoneMatch_ string
52841	ctx_         context.Context
52842	header_      http.Header
52843}
52844
52845// Get: Returns the specified address resource.
52846//
52847// - address: Name of the address resource to return.
52848// - project: Project ID for this request.
52849// - region: Name of the region for this request.
52850func (r *AddressesService) Get(project string, region string, address string) *AddressesGetCall {
52851	c := &AddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52852	c.project = project
52853	c.region = region
52854	c.address = address
52855	return c
52856}
52857
52858// Fields allows partial responses to be retrieved. See
52859// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52860// for more information.
52861func (c *AddressesGetCall) Fields(s ...googleapi.Field) *AddressesGetCall {
52862	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52863	return c
52864}
52865
52866// IfNoneMatch sets the optional parameter which makes the operation
52867// fail if the object's ETag matches the given value. This is useful for
52868// getting updates only after the object has changed since the last
52869// request. Use googleapi.IsNotModified to check whether the response
52870// error from Do is the result of In-None-Match.
52871func (c *AddressesGetCall) IfNoneMatch(entityTag string) *AddressesGetCall {
52872	c.ifNoneMatch_ = entityTag
52873	return c
52874}
52875
52876// Context sets the context to be used in this call's Do method. Any
52877// pending HTTP request will be aborted if the provided context is
52878// canceled.
52879func (c *AddressesGetCall) Context(ctx context.Context) *AddressesGetCall {
52880	c.ctx_ = ctx
52881	return c
52882}
52883
52884// Header returns an http.Header that can be modified by the caller to
52885// add HTTP headers to the request.
52886func (c *AddressesGetCall) Header() http.Header {
52887	if c.header_ == nil {
52888		c.header_ = make(http.Header)
52889	}
52890	return c.header_
52891}
52892
52893func (c *AddressesGetCall) doRequest(alt string) (*http.Response, error) {
52894	reqHeaders := make(http.Header)
52895	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
52896	for k, v := range c.header_ {
52897		reqHeaders[k] = v
52898	}
52899	reqHeaders.Set("User-Agent", c.s.userAgent())
52900	if c.ifNoneMatch_ != "" {
52901		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52902	}
52903	var body io.Reader = nil
52904	c.urlParams_.Set("alt", alt)
52905	c.urlParams_.Set("prettyPrint", "false")
52906	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses/{address}")
52907	urls += "?" + c.urlParams_.Encode()
52908	req, err := http.NewRequest("GET", urls, body)
52909	if err != nil {
52910		return nil, err
52911	}
52912	req.Header = reqHeaders
52913	googleapi.Expand(req.URL, map[string]string{
52914		"project": c.project,
52915		"region":  c.region,
52916		"address": c.address,
52917	})
52918	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52919}
52920
52921// Do executes the "compute.addresses.get" call.
52922// Exactly one of *Address or error will be non-nil. Any non-2xx status
52923// code is an error. Response headers are in either
52924// *Address.ServerResponse.Header or (if a response was returned at all)
52925// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
52926// check whether the returned error was because http.StatusNotModified
52927// was returned.
52928func (c *AddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) {
52929	gensupport.SetOptions(c.urlParams_, opts...)
52930	res, err := c.doRequest("json")
52931	if res != nil && res.StatusCode == http.StatusNotModified {
52932		if res.Body != nil {
52933			res.Body.Close()
52934		}
52935		return nil, &googleapi.Error{
52936			Code:   res.StatusCode,
52937			Header: res.Header,
52938		}
52939	}
52940	if err != nil {
52941		return nil, err
52942	}
52943	defer googleapi.CloseBody(res)
52944	if err := googleapi.CheckResponse(res); err != nil {
52945		return nil, err
52946	}
52947	ret := &Address{
52948		ServerResponse: googleapi.ServerResponse{
52949			Header:         res.Header,
52950			HTTPStatusCode: res.StatusCode,
52951		},
52952	}
52953	target := &ret
52954	if err := gensupport.DecodeResponse(target, res); err != nil {
52955		return nil, err
52956	}
52957	return ret, nil
52958	// {
52959	//   "description": "Returns the specified address resource.",
52960	//   "flatPath": "projects/{project}/regions/{region}/addresses/{address}",
52961	//   "httpMethod": "GET",
52962	//   "id": "compute.addresses.get",
52963	//   "parameterOrder": [
52964	//     "project",
52965	//     "region",
52966	//     "address"
52967	//   ],
52968	//   "parameters": {
52969	//     "address": {
52970	//       "description": "Name of the address resource to return.",
52971	//       "location": "path",
52972	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52973	//       "required": true,
52974	//       "type": "string"
52975	//     },
52976	//     "project": {
52977	//       "description": "Project ID for this request.",
52978	//       "location": "path",
52979	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52980	//       "required": true,
52981	//       "type": "string"
52982	//     },
52983	//     "region": {
52984	//       "description": "Name of the region for this request.",
52985	//       "location": "path",
52986	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52987	//       "required": true,
52988	//       "type": "string"
52989	//     }
52990	//   },
52991	//   "path": "projects/{project}/regions/{region}/addresses/{address}",
52992	//   "response": {
52993	//     "$ref": "Address"
52994	//   },
52995	//   "scopes": [
52996	//     "https://www.googleapis.com/auth/cloud-platform",
52997	//     "https://www.googleapis.com/auth/compute",
52998	//     "https://www.googleapis.com/auth/compute.readonly"
52999	//   ]
53000	// }
53001
53002}
53003
53004// method id "compute.addresses.insert":
53005
53006type AddressesInsertCall struct {
53007	s          *Service
53008	project    string
53009	region     string
53010	address    *Address
53011	urlParams_ gensupport.URLParams
53012	ctx_       context.Context
53013	header_    http.Header
53014}
53015
53016// Insert: Creates an address resource in the specified project by using
53017// the data included in the request.
53018//
53019// - project: Project ID for this request.
53020// - region: Name of the region for this request.
53021func (r *AddressesService) Insert(project string, region string, address *Address) *AddressesInsertCall {
53022	c := &AddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53023	c.project = project
53024	c.region = region
53025	c.address = address
53026	return c
53027}
53028
53029// RequestId sets the optional parameter "requestId": An optional
53030// request ID to identify requests. Specify a unique request ID so that
53031// if you must retry your request, the server will know to ignore the
53032// request if it has already been completed. For example, consider a
53033// situation where you make an initial request and the request times
53034// out. If you make the request again with the same request ID, the
53035// server can check if original operation with the same request ID was
53036// received, and if so, will ignore the second request. This prevents
53037// clients from accidentally creating duplicate commitments. The request
53038// ID must be a valid UUID with the exception that zero UUID is not
53039// supported ( 00000000-0000-0000-0000-000000000000).
53040func (c *AddressesInsertCall) RequestId(requestId string) *AddressesInsertCall {
53041	c.urlParams_.Set("requestId", requestId)
53042	return c
53043}
53044
53045// Fields allows partial responses to be retrieved. See
53046// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53047// for more information.
53048func (c *AddressesInsertCall) Fields(s ...googleapi.Field) *AddressesInsertCall {
53049	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53050	return c
53051}
53052
53053// Context sets the context to be used in this call's Do method. Any
53054// pending HTTP request will be aborted if the provided context is
53055// canceled.
53056func (c *AddressesInsertCall) Context(ctx context.Context) *AddressesInsertCall {
53057	c.ctx_ = ctx
53058	return c
53059}
53060
53061// Header returns an http.Header that can be modified by the caller to
53062// add HTTP headers to the request.
53063func (c *AddressesInsertCall) Header() http.Header {
53064	if c.header_ == nil {
53065		c.header_ = make(http.Header)
53066	}
53067	return c.header_
53068}
53069
53070func (c *AddressesInsertCall) doRequest(alt string) (*http.Response, error) {
53071	reqHeaders := make(http.Header)
53072	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
53073	for k, v := range c.header_ {
53074		reqHeaders[k] = v
53075	}
53076	reqHeaders.Set("User-Agent", c.s.userAgent())
53077	var body io.Reader = nil
53078	body, err := googleapi.WithoutDataWrapper.JSONReader(c.address)
53079	if err != nil {
53080		return nil, err
53081	}
53082	reqHeaders.Set("Content-Type", "application/json")
53083	c.urlParams_.Set("alt", alt)
53084	c.urlParams_.Set("prettyPrint", "false")
53085	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses")
53086	urls += "?" + c.urlParams_.Encode()
53087	req, err := http.NewRequest("POST", urls, body)
53088	if err != nil {
53089		return nil, err
53090	}
53091	req.Header = reqHeaders
53092	googleapi.Expand(req.URL, map[string]string{
53093		"project": c.project,
53094		"region":  c.region,
53095	})
53096	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53097}
53098
53099// Do executes the "compute.addresses.insert" call.
53100// Exactly one of *Operation or error will be non-nil. Any non-2xx
53101// status code is an error. Response headers are in either
53102// *Operation.ServerResponse.Header or (if a response was returned at
53103// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53104// to check whether the returned error was because
53105// http.StatusNotModified was returned.
53106func (c *AddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53107	gensupport.SetOptions(c.urlParams_, opts...)
53108	res, err := c.doRequest("json")
53109	if res != nil && res.StatusCode == http.StatusNotModified {
53110		if res.Body != nil {
53111			res.Body.Close()
53112		}
53113		return nil, &googleapi.Error{
53114			Code:   res.StatusCode,
53115			Header: res.Header,
53116		}
53117	}
53118	if err != nil {
53119		return nil, err
53120	}
53121	defer googleapi.CloseBody(res)
53122	if err := googleapi.CheckResponse(res); err != nil {
53123		return nil, err
53124	}
53125	ret := &Operation{
53126		ServerResponse: googleapi.ServerResponse{
53127			Header:         res.Header,
53128			HTTPStatusCode: res.StatusCode,
53129		},
53130	}
53131	target := &ret
53132	if err := gensupport.DecodeResponse(target, res); err != nil {
53133		return nil, err
53134	}
53135	return ret, nil
53136	// {
53137	//   "description": "Creates an address resource in the specified project by using the data included in the request.",
53138	//   "flatPath": "projects/{project}/regions/{region}/addresses",
53139	//   "httpMethod": "POST",
53140	//   "id": "compute.addresses.insert",
53141	//   "parameterOrder": [
53142	//     "project",
53143	//     "region"
53144	//   ],
53145	//   "parameters": {
53146	//     "project": {
53147	//       "description": "Project ID for this request.",
53148	//       "location": "path",
53149	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53150	//       "required": true,
53151	//       "type": "string"
53152	//     },
53153	//     "region": {
53154	//       "description": "Name of the region for this request.",
53155	//       "location": "path",
53156	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53157	//       "required": true,
53158	//       "type": "string"
53159	//     },
53160	//     "requestId": {
53161	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
53162	//       "location": "query",
53163	//       "type": "string"
53164	//     }
53165	//   },
53166	//   "path": "projects/{project}/regions/{region}/addresses",
53167	//   "request": {
53168	//     "$ref": "Address"
53169	//   },
53170	//   "response": {
53171	//     "$ref": "Operation"
53172	//   },
53173	//   "scopes": [
53174	//     "https://www.googleapis.com/auth/cloud-platform",
53175	//     "https://www.googleapis.com/auth/compute"
53176	//   ]
53177	// }
53178
53179}
53180
53181// method id "compute.addresses.list":
53182
53183type AddressesListCall struct {
53184	s            *Service
53185	project      string
53186	region       string
53187	urlParams_   gensupport.URLParams
53188	ifNoneMatch_ string
53189	ctx_         context.Context
53190	header_      http.Header
53191}
53192
53193// List: Retrieves a list of addresses contained within the specified
53194// region.
53195//
53196// - project: Project ID for this request.
53197// - region: Name of the region for this request.
53198func (r *AddressesService) List(project string, region string) *AddressesListCall {
53199	c := &AddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53200	c.project = project
53201	c.region = region
53202	return c
53203}
53204
53205// Filter sets the optional parameter "filter": A filter expression that
53206// filters resources listed in the response. The expression must specify
53207// the field name, a comparison operator, and the value that you want to
53208// use for filtering. The value must be a string, a number, or a
53209// boolean. The comparison operator must be either `=`, `!=`, `>`, or
53210// `<`. For example, if you are filtering Compute Engine instances, you
53211// can exclude instances named `example-instance` by specifying `name !=
53212// example-instance`. You can also filter nested fields. For example,
53213// you could specify `scheduling.automaticRestart = false` to include
53214// instances only if they are not scheduled for automatic restarts. You
53215// can use filtering on nested fields to filter based on resource
53216// labels. To filter on multiple expressions, provide each separate
53217// expression within parentheses. For example: ```
53218// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
53219// ``` By default, each expression is an `AND` expression. However, you
53220// can include `AND` and `OR` expressions explicitly. For example: ```
53221// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
53222// AND (scheduling.automaticRestart = true) ```
53223func (c *AddressesListCall) Filter(filter string) *AddressesListCall {
53224	c.urlParams_.Set("filter", filter)
53225	return c
53226}
53227
53228// MaxResults sets the optional parameter "maxResults": The maximum
53229// number of results per page that should be returned. If the number of
53230// available results is larger than `maxResults`, Compute Engine returns
53231// a `nextPageToken` that can be used to get the next page of results in
53232// subsequent list requests. Acceptable values are `0` to `500`,
53233// inclusive. (Default: `500`)
53234func (c *AddressesListCall) MaxResults(maxResults int64) *AddressesListCall {
53235	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
53236	return c
53237}
53238
53239// OrderBy sets the optional parameter "orderBy": Sorts list results by
53240// a certain order. By default, results are returned in alphanumerical
53241// order based on the resource name. You can also sort results in
53242// descending order based on the creation timestamp using
53243// `orderBy="creationTimestamp desc". This sorts results based on the
53244// `creationTimestamp` field in reverse chronological order (newest
53245// result first). Use this to sort resources like operations so that the
53246// newest operation is returned first. Currently, only sorting by `name`
53247// or `creationTimestamp desc` is supported.
53248func (c *AddressesListCall) OrderBy(orderBy string) *AddressesListCall {
53249	c.urlParams_.Set("orderBy", orderBy)
53250	return c
53251}
53252
53253// PageToken sets the optional parameter "pageToken": Specifies a page
53254// token to use. Set `pageToken` to the `nextPageToken` returned by a
53255// previous list request to get the next page of results.
53256func (c *AddressesListCall) PageToken(pageToken string) *AddressesListCall {
53257	c.urlParams_.Set("pageToken", pageToken)
53258	return c
53259}
53260
53261// ReturnPartialSuccess sets the optional parameter
53262// "returnPartialSuccess": Opt-in for partial success behavior which
53263// provides partial results in case of failure. The default value is
53264// false.
53265func (c *AddressesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AddressesListCall {
53266	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
53267	return c
53268}
53269
53270// Fields allows partial responses to be retrieved. See
53271// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53272// for more information.
53273func (c *AddressesListCall) Fields(s ...googleapi.Field) *AddressesListCall {
53274	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53275	return c
53276}
53277
53278// IfNoneMatch sets the optional parameter which makes the operation
53279// fail if the object's ETag matches the given value. This is useful for
53280// getting updates only after the object has changed since the last
53281// request. Use googleapi.IsNotModified to check whether the response
53282// error from Do is the result of In-None-Match.
53283func (c *AddressesListCall) IfNoneMatch(entityTag string) *AddressesListCall {
53284	c.ifNoneMatch_ = entityTag
53285	return c
53286}
53287
53288// Context sets the context to be used in this call's Do method. Any
53289// pending HTTP request will be aborted if the provided context is
53290// canceled.
53291func (c *AddressesListCall) Context(ctx context.Context) *AddressesListCall {
53292	c.ctx_ = ctx
53293	return c
53294}
53295
53296// Header returns an http.Header that can be modified by the caller to
53297// add HTTP headers to the request.
53298func (c *AddressesListCall) Header() http.Header {
53299	if c.header_ == nil {
53300		c.header_ = make(http.Header)
53301	}
53302	return c.header_
53303}
53304
53305func (c *AddressesListCall) doRequest(alt string) (*http.Response, error) {
53306	reqHeaders := make(http.Header)
53307	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
53308	for k, v := range c.header_ {
53309		reqHeaders[k] = v
53310	}
53311	reqHeaders.Set("User-Agent", c.s.userAgent())
53312	if c.ifNoneMatch_ != "" {
53313		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
53314	}
53315	var body io.Reader = nil
53316	c.urlParams_.Set("alt", alt)
53317	c.urlParams_.Set("prettyPrint", "false")
53318	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses")
53319	urls += "?" + c.urlParams_.Encode()
53320	req, err := http.NewRequest("GET", urls, body)
53321	if err != nil {
53322		return nil, err
53323	}
53324	req.Header = reqHeaders
53325	googleapi.Expand(req.URL, map[string]string{
53326		"project": c.project,
53327		"region":  c.region,
53328	})
53329	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53330}
53331
53332// Do executes the "compute.addresses.list" call.
53333// Exactly one of *AddressList or error will be non-nil. Any non-2xx
53334// status code is an error. Response headers are in either
53335// *AddressList.ServerResponse.Header or (if a response was returned at
53336// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53337// to check whether the returned error was because
53338// http.StatusNotModified was returned.
53339func (c *AddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) {
53340	gensupport.SetOptions(c.urlParams_, opts...)
53341	res, err := c.doRequest("json")
53342	if res != nil && res.StatusCode == http.StatusNotModified {
53343		if res.Body != nil {
53344			res.Body.Close()
53345		}
53346		return nil, &googleapi.Error{
53347			Code:   res.StatusCode,
53348			Header: res.Header,
53349		}
53350	}
53351	if err != nil {
53352		return nil, err
53353	}
53354	defer googleapi.CloseBody(res)
53355	if err := googleapi.CheckResponse(res); err != nil {
53356		return nil, err
53357	}
53358	ret := &AddressList{
53359		ServerResponse: googleapi.ServerResponse{
53360			Header:         res.Header,
53361			HTTPStatusCode: res.StatusCode,
53362		},
53363	}
53364	target := &ret
53365	if err := gensupport.DecodeResponse(target, res); err != nil {
53366		return nil, err
53367	}
53368	return ret, nil
53369	// {
53370	//   "description": "Retrieves a list of addresses contained within the specified region.",
53371	//   "flatPath": "projects/{project}/regions/{region}/addresses",
53372	//   "httpMethod": "GET",
53373	//   "id": "compute.addresses.list",
53374	//   "parameterOrder": [
53375	//     "project",
53376	//     "region"
53377	//   ],
53378	//   "parameters": {
53379	//     "filter": {
53380	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
53381	//       "location": "query",
53382	//       "type": "string"
53383	//     },
53384	//     "maxResults": {
53385	//       "default": "500",
53386	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
53387	//       "format": "uint32",
53388	//       "location": "query",
53389	//       "minimum": "0",
53390	//       "type": "integer"
53391	//     },
53392	//     "orderBy": {
53393	//       "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.",
53394	//       "location": "query",
53395	//       "type": "string"
53396	//     },
53397	//     "pageToken": {
53398	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
53399	//       "location": "query",
53400	//       "type": "string"
53401	//     },
53402	//     "project": {
53403	//       "description": "Project ID for this request.",
53404	//       "location": "path",
53405	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53406	//       "required": true,
53407	//       "type": "string"
53408	//     },
53409	//     "region": {
53410	//       "description": "Name of the region for this request.",
53411	//       "location": "path",
53412	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53413	//       "required": true,
53414	//       "type": "string"
53415	//     },
53416	//     "returnPartialSuccess": {
53417	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
53418	//       "location": "query",
53419	//       "type": "boolean"
53420	//     }
53421	//   },
53422	//   "path": "projects/{project}/regions/{region}/addresses",
53423	//   "response": {
53424	//     "$ref": "AddressList"
53425	//   },
53426	//   "scopes": [
53427	//     "https://www.googleapis.com/auth/cloud-platform",
53428	//     "https://www.googleapis.com/auth/compute",
53429	//     "https://www.googleapis.com/auth/compute.readonly"
53430	//   ]
53431	// }
53432
53433}
53434
53435// Pages invokes f for each page of results.
53436// A non-nil error returned from f will halt the iteration.
53437// The provided context supersedes any context provided to the Context method.
53438func (c *AddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error {
53439	c.ctx_ = ctx
53440	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
53441	for {
53442		x, err := c.Do()
53443		if err != nil {
53444			return err
53445		}
53446		if err := f(x); err != nil {
53447			return err
53448		}
53449		if x.NextPageToken == "" {
53450			return nil
53451		}
53452		c.PageToken(x.NextPageToken)
53453	}
53454}
53455
53456// method id "compute.autoscalers.aggregatedList":
53457
53458type AutoscalersAggregatedListCall struct {
53459	s            *Service
53460	project      string
53461	urlParams_   gensupport.URLParams
53462	ifNoneMatch_ string
53463	ctx_         context.Context
53464	header_      http.Header
53465}
53466
53467// AggregatedList: Retrieves an aggregated list of autoscalers.
53468//
53469// - project: Project ID for this request.
53470func (r *AutoscalersService) AggregatedList(project string) *AutoscalersAggregatedListCall {
53471	c := &AutoscalersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53472	c.project = project
53473	return c
53474}
53475
53476// Filter sets the optional parameter "filter": A filter expression that
53477// filters resources listed in the response. The expression must specify
53478// the field name, a comparison operator, and the value that you want to
53479// use for filtering. The value must be a string, a number, or a
53480// boolean. The comparison operator must be either `=`, `!=`, `>`, or
53481// `<`. For example, if you are filtering Compute Engine instances, you
53482// can exclude instances named `example-instance` by specifying `name !=
53483// example-instance`. You can also filter nested fields. For example,
53484// you could specify `scheduling.automaticRestart = false` to include
53485// instances only if they are not scheduled for automatic restarts. You
53486// can use filtering on nested fields to filter based on resource
53487// labels. To filter on multiple expressions, provide each separate
53488// expression within parentheses. For example: ```
53489// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
53490// ``` By default, each expression is an `AND` expression. However, you
53491// can include `AND` and `OR` expressions explicitly. For example: ```
53492// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
53493// AND (scheduling.automaticRestart = true) ```
53494func (c *AutoscalersAggregatedListCall) Filter(filter string) *AutoscalersAggregatedListCall {
53495	c.urlParams_.Set("filter", filter)
53496	return c
53497}
53498
53499// IncludeAllScopes sets the optional parameter "includeAllScopes":
53500// Indicates whether every visible scope for each scope type (zone,
53501// region, global) should be included in the response. For new resource
53502// types added after this field, the flag has no effect as new resource
53503// types will always include every visible scope for each scope type in
53504// response. For resource types which predate this field, if this flag
53505// is omitted or false, only scopes of the scope types where the
53506// resource type is expected to be found will be included.
53507func (c *AutoscalersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AutoscalersAggregatedListCall {
53508	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
53509	return c
53510}
53511
53512// MaxResults sets the optional parameter "maxResults": The maximum
53513// number of results per page that should be returned. If the number of
53514// available results is larger than `maxResults`, Compute Engine returns
53515// a `nextPageToken` that can be used to get the next page of results in
53516// subsequent list requests. Acceptable values are `0` to `500`,
53517// inclusive. (Default: `500`)
53518func (c *AutoscalersAggregatedListCall) MaxResults(maxResults int64) *AutoscalersAggregatedListCall {
53519	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
53520	return c
53521}
53522
53523// OrderBy sets the optional parameter "orderBy": Sorts list results by
53524// a certain order. By default, results are returned in alphanumerical
53525// order based on the resource name. You can also sort results in
53526// descending order based on the creation timestamp using
53527// `orderBy="creationTimestamp desc". This sorts results based on the
53528// `creationTimestamp` field in reverse chronological order (newest
53529// result first). Use this to sort resources like operations so that the
53530// newest operation is returned first. Currently, only sorting by `name`
53531// or `creationTimestamp desc` is supported.
53532func (c *AutoscalersAggregatedListCall) OrderBy(orderBy string) *AutoscalersAggregatedListCall {
53533	c.urlParams_.Set("orderBy", orderBy)
53534	return c
53535}
53536
53537// PageToken sets the optional parameter "pageToken": Specifies a page
53538// token to use. Set `pageToken` to the `nextPageToken` returned by a
53539// previous list request to get the next page of results.
53540func (c *AutoscalersAggregatedListCall) PageToken(pageToken string) *AutoscalersAggregatedListCall {
53541	c.urlParams_.Set("pageToken", pageToken)
53542	return c
53543}
53544
53545// ReturnPartialSuccess sets the optional parameter
53546// "returnPartialSuccess": Opt-in for partial success behavior which
53547// provides partial results in case of failure. The default value is
53548// false.
53549func (c *AutoscalersAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AutoscalersAggregatedListCall {
53550	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
53551	return c
53552}
53553
53554// Fields allows partial responses to be retrieved. See
53555// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53556// for more information.
53557func (c *AutoscalersAggregatedListCall) Fields(s ...googleapi.Field) *AutoscalersAggregatedListCall {
53558	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53559	return c
53560}
53561
53562// IfNoneMatch sets the optional parameter which makes the operation
53563// fail if the object's ETag matches the given value. This is useful for
53564// getting updates only after the object has changed since the last
53565// request. Use googleapi.IsNotModified to check whether the response
53566// error from Do is the result of In-None-Match.
53567func (c *AutoscalersAggregatedListCall) IfNoneMatch(entityTag string) *AutoscalersAggregatedListCall {
53568	c.ifNoneMatch_ = entityTag
53569	return c
53570}
53571
53572// Context sets the context to be used in this call's Do method. Any
53573// pending HTTP request will be aborted if the provided context is
53574// canceled.
53575func (c *AutoscalersAggregatedListCall) Context(ctx context.Context) *AutoscalersAggregatedListCall {
53576	c.ctx_ = ctx
53577	return c
53578}
53579
53580// Header returns an http.Header that can be modified by the caller to
53581// add HTTP headers to the request.
53582func (c *AutoscalersAggregatedListCall) Header() http.Header {
53583	if c.header_ == nil {
53584		c.header_ = make(http.Header)
53585	}
53586	return c.header_
53587}
53588
53589func (c *AutoscalersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
53590	reqHeaders := make(http.Header)
53591	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
53592	for k, v := range c.header_ {
53593		reqHeaders[k] = v
53594	}
53595	reqHeaders.Set("User-Agent", c.s.userAgent())
53596	if c.ifNoneMatch_ != "" {
53597		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
53598	}
53599	var body io.Reader = nil
53600	c.urlParams_.Set("alt", alt)
53601	c.urlParams_.Set("prettyPrint", "false")
53602	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/autoscalers")
53603	urls += "?" + c.urlParams_.Encode()
53604	req, err := http.NewRequest("GET", urls, body)
53605	if err != nil {
53606		return nil, err
53607	}
53608	req.Header = reqHeaders
53609	googleapi.Expand(req.URL, map[string]string{
53610		"project": c.project,
53611	})
53612	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53613}
53614
53615// Do executes the "compute.autoscalers.aggregatedList" call.
53616// Exactly one of *AutoscalerAggregatedList or error will be non-nil.
53617// Any non-2xx status code is an error. Response headers are in either
53618// *AutoscalerAggregatedList.ServerResponse.Header or (if a response was
53619// returned at all) in error.(*googleapi.Error).Header. Use
53620// googleapi.IsNotModified to check whether the returned error was
53621// because http.StatusNotModified was returned.
53622func (c *AutoscalersAggregatedListCall) Do(opts ...googleapi.CallOption) (*AutoscalerAggregatedList, error) {
53623	gensupport.SetOptions(c.urlParams_, opts...)
53624	res, err := c.doRequest("json")
53625	if res != nil && res.StatusCode == http.StatusNotModified {
53626		if res.Body != nil {
53627			res.Body.Close()
53628		}
53629		return nil, &googleapi.Error{
53630			Code:   res.StatusCode,
53631			Header: res.Header,
53632		}
53633	}
53634	if err != nil {
53635		return nil, err
53636	}
53637	defer googleapi.CloseBody(res)
53638	if err := googleapi.CheckResponse(res); err != nil {
53639		return nil, err
53640	}
53641	ret := &AutoscalerAggregatedList{
53642		ServerResponse: googleapi.ServerResponse{
53643			Header:         res.Header,
53644			HTTPStatusCode: res.StatusCode,
53645		},
53646	}
53647	target := &ret
53648	if err := gensupport.DecodeResponse(target, res); err != nil {
53649		return nil, err
53650	}
53651	return ret, nil
53652	// {
53653	//   "description": "Retrieves an aggregated list of autoscalers.",
53654	//   "flatPath": "projects/{project}/aggregated/autoscalers",
53655	//   "httpMethod": "GET",
53656	//   "id": "compute.autoscalers.aggregatedList",
53657	//   "parameterOrder": [
53658	//     "project"
53659	//   ],
53660	//   "parameters": {
53661	//     "filter": {
53662	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
53663	//       "location": "query",
53664	//       "type": "string"
53665	//     },
53666	//     "includeAllScopes": {
53667	//       "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.",
53668	//       "location": "query",
53669	//       "type": "boolean"
53670	//     },
53671	//     "maxResults": {
53672	//       "default": "500",
53673	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
53674	//       "format": "uint32",
53675	//       "location": "query",
53676	//       "minimum": "0",
53677	//       "type": "integer"
53678	//     },
53679	//     "orderBy": {
53680	//       "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.",
53681	//       "location": "query",
53682	//       "type": "string"
53683	//     },
53684	//     "pageToken": {
53685	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
53686	//       "location": "query",
53687	//       "type": "string"
53688	//     },
53689	//     "project": {
53690	//       "description": "Project ID for this request.",
53691	//       "location": "path",
53692	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53693	//       "required": true,
53694	//       "type": "string"
53695	//     },
53696	//     "returnPartialSuccess": {
53697	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
53698	//       "location": "query",
53699	//       "type": "boolean"
53700	//     }
53701	//   },
53702	//   "path": "projects/{project}/aggregated/autoscalers",
53703	//   "response": {
53704	//     "$ref": "AutoscalerAggregatedList"
53705	//   },
53706	//   "scopes": [
53707	//     "https://www.googleapis.com/auth/cloud-platform",
53708	//     "https://www.googleapis.com/auth/compute",
53709	//     "https://www.googleapis.com/auth/compute.readonly"
53710	//   ]
53711	// }
53712
53713}
53714
53715// Pages invokes f for each page of results.
53716// A non-nil error returned from f will halt the iteration.
53717// The provided context supersedes any context provided to the Context method.
53718func (c *AutoscalersAggregatedListCall) Pages(ctx context.Context, f func(*AutoscalerAggregatedList) error) error {
53719	c.ctx_ = ctx
53720	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
53721	for {
53722		x, err := c.Do()
53723		if err != nil {
53724			return err
53725		}
53726		if err := f(x); err != nil {
53727			return err
53728		}
53729		if x.NextPageToken == "" {
53730			return nil
53731		}
53732		c.PageToken(x.NextPageToken)
53733	}
53734}
53735
53736// method id "compute.autoscalers.delete":
53737
53738type AutoscalersDeleteCall struct {
53739	s          *Service
53740	project    string
53741	zone       string
53742	autoscaler string
53743	urlParams_ gensupport.URLParams
53744	ctx_       context.Context
53745	header_    http.Header
53746}
53747
53748// Delete: Deletes the specified autoscaler.
53749//
53750// - autoscaler: Name of the autoscaler to delete.
53751// - project: Project ID for this request.
53752// - zone: Name of the zone for this request.
53753func (r *AutoscalersService) Delete(project string, zone string, autoscaler string) *AutoscalersDeleteCall {
53754	c := &AutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53755	c.project = project
53756	c.zone = zone
53757	c.autoscaler = autoscaler
53758	return c
53759}
53760
53761// RequestId sets the optional parameter "requestId": An optional
53762// request ID to identify requests. Specify a unique request ID so that
53763// if you must retry your request, the server will know to ignore the
53764// request if it has already been completed. For example, consider a
53765// situation where you make an initial request and the request times
53766// out. If you make the request again with the same request ID, the
53767// server can check if original operation with the same request ID was
53768// received, and if so, will ignore the second request. This prevents
53769// clients from accidentally creating duplicate commitments. The request
53770// ID must be a valid UUID with the exception that zero UUID is not
53771// supported ( 00000000-0000-0000-0000-000000000000).
53772func (c *AutoscalersDeleteCall) RequestId(requestId string) *AutoscalersDeleteCall {
53773	c.urlParams_.Set("requestId", requestId)
53774	return c
53775}
53776
53777// Fields allows partial responses to be retrieved. See
53778// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53779// for more information.
53780func (c *AutoscalersDeleteCall) Fields(s ...googleapi.Field) *AutoscalersDeleteCall {
53781	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53782	return c
53783}
53784
53785// Context sets the context to be used in this call's Do method. Any
53786// pending HTTP request will be aborted if the provided context is
53787// canceled.
53788func (c *AutoscalersDeleteCall) Context(ctx context.Context) *AutoscalersDeleteCall {
53789	c.ctx_ = ctx
53790	return c
53791}
53792
53793// Header returns an http.Header that can be modified by the caller to
53794// add HTTP headers to the request.
53795func (c *AutoscalersDeleteCall) Header() http.Header {
53796	if c.header_ == nil {
53797		c.header_ = make(http.Header)
53798	}
53799	return c.header_
53800}
53801
53802func (c *AutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) {
53803	reqHeaders := make(http.Header)
53804	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
53805	for k, v := range c.header_ {
53806		reqHeaders[k] = v
53807	}
53808	reqHeaders.Set("User-Agent", c.s.userAgent())
53809	var body io.Reader = nil
53810	c.urlParams_.Set("alt", alt)
53811	c.urlParams_.Set("prettyPrint", "false")
53812	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers/{autoscaler}")
53813	urls += "?" + c.urlParams_.Encode()
53814	req, err := http.NewRequest("DELETE", urls, body)
53815	if err != nil {
53816		return nil, err
53817	}
53818	req.Header = reqHeaders
53819	googleapi.Expand(req.URL, map[string]string{
53820		"project":    c.project,
53821		"zone":       c.zone,
53822		"autoscaler": c.autoscaler,
53823	})
53824	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53825}
53826
53827// Do executes the "compute.autoscalers.delete" call.
53828// Exactly one of *Operation or error will be non-nil. Any non-2xx
53829// status code is an error. Response headers are in either
53830// *Operation.ServerResponse.Header or (if a response was returned at
53831// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53832// to check whether the returned error was because
53833// http.StatusNotModified was returned.
53834func (c *AutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53835	gensupport.SetOptions(c.urlParams_, opts...)
53836	res, err := c.doRequest("json")
53837	if res != nil && res.StatusCode == http.StatusNotModified {
53838		if res.Body != nil {
53839			res.Body.Close()
53840		}
53841		return nil, &googleapi.Error{
53842			Code:   res.StatusCode,
53843			Header: res.Header,
53844		}
53845	}
53846	if err != nil {
53847		return nil, err
53848	}
53849	defer googleapi.CloseBody(res)
53850	if err := googleapi.CheckResponse(res); err != nil {
53851		return nil, err
53852	}
53853	ret := &Operation{
53854		ServerResponse: googleapi.ServerResponse{
53855			Header:         res.Header,
53856			HTTPStatusCode: res.StatusCode,
53857		},
53858	}
53859	target := &ret
53860	if err := gensupport.DecodeResponse(target, res); err != nil {
53861		return nil, err
53862	}
53863	return ret, nil
53864	// {
53865	//   "description": "Deletes the specified autoscaler.",
53866	//   "flatPath": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}",
53867	//   "httpMethod": "DELETE",
53868	//   "id": "compute.autoscalers.delete",
53869	//   "parameterOrder": [
53870	//     "project",
53871	//     "zone",
53872	//     "autoscaler"
53873	//   ],
53874	//   "parameters": {
53875	//     "autoscaler": {
53876	//       "description": "Name of the autoscaler to delete.",
53877	//       "location": "path",
53878	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53879	//       "required": true,
53880	//       "type": "string"
53881	//     },
53882	//     "project": {
53883	//       "description": "Project ID for this request.",
53884	//       "location": "path",
53885	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53886	//       "required": true,
53887	//       "type": "string"
53888	//     },
53889	//     "requestId": {
53890	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
53891	//       "location": "query",
53892	//       "type": "string"
53893	//     },
53894	//     "zone": {
53895	//       "description": "Name of the zone for this request.",
53896	//       "location": "path",
53897	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53898	//       "required": true,
53899	//       "type": "string"
53900	//     }
53901	//   },
53902	//   "path": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}",
53903	//   "response": {
53904	//     "$ref": "Operation"
53905	//   },
53906	//   "scopes": [
53907	//     "https://www.googleapis.com/auth/cloud-platform",
53908	//     "https://www.googleapis.com/auth/compute"
53909	//   ]
53910	// }
53911
53912}
53913
53914// method id "compute.autoscalers.get":
53915
53916type AutoscalersGetCall struct {
53917	s            *Service
53918	project      string
53919	zone         string
53920	autoscaler   string
53921	urlParams_   gensupport.URLParams
53922	ifNoneMatch_ string
53923	ctx_         context.Context
53924	header_      http.Header
53925}
53926
53927// Get: Returns the specified autoscaler resource. Gets a list of
53928// available autoscalers by making a list() request.
53929//
53930// - autoscaler: Name of the autoscaler to return.
53931// - project: Project ID for this request.
53932// - zone: Name of the zone for this request.
53933func (r *AutoscalersService) Get(project string, zone string, autoscaler string) *AutoscalersGetCall {
53934	c := &AutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53935	c.project = project
53936	c.zone = zone
53937	c.autoscaler = autoscaler
53938	return c
53939}
53940
53941// Fields allows partial responses to be retrieved. See
53942// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53943// for more information.
53944func (c *AutoscalersGetCall) Fields(s ...googleapi.Field) *AutoscalersGetCall {
53945	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53946	return c
53947}
53948
53949// IfNoneMatch sets the optional parameter which makes the operation
53950// fail if the object's ETag matches the given value. This is useful for
53951// getting updates only after the object has changed since the last
53952// request. Use googleapi.IsNotModified to check whether the response
53953// error from Do is the result of In-None-Match.
53954func (c *AutoscalersGetCall) IfNoneMatch(entityTag string) *AutoscalersGetCall {
53955	c.ifNoneMatch_ = entityTag
53956	return c
53957}
53958
53959// Context sets the context to be used in this call's Do method. Any
53960// pending HTTP request will be aborted if the provided context is
53961// canceled.
53962func (c *AutoscalersGetCall) Context(ctx context.Context) *AutoscalersGetCall {
53963	c.ctx_ = ctx
53964	return c
53965}
53966
53967// Header returns an http.Header that can be modified by the caller to
53968// add HTTP headers to the request.
53969func (c *AutoscalersGetCall) Header() http.Header {
53970	if c.header_ == nil {
53971		c.header_ = make(http.Header)
53972	}
53973	return c.header_
53974}
53975
53976func (c *AutoscalersGetCall) doRequest(alt string) (*http.Response, error) {
53977	reqHeaders := make(http.Header)
53978	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
53979	for k, v := range c.header_ {
53980		reqHeaders[k] = v
53981	}
53982	reqHeaders.Set("User-Agent", c.s.userAgent())
53983	if c.ifNoneMatch_ != "" {
53984		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
53985	}
53986	var body io.Reader = nil
53987	c.urlParams_.Set("alt", alt)
53988	c.urlParams_.Set("prettyPrint", "false")
53989	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers/{autoscaler}")
53990	urls += "?" + c.urlParams_.Encode()
53991	req, err := http.NewRequest("GET", urls, body)
53992	if err != nil {
53993		return nil, err
53994	}
53995	req.Header = reqHeaders
53996	googleapi.Expand(req.URL, map[string]string{
53997		"project":    c.project,
53998		"zone":       c.zone,
53999		"autoscaler": c.autoscaler,
54000	})
54001	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54002}
54003
54004// Do executes the "compute.autoscalers.get" call.
54005// Exactly one of *Autoscaler or error will be non-nil. Any non-2xx
54006// status code is an error. Response headers are in either
54007// *Autoscaler.ServerResponse.Header or (if a response was returned at
54008// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54009// to check whether the returned error was because
54010// http.StatusNotModified was returned.
54011func (c *AutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) {
54012	gensupport.SetOptions(c.urlParams_, opts...)
54013	res, err := c.doRequest("json")
54014	if res != nil && res.StatusCode == http.StatusNotModified {
54015		if res.Body != nil {
54016			res.Body.Close()
54017		}
54018		return nil, &googleapi.Error{
54019			Code:   res.StatusCode,
54020			Header: res.Header,
54021		}
54022	}
54023	if err != nil {
54024		return nil, err
54025	}
54026	defer googleapi.CloseBody(res)
54027	if err := googleapi.CheckResponse(res); err != nil {
54028		return nil, err
54029	}
54030	ret := &Autoscaler{
54031		ServerResponse: googleapi.ServerResponse{
54032			Header:         res.Header,
54033			HTTPStatusCode: res.StatusCode,
54034		},
54035	}
54036	target := &ret
54037	if err := gensupport.DecodeResponse(target, res); err != nil {
54038		return nil, err
54039	}
54040	return ret, nil
54041	// {
54042	//   "description": "Returns the specified autoscaler resource. Gets a list of available autoscalers by making a list() request.",
54043	//   "flatPath": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}",
54044	//   "httpMethod": "GET",
54045	//   "id": "compute.autoscalers.get",
54046	//   "parameterOrder": [
54047	//     "project",
54048	//     "zone",
54049	//     "autoscaler"
54050	//   ],
54051	//   "parameters": {
54052	//     "autoscaler": {
54053	//       "description": "Name of the autoscaler to return.",
54054	//       "location": "path",
54055	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
54056	//       "required": true,
54057	//       "type": "string"
54058	//     },
54059	//     "project": {
54060	//       "description": "Project ID for this request.",
54061	//       "location": "path",
54062	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54063	//       "required": true,
54064	//       "type": "string"
54065	//     },
54066	//     "zone": {
54067	//       "description": "Name of the zone for this request.",
54068	//       "location": "path",
54069	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54070	//       "required": true,
54071	//       "type": "string"
54072	//     }
54073	//   },
54074	//   "path": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}",
54075	//   "response": {
54076	//     "$ref": "Autoscaler"
54077	//   },
54078	//   "scopes": [
54079	//     "https://www.googleapis.com/auth/cloud-platform",
54080	//     "https://www.googleapis.com/auth/compute",
54081	//     "https://www.googleapis.com/auth/compute.readonly"
54082	//   ]
54083	// }
54084
54085}
54086
54087// method id "compute.autoscalers.insert":
54088
54089type AutoscalersInsertCall struct {
54090	s          *Service
54091	project    string
54092	zone       string
54093	autoscaler *Autoscaler
54094	urlParams_ gensupport.URLParams
54095	ctx_       context.Context
54096	header_    http.Header
54097}
54098
54099// Insert: Creates an autoscaler in the specified project using the data
54100// included in the request.
54101//
54102// - project: Project ID for this request.
54103// - zone: Name of the zone for this request.
54104func (r *AutoscalersService) Insert(project string, zone string, autoscaler *Autoscaler) *AutoscalersInsertCall {
54105	c := &AutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54106	c.project = project
54107	c.zone = zone
54108	c.autoscaler = autoscaler
54109	return c
54110}
54111
54112// RequestId sets the optional parameter "requestId": An optional
54113// request ID to identify requests. Specify a unique request ID so that
54114// if you must retry your request, the server will know to ignore the
54115// request if it has already been completed. For example, consider a
54116// situation where you make an initial request and the request times
54117// out. If you make the request again with the same request ID, the
54118// server can check if original operation with the same request ID was
54119// received, and if so, will ignore the second request. This prevents
54120// clients from accidentally creating duplicate commitments. The request
54121// ID must be a valid UUID with the exception that zero UUID is not
54122// supported ( 00000000-0000-0000-0000-000000000000).
54123func (c *AutoscalersInsertCall) RequestId(requestId string) *AutoscalersInsertCall {
54124	c.urlParams_.Set("requestId", requestId)
54125	return c
54126}
54127
54128// Fields allows partial responses to be retrieved. See
54129// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54130// for more information.
54131func (c *AutoscalersInsertCall) Fields(s ...googleapi.Field) *AutoscalersInsertCall {
54132	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54133	return c
54134}
54135
54136// Context sets the context to be used in this call's Do method. Any
54137// pending HTTP request will be aborted if the provided context is
54138// canceled.
54139func (c *AutoscalersInsertCall) Context(ctx context.Context) *AutoscalersInsertCall {
54140	c.ctx_ = ctx
54141	return c
54142}
54143
54144// Header returns an http.Header that can be modified by the caller to
54145// add HTTP headers to the request.
54146func (c *AutoscalersInsertCall) Header() http.Header {
54147	if c.header_ == nil {
54148		c.header_ = make(http.Header)
54149	}
54150	return c.header_
54151}
54152
54153func (c *AutoscalersInsertCall) doRequest(alt string) (*http.Response, error) {
54154	reqHeaders := make(http.Header)
54155	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
54156	for k, v := range c.header_ {
54157		reqHeaders[k] = v
54158	}
54159	reqHeaders.Set("User-Agent", c.s.userAgent())
54160	var body io.Reader = nil
54161	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
54162	if err != nil {
54163		return nil, err
54164	}
54165	reqHeaders.Set("Content-Type", "application/json")
54166	c.urlParams_.Set("alt", alt)
54167	c.urlParams_.Set("prettyPrint", "false")
54168	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers")
54169	urls += "?" + c.urlParams_.Encode()
54170	req, err := http.NewRequest("POST", urls, body)
54171	if err != nil {
54172		return nil, err
54173	}
54174	req.Header = reqHeaders
54175	googleapi.Expand(req.URL, map[string]string{
54176		"project": c.project,
54177		"zone":    c.zone,
54178	})
54179	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54180}
54181
54182// Do executes the "compute.autoscalers.insert" call.
54183// Exactly one of *Operation or error will be non-nil. Any non-2xx
54184// status code is an error. Response headers are in either
54185// *Operation.ServerResponse.Header or (if a response was returned at
54186// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54187// to check whether the returned error was because
54188// http.StatusNotModified was returned.
54189func (c *AutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54190	gensupport.SetOptions(c.urlParams_, opts...)
54191	res, err := c.doRequest("json")
54192	if res != nil && res.StatusCode == http.StatusNotModified {
54193		if res.Body != nil {
54194			res.Body.Close()
54195		}
54196		return nil, &googleapi.Error{
54197			Code:   res.StatusCode,
54198			Header: res.Header,
54199		}
54200	}
54201	if err != nil {
54202		return nil, err
54203	}
54204	defer googleapi.CloseBody(res)
54205	if err := googleapi.CheckResponse(res); err != nil {
54206		return nil, err
54207	}
54208	ret := &Operation{
54209		ServerResponse: googleapi.ServerResponse{
54210			Header:         res.Header,
54211			HTTPStatusCode: res.StatusCode,
54212		},
54213	}
54214	target := &ret
54215	if err := gensupport.DecodeResponse(target, res); err != nil {
54216		return nil, err
54217	}
54218	return ret, nil
54219	// {
54220	//   "description": "Creates an autoscaler in the specified project using the data included in the request.",
54221	//   "flatPath": "projects/{project}/zones/{zone}/autoscalers",
54222	//   "httpMethod": "POST",
54223	//   "id": "compute.autoscalers.insert",
54224	//   "parameterOrder": [
54225	//     "project",
54226	//     "zone"
54227	//   ],
54228	//   "parameters": {
54229	//     "project": {
54230	//       "description": "Project ID for this request.",
54231	//       "location": "path",
54232	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54233	//       "required": true,
54234	//       "type": "string"
54235	//     },
54236	//     "requestId": {
54237	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
54238	//       "location": "query",
54239	//       "type": "string"
54240	//     },
54241	//     "zone": {
54242	//       "description": "Name of the zone for this request.",
54243	//       "location": "path",
54244	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54245	//       "required": true,
54246	//       "type": "string"
54247	//     }
54248	//   },
54249	//   "path": "projects/{project}/zones/{zone}/autoscalers",
54250	//   "request": {
54251	//     "$ref": "Autoscaler"
54252	//   },
54253	//   "response": {
54254	//     "$ref": "Operation"
54255	//   },
54256	//   "scopes": [
54257	//     "https://www.googleapis.com/auth/cloud-platform",
54258	//     "https://www.googleapis.com/auth/compute"
54259	//   ]
54260	// }
54261
54262}
54263
54264// method id "compute.autoscalers.list":
54265
54266type AutoscalersListCall struct {
54267	s            *Service
54268	project      string
54269	zone         string
54270	urlParams_   gensupport.URLParams
54271	ifNoneMatch_ string
54272	ctx_         context.Context
54273	header_      http.Header
54274}
54275
54276// List: Retrieves a list of autoscalers contained within the specified
54277// zone.
54278//
54279// - project: Project ID for this request.
54280// - zone: Name of the zone for this request.
54281func (r *AutoscalersService) List(project string, zone string) *AutoscalersListCall {
54282	c := &AutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54283	c.project = project
54284	c.zone = zone
54285	return c
54286}
54287
54288// Filter sets the optional parameter "filter": A filter expression that
54289// filters resources listed in the response. The expression must specify
54290// the field name, a comparison operator, and the value that you want to
54291// use for filtering. The value must be a string, a number, or a
54292// boolean. The comparison operator must be either `=`, `!=`, `>`, or
54293// `<`. For example, if you are filtering Compute Engine instances, you
54294// can exclude instances named `example-instance` by specifying `name !=
54295// example-instance`. You can also filter nested fields. For example,
54296// you could specify `scheduling.automaticRestart = false` to include
54297// instances only if they are not scheduled for automatic restarts. You
54298// can use filtering on nested fields to filter based on resource
54299// labels. To filter on multiple expressions, provide each separate
54300// expression within parentheses. For example: ```
54301// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
54302// ``` By default, each expression is an `AND` expression. However, you
54303// can include `AND` and `OR` expressions explicitly. For example: ```
54304// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
54305// AND (scheduling.automaticRestart = true) ```
54306func (c *AutoscalersListCall) Filter(filter string) *AutoscalersListCall {
54307	c.urlParams_.Set("filter", filter)
54308	return c
54309}
54310
54311// MaxResults sets the optional parameter "maxResults": The maximum
54312// number of results per page that should be returned. If the number of
54313// available results is larger than `maxResults`, Compute Engine returns
54314// a `nextPageToken` that can be used to get the next page of results in
54315// subsequent list requests. Acceptable values are `0` to `500`,
54316// inclusive. (Default: `500`)
54317func (c *AutoscalersListCall) MaxResults(maxResults int64) *AutoscalersListCall {
54318	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
54319	return c
54320}
54321
54322// OrderBy sets the optional parameter "orderBy": Sorts list results by
54323// a certain order. By default, results are returned in alphanumerical
54324// order based on the resource name. You can also sort results in
54325// descending order based on the creation timestamp using
54326// `orderBy="creationTimestamp desc". This sorts results based on the
54327// `creationTimestamp` field in reverse chronological order (newest
54328// result first). Use this to sort resources like operations so that the
54329// newest operation is returned first. Currently, only sorting by `name`
54330// or `creationTimestamp desc` is supported.
54331func (c *AutoscalersListCall) OrderBy(orderBy string) *AutoscalersListCall {
54332	c.urlParams_.Set("orderBy", orderBy)
54333	return c
54334}
54335
54336// PageToken sets the optional parameter "pageToken": Specifies a page
54337// token to use. Set `pageToken` to the `nextPageToken` returned by a
54338// previous list request to get the next page of results.
54339func (c *AutoscalersListCall) PageToken(pageToken string) *AutoscalersListCall {
54340	c.urlParams_.Set("pageToken", pageToken)
54341	return c
54342}
54343
54344// ReturnPartialSuccess sets the optional parameter
54345// "returnPartialSuccess": Opt-in for partial success behavior which
54346// provides partial results in case of failure. The default value is
54347// false.
54348func (c *AutoscalersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AutoscalersListCall {
54349	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
54350	return c
54351}
54352
54353// Fields allows partial responses to be retrieved. See
54354// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54355// for more information.
54356func (c *AutoscalersListCall) Fields(s ...googleapi.Field) *AutoscalersListCall {
54357	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54358	return c
54359}
54360
54361// IfNoneMatch sets the optional parameter which makes the operation
54362// fail if the object's ETag matches the given value. This is useful for
54363// getting updates only after the object has changed since the last
54364// request. Use googleapi.IsNotModified to check whether the response
54365// error from Do is the result of In-None-Match.
54366func (c *AutoscalersListCall) IfNoneMatch(entityTag string) *AutoscalersListCall {
54367	c.ifNoneMatch_ = entityTag
54368	return c
54369}
54370
54371// Context sets the context to be used in this call's Do method. Any
54372// pending HTTP request will be aborted if the provided context is
54373// canceled.
54374func (c *AutoscalersListCall) Context(ctx context.Context) *AutoscalersListCall {
54375	c.ctx_ = ctx
54376	return c
54377}
54378
54379// Header returns an http.Header that can be modified by the caller to
54380// add HTTP headers to the request.
54381func (c *AutoscalersListCall) Header() http.Header {
54382	if c.header_ == nil {
54383		c.header_ = make(http.Header)
54384	}
54385	return c.header_
54386}
54387
54388func (c *AutoscalersListCall) doRequest(alt string) (*http.Response, error) {
54389	reqHeaders := make(http.Header)
54390	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
54391	for k, v := range c.header_ {
54392		reqHeaders[k] = v
54393	}
54394	reqHeaders.Set("User-Agent", c.s.userAgent())
54395	if c.ifNoneMatch_ != "" {
54396		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
54397	}
54398	var body io.Reader = nil
54399	c.urlParams_.Set("alt", alt)
54400	c.urlParams_.Set("prettyPrint", "false")
54401	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers")
54402	urls += "?" + c.urlParams_.Encode()
54403	req, err := http.NewRequest("GET", urls, body)
54404	if err != nil {
54405		return nil, err
54406	}
54407	req.Header = reqHeaders
54408	googleapi.Expand(req.URL, map[string]string{
54409		"project": c.project,
54410		"zone":    c.zone,
54411	})
54412	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54413}
54414
54415// Do executes the "compute.autoscalers.list" call.
54416// Exactly one of *AutoscalerList or error will be non-nil. Any non-2xx
54417// status code is an error. Response headers are in either
54418// *AutoscalerList.ServerResponse.Header or (if a response was returned
54419// at all) in error.(*googleapi.Error).Header. Use
54420// googleapi.IsNotModified to check whether the returned error was
54421// because http.StatusNotModified was returned.
54422func (c *AutoscalersListCall) Do(opts ...googleapi.CallOption) (*AutoscalerList, error) {
54423	gensupport.SetOptions(c.urlParams_, opts...)
54424	res, err := c.doRequest("json")
54425	if res != nil && res.StatusCode == http.StatusNotModified {
54426		if res.Body != nil {
54427			res.Body.Close()
54428		}
54429		return nil, &googleapi.Error{
54430			Code:   res.StatusCode,
54431			Header: res.Header,
54432		}
54433	}
54434	if err != nil {
54435		return nil, err
54436	}
54437	defer googleapi.CloseBody(res)
54438	if err := googleapi.CheckResponse(res); err != nil {
54439		return nil, err
54440	}
54441	ret := &AutoscalerList{
54442		ServerResponse: googleapi.ServerResponse{
54443			Header:         res.Header,
54444			HTTPStatusCode: res.StatusCode,
54445		},
54446	}
54447	target := &ret
54448	if err := gensupport.DecodeResponse(target, res); err != nil {
54449		return nil, err
54450	}
54451	return ret, nil
54452	// {
54453	//   "description": "Retrieves a list of autoscalers contained within the specified zone.",
54454	//   "flatPath": "projects/{project}/zones/{zone}/autoscalers",
54455	//   "httpMethod": "GET",
54456	//   "id": "compute.autoscalers.list",
54457	//   "parameterOrder": [
54458	//     "project",
54459	//     "zone"
54460	//   ],
54461	//   "parameters": {
54462	//     "filter": {
54463	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
54464	//       "location": "query",
54465	//       "type": "string"
54466	//     },
54467	//     "maxResults": {
54468	//       "default": "500",
54469	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
54470	//       "format": "uint32",
54471	//       "location": "query",
54472	//       "minimum": "0",
54473	//       "type": "integer"
54474	//     },
54475	//     "orderBy": {
54476	//       "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.",
54477	//       "location": "query",
54478	//       "type": "string"
54479	//     },
54480	//     "pageToken": {
54481	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
54482	//       "location": "query",
54483	//       "type": "string"
54484	//     },
54485	//     "project": {
54486	//       "description": "Project ID for this request.",
54487	//       "location": "path",
54488	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54489	//       "required": true,
54490	//       "type": "string"
54491	//     },
54492	//     "returnPartialSuccess": {
54493	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
54494	//       "location": "query",
54495	//       "type": "boolean"
54496	//     },
54497	//     "zone": {
54498	//       "description": "Name of the zone for this request.",
54499	//       "location": "path",
54500	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54501	//       "required": true,
54502	//       "type": "string"
54503	//     }
54504	//   },
54505	//   "path": "projects/{project}/zones/{zone}/autoscalers",
54506	//   "response": {
54507	//     "$ref": "AutoscalerList"
54508	//   },
54509	//   "scopes": [
54510	//     "https://www.googleapis.com/auth/cloud-platform",
54511	//     "https://www.googleapis.com/auth/compute",
54512	//     "https://www.googleapis.com/auth/compute.readonly"
54513	//   ]
54514	// }
54515
54516}
54517
54518// Pages invokes f for each page of results.
54519// A non-nil error returned from f will halt the iteration.
54520// The provided context supersedes any context provided to the Context method.
54521func (c *AutoscalersListCall) Pages(ctx context.Context, f func(*AutoscalerList) error) error {
54522	c.ctx_ = ctx
54523	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
54524	for {
54525		x, err := c.Do()
54526		if err != nil {
54527			return err
54528		}
54529		if err := f(x); err != nil {
54530			return err
54531		}
54532		if x.NextPageToken == "" {
54533			return nil
54534		}
54535		c.PageToken(x.NextPageToken)
54536	}
54537}
54538
54539// method id "compute.autoscalers.patch":
54540
54541type AutoscalersPatchCall struct {
54542	s          *Service
54543	project    string
54544	zone       string
54545	autoscaler *Autoscaler
54546	urlParams_ gensupport.URLParams
54547	ctx_       context.Context
54548	header_    http.Header
54549}
54550
54551// Patch: Updates an autoscaler in the specified project using the data
54552// included in the request. This method supports PATCH semantics and
54553// uses the JSON merge patch format and processing rules.
54554//
54555// - project: Project ID for this request.
54556// - zone: Name of the zone for this request.
54557func (r *AutoscalersService) Patch(project string, zone string, autoscaler *Autoscaler) *AutoscalersPatchCall {
54558	c := &AutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54559	c.project = project
54560	c.zone = zone
54561	c.autoscaler = autoscaler
54562	return c
54563}
54564
54565// Autoscaler sets the optional parameter "autoscaler": Name of the
54566// autoscaler to patch.
54567func (c *AutoscalersPatchCall) Autoscaler(autoscaler string) *AutoscalersPatchCall {
54568	c.urlParams_.Set("autoscaler", autoscaler)
54569	return c
54570}
54571
54572// RequestId sets the optional parameter "requestId": An optional
54573// request ID to identify requests. Specify a unique request ID so that
54574// if you must retry your request, the server will know to ignore the
54575// request if it has already been completed. For example, consider a
54576// situation where you make an initial request and the request times
54577// out. If you make the request again with the same request ID, the
54578// server can check if original operation with the same request ID was
54579// received, and if so, will ignore the second request. This prevents
54580// clients from accidentally creating duplicate commitments. The request
54581// ID must be a valid UUID with the exception that zero UUID is not
54582// supported ( 00000000-0000-0000-0000-000000000000).
54583func (c *AutoscalersPatchCall) RequestId(requestId string) *AutoscalersPatchCall {
54584	c.urlParams_.Set("requestId", requestId)
54585	return c
54586}
54587
54588// Fields allows partial responses to be retrieved. See
54589// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54590// for more information.
54591func (c *AutoscalersPatchCall) Fields(s ...googleapi.Field) *AutoscalersPatchCall {
54592	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54593	return c
54594}
54595
54596// Context sets the context to be used in this call's Do method. Any
54597// pending HTTP request will be aborted if the provided context is
54598// canceled.
54599func (c *AutoscalersPatchCall) Context(ctx context.Context) *AutoscalersPatchCall {
54600	c.ctx_ = ctx
54601	return c
54602}
54603
54604// Header returns an http.Header that can be modified by the caller to
54605// add HTTP headers to the request.
54606func (c *AutoscalersPatchCall) Header() http.Header {
54607	if c.header_ == nil {
54608		c.header_ = make(http.Header)
54609	}
54610	return c.header_
54611}
54612
54613func (c *AutoscalersPatchCall) doRequest(alt string) (*http.Response, error) {
54614	reqHeaders := make(http.Header)
54615	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
54616	for k, v := range c.header_ {
54617		reqHeaders[k] = v
54618	}
54619	reqHeaders.Set("User-Agent", c.s.userAgent())
54620	var body io.Reader = nil
54621	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
54622	if err != nil {
54623		return nil, err
54624	}
54625	reqHeaders.Set("Content-Type", "application/json")
54626	c.urlParams_.Set("alt", alt)
54627	c.urlParams_.Set("prettyPrint", "false")
54628	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers")
54629	urls += "?" + c.urlParams_.Encode()
54630	req, err := http.NewRequest("PATCH", urls, body)
54631	if err != nil {
54632		return nil, err
54633	}
54634	req.Header = reqHeaders
54635	googleapi.Expand(req.URL, map[string]string{
54636		"project": c.project,
54637		"zone":    c.zone,
54638	})
54639	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54640}
54641
54642// Do executes the "compute.autoscalers.patch" call.
54643// Exactly one of *Operation or error will be non-nil. Any non-2xx
54644// status code is an error. Response headers are in either
54645// *Operation.ServerResponse.Header or (if a response was returned at
54646// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54647// to check whether the returned error was because
54648// http.StatusNotModified was returned.
54649func (c *AutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54650	gensupport.SetOptions(c.urlParams_, opts...)
54651	res, err := c.doRequest("json")
54652	if res != nil && res.StatusCode == http.StatusNotModified {
54653		if res.Body != nil {
54654			res.Body.Close()
54655		}
54656		return nil, &googleapi.Error{
54657			Code:   res.StatusCode,
54658			Header: res.Header,
54659		}
54660	}
54661	if err != nil {
54662		return nil, err
54663	}
54664	defer googleapi.CloseBody(res)
54665	if err := googleapi.CheckResponse(res); err != nil {
54666		return nil, err
54667	}
54668	ret := &Operation{
54669		ServerResponse: googleapi.ServerResponse{
54670			Header:         res.Header,
54671			HTTPStatusCode: res.StatusCode,
54672		},
54673	}
54674	target := &ret
54675	if err := gensupport.DecodeResponse(target, res); err != nil {
54676		return nil, err
54677	}
54678	return ret, nil
54679	// {
54680	//   "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.",
54681	//   "flatPath": "projects/{project}/zones/{zone}/autoscalers",
54682	//   "httpMethod": "PATCH",
54683	//   "id": "compute.autoscalers.patch",
54684	//   "parameterOrder": [
54685	//     "project",
54686	//     "zone"
54687	//   ],
54688	//   "parameters": {
54689	//     "autoscaler": {
54690	//       "description": "Name of the autoscaler to patch.",
54691	//       "location": "query",
54692	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
54693	//       "type": "string"
54694	//     },
54695	//     "project": {
54696	//       "description": "Project ID for this request.",
54697	//       "location": "path",
54698	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54699	//       "required": true,
54700	//       "type": "string"
54701	//     },
54702	//     "requestId": {
54703	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
54704	//       "location": "query",
54705	//       "type": "string"
54706	//     },
54707	//     "zone": {
54708	//       "description": "Name of the zone for this request.",
54709	//       "location": "path",
54710	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54711	//       "required": true,
54712	//       "type": "string"
54713	//     }
54714	//   },
54715	//   "path": "projects/{project}/zones/{zone}/autoscalers",
54716	//   "request": {
54717	//     "$ref": "Autoscaler"
54718	//   },
54719	//   "response": {
54720	//     "$ref": "Operation"
54721	//   },
54722	//   "scopes": [
54723	//     "https://www.googleapis.com/auth/cloud-platform",
54724	//     "https://www.googleapis.com/auth/compute"
54725	//   ]
54726	// }
54727
54728}
54729
54730// method id "compute.autoscalers.update":
54731
54732type AutoscalersUpdateCall struct {
54733	s          *Service
54734	project    string
54735	zone       string
54736	autoscaler *Autoscaler
54737	urlParams_ gensupport.URLParams
54738	ctx_       context.Context
54739	header_    http.Header
54740}
54741
54742// Update: Updates an autoscaler in the specified project using the data
54743// included in the request.
54744//
54745// - project: Project ID for this request.
54746// - zone: Name of the zone for this request.
54747func (r *AutoscalersService) Update(project string, zone string, autoscaler *Autoscaler) *AutoscalersUpdateCall {
54748	c := &AutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54749	c.project = project
54750	c.zone = zone
54751	c.autoscaler = autoscaler
54752	return c
54753}
54754
54755// Autoscaler sets the optional parameter "autoscaler": Name of the
54756// autoscaler to update.
54757func (c *AutoscalersUpdateCall) Autoscaler(autoscaler string) *AutoscalersUpdateCall {
54758	c.urlParams_.Set("autoscaler", autoscaler)
54759	return c
54760}
54761
54762// RequestId sets the optional parameter "requestId": An optional
54763// request ID to identify requests. Specify a unique request ID so that
54764// if you must retry your request, the server will know to ignore the
54765// request if it has already been completed. For example, consider a
54766// situation where you make an initial request and the request times
54767// out. If you make the request again with the same request ID, the
54768// server can check if original operation with the same request ID was
54769// received, and if so, will ignore the second request. This prevents
54770// clients from accidentally creating duplicate commitments. The request
54771// ID must be a valid UUID with the exception that zero UUID is not
54772// supported ( 00000000-0000-0000-0000-000000000000).
54773func (c *AutoscalersUpdateCall) RequestId(requestId string) *AutoscalersUpdateCall {
54774	c.urlParams_.Set("requestId", requestId)
54775	return c
54776}
54777
54778// Fields allows partial responses to be retrieved. See
54779// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54780// for more information.
54781func (c *AutoscalersUpdateCall) Fields(s ...googleapi.Field) *AutoscalersUpdateCall {
54782	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54783	return c
54784}
54785
54786// Context sets the context to be used in this call's Do method. Any
54787// pending HTTP request will be aborted if the provided context is
54788// canceled.
54789func (c *AutoscalersUpdateCall) Context(ctx context.Context) *AutoscalersUpdateCall {
54790	c.ctx_ = ctx
54791	return c
54792}
54793
54794// Header returns an http.Header that can be modified by the caller to
54795// add HTTP headers to the request.
54796func (c *AutoscalersUpdateCall) Header() http.Header {
54797	if c.header_ == nil {
54798		c.header_ = make(http.Header)
54799	}
54800	return c.header_
54801}
54802
54803func (c *AutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) {
54804	reqHeaders := make(http.Header)
54805	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
54806	for k, v := range c.header_ {
54807		reqHeaders[k] = v
54808	}
54809	reqHeaders.Set("User-Agent", c.s.userAgent())
54810	var body io.Reader = nil
54811	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
54812	if err != nil {
54813		return nil, err
54814	}
54815	reqHeaders.Set("Content-Type", "application/json")
54816	c.urlParams_.Set("alt", alt)
54817	c.urlParams_.Set("prettyPrint", "false")
54818	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers")
54819	urls += "?" + c.urlParams_.Encode()
54820	req, err := http.NewRequest("PUT", urls, body)
54821	if err != nil {
54822		return nil, err
54823	}
54824	req.Header = reqHeaders
54825	googleapi.Expand(req.URL, map[string]string{
54826		"project": c.project,
54827		"zone":    c.zone,
54828	})
54829	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54830}
54831
54832// Do executes the "compute.autoscalers.update" call.
54833// Exactly one of *Operation or error will be non-nil. Any non-2xx
54834// status code is an error. Response headers are in either
54835// *Operation.ServerResponse.Header or (if a response was returned at
54836// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54837// to check whether the returned error was because
54838// http.StatusNotModified was returned.
54839func (c *AutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54840	gensupport.SetOptions(c.urlParams_, opts...)
54841	res, err := c.doRequest("json")
54842	if res != nil && res.StatusCode == http.StatusNotModified {
54843		if res.Body != nil {
54844			res.Body.Close()
54845		}
54846		return nil, &googleapi.Error{
54847			Code:   res.StatusCode,
54848			Header: res.Header,
54849		}
54850	}
54851	if err != nil {
54852		return nil, err
54853	}
54854	defer googleapi.CloseBody(res)
54855	if err := googleapi.CheckResponse(res); err != nil {
54856		return nil, err
54857	}
54858	ret := &Operation{
54859		ServerResponse: googleapi.ServerResponse{
54860			Header:         res.Header,
54861			HTTPStatusCode: res.StatusCode,
54862		},
54863	}
54864	target := &ret
54865	if err := gensupport.DecodeResponse(target, res); err != nil {
54866		return nil, err
54867	}
54868	return ret, nil
54869	// {
54870	//   "description": "Updates an autoscaler in the specified project using the data included in the request.",
54871	//   "flatPath": "projects/{project}/zones/{zone}/autoscalers",
54872	//   "httpMethod": "PUT",
54873	//   "id": "compute.autoscalers.update",
54874	//   "parameterOrder": [
54875	//     "project",
54876	//     "zone"
54877	//   ],
54878	//   "parameters": {
54879	//     "autoscaler": {
54880	//       "description": "Name of the autoscaler to update.",
54881	//       "location": "query",
54882	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
54883	//       "type": "string"
54884	//     },
54885	//     "project": {
54886	//       "description": "Project ID for this request.",
54887	//       "location": "path",
54888	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54889	//       "required": true,
54890	//       "type": "string"
54891	//     },
54892	//     "requestId": {
54893	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
54894	//       "location": "query",
54895	//       "type": "string"
54896	//     },
54897	//     "zone": {
54898	//       "description": "Name of the zone for this request.",
54899	//       "location": "path",
54900	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54901	//       "required": true,
54902	//       "type": "string"
54903	//     }
54904	//   },
54905	//   "path": "projects/{project}/zones/{zone}/autoscalers",
54906	//   "request": {
54907	//     "$ref": "Autoscaler"
54908	//   },
54909	//   "response": {
54910	//     "$ref": "Operation"
54911	//   },
54912	//   "scopes": [
54913	//     "https://www.googleapis.com/auth/cloud-platform",
54914	//     "https://www.googleapis.com/auth/compute"
54915	//   ]
54916	// }
54917
54918}
54919
54920// method id "compute.backendBuckets.addSignedUrlKey":
54921
54922type BackendBucketsAddSignedUrlKeyCall struct {
54923	s             *Service
54924	project       string
54925	backendBucket string
54926	signedurlkey  *SignedUrlKey
54927	urlParams_    gensupport.URLParams
54928	ctx_          context.Context
54929	header_       http.Header
54930}
54931
54932// AddSignedUrlKey: Adds a key for validating requests with signed URLs
54933// for this backend bucket.
54934//
54935// - backendBucket: Name of the BackendBucket resource to which the
54936//   Signed URL Key should be added. The name should conform to RFC1035.
54937// - project: Project ID for this request.
54938func (r *BackendBucketsService) AddSignedUrlKey(project string, backendBucket string, signedurlkey *SignedUrlKey) *BackendBucketsAddSignedUrlKeyCall {
54939	c := &BackendBucketsAddSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54940	c.project = project
54941	c.backendBucket = backendBucket
54942	c.signedurlkey = signedurlkey
54943	return c
54944}
54945
54946// RequestId sets the optional parameter "requestId": An optional
54947// request ID to identify requests. Specify a unique request ID so that
54948// if you must retry your request, the server will know to ignore the
54949// request if it has already been completed. For example, consider a
54950// situation where you make an initial request and the request times
54951// out. If you make the request again with the same request ID, the
54952// server can check if original operation with the same request ID was
54953// received, and if so, will ignore the second request. This prevents
54954// clients from accidentally creating duplicate commitments. The request
54955// ID must be a valid UUID with the exception that zero UUID is not
54956// supported ( 00000000-0000-0000-0000-000000000000).
54957func (c *BackendBucketsAddSignedUrlKeyCall) RequestId(requestId string) *BackendBucketsAddSignedUrlKeyCall {
54958	c.urlParams_.Set("requestId", requestId)
54959	return c
54960}
54961
54962// Fields allows partial responses to be retrieved. See
54963// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54964// for more information.
54965func (c *BackendBucketsAddSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendBucketsAddSignedUrlKeyCall {
54966	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54967	return c
54968}
54969
54970// Context sets the context to be used in this call's Do method. Any
54971// pending HTTP request will be aborted if the provided context is
54972// canceled.
54973func (c *BackendBucketsAddSignedUrlKeyCall) Context(ctx context.Context) *BackendBucketsAddSignedUrlKeyCall {
54974	c.ctx_ = ctx
54975	return c
54976}
54977
54978// Header returns an http.Header that can be modified by the caller to
54979// add HTTP headers to the request.
54980func (c *BackendBucketsAddSignedUrlKeyCall) Header() http.Header {
54981	if c.header_ == nil {
54982		c.header_ = make(http.Header)
54983	}
54984	return c.header_
54985}
54986
54987func (c *BackendBucketsAddSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
54988	reqHeaders := make(http.Header)
54989	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
54990	for k, v := range c.header_ {
54991		reqHeaders[k] = v
54992	}
54993	reqHeaders.Set("User-Agent", c.s.userAgent())
54994	var body io.Reader = nil
54995	body, err := googleapi.WithoutDataWrapper.JSONReader(c.signedurlkey)
54996	if err != nil {
54997		return nil, err
54998	}
54999	reqHeaders.Set("Content-Type", "application/json")
55000	c.urlParams_.Set("alt", alt)
55001	c.urlParams_.Set("prettyPrint", "false")
55002	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey")
55003	urls += "?" + c.urlParams_.Encode()
55004	req, err := http.NewRequest("POST", urls, body)
55005	if err != nil {
55006		return nil, err
55007	}
55008	req.Header = reqHeaders
55009	googleapi.Expand(req.URL, map[string]string{
55010		"project":       c.project,
55011		"backendBucket": c.backendBucket,
55012	})
55013	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55014}
55015
55016// Do executes the "compute.backendBuckets.addSignedUrlKey" call.
55017// Exactly one of *Operation or error will be non-nil. Any non-2xx
55018// status code is an error. Response headers are in either
55019// *Operation.ServerResponse.Header or (if a response was returned at
55020// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55021// to check whether the returned error was because
55022// http.StatusNotModified was returned.
55023func (c *BackendBucketsAddSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55024	gensupport.SetOptions(c.urlParams_, opts...)
55025	res, err := c.doRequest("json")
55026	if res != nil && res.StatusCode == http.StatusNotModified {
55027		if res.Body != nil {
55028			res.Body.Close()
55029		}
55030		return nil, &googleapi.Error{
55031			Code:   res.StatusCode,
55032			Header: res.Header,
55033		}
55034	}
55035	if err != nil {
55036		return nil, err
55037	}
55038	defer googleapi.CloseBody(res)
55039	if err := googleapi.CheckResponse(res); err != nil {
55040		return nil, err
55041	}
55042	ret := &Operation{
55043		ServerResponse: googleapi.ServerResponse{
55044			Header:         res.Header,
55045			HTTPStatusCode: res.StatusCode,
55046		},
55047	}
55048	target := &ret
55049	if err := gensupport.DecodeResponse(target, res); err != nil {
55050		return nil, err
55051	}
55052	return ret, nil
55053	// {
55054	//   "description": "Adds a key for validating requests with signed URLs for this backend bucket.",
55055	//   "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey",
55056	//   "httpMethod": "POST",
55057	//   "id": "compute.backendBuckets.addSignedUrlKey",
55058	//   "parameterOrder": [
55059	//     "project",
55060	//     "backendBucket"
55061	//   ],
55062	//   "parameters": {
55063	//     "backendBucket": {
55064	//       "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
55065	//       "location": "path",
55066	//       "required": true,
55067	//       "type": "string"
55068	//     },
55069	//     "project": {
55070	//       "description": "Project ID for this request.",
55071	//       "location": "path",
55072	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55073	//       "required": true,
55074	//       "type": "string"
55075	//     },
55076	//     "requestId": {
55077	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
55078	//       "location": "query",
55079	//       "type": "string"
55080	//     }
55081	//   },
55082	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey",
55083	//   "request": {
55084	//     "$ref": "SignedUrlKey"
55085	//   },
55086	//   "response": {
55087	//     "$ref": "Operation"
55088	//   },
55089	//   "scopes": [
55090	//     "https://www.googleapis.com/auth/cloud-platform",
55091	//     "https://www.googleapis.com/auth/compute"
55092	//   ]
55093	// }
55094
55095}
55096
55097// method id "compute.backendBuckets.delete":
55098
55099type BackendBucketsDeleteCall struct {
55100	s             *Service
55101	project       string
55102	backendBucket string
55103	urlParams_    gensupport.URLParams
55104	ctx_          context.Context
55105	header_       http.Header
55106}
55107
55108// Delete: Deletes the specified BackendBucket resource.
55109//
55110// - backendBucket: Name of the BackendBucket resource to delete.
55111// - project: Project ID for this request.
55112func (r *BackendBucketsService) Delete(project string, backendBucket string) *BackendBucketsDeleteCall {
55113	c := &BackendBucketsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55114	c.project = project
55115	c.backendBucket = backendBucket
55116	return c
55117}
55118
55119// RequestId sets the optional parameter "requestId": An optional
55120// request ID to identify requests. Specify a unique request ID so that
55121// if you must retry your request, the server will know to ignore the
55122// request if it has already been completed. For example, consider a
55123// situation where you make an initial request and the request times
55124// out. If you make the request again with the same request ID, the
55125// server can check if original operation with the same request ID was
55126// received, and if so, will ignore the second request. This prevents
55127// clients from accidentally creating duplicate commitments. The request
55128// ID must be a valid UUID with the exception that zero UUID is not
55129// supported ( 00000000-0000-0000-0000-000000000000).
55130func (c *BackendBucketsDeleteCall) RequestId(requestId string) *BackendBucketsDeleteCall {
55131	c.urlParams_.Set("requestId", requestId)
55132	return c
55133}
55134
55135// Fields allows partial responses to be retrieved. See
55136// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55137// for more information.
55138func (c *BackendBucketsDeleteCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteCall {
55139	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55140	return c
55141}
55142
55143// Context sets the context to be used in this call's Do method. Any
55144// pending HTTP request will be aborted if the provided context is
55145// canceled.
55146func (c *BackendBucketsDeleteCall) Context(ctx context.Context) *BackendBucketsDeleteCall {
55147	c.ctx_ = ctx
55148	return c
55149}
55150
55151// Header returns an http.Header that can be modified by the caller to
55152// add HTTP headers to the request.
55153func (c *BackendBucketsDeleteCall) Header() http.Header {
55154	if c.header_ == nil {
55155		c.header_ = make(http.Header)
55156	}
55157	return c.header_
55158}
55159
55160func (c *BackendBucketsDeleteCall) doRequest(alt string) (*http.Response, error) {
55161	reqHeaders := make(http.Header)
55162	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
55163	for k, v := range c.header_ {
55164		reqHeaders[k] = v
55165	}
55166	reqHeaders.Set("User-Agent", c.s.userAgent())
55167	var body io.Reader = nil
55168	c.urlParams_.Set("alt", alt)
55169	c.urlParams_.Set("prettyPrint", "false")
55170	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}")
55171	urls += "?" + c.urlParams_.Encode()
55172	req, err := http.NewRequest("DELETE", urls, body)
55173	if err != nil {
55174		return nil, err
55175	}
55176	req.Header = reqHeaders
55177	googleapi.Expand(req.URL, map[string]string{
55178		"project":       c.project,
55179		"backendBucket": c.backendBucket,
55180	})
55181	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55182}
55183
55184// Do executes the "compute.backendBuckets.delete" call.
55185// Exactly one of *Operation or error will be non-nil. Any non-2xx
55186// status code is an error. Response headers are in either
55187// *Operation.ServerResponse.Header or (if a response was returned at
55188// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55189// to check whether the returned error was because
55190// http.StatusNotModified was returned.
55191func (c *BackendBucketsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55192	gensupport.SetOptions(c.urlParams_, opts...)
55193	res, err := c.doRequest("json")
55194	if res != nil && res.StatusCode == http.StatusNotModified {
55195		if res.Body != nil {
55196			res.Body.Close()
55197		}
55198		return nil, &googleapi.Error{
55199			Code:   res.StatusCode,
55200			Header: res.Header,
55201		}
55202	}
55203	if err != nil {
55204		return nil, err
55205	}
55206	defer googleapi.CloseBody(res)
55207	if err := googleapi.CheckResponse(res); err != nil {
55208		return nil, err
55209	}
55210	ret := &Operation{
55211		ServerResponse: googleapi.ServerResponse{
55212			Header:         res.Header,
55213			HTTPStatusCode: res.StatusCode,
55214		},
55215	}
55216	target := &ret
55217	if err := gensupport.DecodeResponse(target, res); err != nil {
55218		return nil, err
55219	}
55220	return ret, nil
55221	// {
55222	//   "description": "Deletes the specified BackendBucket resource.",
55223	//   "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}",
55224	//   "httpMethod": "DELETE",
55225	//   "id": "compute.backendBuckets.delete",
55226	//   "parameterOrder": [
55227	//     "project",
55228	//     "backendBucket"
55229	//   ],
55230	//   "parameters": {
55231	//     "backendBucket": {
55232	//       "description": "Name of the BackendBucket resource to delete.",
55233	//       "location": "path",
55234	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55235	//       "required": true,
55236	//       "type": "string"
55237	//     },
55238	//     "project": {
55239	//       "description": "Project ID for this request.",
55240	//       "location": "path",
55241	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55242	//       "required": true,
55243	//       "type": "string"
55244	//     },
55245	//     "requestId": {
55246	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
55247	//       "location": "query",
55248	//       "type": "string"
55249	//     }
55250	//   },
55251	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}",
55252	//   "response": {
55253	//     "$ref": "Operation"
55254	//   },
55255	//   "scopes": [
55256	//     "https://www.googleapis.com/auth/cloud-platform",
55257	//     "https://www.googleapis.com/auth/compute"
55258	//   ]
55259	// }
55260
55261}
55262
55263// method id "compute.backendBuckets.deleteSignedUrlKey":
55264
55265type BackendBucketsDeleteSignedUrlKeyCall struct {
55266	s             *Service
55267	project       string
55268	backendBucket string
55269	urlParams_    gensupport.URLParams
55270	ctx_          context.Context
55271	header_       http.Header
55272}
55273
55274// DeleteSignedUrlKey: Deletes a key for validating requests with signed
55275// URLs for this backend bucket.
55276//
55277// - backendBucket: Name of the BackendBucket resource to which the
55278//   Signed URL Key should be added. The name should conform to RFC1035.
55279// - keyName: The name of the Signed URL Key to delete.
55280// - project: Project ID for this request.
55281func (r *BackendBucketsService) DeleteSignedUrlKey(project string, backendBucket string, keyName string) *BackendBucketsDeleteSignedUrlKeyCall {
55282	c := &BackendBucketsDeleteSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55283	c.project = project
55284	c.backendBucket = backendBucket
55285	c.urlParams_.Set("keyName", keyName)
55286	return c
55287}
55288
55289// RequestId sets the optional parameter "requestId": An optional
55290// request ID to identify requests. Specify a unique request ID so that
55291// if you must retry your request, the server will know to ignore the
55292// request if it has already been completed. For example, consider a
55293// situation where you make an initial request and the request times
55294// out. If you make the request again with the same request ID, the
55295// server can check if original operation with the same request ID was
55296// received, and if so, will ignore the second request. This prevents
55297// clients from accidentally creating duplicate commitments. The request
55298// ID must be a valid UUID with the exception that zero UUID is not
55299// supported ( 00000000-0000-0000-0000-000000000000).
55300func (c *BackendBucketsDeleteSignedUrlKeyCall) RequestId(requestId string) *BackendBucketsDeleteSignedUrlKeyCall {
55301	c.urlParams_.Set("requestId", requestId)
55302	return c
55303}
55304
55305// Fields allows partial responses to be retrieved. See
55306// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55307// for more information.
55308func (c *BackendBucketsDeleteSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteSignedUrlKeyCall {
55309	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55310	return c
55311}
55312
55313// Context sets the context to be used in this call's Do method. Any
55314// pending HTTP request will be aborted if the provided context is
55315// canceled.
55316func (c *BackendBucketsDeleteSignedUrlKeyCall) Context(ctx context.Context) *BackendBucketsDeleteSignedUrlKeyCall {
55317	c.ctx_ = ctx
55318	return c
55319}
55320
55321// Header returns an http.Header that can be modified by the caller to
55322// add HTTP headers to the request.
55323func (c *BackendBucketsDeleteSignedUrlKeyCall) Header() http.Header {
55324	if c.header_ == nil {
55325		c.header_ = make(http.Header)
55326	}
55327	return c.header_
55328}
55329
55330func (c *BackendBucketsDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
55331	reqHeaders := make(http.Header)
55332	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
55333	for k, v := range c.header_ {
55334		reqHeaders[k] = v
55335	}
55336	reqHeaders.Set("User-Agent", c.s.userAgent())
55337	var body io.Reader = nil
55338	c.urlParams_.Set("alt", alt)
55339	c.urlParams_.Set("prettyPrint", "false")
55340	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey")
55341	urls += "?" + c.urlParams_.Encode()
55342	req, err := http.NewRequest("POST", urls, body)
55343	if err != nil {
55344		return nil, err
55345	}
55346	req.Header = reqHeaders
55347	googleapi.Expand(req.URL, map[string]string{
55348		"project":       c.project,
55349		"backendBucket": c.backendBucket,
55350	})
55351	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55352}
55353
55354// Do executes the "compute.backendBuckets.deleteSignedUrlKey" call.
55355// Exactly one of *Operation or error will be non-nil. Any non-2xx
55356// status code is an error. Response headers are in either
55357// *Operation.ServerResponse.Header or (if a response was returned at
55358// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55359// to check whether the returned error was because
55360// http.StatusNotModified was returned.
55361func (c *BackendBucketsDeleteSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55362	gensupport.SetOptions(c.urlParams_, opts...)
55363	res, err := c.doRequest("json")
55364	if res != nil && res.StatusCode == http.StatusNotModified {
55365		if res.Body != nil {
55366			res.Body.Close()
55367		}
55368		return nil, &googleapi.Error{
55369			Code:   res.StatusCode,
55370			Header: res.Header,
55371		}
55372	}
55373	if err != nil {
55374		return nil, err
55375	}
55376	defer googleapi.CloseBody(res)
55377	if err := googleapi.CheckResponse(res); err != nil {
55378		return nil, err
55379	}
55380	ret := &Operation{
55381		ServerResponse: googleapi.ServerResponse{
55382			Header:         res.Header,
55383			HTTPStatusCode: res.StatusCode,
55384		},
55385	}
55386	target := &ret
55387	if err := gensupport.DecodeResponse(target, res); err != nil {
55388		return nil, err
55389	}
55390	return ret, nil
55391	// {
55392	//   "description": "Deletes a key for validating requests with signed URLs for this backend bucket.",
55393	//   "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey",
55394	//   "httpMethod": "POST",
55395	//   "id": "compute.backendBuckets.deleteSignedUrlKey",
55396	//   "parameterOrder": [
55397	//     "project",
55398	//     "backendBucket",
55399	//     "keyName"
55400	//   ],
55401	//   "parameters": {
55402	//     "backendBucket": {
55403	//       "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
55404	//       "location": "path",
55405	//       "required": true,
55406	//       "type": "string"
55407	//     },
55408	//     "keyName": {
55409	//       "description": "The name of the Signed URL Key to delete.",
55410	//       "location": "query",
55411	//       "required": true,
55412	//       "type": "string"
55413	//     },
55414	//     "project": {
55415	//       "description": "Project ID for this request.",
55416	//       "location": "path",
55417	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55418	//       "required": true,
55419	//       "type": "string"
55420	//     },
55421	//     "requestId": {
55422	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
55423	//       "location": "query",
55424	//       "type": "string"
55425	//     }
55426	//   },
55427	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey",
55428	//   "response": {
55429	//     "$ref": "Operation"
55430	//   },
55431	//   "scopes": [
55432	//     "https://www.googleapis.com/auth/cloud-platform",
55433	//     "https://www.googleapis.com/auth/compute"
55434	//   ]
55435	// }
55436
55437}
55438
55439// method id "compute.backendBuckets.get":
55440
55441type BackendBucketsGetCall struct {
55442	s             *Service
55443	project       string
55444	backendBucket string
55445	urlParams_    gensupport.URLParams
55446	ifNoneMatch_  string
55447	ctx_          context.Context
55448	header_       http.Header
55449}
55450
55451// Get: Returns the specified BackendBucket resource. Gets a list of
55452// available backend buckets by making a list() request.
55453//
55454// - backendBucket: Name of the BackendBucket resource to return.
55455// - project: Project ID for this request.
55456func (r *BackendBucketsService) Get(project string, backendBucket string) *BackendBucketsGetCall {
55457	c := &BackendBucketsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55458	c.project = project
55459	c.backendBucket = backendBucket
55460	return c
55461}
55462
55463// Fields allows partial responses to be retrieved. See
55464// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55465// for more information.
55466func (c *BackendBucketsGetCall) Fields(s ...googleapi.Field) *BackendBucketsGetCall {
55467	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55468	return c
55469}
55470
55471// IfNoneMatch sets the optional parameter which makes the operation
55472// fail if the object's ETag matches the given value. This is useful for
55473// getting updates only after the object has changed since the last
55474// request. Use googleapi.IsNotModified to check whether the response
55475// error from Do is the result of In-None-Match.
55476func (c *BackendBucketsGetCall) IfNoneMatch(entityTag string) *BackendBucketsGetCall {
55477	c.ifNoneMatch_ = entityTag
55478	return c
55479}
55480
55481// Context sets the context to be used in this call's Do method. Any
55482// pending HTTP request will be aborted if the provided context is
55483// canceled.
55484func (c *BackendBucketsGetCall) Context(ctx context.Context) *BackendBucketsGetCall {
55485	c.ctx_ = ctx
55486	return c
55487}
55488
55489// Header returns an http.Header that can be modified by the caller to
55490// add HTTP headers to the request.
55491func (c *BackendBucketsGetCall) Header() http.Header {
55492	if c.header_ == nil {
55493		c.header_ = make(http.Header)
55494	}
55495	return c.header_
55496}
55497
55498func (c *BackendBucketsGetCall) doRequest(alt string) (*http.Response, error) {
55499	reqHeaders := make(http.Header)
55500	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
55501	for k, v := range c.header_ {
55502		reqHeaders[k] = v
55503	}
55504	reqHeaders.Set("User-Agent", c.s.userAgent())
55505	if c.ifNoneMatch_ != "" {
55506		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
55507	}
55508	var body io.Reader = nil
55509	c.urlParams_.Set("alt", alt)
55510	c.urlParams_.Set("prettyPrint", "false")
55511	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}")
55512	urls += "?" + c.urlParams_.Encode()
55513	req, err := http.NewRequest("GET", urls, body)
55514	if err != nil {
55515		return nil, err
55516	}
55517	req.Header = reqHeaders
55518	googleapi.Expand(req.URL, map[string]string{
55519		"project":       c.project,
55520		"backendBucket": c.backendBucket,
55521	})
55522	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55523}
55524
55525// Do executes the "compute.backendBuckets.get" call.
55526// Exactly one of *BackendBucket or error will be non-nil. Any non-2xx
55527// status code is an error. Response headers are in either
55528// *BackendBucket.ServerResponse.Header or (if a response was returned
55529// at all) in error.(*googleapi.Error).Header. Use
55530// googleapi.IsNotModified to check whether the returned error was
55531// because http.StatusNotModified was returned.
55532func (c *BackendBucketsGetCall) Do(opts ...googleapi.CallOption) (*BackendBucket, error) {
55533	gensupport.SetOptions(c.urlParams_, opts...)
55534	res, err := c.doRequest("json")
55535	if res != nil && res.StatusCode == http.StatusNotModified {
55536		if res.Body != nil {
55537			res.Body.Close()
55538		}
55539		return nil, &googleapi.Error{
55540			Code:   res.StatusCode,
55541			Header: res.Header,
55542		}
55543	}
55544	if err != nil {
55545		return nil, err
55546	}
55547	defer googleapi.CloseBody(res)
55548	if err := googleapi.CheckResponse(res); err != nil {
55549		return nil, err
55550	}
55551	ret := &BackendBucket{
55552		ServerResponse: googleapi.ServerResponse{
55553			Header:         res.Header,
55554			HTTPStatusCode: res.StatusCode,
55555		},
55556	}
55557	target := &ret
55558	if err := gensupport.DecodeResponse(target, res); err != nil {
55559		return nil, err
55560	}
55561	return ret, nil
55562	// {
55563	//   "description": "Returns the specified BackendBucket resource. Gets a list of available backend buckets by making a list() request.",
55564	//   "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}",
55565	//   "httpMethod": "GET",
55566	//   "id": "compute.backendBuckets.get",
55567	//   "parameterOrder": [
55568	//     "project",
55569	//     "backendBucket"
55570	//   ],
55571	//   "parameters": {
55572	//     "backendBucket": {
55573	//       "description": "Name of the BackendBucket resource to return.",
55574	//       "location": "path",
55575	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55576	//       "required": true,
55577	//       "type": "string"
55578	//     },
55579	//     "project": {
55580	//       "description": "Project ID for this request.",
55581	//       "location": "path",
55582	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55583	//       "required": true,
55584	//       "type": "string"
55585	//     }
55586	//   },
55587	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}",
55588	//   "response": {
55589	//     "$ref": "BackendBucket"
55590	//   },
55591	//   "scopes": [
55592	//     "https://www.googleapis.com/auth/cloud-platform",
55593	//     "https://www.googleapis.com/auth/compute",
55594	//     "https://www.googleapis.com/auth/compute.readonly"
55595	//   ]
55596	// }
55597
55598}
55599
55600// method id "compute.backendBuckets.insert":
55601
55602type BackendBucketsInsertCall struct {
55603	s             *Service
55604	project       string
55605	backendbucket *BackendBucket
55606	urlParams_    gensupport.URLParams
55607	ctx_          context.Context
55608	header_       http.Header
55609}
55610
55611// Insert: Creates a BackendBucket resource in the specified project
55612// using the data included in the request.
55613//
55614// - project: Project ID for this request.
55615func (r *BackendBucketsService) Insert(project string, backendbucket *BackendBucket) *BackendBucketsInsertCall {
55616	c := &BackendBucketsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55617	c.project = project
55618	c.backendbucket = backendbucket
55619	return c
55620}
55621
55622// RequestId sets the optional parameter "requestId": An optional
55623// request ID to identify requests. Specify a unique request ID so that
55624// if you must retry your request, the server will know to ignore the
55625// request if it has already been completed. For example, consider a
55626// situation where you make an initial request and the request times
55627// out. If you make the request again with the same request ID, the
55628// server can check if original operation with the same request ID was
55629// received, and if so, will ignore the second request. This prevents
55630// clients from accidentally creating duplicate commitments. The request
55631// ID must be a valid UUID with the exception that zero UUID is not
55632// supported ( 00000000-0000-0000-0000-000000000000).
55633func (c *BackendBucketsInsertCall) RequestId(requestId string) *BackendBucketsInsertCall {
55634	c.urlParams_.Set("requestId", requestId)
55635	return c
55636}
55637
55638// Fields allows partial responses to be retrieved. See
55639// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55640// for more information.
55641func (c *BackendBucketsInsertCall) Fields(s ...googleapi.Field) *BackendBucketsInsertCall {
55642	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55643	return c
55644}
55645
55646// Context sets the context to be used in this call's Do method. Any
55647// pending HTTP request will be aborted if the provided context is
55648// canceled.
55649func (c *BackendBucketsInsertCall) Context(ctx context.Context) *BackendBucketsInsertCall {
55650	c.ctx_ = ctx
55651	return c
55652}
55653
55654// Header returns an http.Header that can be modified by the caller to
55655// add HTTP headers to the request.
55656func (c *BackendBucketsInsertCall) Header() http.Header {
55657	if c.header_ == nil {
55658		c.header_ = make(http.Header)
55659	}
55660	return c.header_
55661}
55662
55663func (c *BackendBucketsInsertCall) doRequest(alt string) (*http.Response, error) {
55664	reqHeaders := make(http.Header)
55665	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
55666	for k, v := range c.header_ {
55667		reqHeaders[k] = v
55668	}
55669	reqHeaders.Set("User-Agent", c.s.userAgent())
55670	var body io.Reader = nil
55671	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
55672	if err != nil {
55673		return nil, err
55674	}
55675	reqHeaders.Set("Content-Type", "application/json")
55676	c.urlParams_.Set("alt", alt)
55677	c.urlParams_.Set("prettyPrint", "false")
55678	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets")
55679	urls += "?" + c.urlParams_.Encode()
55680	req, err := http.NewRequest("POST", urls, body)
55681	if err != nil {
55682		return nil, err
55683	}
55684	req.Header = reqHeaders
55685	googleapi.Expand(req.URL, map[string]string{
55686		"project": c.project,
55687	})
55688	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55689}
55690
55691// Do executes the "compute.backendBuckets.insert" call.
55692// Exactly one of *Operation or error will be non-nil. Any non-2xx
55693// status code is an error. Response headers are in either
55694// *Operation.ServerResponse.Header or (if a response was returned at
55695// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55696// to check whether the returned error was because
55697// http.StatusNotModified was returned.
55698func (c *BackendBucketsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55699	gensupport.SetOptions(c.urlParams_, opts...)
55700	res, err := c.doRequest("json")
55701	if res != nil && res.StatusCode == http.StatusNotModified {
55702		if res.Body != nil {
55703			res.Body.Close()
55704		}
55705		return nil, &googleapi.Error{
55706			Code:   res.StatusCode,
55707			Header: res.Header,
55708		}
55709	}
55710	if err != nil {
55711		return nil, err
55712	}
55713	defer googleapi.CloseBody(res)
55714	if err := googleapi.CheckResponse(res); err != nil {
55715		return nil, err
55716	}
55717	ret := &Operation{
55718		ServerResponse: googleapi.ServerResponse{
55719			Header:         res.Header,
55720			HTTPStatusCode: res.StatusCode,
55721		},
55722	}
55723	target := &ret
55724	if err := gensupport.DecodeResponse(target, res); err != nil {
55725		return nil, err
55726	}
55727	return ret, nil
55728	// {
55729	//   "description": "Creates a BackendBucket resource in the specified project using the data included in the request.",
55730	//   "flatPath": "projects/{project}/global/backendBuckets",
55731	//   "httpMethod": "POST",
55732	//   "id": "compute.backendBuckets.insert",
55733	//   "parameterOrder": [
55734	//     "project"
55735	//   ],
55736	//   "parameters": {
55737	//     "project": {
55738	//       "description": "Project ID for this request.",
55739	//       "location": "path",
55740	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55741	//       "required": true,
55742	//       "type": "string"
55743	//     },
55744	//     "requestId": {
55745	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
55746	//       "location": "query",
55747	//       "type": "string"
55748	//     }
55749	//   },
55750	//   "path": "projects/{project}/global/backendBuckets",
55751	//   "request": {
55752	//     "$ref": "BackendBucket"
55753	//   },
55754	//   "response": {
55755	//     "$ref": "Operation"
55756	//   },
55757	//   "scopes": [
55758	//     "https://www.googleapis.com/auth/cloud-platform",
55759	//     "https://www.googleapis.com/auth/compute"
55760	//   ]
55761	// }
55762
55763}
55764
55765// method id "compute.backendBuckets.list":
55766
55767type BackendBucketsListCall struct {
55768	s            *Service
55769	project      string
55770	urlParams_   gensupport.URLParams
55771	ifNoneMatch_ string
55772	ctx_         context.Context
55773	header_      http.Header
55774}
55775
55776// List: Retrieves the list of BackendBucket resources available to the
55777// specified project.
55778//
55779// - project: Project ID for this request.
55780func (r *BackendBucketsService) List(project string) *BackendBucketsListCall {
55781	c := &BackendBucketsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55782	c.project = project
55783	return c
55784}
55785
55786// Filter sets the optional parameter "filter": A filter expression that
55787// filters resources listed in the response. The expression must specify
55788// the field name, a comparison operator, and the value that you want to
55789// use for filtering. The value must be a string, a number, or a
55790// boolean. The comparison operator must be either `=`, `!=`, `>`, or
55791// `<`. For example, if you are filtering Compute Engine instances, you
55792// can exclude instances named `example-instance` by specifying `name !=
55793// example-instance`. You can also filter nested fields. For example,
55794// you could specify `scheduling.automaticRestart = false` to include
55795// instances only if they are not scheduled for automatic restarts. You
55796// can use filtering on nested fields to filter based on resource
55797// labels. To filter on multiple expressions, provide each separate
55798// expression within parentheses. For example: ```
55799// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
55800// ``` By default, each expression is an `AND` expression. However, you
55801// can include `AND` and `OR` expressions explicitly. For example: ```
55802// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
55803// AND (scheduling.automaticRestart = true) ```
55804func (c *BackendBucketsListCall) Filter(filter string) *BackendBucketsListCall {
55805	c.urlParams_.Set("filter", filter)
55806	return c
55807}
55808
55809// MaxResults sets the optional parameter "maxResults": The maximum
55810// number of results per page that should be returned. If the number of
55811// available results is larger than `maxResults`, Compute Engine returns
55812// a `nextPageToken` that can be used to get the next page of results in
55813// subsequent list requests. Acceptable values are `0` to `500`,
55814// inclusive. (Default: `500`)
55815func (c *BackendBucketsListCall) MaxResults(maxResults int64) *BackendBucketsListCall {
55816	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
55817	return c
55818}
55819
55820// OrderBy sets the optional parameter "orderBy": Sorts list results by
55821// a certain order. By default, results are returned in alphanumerical
55822// order based on the resource name. You can also sort results in
55823// descending order based on the creation timestamp using
55824// `orderBy="creationTimestamp desc". This sorts results based on the
55825// `creationTimestamp` field in reverse chronological order (newest
55826// result first). Use this to sort resources like operations so that the
55827// newest operation is returned first. Currently, only sorting by `name`
55828// or `creationTimestamp desc` is supported.
55829func (c *BackendBucketsListCall) OrderBy(orderBy string) *BackendBucketsListCall {
55830	c.urlParams_.Set("orderBy", orderBy)
55831	return c
55832}
55833
55834// PageToken sets the optional parameter "pageToken": Specifies a page
55835// token to use. Set `pageToken` to the `nextPageToken` returned by a
55836// previous list request to get the next page of results.
55837func (c *BackendBucketsListCall) PageToken(pageToken string) *BackendBucketsListCall {
55838	c.urlParams_.Set("pageToken", pageToken)
55839	return c
55840}
55841
55842// ReturnPartialSuccess sets the optional parameter
55843// "returnPartialSuccess": Opt-in for partial success behavior which
55844// provides partial results in case of failure. The default value is
55845// false.
55846func (c *BackendBucketsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *BackendBucketsListCall {
55847	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
55848	return c
55849}
55850
55851// Fields allows partial responses to be retrieved. See
55852// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55853// for more information.
55854func (c *BackendBucketsListCall) Fields(s ...googleapi.Field) *BackendBucketsListCall {
55855	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55856	return c
55857}
55858
55859// IfNoneMatch sets the optional parameter which makes the operation
55860// fail if the object's ETag matches the given value. This is useful for
55861// getting updates only after the object has changed since the last
55862// request. Use googleapi.IsNotModified to check whether the response
55863// error from Do is the result of In-None-Match.
55864func (c *BackendBucketsListCall) IfNoneMatch(entityTag string) *BackendBucketsListCall {
55865	c.ifNoneMatch_ = entityTag
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 *BackendBucketsListCall) Context(ctx context.Context) *BackendBucketsListCall {
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 *BackendBucketsListCall) Header() http.Header {
55880	if c.header_ == nil {
55881		c.header_ = make(http.Header)
55882	}
55883	return c.header_
55884}
55885
55886func (c *BackendBucketsListCall) doRequest(alt string) (*http.Response, error) {
55887	reqHeaders := make(http.Header)
55888	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
55889	for k, v := range c.header_ {
55890		reqHeaders[k] = v
55891	}
55892	reqHeaders.Set("User-Agent", c.s.userAgent())
55893	if c.ifNoneMatch_ != "" {
55894		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
55895	}
55896	var body io.Reader = nil
55897	c.urlParams_.Set("alt", alt)
55898	c.urlParams_.Set("prettyPrint", "false")
55899	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets")
55900	urls += "?" + c.urlParams_.Encode()
55901	req, err := http.NewRequest("GET", urls, body)
55902	if err != nil {
55903		return nil, err
55904	}
55905	req.Header = reqHeaders
55906	googleapi.Expand(req.URL, map[string]string{
55907		"project": c.project,
55908	})
55909	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55910}
55911
55912// Do executes the "compute.backendBuckets.list" call.
55913// Exactly one of *BackendBucketList or error will be non-nil. Any
55914// non-2xx status code is an error. Response headers are in either
55915// *BackendBucketList.ServerResponse.Header or (if a response was
55916// returned at all) in error.(*googleapi.Error).Header. Use
55917// googleapi.IsNotModified to check whether the returned error was
55918// because http.StatusNotModified was returned.
55919func (c *BackendBucketsListCall) Do(opts ...googleapi.CallOption) (*BackendBucketList, error) {
55920	gensupport.SetOptions(c.urlParams_, opts...)
55921	res, err := c.doRequest("json")
55922	if res != nil && res.StatusCode == http.StatusNotModified {
55923		if res.Body != nil {
55924			res.Body.Close()
55925		}
55926		return nil, &googleapi.Error{
55927			Code:   res.StatusCode,
55928			Header: res.Header,
55929		}
55930	}
55931	if err != nil {
55932		return nil, err
55933	}
55934	defer googleapi.CloseBody(res)
55935	if err := googleapi.CheckResponse(res); err != nil {
55936		return nil, err
55937	}
55938	ret := &BackendBucketList{
55939		ServerResponse: googleapi.ServerResponse{
55940			Header:         res.Header,
55941			HTTPStatusCode: res.StatusCode,
55942		},
55943	}
55944	target := &ret
55945	if err := gensupport.DecodeResponse(target, res); err != nil {
55946		return nil, err
55947	}
55948	return ret, nil
55949	// {
55950	//   "description": "Retrieves the list of BackendBucket resources available to the specified project.",
55951	//   "flatPath": "projects/{project}/global/backendBuckets",
55952	//   "httpMethod": "GET",
55953	//   "id": "compute.backendBuckets.list",
55954	//   "parameterOrder": [
55955	//     "project"
55956	//   ],
55957	//   "parameters": {
55958	//     "filter": {
55959	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
55960	//       "location": "query",
55961	//       "type": "string"
55962	//     },
55963	//     "maxResults": {
55964	//       "default": "500",
55965	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
55966	//       "format": "uint32",
55967	//       "location": "query",
55968	//       "minimum": "0",
55969	//       "type": "integer"
55970	//     },
55971	//     "orderBy": {
55972	//       "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.",
55973	//       "location": "query",
55974	//       "type": "string"
55975	//     },
55976	//     "pageToken": {
55977	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
55978	//       "location": "query",
55979	//       "type": "string"
55980	//     },
55981	//     "project": {
55982	//       "description": "Project ID for this request.",
55983	//       "location": "path",
55984	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55985	//       "required": true,
55986	//       "type": "string"
55987	//     },
55988	//     "returnPartialSuccess": {
55989	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
55990	//       "location": "query",
55991	//       "type": "boolean"
55992	//     }
55993	//   },
55994	//   "path": "projects/{project}/global/backendBuckets",
55995	//   "response": {
55996	//     "$ref": "BackendBucketList"
55997	//   },
55998	//   "scopes": [
55999	//     "https://www.googleapis.com/auth/cloud-platform",
56000	//     "https://www.googleapis.com/auth/compute",
56001	//     "https://www.googleapis.com/auth/compute.readonly"
56002	//   ]
56003	// }
56004
56005}
56006
56007// Pages invokes f for each page of results.
56008// A non-nil error returned from f will halt the iteration.
56009// The provided context supersedes any context provided to the Context method.
56010func (c *BackendBucketsListCall) Pages(ctx context.Context, f func(*BackendBucketList) error) error {
56011	c.ctx_ = ctx
56012	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
56013	for {
56014		x, err := c.Do()
56015		if err != nil {
56016			return err
56017		}
56018		if err := f(x); err != nil {
56019			return err
56020		}
56021		if x.NextPageToken == "" {
56022			return nil
56023		}
56024		c.PageToken(x.NextPageToken)
56025	}
56026}
56027
56028// method id "compute.backendBuckets.patch":
56029
56030type BackendBucketsPatchCall struct {
56031	s             *Service
56032	project       string
56033	backendBucket string
56034	backendbucket *BackendBucket
56035	urlParams_    gensupport.URLParams
56036	ctx_          context.Context
56037	header_       http.Header
56038}
56039
56040// Patch: Updates the specified BackendBucket resource with the data
56041// included in the request. This method supports PATCH semantics and
56042// uses the JSON merge patch format and processing rules.
56043//
56044// - backendBucket: Name of the BackendBucket resource to patch.
56045// - project: Project ID for this request.
56046func (r *BackendBucketsService) Patch(project string, backendBucket string, backendbucket *BackendBucket) *BackendBucketsPatchCall {
56047	c := &BackendBucketsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56048	c.project = project
56049	c.backendBucket = backendBucket
56050	c.backendbucket = backendbucket
56051	return c
56052}
56053
56054// RequestId sets the optional parameter "requestId": An optional
56055// request ID to identify requests. Specify a unique request ID so that
56056// if you must retry your request, the server will know to ignore the
56057// request if it has already been completed. For example, consider a
56058// situation where you make an initial request and the request times
56059// out. If you make the request again with the same request ID, the
56060// server can check if original operation with the same request ID was
56061// received, and if so, will ignore the second request. This prevents
56062// clients from accidentally creating duplicate commitments. The request
56063// ID must be a valid UUID with the exception that zero UUID is not
56064// supported ( 00000000-0000-0000-0000-000000000000).
56065func (c *BackendBucketsPatchCall) RequestId(requestId string) *BackendBucketsPatchCall {
56066	c.urlParams_.Set("requestId", requestId)
56067	return c
56068}
56069
56070// Fields allows partial responses to be retrieved. See
56071// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56072// for more information.
56073func (c *BackendBucketsPatchCall) Fields(s ...googleapi.Field) *BackendBucketsPatchCall {
56074	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56075	return c
56076}
56077
56078// Context sets the context to be used in this call's Do method. Any
56079// pending HTTP request will be aborted if the provided context is
56080// canceled.
56081func (c *BackendBucketsPatchCall) Context(ctx context.Context) *BackendBucketsPatchCall {
56082	c.ctx_ = ctx
56083	return c
56084}
56085
56086// Header returns an http.Header that can be modified by the caller to
56087// add HTTP headers to the request.
56088func (c *BackendBucketsPatchCall) Header() http.Header {
56089	if c.header_ == nil {
56090		c.header_ = make(http.Header)
56091	}
56092	return c.header_
56093}
56094
56095func (c *BackendBucketsPatchCall) doRequest(alt string) (*http.Response, error) {
56096	reqHeaders := make(http.Header)
56097	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
56098	for k, v := range c.header_ {
56099		reqHeaders[k] = v
56100	}
56101	reqHeaders.Set("User-Agent", c.s.userAgent())
56102	var body io.Reader = nil
56103	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
56104	if err != nil {
56105		return nil, err
56106	}
56107	reqHeaders.Set("Content-Type", "application/json")
56108	c.urlParams_.Set("alt", alt)
56109	c.urlParams_.Set("prettyPrint", "false")
56110	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}")
56111	urls += "?" + c.urlParams_.Encode()
56112	req, err := http.NewRequest("PATCH", urls, body)
56113	if err != nil {
56114		return nil, err
56115	}
56116	req.Header = reqHeaders
56117	googleapi.Expand(req.URL, map[string]string{
56118		"project":       c.project,
56119		"backendBucket": c.backendBucket,
56120	})
56121	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56122}
56123
56124// Do executes the "compute.backendBuckets.patch" call.
56125// Exactly one of *Operation or error will be non-nil. Any non-2xx
56126// status code is an error. Response headers are in either
56127// *Operation.ServerResponse.Header or (if a response was returned at
56128// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56129// to check whether the returned error was because
56130// http.StatusNotModified was returned.
56131func (c *BackendBucketsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56132	gensupport.SetOptions(c.urlParams_, opts...)
56133	res, err := c.doRequest("json")
56134	if res != nil && res.StatusCode == http.StatusNotModified {
56135		if res.Body != nil {
56136			res.Body.Close()
56137		}
56138		return nil, &googleapi.Error{
56139			Code:   res.StatusCode,
56140			Header: res.Header,
56141		}
56142	}
56143	if err != nil {
56144		return nil, err
56145	}
56146	defer googleapi.CloseBody(res)
56147	if err := googleapi.CheckResponse(res); err != nil {
56148		return nil, err
56149	}
56150	ret := &Operation{
56151		ServerResponse: googleapi.ServerResponse{
56152			Header:         res.Header,
56153			HTTPStatusCode: res.StatusCode,
56154		},
56155	}
56156	target := &ret
56157	if err := gensupport.DecodeResponse(target, res); err != nil {
56158		return nil, err
56159	}
56160	return ret, nil
56161	// {
56162	//   "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.",
56163	//   "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}",
56164	//   "httpMethod": "PATCH",
56165	//   "id": "compute.backendBuckets.patch",
56166	//   "parameterOrder": [
56167	//     "project",
56168	//     "backendBucket"
56169	//   ],
56170	//   "parameters": {
56171	//     "backendBucket": {
56172	//       "description": "Name of the BackendBucket resource to patch.",
56173	//       "location": "path",
56174	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56175	//       "required": true,
56176	//       "type": "string"
56177	//     },
56178	//     "project": {
56179	//       "description": "Project ID for this request.",
56180	//       "location": "path",
56181	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56182	//       "required": true,
56183	//       "type": "string"
56184	//     },
56185	//     "requestId": {
56186	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
56187	//       "location": "query",
56188	//       "type": "string"
56189	//     }
56190	//   },
56191	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}",
56192	//   "request": {
56193	//     "$ref": "BackendBucket"
56194	//   },
56195	//   "response": {
56196	//     "$ref": "Operation"
56197	//   },
56198	//   "scopes": [
56199	//     "https://www.googleapis.com/auth/cloud-platform",
56200	//     "https://www.googleapis.com/auth/compute"
56201	//   ]
56202	// }
56203
56204}
56205
56206// method id "compute.backendBuckets.update":
56207
56208type BackendBucketsUpdateCall struct {
56209	s             *Service
56210	project       string
56211	backendBucket string
56212	backendbucket *BackendBucket
56213	urlParams_    gensupport.URLParams
56214	ctx_          context.Context
56215	header_       http.Header
56216}
56217
56218// Update: Updates the specified BackendBucket resource with the data
56219// included in the request.
56220//
56221// - backendBucket: Name of the BackendBucket resource to update.
56222// - project: Project ID for this request.
56223func (r *BackendBucketsService) Update(project string, backendBucket string, backendbucket *BackendBucket) *BackendBucketsUpdateCall {
56224	c := &BackendBucketsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56225	c.project = project
56226	c.backendBucket = backendBucket
56227	c.backendbucket = backendbucket
56228	return c
56229}
56230
56231// RequestId sets the optional parameter "requestId": An optional
56232// request ID to identify requests. Specify a unique request ID so that
56233// if you must retry your request, the server will know to ignore the
56234// request if it has already been completed. For example, consider a
56235// situation where you make an initial request and the request times
56236// out. If you make the request again with the same request ID, the
56237// server can check if original operation with the same request ID was
56238// received, and if so, will ignore the second request. This prevents
56239// clients from accidentally creating duplicate commitments. The request
56240// ID must be a valid UUID with the exception that zero UUID is not
56241// supported ( 00000000-0000-0000-0000-000000000000).
56242func (c *BackendBucketsUpdateCall) RequestId(requestId string) *BackendBucketsUpdateCall {
56243	c.urlParams_.Set("requestId", requestId)
56244	return c
56245}
56246
56247// Fields allows partial responses to be retrieved. See
56248// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56249// for more information.
56250func (c *BackendBucketsUpdateCall) Fields(s ...googleapi.Field) *BackendBucketsUpdateCall {
56251	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56252	return c
56253}
56254
56255// Context sets the context to be used in this call's Do method. Any
56256// pending HTTP request will be aborted if the provided context is
56257// canceled.
56258func (c *BackendBucketsUpdateCall) Context(ctx context.Context) *BackendBucketsUpdateCall {
56259	c.ctx_ = ctx
56260	return c
56261}
56262
56263// Header returns an http.Header that can be modified by the caller to
56264// add HTTP headers to the request.
56265func (c *BackendBucketsUpdateCall) Header() http.Header {
56266	if c.header_ == nil {
56267		c.header_ = make(http.Header)
56268	}
56269	return c.header_
56270}
56271
56272func (c *BackendBucketsUpdateCall) doRequest(alt string) (*http.Response, error) {
56273	reqHeaders := make(http.Header)
56274	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
56275	for k, v := range c.header_ {
56276		reqHeaders[k] = v
56277	}
56278	reqHeaders.Set("User-Agent", c.s.userAgent())
56279	var body io.Reader = nil
56280	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
56281	if err != nil {
56282		return nil, err
56283	}
56284	reqHeaders.Set("Content-Type", "application/json")
56285	c.urlParams_.Set("alt", alt)
56286	c.urlParams_.Set("prettyPrint", "false")
56287	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}")
56288	urls += "?" + c.urlParams_.Encode()
56289	req, err := http.NewRequest("PUT", urls, body)
56290	if err != nil {
56291		return nil, err
56292	}
56293	req.Header = reqHeaders
56294	googleapi.Expand(req.URL, map[string]string{
56295		"project":       c.project,
56296		"backendBucket": c.backendBucket,
56297	})
56298	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56299}
56300
56301// Do executes the "compute.backendBuckets.update" call.
56302// Exactly one of *Operation or error will be non-nil. Any non-2xx
56303// status code is an error. Response headers are in either
56304// *Operation.ServerResponse.Header or (if a response was returned at
56305// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56306// to check whether the returned error was because
56307// http.StatusNotModified was returned.
56308func (c *BackendBucketsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56309	gensupport.SetOptions(c.urlParams_, opts...)
56310	res, err := c.doRequest("json")
56311	if res != nil && res.StatusCode == http.StatusNotModified {
56312		if res.Body != nil {
56313			res.Body.Close()
56314		}
56315		return nil, &googleapi.Error{
56316			Code:   res.StatusCode,
56317			Header: res.Header,
56318		}
56319	}
56320	if err != nil {
56321		return nil, err
56322	}
56323	defer googleapi.CloseBody(res)
56324	if err := googleapi.CheckResponse(res); err != nil {
56325		return nil, err
56326	}
56327	ret := &Operation{
56328		ServerResponse: googleapi.ServerResponse{
56329			Header:         res.Header,
56330			HTTPStatusCode: res.StatusCode,
56331		},
56332	}
56333	target := &ret
56334	if err := gensupport.DecodeResponse(target, res); err != nil {
56335		return nil, err
56336	}
56337	return ret, nil
56338	// {
56339	//   "description": "Updates the specified BackendBucket resource with the data included in the request.",
56340	//   "flatPath": "projects/{project}/global/backendBuckets/{backendBucket}",
56341	//   "httpMethod": "PUT",
56342	//   "id": "compute.backendBuckets.update",
56343	//   "parameterOrder": [
56344	//     "project",
56345	//     "backendBucket"
56346	//   ],
56347	//   "parameters": {
56348	//     "backendBucket": {
56349	//       "description": "Name of the BackendBucket resource to update.",
56350	//       "location": "path",
56351	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56352	//       "required": true,
56353	//       "type": "string"
56354	//     },
56355	//     "project": {
56356	//       "description": "Project ID for this request.",
56357	//       "location": "path",
56358	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56359	//       "required": true,
56360	//       "type": "string"
56361	//     },
56362	//     "requestId": {
56363	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
56364	//       "location": "query",
56365	//       "type": "string"
56366	//     }
56367	//   },
56368	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}",
56369	//   "request": {
56370	//     "$ref": "BackendBucket"
56371	//   },
56372	//   "response": {
56373	//     "$ref": "Operation"
56374	//   },
56375	//   "scopes": [
56376	//     "https://www.googleapis.com/auth/cloud-platform",
56377	//     "https://www.googleapis.com/auth/compute"
56378	//   ]
56379	// }
56380
56381}
56382
56383// method id "compute.backendServices.addSignedUrlKey":
56384
56385type BackendServicesAddSignedUrlKeyCall struct {
56386	s              *Service
56387	project        string
56388	backendService string
56389	signedurlkey   *SignedUrlKey
56390	urlParams_     gensupport.URLParams
56391	ctx_           context.Context
56392	header_        http.Header
56393}
56394
56395// AddSignedUrlKey: Adds a key for validating requests with signed URLs
56396// for this backend service.
56397//
56398// - backendService: Name of the BackendService resource to which the
56399//   Signed URL Key should be added. The name should conform to RFC1035.
56400// - project: Project ID for this request.
56401func (r *BackendServicesService) AddSignedUrlKey(project string, backendService string, signedurlkey *SignedUrlKey) *BackendServicesAddSignedUrlKeyCall {
56402	c := &BackendServicesAddSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56403	c.project = project
56404	c.backendService = backendService
56405	c.signedurlkey = signedurlkey
56406	return c
56407}
56408
56409// RequestId sets the optional parameter "requestId": An optional
56410// request ID to identify requests. Specify a unique request ID so that
56411// if you must retry your request, the server will know to ignore the
56412// request if it has already been completed. For example, consider a
56413// situation where you make an initial request and the request times
56414// out. If you make the request again with the same request ID, the
56415// server can check if original operation with the same request ID was
56416// received, and if so, will ignore the second request. This prevents
56417// clients from accidentally creating duplicate commitments. The request
56418// ID must be a valid UUID with the exception that zero UUID is not
56419// supported ( 00000000-0000-0000-0000-000000000000).
56420func (c *BackendServicesAddSignedUrlKeyCall) RequestId(requestId string) *BackendServicesAddSignedUrlKeyCall {
56421	c.urlParams_.Set("requestId", requestId)
56422	return c
56423}
56424
56425// Fields allows partial responses to be retrieved. See
56426// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56427// for more information.
56428func (c *BackendServicesAddSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendServicesAddSignedUrlKeyCall {
56429	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56430	return c
56431}
56432
56433// Context sets the context to be used in this call's Do method. Any
56434// pending HTTP request will be aborted if the provided context is
56435// canceled.
56436func (c *BackendServicesAddSignedUrlKeyCall) Context(ctx context.Context) *BackendServicesAddSignedUrlKeyCall {
56437	c.ctx_ = ctx
56438	return c
56439}
56440
56441// Header returns an http.Header that can be modified by the caller to
56442// add HTTP headers to the request.
56443func (c *BackendServicesAddSignedUrlKeyCall) Header() http.Header {
56444	if c.header_ == nil {
56445		c.header_ = make(http.Header)
56446	}
56447	return c.header_
56448}
56449
56450func (c *BackendServicesAddSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
56451	reqHeaders := make(http.Header)
56452	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
56453	for k, v := range c.header_ {
56454		reqHeaders[k] = v
56455	}
56456	reqHeaders.Set("User-Agent", c.s.userAgent())
56457	var body io.Reader = nil
56458	body, err := googleapi.WithoutDataWrapper.JSONReader(c.signedurlkey)
56459	if err != nil {
56460		return nil, err
56461	}
56462	reqHeaders.Set("Content-Type", "application/json")
56463	c.urlParams_.Set("alt", alt)
56464	c.urlParams_.Set("prettyPrint", "false")
56465	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}/addSignedUrlKey")
56466	urls += "?" + c.urlParams_.Encode()
56467	req, err := http.NewRequest("POST", urls, body)
56468	if err != nil {
56469		return nil, err
56470	}
56471	req.Header = reqHeaders
56472	googleapi.Expand(req.URL, map[string]string{
56473		"project":        c.project,
56474		"backendService": c.backendService,
56475	})
56476	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56477}
56478
56479// Do executes the "compute.backendServices.addSignedUrlKey" call.
56480// Exactly one of *Operation or error will be non-nil. Any non-2xx
56481// status code is an error. Response headers are in either
56482// *Operation.ServerResponse.Header or (if a response was returned at
56483// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56484// to check whether the returned error was because
56485// http.StatusNotModified was returned.
56486func (c *BackendServicesAddSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56487	gensupport.SetOptions(c.urlParams_, opts...)
56488	res, err := c.doRequest("json")
56489	if res != nil && res.StatusCode == http.StatusNotModified {
56490		if res.Body != nil {
56491			res.Body.Close()
56492		}
56493		return nil, &googleapi.Error{
56494			Code:   res.StatusCode,
56495			Header: res.Header,
56496		}
56497	}
56498	if err != nil {
56499		return nil, err
56500	}
56501	defer googleapi.CloseBody(res)
56502	if err := googleapi.CheckResponse(res); err != nil {
56503		return nil, err
56504	}
56505	ret := &Operation{
56506		ServerResponse: googleapi.ServerResponse{
56507			Header:         res.Header,
56508			HTTPStatusCode: res.StatusCode,
56509		},
56510	}
56511	target := &ret
56512	if err := gensupport.DecodeResponse(target, res); err != nil {
56513		return nil, err
56514	}
56515	return ret, nil
56516	// {
56517	//   "description": "Adds a key for validating requests with signed URLs for this backend service.",
56518	//   "flatPath": "projects/{project}/global/backendServices/{backendService}/addSignedUrlKey",
56519	//   "httpMethod": "POST",
56520	//   "id": "compute.backendServices.addSignedUrlKey",
56521	//   "parameterOrder": [
56522	//     "project",
56523	//     "backendService"
56524	//   ],
56525	//   "parameters": {
56526	//     "backendService": {
56527	//       "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
56528	//       "location": "path",
56529	//       "required": true,
56530	//       "type": "string"
56531	//     },
56532	//     "project": {
56533	//       "description": "Project ID for this request.",
56534	//       "location": "path",
56535	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56536	//       "required": true,
56537	//       "type": "string"
56538	//     },
56539	//     "requestId": {
56540	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
56541	//       "location": "query",
56542	//       "type": "string"
56543	//     }
56544	//   },
56545	//   "path": "projects/{project}/global/backendServices/{backendService}/addSignedUrlKey",
56546	//   "request": {
56547	//     "$ref": "SignedUrlKey"
56548	//   },
56549	//   "response": {
56550	//     "$ref": "Operation"
56551	//   },
56552	//   "scopes": [
56553	//     "https://www.googleapis.com/auth/cloud-platform",
56554	//     "https://www.googleapis.com/auth/compute"
56555	//   ]
56556	// }
56557
56558}
56559
56560// method id "compute.backendServices.aggregatedList":
56561
56562type BackendServicesAggregatedListCall struct {
56563	s            *Service
56564	project      string
56565	urlParams_   gensupport.URLParams
56566	ifNoneMatch_ string
56567	ctx_         context.Context
56568	header_      http.Header
56569}
56570
56571// AggregatedList: Retrieves the list of all BackendService resources,
56572// regional and global, available to the specified project.
56573//
56574// - project: Name of the project scoping this request.
56575func (r *BackendServicesService) AggregatedList(project string) *BackendServicesAggregatedListCall {
56576	c := &BackendServicesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56577	c.project = project
56578	return c
56579}
56580
56581// Filter sets the optional parameter "filter": A filter expression that
56582// filters resources listed in the response. The expression must specify
56583// the field name, a comparison operator, and the value that you want to
56584// use for filtering. The value must be a string, a number, or a
56585// boolean. The comparison operator must be either `=`, `!=`, `>`, or
56586// `<`. For example, if you are filtering Compute Engine instances, you
56587// can exclude instances named `example-instance` by specifying `name !=
56588// example-instance`. You can also filter nested fields. For example,
56589// you could specify `scheduling.automaticRestart = false` to include
56590// instances only if they are not scheduled for automatic restarts. You
56591// can use filtering on nested fields to filter based on resource
56592// labels. To filter on multiple expressions, provide each separate
56593// expression within parentheses. For example: ```
56594// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
56595// ``` By default, each expression is an `AND` expression. However, you
56596// can include `AND` and `OR` expressions explicitly. For example: ```
56597// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
56598// AND (scheduling.automaticRestart = true) ```
56599func (c *BackendServicesAggregatedListCall) Filter(filter string) *BackendServicesAggregatedListCall {
56600	c.urlParams_.Set("filter", filter)
56601	return c
56602}
56603
56604// IncludeAllScopes sets the optional parameter "includeAllScopes":
56605// Indicates whether every visible scope for each scope type (zone,
56606// region, global) should be included in the response. For new resource
56607// types added after this field, the flag has no effect as new resource
56608// types will always include every visible scope for each scope type in
56609// response. For resource types which predate this field, if this flag
56610// is omitted or false, only scopes of the scope types where the
56611// resource type is expected to be found will be included.
56612func (c *BackendServicesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *BackendServicesAggregatedListCall {
56613	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
56614	return c
56615}
56616
56617// MaxResults sets the optional parameter "maxResults": The maximum
56618// number of results per page that should be returned. If the number of
56619// available results is larger than `maxResults`, Compute Engine returns
56620// a `nextPageToken` that can be used to get the next page of results in
56621// subsequent list requests. Acceptable values are `0` to `500`,
56622// inclusive. (Default: `500`)
56623func (c *BackendServicesAggregatedListCall) MaxResults(maxResults int64) *BackendServicesAggregatedListCall {
56624	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
56625	return c
56626}
56627
56628// OrderBy sets the optional parameter "orderBy": Sorts list results by
56629// a certain order. By default, results are returned in alphanumerical
56630// order based on the resource name. You can also sort results in
56631// descending order based on the creation timestamp using
56632// `orderBy="creationTimestamp desc". This sorts results based on the
56633// `creationTimestamp` field in reverse chronological order (newest
56634// result first). Use this to sort resources like operations so that the
56635// newest operation is returned first. Currently, only sorting by `name`
56636// or `creationTimestamp desc` is supported.
56637func (c *BackendServicesAggregatedListCall) OrderBy(orderBy string) *BackendServicesAggregatedListCall {
56638	c.urlParams_.Set("orderBy", orderBy)
56639	return c
56640}
56641
56642// PageToken sets the optional parameter "pageToken": Specifies a page
56643// token to use. Set `pageToken` to the `nextPageToken` returned by a
56644// previous list request to get the next page of results.
56645func (c *BackendServicesAggregatedListCall) PageToken(pageToken string) *BackendServicesAggregatedListCall {
56646	c.urlParams_.Set("pageToken", pageToken)
56647	return c
56648}
56649
56650// ReturnPartialSuccess sets the optional parameter
56651// "returnPartialSuccess": Opt-in for partial success behavior which
56652// provides partial results in case of failure. The default value is
56653// false.
56654func (c *BackendServicesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *BackendServicesAggregatedListCall {
56655	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
56656	return c
56657}
56658
56659// Fields allows partial responses to be retrieved. See
56660// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56661// for more information.
56662func (c *BackendServicesAggregatedListCall) Fields(s ...googleapi.Field) *BackendServicesAggregatedListCall {
56663	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56664	return c
56665}
56666
56667// IfNoneMatch sets the optional parameter which makes the operation
56668// fail if the object's ETag matches the given value. This is useful for
56669// getting updates only after the object has changed since the last
56670// request. Use googleapi.IsNotModified to check whether the response
56671// error from Do is the result of In-None-Match.
56672func (c *BackendServicesAggregatedListCall) IfNoneMatch(entityTag string) *BackendServicesAggregatedListCall {
56673	c.ifNoneMatch_ = entityTag
56674	return c
56675}
56676
56677// Context sets the context to be used in this call's Do method. Any
56678// pending HTTP request will be aborted if the provided context is
56679// canceled.
56680func (c *BackendServicesAggregatedListCall) Context(ctx context.Context) *BackendServicesAggregatedListCall {
56681	c.ctx_ = ctx
56682	return c
56683}
56684
56685// Header returns an http.Header that can be modified by the caller to
56686// add HTTP headers to the request.
56687func (c *BackendServicesAggregatedListCall) Header() http.Header {
56688	if c.header_ == nil {
56689		c.header_ = make(http.Header)
56690	}
56691	return c.header_
56692}
56693
56694func (c *BackendServicesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
56695	reqHeaders := make(http.Header)
56696	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
56697	for k, v := range c.header_ {
56698		reqHeaders[k] = v
56699	}
56700	reqHeaders.Set("User-Agent", c.s.userAgent())
56701	if c.ifNoneMatch_ != "" {
56702		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
56703	}
56704	var body io.Reader = nil
56705	c.urlParams_.Set("alt", alt)
56706	c.urlParams_.Set("prettyPrint", "false")
56707	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/backendServices")
56708	urls += "?" + c.urlParams_.Encode()
56709	req, err := http.NewRequest("GET", urls, body)
56710	if err != nil {
56711		return nil, err
56712	}
56713	req.Header = reqHeaders
56714	googleapi.Expand(req.URL, map[string]string{
56715		"project": c.project,
56716	})
56717	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56718}
56719
56720// Do executes the "compute.backendServices.aggregatedList" call.
56721// Exactly one of *BackendServiceAggregatedList or error will be
56722// non-nil. Any non-2xx status code is an error. Response headers are in
56723// either *BackendServiceAggregatedList.ServerResponse.Header or (if a
56724// response was returned at all) in error.(*googleapi.Error).Header. Use
56725// googleapi.IsNotModified to check whether the returned error was
56726// because http.StatusNotModified was returned.
56727func (c *BackendServicesAggregatedListCall) Do(opts ...googleapi.CallOption) (*BackendServiceAggregatedList, error) {
56728	gensupport.SetOptions(c.urlParams_, opts...)
56729	res, err := c.doRequest("json")
56730	if res != nil && res.StatusCode == http.StatusNotModified {
56731		if res.Body != nil {
56732			res.Body.Close()
56733		}
56734		return nil, &googleapi.Error{
56735			Code:   res.StatusCode,
56736			Header: res.Header,
56737		}
56738	}
56739	if err != nil {
56740		return nil, err
56741	}
56742	defer googleapi.CloseBody(res)
56743	if err := googleapi.CheckResponse(res); err != nil {
56744		return nil, err
56745	}
56746	ret := &BackendServiceAggregatedList{
56747		ServerResponse: googleapi.ServerResponse{
56748			Header:         res.Header,
56749			HTTPStatusCode: res.StatusCode,
56750		},
56751	}
56752	target := &ret
56753	if err := gensupport.DecodeResponse(target, res); err != nil {
56754		return nil, err
56755	}
56756	return ret, nil
56757	// {
56758	//   "description": "Retrieves the list of all BackendService resources, regional and global, available to the specified project.",
56759	//   "flatPath": "projects/{project}/aggregated/backendServices",
56760	//   "httpMethod": "GET",
56761	//   "id": "compute.backendServices.aggregatedList",
56762	//   "parameterOrder": [
56763	//     "project"
56764	//   ],
56765	//   "parameters": {
56766	//     "filter": {
56767	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
56768	//       "location": "query",
56769	//       "type": "string"
56770	//     },
56771	//     "includeAllScopes": {
56772	//       "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.",
56773	//       "location": "query",
56774	//       "type": "boolean"
56775	//     },
56776	//     "maxResults": {
56777	//       "default": "500",
56778	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
56779	//       "format": "uint32",
56780	//       "location": "query",
56781	//       "minimum": "0",
56782	//       "type": "integer"
56783	//     },
56784	//     "orderBy": {
56785	//       "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.",
56786	//       "location": "query",
56787	//       "type": "string"
56788	//     },
56789	//     "pageToken": {
56790	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
56791	//       "location": "query",
56792	//       "type": "string"
56793	//     },
56794	//     "project": {
56795	//       "description": "Name of the project scoping this request.",
56796	//       "location": "path",
56797	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56798	//       "required": true,
56799	//       "type": "string"
56800	//     },
56801	//     "returnPartialSuccess": {
56802	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
56803	//       "location": "query",
56804	//       "type": "boolean"
56805	//     }
56806	//   },
56807	//   "path": "projects/{project}/aggregated/backendServices",
56808	//   "response": {
56809	//     "$ref": "BackendServiceAggregatedList"
56810	//   },
56811	//   "scopes": [
56812	//     "https://www.googleapis.com/auth/cloud-platform",
56813	//     "https://www.googleapis.com/auth/compute",
56814	//     "https://www.googleapis.com/auth/compute.readonly"
56815	//   ]
56816	// }
56817
56818}
56819
56820// Pages invokes f for each page of results.
56821// A non-nil error returned from f will halt the iteration.
56822// The provided context supersedes any context provided to the Context method.
56823func (c *BackendServicesAggregatedListCall) Pages(ctx context.Context, f func(*BackendServiceAggregatedList) error) error {
56824	c.ctx_ = ctx
56825	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
56826	for {
56827		x, err := c.Do()
56828		if err != nil {
56829			return err
56830		}
56831		if err := f(x); err != nil {
56832			return err
56833		}
56834		if x.NextPageToken == "" {
56835			return nil
56836		}
56837		c.PageToken(x.NextPageToken)
56838	}
56839}
56840
56841// method id "compute.backendServices.delete":
56842
56843type BackendServicesDeleteCall struct {
56844	s              *Service
56845	project        string
56846	backendService string
56847	urlParams_     gensupport.URLParams
56848	ctx_           context.Context
56849	header_        http.Header
56850}
56851
56852// Delete: Deletes the specified BackendService resource.
56853//
56854// - backendService: Name of the BackendService resource to delete.
56855// - project: Project ID for this request.
56856func (r *BackendServicesService) Delete(project string, backendService string) *BackendServicesDeleteCall {
56857	c := &BackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56858	c.project = project
56859	c.backendService = backendService
56860	return c
56861}
56862
56863// RequestId sets the optional parameter "requestId": An optional
56864// request ID to identify requests. Specify a unique request ID so that
56865// if you must retry your request, the server will know to ignore the
56866// request if it has already been completed. For example, consider a
56867// situation where you make an initial request and the request times
56868// out. If you make the request again with the same request ID, the
56869// server can check if original operation with the same request ID was
56870// received, and if so, will ignore the second request. This prevents
56871// clients from accidentally creating duplicate commitments. The request
56872// ID must be a valid UUID with the exception that zero UUID is not
56873// supported ( 00000000-0000-0000-0000-000000000000).
56874func (c *BackendServicesDeleteCall) RequestId(requestId string) *BackendServicesDeleteCall {
56875	c.urlParams_.Set("requestId", requestId)
56876	return c
56877}
56878
56879// Fields allows partial responses to be retrieved. See
56880// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56881// for more information.
56882func (c *BackendServicesDeleteCall) Fields(s ...googleapi.Field) *BackendServicesDeleteCall {
56883	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56884	return c
56885}
56886
56887// Context sets the context to be used in this call's Do method. Any
56888// pending HTTP request will be aborted if the provided context is
56889// canceled.
56890func (c *BackendServicesDeleteCall) Context(ctx context.Context) *BackendServicesDeleteCall {
56891	c.ctx_ = ctx
56892	return c
56893}
56894
56895// Header returns an http.Header that can be modified by the caller to
56896// add HTTP headers to the request.
56897func (c *BackendServicesDeleteCall) Header() http.Header {
56898	if c.header_ == nil {
56899		c.header_ = make(http.Header)
56900	}
56901	return c.header_
56902}
56903
56904func (c *BackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
56905	reqHeaders := make(http.Header)
56906	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
56907	for k, v := range c.header_ {
56908		reqHeaders[k] = v
56909	}
56910	reqHeaders.Set("User-Agent", c.s.userAgent())
56911	var body io.Reader = nil
56912	c.urlParams_.Set("alt", alt)
56913	c.urlParams_.Set("prettyPrint", "false")
56914	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}")
56915	urls += "?" + c.urlParams_.Encode()
56916	req, err := http.NewRequest("DELETE", urls, body)
56917	if err != nil {
56918		return nil, err
56919	}
56920	req.Header = reqHeaders
56921	googleapi.Expand(req.URL, map[string]string{
56922		"project":        c.project,
56923		"backendService": c.backendService,
56924	})
56925	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56926}
56927
56928// Do executes the "compute.backendServices.delete" call.
56929// Exactly one of *Operation or error will be non-nil. Any non-2xx
56930// status code is an error. Response headers are in either
56931// *Operation.ServerResponse.Header or (if a response was returned at
56932// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56933// to check whether the returned error was because
56934// http.StatusNotModified was returned.
56935func (c *BackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56936	gensupport.SetOptions(c.urlParams_, opts...)
56937	res, err := c.doRequest("json")
56938	if res != nil && res.StatusCode == http.StatusNotModified {
56939		if res.Body != nil {
56940			res.Body.Close()
56941		}
56942		return nil, &googleapi.Error{
56943			Code:   res.StatusCode,
56944			Header: res.Header,
56945		}
56946	}
56947	if err != nil {
56948		return nil, err
56949	}
56950	defer googleapi.CloseBody(res)
56951	if err := googleapi.CheckResponse(res); err != nil {
56952		return nil, err
56953	}
56954	ret := &Operation{
56955		ServerResponse: googleapi.ServerResponse{
56956			Header:         res.Header,
56957			HTTPStatusCode: res.StatusCode,
56958		},
56959	}
56960	target := &ret
56961	if err := gensupport.DecodeResponse(target, res); err != nil {
56962		return nil, err
56963	}
56964	return ret, nil
56965	// {
56966	//   "description": "Deletes the specified BackendService resource.",
56967	//   "flatPath": "projects/{project}/global/backendServices/{backendService}",
56968	//   "httpMethod": "DELETE",
56969	//   "id": "compute.backendServices.delete",
56970	//   "parameterOrder": [
56971	//     "project",
56972	//     "backendService"
56973	//   ],
56974	//   "parameters": {
56975	//     "backendService": {
56976	//       "description": "Name of the BackendService resource to delete.",
56977	//       "location": "path",
56978	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56979	//       "required": true,
56980	//       "type": "string"
56981	//     },
56982	//     "project": {
56983	//       "description": "Project ID for this request.",
56984	//       "location": "path",
56985	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56986	//       "required": true,
56987	//       "type": "string"
56988	//     },
56989	//     "requestId": {
56990	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
56991	//       "location": "query",
56992	//       "type": "string"
56993	//     }
56994	//   },
56995	//   "path": "projects/{project}/global/backendServices/{backendService}",
56996	//   "response": {
56997	//     "$ref": "Operation"
56998	//   },
56999	//   "scopes": [
57000	//     "https://www.googleapis.com/auth/cloud-platform",
57001	//     "https://www.googleapis.com/auth/compute"
57002	//   ]
57003	// }
57004
57005}
57006
57007// method id "compute.backendServices.deleteSignedUrlKey":
57008
57009type BackendServicesDeleteSignedUrlKeyCall struct {
57010	s              *Service
57011	project        string
57012	backendService string
57013	urlParams_     gensupport.URLParams
57014	ctx_           context.Context
57015	header_        http.Header
57016}
57017
57018// DeleteSignedUrlKey: Deletes a key for validating requests with signed
57019// URLs for this backend service.
57020//
57021// - backendService: Name of the BackendService resource to which the
57022//   Signed URL Key should be added. The name should conform to RFC1035.
57023// - keyName: The name of the Signed URL Key to delete.
57024// - project: Project ID for this request.
57025func (r *BackendServicesService) DeleteSignedUrlKey(project string, backendService string, keyName string) *BackendServicesDeleteSignedUrlKeyCall {
57026	c := &BackendServicesDeleteSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57027	c.project = project
57028	c.backendService = backendService
57029	c.urlParams_.Set("keyName", keyName)
57030	return c
57031}
57032
57033// RequestId sets the optional parameter "requestId": An optional
57034// request ID to identify requests. Specify a unique request ID so that
57035// if you must retry your request, the server will know to ignore the
57036// request if it has already been completed. For example, consider a
57037// situation where you make an initial request and the request times
57038// out. If you make the request again with the same request ID, the
57039// server can check if original operation with the same request ID was
57040// received, and if so, will ignore the second request. This prevents
57041// clients from accidentally creating duplicate commitments. The request
57042// ID must be a valid UUID with the exception that zero UUID is not
57043// supported ( 00000000-0000-0000-0000-000000000000).
57044func (c *BackendServicesDeleteSignedUrlKeyCall) RequestId(requestId string) *BackendServicesDeleteSignedUrlKeyCall {
57045	c.urlParams_.Set("requestId", requestId)
57046	return c
57047}
57048
57049// Fields allows partial responses to be retrieved. See
57050// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57051// for more information.
57052func (c *BackendServicesDeleteSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendServicesDeleteSignedUrlKeyCall {
57053	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57054	return c
57055}
57056
57057// Context sets the context to be used in this call's Do method. Any
57058// pending HTTP request will be aborted if the provided context is
57059// canceled.
57060func (c *BackendServicesDeleteSignedUrlKeyCall) Context(ctx context.Context) *BackendServicesDeleteSignedUrlKeyCall {
57061	c.ctx_ = ctx
57062	return c
57063}
57064
57065// Header returns an http.Header that can be modified by the caller to
57066// add HTTP headers to the request.
57067func (c *BackendServicesDeleteSignedUrlKeyCall) Header() http.Header {
57068	if c.header_ == nil {
57069		c.header_ = make(http.Header)
57070	}
57071	return c.header_
57072}
57073
57074func (c *BackendServicesDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
57075	reqHeaders := make(http.Header)
57076	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
57077	for k, v := range c.header_ {
57078		reqHeaders[k] = v
57079	}
57080	reqHeaders.Set("User-Agent", c.s.userAgent())
57081	var body io.Reader = nil
57082	c.urlParams_.Set("alt", alt)
57083	c.urlParams_.Set("prettyPrint", "false")
57084	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}/deleteSignedUrlKey")
57085	urls += "?" + c.urlParams_.Encode()
57086	req, err := http.NewRequest("POST", urls, body)
57087	if err != nil {
57088		return nil, err
57089	}
57090	req.Header = reqHeaders
57091	googleapi.Expand(req.URL, map[string]string{
57092		"project":        c.project,
57093		"backendService": c.backendService,
57094	})
57095	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57096}
57097
57098// Do executes the "compute.backendServices.deleteSignedUrlKey" call.
57099// Exactly one of *Operation or error will be non-nil. Any non-2xx
57100// status code is an error. Response headers are in either
57101// *Operation.ServerResponse.Header or (if a response was returned at
57102// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57103// to check whether the returned error was because
57104// http.StatusNotModified was returned.
57105func (c *BackendServicesDeleteSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57106	gensupport.SetOptions(c.urlParams_, opts...)
57107	res, err := c.doRequest("json")
57108	if res != nil && res.StatusCode == http.StatusNotModified {
57109		if res.Body != nil {
57110			res.Body.Close()
57111		}
57112		return nil, &googleapi.Error{
57113			Code:   res.StatusCode,
57114			Header: res.Header,
57115		}
57116	}
57117	if err != nil {
57118		return nil, err
57119	}
57120	defer googleapi.CloseBody(res)
57121	if err := googleapi.CheckResponse(res); err != nil {
57122		return nil, err
57123	}
57124	ret := &Operation{
57125		ServerResponse: googleapi.ServerResponse{
57126			Header:         res.Header,
57127			HTTPStatusCode: res.StatusCode,
57128		},
57129	}
57130	target := &ret
57131	if err := gensupport.DecodeResponse(target, res); err != nil {
57132		return nil, err
57133	}
57134	return ret, nil
57135	// {
57136	//   "description": "Deletes a key for validating requests with signed URLs for this backend service.",
57137	//   "flatPath": "projects/{project}/global/backendServices/{backendService}/deleteSignedUrlKey",
57138	//   "httpMethod": "POST",
57139	//   "id": "compute.backendServices.deleteSignedUrlKey",
57140	//   "parameterOrder": [
57141	//     "project",
57142	//     "backendService",
57143	//     "keyName"
57144	//   ],
57145	//   "parameters": {
57146	//     "backendService": {
57147	//       "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
57148	//       "location": "path",
57149	//       "required": true,
57150	//       "type": "string"
57151	//     },
57152	//     "keyName": {
57153	//       "description": "The name of the Signed URL Key to delete.",
57154	//       "location": "query",
57155	//       "required": true,
57156	//       "type": "string"
57157	//     },
57158	//     "project": {
57159	//       "description": "Project ID for this request.",
57160	//       "location": "path",
57161	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57162	//       "required": true,
57163	//       "type": "string"
57164	//     },
57165	//     "requestId": {
57166	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
57167	//       "location": "query",
57168	//       "type": "string"
57169	//     }
57170	//   },
57171	//   "path": "projects/{project}/global/backendServices/{backendService}/deleteSignedUrlKey",
57172	//   "response": {
57173	//     "$ref": "Operation"
57174	//   },
57175	//   "scopes": [
57176	//     "https://www.googleapis.com/auth/cloud-platform",
57177	//     "https://www.googleapis.com/auth/compute"
57178	//   ]
57179	// }
57180
57181}
57182
57183// method id "compute.backendServices.get":
57184
57185type BackendServicesGetCall struct {
57186	s              *Service
57187	project        string
57188	backendService string
57189	urlParams_     gensupport.URLParams
57190	ifNoneMatch_   string
57191	ctx_           context.Context
57192	header_        http.Header
57193}
57194
57195// Get: Returns the specified BackendService resource. Gets a list of
57196// available backend services.
57197//
57198// - backendService: Name of the BackendService resource to return.
57199// - project: Project ID for this request.
57200func (r *BackendServicesService) Get(project string, backendService string) *BackendServicesGetCall {
57201	c := &BackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57202	c.project = project
57203	c.backendService = backendService
57204	return c
57205}
57206
57207// Fields allows partial responses to be retrieved. See
57208// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57209// for more information.
57210func (c *BackendServicesGetCall) Fields(s ...googleapi.Field) *BackendServicesGetCall {
57211	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57212	return c
57213}
57214
57215// IfNoneMatch sets the optional parameter which makes the operation
57216// fail if the object's ETag matches the given value. This is useful for
57217// getting updates only after the object has changed since the last
57218// request. Use googleapi.IsNotModified to check whether the response
57219// error from Do is the result of In-None-Match.
57220func (c *BackendServicesGetCall) IfNoneMatch(entityTag string) *BackendServicesGetCall {
57221	c.ifNoneMatch_ = entityTag
57222	return c
57223}
57224
57225// Context sets the context to be used in this call's Do method. Any
57226// pending HTTP request will be aborted if the provided context is
57227// canceled.
57228func (c *BackendServicesGetCall) Context(ctx context.Context) *BackendServicesGetCall {
57229	c.ctx_ = ctx
57230	return c
57231}
57232
57233// Header returns an http.Header that can be modified by the caller to
57234// add HTTP headers to the request.
57235func (c *BackendServicesGetCall) Header() http.Header {
57236	if c.header_ == nil {
57237		c.header_ = make(http.Header)
57238	}
57239	return c.header_
57240}
57241
57242func (c *BackendServicesGetCall) doRequest(alt string) (*http.Response, error) {
57243	reqHeaders := make(http.Header)
57244	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
57245	for k, v := range c.header_ {
57246		reqHeaders[k] = v
57247	}
57248	reqHeaders.Set("User-Agent", c.s.userAgent())
57249	if c.ifNoneMatch_ != "" {
57250		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
57251	}
57252	var body io.Reader = nil
57253	c.urlParams_.Set("alt", alt)
57254	c.urlParams_.Set("prettyPrint", "false")
57255	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}")
57256	urls += "?" + c.urlParams_.Encode()
57257	req, err := http.NewRequest("GET", urls, body)
57258	if err != nil {
57259		return nil, err
57260	}
57261	req.Header = reqHeaders
57262	googleapi.Expand(req.URL, map[string]string{
57263		"project":        c.project,
57264		"backendService": c.backendService,
57265	})
57266	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57267}
57268
57269// Do executes the "compute.backendServices.get" call.
57270// Exactly one of *BackendService or error will be non-nil. Any non-2xx
57271// status code is an error. Response headers are in either
57272// *BackendService.ServerResponse.Header or (if a response was returned
57273// at all) in error.(*googleapi.Error).Header. Use
57274// googleapi.IsNotModified to check whether the returned error was
57275// because http.StatusNotModified was returned.
57276func (c *BackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) {
57277	gensupport.SetOptions(c.urlParams_, opts...)
57278	res, err := c.doRequest("json")
57279	if res != nil && res.StatusCode == http.StatusNotModified {
57280		if res.Body != nil {
57281			res.Body.Close()
57282		}
57283		return nil, &googleapi.Error{
57284			Code:   res.StatusCode,
57285			Header: res.Header,
57286		}
57287	}
57288	if err != nil {
57289		return nil, err
57290	}
57291	defer googleapi.CloseBody(res)
57292	if err := googleapi.CheckResponse(res); err != nil {
57293		return nil, err
57294	}
57295	ret := &BackendService{
57296		ServerResponse: googleapi.ServerResponse{
57297			Header:         res.Header,
57298			HTTPStatusCode: res.StatusCode,
57299		},
57300	}
57301	target := &ret
57302	if err := gensupport.DecodeResponse(target, res); err != nil {
57303		return nil, err
57304	}
57305	return ret, nil
57306	// {
57307	//   "description": "Returns the specified BackendService resource. Gets a list of available backend services.",
57308	//   "flatPath": "projects/{project}/global/backendServices/{backendService}",
57309	//   "httpMethod": "GET",
57310	//   "id": "compute.backendServices.get",
57311	//   "parameterOrder": [
57312	//     "project",
57313	//     "backendService"
57314	//   ],
57315	//   "parameters": {
57316	//     "backendService": {
57317	//       "description": "Name of the BackendService resource to return.",
57318	//       "location": "path",
57319	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57320	//       "required": true,
57321	//       "type": "string"
57322	//     },
57323	//     "project": {
57324	//       "description": "Project ID for this request.",
57325	//       "location": "path",
57326	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57327	//       "required": true,
57328	//       "type": "string"
57329	//     }
57330	//   },
57331	//   "path": "projects/{project}/global/backendServices/{backendService}",
57332	//   "response": {
57333	//     "$ref": "BackendService"
57334	//   },
57335	//   "scopes": [
57336	//     "https://www.googleapis.com/auth/cloud-platform",
57337	//     "https://www.googleapis.com/auth/compute",
57338	//     "https://www.googleapis.com/auth/compute.readonly"
57339	//   ]
57340	// }
57341
57342}
57343
57344// method id "compute.backendServices.getHealth":
57345
57346type BackendServicesGetHealthCall struct {
57347	s                      *Service
57348	project                string
57349	backendService         string
57350	resourcegroupreference *ResourceGroupReference
57351	urlParams_             gensupport.URLParams
57352	ctx_                   context.Context
57353	header_                http.Header
57354}
57355
57356// GetHealth: Gets the most recent health check results for this
57357// BackendService. Example request body: { "group":
57358// "/zones/us-east1-b/instanceGroups/lb-backend-example" }
57359//
57360// - backendService: Name of the BackendService resource to which the
57361//   queried instance belongs.
57362// - project: .
57363func (r *BackendServicesService) GetHealth(project string, backendService string, resourcegroupreference *ResourceGroupReference) *BackendServicesGetHealthCall {
57364	c := &BackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57365	c.project = project
57366	c.backendService = backendService
57367	c.resourcegroupreference = resourcegroupreference
57368	return c
57369}
57370
57371// Fields allows partial responses to be retrieved. See
57372// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57373// for more information.
57374func (c *BackendServicesGetHealthCall) Fields(s ...googleapi.Field) *BackendServicesGetHealthCall {
57375	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57376	return c
57377}
57378
57379// Context sets the context to be used in this call's Do method. Any
57380// pending HTTP request will be aborted if the provided context is
57381// canceled.
57382func (c *BackendServicesGetHealthCall) Context(ctx context.Context) *BackendServicesGetHealthCall {
57383	c.ctx_ = ctx
57384	return c
57385}
57386
57387// Header returns an http.Header that can be modified by the caller to
57388// add HTTP headers to the request.
57389func (c *BackendServicesGetHealthCall) Header() http.Header {
57390	if c.header_ == nil {
57391		c.header_ = make(http.Header)
57392	}
57393	return c.header_
57394}
57395
57396func (c *BackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) {
57397	reqHeaders := make(http.Header)
57398	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
57399	for k, v := range c.header_ {
57400		reqHeaders[k] = v
57401	}
57402	reqHeaders.Set("User-Agent", c.s.userAgent())
57403	var body io.Reader = nil
57404	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference)
57405	if err != nil {
57406		return nil, err
57407	}
57408	reqHeaders.Set("Content-Type", "application/json")
57409	c.urlParams_.Set("alt", alt)
57410	c.urlParams_.Set("prettyPrint", "false")
57411	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}/getHealth")
57412	urls += "?" + c.urlParams_.Encode()
57413	req, err := http.NewRequest("POST", urls, body)
57414	if err != nil {
57415		return nil, err
57416	}
57417	req.Header = reqHeaders
57418	googleapi.Expand(req.URL, map[string]string{
57419		"project":        c.project,
57420		"backendService": c.backendService,
57421	})
57422	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57423}
57424
57425// Do executes the "compute.backendServices.getHealth" call.
57426// Exactly one of *BackendServiceGroupHealth or error will be non-nil.
57427// Any non-2xx status code is an error. Response headers are in either
57428// *BackendServiceGroupHealth.ServerResponse.Header or (if a response
57429// was returned at all) in error.(*googleapi.Error).Header. Use
57430// googleapi.IsNotModified to check whether the returned error was
57431// because http.StatusNotModified was returned.
57432func (c *BackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) {
57433	gensupport.SetOptions(c.urlParams_, opts...)
57434	res, err := c.doRequest("json")
57435	if res != nil && res.StatusCode == http.StatusNotModified {
57436		if res.Body != nil {
57437			res.Body.Close()
57438		}
57439		return nil, &googleapi.Error{
57440			Code:   res.StatusCode,
57441			Header: res.Header,
57442		}
57443	}
57444	if err != nil {
57445		return nil, err
57446	}
57447	defer googleapi.CloseBody(res)
57448	if err := googleapi.CheckResponse(res); err != nil {
57449		return nil, err
57450	}
57451	ret := &BackendServiceGroupHealth{
57452		ServerResponse: googleapi.ServerResponse{
57453			Header:         res.Header,
57454			HTTPStatusCode: res.StatusCode,
57455		},
57456	}
57457	target := &ret
57458	if err := gensupport.DecodeResponse(target, res); err != nil {
57459		return nil, err
57460	}
57461	return ret, nil
57462	// {
57463	//   "description": "Gets the most recent health check results for this BackendService. Example request body: { \"group\": \"/zones/us-east1-b/instanceGroups/lb-backend-example\" }",
57464	//   "flatPath": "projects/{project}/global/backendServices/{backendService}/getHealth",
57465	//   "httpMethod": "POST",
57466	//   "id": "compute.backendServices.getHealth",
57467	//   "parameterOrder": [
57468	//     "project",
57469	//     "backendService"
57470	//   ],
57471	//   "parameters": {
57472	//     "backendService": {
57473	//       "description": "Name of the BackendService resource to which the queried instance belongs.",
57474	//       "location": "path",
57475	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57476	//       "required": true,
57477	//       "type": "string"
57478	//     },
57479	//     "project": {
57480	//       "location": "path",
57481	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57482	//       "required": true,
57483	//       "type": "string"
57484	//     }
57485	//   },
57486	//   "path": "projects/{project}/global/backendServices/{backendService}/getHealth",
57487	//   "request": {
57488	//     "$ref": "ResourceGroupReference"
57489	//   },
57490	//   "response": {
57491	//     "$ref": "BackendServiceGroupHealth"
57492	//   },
57493	//   "scopes": [
57494	//     "https://www.googleapis.com/auth/cloud-platform",
57495	//     "https://www.googleapis.com/auth/compute",
57496	//     "https://www.googleapis.com/auth/compute.readonly"
57497	//   ]
57498	// }
57499
57500}
57501
57502// method id "compute.backendServices.insert":
57503
57504type BackendServicesInsertCall struct {
57505	s              *Service
57506	project        string
57507	backendservice *BackendService
57508	urlParams_     gensupport.URLParams
57509	ctx_           context.Context
57510	header_        http.Header
57511}
57512
57513// Insert: Creates a BackendService resource in the specified project
57514// using the data included in the request. For more information, see
57515// Backend services overview .
57516//
57517// - project: Project ID for this request.
57518func (r *BackendServicesService) Insert(project string, backendservice *BackendService) *BackendServicesInsertCall {
57519	c := &BackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57520	c.project = project
57521	c.backendservice = backendservice
57522	return c
57523}
57524
57525// RequestId sets the optional parameter "requestId": An optional
57526// request ID to identify requests. Specify a unique request ID so that
57527// if you must retry your request, the server will know to ignore the
57528// request if it has already been completed. For example, consider a
57529// situation where you make an initial request and the request times
57530// out. If you make the request again with the same request ID, the
57531// server can check if original operation with the same request ID was
57532// received, and if so, will ignore the second request. This prevents
57533// clients from accidentally creating duplicate commitments. The request
57534// ID must be a valid UUID with the exception that zero UUID is not
57535// supported ( 00000000-0000-0000-0000-000000000000).
57536func (c *BackendServicesInsertCall) RequestId(requestId string) *BackendServicesInsertCall {
57537	c.urlParams_.Set("requestId", requestId)
57538	return c
57539}
57540
57541// Fields allows partial responses to be retrieved. See
57542// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57543// for more information.
57544func (c *BackendServicesInsertCall) Fields(s ...googleapi.Field) *BackendServicesInsertCall {
57545	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57546	return c
57547}
57548
57549// Context sets the context to be used in this call's Do method. Any
57550// pending HTTP request will be aborted if the provided context is
57551// canceled.
57552func (c *BackendServicesInsertCall) Context(ctx context.Context) *BackendServicesInsertCall {
57553	c.ctx_ = ctx
57554	return c
57555}
57556
57557// Header returns an http.Header that can be modified by the caller to
57558// add HTTP headers to the request.
57559func (c *BackendServicesInsertCall) Header() http.Header {
57560	if c.header_ == nil {
57561		c.header_ = make(http.Header)
57562	}
57563	return c.header_
57564}
57565
57566func (c *BackendServicesInsertCall) doRequest(alt string) (*http.Response, error) {
57567	reqHeaders := make(http.Header)
57568	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
57569	for k, v := range c.header_ {
57570		reqHeaders[k] = v
57571	}
57572	reqHeaders.Set("User-Agent", c.s.userAgent())
57573	var body io.Reader = nil
57574	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
57575	if err != nil {
57576		return nil, err
57577	}
57578	reqHeaders.Set("Content-Type", "application/json")
57579	c.urlParams_.Set("alt", alt)
57580	c.urlParams_.Set("prettyPrint", "false")
57581	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices")
57582	urls += "?" + c.urlParams_.Encode()
57583	req, err := http.NewRequest("POST", urls, body)
57584	if err != nil {
57585		return nil, err
57586	}
57587	req.Header = reqHeaders
57588	googleapi.Expand(req.URL, map[string]string{
57589		"project": c.project,
57590	})
57591	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57592}
57593
57594// Do executes the "compute.backendServices.insert" call.
57595// Exactly one of *Operation or error will be non-nil. Any non-2xx
57596// status code is an error. Response headers are in either
57597// *Operation.ServerResponse.Header or (if a response was returned at
57598// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57599// to check whether the returned error was because
57600// http.StatusNotModified was returned.
57601func (c *BackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57602	gensupport.SetOptions(c.urlParams_, opts...)
57603	res, err := c.doRequest("json")
57604	if res != nil && res.StatusCode == http.StatusNotModified {
57605		if res.Body != nil {
57606			res.Body.Close()
57607		}
57608		return nil, &googleapi.Error{
57609			Code:   res.StatusCode,
57610			Header: res.Header,
57611		}
57612	}
57613	if err != nil {
57614		return nil, err
57615	}
57616	defer googleapi.CloseBody(res)
57617	if err := googleapi.CheckResponse(res); err != nil {
57618		return nil, err
57619	}
57620	ret := &Operation{
57621		ServerResponse: googleapi.ServerResponse{
57622			Header:         res.Header,
57623			HTTPStatusCode: res.StatusCode,
57624		},
57625	}
57626	target := &ret
57627	if err := gensupport.DecodeResponse(target, res); err != nil {
57628		return nil, err
57629	}
57630	return ret, nil
57631	// {
57632	//   "description": "Creates a BackendService resource in the specified project using the data included in the request. For more information, see Backend services overview .",
57633	//   "flatPath": "projects/{project}/global/backendServices",
57634	//   "httpMethod": "POST",
57635	//   "id": "compute.backendServices.insert",
57636	//   "parameterOrder": [
57637	//     "project"
57638	//   ],
57639	//   "parameters": {
57640	//     "project": {
57641	//       "description": "Project ID for this request.",
57642	//       "location": "path",
57643	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57644	//       "required": true,
57645	//       "type": "string"
57646	//     },
57647	//     "requestId": {
57648	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
57649	//       "location": "query",
57650	//       "type": "string"
57651	//     }
57652	//   },
57653	//   "path": "projects/{project}/global/backendServices",
57654	//   "request": {
57655	//     "$ref": "BackendService"
57656	//   },
57657	//   "response": {
57658	//     "$ref": "Operation"
57659	//   },
57660	//   "scopes": [
57661	//     "https://www.googleapis.com/auth/cloud-platform",
57662	//     "https://www.googleapis.com/auth/compute"
57663	//   ]
57664	// }
57665
57666}
57667
57668// method id "compute.backendServices.list":
57669
57670type BackendServicesListCall struct {
57671	s            *Service
57672	project      string
57673	urlParams_   gensupport.URLParams
57674	ifNoneMatch_ string
57675	ctx_         context.Context
57676	header_      http.Header
57677}
57678
57679// List: Retrieves the list of BackendService resources available to the
57680// specified project.
57681//
57682// - project: Project ID for this request.
57683func (r *BackendServicesService) List(project string) *BackendServicesListCall {
57684	c := &BackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57685	c.project = project
57686	return c
57687}
57688
57689// Filter sets the optional parameter "filter": A filter expression that
57690// filters resources listed in the response. The expression must specify
57691// the field name, a comparison operator, and the value that you want to
57692// use for filtering. The value must be a string, a number, or a
57693// boolean. The comparison operator must be either `=`, `!=`, `>`, or
57694// `<`. For example, if you are filtering Compute Engine instances, you
57695// can exclude instances named `example-instance` by specifying `name !=
57696// example-instance`. You can also filter nested fields. For example,
57697// you could specify `scheduling.automaticRestart = false` to include
57698// instances only if they are not scheduled for automatic restarts. You
57699// can use filtering on nested fields to filter based on resource
57700// labels. To filter on multiple expressions, provide each separate
57701// expression within parentheses. For example: ```
57702// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
57703// ``` By default, each expression is an `AND` expression. However, you
57704// can include `AND` and `OR` expressions explicitly. For example: ```
57705// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
57706// AND (scheduling.automaticRestart = true) ```
57707func (c *BackendServicesListCall) Filter(filter string) *BackendServicesListCall {
57708	c.urlParams_.Set("filter", filter)
57709	return c
57710}
57711
57712// MaxResults sets the optional parameter "maxResults": The maximum
57713// number of results per page that should be returned. If the number of
57714// available results is larger than `maxResults`, Compute Engine returns
57715// a `nextPageToken` that can be used to get the next page of results in
57716// subsequent list requests. Acceptable values are `0` to `500`,
57717// inclusive. (Default: `500`)
57718func (c *BackendServicesListCall) MaxResults(maxResults int64) *BackendServicesListCall {
57719	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
57720	return c
57721}
57722
57723// OrderBy sets the optional parameter "orderBy": Sorts list results by
57724// a certain order. By default, results are returned in alphanumerical
57725// order based on the resource name. You can also sort results in
57726// descending order based on the creation timestamp using
57727// `orderBy="creationTimestamp desc". This sorts results based on the
57728// `creationTimestamp` field in reverse chronological order (newest
57729// result first). Use this to sort resources like operations so that the
57730// newest operation is returned first. Currently, only sorting by `name`
57731// or `creationTimestamp desc` is supported.
57732func (c *BackendServicesListCall) OrderBy(orderBy string) *BackendServicesListCall {
57733	c.urlParams_.Set("orderBy", orderBy)
57734	return c
57735}
57736
57737// PageToken sets the optional parameter "pageToken": Specifies a page
57738// token to use. Set `pageToken` to the `nextPageToken` returned by a
57739// previous list request to get the next page of results.
57740func (c *BackendServicesListCall) PageToken(pageToken string) *BackendServicesListCall {
57741	c.urlParams_.Set("pageToken", pageToken)
57742	return c
57743}
57744
57745// ReturnPartialSuccess sets the optional parameter
57746// "returnPartialSuccess": Opt-in for partial success behavior which
57747// provides partial results in case of failure. The default value is
57748// false.
57749func (c *BackendServicesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *BackendServicesListCall {
57750	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
57751	return c
57752}
57753
57754// Fields allows partial responses to be retrieved. See
57755// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57756// for more information.
57757func (c *BackendServicesListCall) Fields(s ...googleapi.Field) *BackendServicesListCall {
57758	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57759	return c
57760}
57761
57762// IfNoneMatch sets the optional parameter which makes the operation
57763// fail if the object's ETag matches the given value. This is useful for
57764// getting updates only after the object has changed since the last
57765// request. Use googleapi.IsNotModified to check whether the response
57766// error from Do is the result of In-None-Match.
57767func (c *BackendServicesListCall) IfNoneMatch(entityTag string) *BackendServicesListCall {
57768	c.ifNoneMatch_ = entityTag
57769	return c
57770}
57771
57772// Context sets the context to be used in this call's Do method. Any
57773// pending HTTP request will be aborted if the provided context is
57774// canceled.
57775func (c *BackendServicesListCall) Context(ctx context.Context) *BackendServicesListCall {
57776	c.ctx_ = ctx
57777	return c
57778}
57779
57780// Header returns an http.Header that can be modified by the caller to
57781// add HTTP headers to the request.
57782func (c *BackendServicesListCall) Header() http.Header {
57783	if c.header_ == nil {
57784		c.header_ = make(http.Header)
57785	}
57786	return c.header_
57787}
57788
57789func (c *BackendServicesListCall) doRequest(alt string) (*http.Response, error) {
57790	reqHeaders := make(http.Header)
57791	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
57792	for k, v := range c.header_ {
57793		reqHeaders[k] = v
57794	}
57795	reqHeaders.Set("User-Agent", c.s.userAgent())
57796	if c.ifNoneMatch_ != "" {
57797		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
57798	}
57799	var body io.Reader = nil
57800	c.urlParams_.Set("alt", alt)
57801	c.urlParams_.Set("prettyPrint", "false")
57802	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices")
57803	urls += "?" + c.urlParams_.Encode()
57804	req, err := http.NewRequest("GET", urls, body)
57805	if err != nil {
57806		return nil, err
57807	}
57808	req.Header = reqHeaders
57809	googleapi.Expand(req.URL, map[string]string{
57810		"project": c.project,
57811	})
57812	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57813}
57814
57815// Do executes the "compute.backendServices.list" call.
57816// Exactly one of *BackendServiceList or error will be non-nil. Any
57817// non-2xx status code is an error. Response headers are in either
57818// *BackendServiceList.ServerResponse.Header or (if a response was
57819// returned at all) in error.(*googleapi.Error).Header. Use
57820// googleapi.IsNotModified to check whether the returned error was
57821// because http.StatusNotModified was returned.
57822func (c *BackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, error) {
57823	gensupport.SetOptions(c.urlParams_, opts...)
57824	res, err := c.doRequest("json")
57825	if res != nil && res.StatusCode == http.StatusNotModified {
57826		if res.Body != nil {
57827			res.Body.Close()
57828		}
57829		return nil, &googleapi.Error{
57830			Code:   res.StatusCode,
57831			Header: res.Header,
57832		}
57833	}
57834	if err != nil {
57835		return nil, err
57836	}
57837	defer googleapi.CloseBody(res)
57838	if err := googleapi.CheckResponse(res); err != nil {
57839		return nil, err
57840	}
57841	ret := &BackendServiceList{
57842		ServerResponse: googleapi.ServerResponse{
57843			Header:         res.Header,
57844			HTTPStatusCode: res.StatusCode,
57845		},
57846	}
57847	target := &ret
57848	if err := gensupport.DecodeResponse(target, res); err != nil {
57849		return nil, err
57850	}
57851	return ret, nil
57852	// {
57853	//   "description": "Retrieves the list of BackendService resources available to the specified project.",
57854	//   "flatPath": "projects/{project}/global/backendServices",
57855	//   "httpMethod": "GET",
57856	//   "id": "compute.backendServices.list",
57857	//   "parameterOrder": [
57858	//     "project"
57859	//   ],
57860	//   "parameters": {
57861	//     "filter": {
57862	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
57863	//       "location": "query",
57864	//       "type": "string"
57865	//     },
57866	//     "maxResults": {
57867	//       "default": "500",
57868	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
57869	//       "format": "uint32",
57870	//       "location": "query",
57871	//       "minimum": "0",
57872	//       "type": "integer"
57873	//     },
57874	//     "orderBy": {
57875	//       "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.",
57876	//       "location": "query",
57877	//       "type": "string"
57878	//     },
57879	//     "pageToken": {
57880	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
57881	//       "location": "query",
57882	//       "type": "string"
57883	//     },
57884	//     "project": {
57885	//       "description": "Project ID for this request.",
57886	//       "location": "path",
57887	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57888	//       "required": true,
57889	//       "type": "string"
57890	//     },
57891	//     "returnPartialSuccess": {
57892	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
57893	//       "location": "query",
57894	//       "type": "boolean"
57895	//     }
57896	//   },
57897	//   "path": "projects/{project}/global/backendServices",
57898	//   "response": {
57899	//     "$ref": "BackendServiceList"
57900	//   },
57901	//   "scopes": [
57902	//     "https://www.googleapis.com/auth/cloud-platform",
57903	//     "https://www.googleapis.com/auth/compute",
57904	//     "https://www.googleapis.com/auth/compute.readonly"
57905	//   ]
57906	// }
57907
57908}
57909
57910// Pages invokes f for each page of results.
57911// A non-nil error returned from f will halt the iteration.
57912// The provided context supersedes any context provided to the Context method.
57913func (c *BackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error {
57914	c.ctx_ = ctx
57915	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
57916	for {
57917		x, err := c.Do()
57918		if err != nil {
57919			return err
57920		}
57921		if err := f(x); err != nil {
57922			return err
57923		}
57924		if x.NextPageToken == "" {
57925			return nil
57926		}
57927		c.PageToken(x.NextPageToken)
57928	}
57929}
57930
57931// method id "compute.backendServices.patch":
57932
57933type BackendServicesPatchCall struct {
57934	s              *Service
57935	project        string
57936	backendService string
57937	backendservice *BackendService
57938	urlParams_     gensupport.URLParams
57939	ctx_           context.Context
57940	header_        http.Header
57941}
57942
57943// Patch: Patches the specified BackendService resource with the data
57944// included in the request. For more information, see Backend services
57945// overview. This method supports PATCH semantics and uses the JSON
57946// merge patch format and processing rules.
57947//
57948// - backendService: Name of the BackendService resource to patch.
57949// - project: Project ID for this request.
57950func (r *BackendServicesService) Patch(project string, backendService string, backendservice *BackendService) *BackendServicesPatchCall {
57951	c := &BackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57952	c.project = project
57953	c.backendService = backendService
57954	c.backendservice = backendservice
57955	return c
57956}
57957
57958// RequestId sets the optional parameter "requestId": An optional
57959// request ID to identify requests. Specify a unique request ID so that
57960// if you must retry your request, the server will know to ignore the
57961// request if it has already been completed. For example, consider a
57962// situation where you make an initial request and the request times
57963// out. If you make the request again with the same request ID, the
57964// server can check if original operation with the same request ID was
57965// received, and if so, will ignore the second request. This prevents
57966// clients from accidentally creating duplicate commitments. The request
57967// ID must be a valid UUID with the exception that zero UUID is not
57968// supported ( 00000000-0000-0000-0000-000000000000).
57969func (c *BackendServicesPatchCall) RequestId(requestId string) *BackendServicesPatchCall {
57970	c.urlParams_.Set("requestId", requestId)
57971	return c
57972}
57973
57974// Fields allows partial responses to be retrieved. See
57975// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57976// for more information.
57977func (c *BackendServicesPatchCall) Fields(s ...googleapi.Field) *BackendServicesPatchCall {
57978	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57979	return c
57980}
57981
57982// Context sets the context to be used in this call's Do method. Any
57983// pending HTTP request will be aborted if the provided context is
57984// canceled.
57985func (c *BackendServicesPatchCall) Context(ctx context.Context) *BackendServicesPatchCall {
57986	c.ctx_ = ctx
57987	return c
57988}
57989
57990// Header returns an http.Header that can be modified by the caller to
57991// add HTTP headers to the request.
57992func (c *BackendServicesPatchCall) Header() http.Header {
57993	if c.header_ == nil {
57994		c.header_ = make(http.Header)
57995	}
57996	return c.header_
57997}
57998
57999func (c *BackendServicesPatchCall) doRequest(alt string) (*http.Response, error) {
58000	reqHeaders := make(http.Header)
58001	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
58002	for k, v := range c.header_ {
58003		reqHeaders[k] = v
58004	}
58005	reqHeaders.Set("User-Agent", c.s.userAgent())
58006	var body io.Reader = nil
58007	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
58008	if err != nil {
58009		return nil, err
58010	}
58011	reqHeaders.Set("Content-Type", "application/json")
58012	c.urlParams_.Set("alt", alt)
58013	c.urlParams_.Set("prettyPrint", "false")
58014	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}")
58015	urls += "?" + c.urlParams_.Encode()
58016	req, err := http.NewRequest("PATCH", urls, body)
58017	if err != nil {
58018		return nil, err
58019	}
58020	req.Header = reqHeaders
58021	googleapi.Expand(req.URL, map[string]string{
58022		"project":        c.project,
58023		"backendService": c.backendService,
58024	})
58025	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58026}
58027
58028// Do executes the "compute.backendServices.patch" call.
58029// Exactly one of *Operation or error will be non-nil. Any non-2xx
58030// status code is an error. Response headers are in either
58031// *Operation.ServerResponse.Header or (if a response was returned at
58032// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58033// to check whether the returned error was because
58034// http.StatusNotModified was returned.
58035func (c *BackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58036	gensupport.SetOptions(c.urlParams_, opts...)
58037	res, err := c.doRequest("json")
58038	if res != nil && res.StatusCode == http.StatusNotModified {
58039		if res.Body != nil {
58040			res.Body.Close()
58041		}
58042		return nil, &googleapi.Error{
58043			Code:   res.StatusCode,
58044			Header: res.Header,
58045		}
58046	}
58047	if err != nil {
58048		return nil, err
58049	}
58050	defer googleapi.CloseBody(res)
58051	if err := googleapi.CheckResponse(res); err != nil {
58052		return nil, err
58053	}
58054	ret := &Operation{
58055		ServerResponse: googleapi.ServerResponse{
58056			Header:         res.Header,
58057			HTTPStatusCode: res.StatusCode,
58058		},
58059	}
58060	target := &ret
58061	if err := gensupport.DecodeResponse(target, res); err != nil {
58062		return nil, err
58063	}
58064	return ret, nil
58065	// {
58066	//   "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.",
58067	//   "flatPath": "projects/{project}/global/backendServices/{backendService}",
58068	//   "httpMethod": "PATCH",
58069	//   "id": "compute.backendServices.patch",
58070	//   "parameterOrder": [
58071	//     "project",
58072	//     "backendService"
58073	//   ],
58074	//   "parameters": {
58075	//     "backendService": {
58076	//       "description": "Name of the BackendService resource to patch.",
58077	//       "location": "path",
58078	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58079	//       "required": true,
58080	//       "type": "string"
58081	//     },
58082	//     "project": {
58083	//       "description": "Project ID for this request.",
58084	//       "location": "path",
58085	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58086	//       "required": true,
58087	//       "type": "string"
58088	//     },
58089	//     "requestId": {
58090	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
58091	//       "location": "query",
58092	//       "type": "string"
58093	//     }
58094	//   },
58095	//   "path": "projects/{project}/global/backendServices/{backendService}",
58096	//   "request": {
58097	//     "$ref": "BackendService"
58098	//   },
58099	//   "response": {
58100	//     "$ref": "Operation"
58101	//   },
58102	//   "scopes": [
58103	//     "https://www.googleapis.com/auth/cloud-platform",
58104	//     "https://www.googleapis.com/auth/compute"
58105	//   ]
58106	// }
58107
58108}
58109
58110// method id "compute.backendServices.setSecurityPolicy":
58111
58112type BackendServicesSetSecurityPolicyCall struct {
58113	s                       *Service
58114	project                 string
58115	backendService          string
58116	securitypolicyreference *SecurityPolicyReference
58117	urlParams_              gensupport.URLParams
58118	ctx_                    context.Context
58119	header_                 http.Header
58120}
58121
58122// SetSecurityPolicy: Sets the Google Cloud Armor security policy for
58123// the specified backend service. For more information, see Google Cloud
58124// Armor Overview
58125//
58126// - backendService: Name of the BackendService resource to which the
58127//   security policy should be set. The name should conform to RFC1035.
58128// - project: Project ID for this request.
58129func (r *BackendServicesService) SetSecurityPolicy(project string, backendService string, securitypolicyreference *SecurityPolicyReference) *BackendServicesSetSecurityPolicyCall {
58130	c := &BackendServicesSetSecurityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58131	c.project = project
58132	c.backendService = backendService
58133	c.securitypolicyreference = securitypolicyreference
58134	return c
58135}
58136
58137// RequestId sets the optional parameter "requestId": An optional
58138// request ID to identify requests. Specify a unique request ID so that
58139// if you must retry your request, the server will know to ignore the
58140// request if it has already been completed. For example, consider a
58141// situation where you make an initial request and the request times
58142// out. If you make the request again with the same request ID, the
58143// server can check if original operation with the same request ID was
58144// received, and if so, will ignore the second request. This prevents
58145// clients from accidentally creating duplicate commitments. The request
58146// ID must be a valid UUID with the exception that zero UUID is not
58147// supported ( 00000000-0000-0000-0000-000000000000).
58148func (c *BackendServicesSetSecurityPolicyCall) RequestId(requestId string) *BackendServicesSetSecurityPolicyCall {
58149	c.urlParams_.Set("requestId", requestId)
58150	return c
58151}
58152
58153// Fields allows partial responses to be retrieved. See
58154// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58155// for more information.
58156func (c *BackendServicesSetSecurityPolicyCall) Fields(s ...googleapi.Field) *BackendServicesSetSecurityPolicyCall {
58157	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58158	return c
58159}
58160
58161// Context sets the context to be used in this call's Do method. Any
58162// pending HTTP request will be aborted if the provided context is
58163// canceled.
58164func (c *BackendServicesSetSecurityPolicyCall) Context(ctx context.Context) *BackendServicesSetSecurityPolicyCall {
58165	c.ctx_ = ctx
58166	return c
58167}
58168
58169// Header returns an http.Header that can be modified by the caller to
58170// add HTTP headers to the request.
58171func (c *BackendServicesSetSecurityPolicyCall) Header() http.Header {
58172	if c.header_ == nil {
58173		c.header_ = make(http.Header)
58174	}
58175	return c.header_
58176}
58177
58178func (c *BackendServicesSetSecurityPolicyCall) doRequest(alt string) (*http.Response, error) {
58179	reqHeaders := make(http.Header)
58180	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
58181	for k, v := range c.header_ {
58182		reqHeaders[k] = v
58183	}
58184	reqHeaders.Set("User-Agent", c.s.userAgent())
58185	var body io.Reader = nil
58186	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyreference)
58187	if err != nil {
58188		return nil, err
58189	}
58190	reqHeaders.Set("Content-Type", "application/json")
58191	c.urlParams_.Set("alt", alt)
58192	c.urlParams_.Set("prettyPrint", "false")
58193	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}/setSecurityPolicy")
58194	urls += "?" + c.urlParams_.Encode()
58195	req, err := http.NewRequest("POST", urls, body)
58196	if err != nil {
58197		return nil, err
58198	}
58199	req.Header = reqHeaders
58200	googleapi.Expand(req.URL, map[string]string{
58201		"project":        c.project,
58202		"backendService": c.backendService,
58203	})
58204	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58205}
58206
58207// Do executes the "compute.backendServices.setSecurityPolicy" call.
58208// Exactly one of *Operation or error will be non-nil. Any non-2xx
58209// status code is an error. Response headers are in either
58210// *Operation.ServerResponse.Header or (if a response was returned at
58211// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58212// to check whether the returned error was because
58213// http.StatusNotModified was returned.
58214func (c *BackendServicesSetSecurityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58215	gensupport.SetOptions(c.urlParams_, opts...)
58216	res, err := c.doRequest("json")
58217	if res != nil && res.StatusCode == http.StatusNotModified {
58218		if res.Body != nil {
58219			res.Body.Close()
58220		}
58221		return nil, &googleapi.Error{
58222			Code:   res.StatusCode,
58223			Header: res.Header,
58224		}
58225	}
58226	if err != nil {
58227		return nil, err
58228	}
58229	defer googleapi.CloseBody(res)
58230	if err := googleapi.CheckResponse(res); err != nil {
58231		return nil, err
58232	}
58233	ret := &Operation{
58234		ServerResponse: googleapi.ServerResponse{
58235			Header:         res.Header,
58236			HTTPStatusCode: res.StatusCode,
58237		},
58238	}
58239	target := &ret
58240	if err := gensupport.DecodeResponse(target, res); err != nil {
58241		return nil, err
58242	}
58243	return ret, nil
58244	// {
58245	//   "description": "Sets the Google Cloud Armor security policy for the specified backend service. For more information, see Google Cloud Armor Overview",
58246	//   "flatPath": "projects/{project}/global/backendServices/{backendService}/setSecurityPolicy",
58247	//   "httpMethod": "POST",
58248	//   "id": "compute.backendServices.setSecurityPolicy",
58249	//   "parameterOrder": [
58250	//     "project",
58251	//     "backendService"
58252	//   ],
58253	//   "parameters": {
58254	//     "backendService": {
58255	//       "description": "Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035.",
58256	//       "location": "path",
58257	//       "required": true,
58258	//       "type": "string"
58259	//     },
58260	//     "project": {
58261	//       "description": "Project ID for this request.",
58262	//       "location": "path",
58263	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58264	//       "required": true,
58265	//       "type": "string"
58266	//     },
58267	//     "requestId": {
58268	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
58269	//       "location": "query",
58270	//       "type": "string"
58271	//     }
58272	//   },
58273	//   "path": "projects/{project}/global/backendServices/{backendService}/setSecurityPolicy",
58274	//   "request": {
58275	//     "$ref": "SecurityPolicyReference"
58276	//   },
58277	//   "response": {
58278	//     "$ref": "Operation"
58279	//   },
58280	//   "scopes": [
58281	//     "https://www.googleapis.com/auth/cloud-platform",
58282	//     "https://www.googleapis.com/auth/compute"
58283	//   ]
58284	// }
58285
58286}
58287
58288// method id "compute.backendServices.update":
58289
58290type BackendServicesUpdateCall struct {
58291	s              *Service
58292	project        string
58293	backendService string
58294	backendservice *BackendService
58295	urlParams_     gensupport.URLParams
58296	ctx_           context.Context
58297	header_        http.Header
58298}
58299
58300// Update: Updates the specified BackendService resource with the data
58301// included in the request. For more information, see Backend services
58302// overview.
58303//
58304// - backendService: Name of the BackendService resource to update.
58305// - project: Project ID for this request.
58306func (r *BackendServicesService) Update(project string, backendService string, backendservice *BackendService) *BackendServicesUpdateCall {
58307	c := &BackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58308	c.project = project
58309	c.backendService = backendService
58310	c.backendservice = backendservice
58311	return c
58312}
58313
58314// RequestId sets the optional parameter "requestId": An optional
58315// request ID to identify requests. Specify a unique request ID so that
58316// if you must retry your request, the server will know to ignore the
58317// request if it has already been completed. For example, consider a
58318// situation where you make an initial request and the request times
58319// out. If you make the request again with the same request ID, the
58320// server can check if original operation with the same request ID was
58321// received, and if so, will ignore the second request. This prevents
58322// clients from accidentally creating duplicate commitments. The request
58323// ID must be a valid UUID with the exception that zero UUID is not
58324// supported ( 00000000-0000-0000-0000-000000000000).
58325func (c *BackendServicesUpdateCall) RequestId(requestId string) *BackendServicesUpdateCall {
58326	c.urlParams_.Set("requestId", requestId)
58327	return c
58328}
58329
58330// Fields allows partial responses to be retrieved. See
58331// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58332// for more information.
58333func (c *BackendServicesUpdateCall) Fields(s ...googleapi.Field) *BackendServicesUpdateCall {
58334	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58335	return c
58336}
58337
58338// Context sets the context to be used in this call's Do method. Any
58339// pending HTTP request will be aborted if the provided context is
58340// canceled.
58341func (c *BackendServicesUpdateCall) Context(ctx context.Context) *BackendServicesUpdateCall {
58342	c.ctx_ = ctx
58343	return c
58344}
58345
58346// Header returns an http.Header that can be modified by the caller to
58347// add HTTP headers to the request.
58348func (c *BackendServicesUpdateCall) Header() http.Header {
58349	if c.header_ == nil {
58350		c.header_ = make(http.Header)
58351	}
58352	return c.header_
58353}
58354
58355func (c *BackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) {
58356	reqHeaders := make(http.Header)
58357	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
58358	for k, v := range c.header_ {
58359		reqHeaders[k] = v
58360	}
58361	reqHeaders.Set("User-Agent", c.s.userAgent())
58362	var body io.Reader = nil
58363	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
58364	if err != nil {
58365		return nil, err
58366	}
58367	reqHeaders.Set("Content-Type", "application/json")
58368	c.urlParams_.Set("alt", alt)
58369	c.urlParams_.Set("prettyPrint", "false")
58370	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}")
58371	urls += "?" + c.urlParams_.Encode()
58372	req, err := http.NewRequest("PUT", urls, body)
58373	if err != nil {
58374		return nil, err
58375	}
58376	req.Header = reqHeaders
58377	googleapi.Expand(req.URL, map[string]string{
58378		"project":        c.project,
58379		"backendService": c.backendService,
58380	})
58381	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58382}
58383
58384// Do executes the "compute.backendServices.update" call.
58385// Exactly one of *Operation or error will be non-nil. Any non-2xx
58386// status code is an error. Response headers are in either
58387// *Operation.ServerResponse.Header or (if a response was returned at
58388// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58389// to check whether the returned error was because
58390// http.StatusNotModified was returned.
58391func (c *BackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58392	gensupport.SetOptions(c.urlParams_, opts...)
58393	res, err := c.doRequest("json")
58394	if res != nil && res.StatusCode == http.StatusNotModified {
58395		if res.Body != nil {
58396			res.Body.Close()
58397		}
58398		return nil, &googleapi.Error{
58399			Code:   res.StatusCode,
58400			Header: res.Header,
58401		}
58402	}
58403	if err != nil {
58404		return nil, err
58405	}
58406	defer googleapi.CloseBody(res)
58407	if err := googleapi.CheckResponse(res); err != nil {
58408		return nil, err
58409	}
58410	ret := &Operation{
58411		ServerResponse: googleapi.ServerResponse{
58412			Header:         res.Header,
58413			HTTPStatusCode: res.StatusCode,
58414		},
58415	}
58416	target := &ret
58417	if err := gensupport.DecodeResponse(target, res); err != nil {
58418		return nil, err
58419	}
58420	return ret, nil
58421	// {
58422	//   "description": "Updates the specified BackendService resource with the data included in the request. For more information, see Backend services overview.",
58423	//   "flatPath": "projects/{project}/global/backendServices/{backendService}",
58424	//   "httpMethod": "PUT",
58425	//   "id": "compute.backendServices.update",
58426	//   "parameterOrder": [
58427	//     "project",
58428	//     "backendService"
58429	//   ],
58430	//   "parameters": {
58431	//     "backendService": {
58432	//       "description": "Name of the BackendService resource to update.",
58433	//       "location": "path",
58434	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58435	//       "required": true,
58436	//       "type": "string"
58437	//     },
58438	//     "project": {
58439	//       "description": "Project ID for this request.",
58440	//       "location": "path",
58441	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58442	//       "required": true,
58443	//       "type": "string"
58444	//     },
58445	//     "requestId": {
58446	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
58447	//       "location": "query",
58448	//       "type": "string"
58449	//     }
58450	//   },
58451	//   "path": "projects/{project}/global/backendServices/{backendService}",
58452	//   "request": {
58453	//     "$ref": "BackendService"
58454	//   },
58455	//   "response": {
58456	//     "$ref": "Operation"
58457	//   },
58458	//   "scopes": [
58459	//     "https://www.googleapis.com/auth/cloud-platform",
58460	//     "https://www.googleapis.com/auth/compute"
58461	//   ]
58462	// }
58463
58464}
58465
58466// method id "compute.diskTypes.aggregatedList":
58467
58468type DiskTypesAggregatedListCall struct {
58469	s            *Service
58470	project      string
58471	urlParams_   gensupport.URLParams
58472	ifNoneMatch_ string
58473	ctx_         context.Context
58474	header_      http.Header
58475}
58476
58477// AggregatedList: Retrieves an aggregated list of disk types.
58478//
58479// - project: Project ID for this request.
58480func (r *DiskTypesService) AggregatedList(project string) *DiskTypesAggregatedListCall {
58481	c := &DiskTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58482	c.project = project
58483	return c
58484}
58485
58486// Filter sets the optional parameter "filter": A filter expression that
58487// filters resources listed in the response. The expression must specify
58488// the field name, a comparison operator, and the value that you want to
58489// use for filtering. The value must be a string, a number, or a
58490// boolean. The comparison operator must be either `=`, `!=`, `>`, or
58491// `<`. For example, if you are filtering Compute Engine instances, you
58492// can exclude instances named `example-instance` by specifying `name !=
58493// example-instance`. You can also filter nested fields. For example,
58494// you could specify `scheduling.automaticRestart = false` to include
58495// instances only if they are not scheduled for automatic restarts. You
58496// can use filtering on nested fields to filter based on resource
58497// labels. To filter on multiple expressions, provide each separate
58498// expression within parentheses. For example: ```
58499// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
58500// ``` By default, each expression is an `AND` expression. However, you
58501// can include `AND` and `OR` expressions explicitly. For example: ```
58502// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
58503// AND (scheduling.automaticRestart = true) ```
58504func (c *DiskTypesAggregatedListCall) Filter(filter string) *DiskTypesAggregatedListCall {
58505	c.urlParams_.Set("filter", filter)
58506	return c
58507}
58508
58509// IncludeAllScopes sets the optional parameter "includeAllScopes":
58510// Indicates whether every visible scope for each scope type (zone,
58511// region, global) should be included in the response. For new resource
58512// types added after this field, the flag has no effect as new resource
58513// types will always include every visible scope for each scope type in
58514// response. For resource types which predate this field, if this flag
58515// is omitted or false, only scopes of the scope types where the
58516// resource type is expected to be found will be included.
58517func (c *DiskTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *DiskTypesAggregatedListCall {
58518	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
58519	return c
58520}
58521
58522// MaxResults sets the optional parameter "maxResults": The maximum
58523// number of results per page that should be returned. If the number of
58524// available results is larger than `maxResults`, Compute Engine returns
58525// a `nextPageToken` that can be used to get the next page of results in
58526// subsequent list requests. Acceptable values are `0` to `500`,
58527// inclusive. (Default: `500`)
58528func (c *DiskTypesAggregatedListCall) MaxResults(maxResults int64) *DiskTypesAggregatedListCall {
58529	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
58530	return c
58531}
58532
58533// OrderBy sets the optional parameter "orderBy": Sorts list results by
58534// a certain order. By default, results are returned in alphanumerical
58535// order based on the resource name. You can also sort results in
58536// descending order based on the creation timestamp using
58537// `orderBy="creationTimestamp desc". This sorts results based on the
58538// `creationTimestamp` field in reverse chronological order (newest
58539// result first). Use this to sort resources like operations so that the
58540// newest operation is returned first. Currently, only sorting by `name`
58541// or `creationTimestamp desc` is supported.
58542func (c *DiskTypesAggregatedListCall) OrderBy(orderBy string) *DiskTypesAggregatedListCall {
58543	c.urlParams_.Set("orderBy", orderBy)
58544	return c
58545}
58546
58547// PageToken sets the optional parameter "pageToken": Specifies a page
58548// token to use. Set `pageToken` to the `nextPageToken` returned by a
58549// previous list request to get the next page of results.
58550func (c *DiskTypesAggregatedListCall) PageToken(pageToken string) *DiskTypesAggregatedListCall {
58551	c.urlParams_.Set("pageToken", pageToken)
58552	return c
58553}
58554
58555// ReturnPartialSuccess sets the optional parameter
58556// "returnPartialSuccess": Opt-in for partial success behavior which
58557// provides partial results in case of failure. The default value is
58558// false.
58559func (c *DiskTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DiskTypesAggregatedListCall {
58560	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
58561	return c
58562}
58563
58564// Fields allows partial responses to be retrieved. See
58565// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58566// for more information.
58567func (c *DiskTypesAggregatedListCall) Fields(s ...googleapi.Field) *DiskTypesAggregatedListCall {
58568	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58569	return c
58570}
58571
58572// IfNoneMatch sets the optional parameter which makes the operation
58573// fail if the object's ETag matches the given value. This is useful for
58574// getting updates only after the object has changed since the last
58575// request. Use googleapi.IsNotModified to check whether the response
58576// error from Do is the result of In-None-Match.
58577func (c *DiskTypesAggregatedListCall) IfNoneMatch(entityTag string) *DiskTypesAggregatedListCall {
58578	c.ifNoneMatch_ = entityTag
58579	return c
58580}
58581
58582// Context sets the context to be used in this call's Do method. Any
58583// pending HTTP request will be aborted if the provided context is
58584// canceled.
58585func (c *DiskTypesAggregatedListCall) Context(ctx context.Context) *DiskTypesAggregatedListCall {
58586	c.ctx_ = ctx
58587	return c
58588}
58589
58590// Header returns an http.Header that can be modified by the caller to
58591// add HTTP headers to the request.
58592func (c *DiskTypesAggregatedListCall) Header() http.Header {
58593	if c.header_ == nil {
58594		c.header_ = make(http.Header)
58595	}
58596	return c.header_
58597}
58598
58599func (c *DiskTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
58600	reqHeaders := make(http.Header)
58601	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
58602	for k, v := range c.header_ {
58603		reqHeaders[k] = v
58604	}
58605	reqHeaders.Set("User-Agent", c.s.userAgent())
58606	if c.ifNoneMatch_ != "" {
58607		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
58608	}
58609	var body io.Reader = nil
58610	c.urlParams_.Set("alt", alt)
58611	c.urlParams_.Set("prettyPrint", "false")
58612	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/diskTypes")
58613	urls += "?" + c.urlParams_.Encode()
58614	req, err := http.NewRequest("GET", urls, body)
58615	if err != nil {
58616		return nil, err
58617	}
58618	req.Header = reqHeaders
58619	googleapi.Expand(req.URL, map[string]string{
58620		"project": c.project,
58621	})
58622	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58623}
58624
58625// Do executes the "compute.diskTypes.aggregatedList" call.
58626// Exactly one of *DiskTypeAggregatedList or error will be non-nil. Any
58627// non-2xx status code is an error. Response headers are in either
58628// *DiskTypeAggregatedList.ServerResponse.Header or (if a response was
58629// returned at all) in error.(*googleapi.Error).Header. Use
58630// googleapi.IsNotModified to check whether the returned error was
58631// because http.StatusNotModified was returned.
58632func (c *DiskTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskTypeAggregatedList, error) {
58633	gensupport.SetOptions(c.urlParams_, opts...)
58634	res, err := c.doRequest("json")
58635	if res != nil && res.StatusCode == http.StatusNotModified {
58636		if res.Body != nil {
58637			res.Body.Close()
58638		}
58639		return nil, &googleapi.Error{
58640			Code:   res.StatusCode,
58641			Header: res.Header,
58642		}
58643	}
58644	if err != nil {
58645		return nil, err
58646	}
58647	defer googleapi.CloseBody(res)
58648	if err := googleapi.CheckResponse(res); err != nil {
58649		return nil, err
58650	}
58651	ret := &DiskTypeAggregatedList{
58652		ServerResponse: googleapi.ServerResponse{
58653			Header:         res.Header,
58654			HTTPStatusCode: res.StatusCode,
58655		},
58656	}
58657	target := &ret
58658	if err := gensupport.DecodeResponse(target, res); err != nil {
58659		return nil, err
58660	}
58661	return ret, nil
58662	// {
58663	//   "description": "Retrieves an aggregated list of disk types.",
58664	//   "flatPath": "projects/{project}/aggregated/diskTypes",
58665	//   "httpMethod": "GET",
58666	//   "id": "compute.diskTypes.aggregatedList",
58667	//   "parameterOrder": [
58668	//     "project"
58669	//   ],
58670	//   "parameters": {
58671	//     "filter": {
58672	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
58673	//       "location": "query",
58674	//       "type": "string"
58675	//     },
58676	//     "includeAllScopes": {
58677	//       "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.",
58678	//       "location": "query",
58679	//       "type": "boolean"
58680	//     },
58681	//     "maxResults": {
58682	//       "default": "500",
58683	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
58684	//       "format": "uint32",
58685	//       "location": "query",
58686	//       "minimum": "0",
58687	//       "type": "integer"
58688	//     },
58689	//     "orderBy": {
58690	//       "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.",
58691	//       "location": "query",
58692	//       "type": "string"
58693	//     },
58694	//     "pageToken": {
58695	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
58696	//       "location": "query",
58697	//       "type": "string"
58698	//     },
58699	//     "project": {
58700	//       "description": "Project ID for this request.",
58701	//       "location": "path",
58702	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58703	//       "required": true,
58704	//       "type": "string"
58705	//     },
58706	//     "returnPartialSuccess": {
58707	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
58708	//       "location": "query",
58709	//       "type": "boolean"
58710	//     }
58711	//   },
58712	//   "path": "projects/{project}/aggregated/diskTypes",
58713	//   "response": {
58714	//     "$ref": "DiskTypeAggregatedList"
58715	//   },
58716	//   "scopes": [
58717	//     "https://www.googleapis.com/auth/cloud-platform",
58718	//     "https://www.googleapis.com/auth/compute",
58719	//     "https://www.googleapis.com/auth/compute.readonly"
58720	//   ]
58721	// }
58722
58723}
58724
58725// Pages invokes f for each page of results.
58726// A non-nil error returned from f will halt the iteration.
58727// The provided context supersedes any context provided to the Context method.
58728func (c *DiskTypesAggregatedListCall) Pages(ctx context.Context, f func(*DiskTypeAggregatedList) error) error {
58729	c.ctx_ = ctx
58730	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
58731	for {
58732		x, err := c.Do()
58733		if err != nil {
58734			return err
58735		}
58736		if err := f(x); err != nil {
58737			return err
58738		}
58739		if x.NextPageToken == "" {
58740			return nil
58741		}
58742		c.PageToken(x.NextPageToken)
58743	}
58744}
58745
58746// method id "compute.diskTypes.get":
58747
58748type DiskTypesGetCall struct {
58749	s            *Service
58750	project      string
58751	zone         string
58752	diskType     string
58753	urlParams_   gensupport.URLParams
58754	ifNoneMatch_ string
58755	ctx_         context.Context
58756	header_      http.Header
58757}
58758
58759// Get: Returns the specified disk type. Gets a list of available disk
58760// types by making a list() request.
58761//
58762// - diskType: Name of the disk type to return.
58763// - project: Project ID for this request.
58764// - zone: The name of the zone for this request.
58765func (r *DiskTypesService) Get(project string, zone string, diskType string) *DiskTypesGetCall {
58766	c := &DiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58767	c.project = project
58768	c.zone = zone
58769	c.diskType = diskType
58770	return c
58771}
58772
58773// Fields allows partial responses to be retrieved. See
58774// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58775// for more information.
58776func (c *DiskTypesGetCall) Fields(s ...googleapi.Field) *DiskTypesGetCall {
58777	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58778	return c
58779}
58780
58781// IfNoneMatch sets the optional parameter which makes the operation
58782// fail if the object's ETag matches the given value. This is useful for
58783// getting updates only after the object has changed since the last
58784// request. Use googleapi.IsNotModified to check whether the response
58785// error from Do is the result of In-None-Match.
58786func (c *DiskTypesGetCall) IfNoneMatch(entityTag string) *DiskTypesGetCall {
58787	c.ifNoneMatch_ = entityTag
58788	return c
58789}
58790
58791// Context sets the context to be used in this call's Do method. Any
58792// pending HTTP request will be aborted if the provided context is
58793// canceled.
58794func (c *DiskTypesGetCall) Context(ctx context.Context) *DiskTypesGetCall {
58795	c.ctx_ = ctx
58796	return c
58797}
58798
58799// Header returns an http.Header that can be modified by the caller to
58800// add HTTP headers to the request.
58801func (c *DiskTypesGetCall) Header() http.Header {
58802	if c.header_ == nil {
58803		c.header_ = make(http.Header)
58804	}
58805	return c.header_
58806}
58807
58808func (c *DiskTypesGetCall) doRequest(alt string) (*http.Response, error) {
58809	reqHeaders := make(http.Header)
58810	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
58811	for k, v := range c.header_ {
58812		reqHeaders[k] = v
58813	}
58814	reqHeaders.Set("User-Agent", c.s.userAgent())
58815	if c.ifNoneMatch_ != "" {
58816		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
58817	}
58818	var body io.Reader = nil
58819	c.urlParams_.Set("alt", alt)
58820	c.urlParams_.Set("prettyPrint", "false")
58821	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/diskTypes/{diskType}")
58822	urls += "?" + c.urlParams_.Encode()
58823	req, err := http.NewRequest("GET", urls, body)
58824	if err != nil {
58825		return nil, err
58826	}
58827	req.Header = reqHeaders
58828	googleapi.Expand(req.URL, map[string]string{
58829		"project":  c.project,
58830		"zone":     c.zone,
58831		"diskType": c.diskType,
58832	})
58833	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58834}
58835
58836// Do executes the "compute.diskTypes.get" call.
58837// Exactly one of *DiskType or error will be non-nil. Any non-2xx status
58838// code is an error. Response headers are in either
58839// *DiskType.ServerResponse.Header or (if a response was returned at
58840// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58841// to check whether the returned error was because
58842// http.StatusNotModified was returned.
58843func (c *DiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) {
58844	gensupport.SetOptions(c.urlParams_, opts...)
58845	res, err := c.doRequest("json")
58846	if res != nil && res.StatusCode == http.StatusNotModified {
58847		if res.Body != nil {
58848			res.Body.Close()
58849		}
58850		return nil, &googleapi.Error{
58851			Code:   res.StatusCode,
58852			Header: res.Header,
58853		}
58854	}
58855	if err != nil {
58856		return nil, err
58857	}
58858	defer googleapi.CloseBody(res)
58859	if err := googleapi.CheckResponse(res); err != nil {
58860		return nil, err
58861	}
58862	ret := &DiskType{
58863		ServerResponse: googleapi.ServerResponse{
58864			Header:         res.Header,
58865			HTTPStatusCode: res.StatusCode,
58866		},
58867	}
58868	target := &ret
58869	if err := gensupport.DecodeResponse(target, res); err != nil {
58870		return nil, err
58871	}
58872	return ret, nil
58873	// {
58874	//   "description": "Returns the specified disk type. Gets a list of available disk types by making a list() request.",
58875	//   "flatPath": "projects/{project}/zones/{zone}/diskTypes/{diskType}",
58876	//   "httpMethod": "GET",
58877	//   "id": "compute.diskTypes.get",
58878	//   "parameterOrder": [
58879	//     "project",
58880	//     "zone",
58881	//     "diskType"
58882	//   ],
58883	//   "parameters": {
58884	//     "diskType": {
58885	//       "description": "Name of the disk type to return.",
58886	//       "location": "path",
58887	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58888	//       "required": true,
58889	//       "type": "string"
58890	//     },
58891	//     "project": {
58892	//       "description": "Project ID for this request.",
58893	//       "location": "path",
58894	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58895	//       "required": true,
58896	//       "type": "string"
58897	//     },
58898	//     "zone": {
58899	//       "description": "The name of the zone for this request.",
58900	//       "location": "path",
58901	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58902	//       "required": true,
58903	//       "type": "string"
58904	//     }
58905	//   },
58906	//   "path": "projects/{project}/zones/{zone}/diskTypes/{diskType}",
58907	//   "response": {
58908	//     "$ref": "DiskType"
58909	//   },
58910	//   "scopes": [
58911	//     "https://www.googleapis.com/auth/cloud-platform",
58912	//     "https://www.googleapis.com/auth/compute",
58913	//     "https://www.googleapis.com/auth/compute.readonly"
58914	//   ]
58915	// }
58916
58917}
58918
58919// method id "compute.diskTypes.list":
58920
58921type DiskTypesListCall struct {
58922	s            *Service
58923	project      string
58924	zone         string
58925	urlParams_   gensupport.URLParams
58926	ifNoneMatch_ string
58927	ctx_         context.Context
58928	header_      http.Header
58929}
58930
58931// List: Retrieves a list of disk types available to the specified
58932// project.
58933//
58934// - project: Project ID for this request.
58935// - zone: The name of the zone for this request.
58936func (r *DiskTypesService) List(project string, zone string) *DiskTypesListCall {
58937	c := &DiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58938	c.project = project
58939	c.zone = zone
58940	return c
58941}
58942
58943// Filter sets the optional parameter "filter": A filter expression that
58944// filters resources listed in the response. The expression must specify
58945// the field name, a comparison operator, and the value that you want to
58946// use for filtering. The value must be a string, a number, or a
58947// boolean. The comparison operator must be either `=`, `!=`, `>`, or
58948// `<`. For example, if you are filtering Compute Engine instances, you
58949// can exclude instances named `example-instance` by specifying `name !=
58950// example-instance`. You can also filter nested fields. For example,
58951// you could specify `scheduling.automaticRestart = false` to include
58952// instances only if they are not scheduled for automatic restarts. You
58953// can use filtering on nested fields to filter based on resource
58954// labels. To filter on multiple expressions, provide each separate
58955// expression within parentheses. For example: ```
58956// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
58957// ``` By default, each expression is an `AND` expression. However, you
58958// can include `AND` and `OR` expressions explicitly. For example: ```
58959// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
58960// AND (scheduling.automaticRestart = true) ```
58961func (c *DiskTypesListCall) Filter(filter string) *DiskTypesListCall {
58962	c.urlParams_.Set("filter", filter)
58963	return c
58964}
58965
58966// MaxResults sets the optional parameter "maxResults": The maximum
58967// number of results per page that should be returned. If the number of
58968// available results is larger than `maxResults`, Compute Engine returns
58969// a `nextPageToken` that can be used to get the next page of results in
58970// subsequent list requests. Acceptable values are `0` to `500`,
58971// inclusive. (Default: `500`)
58972func (c *DiskTypesListCall) MaxResults(maxResults int64) *DiskTypesListCall {
58973	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
58974	return c
58975}
58976
58977// OrderBy sets the optional parameter "orderBy": Sorts list results by
58978// a certain order. By default, results are returned in alphanumerical
58979// order based on the resource name. You can also sort results in
58980// descending order based on the creation timestamp using
58981// `orderBy="creationTimestamp desc". This sorts results based on the
58982// `creationTimestamp` field in reverse chronological order (newest
58983// result first). Use this to sort resources like operations so that the
58984// newest operation is returned first. Currently, only sorting by `name`
58985// or `creationTimestamp desc` is supported.
58986func (c *DiskTypesListCall) OrderBy(orderBy string) *DiskTypesListCall {
58987	c.urlParams_.Set("orderBy", orderBy)
58988	return c
58989}
58990
58991// PageToken sets the optional parameter "pageToken": Specifies a page
58992// token to use. Set `pageToken` to the `nextPageToken` returned by a
58993// previous list request to get the next page of results.
58994func (c *DiskTypesListCall) PageToken(pageToken string) *DiskTypesListCall {
58995	c.urlParams_.Set("pageToken", pageToken)
58996	return c
58997}
58998
58999// ReturnPartialSuccess sets the optional parameter
59000// "returnPartialSuccess": Opt-in for partial success behavior which
59001// provides partial results in case of failure. The default value is
59002// false.
59003func (c *DiskTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DiskTypesListCall {
59004	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
59005	return c
59006}
59007
59008// Fields allows partial responses to be retrieved. See
59009// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59010// for more information.
59011func (c *DiskTypesListCall) Fields(s ...googleapi.Field) *DiskTypesListCall {
59012	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59013	return c
59014}
59015
59016// IfNoneMatch sets the optional parameter which makes the operation
59017// fail if the object's ETag matches the given value. This is useful for
59018// getting updates only after the object has changed since the last
59019// request. Use googleapi.IsNotModified to check whether the response
59020// error from Do is the result of In-None-Match.
59021func (c *DiskTypesListCall) IfNoneMatch(entityTag string) *DiskTypesListCall {
59022	c.ifNoneMatch_ = entityTag
59023	return c
59024}
59025
59026// Context sets the context to be used in this call's Do method. Any
59027// pending HTTP request will be aborted if the provided context is
59028// canceled.
59029func (c *DiskTypesListCall) Context(ctx context.Context) *DiskTypesListCall {
59030	c.ctx_ = ctx
59031	return c
59032}
59033
59034// Header returns an http.Header that can be modified by the caller to
59035// add HTTP headers to the request.
59036func (c *DiskTypesListCall) Header() http.Header {
59037	if c.header_ == nil {
59038		c.header_ = make(http.Header)
59039	}
59040	return c.header_
59041}
59042
59043func (c *DiskTypesListCall) doRequest(alt string) (*http.Response, error) {
59044	reqHeaders := make(http.Header)
59045	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
59046	for k, v := range c.header_ {
59047		reqHeaders[k] = v
59048	}
59049	reqHeaders.Set("User-Agent", c.s.userAgent())
59050	if c.ifNoneMatch_ != "" {
59051		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
59052	}
59053	var body io.Reader = nil
59054	c.urlParams_.Set("alt", alt)
59055	c.urlParams_.Set("prettyPrint", "false")
59056	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/diskTypes")
59057	urls += "?" + c.urlParams_.Encode()
59058	req, err := http.NewRequest("GET", urls, body)
59059	if err != nil {
59060		return nil, err
59061	}
59062	req.Header = reqHeaders
59063	googleapi.Expand(req.URL, map[string]string{
59064		"project": c.project,
59065		"zone":    c.zone,
59066	})
59067	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59068}
59069
59070// Do executes the "compute.diskTypes.list" call.
59071// Exactly one of *DiskTypeList or error will be non-nil. Any non-2xx
59072// status code is an error. Response headers are in either
59073// *DiskTypeList.ServerResponse.Header or (if a response was returned at
59074// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59075// to check whether the returned error was because
59076// http.StatusNotModified was returned.
59077func (c *DiskTypesListCall) Do(opts ...googleapi.CallOption) (*DiskTypeList, error) {
59078	gensupport.SetOptions(c.urlParams_, opts...)
59079	res, err := c.doRequest("json")
59080	if res != nil && res.StatusCode == http.StatusNotModified {
59081		if res.Body != nil {
59082			res.Body.Close()
59083		}
59084		return nil, &googleapi.Error{
59085			Code:   res.StatusCode,
59086			Header: res.Header,
59087		}
59088	}
59089	if err != nil {
59090		return nil, err
59091	}
59092	defer googleapi.CloseBody(res)
59093	if err := googleapi.CheckResponse(res); err != nil {
59094		return nil, err
59095	}
59096	ret := &DiskTypeList{
59097		ServerResponse: googleapi.ServerResponse{
59098			Header:         res.Header,
59099			HTTPStatusCode: res.StatusCode,
59100		},
59101	}
59102	target := &ret
59103	if err := gensupport.DecodeResponse(target, res); err != nil {
59104		return nil, err
59105	}
59106	return ret, nil
59107	// {
59108	//   "description": "Retrieves a list of disk types available to the specified project.",
59109	//   "flatPath": "projects/{project}/zones/{zone}/diskTypes",
59110	//   "httpMethod": "GET",
59111	//   "id": "compute.diskTypes.list",
59112	//   "parameterOrder": [
59113	//     "project",
59114	//     "zone"
59115	//   ],
59116	//   "parameters": {
59117	//     "filter": {
59118	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
59119	//       "location": "query",
59120	//       "type": "string"
59121	//     },
59122	//     "maxResults": {
59123	//       "default": "500",
59124	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
59125	//       "format": "uint32",
59126	//       "location": "query",
59127	//       "minimum": "0",
59128	//       "type": "integer"
59129	//     },
59130	//     "orderBy": {
59131	//       "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.",
59132	//       "location": "query",
59133	//       "type": "string"
59134	//     },
59135	//     "pageToken": {
59136	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
59137	//       "location": "query",
59138	//       "type": "string"
59139	//     },
59140	//     "project": {
59141	//       "description": "Project ID for this request.",
59142	//       "location": "path",
59143	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59144	//       "required": true,
59145	//       "type": "string"
59146	//     },
59147	//     "returnPartialSuccess": {
59148	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
59149	//       "location": "query",
59150	//       "type": "boolean"
59151	//     },
59152	//     "zone": {
59153	//       "description": "The name of the zone for this request.",
59154	//       "location": "path",
59155	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59156	//       "required": true,
59157	//       "type": "string"
59158	//     }
59159	//   },
59160	//   "path": "projects/{project}/zones/{zone}/diskTypes",
59161	//   "response": {
59162	//     "$ref": "DiskTypeList"
59163	//   },
59164	//   "scopes": [
59165	//     "https://www.googleapis.com/auth/cloud-platform",
59166	//     "https://www.googleapis.com/auth/compute",
59167	//     "https://www.googleapis.com/auth/compute.readonly"
59168	//   ]
59169	// }
59170
59171}
59172
59173// Pages invokes f for each page of results.
59174// A non-nil error returned from f will halt the iteration.
59175// The provided context supersedes any context provided to the Context method.
59176func (c *DiskTypesListCall) Pages(ctx context.Context, f func(*DiskTypeList) error) error {
59177	c.ctx_ = ctx
59178	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
59179	for {
59180		x, err := c.Do()
59181		if err != nil {
59182			return err
59183		}
59184		if err := f(x); err != nil {
59185			return err
59186		}
59187		if x.NextPageToken == "" {
59188			return nil
59189		}
59190		c.PageToken(x.NextPageToken)
59191	}
59192}
59193
59194// method id "compute.disks.addResourcePolicies":
59195
59196type DisksAddResourcePoliciesCall struct {
59197	s                               *Service
59198	project                         string
59199	zone                            string
59200	disk                            string
59201	disksaddresourcepoliciesrequest *DisksAddResourcePoliciesRequest
59202	urlParams_                      gensupport.URLParams
59203	ctx_                            context.Context
59204	header_                         http.Header
59205}
59206
59207// AddResourcePolicies: Adds existing resource policies to a disk. You
59208// can only add one policy which will be applied to this disk for
59209// scheduling snapshot creation.
59210//
59211// - disk: The disk name for this request.
59212// - project: Project ID for this request.
59213// - zone: The name of the zone for this request.
59214func (r *DisksService) AddResourcePolicies(project string, zone string, disk string, disksaddresourcepoliciesrequest *DisksAddResourcePoliciesRequest) *DisksAddResourcePoliciesCall {
59215	c := &DisksAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59216	c.project = project
59217	c.zone = zone
59218	c.disk = disk
59219	c.disksaddresourcepoliciesrequest = disksaddresourcepoliciesrequest
59220	return c
59221}
59222
59223// RequestId sets the optional parameter "requestId": An optional
59224// request ID to identify requests. Specify a unique request ID so that
59225// if you must retry your request, the server will know to ignore the
59226// request if it has already been completed. For example, consider a
59227// situation where you make an initial request and the request times
59228// out. If you make the request again with the same request ID, the
59229// server can check if original operation with the same request ID was
59230// received, and if so, will ignore the second request. This prevents
59231// clients from accidentally creating duplicate commitments. The request
59232// ID must be a valid UUID with the exception that zero UUID is not
59233// supported ( 00000000-0000-0000-0000-000000000000).
59234func (c *DisksAddResourcePoliciesCall) RequestId(requestId string) *DisksAddResourcePoliciesCall {
59235	c.urlParams_.Set("requestId", requestId)
59236	return c
59237}
59238
59239// Fields allows partial responses to be retrieved. See
59240// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59241// for more information.
59242func (c *DisksAddResourcePoliciesCall) Fields(s ...googleapi.Field) *DisksAddResourcePoliciesCall {
59243	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59244	return c
59245}
59246
59247// Context sets the context to be used in this call's Do method. Any
59248// pending HTTP request will be aborted if the provided context is
59249// canceled.
59250func (c *DisksAddResourcePoliciesCall) Context(ctx context.Context) *DisksAddResourcePoliciesCall {
59251	c.ctx_ = ctx
59252	return c
59253}
59254
59255// Header returns an http.Header that can be modified by the caller to
59256// add HTTP headers to the request.
59257func (c *DisksAddResourcePoliciesCall) Header() http.Header {
59258	if c.header_ == nil {
59259		c.header_ = make(http.Header)
59260	}
59261	return c.header_
59262}
59263
59264func (c *DisksAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
59265	reqHeaders := make(http.Header)
59266	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
59267	for k, v := range c.header_ {
59268		reqHeaders[k] = v
59269	}
59270	reqHeaders.Set("User-Agent", c.s.userAgent())
59271	var body io.Reader = nil
59272	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksaddresourcepoliciesrequest)
59273	if err != nil {
59274		return nil, err
59275	}
59276	reqHeaders.Set("Content-Type", "application/json")
59277	c.urlParams_.Set("alt", alt)
59278	c.urlParams_.Set("prettyPrint", "false")
59279	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies")
59280	urls += "?" + c.urlParams_.Encode()
59281	req, err := http.NewRequest("POST", urls, body)
59282	if err != nil {
59283		return nil, err
59284	}
59285	req.Header = reqHeaders
59286	googleapi.Expand(req.URL, map[string]string{
59287		"project": c.project,
59288		"zone":    c.zone,
59289		"disk":    c.disk,
59290	})
59291	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59292}
59293
59294// Do executes the "compute.disks.addResourcePolicies" call.
59295// Exactly one of *Operation or error will be non-nil. Any non-2xx
59296// status code is an error. Response headers are in either
59297// *Operation.ServerResponse.Header or (if a response was returned at
59298// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59299// to check whether the returned error was because
59300// http.StatusNotModified was returned.
59301func (c *DisksAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59302	gensupport.SetOptions(c.urlParams_, opts...)
59303	res, err := c.doRequest("json")
59304	if res != nil && res.StatusCode == http.StatusNotModified {
59305		if res.Body != nil {
59306			res.Body.Close()
59307		}
59308		return nil, &googleapi.Error{
59309			Code:   res.StatusCode,
59310			Header: res.Header,
59311		}
59312	}
59313	if err != nil {
59314		return nil, err
59315	}
59316	defer googleapi.CloseBody(res)
59317	if err := googleapi.CheckResponse(res); err != nil {
59318		return nil, err
59319	}
59320	ret := &Operation{
59321		ServerResponse: googleapi.ServerResponse{
59322			Header:         res.Header,
59323			HTTPStatusCode: res.StatusCode,
59324		},
59325	}
59326	target := &ret
59327	if err := gensupport.DecodeResponse(target, res); err != nil {
59328		return nil, err
59329	}
59330	return ret, nil
59331	// {
59332	//   "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.",
59333	//   "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies",
59334	//   "httpMethod": "POST",
59335	//   "id": "compute.disks.addResourcePolicies",
59336	//   "parameterOrder": [
59337	//     "project",
59338	//     "zone",
59339	//     "disk"
59340	//   ],
59341	//   "parameters": {
59342	//     "disk": {
59343	//       "description": "The disk name for this request.",
59344	//       "location": "path",
59345	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59346	//       "required": true,
59347	//       "type": "string"
59348	//     },
59349	//     "project": {
59350	//       "description": "Project ID for this request.",
59351	//       "location": "path",
59352	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59353	//       "required": true,
59354	//       "type": "string"
59355	//     },
59356	//     "requestId": {
59357	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
59358	//       "location": "query",
59359	//       "type": "string"
59360	//     },
59361	//     "zone": {
59362	//       "description": "The name of the zone for this request.",
59363	//       "location": "path",
59364	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59365	//       "required": true,
59366	//       "type": "string"
59367	//     }
59368	//   },
59369	//   "path": "projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies",
59370	//   "request": {
59371	//     "$ref": "DisksAddResourcePoliciesRequest"
59372	//   },
59373	//   "response": {
59374	//     "$ref": "Operation"
59375	//   },
59376	//   "scopes": [
59377	//     "https://www.googleapis.com/auth/cloud-platform",
59378	//     "https://www.googleapis.com/auth/compute"
59379	//   ]
59380	// }
59381
59382}
59383
59384// method id "compute.disks.aggregatedList":
59385
59386type DisksAggregatedListCall struct {
59387	s            *Service
59388	project      string
59389	urlParams_   gensupport.URLParams
59390	ifNoneMatch_ string
59391	ctx_         context.Context
59392	header_      http.Header
59393}
59394
59395// AggregatedList: Retrieves an aggregated list of persistent disks.
59396//
59397// - project: Project ID for this request.
59398func (r *DisksService) AggregatedList(project string) *DisksAggregatedListCall {
59399	c := &DisksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59400	c.project = project
59401	return c
59402}
59403
59404// Filter sets the optional parameter "filter": A filter expression that
59405// filters resources listed in the response. The expression must specify
59406// the field name, a comparison operator, and the value that you want to
59407// use for filtering. The value must be a string, a number, or a
59408// boolean. The comparison operator must be either `=`, `!=`, `>`, or
59409// `<`. For example, if you are filtering Compute Engine instances, you
59410// can exclude instances named `example-instance` by specifying `name !=
59411// example-instance`. You can also filter nested fields. For example,
59412// you could specify `scheduling.automaticRestart = false` to include
59413// instances only if they are not scheduled for automatic restarts. You
59414// can use filtering on nested fields to filter based on resource
59415// labels. To filter on multiple expressions, provide each separate
59416// expression within parentheses. For example: ```
59417// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
59418// ``` By default, each expression is an `AND` expression. However, you
59419// can include `AND` and `OR` expressions explicitly. For example: ```
59420// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
59421// AND (scheduling.automaticRestart = true) ```
59422func (c *DisksAggregatedListCall) Filter(filter string) *DisksAggregatedListCall {
59423	c.urlParams_.Set("filter", filter)
59424	return c
59425}
59426
59427// IncludeAllScopes sets the optional parameter "includeAllScopes":
59428// Indicates whether every visible scope for each scope type (zone,
59429// region, global) should be included in the response. For new resource
59430// types added after this field, the flag has no effect as new resource
59431// types will always include every visible scope for each scope type in
59432// response. For resource types which predate this field, if this flag
59433// is omitted or false, only scopes of the scope types where the
59434// resource type is expected to be found will be included.
59435func (c *DisksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *DisksAggregatedListCall {
59436	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
59437	return c
59438}
59439
59440// MaxResults sets the optional parameter "maxResults": The maximum
59441// number of results per page that should be returned. If the number of
59442// available results is larger than `maxResults`, Compute Engine returns
59443// a `nextPageToken` that can be used to get the next page of results in
59444// subsequent list requests. Acceptable values are `0` to `500`,
59445// inclusive. (Default: `500`)
59446func (c *DisksAggregatedListCall) MaxResults(maxResults int64) *DisksAggregatedListCall {
59447	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
59448	return c
59449}
59450
59451// OrderBy sets the optional parameter "orderBy": Sorts list results by
59452// a certain order. By default, results are returned in alphanumerical
59453// order based on the resource name. You can also sort results in
59454// descending order based on the creation timestamp using
59455// `orderBy="creationTimestamp desc". This sorts results based on the
59456// `creationTimestamp` field in reverse chronological order (newest
59457// result first). Use this to sort resources like operations so that the
59458// newest operation is returned first. Currently, only sorting by `name`
59459// or `creationTimestamp desc` is supported.
59460func (c *DisksAggregatedListCall) OrderBy(orderBy string) *DisksAggregatedListCall {
59461	c.urlParams_.Set("orderBy", orderBy)
59462	return c
59463}
59464
59465// PageToken sets the optional parameter "pageToken": Specifies a page
59466// token to use. Set `pageToken` to the `nextPageToken` returned by a
59467// previous list request to get the next page of results.
59468func (c *DisksAggregatedListCall) PageToken(pageToken string) *DisksAggregatedListCall {
59469	c.urlParams_.Set("pageToken", pageToken)
59470	return c
59471}
59472
59473// ReturnPartialSuccess sets the optional parameter
59474// "returnPartialSuccess": Opt-in for partial success behavior which
59475// provides partial results in case of failure. The default value is
59476// false.
59477func (c *DisksAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DisksAggregatedListCall {
59478	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
59479	return c
59480}
59481
59482// Fields allows partial responses to be retrieved. See
59483// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59484// for more information.
59485func (c *DisksAggregatedListCall) Fields(s ...googleapi.Field) *DisksAggregatedListCall {
59486	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59487	return c
59488}
59489
59490// IfNoneMatch sets the optional parameter which makes the operation
59491// fail if the object's ETag matches the given value. This is useful for
59492// getting updates only after the object has changed since the last
59493// request. Use googleapi.IsNotModified to check whether the response
59494// error from Do is the result of In-None-Match.
59495func (c *DisksAggregatedListCall) IfNoneMatch(entityTag string) *DisksAggregatedListCall {
59496	c.ifNoneMatch_ = entityTag
59497	return c
59498}
59499
59500// Context sets the context to be used in this call's Do method. Any
59501// pending HTTP request will be aborted if the provided context is
59502// canceled.
59503func (c *DisksAggregatedListCall) Context(ctx context.Context) *DisksAggregatedListCall {
59504	c.ctx_ = ctx
59505	return c
59506}
59507
59508// Header returns an http.Header that can be modified by the caller to
59509// add HTTP headers to the request.
59510func (c *DisksAggregatedListCall) Header() http.Header {
59511	if c.header_ == nil {
59512		c.header_ = make(http.Header)
59513	}
59514	return c.header_
59515}
59516
59517func (c *DisksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
59518	reqHeaders := make(http.Header)
59519	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
59520	for k, v := range c.header_ {
59521		reqHeaders[k] = v
59522	}
59523	reqHeaders.Set("User-Agent", c.s.userAgent())
59524	if c.ifNoneMatch_ != "" {
59525		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
59526	}
59527	var body io.Reader = nil
59528	c.urlParams_.Set("alt", alt)
59529	c.urlParams_.Set("prettyPrint", "false")
59530	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/disks")
59531	urls += "?" + c.urlParams_.Encode()
59532	req, err := http.NewRequest("GET", urls, body)
59533	if err != nil {
59534		return nil, err
59535	}
59536	req.Header = reqHeaders
59537	googleapi.Expand(req.URL, map[string]string{
59538		"project": c.project,
59539	})
59540	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59541}
59542
59543// Do executes the "compute.disks.aggregatedList" call.
59544// Exactly one of *DiskAggregatedList or error will be non-nil. Any
59545// non-2xx status code is an error. Response headers are in either
59546// *DiskAggregatedList.ServerResponse.Header or (if a response was
59547// returned at all) in error.(*googleapi.Error).Header. Use
59548// googleapi.IsNotModified to check whether the returned error was
59549// because http.StatusNotModified was returned.
59550func (c *DisksAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskAggregatedList, error) {
59551	gensupport.SetOptions(c.urlParams_, opts...)
59552	res, err := c.doRequest("json")
59553	if res != nil && res.StatusCode == http.StatusNotModified {
59554		if res.Body != nil {
59555			res.Body.Close()
59556		}
59557		return nil, &googleapi.Error{
59558			Code:   res.StatusCode,
59559			Header: res.Header,
59560		}
59561	}
59562	if err != nil {
59563		return nil, err
59564	}
59565	defer googleapi.CloseBody(res)
59566	if err := googleapi.CheckResponse(res); err != nil {
59567		return nil, err
59568	}
59569	ret := &DiskAggregatedList{
59570		ServerResponse: googleapi.ServerResponse{
59571			Header:         res.Header,
59572			HTTPStatusCode: res.StatusCode,
59573		},
59574	}
59575	target := &ret
59576	if err := gensupport.DecodeResponse(target, res); err != nil {
59577		return nil, err
59578	}
59579	return ret, nil
59580	// {
59581	//   "description": "Retrieves an aggregated list of persistent disks.",
59582	//   "flatPath": "projects/{project}/aggregated/disks",
59583	//   "httpMethod": "GET",
59584	//   "id": "compute.disks.aggregatedList",
59585	//   "parameterOrder": [
59586	//     "project"
59587	//   ],
59588	//   "parameters": {
59589	//     "filter": {
59590	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
59591	//       "location": "query",
59592	//       "type": "string"
59593	//     },
59594	//     "includeAllScopes": {
59595	//       "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.",
59596	//       "location": "query",
59597	//       "type": "boolean"
59598	//     },
59599	//     "maxResults": {
59600	//       "default": "500",
59601	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
59602	//       "format": "uint32",
59603	//       "location": "query",
59604	//       "minimum": "0",
59605	//       "type": "integer"
59606	//     },
59607	//     "orderBy": {
59608	//       "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.",
59609	//       "location": "query",
59610	//       "type": "string"
59611	//     },
59612	//     "pageToken": {
59613	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
59614	//       "location": "query",
59615	//       "type": "string"
59616	//     },
59617	//     "project": {
59618	//       "description": "Project ID for this request.",
59619	//       "location": "path",
59620	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59621	//       "required": true,
59622	//       "type": "string"
59623	//     },
59624	//     "returnPartialSuccess": {
59625	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
59626	//       "location": "query",
59627	//       "type": "boolean"
59628	//     }
59629	//   },
59630	//   "path": "projects/{project}/aggregated/disks",
59631	//   "response": {
59632	//     "$ref": "DiskAggregatedList"
59633	//   },
59634	//   "scopes": [
59635	//     "https://www.googleapis.com/auth/cloud-platform",
59636	//     "https://www.googleapis.com/auth/compute",
59637	//     "https://www.googleapis.com/auth/compute.readonly"
59638	//   ]
59639	// }
59640
59641}
59642
59643// Pages invokes f for each page of results.
59644// A non-nil error returned from f will halt the iteration.
59645// The provided context supersedes any context provided to the Context method.
59646func (c *DisksAggregatedListCall) Pages(ctx context.Context, f func(*DiskAggregatedList) error) error {
59647	c.ctx_ = ctx
59648	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
59649	for {
59650		x, err := c.Do()
59651		if err != nil {
59652			return err
59653		}
59654		if err := f(x); err != nil {
59655			return err
59656		}
59657		if x.NextPageToken == "" {
59658			return nil
59659		}
59660		c.PageToken(x.NextPageToken)
59661	}
59662}
59663
59664// method id "compute.disks.createSnapshot":
59665
59666type DisksCreateSnapshotCall struct {
59667	s          *Service
59668	project    string
59669	zone       string
59670	disk       string
59671	snapshot   *Snapshot
59672	urlParams_ gensupport.URLParams
59673	ctx_       context.Context
59674	header_    http.Header
59675}
59676
59677// CreateSnapshot: Creates a snapshot of a specified persistent disk.
59678//
59679// - disk: Name of the persistent disk to snapshot.
59680// - project: Project ID for this request.
59681// - zone: The name of the zone for this request.
59682func (r *DisksService) CreateSnapshot(project string, zone string, disk string, snapshot *Snapshot) *DisksCreateSnapshotCall {
59683	c := &DisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59684	c.project = project
59685	c.zone = zone
59686	c.disk = disk
59687	c.snapshot = snapshot
59688	return c
59689}
59690
59691// GuestFlush sets the optional parameter "guestFlush": [Input Only]
59692// Whether to attempt an application consistent snapshot by informing
59693// the OS to prepare for the snapshot process. Currently only supported
59694// on Windows instances using the Volume Shadow Copy Service (VSS).
59695func (c *DisksCreateSnapshotCall) GuestFlush(guestFlush bool) *DisksCreateSnapshotCall {
59696	c.urlParams_.Set("guestFlush", fmt.Sprint(guestFlush))
59697	return c
59698}
59699
59700// RequestId sets the optional parameter "requestId": An optional
59701// request ID to identify requests. Specify a unique request ID so that
59702// if you must retry your request, the server will know to ignore the
59703// request if it has already been completed. For example, consider a
59704// situation where you make an initial request and the request times
59705// out. If you make the request again with the same request ID, the
59706// server can check if original operation with the same request ID was
59707// received, and if so, will ignore the second request. This prevents
59708// clients from accidentally creating duplicate commitments. The request
59709// ID must be a valid UUID with the exception that zero UUID is not
59710// supported ( 00000000-0000-0000-0000-000000000000).
59711func (c *DisksCreateSnapshotCall) RequestId(requestId string) *DisksCreateSnapshotCall {
59712	c.urlParams_.Set("requestId", requestId)
59713	return c
59714}
59715
59716// Fields allows partial responses to be retrieved. See
59717// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59718// for more information.
59719func (c *DisksCreateSnapshotCall) Fields(s ...googleapi.Field) *DisksCreateSnapshotCall {
59720	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59721	return c
59722}
59723
59724// Context sets the context to be used in this call's Do method. Any
59725// pending HTTP request will be aborted if the provided context is
59726// canceled.
59727func (c *DisksCreateSnapshotCall) Context(ctx context.Context) *DisksCreateSnapshotCall {
59728	c.ctx_ = ctx
59729	return c
59730}
59731
59732// Header returns an http.Header that can be modified by the caller to
59733// add HTTP headers to the request.
59734func (c *DisksCreateSnapshotCall) Header() http.Header {
59735	if c.header_ == nil {
59736		c.header_ = make(http.Header)
59737	}
59738	return c.header_
59739}
59740
59741func (c *DisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) {
59742	reqHeaders := make(http.Header)
59743	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
59744	for k, v := range c.header_ {
59745		reqHeaders[k] = v
59746	}
59747	reqHeaders.Set("User-Agent", c.s.userAgent())
59748	var body io.Reader = nil
59749	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot)
59750	if err != nil {
59751		return nil, err
59752	}
59753	reqHeaders.Set("Content-Type", "application/json")
59754	c.urlParams_.Set("alt", alt)
59755	c.urlParams_.Set("prettyPrint", "false")
59756	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/createSnapshot")
59757	urls += "?" + c.urlParams_.Encode()
59758	req, err := http.NewRequest("POST", urls, body)
59759	if err != nil {
59760		return nil, err
59761	}
59762	req.Header = reqHeaders
59763	googleapi.Expand(req.URL, map[string]string{
59764		"project": c.project,
59765		"zone":    c.zone,
59766		"disk":    c.disk,
59767	})
59768	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59769}
59770
59771// Do executes the "compute.disks.createSnapshot" call.
59772// Exactly one of *Operation or error will be non-nil. Any non-2xx
59773// status code is an error. Response headers are in either
59774// *Operation.ServerResponse.Header or (if a response was returned at
59775// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59776// to check whether the returned error was because
59777// http.StatusNotModified was returned.
59778func (c *DisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59779	gensupport.SetOptions(c.urlParams_, opts...)
59780	res, err := c.doRequest("json")
59781	if res != nil && res.StatusCode == http.StatusNotModified {
59782		if res.Body != nil {
59783			res.Body.Close()
59784		}
59785		return nil, &googleapi.Error{
59786			Code:   res.StatusCode,
59787			Header: res.Header,
59788		}
59789	}
59790	if err != nil {
59791		return nil, err
59792	}
59793	defer googleapi.CloseBody(res)
59794	if err := googleapi.CheckResponse(res); err != nil {
59795		return nil, err
59796	}
59797	ret := &Operation{
59798		ServerResponse: googleapi.ServerResponse{
59799			Header:         res.Header,
59800			HTTPStatusCode: res.StatusCode,
59801		},
59802	}
59803	target := &ret
59804	if err := gensupport.DecodeResponse(target, res); err != nil {
59805		return nil, err
59806	}
59807	return ret, nil
59808	// {
59809	//   "description": "Creates a snapshot of a specified persistent disk.",
59810	//   "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/createSnapshot",
59811	//   "httpMethod": "POST",
59812	//   "id": "compute.disks.createSnapshot",
59813	//   "parameterOrder": [
59814	//     "project",
59815	//     "zone",
59816	//     "disk"
59817	//   ],
59818	//   "parameters": {
59819	//     "disk": {
59820	//       "description": "Name of the persistent disk to snapshot.",
59821	//       "location": "path",
59822	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59823	//       "required": true,
59824	//       "type": "string"
59825	//     },
59826	//     "guestFlush": {
59827	//       "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).",
59828	//       "location": "query",
59829	//       "type": "boolean"
59830	//     },
59831	//     "project": {
59832	//       "description": "Project ID for this request.",
59833	//       "location": "path",
59834	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59835	//       "required": true,
59836	//       "type": "string"
59837	//     },
59838	//     "requestId": {
59839	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
59840	//       "location": "query",
59841	//       "type": "string"
59842	//     },
59843	//     "zone": {
59844	//       "description": "The name of the zone for this request.",
59845	//       "location": "path",
59846	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59847	//       "required": true,
59848	//       "type": "string"
59849	//     }
59850	//   },
59851	//   "path": "projects/{project}/zones/{zone}/disks/{disk}/createSnapshot",
59852	//   "request": {
59853	//     "$ref": "Snapshot"
59854	//   },
59855	//   "response": {
59856	//     "$ref": "Operation"
59857	//   },
59858	//   "scopes": [
59859	//     "https://www.googleapis.com/auth/cloud-platform",
59860	//     "https://www.googleapis.com/auth/compute"
59861	//   ]
59862	// }
59863
59864}
59865
59866// method id "compute.disks.delete":
59867
59868type DisksDeleteCall struct {
59869	s          *Service
59870	project    string
59871	zone       string
59872	disk       string
59873	urlParams_ gensupport.URLParams
59874	ctx_       context.Context
59875	header_    http.Header
59876}
59877
59878// Delete: Deletes the specified persistent disk. Deleting a disk
59879// removes its data permanently and is irreversible. However, deleting a
59880// disk does not delete any snapshots previously made from the disk. You
59881// must separately delete snapshots.
59882//
59883// - disk: Name of the persistent disk to delete.
59884// - project: Project ID for this request.
59885// - zone: The name of the zone for this request.
59886func (r *DisksService) Delete(project string, zone string, disk string) *DisksDeleteCall {
59887	c := &DisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59888	c.project = project
59889	c.zone = zone
59890	c.disk = disk
59891	return c
59892}
59893
59894// RequestId sets the optional parameter "requestId": An optional
59895// request ID to identify requests. Specify a unique request ID so that
59896// if you must retry your request, the server will know to ignore the
59897// request if it has already been completed. For example, consider a
59898// situation where you make an initial request and the request times
59899// out. If you make the request again with the same request ID, the
59900// server can check if original operation with the same request ID was
59901// received, and if so, will ignore the second request. This prevents
59902// clients from accidentally creating duplicate commitments. The request
59903// ID must be a valid UUID with the exception that zero UUID is not
59904// supported ( 00000000-0000-0000-0000-000000000000).
59905func (c *DisksDeleteCall) RequestId(requestId string) *DisksDeleteCall {
59906	c.urlParams_.Set("requestId", requestId)
59907	return c
59908}
59909
59910// Fields allows partial responses to be retrieved. See
59911// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59912// for more information.
59913func (c *DisksDeleteCall) Fields(s ...googleapi.Field) *DisksDeleteCall {
59914	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59915	return c
59916}
59917
59918// Context sets the context to be used in this call's Do method. Any
59919// pending HTTP request will be aborted if the provided context is
59920// canceled.
59921func (c *DisksDeleteCall) Context(ctx context.Context) *DisksDeleteCall {
59922	c.ctx_ = ctx
59923	return c
59924}
59925
59926// Header returns an http.Header that can be modified by the caller to
59927// add HTTP headers to the request.
59928func (c *DisksDeleteCall) Header() http.Header {
59929	if c.header_ == nil {
59930		c.header_ = make(http.Header)
59931	}
59932	return c.header_
59933}
59934
59935func (c *DisksDeleteCall) doRequest(alt string) (*http.Response, error) {
59936	reqHeaders := make(http.Header)
59937	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
59938	for k, v := range c.header_ {
59939		reqHeaders[k] = v
59940	}
59941	reqHeaders.Set("User-Agent", c.s.userAgent())
59942	var body io.Reader = nil
59943	c.urlParams_.Set("alt", alt)
59944	c.urlParams_.Set("prettyPrint", "false")
59945	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}")
59946	urls += "?" + c.urlParams_.Encode()
59947	req, err := http.NewRequest("DELETE", urls, body)
59948	if err != nil {
59949		return nil, err
59950	}
59951	req.Header = reqHeaders
59952	googleapi.Expand(req.URL, map[string]string{
59953		"project": c.project,
59954		"zone":    c.zone,
59955		"disk":    c.disk,
59956	})
59957	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59958}
59959
59960// Do executes the "compute.disks.delete" call.
59961// Exactly one of *Operation or error will be non-nil. Any non-2xx
59962// status code is an error. Response headers are in either
59963// *Operation.ServerResponse.Header or (if a response was returned at
59964// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59965// to check whether the returned error was because
59966// http.StatusNotModified was returned.
59967func (c *DisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59968	gensupport.SetOptions(c.urlParams_, opts...)
59969	res, err := c.doRequest("json")
59970	if res != nil && res.StatusCode == http.StatusNotModified {
59971		if res.Body != nil {
59972			res.Body.Close()
59973		}
59974		return nil, &googleapi.Error{
59975			Code:   res.StatusCode,
59976			Header: res.Header,
59977		}
59978	}
59979	if err != nil {
59980		return nil, err
59981	}
59982	defer googleapi.CloseBody(res)
59983	if err := googleapi.CheckResponse(res); err != nil {
59984		return nil, err
59985	}
59986	ret := &Operation{
59987		ServerResponse: googleapi.ServerResponse{
59988			Header:         res.Header,
59989			HTTPStatusCode: res.StatusCode,
59990		},
59991	}
59992	target := &ret
59993	if err := gensupport.DecodeResponse(target, res); err != nil {
59994		return nil, err
59995	}
59996	return ret, nil
59997	// {
59998	//   "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.",
59999	//   "flatPath": "projects/{project}/zones/{zone}/disks/{disk}",
60000	//   "httpMethod": "DELETE",
60001	//   "id": "compute.disks.delete",
60002	//   "parameterOrder": [
60003	//     "project",
60004	//     "zone",
60005	//     "disk"
60006	//   ],
60007	//   "parameters": {
60008	//     "disk": {
60009	//       "description": "Name of the persistent disk to delete.",
60010	//       "location": "path",
60011	//       "required": true,
60012	//       "type": "string"
60013	//     },
60014	//     "project": {
60015	//       "description": "Project ID for this request.",
60016	//       "location": "path",
60017	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60018	//       "required": true,
60019	//       "type": "string"
60020	//     },
60021	//     "requestId": {
60022	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
60023	//       "location": "query",
60024	//       "type": "string"
60025	//     },
60026	//     "zone": {
60027	//       "description": "The name of the zone for this request.",
60028	//       "location": "path",
60029	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60030	//       "required": true,
60031	//       "type": "string"
60032	//     }
60033	//   },
60034	//   "path": "projects/{project}/zones/{zone}/disks/{disk}",
60035	//   "response": {
60036	//     "$ref": "Operation"
60037	//   },
60038	//   "scopes": [
60039	//     "https://www.googleapis.com/auth/cloud-platform",
60040	//     "https://www.googleapis.com/auth/compute"
60041	//   ]
60042	// }
60043
60044}
60045
60046// method id "compute.disks.get":
60047
60048type DisksGetCall struct {
60049	s            *Service
60050	project      string
60051	zone         string
60052	disk         string
60053	urlParams_   gensupport.URLParams
60054	ifNoneMatch_ string
60055	ctx_         context.Context
60056	header_      http.Header
60057}
60058
60059// Get: Returns a specified persistent disk. Gets a list of available
60060// persistent disks by making a list() request.
60061//
60062// - disk: Name of the persistent disk to return.
60063// - project: Project ID for this request.
60064// - zone: The name of the zone for this request.
60065func (r *DisksService) Get(project string, zone string, disk string) *DisksGetCall {
60066	c := &DisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60067	c.project = project
60068	c.zone = zone
60069	c.disk = disk
60070	return c
60071}
60072
60073// Fields allows partial responses to be retrieved. See
60074// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60075// for more information.
60076func (c *DisksGetCall) Fields(s ...googleapi.Field) *DisksGetCall {
60077	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60078	return c
60079}
60080
60081// IfNoneMatch sets the optional parameter which makes the operation
60082// fail if the object's ETag matches the given value. This is useful for
60083// getting updates only after the object has changed since the last
60084// request. Use googleapi.IsNotModified to check whether the response
60085// error from Do is the result of In-None-Match.
60086func (c *DisksGetCall) IfNoneMatch(entityTag string) *DisksGetCall {
60087	c.ifNoneMatch_ = entityTag
60088	return c
60089}
60090
60091// Context sets the context to be used in this call's Do method. Any
60092// pending HTTP request will be aborted if the provided context is
60093// canceled.
60094func (c *DisksGetCall) Context(ctx context.Context) *DisksGetCall {
60095	c.ctx_ = ctx
60096	return c
60097}
60098
60099// Header returns an http.Header that can be modified by the caller to
60100// add HTTP headers to the request.
60101func (c *DisksGetCall) Header() http.Header {
60102	if c.header_ == nil {
60103		c.header_ = make(http.Header)
60104	}
60105	return c.header_
60106}
60107
60108func (c *DisksGetCall) doRequest(alt string) (*http.Response, error) {
60109	reqHeaders := make(http.Header)
60110	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
60111	for k, v := range c.header_ {
60112		reqHeaders[k] = v
60113	}
60114	reqHeaders.Set("User-Agent", c.s.userAgent())
60115	if c.ifNoneMatch_ != "" {
60116		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
60117	}
60118	var body io.Reader = nil
60119	c.urlParams_.Set("alt", alt)
60120	c.urlParams_.Set("prettyPrint", "false")
60121	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}")
60122	urls += "?" + c.urlParams_.Encode()
60123	req, err := http.NewRequest("GET", urls, body)
60124	if err != nil {
60125		return nil, err
60126	}
60127	req.Header = reqHeaders
60128	googleapi.Expand(req.URL, map[string]string{
60129		"project": c.project,
60130		"zone":    c.zone,
60131		"disk":    c.disk,
60132	})
60133	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60134}
60135
60136// Do executes the "compute.disks.get" call.
60137// Exactly one of *Disk or error will be non-nil. Any non-2xx status
60138// code is an error. Response headers are in either
60139// *Disk.ServerResponse.Header or (if a response was returned at all) in
60140// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
60141// whether the returned error was because http.StatusNotModified was
60142// returned.
60143func (c *DisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) {
60144	gensupport.SetOptions(c.urlParams_, opts...)
60145	res, err := c.doRequest("json")
60146	if res != nil && res.StatusCode == http.StatusNotModified {
60147		if res.Body != nil {
60148			res.Body.Close()
60149		}
60150		return nil, &googleapi.Error{
60151			Code:   res.StatusCode,
60152			Header: res.Header,
60153		}
60154	}
60155	if err != nil {
60156		return nil, err
60157	}
60158	defer googleapi.CloseBody(res)
60159	if err := googleapi.CheckResponse(res); err != nil {
60160		return nil, err
60161	}
60162	ret := &Disk{
60163		ServerResponse: googleapi.ServerResponse{
60164			Header:         res.Header,
60165			HTTPStatusCode: res.StatusCode,
60166		},
60167	}
60168	target := &ret
60169	if err := gensupport.DecodeResponse(target, res); err != nil {
60170		return nil, err
60171	}
60172	return ret, nil
60173	// {
60174	//   "description": "Returns a specified persistent disk. Gets a list of available persistent disks by making a list() request.",
60175	//   "flatPath": "projects/{project}/zones/{zone}/disks/{disk}",
60176	//   "httpMethod": "GET",
60177	//   "id": "compute.disks.get",
60178	//   "parameterOrder": [
60179	//     "project",
60180	//     "zone",
60181	//     "disk"
60182	//   ],
60183	//   "parameters": {
60184	//     "disk": {
60185	//       "description": "Name of the persistent disk to return.",
60186	//       "location": "path",
60187	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60188	//       "required": true,
60189	//       "type": "string"
60190	//     },
60191	//     "project": {
60192	//       "description": "Project ID for this request.",
60193	//       "location": "path",
60194	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60195	//       "required": true,
60196	//       "type": "string"
60197	//     },
60198	//     "zone": {
60199	//       "description": "The name of the zone for this request.",
60200	//       "location": "path",
60201	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60202	//       "required": true,
60203	//       "type": "string"
60204	//     }
60205	//   },
60206	//   "path": "projects/{project}/zones/{zone}/disks/{disk}",
60207	//   "response": {
60208	//     "$ref": "Disk"
60209	//   },
60210	//   "scopes": [
60211	//     "https://www.googleapis.com/auth/cloud-platform",
60212	//     "https://www.googleapis.com/auth/compute",
60213	//     "https://www.googleapis.com/auth/compute.readonly"
60214	//   ]
60215	// }
60216
60217}
60218
60219// method id "compute.disks.getIamPolicy":
60220
60221type DisksGetIamPolicyCall struct {
60222	s            *Service
60223	project      string
60224	zone         string
60225	resource     string
60226	urlParams_   gensupport.URLParams
60227	ifNoneMatch_ string
60228	ctx_         context.Context
60229	header_      http.Header
60230}
60231
60232// GetIamPolicy: Gets the access control policy for a resource. May be
60233// empty if no such policy or resource exists.
60234//
60235// - project: Project ID for this request.
60236// - resource: Name or id of the resource for this request.
60237// - zone: The name of the zone for this request.
60238func (r *DisksService) GetIamPolicy(project string, zone string, resource string) *DisksGetIamPolicyCall {
60239	c := &DisksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60240	c.project = project
60241	c.zone = zone
60242	c.resource = resource
60243	return c
60244}
60245
60246// OptionsRequestedPolicyVersion sets the optional parameter
60247// "optionsRequestedPolicyVersion": Requested IAM Policy version.
60248func (c *DisksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *DisksGetIamPolicyCall {
60249	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
60250	return c
60251}
60252
60253// Fields allows partial responses to be retrieved. See
60254// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60255// for more information.
60256func (c *DisksGetIamPolicyCall) Fields(s ...googleapi.Field) *DisksGetIamPolicyCall {
60257	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60258	return c
60259}
60260
60261// IfNoneMatch sets the optional parameter which makes the operation
60262// fail if the object's ETag matches the given value. This is useful for
60263// getting updates only after the object has changed since the last
60264// request. Use googleapi.IsNotModified to check whether the response
60265// error from Do is the result of In-None-Match.
60266func (c *DisksGetIamPolicyCall) IfNoneMatch(entityTag string) *DisksGetIamPolicyCall {
60267	c.ifNoneMatch_ = entityTag
60268	return c
60269}
60270
60271// Context sets the context to be used in this call's Do method. Any
60272// pending HTTP request will be aborted if the provided context is
60273// canceled.
60274func (c *DisksGetIamPolicyCall) Context(ctx context.Context) *DisksGetIamPolicyCall {
60275	c.ctx_ = ctx
60276	return c
60277}
60278
60279// Header returns an http.Header that can be modified by the caller to
60280// add HTTP headers to the request.
60281func (c *DisksGetIamPolicyCall) Header() http.Header {
60282	if c.header_ == nil {
60283		c.header_ = make(http.Header)
60284	}
60285	return c.header_
60286}
60287
60288func (c *DisksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
60289	reqHeaders := make(http.Header)
60290	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
60291	for k, v := range c.header_ {
60292		reqHeaders[k] = v
60293	}
60294	reqHeaders.Set("User-Agent", c.s.userAgent())
60295	if c.ifNoneMatch_ != "" {
60296		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
60297	}
60298	var body io.Reader = nil
60299	c.urlParams_.Set("alt", alt)
60300	c.urlParams_.Set("prettyPrint", "false")
60301	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{resource}/getIamPolicy")
60302	urls += "?" + c.urlParams_.Encode()
60303	req, err := http.NewRequest("GET", urls, body)
60304	if err != nil {
60305		return nil, err
60306	}
60307	req.Header = reqHeaders
60308	googleapi.Expand(req.URL, map[string]string{
60309		"project":  c.project,
60310		"zone":     c.zone,
60311		"resource": c.resource,
60312	})
60313	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60314}
60315
60316// Do executes the "compute.disks.getIamPolicy" call.
60317// Exactly one of *Policy or error will be non-nil. Any non-2xx status
60318// code is an error. Response headers are in either
60319// *Policy.ServerResponse.Header or (if a response was returned at all)
60320// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
60321// check whether the returned error was because http.StatusNotModified
60322// was returned.
60323func (c *DisksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
60324	gensupport.SetOptions(c.urlParams_, opts...)
60325	res, err := c.doRequest("json")
60326	if res != nil && res.StatusCode == http.StatusNotModified {
60327		if res.Body != nil {
60328			res.Body.Close()
60329		}
60330		return nil, &googleapi.Error{
60331			Code:   res.StatusCode,
60332			Header: res.Header,
60333		}
60334	}
60335	if err != nil {
60336		return nil, err
60337	}
60338	defer googleapi.CloseBody(res)
60339	if err := googleapi.CheckResponse(res); err != nil {
60340		return nil, err
60341	}
60342	ret := &Policy{
60343		ServerResponse: googleapi.ServerResponse{
60344			Header:         res.Header,
60345			HTTPStatusCode: res.StatusCode,
60346		},
60347	}
60348	target := &ret
60349	if err := gensupport.DecodeResponse(target, res); err != nil {
60350		return nil, err
60351	}
60352	return ret, nil
60353	// {
60354	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
60355	//   "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/getIamPolicy",
60356	//   "httpMethod": "GET",
60357	//   "id": "compute.disks.getIamPolicy",
60358	//   "parameterOrder": [
60359	//     "project",
60360	//     "zone",
60361	//     "resource"
60362	//   ],
60363	//   "parameters": {
60364	//     "optionsRequestedPolicyVersion": {
60365	//       "description": "Requested IAM Policy version.",
60366	//       "format": "int32",
60367	//       "location": "query",
60368	//       "type": "integer"
60369	//     },
60370	//     "project": {
60371	//       "description": "Project ID for this request.",
60372	//       "location": "path",
60373	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60374	//       "required": true,
60375	//       "type": "string"
60376	//     },
60377	//     "resource": {
60378	//       "description": "Name or id of the resource for this request.",
60379	//       "location": "path",
60380	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60381	//       "required": true,
60382	//       "type": "string"
60383	//     },
60384	//     "zone": {
60385	//       "description": "The name of the zone for this request.",
60386	//       "location": "path",
60387	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60388	//       "required": true,
60389	//       "type": "string"
60390	//     }
60391	//   },
60392	//   "path": "projects/{project}/zones/{zone}/disks/{resource}/getIamPolicy",
60393	//   "response": {
60394	//     "$ref": "Policy"
60395	//   },
60396	//   "scopes": [
60397	//     "https://www.googleapis.com/auth/cloud-platform",
60398	//     "https://www.googleapis.com/auth/compute",
60399	//     "https://www.googleapis.com/auth/compute.readonly"
60400	//   ]
60401	// }
60402
60403}
60404
60405// method id "compute.disks.insert":
60406
60407type DisksInsertCall struct {
60408	s          *Service
60409	project    string
60410	zone       string
60411	disk       *Disk
60412	urlParams_ gensupport.URLParams
60413	ctx_       context.Context
60414	header_    http.Header
60415}
60416
60417// Insert: Creates a persistent disk in the specified project using the
60418// data in the request. You can create a disk from a source
60419// (sourceImage, sourceSnapshot, or sourceDisk) or create an empty 500
60420// GB data disk by omitting all properties. You can also create a disk
60421// that is larger than the default size by specifying the sizeGb
60422// property.
60423//
60424// - project: Project ID for this request.
60425// - zone: The name of the zone for this request.
60426func (r *DisksService) Insert(project string, zone string, disk *Disk) *DisksInsertCall {
60427	c := &DisksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60428	c.project = project
60429	c.zone = zone
60430	c.disk = disk
60431	return c
60432}
60433
60434// RequestId sets the optional parameter "requestId": An optional
60435// request ID to identify requests. Specify a unique request ID so that
60436// if you must retry your request, the server will know to ignore the
60437// request if it has already been completed. For example, consider a
60438// situation where you make an initial request and the request times
60439// out. If you make the request again with the same request ID, the
60440// server can check if original operation with the same request ID was
60441// received, and if so, will ignore the second request. This prevents
60442// clients from accidentally creating duplicate commitments. The request
60443// ID must be a valid UUID with the exception that zero UUID is not
60444// supported ( 00000000-0000-0000-0000-000000000000).
60445func (c *DisksInsertCall) RequestId(requestId string) *DisksInsertCall {
60446	c.urlParams_.Set("requestId", requestId)
60447	return c
60448}
60449
60450// SourceImage sets the optional parameter "sourceImage": Source image
60451// to restore onto a disk. This field is optional.
60452func (c *DisksInsertCall) SourceImage(sourceImage string) *DisksInsertCall {
60453	c.urlParams_.Set("sourceImage", sourceImage)
60454	return c
60455}
60456
60457// Fields allows partial responses to be retrieved. See
60458// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60459// for more information.
60460func (c *DisksInsertCall) Fields(s ...googleapi.Field) *DisksInsertCall {
60461	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60462	return c
60463}
60464
60465// Context sets the context to be used in this call's Do method. Any
60466// pending HTTP request will be aborted if the provided context is
60467// canceled.
60468func (c *DisksInsertCall) Context(ctx context.Context) *DisksInsertCall {
60469	c.ctx_ = ctx
60470	return c
60471}
60472
60473// Header returns an http.Header that can be modified by the caller to
60474// add HTTP headers to the request.
60475func (c *DisksInsertCall) Header() http.Header {
60476	if c.header_ == nil {
60477		c.header_ = make(http.Header)
60478	}
60479	return c.header_
60480}
60481
60482func (c *DisksInsertCall) doRequest(alt string) (*http.Response, error) {
60483	reqHeaders := make(http.Header)
60484	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
60485	for k, v := range c.header_ {
60486		reqHeaders[k] = v
60487	}
60488	reqHeaders.Set("User-Agent", c.s.userAgent())
60489	var body io.Reader = nil
60490	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk)
60491	if err != nil {
60492		return nil, err
60493	}
60494	reqHeaders.Set("Content-Type", "application/json")
60495	c.urlParams_.Set("alt", alt)
60496	c.urlParams_.Set("prettyPrint", "false")
60497	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks")
60498	urls += "?" + c.urlParams_.Encode()
60499	req, err := http.NewRequest("POST", urls, body)
60500	if err != nil {
60501		return nil, err
60502	}
60503	req.Header = reqHeaders
60504	googleapi.Expand(req.URL, map[string]string{
60505		"project": c.project,
60506		"zone":    c.zone,
60507	})
60508	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60509}
60510
60511// Do executes the "compute.disks.insert" call.
60512// Exactly one of *Operation or error will be non-nil. Any non-2xx
60513// status code is an error. Response headers are in either
60514// *Operation.ServerResponse.Header or (if a response was returned at
60515// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60516// to check whether the returned error was because
60517// http.StatusNotModified was returned.
60518func (c *DisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60519	gensupport.SetOptions(c.urlParams_, opts...)
60520	res, err := c.doRequest("json")
60521	if res != nil && res.StatusCode == http.StatusNotModified {
60522		if res.Body != nil {
60523			res.Body.Close()
60524		}
60525		return nil, &googleapi.Error{
60526			Code:   res.StatusCode,
60527			Header: res.Header,
60528		}
60529	}
60530	if err != nil {
60531		return nil, err
60532	}
60533	defer googleapi.CloseBody(res)
60534	if err := googleapi.CheckResponse(res); err != nil {
60535		return nil, err
60536	}
60537	ret := &Operation{
60538		ServerResponse: googleapi.ServerResponse{
60539			Header:         res.Header,
60540			HTTPStatusCode: res.StatusCode,
60541		},
60542	}
60543	target := &ret
60544	if err := gensupport.DecodeResponse(target, res); err != nil {
60545		return nil, err
60546	}
60547	return ret, nil
60548	// {
60549	//   "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.",
60550	//   "flatPath": "projects/{project}/zones/{zone}/disks",
60551	//   "httpMethod": "POST",
60552	//   "id": "compute.disks.insert",
60553	//   "parameterOrder": [
60554	//     "project",
60555	//     "zone"
60556	//   ],
60557	//   "parameters": {
60558	//     "project": {
60559	//       "description": "Project ID for this request.",
60560	//       "location": "path",
60561	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60562	//       "required": true,
60563	//       "type": "string"
60564	//     },
60565	//     "requestId": {
60566	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
60567	//       "location": "query",
60568	//       "type": "string"
60569	//     },
60570	//     "sourceImage": {
60571	//       "description": "Source image to restore onto a disk. This field is optional.",
60572	//       "location": "query",
60573	//       "type": "string"
60574	//     },
60575	//     "zone": {
60576	//       "description": "The name of the zone for this request.",
60577	//       "location": "path",
60578	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60579	//       "required": true,
60580	//       "type": "string"
60581	//     }
60582	//   },
60583	//   "path": "projects/{project}/zones/{zone}/disks",
60584	//   "request": {
60585	//     "$ref": "Disk"
60586	//   },
60587	//   "response": {
60588	//     "$ref": "Operation"
60589	//   },
60590	//   "scopes": [
60591	//     "https://www.googleapis.com/auth/cloud-platform",
60592	//     "https://www.googleapis.com/auth/compute"
60593	//   ]
60594	// }
60595
60596}
60597
60598// method id "compute.disks.list":
60599
60600type DisksListCall struct {
60601	s            *Service
60602	project      string
60603	zone         string
60604	urlParams_   gensupport.URLParams
60605	ifNoneMatch_ string
60606	ctx_         context.Context
60607	header_      http.Header
60608}
60609
60610// List: Retrieves a list of persistent disks contained within the
60611// specified zone.
60612//
60613// - project: Project ID for this request.
60614// - zone: The name of the zone for this request.
60615func (r *DisksService) List(project string, zone string) *DisksListCall {
60616	c := &DisksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60617	c.project = project
60618	c.zone = zone
60619	return c
60620}
60621
60622// Filter sets the optional parameter "filter": A filter expression that
60623// filters resources listed in the response. The expression must specify
60624// the field name, a comparison operator, and the value that you want to
60625// use for filtering. The value must be a string, a number, or a
60626// boolean. The comparison operator must be either `=`, `!=`, `>`, or
60627// `<`. For example, if you are filtering Compute Engine instances, you
60628// can exclude instances named `example-instance` by specifying `name !=
60629// example-instance`. You can also filter nested fields. For example,
60630// you could specify `scheduling.automaticRestart = false` to include
60631// instances only if they are not scheduled for automatic restarts. You
60632// can use filtering on nested fields to filter based on resource
60633// labels. To filter on multiple expressions, provide each separate
60634// expression within parentheses. For example: ```
60635// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
60636// ``` By default, each expression is an `AND` expression. However, you
60637// can include `AND` and `OR` expressions explicitly. For example: ```
60638// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
60639// AND (scheduling.automaticRestart = true) ```
60640func (c *DisksListCall) Filter(filter string) *DisksListCall {
60641	c.urlParams_.Set("filter", filter)
60642	return c
60643}
60644
60645// MaxResults sets the optional parameter "maxResults": The maximum
60646// number of results per page that should be returned. If the number of
60647// available results is larger than `maxResults`, Compute Engine returns
60648// a `nextPageToken` that can be used to get the next page of results in
60649// subsequent list requests. Acceptable values are `0` to `500`,
60650// inclusive. (Default: `500`)
60651func (c *DisksListCall) MaxResults(maxResults int64) *DisksListCall {
60652	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
60653	return c
60654}
60655
60656// OrderBy sets the optional parameter "orderBy": Sorts list results by
60657// a certain order. By default, results are returned in alphanumerical
60658// order based on the resource name. You can also sort results in
60659// descending order based on the creation timestamp using
60660// `orderBy="creationTimestamp desc". This sorts results based on the
60661// `creationTimestamp` field in reverse chronological order (newest
60662// result first). Use this to sort resources like operations so that the
60663// newest operation is returned first. Currently, only sorting by `name`
60664// or `creationTimestamp desc` is supported.
60665func (c *DisksListCall) OrderBy(orderBy string) *DisksListCall {
60666	c.urlParams_.Set("orderBy", orderBy)
60667	return c
60668}
60669
60670// PageToken sets the optional parameter "pageToken": Specifies a page
60671// token to use. Set `pageToken` to the `nextPageToken` returned by a
60672// previous list request to get the next page of results.
60673func (c *DisksListCall) PageToken(pageToken string) *DisksListCall {
60674	c.urlParams_.Set("pageToken", pageToken)
60675	return c
60676}
60677
60678// ReturnPartialSuccess sets the optional parameter
60679// "returnPartialSuccess": Opt-in for partial success behavior which
60680// provides partial results in case of failure. The default value is
60681// false.
60682func (c *DisksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DisksListCall {
60683	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
60684	return c
60685}
60686
60687// Fields allows partial responses to be retrieved. See
60688// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60689// for more information.
60690func (c *DisksListCall) Fields(s ...googleapi.Field) *DisksListCall {
60691	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60692	return c
60693}
60694
60695// IfNoneMatch sets the optional parameter which makes the operation
60696// fail if the object's ETag matches the given value. This is useful for
60697// getting updates only after the object has changed since the last
60698// request. Use googleapi.IsNotModified to check whether the response
60699// error from Do is the result of In-None-Match.
60700func (c *DisksListCall) IfNoneMatch(entityTag string) *DisksListCall {
60701	c.ifNoneMatch_ = entityTag
60702	return c
60703}
60704
60705// Context sets the context to be used in this call's Do method. Any
60706// pending HTTP request will be aborted if the provided context is
60707// canceled.
60708func (c *DisksListCall) Context(ctx context.Context) *DisksListCall {
60709	c.ctx_ = ctx
60710	return c
60711}
60712
60713// Header returns an http.Header that can be modified by the caller to
60714// add HTTP headers to the request.
60715func (c *DisksListCall) Header() http.Header {
60716	if c.header_ == nil {
60717		c.header_ = make(http.Header)
60718	}
60719	return c.header_
60720}
60721
60722func (c *DisksListCall) doRequest(alt string) (*http.Response, error) {
60723	reqHeaders := make(http.Header)
60724	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
60725	for k, v := range c.header_ {
60726		reqHeaders[k] = v
60727	}
60728	reqHeaders.Set("User-Agent", c.s.userAgent())
60729	if c.ifNoneMatch_ != "" {
60730		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
60731	}
60732	var body io.Reader = nil
60733	c.urlParams_.Set("alt", alt)
60734	c.urlParams_.Set("prettyPrint", "false")
60735	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks")
60736	urls += "?" + c.urlParams_.Encode()
60737	req, err := http.NewRequest("GET", urls, body)
60738	if err != nil {
60739		return nil, err
60740	}
60741	req.Header = reqHeaders
60742	googleapi.Expand(req.URL, map[string]string{
60743		"project": c.project,
60744		"zone":    c.zone,
60745	})
60746	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60747}
60748
60749// Do executes the "compute.disks.list" call.
60750// Exactly one of *DiskList or error will be non-nil. Any non-2xx status
60751// code is an error. Response headers are in either
60752// *DiskList.ServerResponse.Header or (if a response was returned at
60753// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60754// to check whether the returned error was because
60755// http.StatusNotModified was returned.
60756func (c *DisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error) {
60757	gensupport.SetOptions(c.urlParams_, opts...)
60758	res, err := c.doRequest("json")
60759	if res != nil && res.StatusCode == http.StatusNotModified {
60760		if res.Body != nil {
60761			res.Body.Close()
60762		}
60763		return nil, &googleapi.Error{
60764			Code:   res.StatusCode,
60765			Header: res.Header,
60766		}
60767	}
60768	if err != nil {
60769		return nil, err
60770	}
60771	defer googleapi.CloseBody(res)
60772	if err := googleapi.CheckResponse(res); err != nil {
60773		return nil, err
60774	}
60775	ret := &DiskList{
60776		ServerResponse: googleapi.ServerResponse{
60777			Header:         res.Header,
60778			HTTPStatusCode: res.StatusCode,
60779		},
60780	}
60781	target := &ret
60782	if err := gensupport.DecodeResponse(target, res); err != nil {
60783		return nil, err
60784	}
60785	return ret, nil
60786	// {
60787	//   "description": "Retrieves a list of persistent disks contained within the specified zone.",
60788	//   "flatPath": "projects/{project}/zones/{zone}/disks",
60789	//   "httpMethod": "GET",
60790	//   "id": "compute.disks.list",
60791	//   "parameterOrder": [
60792	//     "project",
60793	//     "zone"
60794	//   ],
60795	//   "parameters": {
60796	//     "filter": {
60797	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
60798	//       "location": "query",
60799	//       "type": "string"
60800	//     },
60801	//     "maxResults": {
60802	//       "default": "500",
60803	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
60804	//       "format": "uint32",
60805	//       "location": "query",
60806	//       "minimum": "0",
60807	//       "type": "integer"
60808	//     },
60809	//     "orderBy": {
60810	//       "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.",
60811	//       "location": "query",
60812	//       "type": "string"
60813	//     },
60814	//     "pageToken": {
60815	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
60816	//       "location": "query",
60817	//       "type": "string"
60818	//     },
60819	//     "project": {
60820	//       "description": "Project ID for this request.",
60821	//       "location": "path",
60822	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60823	//       "required": true,
60824	//       "type": "string"
60825	//     },
60826	//     "returnPartialSuccess": {
60827	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
60828	//       "location": "query",
60829	//       "type": "boolean"
60830	//     },
60831	//     "zone": {
60832	//       "description": "The name of the zone for this request.",
60833	//       "location": "path",
60834	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60835	//       "required": true,
60836	//       "type": "string"
60837	//     }
60838	//   },
60839	//   "path": "projects/{project}/zones/{zone}/disks",
60840	//   "response": {
60841	//     "$ref": "DiskList"
60842	//   },
60843	//   "scopes": [
60844	//     "https://www.googleapis.com/auth/cloud-platform",
60845	//     "https://www.googleapis.com/auth/compute",
60846	//     "https://www.googleapis.com/auth/compute.readonly"
60847	//   ]
60848	// }
60849
60850}
60851
60852// Pages invokes f for each page of results.
60853// A non-nil error returned from f will halt the iteration.
60854// The provided context supersedes any context provided to the Context method.
60855func (c *DisksListCall) Pages(ctx context.Context, f func(*DiskList) error) error {
60856	c.ctx_ = ctx
60857	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
60858	for {
60859		x, err := c.Do()
60860		if err != nil {
60861			return err
60862		}
60863		if err := f(x); err != nil {
60864			return err
60865		}
60866		if x.NextPageToken == "" {
60867			return nil
60868		}
60869		c.PageToken(x.NextPageToken)
60870	}
60871}
60872
60873// method id "compute.disks.removeResourcePolicies":
60874
60875type DisksRemoveResourcePoliciesCall struct {
60876	s                                  *Service
60877	project                            string
60878	zone                               string
60879	disk                               string
60880	disksremoveresourcepoliciesrequest *DisksRemoveResourcePoliciesRequest
60881	urlParams_                         gensupport.URLParams
60882	ctx_                               context.Context
60883	header_                            http.Header
60884}
60885
60886// RemoveResourcePolicies: Removes resource policies from a disk.
60887//
60888// - disk: The disk name for this request.
60889// - project: Project ID for this request.
60890// - zone: The name of the zone for this request.
60891func (r *DisksService) RemoveResourcePolicies(project string, zone string, disk string, disksremoveresourcepoliciesrequest *DisksRemoveResourcePoliciesRequest) *DisksRemoveResourcePoliciesCall {
60892	c := &DisksRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60893	c.project = project
60894	c.zone = zone
60895	c.disk = disk
60896	c.disksremoveresourcepoliciesrequest = disksremoveresourcepoliciesrequest
60897	return c
60898}
60899
60900// RequestId sets the optional parameter "requestId": An optional
60901// request ID to identify requests. Specify a unique request ID so that
60902// if you must retry your request, the server will know to ignore the
60903// request if it has already been completed. For example, consider a
60904// situation where you make an initial request and the request times
60905// out. If you make the request again with the same request ID, the
60906// server can check if original operation with the same request ID was
60907// received, and if so, will ignore the second request. This prevents
60908// clients from accidentally creating duplicate commitments. The request
60909// ID must be a valid UUID with the exception that zero UUID is not
60910// supported ( 00000000-0000-0000-0000-000000000000).
60911func (c *DisksRemoveResourcePoliciesCall) RequestId(requestId string) *DisksRemoveResourcePoliciesCall {
60912	c.urlParams_.Set("requestId", requestId)
60913	return c
60914}
60915
60916// Fields allows partial responses to be retrieved. See
60917// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60918// for more information.
60919func (c *DisksRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *DisksRemoveResourcePoliciesCall {
60920	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60921	return c
60922}
60923
60924// Context sets the context to be used in this call's Do method. Any
60925// pending HTTP request will be aborted if the provided context is
60926// canceled.
60927func (c *DisksRemoveResourcePoliciesCall) Context(ctx context.Context) *DisksRemoveResourcePoliciesCall {
60928	c.ctx_ = ctx
60929	return c
60930}
60931
60932// Header returns an http.Header that can be modified by the caller to
60933// add HTTP headers to the request.
60934func (c *DisksRemoveResourcePoliciesCall) Header() http.Header {
60935	if c.header_ == nil {
60936		c.header_ = make(http.Header)
60937	}
60938	return c.header_
60939}
60940
60941func (c *DisksRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
60942	reqHeaders := make(http.Header)
60943	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
60944	for k, v := range c.header_ {
60945		reqHeaders[k] = v
60946	}
60947	reqHeaders.Set("User-Agent", c.s.userAgent())
60948	var body io.Reader = nil
60949	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksremoveresourcepoliciesrequest)
60950	if err != nil {
60951		return nil, err
60952	}
60953	reqHeaders.Set("Content-Type", "application/json")
60954	c.urlParams_.Set("alt", alt)
60955	c.urlParams_.Set("prettyPrint", "false")
60956	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/removeResourcePolicies")
60957	urls += "?" + c.urlParams_.Encode()
60958	req, err := http.NewRequest("POST", urls, body)
60959	if err != nil {
60960		return nil, err
60961	}
60962	req.Header = reqHeaders
60963	googleapi.Expand(req.URL, map[string]string{
60964		"project": c.project,
60965		"zone":    c.zone,
60966		"disk":    c.disk,
60967	})
60968	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60969}
60970
60971// Do executes the "compute.disks.removeResourcePolicies" call.
60972// Exactly one of *Operation or error will be non-nil. Any non-2xx
60973// status code is an error. Response headers are in either
60974// *Operation.ServerResponse.Header or (if a response was returned at
60975// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60976// to check whether the returned error was because
60977// http.StatusNotModified was returned.
60978func (c *DisksRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60979	gensupport.SetOptions(c.urlParams_, opts...)
60980	res, err := c.doRequest("json")
60981	if res != nil && res.StatusCode == http.StatusNotModified {
60982		if res.Body != nil {
60983			res.Body.Close()
60984		}
60985		return nil, &googleapi.Error{
60986			Code:   res.StatusCode,
60987			Header: res.Header,
60988		}
60989	}
60990	if err != nil {
60991		return nil, err
60992	}
60993	defer googleapi.CloseBody(res)
60994	if err := googleapi.CheckResponse(res); err != nil {
60995		return nil, err
60996	}
60997	ret := &Operation{
60998		ServerResponse: googleapi.ServerResponse{
60999			Header:         res.Header,
61000			HTTPStatusCode: res.StatusCode,
61001		},
61002	}
61003	target := &ret
61004	if err := gensupport.DecodeResponse(target, res); err != nil {
61005		return nil, err
61006	}
61007	return ret, nil
61008	// {
61009	//   "description": "Removes resource policies from a disk.",
61010	//   "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/removeResourcePolicies",
61011	//   "httpMethod": "POST",
61012	//   "id": "compute.disks.removeResourcePolicies",
61013	//   "parameterOrder": [
61014	//     "project",
61015	//     "zone",
61016	//     "disk"
61017	//   ],
61018	//   "parameters": {
61019	//     "disk": {
61020	//       "description": "The disk name for this request.",
61021	//       "location": "path",
61022	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61023	//       "required": true,
61024	//       "type": "string"
61025	//     },
61026	//     "project": {
61027	//       "description": "Project ID for this request.",
61028	//       "location": "path",
61029	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61030	//       "required": true,
61031	//       "type": "string"
61032	//     },
61033	//     "requestId": {
61034	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
61035	//       "location": "query",
61036	//       "type": "string"
61037	//     },
61038	//     "zone": {
61039	//       "description": "The name of the zone for this request.",
61040	//       "location": "path",
61041	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61042	//       "required": true,
61043	//       "type": "string"
61044	//     }
61045	//   },
61046	//   "path": "projects/{project}/zones/{zone}/disks/{disk}/removeResourcePolicies",
61047	//   "request": {
61048	//     "$ref": "DisksRemoveResourcePoliciesRequest"
61049	//   },
61050	//   "response": {
61051	//     "$ref": "Operation"
61052	//   },
61053	//   "scopes": [
61054	//     "https://www.googleapis.com/auth/cloud-platform",
61055	//     "https://www.googleapis.com/auth/compute"
61056	//   ]
61057	// }
61058
61059}
61060
61061// method id "compute.disks.resize":
61062
61063type DisksResizeCall struct {
61064	s                  *Service
61065	project            string
61066	zone               string
61067	disk               string
61068	disksresizerequest *DisksResizeRequest
61069	urlParams_         gensupport.URLParams
61070	ctx_               context.Context
61071	header_            http.Header
61072}
61073
61074// Resize: Resizes the specified persistent disk. You can only increase
61075// the size of the disk.
61076//
61077// - disk: The name of the persistent disk.
61078// - project: Project ID for this request.
61079// - zone: The name of the zone for this request.
61080func (r *DisksService) Resize(project string, zone string, disk string, disksresizerequest *DisksResizeRequest) *DisksResizeCall {
61081	c := &DisksResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61082	c.project = project
61083	c.zone = zone
61084	c.disk = disk
61085	c.disksresizerequest = disksresizerequest
61086	return c
61087}
61088
61089// RequestId sets the optional parameter "requestId": An optional
61090// request ID to identify requests. Specify a unique request ID so that
61091// if you must retry your request, the server will know to ignore the
61092// request if it has already been completed. For example, consider a
61093// situation where you make an initial request and the request times
61094// out. If you make the request again with the same request ID, the
61095// server can check if original operation with the same request ID was
61096// received, and if so, will ignore the second request. This prevents
61097// clients from accidentally creating duplicate commitments. The request
61098// ID must be a valid UUID with the exception that zero UUID is not
61099// supported ( 00000000-0000-0000-0000-000000000000).
61100func (c *DisksResizeCall) RequestId(requestId string) *DisksResizeCall {
61101	c.urlParams_.Set("requestId", requestId)
61102	return c
61103}
61104
61105// Fields allows partial responses to be retrieved. See
61106// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61107// for more information.
61108func (c *DisksResizeCall) Fields(s ...googleapi.Field) *DisksResizeCall {
61109	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61110	return c
61111}
61112
61113// Context sets the context to be used in this call's Do method. Any
61114// pending HTTP request will be aborted if the provided context is
61115// canceled.
61116func (c *DisksResizeCall) Context(ctx context.Context) *DisksResizeCall {
61117	c.ctx_ = ctx
61118	return c
61119}
61120
61121// Header returns an http.Header that can be modified by the caller to
61122// add HTTP headers to the request.
61123func (c *DisksResizeCall) Header() http.Header {
61124	if c.header_ == nil {
61125		c.header_ = make(http.Header)
61126	}
61127	return c.header_
61128}
61129
61130func (c *DisksResizeCall) doRequest(alt string) (*http.Response, error) {
61131	reqHeaders := make(http.Header)
61132	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
61133	for k, v := range c.header_ {
61134		reqHeaders[k] = v
61135	}
61136	reqHeaders.Set("User-Agent", c.s.userAgent())
61137	var body io.Reader = nil
61138	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksresizerequest)
61139	if err != nil {
61140		return nil, err
61141	}
61142	reqHeaders.Set("Content-Type", "application/json")
61143	c.urlParams_.Set("alt", alt)
61144	c.urlParams_.Set("prettyPrint", "false")
61145	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/resize")
61146	urls += "?" + c.urlParams_.Encode()
61147	req, err := http.NewRequest("POST", urls, body)
61148	if err != nil {
61149		return nil, err
61150	}
61151	req.Header = reqHeaders
61152	googleapi.Expand(req.URL, map[string]string{
61153		"project": c.project,
61154		"zone":    c.zone,
61155		"disk":    c.disk,
61156	})
61157	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61158}
61159
61160// Do executes the "compute.disks.resize" call.
61161// Exactly one of *Operation or error will be non-nil. Any non-2xx
61162// status code is an error. Response headers are in either
61163// *Operation.ServerResponse.Header or (if a response was returned at
61164// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61165// to check whether the returned error was because
61166// http.StatusNotModified was returned.
61167func (c *DisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61168	gensupport.SetOptions(c.urlParams_, opts...)
61169	res, err := c.doRequest("json")
61170	if res != nil && res.StatusCode == http.StatusNotModified {
61171		if res.Body != nil {
61172			res.Body.Close()
61173		}
61174		return nil, &googleapi.Error{
61175			Code:   res.StatusCode,
61176			Header: res.Header,
61177		}
61178	}
61179	if err != nil {
61180		return nil, err
61181	}
61182	defer googleapi.CloseBody(res)
61183	if err := googleapi.CheckResponse(res); err != nil {
61184		return nil, err
61185	}
61186	ret := &Operation{
61187		ServerResponse: googleapi.ServerResponse{
61188			Header:         res.Header,
61189			HTTPStatusCode: res.StatusCode,
61190		},
61191	}
61192	target := &ret
61193	if err := gensupport.DecodeResponse(target, res); err != nil {
61194		return nil, err
61195	}
61196	return ret, nil
61197	// {
61198	//   "description": "Resizes the specified persistent disk. You can only increase the size of the disk.",
61199	//   "flatPath": "projects/{project}/zones/{zone}/disks/{disk}/resize",
61200	//   "httpMethod": "POST",
61201	//   "id": "compute.disks.resize",
61202	//   "parameterOrder": [
61203	//     "project",
61204	//     "zone",
61205	//     "disk"
61206	//   ],
61207	//   "parameters": {
61208	//     "disk": {
61209	//       "description": "The name of the persistent disk.",
61210	//       "location": "path",
61211	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61212	//       "required": true,
61213	//       "type": "string"
61214	//     },
61215	//     "project": {
61216	//       "description": "Project ID for this request.",
61217	//       "location": "path",
61218	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61219	//       "required": true,
61220	//       "type": "string"
61221	//     },
61222	//     "requestId": {
61223	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
61224	//       "location": "query",
61225	//       "type": "string"
61226	//     },
61227	//     "zone": {
61228	//       "description": "The name of the zone for this request.",
61229	//       "location": "path",
61230	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61231	//       "required": true,
61232	//       "type": "string"
61233	//     }
61234	//   },
61235	//   "path": "projects/{project}/zones/{zone}/disks/{disk}/resize",
61236	//   "request": {
61237	//     "$ref": "DisksResizeRequest"
61238	//   },
61239	//   "response": {
61240	//     "$ref": "Operation"
61241	//   },
61242	//   "scopes": [
61243	//     "https://www.googleapis.com/auth/cloud-platform",
61244	//     "https://www.googleapis.com/auth/compute"
61245	//   ]
61246	// }
61247
61248}
61249
61250// method id "compute.disks.setIamPolicy":
61251
61252type DisksSetIamPolicyCall struct {
61253	s                    *Service
61254	project              string
61255	zone                 string
61256	resource             string
61257	zonesetpolicyrequest *ZoneSetPolicyRequest
61258	urlParams_           gensupport.URLParams
61259	ctx_                 context.Context
61260	header_              http.Header
61261}
61262
61263// SetIamPolicy: Sets the access control policy on the specified
61264// resource. Replaces any existing policy.
61265//
61266// - project: Project ID for this request.
61267// - resource: Name or id of the resource for this request.
61268// - zone: The name of the zone for this request.
61269func (r *DisksService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *DisksSetIamPolicyCall {
61270	c := &DisksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61271	c.project = project
61272	c.zone = zone
61273	c.resource = resource
61274	c.zonesetpolicyrequest = zonesetpolicyrequest
61275	return c
61276}
61277
61278// Fields allows partial responses to be retrieved. See
61279// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61280// for more information.
61281func (c *DisksSetIamPolicyCall) Fields(s ...googleapi.Field) *DisksSetIamPolicyCall {
61282	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61283	return c
61284}
61285
61286// Context sets the context to be used in this call's Do method. Any
61287// pending HTTP request will be aborted if the provided context is
61288// canceled.
61289func (c *DisksSetIamPolicyCall) Context(ctx context.Context) *DisksSetIamPolicyCall {
61290	c.ctx_ = ctx
61291	return c
61292}
61293
61294// Header returns an http.Header that can be modified by the caller to
61295// add HTTP headers to the request.
61296func (c *DisksSetIamPolicyCall) Header() http.Header {
61297	if c.header_ == nil {
61298		c.header_ = make(http.Header)
61299	}
61300	return c.header_
61301}
61302
61303func (c *DisksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
61304	reqHeaders := make(http.Header)
61305	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
61306	for k, v := range c.header_ {
61307		reqHeaders[k] = v
61308	}
61309	reqHeaders.Set("User-Agent", c.s.userAgent())
61310	var body io.Reader = nil
61311	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
61312	if err != nil {
61313		return nil, err
61314	}
61315	reqHeaders.Set("Content-Type", "application/json")
61316	c.urlParams_.Set("alt", alt)
61317	c.urlParams_.Set("prettyPrint", "false")
61318	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{resource}/setIamPolicy")
61319	urls += "?" + c.urlParams_.Encode()
61320	req, err := http.NewRequest("POST", urls, body)
61321	if err != nil {
61322		return nil, err
61323	}
61324	req.Header = reqHeaders
61325	googleapi.Expand(req.URL, map[string]string{
61326		"project":  c.project,
61327		"zone":     c.zone,
61328		"resource": c.resource,
61329	})
61330	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61331}
61332
61333// Do executes the "compute.disks.setIamPolicy" call.
61334// Exactly one of *Policy or error will be non-nil. Any non-2xx status
61335// code is an error. Response headers are in either
61336// *Policy.ServerResponse.Header or (if a response was returned at all)
61337// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
61338// check whether the returned error was because http.StatusNotModified
61339// was returned.
61340func (c *DisksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
61341	gensupport.SetOptions(c.urlParams_, opts...)
61342	res, err := c.doRequest("json")
61343	if res != nil && res.StatusCode == http.StatusNotModified {
61344		if res.Body != nil {
61345			res.Body.Close()
61346		}
61347		return nil, &googleapi.Error{
61348			Code:   res.StatusCode,
61349			Header: res.Header,
61350		}
61351	}
61352	if err != nil {
61353		return nil, err
61354	}
61355	defer googleapi.CloseBody(res)
61356	if err := googleapi.CheckResponse(res); err != nil {
61357		return nil, err
61358	}
61359	ret := &Policy{
61360		ServerResponse: googleapi.ServerResponse{
61361			Header:         res.Header,
61362			HTTPStatusCode: res.StatusCode,
61363		},
61364	}
61365	target := &ret
61366	if err := gensupport.DecodeResponse(target, res); err != nil {
61367		return nil, err
61368	}
61369	return ret, nil
61370	// {
61371	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
61372	//   "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/setIamPolicy",
61373	//   "httpMethod": "POST",
61374	//   "id": "compute.disks.setIamPolicy",
61375	//   "parameterOrder": [
61376	//     "project",
61377	//     "zone",
61378	//     "resource"
61379	//   ],
61380	//   "parameters": {
61381	//     "project": {
61382	//       "description": "Project ID for this request.",
61383	//       "location": "path",
61384	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61385	//       "required": true,
61386	//       "type": "string"
61387	//     },
61388	//     "resource": {
61389	//       "description": "Name or id of the resource for this request.",
61390	//       "location": "path",
61391	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61392	//       "required": true,
61393	//       "type": "string"
61394	//     },
61395	//     "zone": {
61396	//       "description": "The name of the zone for this request.",
61397	//       "location": "path",
61398	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61399	//       "required": true,
61400	//       "type": "string"
61401	//     }
61402	//   },
61403	//   "path": "projects/{project}/zones/{zone}/disks/{resource}/setIamPolicy",
61404	//   "request": {
61405	//     "$ref": "ZoneSetPolicyRequest"
61406	//   },
61407	//   "response": {
61408	//     "$ref": "Policy"
61409	//   },
61410	//   "scopes": [
61411	//     "https://www.googleapis.com/auth/cloud-platform",
61412	//     "https://www.googleapis.com/auth/compute"
61413	//   ]
61414	// }
61415
61416}
61417
61418// method id "compute.disks.setLabels":
61419
61420type DisksSetLabelsCall struct {
61421	s                    *Service
61422	project              string
61423	zone                 string
61424	resource             string
61425	zonesetlabelsrequest *ZoneSetLabelsRequest
61426	urlParams_           gensupport.URLParams
61427	ctx_                 context.Context
61428	header_              http.Header
61429}
61430
61431// SetLabels: Sets the labels on a disk. To learn more about labels,
61432// read the Labeling Resources documentation.
61433//
61434// - project: Project ID for this request.
61435// - resource: Name or id of the resource for this request.
61436// - zone: The name of the zone for this request.
61437func (r *DisksService) SetLabels(project string, zone string, resource string, zonesetlabelsrequest *ZoneSetLabelsRequest) *DisksSetLabelsCall {
61438	c := &DisksSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61439	c.project = project
61440	c.zone = zone
61441	c.resource = resource
61442	c.zonesetlabelsrequest = zonesetlabelsrequest
61443	return c
61444}
61445
61446// RequestId sets the optional parameter "requestId": An optional
61447// request ID to identify requests. Specify a unique request ID so that
61448// if you must retry your request, the server will know to ignore the
61449// request if it has already been completed. For example, consider a
61450// situation where you make an initial request and the request times
61451// out. If you make the request again with the same request ID, the
61452// server can check if original operation with the same request ID was
61453// received, and if so, will ignore the second request. This prevents
61454// clients from accidentally creating duplicate commitments. The request
61455// ID must be a valid UUID with the exception that zero UUID is not
61456// supported ( 00000000-0000-0000-0000-000000000000).
61457func (c *DisksSetLabelsCall) RequestId(requestId string) *DisksSetLabelsCall {
61458	c.urlParams_.Set("requestId", requestId)
61459	return c
61460}
61461
61462// Fields allows partial responses to be retrieved. See
61463// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61464// for more information.
61465func (c *DisksSetLabelsCall) Fields(s ...googleapi.Field) *DisksSetLabelsCall {
61466	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61467	return c
61468}
61469
61470// Context sets the context to be used in this call's Do method. Any
61471// pending HTTP request will be aborted if the provided context is
61472// canceled.
61473func (c *DisksSetLabelsCall) Context(ctx context.Context) *DisksSetLabelsCall {
61474	c.ctx_ = ctx
61475	return c
61476}
61477
61478// Header returns an http.Header that can be modified by the caller to
61479// add HTTP headers to the request.
61480func (c *DisksSetLabelsCall) Header() http.Header {
61481	if c.header_ == nil {
61482		c.header_ = make(http.Header)
61483	}
61484	return c.header_
61485}
61486
61487func (c *DisksSetLabelsCall) doRequest(alt string) (*http.Response, error) {
61488	reqHeaders := make(http.Header)
61489	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
61490	for k, v := range c.header_ {
61491		reqHeaders[k] = v
61492	}
61493	reqHeaders.Set("User-Agent", c.s.userAgent())
61494	var body io.Reader = nil
61495	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetlabelsrequest)
61496	if err != nil {
61497		return nil, err
61498	}
61499	reqHeaders.Set("Content-Type", "application/json")
61500	c.urlParams_.Set("alt", alt)
61501	c.urlParams_.Set("prettyPrint", "false")
61502	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{resource}/setLabels")
61503	urls += "?" + c.urlParams_.Encode()
61504	req, err := http.NewRequest("POST", urls, body)
61505	if err != nil {
61506		return nil, err
61507	}
61508	req.Header = reqHeaders
61509	googleapi.Expand(req.URL, map[string]string{
61510		"project":  c.project,
61511		"zone":     c.zone,
61512		"resource": c.resource,
61513	})
61514	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61515}
61516
61517// Do executes the "compute.disks.setLabels" call.
61518// Exactly one of *Operation or error will be non-nil. Any non-2xx
61519// status code is an error. Response headers are in either
61520// *Operation.ServerResponse.Header or (if a response was returned at
61521// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61522// to check whether the returned error was because
61523// http.StatusNotModified was returned.
61524func (c *DisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61525	gensupport.SetOptions(c.urlParams_, opts...)
61526	res, err := c.doRequest("json")
61527	if res != nil && res.StatusCode == http.StatusNotModified {
61528		if res.Body != nil {
61529			res.Body.Close()
61530		}
61531		return nil, &googleapi.Error{
61532			Code:   res.StatusCode,
61533			Header: res.Header,
61534		}
61535	}
61536	if err != nil {
61537		return nil, err
61538	}
61539	defer googleapi.CloseBody(res)
61540	if err := googleapi.CheckResponse(res); err != nil {
61541		return nil, err
61542	}
61543	ret := &Operation{
61544		ServerResponse: googleapi.ServerResponse{
61545			Header:         res.Header,
61546			HTTPStatusCode: res.StatusCode,
61547		},
61548	}
61549	target := &ret
61550	if err := gensupport.DecodeResponse(target, res); err != nil {
61551		return nil, err
61552	}
61553	return ret, nil
61554	// {
61555	//   "description": "Sets the labels on a disk. To learn more about labels, read the Labeling Resources documentation.",
61556	//   "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/setLabels",
61557	//   "httpMethod": "POST",
61558	//   "id": "compute.disks.setLabels",
61559	//   "parameterOrder": [
61560	//     "project",
61561	//     "zone",
61562	//     "resource"
61563	//   ],
61564	//   "parameters": {
61565	//     "project": {
61566	//       "description": "Project ID for this request.",
61567	//       "location": "path",
61568	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61569	//       "required": true,
61570	//       "type": "string"
61571	//     },
61572	//     "requestId": {
61573	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
61574	//       "location": "query",
61575	//       "type": "string"
61576	//     },
61577	//     "resource": {
61578	//       "description": "Name or id of the resource for this request.",
61579	//       "location": "path",
61580	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61581	//       "required": true,
61582	//       "type": "string"
61583	//     },
61584	//     "zone": {
61585	//       "description": "The name of the zone for this request.",
61586	//       "location": "path",
61587	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61588	//       "required": true,
61589	//       "type": "string"
61590	//     }
61591	//   },
61592	//   "path": "projects/{project}/zones/{zone}/disks/{resource}/setLabels",
61593	//   "request": {
61594	//     "$ref": "ZoneSetLabelsRequest"
61595	//   },
61596	//   "response": {
61597	//     "$ref": "Operation"
61598	//   },
61599	//   "scopes": [
61600	//     "https://www.googleapis.com/auth/cloud-platform",
61601	//     "https://www.googleapis.com/auth/compute"
61602	//   ]
61603	// }
61604
61605}
61606
61607// method id "compute.disks.testIamPermissions":
61608
61609type DisksTestIamPermissionsCall struct {
61610	s                      *Service
61611	project                string
61612	zone                   string
61613	resource               string
61614	testpermissionsrequest *TestPermissionsRequest
61615	urlParams_             gensupport.URLParams
61616	ctx_                   context.Context
61617	header_                http.Header
61618}
61619
61620// TestIamPermissions: Returns permissions that a caller has on the
61621// specified resource.
61622//
61623// - project: Project ID for this request.
61624// - resource: Name or id of the resource for this request.
61625// - zone: The name of the zone for this request.
61626func (r *DisksService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *DisksTestIamPermissionsCall {
61627	c := &DisksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61628	c.project = project
61629	c.zone = zone
61630	c.resource = resource
61631	c.testpermissionsrequest = testpermissionsrequest
61632	return c
61633}
61634
61635// Fields allows partial responses to be retrieved. See
61636// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61637// for more information.
61638func (c *DisksTestIamPermissionsCall) Fields(s ...googleapi.Field) *DisksTestIamPermissionsCall {
61639	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61640	return c
61641}
61642
61643// Context sets the context to be used in this call's Do method. Any
61644// pending HTTP request will be aborted if the provided context is
61645// canceled.
61646func (c *DisksTestIamPermissionsCall) Context(ctx context.Context) *DisksTestIamPermissionsCall {
61647	c.ctx_ = ctx
61648	return c
61649}
61650
61651// Header returns an http.Header that can be modified by the caller to
61652// add HTTP headers to the request.
61653func (c *DisksTestIamPermissionsCall) Header() http.Header {
61654	if c.header_ == nil {
61655		c.header_ = make(http.Header)
61656	}
61657	return c.header_
61658}
61659
61660func (c *DisksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
61661	reqHeaders := make(http.Header)
61662	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
61663	for k, v := range c.header_ {
61664		reqHeaders[k] = v
61665	}
61666	reqHeaders.Set("User-Agent", c.s.userAgent())
61667	var body io.Reader = nil
61668	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
61669	if err != nil {
61670		return nil, err
61671	}
61672	reqHeaders.Set("Content-Type", "application/json")
61673	c.urlParams_.Set("alt", alt)
61674	c.urlParams_.Set("prettyPrint", "false")
61675	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{resource}/testIamPermissions")
61676	urls += "?" + c.urlParams_.Encode()
61677	req, err := http.NewRequest("POST", urls, body)
61678	if err != nil {
61679		return nil, err
61680	}
61681	req.Header = reqHeaders
61682	googleapi.Expand(req.URL, map[string]string{
61683		"project":  c.project,
61684		"zone":     c.zone,
61685		"resource": c.resource,
61686	})
61687	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61688}
61689
61690// Do executes the "compute.disks.testIamPermissions" call.
61691// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
61692// non-2xx status code is an error. Response headers are in either
61693// *TestPermissionsResponse.ServerResponse.Header or (if a response was
61694// returned at all) in error.(*googleapi.Error).Header. Use
61695// googleapi.IsNotModified to check whether the returned error was
61696// because http.StatusNotModified was returned.
61697func (c *DisksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
61698	gensupport.SetOptions(c.urlParams_, opts...)
61699	res, err := c.doRequest("json")
61700	if res != nil && res.StatusCode == http.StatusNotModified {
61701		if res.Body != nil {
61702			res.Body.Close()
61703		}
61704		return nil, &googleapi.Error{
61705			Code:   res.StatusCode,
61706			Header: res.Header,
61707		}
61708	}
61709	if err != nil {
61710		return nil, err
61711	}
61712	defer googleapi.CloseBody(res)
61713	if err := googleapi.CheckResponse(res); err != nil {
61714		return nil, err
61715	}
61716	ret := &TestPermissionsResponse{
61717		ServerResponse: googleapi.ServerResponse{
61718			Header:         res.Header,
61719			HTTPStatusCode: res.StatusCode,
61720		},
61721	}
61722	target := &ret
61723	if err := gensupport.DecodeResponse(target, res); err != nil {
61724		return nil, err
61725	}
61726	return ret, nil
61727	// {
61728	//   "description": "Returns permissions that a caller has on the specified resource.",
61729	//   "flatPath": "projects/{project}/zones/{zone}/disks/{resource}/testIamPermissions",
61730	//   "httpMethod": "POST",
61731	//   "id": "compute.disks.testIamPermissions",
61732	//   "parameterOrder": [
61733	//     "project",
61734	//     "zone",
61735	//     "resource"
61736	//   ],
61737	//   "parameters": {
61738	//     "project": {
61739	//       "description": "Project ID for this request.",
61740	//       "location": "path",
61741	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61742	//       "required": true,
61743	//       "type": "string"
61744	//     },
61745	//     "resource": {
61746	//       "description": "Name or id of the resource for this request.",
61747	//       "location": "path",
61748	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61749	//       "required": true,
61750	//       "type": "string"
61751	//     },
61752	//     "zone": {
61753	//       "description": "The name of the zone for this request.",
61754	//       "location": "path",
61755	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61756	//       "required": true,
61757	//       "type": "string"
61758	//     }
61759	//   },
61760	//   "path": "projects/{project}/zones/{zone}/disks/{resource}/testIamPermissions",
61761	//   "request": {
61762	//     "$ref": "TestPermissionsRequest"
61763	//   },
61764	//   "response": {
61765	//     "$ref": "TestPermissionsResponse"
61766	//   },
61767	//   "scopes": [
61768	//     "https://www.googleapis.com/auth/cloud-platform",
61769	//     "https://www.googleapis.com/auth/compute",
61770	//     "https://www.googleapis.com/auth/compute.readonly"
61771	//   ]
61772	// }
61773
61774}
61775
61776// method id "compute.externalVpnGateways.delete":
61777
61778type ExternalVpnGatewaysDeleteCall struct {
61779	s                  *Service
61780	project            string
61781	externalVpnGateway string
61782	urlParams_         gensupport.URLParams
61783	ctx_               context.Context
61784	header_            http.Header
61785}
61786
61787// Delete: Deletes the specified externalVpnGateway.
61788//
61789// - externalVpnGateway: Name of the externalVpnGateways to delete.
61790// - project: Project ID for this request.
61791func (r *ExternalVpnGatewaysService) Delete(project string, externalVpnGateway string) *ExternalVpnGatewaysDeleteCall {
61792	c := &ExternalVpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61793	c.project = project
61794	c.externalVpnGateway = externalVpnGateway
61795	return c
61796}
61797
61798// RequestId sets the optional parameter "requestId": An optional
61799// request ID to identify requests. Specify a unique request ID so that
61800// if you must retry your request, the server will know to ignore the
61801// request if it has already been completed. For example, consider a
61802// situation where you make an initial request and the request times
61803// out. If you make the request again with the same request ID, the
61804// server can check if original operation with the same request ID was
61805// received, and if so, will ignore the second request. This prevents
61806// clients from accidentally creating duplicate commitments. The request
61807// ID must be a valid UUID with the exception that zero UUID is not
61808// supported ( 00000000-0000-0000-0000-000000000000).
61809func (c *ExternalVpnGatewaysDeleteCall) RequestId(requestId string) *ExternalVpnGatewaysDeleteCall {
61810	c.urlParams_.Set("requestId", requestId)
61811	return c
61812}
61813
61814// Fields allows partial responses to be retrieved. See
61815// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61816// for more information.
61817func (c *ExternalVpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysDeleteCall {
61818	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61819	return c
61820}
61821
61822// Context sets the context to be used in this call's Do method. Any
61823// pending HTTP request will be aborted if the provided context is
61824// canceled.
61825func (c *ExternalVpnGatewaysDeleteCall) Context(ctx context.Context) *ExternalVpnGatewaysDeleteCall {
61826	c.ctx_ = ctx
61827	return c
61828}
61829
61830// Header returns an http.Header that can be modified by the caller to
61831// add HTTP headers to the request.
61832func (c *ExternalVpnGatewaysDeleteCall) Header() http.Header {
61833	if c.header_ == nil {
61834		c.header_ = make(http.Header)
61835	}
61836	return c.header_
61837}
61838
61839func (c *ExternalVpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
61840	reqHeaders := make(http.Header)
61841	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
61842	for k, v := range c.header_ {
61843		reqHeaders[k] = v
61844	}
61845	reqHeaders.Set("User-Agent", c.s.userAgent())
61846	var body io.Reader = nil
61847	c.urlParams_.Set("alt", alt)
61848	c.urlParams_.Set("prettyPrint", "false")
61849	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways/{externalVpnGateway}")
61850	urls += "?" + c.urlParams_.Encode()
61851	req, err := http.NewRequest("DELETE", urls, body)
61852	if err != nil {
61853		return nil, err
61854	}
61855	req.Header = reqHeaders
61856	googleapi.Expand(req.URL, map[string]string{
61857		"project":            c.project,
61858		"externalVpnGateway": c.externalVpnGateway,
61859	})
61860	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61861}
61862
61863// Do executes the "compute.externalVpnGateways.delete" call.
61864// Exactly one of *Operation or error will be non-nil. Any non-2xx
61865// status code is an error. Response headers are in either
61866// *Operation.ServerResponse.Header or (if a response was returned at
61867// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61868// to check whether the returned error was because
61869// http.StatusNotModified was returned.
61870func (c *ExternalVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61871	gensupport.SetOptions(c.urlParams_, opts...)
61872	res, err := c.doRequest("json")
61873	if res != nil && res.StatusCode == http.StatusNotModified {
61874		if res.Body != nil {
61875			res.Body.Close()
61876		}
61877		return nil, &googleapi.Error{
61878			Code:   res.StatusCode,
61879			Header: res.Header,
61880		}
61881	}
61882	if err != nil {
61883		return nil, err
61884	}
61885	defer googleapi.CloseBody(res)
61886	if err := googleapi.CheckResponse(res); err != nil {
61887		return nil, err
61888	}
61889	ret := &Operation{
61890		ServerResponse: googleapi.ServerResponse{
61891			Header:         res.Header,
61892			HTTPStatusCode: res.StatusCode,
61893		},
61894	}
61895	target := &ret
61896	if err := gensupport.DecodeResponse(target, res); err != nil {
61897		return nil, err
61898	}
61899	return ret, nil
61900	// {
61901	//   "description": "Deletes the specified externalVpnGateway.",
61902	//   "flatPath": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}",
61903	//   "httpMethod": "DELETE",
61904	//   "id": "compute.externalVpnGateways.delete",
61905	//   "parameterOrder": [
61906	//     "project",
61907	//     "externalVpnGateway"
61908	//   ],
61909	//   "parameters": {
61910	//     "externalVpnGateway": {
61911	//       "description": "Name of the externalVpnGateways to delete.",
61912	//       "location": "path",
61913	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61914	//       "required": true,
61915	//       "type": "string"
61916	//     },
61917	//     "project": {
61918	//       "description": "Project ID for this request.",
61919	//       "location": "path",
61920	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61921	//       "required": true,
61922	//       "type": "string"
61923	//     },
61924	//     "requestId": {
61925	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
61926	//       "location": "query",
61927	//       "type": "string"
61928	//     }
61929	//   },
61930	//   "path": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}",
61931	//   "response": {
61932	//     "$ref": "Operation"
61933	//   },
61934	//   "scopes": [
61935	//     "https://www.googleapis.com/auth/cloud-platform",
61936	//     "https://www.googleapis.com/auth/compute"
61937	//   ]
61938	// }
61939
61940}
61941
61942// method id "compute.externalVpnGateways.get":
61943
61944type ExternalVpnGatewaysGetCall struct {
61945	s                  *Service
61946	project            string
61947	externalVpnGateway string
61948	urlParams_         gensupport.URLParams
61949	ifNoneMatch_       string
61950	ctx_               context.Context
61951	header_            http.Header
61952}
61953
61954// Get: Returns the specified externalVpnGateway. Get a list of
61955// available externalVpnGateways by making a list() request.
61956//
61957// - externalVpnGateway: Name of the externalVpnGateway to return.
61958// - project: Project ID for this request.
61959func (r *ExternalVpnGatewaysService) Get(project string, externalVpnGateway string) *ExternalVpnGatewaysGetCall {
61960	c := &ExternalVpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61961	c.project = project
61962	c.externalVpnGateway = externalVpnGateway
61963	return c
61964}
61965
61966// Fields allows partial responses to be retrieved. See
61967// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61968// for more information.
61969func (c *ExternalVpnGatewaysGetCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysGetCall {
61970	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61971	return c
61972}
61973
61974// IfNoneMatch sets the optional parameter which makes the operation
61975// fail if the object's ETag matches the given value. This is useful for
61976// getting updates only after the object has changed since the last
61977// request. Use googleapi.IsNotModified to check whether the response
61978// error from Do is the result of In-None-Match.
61979func (c *ExternalVpnGatewaysGetCall) IfNoneMatch(entityTag string) *ExternalVpnGatewaysGetCall {
61980	c.ifNoneMatch_ = entityTag
61981	return c
61982}
61983
61984// Context sets the context to be used in this call's Do method. Any
61985// pending HTTP request will be aborted if the provided context is
61986// canceled.
61987func (c *ExternalVpnGatewaysGetCall) Context(ctx context.Context) *ExternalVpnGatewaysGetCall {
61988	c.ctx_ = ctx
61989	return c
61990}
61991
61992// Header returns an http.Header that can be modified by the caller to
61993// add HTTP headers to the request.
61994func (c *ExternalVpnGatewaysGetCall) Header() http.Header {
61995	if c.header_ == nil {
61996		c.header_ = make(http.Header)
61997	}
61998	return c.header_
61999}
62000
62001func (c *ExternalVpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
62002	reqHeaders := make(http.Header)
62003	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
62004	for k, v := range c.header_ {
62005		reqHeaders[k] = v
62006	}
62007	reqHeaders.Set("User-Agent", c.s.userAgent())
62008	if c.ifNoneMatch_ != "" {
62009		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
62010	}
62011	var body io.Reader = nil
62012	c.urlParams_.Set("alt", alt)
62013	c.urlParams_.Set("prettyPrint", "false")
62014	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways/{externalVpnGateway}")
62015	urls += "?" + c.urlParams_.Encode()
62016	req, err := http.NewRequest("GET", urls, body)
62017	if err != nil {
62018		return nil, err
62019	}
62020	req.Header = reqHeaders
62021	googleapi.Expand(req.URL, map[string]string{
62022		"project":            c.project,
62023		"externalVpnGateway": c.externalVpnGateway,
62024	})
62025	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62026}
62027
62028// Do executes the "compute.externalVpnGateways.get" call.
62029// Exactly one of *ExternalVpnGateway or error will be non-nil. Any
62030// non-2xx status code is an error. Response headers are in either
62031// *ExternalVpnGateway.ServerResponse.Header or (if a response was
62032// returned at all) in error.(*googleapi.Error).Header. Use
62033// googleapi.IsNotModified to check whether the returned error was
62034// because http.StatusNotModified was returned.
62035func (c *ExternalVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*ExternalVpnGateway, error) {
62036	gensupport.SetOptions(c.urlParams_, opts...)
62037	res, err := c.doRequest("json")
62038	if res != nil && res.StatusCode == http.StatusNotModified {
62039		if res.Body != nil {
62040			res.Body.Close()
62041		}
62042		return nil, &googleapi.Error{
62043			Code:   res.StatusCode,
62044			Header: res.Header,
62045		}
62046	}
62047	if err != nil {
62048		return nil, err
62049	}
62050	defer googleapi.CloseBody(res)
62051	if err := googleapi.CheckResponse(res); err != nil {
62052		return nil, err
62053	}
62054	ret := &ExternalVpnGateway{
62055		ServerResponse: googleapi.ServerResponse{
62056			Header:         res.Header,
62057			HTTPStatusCode: res.StatusCode,
62058		},
62059	}
62060	target := &ret
62061	if err := gensupport.DecodeResponse(target, res); err != nil {
62062		return nil, err
62063	}
62064	return ret, nil
62065	// {
62066	//   "description": "Returns the specified externalVpnGateway. Get a list of available externalVpnGateways by making a list() request.",
62067	//   "flatPath": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}",
62068	//   "httpMethod": "GET",
62069	//   "id": "compute.externalVpnGateways.get",
62070	//   "parameterOrder": [
62071	//     "project",
62072	//     "externalVpnGateway"
62073	//   ],
62074	//   "parameters": {
62075	//     "externalVpnGateway": {
62076	//       "description": "Name of the externalVpnGateway to return.",
62077	//       "location": "path",
62078	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
62079	//       "required": true,
62080	//       "type": "string"
62081	//     },
62082	//     "project": {
62083	//       "description": "Project ID for this request.",
62084	//       "location": "path",
62085	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62086	//       "required": true,
62087	//       "type": "string"
62088	//     }
62089	//   },
62090	//   "path": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}",
62091	//   "response": {
62092	//     "$ref": "ExternalVpnGateway"
62093	//   },
62094	//   "scopes": [
62095	//     "https://www.googleapis.com/auth/cloud-platform",
62096	//     "https://www.googleapis.com/auth/compute",
62097	//     "https://www.googleapis.com/auth/compute.readonly"
62098	//   ]
62099	// }
62100
62101}
62102
62103// method id "compute.externalVpnGateways.insert":
62104
62105type ExternalVpnGatewaysInsertCall struct {
62106	s                  *Service
62107	project            string
62108	externalvpngateway *ExternalVpnGateway
62109	urlParams_         gensupport.URLParams
62110	ctx_               context.Context
62111	header_            http.Header
62112}
62113
62114// Insert: Creates a ExternalVpnGateway in the specified project using
62115// the data included in the request.
62116//
62117// - project: Project ID for this request.
62118func (r *ExternalVpnGatewaysService) Insert(project string, externalvpngateway *ExternalVpnGateway) *ExternalVpnGatewaysInsertCall {
62119	c := &ExternalVpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62120	c.project = project
62121	c.externalvpngateway = externalvpngateway
62122	return c
62123}
62124
62125// RequestId sets the optional parameter "requestId": An optional
62126// request ID to identify requests. Specify a unique request ID so that
62127// if you must retry your request, the server will know to ignore the
62128// request if it has already been completed. For example, consider a
62129// situation where you make an initial request and the request times
62130// out. If you make the request again with the same request ID, the
62131// server can check if original operation with the same request ID was
62132// received, and if so, will ignore the second request. This prevents
62133// clients from accidentally creating duplicate commitments. The request
62134// ID must be a valid UUID with the exception that zero UUID is not
62135// supported ( 00000000-0000-0000-0000-000000000000).
62136func (c *ExternalVpnGatewaysInsertCall) RequestId(requestId string) *ExternalVpnGatewaysInsertCall {
62137	c.urlParams_.Set("requestId", requestId)
62138	return c
62139}
62140
62141// Fields allows partial responses to be retrieved. See
62142// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62143// for more information.
62144func (c *ExternalVpnGatewaysInsertCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysInsertCall {
62145	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62146	return c
62147}
62148
62149// Context sets the context to be used in this call's Do method. Any
62150// pending HTTP request will be aborted if the provided context is
62151// canceled.
62152func (c *ExternalVpnGatewaysInsertCall) Context(ctx context.Context) *ExternalVpnGatewaysInsertCall {
62153	c.ctx_ = ctx
62154	return c
62155}
62156
62157// Header returns an http.Header that can be modified by the caller to
62158// add HTTP headers to the request.
62159func (c *ExternalVpnGatewaysInsertCall) Header() http.Header {
62160	if c.header_ == nil {
62161		c.header_ = make(http.Header)
62162	}
62163	return c.header_
62164}
62165
62166func (c *ExternalVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
62167	reqHeaders := make(http.Header)
62168	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
62169	for k, v := range c.header_ {
62170		reqHeaders[k] = v
62171	}
62172	reqHeaders.Set("User-Agent", c.s.userAgent())
62173	var body io.Reader = nil
62174	body, err := googleapi.WithoutDataWrapper.JSONReader(c.externalvpngateway)
62175	if err != nil {
62176		return nil, err
62177	}
62178	reqHeaders.Set("Content-Type", "application/json")
62179	c.urlParams_.Set("alt", alt)
62180	c.urlParams_.Set("prettyPrint", "false")
62181	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways")
62182	urls += "?" + c.urlParams_.Encode()
62183	req, err := http.NewRequest("POST", urls, body)
62184	if err != nil {
62185		return nil, err
62186	}
62187	req.Header = reqHeaders
62188	googleapi.Expand(req.URL, map[string]string{
62189		"project": c.project,
62190	})
62191	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62192}
62193
62194// Do executes the "compute.externalVpnGateways.insert" call.
62195// Exactly one of *Operation or error will be non-nil. Any non-2xx
62196// status code is an error. Response headers are in either
62197// *Operation.ServerResponse.Header or (if a response was returned at
62198// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62199// to check whether the returned error was because
62200// http.StatusNotModified was returned.
62201func (c *ExternalVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62202	gensupport.SetOptions(c.urlParams_, opts...)
62203	res, err := c.doRequest("json")
62204	if res != nil && res.StatusCode == http.StatusNotModified {
62205		if res.Body != nil {
62206			res.Body.Close()
62207		}
62208		return nil, &googleapi.Error{
62209			Code:   res.StatusCode,
62210			Header: res.Header,
62211		}
62212	}
62213	if err != nil {
62214		return nil, err
62215	}
62216	defer googleapi.CloseBody(res)
62217	if err := googleapi.CheckResponse(res); err != nil {
62218		return nil, err
62219	}
62220	ret := &Operation{
62221		ServerResponse: googleapi.ServerResponse{
62222			Header:         res.Header,
62223			HTTPStatusCode: res.StatusCode,
62224		},
62225	}
62226	target := &ret
62227	if err := gensupport.DecodeResponse(target, res); err != nil {
62228		return nil, err
62229	}
62230	return ret, nil
62231	// {
62232	//   "description": "Creates a ExternalVpnGateway in the specified project using the data included in the request.",
62233	//   "flatPath": "projects/{project}/global/externalVpnGateways",
62234	//   "httpMethod": "POST",
62235	//   "id": "compute.externalVpnGateways.insert",
62236	//   "parameterOrder": [
62237	//     "project"
62238	//   ],
62239	//   "parameters": {
62240	//     "project": {
62241	//       "description": "Project ID for this request.",
62242	//       "location": "path",
62243	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62244	//       "required": true,
62245	//       "type": "string"
62246	//     },
62247	//     "requestId": {
62248	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
62249	//       "location": "query",
62250	//       "type": "string"
62251	//     }
62252	//   },
62253	//   "path": "projects/{project}/global/externalVpnGateways",
62254	//   "request": {
62255	//     "$ref": "ExternalVpnGateway"
62256	//   },
62257	//   "response": {
62258	//     "$ref": "Operation"
62259	//   },
62260	//   "scopes": [
62261	//     "https://www.googleapis.com/auth/cloud-platform",
62262	//     "https://www.googleapis.com/auth/compute"
62263	//   ]
62264	// }
62265
62266}
62267
62268// method id "compute.externalVpnGateways.list":
62269
62270type ExternalVpnGatewaysListCall struct {
62271	s            *Service
62272	project      string
62273	urlParams_   gensupport.URLParams
62274	ifNoneMatch_ string
62275	ctx_         context.Context
62276	header_      http.Header
62277}
62278
62279// List: Retrieves the list of ExternalVpnGateway available to the
62280// specified project.
62281//
62282// - project: Project ID for this request.
62283func (r *ExternalVpnGatewaysService) List(project string) *ExternalVpnGatewaysListCall {
62284	c := &ExternalVpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62285	c.project = project
62286	return c
62287}
62288
62289// Filter sets the optional parameter "filter": A filter expression that
62290// filters resources listed in the response. The expression must specify
62291// the field name, a comparison operator, and the value that you want to
62292// use for filtering. The value must be a string, a number, or a
62293// boolean. The comparison operator must be either `=`, `!=`, `>`, or
62294// `<`. For example, if you are filtering Compute Engine instances, you
62295// can exclude instances named `example-instance` by specifying `name !=
62296// example-instance`. You can also filter nested fields. For example,
62297// you could specify `scheduling.automaticRestart = false` to include
62298// instances only if they are not scheduled for automatic restarts. You
62299// can use filtering on nested fields to filter based on resource
62300// labels. To filter on multiple expressions, provide each separate
62301// expression within parentheses. For example: ```
62302// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
62303// ``` By default, each expression is an `AND` expression. However, you
62304// can include `AND` and `OR` expressions explicitly. For example: ```
62305// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
62306// AND (scheduling.automaticRestart = true) ```
62307func (c *ExternalVpnGatewaysListCall) Filter(filter string) *ExternalVpnGatewaysListCall {
62308	c.urlParams_.Set("filter", filter)
62309	return c
62310}
62311
62312// MaxResults sets the optional parameter "maxResults": The maximum
62313// number of results per page that should be returned. If the number of
62314// available results is larger than `maxResults`, Compute Engine returns
62315// a `nextPageToken` that can be used to get the next page of results in
62316// subsequent list requests. Acceptable values are `0` to `500`,
62317// inclusive. (Default: `500`)
62318func (c *ExternalVpnGatewaysListCall) MaxResults(maxResults int64) *ExternalVpnGatewaysListCall {
62319	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
62320	return c
62321}
62322
62323// OrderBy sets the optional parameter "orderBy": Sorts list results by
62324// a certain order. By default, results are returned in alphanumerical
62325// order based on the resource name. You can also sort results in
62326// descending order based on the creation timestamp using
62327// `orderBy="creationTimestamp desc". This sorts results based on the
62328// `creationTimestamp` field in reverse chronological order (newest
62329// result first). Use this to sort resources like operations so that the
62330// newest operation is returned first. Currently, only sorting by `name`
62331// or `creationTimestamp desc` is supported.
62332func (c *ExternalVpnGatewaysListCall) OrderBy(orderBy string) *ExternalVpnGatewaysListCall {
62333	c.urlParams_.Set("orderBy", orderBy)
62334	return c
62335}
62336
62337// PageToken sets the optional parameter "pageToken": Specifies a page
62338// token to use. Set `pageToken` to the `nextPageToken` returned by a
62339// previous list request to get the next page of results.
62340func (c *ExternalVpnGatewaysListCall) PageToken(pageToken string) *ExternalVpnGatewaysListCall {
62341	c.urlParams_.Set("pageToken", pageToken)
62342	return c
62343}
62344
62345// ReturnPartialSuccess sets the optional parameter
62346// "returnPartialSuccess": Opt-in for partial success behavior which
62347// provides partial results in case of failure. The default value is
62348// false.
62349func (c *ExternalVpnGatewaysListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ExternalVpnGatewaysListCall {
62350	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
62351	return c
62352}
62353
62354// Fields allows partial responses to be retrieved. See
62355// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62356// for more information.
62357func (c *ExternalVpnGatewaysListCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysListCall {
62358	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62359	return c
62360}
62361
62362// IfNoneMatch sets the optional parameter which makes the operation
62363// fail if the object's ETag matches the given value. This is useful for
62364// getting updates only after the object has changed since the last
62365// request. Use googleapi.IsNotModified to check whether the response
62366// error from Do is the result of In-None-Match.
62367func (c *ExternalVpnGatewaysListCall) IfNoneMatch(entityTag string) *ExternalVpnGatewaysListCall {
62368	c.ifNoneMatch_ = entityTag
62369	return c
62370}
62371
62372// Context sets the context to be used in this call's Do method. Any
62373// pending HTTP request will be aborted if the provided context is
62374// canceled.
62375func (c *ExternalVpnGatewaysListCall) Context(ctx context.Context) *ExternalVpnGatewaysListCall {
62376	c.ctx_ = ctx
62377	return c
62378}
62379
62380// Header returns an http.Header that can be modified by the caller to
62381// add HTTP headers to the request.
62382func (c *ExternalVpnGatewaysListCall) Header() http.Header {
62383	if c.header_ == nil {
62384		c.header_ = make(http.Header)
62385	}
62386	return c.header_
62387}
62388
62389func (c *ExternalVpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
62390	reqHeaders := make(http.Header)
62391	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
62392	for k, v := range c.header_ {
62393		reqHeaders[k] = v
62394	}
62395	reqHeaders.Set("User-Agent", c.s.userAgent())
62396	if c.ifNoneMatch_ != "" {
62397		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
62398	}
62399	var body io.Reader = nil
62400	c.urlParams_.Set("alt", alt)
62401	c.urlParams_.Set("prettyPrint", "false")
62402	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways")
62403	urls += "?" + c.urlParams_.Encode()
62404	req, err := http.NewRequest("GET", urls, body)
62405	if err != nil {
62406		return nil, err
62407	}
62408	req.Header = reqHeaders
62409	googleapi.Expand(req.URL, map[string]string{
62410		"project": c.project,
62411	})
62412	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62413}
62414
62415// Do executes the "compute.externalVpnGateways.list" call.
62416// Exactly one of *ExternalVpnGatewayList or error will be non-nil. Any
62417// non-2xx status code is an error. Response headers are in either
62418// *ExternalVpnGatewayList.ServerResponse.Header or (if a response was
62419// returned at all) in error.(*googleapi.Error).Header. Use
62420// googleapi.IsNotModified to check whether the returned error was
62421// because http.StatusNotModified was returned.
62422func (c *ExternalVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*ExternalVpnGatewayList, error) {
62423	gensupport.SetOptions(c.urlParams_, opts...)
62424	res, err := c.doRequest("json")
62425	if res != nil && res.StatusCode == http.StatusNotModified {
62426		if res.Body != nil {
62427			res.Body.Close()
62428		}
62429		return nil, &googleapi.Error{
62430			Code:   res.StatusCode,
62431			Header: res.Header,
62432		}
62433	}
62434	if err != nil {
62435		return nil, err
62436	}
62437	defer googleapi.CloseBody(res)
62438	if err := googleapi.CheckResponse(res); err != nil {
62439		return nil, err
62440	}
62441	ret := &ExternalVpnGatewayList{
62442		ServerResponse: googleapi.ServerResponse{
62443			Header:         res.Header,
62444			HTTPStatusCode: res.StatusCode,
62445		},
62446	}
62447	target := &ret
62448	if err := gensupport.DecodeResponse(target, res); err != nil {
62449		return nil, err
62450	}
62451	return ret, nil
62452	// {
62453	//   "description": "Retrieves the list of ExternalVpnGateway available to the specified project.",
62454	//   "flatPath": "projects/{project}/global/externalVpnGateways",
62455	//   "httpMethod": "GET",
62456	//   "id": "compute.externalVpnGateways.list",
62457	//   "parameterOrder": [
62458	//     "project"
62459	//   ],
62460	//   "parameters": {
62461	//     "filter": {
62462	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
62463	//       "location": "query",
62464	//       "type": "string"
62465	//     },
62466	//     "maxResults": {
62467	//       "default": "500",
62468	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
62469	//       "format": "uint32",
62470	//       "location": "query",
62471	//       "minimum": "0",
62472	//       "type": "integer"
62473	//     },
62474	//     "orderBy": {
62475	//       "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.",
62476	//       "location": "query",
62477	//       "type": "string"
62478	//     },
62479	//     "pageToken": {
62480	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
62481	//       "location": "query",
62482	//       "type": "string"
62483	//     },
62484	//     "project": {
62485	//       "description": "Project ID for this request.",
62486	//       "location": "path",
62487	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62488	//       "required": true,
62489	//       "type": "string"
62490	//     },
62491	//     "returnPartialSuccess": {
62492	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
62493	//       "location": "query",
62494	//       "type": "boolean"
62495	//     }
62496	//   },
62497	//   "path": "projects/{project}/global/externalVpnGateways",
62498	//   "response": {
62499	//     "$ref": "ExternalVpnGatewayList"
62500	//   },
62501	//   "scopes": [
62502	//     "https://www.googleapis.com/auth/cloud-platform",
62503	//     "https://www.googleapis.com/auth/compute",
62504	//     "https://www.googleapis.com/auth/compute.readonly"
62505	//   ]
62506	// }
62507
62508}
62509
62510// Pages invokes f for each page of results.
62511// A non-nil error returned from f will halt the iteration.
62512// The provided context supersedes any context provided to the Context method.
62513func (c *ExternalVpnGatewaysListCall) Pages(ctx context.Context, f func(*ExternalVpnGatewayList) error) error {
62514	c.ctx_ = ctx
62515	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
62516	for {
62517		x, err := c.Do()
62518		if err != nil {
62519			return err
62520		}
62521		if err := f(x); err != nil {
62522			return err
62523		}
62524		if x.NextPageToken == "" {
62525			return nil
62526		}
62527		c.PageToken(x.NextPageToken)
62528	}
62529}
62530
62531// method id "compute.externalVpnGateways.setLabels":
62532
62533type ExternalVpnGatewaysSetLabelsCall struct {
62534	s                      *Service
62535	project                string
62536	resource               string
62537	globalsetlabelsrequest *GlobalSetLabelsRequest
62538	urlParams_             gensupport.URLParams
62539	ctx_                   context.Context
62540	header_                http.Header
62541}
62542
62543// SetLabels: Sets the labels on an ExternalVpnGateway. To learn more
62544// about labels, read the Labeling Resources documentation.
62545//
62546// - project: Project ID for this request.
62547// - resource: Name or id of the resource for this request.
62548func (r *ExternalVpnGatewaysService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *ExternalVpnGatewaysSetLabelsCall {
62549	c := &ExternalVpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62550	c.project = project
62551	c.resource = resource
62552	c.globalsetlabelsrequest = globalsetlabelsrequest
62553	return c
62554}
62555
62556// Fields allows partial responses to be retrieved. See
62557// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62558// for more information.
62559func (c *ExternalVpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysSetLabelsCall {
62560	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62561	return c
62562}
62563
62564// Context sets the context to be used in this call's Do method. Any
62565// pending HTTP request will be aborted if the provided context is
62566// canceled.
62567func (c *ExternalVpnGatewaysSetLabelsCall) Context(ctx context.Context) *ExternalVpnGatewaysSetLabelsCall {
62568	c.ctx_ = ctx
62569	return c
62570}
62571
62572// Header returns an http.Header that can be modified by the caller to
62573// add HTTP headers to the request.
62574func (c *ExternalVpnGatewaysSetLabelsCall) Header() http.Header {
62575	if c.header_ == nil {
62576		c.header_ = make(http.Header)
62577	}
62578	return c.header_
62579}
62580
62581func (c *ExternalVpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) {
62582	reqHeaders := make(http.Header)
62583	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
62584	for k, v := range c.header_ {
62585		reqHeaders[k] = v
62586	}
62587	reqHeaders.Set("User-Agent", c.s.userAgent())
62588	var body io.Reader = nil
62589	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
62590	if err != nil {
62591		return nil, err
62592	}
62593	reqHeaders.Set("Content-Type", "application/json")
62594	c.urlParams_.Set("alt", alt)
62595	c.urlParams_.Set("prettyPrint", "false")
62596	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways/{resource}/setLabels")
62597	urls += "?" + c.urlParams_.Encode()
62598	req, err := http.NewRequest("POST", urls, body)
62599	if err != nil {
62600		return nil, err
62601	}
62602	req.Header = reqHeaders
62603	googleapi.Expand(req.URL, map[string]string{
62604		"project":  c.project,
62605		"resource": c.resource,
62606	})
62607	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62608}
62609
62610// Do executes the "compute.externalVpnGateways.setLabels" call.
62611// Exactly one of *Operation or error will be non-nil. Any non-2xx
62612// status code is an error. Response headers are in either
62613// *Operation.ServerResponse.Header or (if a response was returned at
62614// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62615// to check whether the returned error was because
62616// http.StatusNotModified was returned.
62617func (c *ExternalVpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62618	gensupport.SetOptions(c.urlParams_, opts...)
62619	res, err := c.doRequest("json")
62620	if res != nil && res.StatusCode == http.StatusNotModified {
62621		if res.Body != nil {
62622			res.Body.Close()
62623		}
62624		return nil, &googleapi.Error{
62625			Code:   res.StatusCode,
62626			Header: res.Header,
62627		}
62628	}
62629	if err != nil {
62630		return nil, err
62631	}
62632	defer googleapi.CloseBody(res)
62633	if err := googleapi.CheckResponse(res); err != nil {
62634		return nil, err
62635	}
62636	ret := &Operation{
62637		ServerResponse: googleapi.ServerResponse{
62638			Header:         res.Header,
62639			HTTPStatusCode: res.StatusCode,
62640		},
62641	}
62642	target := &ret
62643	if err := gensupport.DecodeResponse(target, res); err != nil {
62644		return nil, err
62645	}
62646	return ret, nil
62647	// {
62648	//   "description": "Sets the labels on an ExternalVpnGateway. To learn more about labels, read the Labeling Resources documentation.",
62649	//   "flatPath": "projects/{project}/global/externalVpnGateways/{resource}/setLabels",
62650	//   "httpMethod": "POST",
62651	//   "id": "compute.externalVpnGateways.setLabels",
62652	//   "parameterOrder": [
62653	//     "project",
62654	//     "resource"
62655	//   ],
62656	//   "parameters": {
62657	//     "project": {
62658	//       "description": "Project ID for this request.",
62659	//       "location": "path",
62660	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62661	//       "required": true,
62662	//       "type": "string"
62663	//     },
62664	//     "resource": {
62665	//       "description": "Name or id of the resource for this request.",
62666	//       "location": "path",
62667	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62668	//       "required": true,
62669	//       "type": "string"
62670	//     }
62671	//   },
62672	//   "path": "projects/{project}/global/externalVpnGateways/{resource}/setLabels",
62673	//   "request": {
62674	//     "$ref": "GlobalSetLabelsRequest"
62675	//   },
62676	//   "response": {
62677	//     "$ref": "Operation"
62678	//   },
62679	//   "scopes": [
62680	//     "https://www.googleapis.com/auth/cloud-platform",
62681	//     "https://www.googleapis.com/auth/compute"
62682	//   ]
62683	// }
62684
62685}
62686
62687// method id "compute.externalVpnGateways.testIamPermissions":
62688
62689type ExternalVpnGatewaysTestIamPermissionsCall struct {
62690	s                      *Service
62691	project                string
62692	resource               string
62693	testpermissionsrequest *TestPermissionsRequest
62694	urlParams_             gensupport.URLParams
62695	ctx_                   context.Context
62696	header_                http.Header
62697}
62698
62699// TestIamPermissions: Returns permissions that a caller has on the
62700// specified resource.
62701//
62702// - project: Project ID for this request.
62703// - resource: Name or id of the resource for this request.
62704func (r *ExternalVpnGatewaysService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *ExternalVpnGatewaysTestIamPermissionsCall {
62705	c := &ExternalVpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62706	c.project = project
62707	c.resource = resource
62708	c.testpermissionsrequest = testpermissionsrequest
62709	return c
62710}
62711
62712// Fields allows partial responses to be retrieved. See
62713// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62714// for more information.
62715func (c *ExternalVpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysTestIamPermissionsCall {
62716	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62717	return c
62718}
62719
62720// Context sets the context to be used in this call's Do method. Any
62721// pending HTTP request will be aborted if the provided context is
62722// canceled.
62723func (c *ExternalVpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *ExternalVpnGatewaysTestIamPermissionsCall {
62724	c.ctx_ = ctx
62725	return c
62726}
62727
62728// Header returns an http.Header that can be modified by the caller to
62729// add HTTP headers to the request.
62730func (c *ExternalVpnGatewaysTestIamPermissionsCall) Header() http.Header {
62731	if c.header_ == nil {
62732		c.header_ = make(http.Header)
62733	}
62734	return c.header_
62735}
62736
62737func (c *ExternalVpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
62738	reqHeaders := make(http.Header)
62739	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
62740	for k, v := range c.header_ {
62741		reqHeaders[k] = v
62742	}
62743	reqHeaders.Set("User-Agent", c.s.userAgent())
62744	var body io.Reader = nil
62745	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
62746	if err != nil {
62747		return nil, err
62748	}
62749	reqHeaders.Set("Content-Type", "application/json")
62750	c.urlParams_.Set("alt", alt)
62751	c.urlParams_.Set("prettyPrint", "false")
62752	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways/{resource}/testIamPermissions")
62753	urls += "?" + c.urlParams_.Encode()
62754	req, err := http.NewRequest("POST", urls, body)
62755	if err != nil {
62756		return nil, err
62757	}
62758	req.Header = reqHeaders
62759	googleapi.Expand(req.URL, map[string]string{
62760		"project":  c.project,
62761		"resource": c.resource,
62762	})
62763	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62764}
62765
62766// Do executes the "compute.externalVpnGateways.testIamPermissions" call.
62767// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
62768// non-2xx status code is an error. Response headers are in either
62769// *TestPermissionsResponse.ServerResponse.Header or (if a response was
62770// returned at all) in error.(*googleapi.Error).Header. Use
62771// googleapi.IsNotModified to check whether the returned error was
62772// because http.StatusNotModified was returned.
62773func (c *ExternalVpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
62774	gensupport.SetOptions(c.urlParams_, opts...)
62775	res, err := c.doRequest("json")
62776	if res != nil && res.StatusCode == http.StatusNotModified {
62777		if res.Body != nil {
62778			res.Body.Close()
62779		}
62780		return nil, &googleapi.Error{
62781			Code:   res.StatusCode,
62782			Header: res.Header,
62783		}
62784	}
62785	if err != nil {
62786		return nil, err
62787	}
62788	defer googleapi.CloseBody(res)
62789	if err := googleapi.CheckResponse(res); err != nil {
62790		return nil, err
62791	}
62792	ret := &TestPermissionsResponse{
62793		ServerResponse: googleapi.ServerResponse{
62794			Header:         res.Header,
62795			HTTPStatusCode: res.StatusCode,
62796		},
62797	}
62798	target := &ret
62799	if err := gensupport.DecodeResponse(target, res); err != nil {
62800		return nil, err
62801	}
62802	return ret, nil
62803	// {
62804	//   "description": "Returns permissions that a caller has on the specified resource.",
62805	//   "flatPath": "projects/{project}/global/externalVpnGateways/{resource}/testIamPermissions",
62806	//   "httpMethod": "POST",
62807	//   "id": "compute.externalVpnGateways.testIamPermissions",
62808	//   "parameterOrder": [
62809	//     "project",
62810	//     "resource"
62811	//   ],
62812	//   "parameters": {
62813	//     "project": {
62814	//       "description": "Project ID for this request.",
62815	//       "location": "path",
62816	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62817	//       "required": true,
62818	//       "type": "string"
62819	//     },
62820	//     "resource": {
62821	//       "description": "Name or id of the resource for this request.",
62822	//       "location": "path",
62823	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62824	//       "required": true,
62825	//       "type": "string"
62826	//     }
62827	//   },
62828	//   "path": "projects/{project}/global/externalVpnGateways/{resource}/testIamPermissions",
62829	//   "request": {
62830	//     "$ref": "TestPermissionsRequest"
62831	//   },
62832	//   "response": {
62833	//     "$ref": "TestPermissionsResponse"
62834	//   },
62835	//   "scopes": [
62836	//     "https://www.googleapis.com/auth/cloud-platform",
62837	//     "https://www.googleapis.com/auth/compute",
62838	//     "https://www.googleapis.com/auth/compute.readonly"
62839	//   ]
62840	// }
62841
62842}
62843
62844// method id "compute.firewallPolicies.addAssociation":
62845
62846type FirewallPoliciesAddAssociationCall struct {
62847	s                         *Service
62848	firewallPolicy            string
62849	firewallpolicyassociation *FirewallPolicyAssociation
62850	urlParams_                gensupport.URLParams
62851	ctx_                      context.Context
62852	header_                   http.Header
62853}
62854
62855// AddAssociation: Inserts an association for the specified firewall
62856// policy.
62857//
62858// - firewallPolicy: Name of the firewall policy to update.
62859func (r *FirewallPoliciesService) AddAssociation(firewallPolicy string, firewallpolicyassociation *FirewallPolicyAssociation) *FirewallPoliciesAddAssociationCall {
62860	c := &FirewallPoliciesAddAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62861	c.firewallPolicy = firewallPolicy
62862	c.firewallpolicyassociation = firewallpolicyassociation
62863	return c
62864}
62865
62866// ReplaceExistingAssociation sets the optional parameter
62867// "replaceExistingAssociation": Indicates whether or not to replace it
62868// if an association of the attachment already exists. This is false by
62869// default, in which case an error will be returned if an association
62870// already exists.
62871func (c *FirewallPoliciesAddAssociationCall) ReplaceExistingAssociation(replaceExistingAssociation bool) *FirewallPoliciesAddAssociationCall {
62872	c.urlParams_.Set("replaceExistingAssociation", fmt.Sprint(replaceExistingAssociation))
62873	return c
62874}
62875
62876// RequestId sets the optional parameter "requestId": An optional
62877// request ID to identify requests. Specify a unique request ID so that
62878// if you must retry your request, the server will know to ignore the
62879// request if it has already been completed. For example, consider a
62880// situation where you make an initial request and the request times
62881// out. If you make the request again with the same request ID, the
62882// server can check if original operation with the same request ID was
62883// received, and if so, will ignore the second request. This prevents
62884// clients from accidentally creating duplicate commitments. The request
62885// ID must be a valid UUID with the exception that zero UUID is not
62886// supported ( 00000000-0000-0000-0000-000000000000).
62887func (c *FirewallPoliciesAddAssociationCall) RequestId(requestId string) *FirewallPoliciesAddAssociationCall {
62888	c.urlParams_.Set("requestId", requestId)
62889	return c
62890}
62891
62892// Fields allows partial responses to be retrieved. See
62893// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62894// for more information.
62895func (c *FirewallPoliciesAddAssociationCall) Fields(s ...googleapi.Field) *FirewallPoliciesAddAssociationCall {
62896	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62897	return c
62898}
62899
62900// Context sets the context to be used in this call's Do method. Any
62901// pending HTTP request will be aborted if the provided context is
62902// canceled.
62903func (c *FirewallPoliciesAddAssociationCall) Context(ctx context.Context) *FirewallPoliciesAddAssociationCall {
62904	c.ctx_ = ctx
62905	return c
62906}
62907
62908// Header returns an http.Header that can be modified by the caller to
62909// add HTTP headers to the request.
62910func (c *FirewallPoliciesAddAssociationCall) Header() http.Header {
62911	if c.header_ == nil {
62912		c.header_ = make(http.Header)
62913	}
62914	return c.header_
62915}
62916
62917func (c *FirewallPoliciesAddAssociationCall) doRequest(alt string) (*http.Response, error) {
62918	reqHeaders := make(http.Header)
62919	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
62920	for k, v := range c.header_ {
62921		reqHeaders[k] = v
62922	}
62923	reqHeaders.Set("User-Agent", c.s.userAgent())
62924	var body io.Reader = nil
62925	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicyassociation)
62926	if err != nil {
62927		return nil, err
62928	}
62929	reqHeaders.Set("Content-Type", "application/json")
62930	c.urlParams_.Set("alt", alt)
62931	c.urlParams_.Set("prettyPrint", "false")
62932	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/addAssociation")
62933	urls += "?" + c.urlParams_.Encode()
62934	req, err := http.NewRequest("POST", urls, body)
62935	if err != nil {
62936		return nil, err
62937	}
62938	req.Header = reqHeaders
62939	googleapi.Expand(req.URL, map[string]string{
62940		"firewallPolicy": c.firewallPolicy,
62941	})
62942	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62943}
62944
62945// Do executes the "compute.firewallPolicies.addAssociation" call.
62946// Exactly one of *Operation or error will be non-nil. Any non-2xx
62947// status code is an error. Response headers are in either
62948// *Operation.ServerResponse.Header or (if a response was returned at
62949// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62950// to check whether the returned error was because
62951// http.StatusNotModified was returned.
62952func (c *FirewallPoliciesAddAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62953	gensupport.SetOptions(c.urlParams_, opts...)
62954	res, err := c.doRequest("json")
62955	if res != nil && res.StatusCode == http.StatusNotModified {
62956		if res.Body != nil {
62957			res.Body.Close()
62958		}
62959		return nil, &googleapi.Error{
62960			Code:   res.StatusCode,
62961			Header: res.Header,
62962		}
62963	}
62964	if err != nil {
62965		return nil, err
62966	}
62967	defer googleapi.CloseBody(res)
62968	if err := googleapi.CheckResponse(res); err != nil {
62969		return nil, err
62970	}
62971	ret := &Operation{
62972		ServerResponse: googleapi.ServerResponse{
62973			Header:         res.Header,
62974			HTTPStatusCode: res.StatusCode,
62975		},
62976	}
62977	target := &ret
62978	if err := gensupport.DecodeResponse(target, res); err != nil {
62979		return nil, err
62980	}
62981	return ret, nil
62982	// {
62983	//   "description": "Inserts an association for the specified firewall policy.",
62984	//   "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/addAssociation",
62985	//   "httpMethod": "POST",
62986	//   "id": "compute.firewallPolicies.addAssociation",
62987	//   "parameterOrder": [
62988	//     "firewallPolicy"
62989	//   ],
62990	//   "parameters": {
62991	//     "firewallPolicy": {
62992	//       "description": "Name of the firewall policy to update.",
62993	//       "location": "path",
62994	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
62995	//       "required": true,
62996	//       "type": "string"
62997	//     },
62998	//     "replaceExistingAssociation": {
62999	//       "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.",
63000	//       "location": "query",
63001	//       "type": "boolean"
63002	//     },
63003	//     "requestId": {
63004	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
63005	//       "location": "query",
63006	//       "type": "string"
63007	//     }
63008	//   },
63009	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/addAssociation",
63010	//   "request": {
63011	//     "$ref": "FirewallPolicyAssociation"
63012	//   },
63013	//   "response": {
63014	//     "$ref": "Operation"
63015	//   },
63016	//   "scopes": [
63017	//     "https://www.googleapis.com/auth/cloud-platform",
63018	//     "https://www.googleapis.com/auth/compute"
63019	//   ]
63020	// }
63021
63022}
63023
63024// method id "compute.firewallPolicies.addRule":
63025
63026type FirewallPoliciesAddRuleCall struct {
63027	s                  *Service
63028	firewallPolicy     string
63029	firewallpolicyrule *FirewallPolicyRule
63030	urlParams_         gensupport.URLParams
63031	ctx_               context.Context
63032	header_            http.Header
63033}
63034
63035// AddRule: Inserts a rule into a firewall policy.
63036//
63037// - firewallPolicy: Name of the firewall policy to update.
63038func (r *FirewallPoliciesService) AddRule(firewallPolicy string, firewallpolicyrule *FirewallPolicyRule) *FirewallPoliciesAddRuleCall {
63039	c := &FirewallPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63040	c.firewallPolicy = firewallPolicy
63041	c.firewallpolicyrule = firewallpolicyrule
63042	return c
63043}
63044
63045// RequestId sets the optional parameter "requestId": An optional
63046// request ID to identify requests. Specify a unique request ID so that
63047// if you must retry your request, the server will know to ignore the
63048// request if it has already been completed. For example, consider a
63049// situation where you make an initial request and the request times
63050// out. If you make the request again with the same request ID, the
63051// server can check if original operation with the same request ID was
63052// received, and if so, will ignore the second request. This prevents
63053// clients from accidentally creating duplicate commitments. The request
63054// ID must be a valid UUID with the exception that zero UUID is not
63055// supported ( 00000000-0000-0000-0000-000000000000).
63056func (c *FirewallPoliciesAddRuleCall) RequestId(requestId string) *FirewallPoliciesAddRuleCall {
63057	c.urlParams_.Set("requestId", requestId)
63058	return c
63059}
63060
63061// Fields allows partial responses to be retrieved. See
63062// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63063// for more information.
63064func (c *FirewallPoliciesAddRuleCall) Fields(s ...googleapi.Field) *FirewallPoliciesAddRuleCall {
63065	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63066	return c
63067}
63068
63069// Context sets the context to be used in this call's Do method. Any
63070// pending HTTP request will be aborted if the provided context is
63071// canceled.
63072func (c *FirewallPoliciesAddRuleCall) Context(ctx context.Context) *FirewallPoliciesAddRuleCall {
63073	c.ctx_ = ctx
63074	return c
63075}
63076
63077// Header returns an http.Header that can be modified by the caller to
63078// add HTTP headers to the request.
63079func (c *FirewallPoliciesAddRuleCall) Header() http.Header {
63080	if c.header_ == nil {
63081		c.header_ = make(http.Header)
63082	}
63083	return c.header_
63084}
63085
63086func (c *FirewallPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) {
63087	reqHeaders := make(http.Header)
63088	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
63089	for k, v := range c.header_ {
63090		reqHeaders[k] = v
63091	}
63092	reqHeaders.Set("User-Agent", c.s.userAgent())
63093	var body io.Reader = nil
63094	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicyrule)
63095	if err != nil {
63096		return nil, err
63097	}
63098	reqHeaders.Set("Content-Type", "application/json")
63099	c.urlParams_.Set("alt", alt)
63100	c.urlParams_.Set("prettyPrint", "false")
63101	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/addRule")
63102	urls += "?" + c.urlParams_.Encode()
63103	req, err := http.NewRequest("POST", urls, body)
63104	if err != nil {
63105		return nil, err
63106	}
63107	req.Header = reqHeaders
63108	googleapi.Expand(req.URL, map[string]string{
63109		"firewallPolicy": c.firewallPolicy,
63110	})
63111	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63112}
63113
63114// Do executes the "compute.firewallPolicies.addRule" call.
63115// Exactly one of *Operation or error will be non-nil. Any non-2xx
63116// status code is an error. Response headers are in either
63117// *Operation.ServerResponse.Header or (if a response was returned at
63118// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63119// to check whether the returned error was because
63120// http.StatusNotModified was returned.
63121func (c *FirewallPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63122	gensupport.SetOptions(c.urlParams_, opts...)
63123	res, err := c.doRequest("json")
63124	if res != nil && res.StatusCode == http.StatusNotModified {
63125		if res.Body != nil {
63126			res.Body.Close()
63127		}
63128		return nil, &googleapi.Error{
63129			Code:   res.StatusCode,
63130			Header: res.Header,
63131		}
63132	}
63133	if err != nil {
63134		return nil, err
63135	}
63136	defer googleapi.CloseBody(res)
63137	if err := googleapi.CheckResponse(res); err != nil {
63138		return nil, err
63139	}
63140	ret := &Operation{
63141		ServerResponse: googleapi.ServerResponse{
63142			Header:         res.Header,
63143			HTTPStatusCode: res.StatusCode,
63144		},
63145	}
63146	target := &ret
63147	if err := gensupport.DecodeResponse(target, res); err != nil {
63148		return nil, err
63149	}
63150	return ret, nil
63151	// {
63152	//   "description": "Inserts a rule into a firewall policy.",
63153	//   "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/addRule",
63154	//   "httpMethod": "POST",
63155	//   "id": "compute.firewallPolicies.addRule",
63156	//   "parameterOrder": [
63157	//     "firewallPolicy"
63158	//   ],
63159	//   "parameters": {
63160	//     "firewallPolicy": {
63161	//       "description": "Name of the firewall policy to update.",
63162	//       "location": "path",
63163	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
63164	//       "required": true,
63165	//       "type": "string"
63166	//     },
63167	//     "requestId": {
63168	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
63169	//       "location": "query",
63170	//       "type": "string"
63171	//     }
63172	//   },
63173	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/addRule",
63174	//   "request": {
63175	//     "$ref": "FirewallPolicyRule"
63176	//   },
63177	//   "response": {
63178	//     "$ref": "Operation"
63179	//   },
63180	//   "scopes": [
63181	//     "https://www.googleapis.com/auth/cloud-platform",
63182	//     "https://www.googleapis.com/auth/compute"
63183	//   ]
63184	// }
63185
63186}
63187
63188// method id "compute.firewallPolicies.cloneRules":
63189
63190type FirewallPoliciesCloneRulesCall struct {
63191	s              *Service
63192	firewallPolicy string
63193	urlParams_     gensupport.URLParams
63194	ctx_           context.Context
63195	header_        http.Header
63196}
63197
63198// CloneRules: Copies rules to the specified firewall policy.
63199//
63200// - firewallPolicy: Name of the firewall policy to update.
63201func (r *FirewallPoliciesService) CloneRules(firewallPolicy string) *FirewallPoliciesCloneRulesCall {
63202	c := &FirewallPoliciesCloneRulesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63203	c.firewallPolicy = firewallPolicy
63204	return c
63205}
63206
63207// RequestId sets the optional parameter "requestId": An optional
63208// request ID to identify requests. Specify a unique request ID so that
63209// if you must retry your request, the server will know to ignore the
63210// request if it has already been completed. For example, consider a
63211// situation where you make an initial request and the request times
63212// out. If you make the request again with the same request ID, the
63213// server can check if original operation with the same request ID was
63214// received, and if so, will ignore the second request. This prevents
63215// clients from accidentally creating duplicate commitments. The request
63216// ID must be a valid UUID with the exception that zero UUID is not
63217// supported ( 00000000-0000-0000-0000-000000000000).
63218func (c *FirewallPoliciesCloneRulesCall) RequestId(requestId string) *FirewallPoliciesCloneRulesCall {
63219	c.urlParams_.Set("requestId", requestId)
63220	return c
63221}
63222
63223// SourceFirewallPolicy sets the optional parameter
63224// "sourceFirewallPolicy": The firewall policy from which to copy rules.
63225func (c *FirewallPoliciesCloneRulesCall) SourceFirewallPolicy(sourceFirewallPolicy string) *FirewallPoliciesCloneRulesCall {
63226	c.urlParams_.Set("sourceFirewallPolicy", sourceFirewallPolicy)
63227	return c
63228}
63229
63230// Fields allows partial responses to be retrieved. See
63231// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63232// for more information.
63233func (c *FirewallPoliciesCloneRulesCall) Fields(s ...googleapi.Field) *FirewallPoliciesCloneRulesCall {
63234	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63235	return c
63236}
63237
63238// Context sets the context to be used in this call's Do method. Any
63239// pending HTTP request will be aborted if the provided context is
63240// canceled.
63241func (c *FirewallPoliciesCloneRulesCall) Context(ctx context.Context) *FirewallPoliciesCloneRulesCall {
63242	c.ctx_ = ctx
63243	return c
63244}
63245
63246// Header returns an http.Header that can be modified by the caller to
63247// add HTTP headers to the request.
63248func (c *FirewallPoliciesCloneRulesCall) Header() http.Header {
63249	if c.header_ == nil {
63250		c.header_ = make(http.Header)
63251	}
63252	return c.header_
63253}
63254
63255func (c *FirewallPoliciesCloneRulesCall) doRequest(alt string) (*http.Response, error) {
63256	reqHeaders := make(http.Header)
63257	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
63258	for k, v := range c.header_ {
63259		reqHeaders[k] = v
63260	}
63261	reqHeaders.Set("User-Agent", c.s.userAgent())
63262	var body io.Reader = nil
63263	c.urlParams_.Set("alt", alt)
63264	c.urlParams_.Set("prettyPrint", "false")
63265	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/cloneRules")
63266	urls += "?" + c.urlParams_.Encode()
63267	req, err := http.NewRequest("POST", urls, body)
63268	if err != nil {
63269		return nil, err
63270	}
63271	req.Header = reqHeaders
63272	googleapi.Expand(req.URL, map[string]string{
63273		"firewallPolicy": c.firewallPolicy,
63274	})
63275	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63276}
63277
63278// Do executes the "compute.firewallPolicies.cloneRules" call.
63279// Exactly one of *Operation or error will be non-nil. Any non-2xx
63280// status code is an error. Response headers are in either
63281// *Operation.ServerResponse.Header or (if a response was returned at
63282// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63283// to check whether the returned error was because
63284// http.StatusNotModified was returned.
63285func (c *FirewallPoliciesCloneRulesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63286	gensupport.SetOptions(c.urlParams_, opts...)
63287	res, err := c.doRequest("json")
63288	if res != nil && res.StatusCode == http.StatusNotModified {
63289		if res.Body != nil {
63290			res.Body.Close()
63291		}
63292		return nil, &googleapi.Error{
63293			Code:   res.StatusCode,
63294			Header: res.Header,
63295		}
63296	}
63297	if err != nil {
63298		return nil, err
63299	}
63300	defer googleapi.CloseBody(res)
63301	if err := googleapi.CheckResponse(res); err != nil {
63302		return nil, err
63303	}
63304	ret := &Operation{
63305		ServerResponse: googleapi.ServerResponse{
63306			Header:         res.Header,
63307			HTTPStatusCode: res.StatusCode,
63308		},
63309	}
63310	target := &ret
63311	if err := gensupport.DecodeResponse(target, res); err != nil {
63312		return nil, err
63313	}
63314	return ret, nil
63315	// {
63316	//   "description": "Copies rules to the specified firewall policy.",
63317	//   "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/cloneRules",
63318	//   "httpMethod": "POST",
63319	//   "id": "compute.firewallPolicies.cloneRules",
63320	//   "parameterOrder": [
63321	//     "firewallPolicy"
63322	//   ],
63323	//   "parameters": {
63324	//     "firewallPolicy": {
63325	//       "description": "Name of the firewall policy to update.",
63326	//       "location": "path",
63327	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
63328	//       "required": true,
63329	//       "type": "string"
63330	//     },
63331	//     "requestId": {
63332	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
63333	//       "location": "query",
63334	//       "type": "string"
63335	//     },
63336	//     "sourceFirewallPolicy": {
63337	//       "description": "The firewall policy from which to copy rules.",
63338	//       "location": "query",
63339	//       "type": "string"
63340	//     }
63341	//   },
63342	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/cloneRules",
63343	//   "response": {
63344	//     "$ref": "Operation"
63345	//   },
63346	//   "scopes": [
63347	//     "https://www.googleapis.com/auth/cloud-platform",
63348	//     "https://www.googleapis.com/auth/compute"
63349	//   ]
63350	// }
63351
63352}
63353
63354// method id "compute.firewallPolicies.delete":
63355
63356type FirewallPoliciesDeleteCall struct {
63357	s              *Service
63358	firewallPolicy string
63359	urlParams_     gensupport.URLParams
63360	ctx_           context.Context
63361	header_        http.Header
63362}
63363
63364// Delete: Deletes the specified policy.
63365//
63366// - firewallPolicy: Name of the firewall policy to delete.
63367func (r *FirewallPoliciesService) Delete(firewallPolicy string) *FirewallPoliciesDeleteCall {
63368	c := &FirewallPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63369	c.firewallPolicy = firewallPolicy
63370	return c
63371}
63372
63373// RequestId sets the optional parameter "requestId": An optional
63374// request ID to identify requests. Specify a unique request ID so that
63375// if you must retry your request, the server will know to ignore the
63376// request if it has already been completed. For example, consider a
63377// situation where you make an initial request and the request times
63378// out. If you make the request again with the same request ID, the
63379// server can check if original operation with the same request ID was
63380// received, and if so, will ignore the second request. This prevents
63381// clients from accidentally creating duplicate commitments. The request
63382// ID must be a valid UUID with the exception that zero UUID is not
63383// supported ( 00000000-0000-0000-0000-000000000000).
63384func (c *FirewallPoliciesDeleteCall) RequestId(requestId string) *FirewallPoliciesDeleteCall {
63385	c.urlParams_.Set("requestId", requestId)
63386	return c
63387}
63388
63389// Fields allows partial responses to be retrieved. See
63390// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63391// for more information.
63392func (c *FirewallPoliciesDeleteCall) Fields(s ...googleapi.Field) *FirewallPoliciesDeleteCall {
63393	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63394	return c
63395}
63396
63397// Context sets the context to be used in this call's Do method. Any
63398// pending HTTP request will be aborted if the provided context is
63399// canceled.
63400func (c *FirewallPoliciesDeleteCall) Context(ctx context.Context) *FirewallPoliciesDeleteCall {
63401	c.ctx_ = ctx
63402	return c
63403}
63404
63405// Header returns an http.Header that can be modified by the caller to
63406// add HTTP headers to the request.
63407func (c *FirewallPoliciesDeleteCall) Header() http.Header {
63408	if c.header_ == nil {
63409		c.header_ = make(http.Header)
63410	}
63411	return c.header_
63412}
63413
63414func (c *FirewallPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
63415	reqHeaders := make(http.Header)
63416	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
63417	for k, v := range c.header_ {
63418		reqHeaders[k] = v
63419	}
63420	reqHeaders.Set("User-Agent", c.s.userAgent())
63421	var body io.Reader = nil
63422	c.urlParams_.Set("alt", alt)
63423	c.urlParams_.Set("prettyPrint", "false")
63424	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}")
63425	urls += "?" + c.urlParams_.Encode()
63426	req, err := http.NewRequest("DELETE", urls, body)
63427	if err != nil {
63428		return nil, err
63429	}
63430	req.Header = reqHeaders
63431	googleapi.Expand(req.URL, map[string]string{
63432		"firewallPolicy": c.firewallPolicy,
63433	})
63434	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63435}
63436
63437// Do executes the "compute.firewallPolicies.delete" call.
63438// Exactly one of *Operation or error will be non-nil. Any non-2xx
63439// status code is an error. Response headers are in either
63440// *Operation.ServerResponse.Header or (if a response was returned at
63441// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63442// to check whether the returned error was because
63443// http.StatusNotModified was returned.
63444func (c *FirewallPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63445	gensupport.SetOptions(c.urlParams_, opts...)
63446	res, err := c.doRequest("json")
63447	if res != nil && res.StatusCode == http.StatusNotModified {
63448		if res.Body != nil {
63449			res.Body.Close()
63450		}
63451		return nil, &googleapi.Error{
63452			Code:   res.StatusCode,
63453			Header: res.Header,
63454		}
63455	}
63456	if err != nil {
63457		return nil, err
63458	}
63459	defer googleapi.CloseBody(res)
63460	if err := googleapi.CheckResponse(res); err != nil {
63461		return nil, err
63462	}
63463	ret := &Operation{
63464		ServerResponse: googleapi.ServerResponse{
63465			Header:         res.Header,
63466			HTTPStatusCode: res.StatusCode,
63467		},
63468	}
63469	target := &ret
63470	if err := gensupport.DecodeResponse(target, res); err != nil {
63471		return nil, err
63472	}
63473	return ret, nil
63474	// {
63475	//   "description": "Deletes the specified policy.",
63476	//   "flatPath": "locations/global/firewallPolicies/{firewallPolicy}",
63477	//   "httpMethod": "DELETE",
63478	//   "id": "compute.firewallPolicies.delete",
63479	//   "parameterOrder": [
63480	//     "firewallPolicy"
63481	//   ],
63482	//   "parameters": {
63483	//     "firewallPolicy": {
63484	//       "description": "Name of the firewall policy to delete.",
63485	//       "location": "path",
63486	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
63487	//       "required": true,
63488	//       "type": "string"
63489	//     },
63490	//     "requestId": {
63491	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
63492	//       "location": "query",
63493	//       "type": "string"
63494	//     }
63495	//   },
63496	//   "path": "locations/global/firewallPolicies/{firewallPolicy}",
63497	//   "response": {
63498	//     "$ref": "Operation"
63499	//   },
63500	//   "scopes": [
63501	//     "https://www.googleapis.com/auth/cloud-platform",
63502	//     "https://www.googleapis.com/auth/compute"
63503	//   ]
63504	// }
63505
63506}
63507
63508// method id "compute.firewallPolicies.get":
63509
63510type FirewallPoliciesGetCall struct {
63511	s              *Service
63512	firewallPolicy string
63513	urlParams_     gensupport.URLParams
63514	ifNoneMatch_   string
63515	ctx_           context.Context
63516	header_        http.Header
63517}
63518
63519// Get: Returns the specified firewall policy.
63520//
63521// - firewallPolicy: Name of the firewall policy to get.
63522func (r *FirewallPoliciesService) Get(firewallPolicy string) *FirewallPoliciesGetCall {
63523	c := &FirewallPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63524	c.firewallPolicy = firewallPolicy
63525	return c
63526}
63527
63528// Fields allows partial responses to be retrieved. See
63529// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63530// for more information.
63531func (c *FirewallPoliciesGetCall) Fields(s ...googleapi.Field) *FirewallPoliciesGetCall {
63532	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63533	return c
63534}
63535
63536// IfNoneMatch sets the optional parameter which makes the operation
63537// fail if the object's ETag matches the given value. This is useful for
63538// getting updates only after the object has changed since the last
63539// request. Use googleapi.IsNotModified to check whether the response
63540// error from Do is the result of In-None-Match.
63541func (c *FirewallPoliciesGetCall) IfNoneMatch(entityTag string) *FirewallPoliciesGetCall {
63542	c.ifNoneMatch_ = entityTag
63543	return c
63544}
63545
63546// Context sets the context to be used in this call's Do method. Any
63547// pending HTTP request will be aborted if the provided context is
63548// canceled.
63549func (c *FirewallPoliciesGetCall) Context(ctx context.Context) *FirewallPoliciesGetCall {
63550	c.ctx_ = ctx
63551	return c
63552}
63553
63554// Header returns an http.Header that can be modified by the caller to
63555// add HTTP headers to the request.
63556func (c *FirewallPoliciesGetCall) Header() http.Header {
63557	if c.header_ == nil {
63558		c.header_ = make(http.Header)
63559	}
63560	return c.header_
63561}
63562
63563func (c *FirewallPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
63564	reqHeaders := make(http.Header)
63565	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
63566	for k, v := range c.header_ {
63567		reqHeaders[k] = v
63568	}
63569	reqHeaders.Set("User-Agent", c.s.userAgent())
63570	if c.ifNoneMatch_ != "" {
63571		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63572	}
63573	var body io.Reader = nil
63574	c.urlParams_.Set("alt", alt)
63575	c.urlParams_.Set("prettyPrint", "false")
63576	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}")
63577	urls += "?" + c.urlParams_.Encode()
63578	req, err := http.NewRequest("GET", urls, body)
63579	if err != nil {
63580		return nil, err
63581	}
63582	req.Header = reqHeaders
63583	googleapi.Expand(req.URL, map[string]string{
63584		"firewallPolicy": c.firewallPolicy,
63585	})
63586	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63587}
63588
63589// Do executes the "compute.firewallPolicies.get" call.
63590// Exactly one of *FirewallPolicy or error will be non-nil. Any non-2xx
63591// status code is an error. Response headers are in either
63592// *FirewallPolicy.ServerResponse.Header or (if a response was returned
63593// at all) in error.(*googleapi.Error).Header. Use
63594// googleapi.IsNotModified to check whether the returned error was
63595// because http.StatusNotModified was returned.
63596func (c *FirewallPoliciesGetCall) Do(opts ...googleapi.CallOption) (*FirewallPolicy, error) {
63597	gensupport.SetOptions(c.urlParams_, opts...)
63598	res, err := c.doRequest("json")
63599	if res != nil && res.StatusCode == http.StatusNotModified {
63600		if res.Body != nil {
63601			res.Body.Close()
63602		}
63603		return nil, &googleapi.Error{
63604			Code:   res.StatusCode,
63605			Header: res.Header,
63606		}
63607	}
63608	if err != nil {
63609		return nil, err
63610	}
63611	defer googleapi.CloseBody(res)
63612	if err := googleapi.CheckResponse(res); err != nil {
63613		return nil, err
63614	}
63615	ret := &FirewallPolicy{
63616		ServerResponse: googleapi.ServerResponse{
63617			Header:         res.Header,
63618			HTTPStatusCode: res.StatusCode,
63619		},
63620	}
63621	target := &ret
63622	if err := gensupport.DecodeResponse(target, res); err != nil {
63623		return nil, err
63624	}
63625	return ret, nil
63626	// {
63627	//   "description": "Returns the specified firewall policy.",
63628	//   "flatPath": "locations/global/firewallPolicies/{firewallPolicy}",
63629	//   "httpMethod": "GET",
63630	//   "id": "compute.firewallPolicies.get",
63631	//   "parameterOrder": [
63632	//     "firewallPolicy"
63633	//   ],
63634	//   "parameters": {
63635	//     "firewallPolicy": {
63636	//       "description": "Name of the firewall policy to get.",
63637	//       "location": "path",
63638	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
63639	//       "required": true,
63640	//       "type": "string"
63641	//     }
63642	//   },
63643	//   "path": "locations/global/firewallPolicies/{firewallPolicy}",
63644	//   "response": {
63645	//     "$ref": "FirewallPolicy"
63646	//   },
63647	//   "scopes": [
63648	//     "https://www.googleapis.com/auth/cloud-platform",
63649	//     "https://www.googleapis.com/auth/compute",
63650	//     "https://www.googleapis.com/auth/compute.readonly"
63651	//   ]
63652	// }
63653
63654}
63655
63656// method id "compute.firewallPolicies.getAssociation":
63657
63658type FirewallPoliciesGetAssociationCall struct {
63659	s              *Service
63660	firewallPolicy string
63661	urlParams_     gensupport.URLParams
63662	ifNoneMatch_   string
63663	ctx_           context.Context
63664	header_        http.Header
63665}
63666
63667// GetAssociation: Gets an association with the specified name.
63668//
63669// - firewallPolicy: Name of the firewall policy to which the queried
63670//   rule belongs.
63671func (r *FirewallPoliciesService) GetAssociation(firewallPolicy string) *FirewallPoliciesGetAssociationCall {
63672	c := &FirewallPoliciesGetAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63673	c.firewallPolicy = firewallPolicy
63674	return c
63675}
63676
63677// Name sets the optional parameter "name": The name of the association
63678// to get from the firewall policy.
63679func (c *FirewallPoliciesGetAssociationCall) Name(name string) *FirewallPoliciesGetAssociationCall {
63680	c.urlParams_.Set("name", name)
63681	return c
63682}
63683
63684// Fields allows partial responses to be retrieved. See
63685// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63686// for more information.
63687func (c *FirewallPoliciesGetAssociationCall) Fields(s ...googleapi.Field) *FirewallPoliciesGetAssociationCall {
63688	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63689	return c
63690}
63691
63692// IfNoneMatch sets the optional parameter which makes the operation
63693// fail if the object's ETag matches the given value. This is useful for
63694// getting updates only after the object has changed since the last
63695// request. Use googleapi.IsNotModified to check whether the response
63696// error from Do is the result of In-None-Match.
63697func (c *FirewallPoliciesGetAssociationCall) IfNoneMatch(entityTag string) *FirewallPoliciesGetAssociationCall {
63698	c.ifNoneMatch_ = entityTag
63699	return c
63700}
63701
63702// Context sets the context to be used in this call's Do method. Any
63703// pending HTTP request will be aborted if the provided context is
63704// canceled.
63705func (c *FirewallPoliciesGetAssociationCall) Context(ctx context.Context) *FirewallPoliciesGetAssociationCall {
63706	c.ctx_ = ctx
63707	return c
63708}
63709
63710// Header returns an http.Header that can be modified by the caller to
63711// add HTTP headers to the request.
63712func (c *FirewallPoliciesGetAssociationCall) Header() http.Header {
63713	if c.header_ == nil {
63714		c.header_ = make(http.Header)
63715	}
63716	return c.header_
63717}
63718
63719func (c *FirewallPoliciesGetAssociationCall) doRequest(alt string) (*http.Response, error) {
63720	reqHeaders := make(http.Header)
63721	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
63722	for k, v := range c.header_ {
63723		reqHeaders[k] = v
63724	}
63725	reqHeaders.Set("User-Agent", c.s.userAgent())
63726	if c.ifNoneMatch_ != "" {
63727		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63728	}
63729	var body io.Reader = nil
63730	c.urlParams_.Set("alt", alt)
63731	c.urlParams_.Set("prettyPrint", "false")
63732	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/getAssociation")
63733	urls += "?" + c.urlParams_.Encode()
63734	req, err := http.NewRequest("GET", urls, body)
63735	if err != nil {
63736		return nil, err
63737	}
63738	req.Header = reqHeaders
63739	googleapi.Expand(req.URL, map[string]string{
63740		"firewallPolicy": c.firewallPolicy,
63741	})
63742	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63743}
63744
63745// Do executes the "compute.firewallPolicies.getAssociation" call.
63746// Exactly one of *FirewallPolicyAssociation or error will be non-nil.
63747// Any non-2xx status code is an error. Response headers are in either
63748// *FirewallPolicyAssociation.ServerResponse.Header or (if a response
63749// was returned at all) in error.(*googleapi.Error).Header. Use
63750// googleapi.IsNotModified to check whether the returned error was
63751// because http.StatusNotModified was returned.
63752func (c *FirewallPoliciesGetAssociationCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyAssociation, error) {
63753	gensupport.SetOptions(c.urlParams_, opts...)
63754	res, err := c.doRequest("json")
63755	if res != nil && res.StatusCode == http.StatusNotModified {
63756		if res.Body != nil {
63757			res.Body.Close()
63758		}
63759		return nil, &googleapi.Error{
63760			Code:   res.StatusCode,
63761			Header: res.Header,
63762		}
63763	}
63764	if err != nil {
63765		return nil, err
63766	}
63767	defer googleapi.CloseBody(res)
63768	if err := googleapi.CheckResponse(res); err != nil {
63769		return nil, err
63770	}
63771	ret := &FirewallPolicyAssociation{
63772		ServerResponse: googleapi.ServerResponse{
63773			Header:         res.Header,
63774			HTTPStatusCode: res.StatusCode,
63775		},
63776	}
63777	target := &ret
63778	if err := gensupport.DecodeResponse(target, res); err != nil {
63779		return nil, err
63780	}
63781	return ret, nil
63782	// {
63783	//   "description": "Gets an association with the specified name.",
63784	//   "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/getAssociation",
63785	//   "httpMethod": "GET",
63786	//   "id": "compute.firewallPolicies.getAssociation",
63787	//   "parameterOrder": [
63788	//     "firewallPolicy"
63789	//   ],
63790	//   "parameters": {
63791	//     "firewallPolicy": {
63792	//       "description": "Name of the firewall policy to which the queried rule belongs.",
63793	//       "location": "path",
63794	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
63795	//       "required": true,
63796	//       "type": "string"
63797	//     },
63798	//     "name": {
63799	//       "description": "The name of the association to get from the firewall policy.",
63800	//       "location": "query",
63801	//       "type": "string"
63802	//     }
63803	//   },
63804	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/getAssociation",
63805	//   "response": {
63806	//     "$ref": "FirewallPolicyAssociation"
63807	//   },
63808	//   "scopes": [
63809	//     "https://www.googleapis.com/auth/cloud-platform",
63810	//     "https://www.googleapis.com/auth/compute",
63811	//     "https://www.googleapis.com/auth/compute.readonly"
63812	//   ]
63813	// }
63814
63815}
63816
63817// method id "compute.firewallPolicies.getIamPolicy":
63818
63819type FirewallPoliciesGetIamPolicyCall struct {
63820	s            *Service
63821	resource     string
63822	urlParams_   gensupport.URLParams
63823	ifNoneMatch_ string
63824	ctx_         context.Context
63825	header_      http.Header
63826}
63827
63828// GetIamPolicy: Gets the access control policy for a resource. May be
63829// empty if no such policy or resource exists.
63830//
63831// - resource: Name or id of the resource for this request.
63832func (r *FirewallPoliciesService) GetIamPolicy(resource string) *FirewallPoliciesGetIamPolicyCall {
63833	c := &FirewallPoliciesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63834	c.resource = resource
63835	return c
63836}
63837
63838// OptionsRequestedPolicyVersion sets the optional parameter
63839// "optionsRequestedPolicyVersion": Requested IAM Policy version.
63840func (c *FirewallPoliciesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *FirewallPoliciesGetIamPolicyCall {
63841	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
63842	return c
63843}
63844
63845// Fields allows partial responses to be retrieved. See
63846// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63847// for more information.
63848func (c *FirewallPoliciesGetIamPolicyCall) Fields(s ...googleapi.Field) *FirewallPoliciesGetIamPolicyCall {
63849	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63850	return c
63851}
63852
63853// IfNoneMatch sets the optional parameter which makes the operation
63854// fail if the object's ETag matches the given value. This is useful for
63855// getting updates only after the object has changed since the last
63856// request. Use googleapi.IsNotModified to check whether the response
63857// error from Do is the result of In-None-Match.
63858func (c *FirewallPoliciesGetIamPolicyCall) IfNoneMatch(entityTag string) *FirewallPoliciesGetIamPolicyCall {
63859	c.ifNoneMatch_ = entityTag
63860	return c
63861}
63862
63863// Context sets the context to be used in this call's Do method. Any
63864// pending HTTP request will be aborted if the provided context is
63865// canceled.
63866func (c *FirewallPoliciesGetIamPolicyCall) Context(ctx context.Context) *FirewallPoliciesGetIamPolicyCall {
63867	c.ctx_ = ctx
63868	return c
63869}
63870
63871// Header returns an http.Header that can be modified by the caller to
63872// add HTTP headers to the request.
63873func (c *FirewallPoliciesGetIamPolicyCall) Header() http.Header {
63874	if c.header_ == nil {
63875		c.header_ = make(http.Header)
63876	}
63877	return c.header_
63878}
63879
63880func (c *FirewallPoliciesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
63881	reqHeaders := make(http.Header)
63882	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
63883	for k, v := range c.header_ {
63884		reqHeaders[k] = v
63885	}
63886	reqHeaders.Set("User-Agent", c.s.userAgent())
63887	if c.ifNoneMatch_ != "" {
63888		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63889	}
63890	var body io.Reader = nil
63891	c.urlParams_.Set("alt", alt)
63892	c.urlParams_.Set("prettyPrint", "false")
63893	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{resource}/getIamPolicy")
63894	urls += "?" + c.urlParams_.Encode()
63895	req, err := http.NewRequest("GET", urls, body)
63896	if err != nil {
63897		return nil, err
63898	}
63899	req.Header = reqHeaders
63900	googleapi.Expand(req.URL, map[string]string{
63901		"resource": c.resource,
63902	})
63903	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63904}
63905
63906// Do executes the "compute.firewallPolicies.getIamPolicy" call.
63907// Exactly one of *Policy or error will be non-nil. Any non-2xx status
63908// code is an error. Response headers are in either
63909// *Policy.ServerResponse.Header or (if a response was returned at all)
63910// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
63911// check whether the returned error was because http.StatusNotModified
63912// was returned.
63913func (c *FirewallPoliciesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
63914	gensupport.SetOptions(c.urlParams_, opts...)
63915	res, err := c.doRequest("json")
63916	if res != nil && res.StatusCode == http.StatusNotModified {
63917		if res.Body != nil {
63918			res.Body.Close()
63919		}
63920		return nil, &googleapi.Error{
63921			Code:   res.StatusCode,
63922			Header: res.Header,
63923		}
63924	}
63925	if err != nil {
63926		return nil, err
63927	}
63928	defer googleapi.CloseBody(res)
63929	if err := googleapi.CheckResponse(res); err != nil {
63930		return nil, err
63931	}
63932	ret := &Policy{
63933		ServerResponse: googleapi.ServerResponse{
63934			Header:         res.Header,
63935			HTTPStatusCode: res.StatusCode,
63936		},
63937	}
63938	target := &ret
63939	if err := gensupport.DecodeResponse(target, res); err != nil {
63940		return nil, err
63941	}
63942	return ret, nil
63943	// {
63944	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
63945	//   "flatPath": "locations/global/firewallPolicies/{resource}/getIamPolicy",
63946	//   "httpMethod": "GET",
63947	//   "id": "compute.firewallPolicies.getIamPolicy",
63948	//   "parameterOrder": [
63949	//     "resource"
63950	//   ],
63951	//   "parameters": {
63952	//     "optionsRequestedPolicyVersion": {
63953	//       "description": "Requested IAM Policy version.",
63954	//       "format": "int32",
63955	//       "location": "query",
63956	//       "type": "integer"
63957	//     },
63958	//     "resource": {
63959	//       "description": "Name or id of the resource for this request.",
63960	//       "location": "path",
63961	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
63962	//       "required": true,
63963	//       "type": "string"
63964	//     }
63965	//   },
63966	//   "path": "locations/global/firewallPolicies/{resource}/getIamPolicy",
63967	//   "response": {
63968	//     "$ref": "Policy"
63969	//   },
63970	//   "scopes": [
63971	//     "https://www.googleapis.com/auth/cloud-platform",
63972	//     "https://www.googleapis.com/auth/compute",
63973	//     "https://www.googleapis.com/auth/compute.readonly"
63974	//   ]
63975	// }
63976
63977}
63978
63979// method id "compute.firewallPolicies.getRule":
63980
63981type FirewallPoliciesGetRuleCall struct {
63982	s              *Service
63983	firewallPolicy string
63984	urlParams_     gensupport.URLParams
63985	ifNoneMatch_   string
63986	ctx_           context.Context
63987	header_        http.Header
63988}
63989
63990// GetRule: Gets a rule of the specified priority.
63991//
63992// - firewallPolicy: Name of the firewall policy to which the queried
63993//   rule belongs.
63994func (r *FirewallPoliciesService) GetRule(firewallPolicy string) *FirewallPoliciesGetRuleCall {
63995	c := &FirewallPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63996	c.firewallPolicy = firewallPolicy
63997	return c
63998}
63999
64000// Priority sets the optional parameter "priority": The priority of the
64001// rule to get from the firewall policy.
64002func (c *FirewallPoliciesGetRuleCall) Priority(priority int64) *FirewallPoliciesGetRuleCall {
64003	c.urlParams_.Set("priority", fmt.Sprint(priority))
64004	return c
64005}
64006
64007// Fields allows partial responses to be retrieved. See
64008// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64009// for more information.
64010func (c *FirewallPoliciesGetRuleCall) Fields(s ...googleapi.Field) *FirewallPoliciesGetRuleCall {
64011	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64012	return c
64013}
64014
64015// IfNoneMatch sets the optional parameter which makes the operation
64016// fail if the object's ETag matches the given value. This is useful for
64017// getting updates only after the object has changed since the last
64018// request. Use googleapi.IsNotModified to check whether the response
64019// error from Do is the result of In-None-Match.
64020func (c *FirewallPoliciesGetRuleCall) IfNoneMatch(entityTag string) *FirewallPoliciesGetRuleCall {
64021	c.ifNoneMatch_ = entityTag
64022	return c
64023}
64024
64025// Context sets the context to be used in this call's Do method. Any
64026// pending HTTP request will be aborted if the provided context is
64027// canceled.
64028func (c *FirewallPoliciesGetRuleCall) Context(ctx context.Context) *FirewallPoliciesGetRuleCall {
64029	c.ctx_ = ctx
64030	return c
64031}
64032
64033// Header returns an http.Header that can be modified by the caller to
64034// add HTTP headers to the request.
64035func (c *FirewallPoliciesGetRuleCall) Header() http.Header {
64036	if c.header_ == nil {
64037		c.header_ = make(http.Header)
64038	}
64039	return c.header_
64040}
64041
64042func (c *FirewallPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) {
64043	reqHeaders := make(http.Header)
64044	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
64045	for k, v := range c.header_ {
64046		reqHeaders[k] = v
64047	}
64048	reqHeaders.Set("User-Agent", c.s.userAgent())
64049	if c.ifNoneMatch_ != "" {
64050		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64051	}
64052	var body io.Reader = nil
64053	c.urlParams_.Set("alt", alt)
64054	c.urlParams_.Set("prettyPrint", "false")
64055	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/getRule")
64056	urls += "?" + c.urlParams_.Encode()
64057	req, err := http.NewRequest("GET", urls, body)
64058	if err != nil {
64059		return nil, err
64060	}
64061	req.Header = reqHeaders
64062	googleapi.Expand(req.URL, map[string]string{
64063		"firewallPolicy": c.firewallPolicy,
64064	})
64065	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64066}
64067
64068// Do executes the "compute.firewallPolicies.getRule" call.
64069// Exactly one of *FirewallPolicyRule or error will be non-nil. Any
64070// non-2xx status code is an error. Response headers are in either
64071// *FirewallPolicyRule.ServerResponse.Header or (if a response was
64072// returned at all) in error.(*googleapi.Error).Header. Use
64073// googleapi.IsNotModified to check whether the returned error was
64074// because http.StatusNotModified was returned.
64075func (c *FirewallPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyRule, error) {
64076	gensupport.SetOptions(c.urlParams_, opts...)
64077	res, err := c.doRequest("json")
64078	if res != nil && res.StatusCode == http.StatusNotModified {
64079		if res.Body != nil {
64080			res.Body.Close()
64081		}
64082		return nil, &googleapi.Error{
64083			Code:   res.StatusCode,
64084			Header: res.Header,
64085		}
64086	}
64087	if err != nil {
64088		return nil, err
64089	}
64090	defer googleapi.CloseBody(res)
64091	if err := googleapi.CheckResponse(res); err != nil {
64092		return nil, err
64093	}
64094	ret := &FirewallPolicyRule{
64095		ServerResponse: googleapi.ServerResponse{
64096			Header:         res.Header,
64097			HTTPStatusCode: res.StatusCode,
64098		},
64099	}
64100	target := &ret
64101	if err := gensupport.DecodeResponse(target, res); err != nil {
64102		return nil, err
64103	}
64104	return ret, nil
64105	// {
64106	//   "description": "Gets a rule of the specified priority.",
64107	//   "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/getRule",
64108	//   "httpMethod": "GET",
64109	//   "id": "compute.firewallPolicies.getRule",
64110	//   "parameterOrder": [
64111	//     "firewallPolicy"
64112	//   ],
64113	//   "parameters": {
64114	//     "firewallPolicy": {
64115	//       "description": "Name of the firewall policy to which the queried rule belongs.",
64116	//       "location": "path",
64117	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
64118	//       "required": true,
64119	//       "type": "string"
64120	//     },
64121	//     "priority": {
64122	//       "description": "The priority of the rule to get from the firewall policy.",
64123	//       "format": "int32",
64124	//       "location": "query",
64125	//       "type": "integer"
64126	//     }
64127	//   },
64128	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/getRule",
64129	//   "response": {
64130	//     "$ref": "FirewallPolicyRule"
64131	//   },
64132	//   "scopes": [
64133	//     "https://www.googleapis.com/auth/cloud-platform",
64134	//     "https://www.googleapis.com/auth/compute",
64135	//     "https://www.googleapis.com/auth/compute.readonly"
64136	//   ]
64137	// }
64138
64139}
64140
64141// method id "compute.firewallPolicies.insert":
64142
64143type FirewallPoliciesInsertCall struct {
64144	s              *Service
64145	firewallpolicy *FirewallPolicy
64146	urlParams_     gensupport.URLParams
64147	ctx_           context.Context
64148	header_        http.Header
64149}
64150
64151// Insert: Creates a new policy in the specified project using the data
64152// included in the request.
64153func (r *FirewallPoliciesService) Insert(firewallpolicy *FirewallPolicy) *FirewallPoliciesInsertCall {
64154	c := &FirewallPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64155	c.firewallpolicy = firewallpolicy
64156	return c
64157}
64158
64159// ParentId sets the optional parameter "parentId": Parent ID for this
64160// request. The ID can be either be "folders/[FOLDER_ID]" if the parent
64161// is a folder or "organizations/[ORGANIZATION_ID]" if the parent is an
64162// organization.
64163func (c *FirewallPoliciesInsertCall) ParentId(parentId string) *FirewallPoliciesInsertCall {
64164	c.urlParams_.Set("parentId", parentId)
64165	return c
64166}
64167
64168// RequestId sets the optional parameter "requestId": An optional
64169// request ID to identify requests. Specify a unique request ID so that
64170// if you must retry your request, the server will know to ignore the
64171// request if it has already been completed. For example, consider a
64172// situation where you make an initial request and the request times
64173// out. If you make the request again with the same request ID, the
64174// server can check if original operation with the same request ID was
64175// received, and if so, will ignore the second request. This prevents
64176// clients from accidentally creating duplicate commitments. The request
64177// ID must be a valid UUID with the exception that zero UUID is not
64178// supported ( 00000000-0000-0000-0000-000000000000).
64179func (c *FirewallPoliciesInsertCall) RequestId(requestId string) *FirewallPoliciesInsertCall {
64180	c.urlParams_.Set("requestId", requestId)
64181	return c
64182}
64183
64184// Fields allows partial responses to be retrieved. See
64185// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64186// for more information.
64187func (c *FirewallPoliciesInsertCall) Fields(s ...googleapi.Field) *FirewallPoliciesInsertCall {
64188	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64189	return c
64190}
64191
64192// Context sets the context to be used in this call's Do method. Any
64193// pending HTTP request will be aborted if the provided context is
64194// canceled.
64195func (c *FirewallPoliciesInsertCall) Context(ctx context.Context) *FirewallPoliciesInsertCall {
64196	c.ctx_ = ctx
64197	return c
64198}
64199
64200// Header returns an http.Header that can be modified by the caller to
64201// add HTTP headers to the request.
64202func (c *FirewallPoliciesInsertCall) Header() http.Header {
64203	if c.header_ == nil {
64204		c.header_ = make(http.Header)
64205	}
64206	return c.header_
64207}
64208
64209func (c *FirewallPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
64210	reqHeaders := make(http.Header)
64211	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
64212	for k, v := range c.header_ {
64213		reqHeaders[k] = v
64214	}
64215	reqHeaders.Set("User-Agent", c.s.userAgent())
64216	var body io.Reader = nil
64217	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicy)
64218	if err != nil {
64219		return nil, err
64220	}
64221	reqHeaders.Set("Content-Type", "application/json")
64222	c.urlParams_.Set("alt", alt)
64223	c.urlParams_.Set("prettyPrint", "false")
64224	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies")
64225	urls += "?" + c.urlParams_.Encode()
64226	req, err := http.NewRequest("POST", urls, body)
64227	if err != nil {
64228		return nil, err
64229	}
64230	req.Header = reqHeaders
64231	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64232}
64233
64234// Do executes the "compute.firewallPolicies.insert" call.
64235// Exactly one of *Operation or error will be non-nil. Any non-2xx
64236// status code is an error. Response headers are in either
64237// *Operation.ServerResponse.Header or (if a response was returned at
64238// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64239// to check whether the returned error was because
64240// http.StatusNotModified was returned.
64241func (c *FirewallPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64242	gensupport.SetOptions(c.urlParams_, opts...)
64243	res, err := c.doRequest("json")
64244	if res != nil && res.StatusCode == http.StatusNotModified {
64245		if res.Body != nil {
64246			res.Body.Close()
64247		}
64248		return nil, &googleapi.Error{
64249			Code:   res.StatusCode,
64250			Header: res.Header,
64251		}
64252	}
64253	if err != nil {
64254		return nil, err
64255	}
64256	defer googleapi.CloseBody(res)
64257	if err := googleapi.CheckResponse(res); err != nil {
64258		return nil, err
64259	}
64260	ret := &Operation{
64261		ServerResponse: googleapi.ServerResponse{
64262			Header:         res.Header,
64263			HTTPStatusCode: res.StatusCode,
64264		},
64265	}
64266	target := &ret
64267	if err := gensupport.DecodeResponse(target, res); err != nil {
64268		return nil, err
64269	}
64270	return ret, nil
64271	// {
64272	//   "description": "Creates a new policy in the specified project using the data included in the request.",
64273	//   "flatPath": "locations/global/firewallPolicies",
64274	//   "httpMethod": "POST",
64275	//   "id": "compute.firewallPolicies.insert",
64276	//   "parameters": {
64277	//     "parentId": {
64278	//       "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.",
64279	//       "location": "query",
64280	//       "type": "string"
64281	//     },
64282	//     "requestId": {
64283	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
64284	//       "location": "query",
64285	//       "type": "string"
64286	//     }
64287	//   },
64288	//   "path": "locations/global/firewallPolicies",
64289	//   "request": {
64290	//     "$ref": "FirewallPolicy"
64291	//   },
64292	//   "response": {
64293	//     "$ref": "Operation"
64294	//   },
64295	//   "scopes": [
64296	//     "https://www.googleapis.com/auth/cloud-platform",
64297	//     "https://www.googleapis.com/auth/compute"
64298	//   ]
64299	// }
64300
64301}
64302
64303// method id "compute.firewallPolicies.list":
64304
64305type FirewallPoliciesListCall struct {
64306	s            *Service
64307	urlParams_   gensupport.URLParams
64308	ifNoneMatch_ string
64309	ctx_         context.Context
64310	header_      http.Header
64311}
64312
64313// List: Lists all the policies that have been configured for the
64314// specified folder or organization.
64315func (r *FirewallPoliciesService) List() *FirewallPoliciesListCall {
64316	c := &FirewallPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64317	return c
64318}
64319
64320// Filter sets the optional parameter "filter": A filter expression that
64321// filters resources listed in the response. The expression must specify
64322// the field name, a comparison operator, and the value that you want to
64323// use for filtering. The value must be a string, a number, or a
64324// boolean. The comparison operator must be either `=`, `!=`, `>`, or
64325// `<`. For example, if you are filtering Compute Engine instances, you
64326// can exclude instances named `example-instance` by specifying `name !=
64327// example-instance`. You can also filter nested fields. For example,
64328// you could specify `scheduling.automaticRestart = false` to include
64329// instances only if they are not scheduled for automatic restarts. You
64330// can use filtering on nested fields to filter based on resource
64331// labels. To filter on multiple expressions, provide each separate
64332// expression within parentheses. For example: ```
64333// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
64334// ``` By default, each expression is an `AND` expression. However, you
64335// can include `AND` and `OR` expressions explicitly. For example: ```
64336// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
64337// AND (scheduling.automaticRestart = true) ```
64338func (c *FirewallPoliciesListCall) Filter(filter string) *FirewallPoliciesListCall {
64339	c.urlParams_.Set("filter", filter)
64340	return c
64341}
64342
64343// MaxResults sets the optional parameter "maxResults": The maximum
64344// number of results per page that should be returned. If the number of
64345// available results is larger than `maxResults`, Compute Engine returns
64346// a `nextPageToken` that can be used to get the next page of results in
64347// subsequent list requests. Acceptable values are `0` to `500`,
64348// inclusive. (Default: `500`)
64349func (c *FirewallPoliciesListCall) MaxResults(maxResults int64) *FirewallPoliciesListCall {
64350	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
64351	return c
64352}
64353
64354// OrderBy sets the optional parameter "orderBy": Sorts list results by
64355// a certain order. By default, results are returned in alphanumerical
64356// order based on the resource name. You can also sort results in
64357// descending order based on the creation timestamp using
64358// `orderBy="creationTimestamp desc". This sorts results based on the
64359// `creationTimestamp` field in reverse chronological order (newest
64360// result first). Use this to sort resources like operations so that the
64361// newest operation is returned first. Currently, only sorting by `name`
64362// or `creationTimestamp desc` is supported.
64363func (c *FirewallPoliciesListCall) OrderBy(orderBy string) *FirewallPoliciesListCall {
64364	c.urlParams_.Set("orderBy", orderBy)
64365	return c
64366}
64367
64368// PageToken sets the optional parameter "pageToken": Specifies a page
64369// token to use. Set `pageToken` to the `nextPageToken` returned by a
64370// previous list request to get the next page of results.
64371func (c *FirewallPoliciesListCall) PageToken(pageToken string) *FirewallPoliciesListCall {
64372	c.urlParams_.Set("pageToken", pageToken)
64373	return c
64374}
64375
64376// ParentId sets the optional parameter "parentId": Parent ID for this
64377// request.
64378func (c *FirewallPoliciesListCall) ParentId(parentId string) *FirewallPoliciesListCall {
64379	c.urlParams_.Set("parentId", parentId)
64380	return c
64381}
64382
64383// ReturnPartialSuccess sets the optional parameter
64384// "returnPartialSuccess": Opt-in for partial success behavior which
64385// provides partial results in case of failure. The default value is
64386// false.
64387func (c *FirewallPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *FirewallPoliciesListCall {
64388	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
64389	return c
64390}
64391
64392// Fields allows partial responses to be retrieved. See
64393// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64394// for more information.
64395func (c *FirewallPoliciesListCall) Fields(s ...googleapi.Field) *FirewallPoliciesListCall {
64396	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64397	return c
64398}
64399
64400// IfNoneMatch sets the optional parameter which makes the operation
64401// fail if the object's ETag matches the given value. This is useful for
64402// getting updates only after the object has changed since the last
64403// request. Use googleapi.IsNotModified to check whether the response
64404// error from Do is the result of In-None-Match.
64405func (c *FirewallPoliciesListCall) IfNoneMatch(entityTag string) *FirewallPoliciesListCall {
64406	c.ifNoneMatch_ = entityTag
64407	return c
64408}
64409
64410// Context sets the context to be used in this call's Do method. Any
64411// pending HTTP request will be aborted if the provided context is
64412// canceled.
64413func (c *FirewallPoliciesListCall) Context(ctx context.Context) *FirewallPoliciesListCall {
64414	c.ctx_ = ctx
64415	return c
64416}
64417
64418// Header returns an http.Header that can be modified by the caller to
64419// add HTTP headers to the request.
64420func (c *FirewallPoliciesListCall) Header() http.Header {
64421	if c.header_ == nil {
64422		c.header_ = make(http.Header)
64423	}
64424	return c.header_
64425}
64426
64427func (c *FirewallPoliciesListCall) doRequest(alt string) (*http.Response, error) {
64428	reqHeaders := make(http.Header)
64429	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
64430	for k, v := range c.header_ {
64431		reqHeaders[k] = v
64432	}
64433	reqHeaders.Set("User-Agent", c.s.userAgent())
64434	if c.ifNoneMatch_ != "" {
64435		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64436	}
64437	var body io.Reader = nil
64438	c.urlParams_.Set("alt", alt)
64439	c.urlParams_.Set("prettyPrint", "false")
64440	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies")
64441	urls += "?" + c.urlParams_.Encode()
64442	req, err := http.NewRequest("GET", urls, body)
64443	if err != nil {
64444		return nil, err
64445	}
64446	req.Header = reqHeaders
64447	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64448}
64449
64450// Do executes the "compute.firewallPolicies.list" call.
64451// Exactly one of *FirewallPolicyList or error will be non-nil. Any
64452// non-2xx status code is an error. Response headers are in either
64453// *FirewallPolicyList.ServerResponse.Header or (if a response was
64454// returned at all) in error.(*googleapi.Error).Header. Use
64455// googleapi.IsNotModified to check whether the returned error was
64456// because http.StatusNotModified was returned.
64457func (c *FirewallPoliciesListCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyList, error) {
64458	gensupport.SetOptions(c.urlParams_, opts...)
64459	res, err := c.doRequest("json")
64460	if res != nil && res.StatusCode == http.StatusNotModified {
64461		if res.Body != nil {
64462			res.Body.Close()
64463		}
64464		return nil, &googleapi.Error{
64465			Code:   res.StatusCode,
64466			Header: res.Header,
64467		}
64468	}
64469	if err != nil {
64470		return nil, err
64471	}
64472	defer googleapi.CloseBody(res)
64473	if err := googleapi.CheckResponse(res); err != nil {
64474		return nil, err
64475	}
64476	ret := &FirewallPolicyList{
64477		ServerResponse: googleapi.ServerResponse{
64478			Header:         res.Header,
64479			HTTPStatusCode: res.StatusCode,
64480		},
64481	}
64482	target := &ret
64483	if err := gensupport.DecodeResponse(target, res); err != nil {
64484		return nil, err
64485	}
64486	return ret, nil
64487	// {
64488	//   "description": "Lists all the policies that have been configured for the specified folder or organization.",
64489	//   "flatPath": "locations/global/firewallPolicies",
64490	//   "httpMethod": "GET",
64491	//   "id": "compute.firewallPolicies.list",
64492	//   "parameters": {
64493	//     "filter": {
64494	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
64495	//       "location": "query",
64496	//       "type": "string"
64497	//     },
64498	//     "maxResults": {
64499	//       "default": "500",
64500	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
64501	//       "format": "uint32",
64502	//       "location": "query",
64503	//       "minimum": "0",
64504	//       "type": "integer"
64505	//     },
64506	//     "orderBy": {
64507	//       "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.",
64508	//       "location": "query",
64509	//       "type": "string"
64510	//     },
64511	//     "pageToken": {
64512	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
64513	//       "location": "query",
64514	//       "type": "string"
64515	//     },
64516	//     "parentId": {
64517	//       "description": "Parent ID for this request.",
64518	//       "location": "query",
64519	//       "type": "string"
64520	//     },
64521	//     "returnPartialSuccess": {
64522	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
64523	//       "location": "query",
64524	//       "type": "boolean"
64525	//     }
64526	//   },
64527	//   "path": "locations/global/firewallPolicies",
64528	//   "response": {
64529	//     "$ref": "FirewallPolicyList"
64530	//   },
64531	//   "scopes": [
64532	//     "https://www.googleapis.com/auth/cloud-platform",
64533	//     "https://www.googleapis.com/auth/compute",
64534	//     "https://www.googleapis.com/auth/compute.readonly"
64535	//   ]
64536	// }
64537
64538}
64539
64540// Pages invokes f for each page of results.
64541// A non-nil error returned from f will halt the iteration.
64542// The provided context supersedes any context provided to the Context method.
64543func (c *FirewallPoliciesListCall) Pages(ctx context.Context, f func(*FirewallPolicyList) error) error {
64544	c.ctx_ = ctx
64545	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
64546	for {
64547		x, err := c.Do()
64548		if err != nil {
64549			return err
64550		}
64551		if err := f(x); err != nil {
64552			return err
64553		}
64554		if x.NextPageToken == "" {
64555			return nil
64556		}
64557		c.PageToken(x.NextPageToken)
64558	}
64559}
64560
64561// method id "compute.firewallPolicies.listAssociations":
64562
64563type FirewallPoliciesListAssociationsCall struct {
64564	s            *Service
64565	urlParams_   gensupport.URLParams
64566	ifNoneMatch_ string
64567	ctx_         context.Context
64568	header_      http.Header
64569}
64570
64571// ListAssociations: Lists associations of a specified target, i.e.,
64572// organization or folder.
64573func (r *FirewallPoliciesService) ListAssociations() *FirewallPoliciesListAssociationsCall {
64574	c := &FirewallPoliciesListAssociationsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64575	return c
64576}
64577
64578// TargetResource sets the optional parameter "targetResource": The
64579// target resource to list associations. It is an organization, or a
64580// folder.
64581func (c *FirewallPoliciesListAssociationsCall) TargetResource(targetResource string) *FirewallPoliciesListAssociationsCall {
64582	c.urlParams_.Set("targetResource", targetResource)
64583	return c
64584}
64585
64586// Fields allows partial responses to be retrieved. See
64587// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64588// for more information.
64589func (c *FirewallPoliciesListAssociationsCall) Fields(s ...googleapi.Field) *FirewallPoliciesListAssociationsCall {
64590	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64591	return c
64592}
64593
64594// IfNoneMatch sets the optional parameter which makes the operation
64595// fail if the object's ETag matches the given value. This is useful for
64596// getting updates only after the object has changed since the last
64597// request. Use googleapi.IsNotModified to check whether the response
64598// error from Do is the result of In-None-Match.
64599func (c *FirewallPoliciesListAssociationsCall) IfNoneMatch(entityTag string) *FirewallPoliciesListAssociationsCall {
64600	c.ifNoneMatch_ = entityTag
64601	return c
64602}
64603
64604// Context sets the context to be used in this call's Do method. Any
64605// pending HTTP request will be aborted if the provided context is
64606// canceled.
64607func (c *FirewallPoliciesListAssociationsCall) Context(ctx context.Context) *FirewallPoliciesListAssociationsCall {
64608	c.ctx_ = ctx
64609	return c
64610}
64611
64612// Header returns an http.Header that can be modified by the caller to
64613// add HTTP headers to the request.
64614func (c *FirewallPoliciesListAssociationsCall) Header() http.Header {
64615	if c.header_ == nil {
64616		c.header_ = make(http.Header)
64617	}
64618	return c.header_
64619}
64620
64621func (c *FirewallPoliciesListAssociationsCall) doRequest(alt string) (*http.Response, error) {
64622	reqHeaders := make(http.Header)
64623	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
64624	for k, v := range c.header_ {
64625		reqHeaders[k] = v
64626	}
64627	reqHeaders.Set("User-Agent", c.s.userAgent())
64628	if c.ifNoneMatch_ != "" {
64629		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64630	}
64631	var body io.Reader = nil
64632	c.urlParams_.Set("alt", alt)
64633	c.urlParams_.Set("prettyPrint", "false")
64634	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/listAssociations")
64635	urls += "?" + c.urlParams_.Encode()
64636	req, err := http.NewRequest("GET", urls, body)
64637	if err != nil {
64638		return nil, err
64639	}
64640	req.Header = reqHeaders
64641	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64642}
64643
64644// Do executes the "compute.firewallPolicies.listAssociations" call.
64645// Exactly one of *FirewallPoliciesListAssociationsResponse or error
64646// will be non-nil. Any non-2xx status code is an error. Response
64647// headers are in either
64648// *FirewallPoliciesListAssociationsResponse.ServerResponse.Header or
64649// (if a response was returned at all) in
64650// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
64651// whether the returned error was because http.StatusNotModified was
64652// returned.
64653func (c *FirewallPoliciesListAssociationsCall) Do(opts ...googleapi.CallOption) (*FirewallPoliciesListAssociationsResponse, error) {
64654	gensupport.SetOptions(c.urlParams_, opts...)
64655	res, err := c.doRequest("json")
64656	if res != nil && res.StatusCode == http.StatusNotModified {
64657		if res.Body != nil {
64658			res.Body.Close()
64659		}
64660		return nil, &googleapi.Error{
64661			Code:   res.StatusCode,
64662			Header: res.Header,
64663		}
64664	}
64665	if err != nil {
64666		return nil, err
64667	}
64668	defer googleapi.CloseBody(res)
64669	if err := googleapi.CheckResponse(res); err != nil {
64670		return nil, err
64671	}
64672	ret := &FirewallPoliciesListAssociationsResponse{
64673		ServerResponse: googleapi.ServerResponse{
64674			Header:         res.Header,
64675			HTTPStatusCode: res.StatusCode,
64676		},
64677	}
64678	target := &ret
64679	if err := gensupport.DecodeResponse(target, res); err != nil {
64680		return nil, err
64681	}
64682	return ret, nil
64683	// {
64684	//   "description": "Lists associations of a specified target, i.e., organization or folder.",
64685	//   "flatPath": "locations/global/firewallPolicies/listAssociations",
64686	//   "httpMethod": "GET",
64687	//   "id": "compute.firewallPolicies.listAssociations",
64688	//   "parameters": {
64689	//     "targetResource": {
64690	//       "description": "The target resource to list associations. It is an organization, or a folder.",
64691	//       "location": "query",
64692	//       "type": "string"
64693	//     }
64694	//   },
64695	//   "path": "locations/global/firewallPolicies/listAssociations",
64696	//   "response": {
64697	//     "$ref": "FirewallPoliciesListAssociationsResponse"
64698	//   },
64699	//   "scopes": [
64700	//     "https://www.googleapis.com/auth/cloud-platform",
64701	//     "https://www.googleapis.com/auth/compute",
64702	//     "https://www.googleapis.com/auth/compute.readonly"
64703	//   ]
64704	// }
64705
64706}
64707
64708// method id "compute.firewallPolicies.move":
64709
64710type FirewallPoliciesMoveCall struct {
64711	s              *Service
64712	firewallPolicy string
64713	urlParams_     gensupport.URLParams
64714	ctx_           context.Context
64715	header_        http.Header
64716}
64717
64718// Move: Moves the specified firewall policy.
64719//
64720// - firewallPolicy: Name of the firewall policy to update.
64721func (r *FirewallPoliciesService) Move(firewallPolicy string) *FirewallPoliciesMoveCall {
64722	c := &FirewallPoliciesMoveCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64723	c.firewallPolicy = firewallPolicy
64724	return c
64725}
64726
64727// ParentId sets the optional parameter "parentId": The new parent of
64728// the firewall policy.
64729func (c *FirewallPoliciesMoveCall) ParentId(parentId string) *FirewallPoliciesMoveCall {
64730	c.urlParams_.Set("parentId", parentId)
64731	return c
64732}
64733
64734// RequestId sets the optional parameter "requestId": An optional
64735// request ID to identify requests. Specify a unique request ID so that
64736// if you must retry your request, the server will know to ignore the
64737// request if it has already been completed. For example, consider a
64738// situation where you make an initial request and the request times
64739// out. If you make the request again with the same request ID, the
64740// server can check if original operation with the same request ID was
64741// received, and if so, will ignore the second request. This prevents
64742// clients from accidentally creating duplicate commitments. The request
64743// ID must be a valid UUID with the exception that zero UUID is not
64744// supported ( 00000000-0000-0000-0000-000000000000).
64745func (c *FirewallPoliciesMoveCall) RequestId(requestId string) *FirewallPoliciesMoveCall {
64746	c.urlParams_.Set("requestId", requestId)
64747	return c
64748}
64749
64750// Fields allows partial responses to be retrieved. See
64751// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64752// for more information.
64753func (c *FirewallPoliciesMoveCall) Fields(s ...googleapi.Field) *FirewallPoliciesMoveCall {
64754	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64755	return c
64756}
64757
64758// Context sets the context to be used in this call's Do method. Any
64759// pending HTTP request will be aborted if the provided context is
64760// canceled.
64761func (c *FirewallPoliciesMoveCall) Context(ctx context.Context) *FirewallPoliciesMoveCall {
64762	c.ctx_ = ctx
64763	return c
64764}
64765
64766// Header returns an http.Header that can be modified by the caller to
64767// add HTTP headers to the request.
64768func (c *FirewallPoliciesMoveCall) Header() http.Header {
64769	if c.header_ == nil {
64770		c.header_ = make(http.Header)
64771	}
64772	return c.header_
64773}
64774
64775func (c *FirewallPoliciesMoveCall) doRequest(alt string) (*http.Response, error) {
64776	reqHeaders := make(http.Header)
64777	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
64778	for k, v := range c.header_ {
64779		reqHeaders[k] = v
64780	}
64781	reqHeaders.Set("User-Agent", c.s.userAgent())
64782	var body io.Reader = nil
64783	c.urlParams_.Set("alt", alt)
64784	c.urlParams_.Set("prettyPrint", "false")
64785	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/move")
64786	urls += "?" + c.urlParams_.Encode()
64787	req, err := http.NewRequest("POST", urls, body)
64788	if err != nil {
64789		return nil, err
64790	}
64791	req.Header = reqHeaders
64792	googleapi.Expand(req.URL, map[string]string{
64793		"firewallPolicy": c.firewallPolicy,
64794	})
64795	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64796}
64797
64798// Do executes the "compute.firewallPolicies.move" call.
64799// Exactly one of *Operation or error will be non-nil. Any non-2xx
64800// status code is an error. Response headers are in either
64801// *Operation.ServerResponse.Header or (if a response was returned at
64802// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64803// to check whether the returned error was because
64804// http.StatusNotModified was returned.
64805func (c *FirewallPoliciesMoveCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64806	gensupport.SetOptions(c.urlParams_, opts...)
64807	res, err := c.doRequest("json")
64808	if res != nil && res.StatusCode == http.StatusNotModified {
64809		if res.Body != nil {
64810			res.Body.Close()
64811		}
64812		return nil, &googleapi.Error{
64813			Code:   res.StatusCode,
64814			Header: res.Header,
64815		}
64816	}
64817	if err != nil {
64818		return nil, err
64819	}
64820	defer googleapi.CloseBody(res)
64821	if err := googleapi.CheckResponse(res); err != nil {
64822		return nil, err
64823	}
64824	ret := &Operation{
64825		ServerResponse: googleapi.ServerResponse{
64826			Header:         res.Header,
64827			HTTPStatusCode: res.StatusCode,
64828		},
64829	}
64830	target := &ret
64831	if err := gensupport.DecodeResponse(target, res); err != nil {
64832		return nil, err
64833	}
64834	return ret, nil
64835	// {
64836	//   "description": "Moves the specified firewall policy.",
64837	//   "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/move",
64838	//   "httpMethod": "POST",
64839	//   "id": "compute.firewallPolicies.move",
64840	//   "parameterOrder": [
64841	//     "firewallPolicy"
64842	//   ],
64843	//   "parameters": {
64844	//     "firewallPolicy": {
64845	//       "description": "Name of the firewall policy to update.",
64846	//       "location": "path",
64847	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
64848	//       "required": true,
64849	//       "type": "string"
64850	//     },
64851	//     "parentId": {
64852	//       "description": "The new parent of the firewall policy.",
64853	//       "location": "query",
64854	//       "type": "string"
64855	//     },
64856	//     "requestId": {
64857	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
64858	//       "location": "query",
64859	//       "type": "string"
64860	//     }
64861	//   },
64862	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/move",
64863	//   "response": {
64864	//     "$ref": "Operation"
64865	//   },
64866	//   "scopes": [
64867	//     "https://www.googleapis.com/auth/cloud-platform",
64868	//     "https://www.googleapis.com/auth/compute"
64869	//   ]
64870	// }
64871
64872}
64873
64874// method id "compute.firewallPolicies.patch":
64875
64876type FirewallPoliciesPatchCall struct {
64877	s              *Service
64878	firewallPolicy string
64879	firewallpolicy *FirewallPolicy
64880	urlParams_     gensupport.URLParams
64881	ctx_           context.Context
64882	header_        http.Header
64883}
64884
64885// Patch: Patches the specified policy with the data included in the
64886// request.
64887//
64888// - firewallPolicy: Name of the firewall policy to update.
64889func (r *FirewallPoliciesService) Patch(firewallPolicy string, firewallpolicy *FirewallPolicy) *FirewallPoliciesPatchCall {
64890	c := &FirewallPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64891	c.firewallPolicy = firewallPolicy
64892	c.firewallpolicy = firewallpolicy
64893	return c
64894}
64895
64896// RequestId sets the optional parameter "requestId": An optional
64897// request ID to identify requests. Specify a unique request ID so that
64898// if you must retry your request, the server will know to ignore the
64899// request if it has already been completed. For example, consider a
64900// situation where you make an initial request and the request times
64901// out. If you make the request again with the same request ID, the
64902// server can check if original operation with the same request ID was
64903// received, and if so, will ignore the second request. This prevents
64904// clients from accidentally creating duplicate commitments. The request
64905// ID must be a valid UUID with the exception that zero UUID is not
64906// supported ( 00000000-0000-0000-0000-000000000000).
64907func (c *FirewallPoliciesPatchCall) RequestId(requestId string) *FirewallPoliciesPatchCall {
64908	c.urlParams_.Set("requestId", requestId)
64909	return c
64910}
64911
64912// Fields allows partial responses to be retrieved. See
64913// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64914// for more information.
64915func (c *FirewallPoliciesPatchCall) Fields(s ...googleapi.Field) *FirewallPoliciesPatchCall {
64916	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64917	return c
64918}
64919
64920// Context sets the context to be used in this call's Do method. Any
64921// pending HTTP request will be aborted if the provided context is
64922// canceled.
64923func (c *FirewallPoliciesPatchCall) Context(ctx context.Context) *FirewallPoliciesPatchCall {
64924	c.ctx_ = ctx
64925	return c
64926}
64927
64928// Header returns an http.Header that can be modified by the caller to
64929// add HTTP headers to the request.
64930func (c *FirewallPoliciesPatchCall) Header() http.Header {
64931	if c.header_ == nil {
64932		c.header_ = make(http.Header)
64933	}
64934	return c.header_
64935}
64936
64937func (c *FirewallPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
64938	reqHeaders := make(http.Header)
64939	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
64940	for k, v := range c.header_ {
64941		reqHeaders[k] = v
64942	}
64943	reqHeaders.Set("User-Agent", c.s.userAgent())
64944	var body io.Reader = nil
64945	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicy)
64946	if err != nil {
64947		return nil, err
64948	}
64949	reqHeaders.Set("Content-Type", "application/json")
64950	c.urlParams_.Set("alt", alt)
64951	c.urlParams_.Set("prettyPrint", "false")
64952	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}")
64953	urls += "?" + c.urlParams_.Encode()
64954	req, err := http.NewRequest("PATCH", urls, body)
64955	if err != nil {
64956		return nil, err
64957	}
64958	req.Header = reqHeaders
64959	googleapi.Expand(req.URL, map[string]string{
64960		"firewallPolicy": c.firewallPolicy,
64961	})
64962	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64963}
64964
64965// Do executes the "compute.firewallPolicies.patch" call.
64966// Exactly one of *Operation or error will be non-nil. Any non-2xx
64967// status code is an error. Response headers are in either
64968// *Operation.ServerResponse.Header or (if a response was returned at
64969// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64970// to check whether the returned error was because
64971// http.StatusNotModified was returned.
64972func (c *FirewallPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64973	gensupport.SetOptions(c.urlParams_, opts...)
64974	res, err := c.doRequest("json")
64975	if res != nil && res.StatusCode == http.StatusNotModified {
64976		if res.Body != nil {
64977			res.Body.Close()
64978		}
64979		return nil, &googleapi.Error{
64980			Code:   res.StatusCode,
64981			Header: res.Header,
64982		}
64983	}
64984	if err != nil {
64985		return nil, err
64986	}
64987	defer googleapi.CloseBody(res)
64988	if err := googleapi.CheckResponse(res); err != nil {
64989		return nil, err
64990	}
64991	ret := &Operation{
64992		ServerResponse: googleapi.ServerResponse{
64993			Header:         res.Header,
64994			HTTPStatusCode: res.StatusCode,
64995		},
64996	}
64997	target := &ret
64998	if err := gensupport.DecodeResponse(target, res); err != nil {
64999		return nil, err
65000	}
65001	return ret, nil
65002	// {
65003	//   "description": "Patches the specified policy with the data included in the request.",
65004	//   "flatPath": "locations/global/firewallPolicies/{firewallPolicy}",
65005	//   "httpMethod": "PATCH",
65006	//   "id": "compute.firewallPolicies.patch",
65007	//   "parameterOrder": [
65008	//     "firewallPolicy"
65009	//   ],
65010	//   "parameters": {
65011	//     "firewallPolicy": {
65012	//       "description": "Name of the firewall policy to update.",
65013	//       "location": "path",
65014	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
65015	//       "required": true,
65016	//       "type": "string"
65017	//     },
65018	//     "requestId": {
65019	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
65020	//       "location": "query",
65021	//       "type": "string"
65022	//     }
65023	//   },
65024	//   "path": "locations/global/firewallPolicies/{firewallPolicy}",
65025	//   "request": {
65026	//     "$ref": "FirewallPolicy"
65027	//   },
65028	//   "response": {
65029	//     "$ref": "Operation"
65030	//   },
65031	//   "scopes": [
65032	//     "https://www.googleapis.com/auth/cloud-platform",
65033	//     "https://www.googleapis.com/auth/compute"
65034	//   ]
65035	// }
65036
65037}
65038
65039// method id "compute.firewallPolicies.patchRule":
65040
65041type FirewallPoliciesPatchRuleCall struct {
65042	s                  *Service
65043	firewallPolicy     string
65044	firewallpolicyrule *FirewallPolicyRule
65045	urlParams_         gensupport.URLParams
65046	ctx_               context.Context
65047	header_            http.Header
65048}
65049
65050// PatchRule: Patches a rule of the specified priority.
65051//
65052// - firewallPolicy: Name of the firewall policy to update.
65053func (r *FirewallPoliciesService) PatchRule(firewallPolicy string, firewallpolicyrule *FirewallPolicyRule) *FirewallPoliciesPatchRuleCall {
65054	c := &FirewallPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65055	c.firewallPolicy = firewallPolicy
65056	c.firewallpolicyrule = firewallpolicyrule
65057	return c
65058}
65059
65060// Priority sets the optional parameter "priority": The priority of the
65061// rule to patch.
65062func (c *FirewallPoliciesPatchRuleCall) Priority(priority int64) *FirewallPoliciesPatchRuleCall {
65063	c.urlParams_.Set("priority", fmt.Sprint(priority))
65064	return c
65065}
65066
65067// RequestId sets the optional parameter "requestId": An optional
65068// request ID to identify requests. Specify a unique request ID so that
65069// if you must retry your request, the server will know to ignore the
65070// request if it has already been completed. For example, consider a
65071// situation where you make an initial request and the request times
65072// out. If you make the request again with the same request ID, the
65073// server can check if original operation with the same request ID was
65074// received, and if so, will ignore the second request. This prevents
65075// clients from accidentally creating duplicate commitments. The request
65076// ID must be a valid UUID with the exception that zero UUID is not
65077// supported ( 00000000-0000-0000-0000-000000000000).
65078func (c *FirewallPoliciesPatchRuleCall) RequestId(requestId string) *FirewallPoliciesPatchRuleCall {
65079	c.urlParams_.Set("requestId", requestId)
65080	return c
65081}
65082
65083// Fields allows partial responses to be retrieved. See
65084// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65085// for more information.
65086func (c *FirewallPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *FirewallPoliciesPatchRuleCall {
65087	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65088	return c
65089}
65090
65091// Context sets the context to be used in this call's Do method. Any
65092// pending HTTP request will be aborted if the provided context is
65093// canceled.
65094func (c *FirewallPoliciesPatchRuleCall) Context(ctx context.Context) *FirewallPoliciesPatchRuleCall {
65095	c.ctx_ = ctx
65096	return c
65097}
65098
65099// Header returns an http.Header that can be modified by the caller to
65100// add HTTP headers to the request.
65101func (c *FirewallPoliciesPatchRuleCall) Header() http.Header {
65102	if c.header_ == nil {
65103		c.header_ = make(http.Header)
65104	}
65105	return c.header_
65106}
65107
65108func (c *FirewallPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) {
65109	reqHeaders := make(http.Header)
65110	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
65111	for k, v := range c.header_ {
65112		reqHeaders[k] = v
65113	}
65114	reqHeaders.Set("User-Agent", c.s.userAgent())
65115	var body io.Reader = nil
65116	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicyrule)
65117	if err != nil {
65118		return nil, err
65119	}
65120	reqHeaders.Set("Content-Type", "application/json")
65121	c.urlParams_.Set("alt", alt)
65122	c.urlParams_.Set("prettyPrint", "false")
65123	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/patchRule")
65124	urls += "?" + c.urlParams_.Encode()
65125	req, err := http.NewRequest("POST", urls, body)
65126	if err != nil {
65127		return nil, err
65128	}
65129	req.Header = reqHeaders
65130	googleapi.Expand(req.URL, map[string]string{
65131		"firewallPolicy": c.firewallPolicy,
65132	})
65133	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65134}
65135
65136// Do executes the "compute.firewallPolicies.patchRule" call.
65137// Exactly one of *Operation or error will be non-nil. Any non-2xx
65138// status code is an error. Response headers are in either
65139// *Operation.ServerResponse.Header or (if a response was returned at
65140// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65141// to check whether the returned error was because
65142// http.StatusNotModified was returned.
65143func (c *FirewallPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65144	gensupport.SetOptions(c.urlParams_, opts...)
65145	res, err := c.doRequest("json")
65146	if res != nil && res.StatusCode == http.StatusNotModified {
65147		if res.Body != nil {
65148			res.Body.Close()
65149		}
65150		return nil, &googleapi.Error{
65151			Code:   res.StatusCode,
65152			Header: res.Header,
65153		}
65154	}
65155	if err != nil {
65156		return nil, err
65157	}
65158	defer googleapi.CloseBody(res)
65159	if err := googleapi.CheckResponse(res); err != nil {
65160		return nil, err
65161	}
65162	ret := &Operation{
65163		ServerResponse: googleapi.ServerResponse{
65164			Header:         res.Header,
65165			HTTPStatusCode: res.StatusCode,
65166		},
65167	}
65168	target := &ret
65169	if err := gensupport.DecodeResponse(target, res); err != nil {
65170		return nil, err
65171	}
65172	return ret, nil
65173	// {
65174	//   "description": "Patches a rule of the specified priority.",
65175	//   "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/patchRule",
65176	//   "httpMethod": "POST",
65177	//   "id": "compute.firewallPolicies.patchRule",
65178	//   "parameterOrder": [
65179	//     "firewallPolicy"
65180	//   ],
65181	//   "parameters": {
65182	//     "firewallPolicy": {
65183	//       "description": "Name of the firewall policy to update.",
65184	//       "location": "path",
65185	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
65186	//       "required": true,
65187	//       "type": "string"
65188	//     },
65189	//     "priority": {
65190	//       "description": "The priority of the rule to patch.",
65191	//       "format": "int32",
65192	//       "location": "query",
65193	//       "type": "integer"
65194	//     },
65195	//     "requestId": {
65196	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
65197	//       "location": "query",
65198	//       "type": "string"
65199	//     }
65200	//   },
65201	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/patchRule",
65202	//   "request": {
65203	//     "$ref": "FirewallPolicyRule"
65204	//   },
65205	//   "response": {
65206	//     "$ref": "Operation"
65207	//   },
65208	//   "scopes": [
65209	//     "https://www.googleapis.com/auth/cloud-platform",
65210	//     "https://www.googleapis.com/auth/compute"
65211	//   ]
65212	// }
65213
65214}
65215
65216// method id "compute.firewallPolicies.removeAssociation":
65217
65218type FirewallPoliciesRemoveAssociationCall struct {
65219	s              *Service
65220	firewallPolicy string
65221	urlParams_     gensupport.URLParams
65222	ctx_           context.Context
65223	header_        http.Header
65224}
65225
65226// RemoveAssociation: Removes an association for the specified firewall
65227// policy.
65228//
65229// - firewallPolicy: Name of the firewall policy to update.
65230func (r *FirewallPoliciesService) RemoveAssociation(firewallPolicy string) *FirewallPoliciesRemoveAssociationCall {
65231	c := &FirewallPoliciesRemoveAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65232	c.firewallPolicy = firewallPolicy
65233	return c
65234}
65235
65236// Name sets the optional parameter "name": Name for the attachment that
65237// will be removed.
65238func (c *FirewallPoliciesRemoveAssociationCall) Name(name string) *FirewallPoliciesRemoveAssociationCall {
65239	c.urlParams_.Set("name", name)
65240	return c
65241}
65242
65243// RequestId sets the optional parameter "requestId": An optional
65244// request ID to identify requests. Specify a unique request ID so that
65245// if you must retry your request, the server will know to ignore the
65246// request if it has already been completed. For example, consider a
65247// situation where you make an initial request and the request times
65248// out. If you make the request again with the same request ID, the
65249// server can check if original operation with the same request ID was
65250// received, and if so, will ignore the second request. This prevents
65251// clients from accidentally creating duplicate commitments. The request
65252// ID must be a valid UUID with the exception that zero UUID is not
65253// supported ( 00000000-0000-0000-0000-000000000000).
65254func (c *FirewallPoliciesRemoveAssociationCall) RequestId(requestId string) *FirewallPoliciesRemoveAssociationCall {
65255	c.urlParams_.Set("requestId", requestId)
65256	return c
65257}
65258
65259// Fields allows partial responses to be retrieved. See
65260// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65261// for more information.
65262func (c *FirewallPoliciesRemoveAssociationCall) Fields(s ...googleapi.Field) *FirewallPoliciesRemoveAssociationCall {
65263	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65264	return c
65265}
65266
65267// Context sets the context to be used in this call's Do method. Any
65268// pending HTTP request will be aborted if the provided context is
65269// canceled.
65270func (c *FirewallPoliciesRemoveAssociationCall) Context(ctx context.Context) *FirewallPoliciesRemoveAssociationCall {
65271	c.ctx_ = ctx
65272	return c
65273}
65274
65275// Header returns an http.Header that can be modified by the caller to
65276// add HTTP headers to the request.
65277func (c *FirewallPoliciesRemoveAssociationCall) Header() http.Header {
65278	if c.header_ == nil {
65279		c.header_ = make(http.Header)
65280	}
65281	return c.header_
65282}
65283
65284func (c *FirewallPoliciesRemoveAssociationCall) doRequest(alt string) (*http.Response, error) {
65285	reqHeaders := make(http.Header)
65286	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
65287	for k, v := range c.header_ {
65288		reqHeaders[k] = v
65289	}
65290	reqHeaders.Set("User-Agent", c.s.userAgent())
65291	var body io.Reader = nil
65292	c.urlParams_.Set("alt", alt)
65293	c.urlParams_.Set("prettyPrint", "false")
65294	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/removeAssociation")
65295	urls += "?" + c.urlParams_.Encode()
65296	req, err := http.NewRequest("POST", urls, body)
65297	if err != nil {
65298		return nil, err
65299	}
65300	req.Header = reqHeaders
65301	googleapi.Expand(req.URL, map[string]string{
65302		"firewallPolicy": c.firewallPolicy,
65303	})
65304	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65305}
65306
65307// Do executes the "compute.firewallPolicies.removeAssociation" call.
65308// Exactly one of *Operation or error will be non-nil. Any non-2xx
65309// status code is an error. Response headers are in either
65310// *Operation.ServerResponse.Header or (if a response was returned at
65311// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65312// to check whether the returned error was because
65313// http.StatusNotModified was returned.
65314func (c *FirewallPoliciesRemoveAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65315	gensupport.SetOptions(c.urlParams_, opts...)
65316	res, err := c.doRequest("json")
65317	if res != nil && res.StatusCode == http.StatusNotModified {
65318		if res.Body != nil {
65319			res.Body.Close()
65320		}
65321		return nil, &googleapi.Error{
65322			Code:   res.StatusCode,
65323			Header: res.Header,
65324		}
65325	}
65326	if err != nil {
65327		return nil, err
65328	}
65329	defer googleapi.CloseBody(res)
65330	if err := googleapi.CheckResponse(res); err != nil {
65331		return nil, err
65332	}
65333	ret := &Operation{
65334		ServerResponse: googleapi.ServerResponse{
65335			Header:         res.Header,
65336			HTTPStatusCode: res.StatusCode,
65337		},
65338	}
65339	target := &ret
65340	if err := gensupport.DecodeResponse(target, res); err != nil {
65341		return nil, err
65342	}
65343	return ret, nil
65344	// {
65345	//   "description": "Removes an association for the specified firewall policy.",
65346	//   "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/removeAssociation",
65347	//   "httpMethod": "POST",
65348	//   "id": "compute.firewallPolicies.removeAssociation",
65349	//   "parameterOrder": [
65350	//     "firewallPolicy"
65351	//   ],
65352	//   "parameters": {
65353	//     "firewallPolicy": {
65354	//       "description": "Name of the firewall policy to update.",
65355	//       "location": "path",
65356	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
65357	//       "required": true,
65358	//       "type": "string"
65359	//     },
65360	//     "name": {
65361	//       "description": "Name for the attachment that will be removed.",
65362	//       "location": "query",
65363	//       "type": "string"
65364	//     },
65365	//     "requestId": {
65366	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
65367	//       "location": "query",
65368	//       "type": "string"
65369	//     }
65370	//   },
65371	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/removeAssociation",
65372	//   "response": {
65373	//     "$ref": "Operation"
65374	//   },
65375	//   "scopes": [
65376	//     "https://www.googleapis.com/auth/cloud-platform",
65377	//     "https://www.googleapis.com/auth/compute"
65378	//   ]
65379	// }
65380
65381}
65382
65383// method id "compute.firewallPolicies.removeRule":
65384
65385type FirewallPoliciesRemoveRuleCall struct {
65386	s              *Service
65387	firewallPolicy string
65388	urlParams_     gensupport.URLParams
65389	ctx_           context.Context
65390	header_        http.Header
65391}
65392
65393// RemoveRule: Deletes a rule of the specified priority.
65394//
65395// - firewallPolicy: Name of the firewall policy to update.
65396func (r *FirewallPoliciesService) RemoveRule(firewallPolicy string) *FirewallPoliciesRemoveRuleCall {
65397	c := &FirewallPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65398	c.firewallPolicy = firewallPolicy
65399	return c
65400}
65401
65402// Priority sets the optional parameter "priority": The priority of the
65403// rule to remove from the firewall policy.
65404func (c *FirewallPoliciesRemoveRuleCall) Priority(priority int64) *FirewallPoliciesRemoveRuleCall {
65405	c.urlParams_.Set("priority", fmt.Sprint(priority))
65406	return c
65407}
65408
65409// RequestId sets the optional parameter "requestId": An optional
65410// request ID to identify requests. Specify a unique request ID so that
65411// if you must retry your request, the server will know to ignore the
65412// request if it has already been completed. For example, consider a
65413// situation where you make an initial request and the request times
65414// out. If you make the request again with the same request ID, the
65415// server can check if original operation with the same request ID was
65416// received, and if so, will ignore the second request. This prevents
65417// clients from accidentally creating duplicate commitments. The request
65418// ID must be a valid UUID with the exception that zero UUID is not
65419// supported ( 00000000-0000-0000-0000-000000000000).
65420func (c *FirewallPoliciesRemoveRuleCall) RequestId(requestId string) *FirewallPoliciesRemoveRuleCall {
65421	c.urlParams_.Set("requestId", requestId)
65422	return c
65423}
65424
65425// Fields allows partial responses to be retrieved. See
65426// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65427// for more information.
65428func (c *FirewallPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *FirewallPoliciesRemoveRuleCall {
65429	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65430	return c
65431}
65432
65433// Context sets the context to be used in this call's Do method. Any
65434// pending HTTP request will be aborted if the provided context is
65435// canceled.
65436func (c *FirewallPoliciesRemoveRuleCall) Context(ctx context.Context) *FirewallPoliciesRemoveRuleCall {
65437	c.ctx_ = ctx
65438	return c
65439}
65440
65441// Header returns an http.Header that can be modified by the caller to
65442// add HTTP headers to the request.
65443func (c *FirewallPoliciesRemoveRuleCall) Header() http.Header {
65444	if c.header_ == nil {
65445		c.header_ = make(http.Header)
65446	}
65447	return c.header_
65448}
65449
65450func (c *FirewallPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) {
65451	reqHeaders := make(http.Header)
65452	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
65453	for k, v := range c.header_ {
65454		reqHeaders[k] = v
65455	}
65456	reqHeaders.Set("User-Agent", c.s.userAgent())
65457	var body io.Reader = nil
65458	c.urlParams_.Set("alt", alt)
65459	c.urlParams_.Set("prettyPrint", "false")
65460	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/removeRule")
65461	urls += "?" + c.urlParams_.Encode()
65462	req, err := http.NewRequest("POST", urls, body)
65463	if err != nil {
65464		return nil, err
65465	}
65466	req.Header = reqHeaders
65467	googleapi.Expand(req.URL, map[string]string{
65468		"firewallPolicy": c.firewallPolicy,
65469	})
65470	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65471}
65472
65473// Do executes the "compute.firewallPolicies.removeRule" call.
65474// Exactly one of *Operation or error will be non-nil. Any non-2xx
65475// status code is an error. Response headers are in either
65476// *Operation.ServerResponse.Header or (if a response was returned at
65477// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65478// to check whether the returned error was because
65479// http.StatusNotModified was returned.
65480func (c *FirewallPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65481	gensupport.SetOptions(c.urlParams_, opts...)
65482	res, err := c.doRequest("json")
65483	if res != nil && res.StatusCode == http.StatusNotModified {
65484		if res.Body != nil {
65485			res.Body.Close()
65486		}
65487		return nil, &googleapi.Error{
65488			Code:   res.StatusCode,
65489			Header: res.Header,
65490		}
65491	}
65492	if err != nil {
65493		return nil, err
65494	}
65495	defer googleapi.CloseBody(res)
65496	if err := googleapi.CheckResponse(res); err != nil {
65497		return nil, err
65498	}
65499	ret := &Operation{
65500		ServerResponse: googleapi.ServerResponse{
65501			Header:         res.Header,
65502			HTTPStatusCode: res.StatusCode,
65503		},
65504	}
65505	target := &ret
65506	if err := gensupport.DecodeResponse(target, res); err != nil {
65507		return nil, err
65508	}
65509	return ret, nil
65510	// {
65511	//   "description": "Deletes a rule of the specified priority.",
65512	//   "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/removeRule",
65513	//   "httpMethod": "POST",
65514	//   "id": "compute.firewallPolicies.removeRule",
65515	//   "parameterOrder": [
65516	//     "firewallPolicy"
65517	//   ],
65518	//   "parameters": {
65519	//     "firewallPolicy": {
65520	//       "description": "Name of the firewall policy to update.",
65521	//       "location": "path",
65522	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
65523	//       "required": true,
65524	//       "type": "string"
65525	//     },
65526	//     "priority": {
65527	//       "description": "The priority of the rule to remove from the firewall policy.",
65528	//       "format": "int32",
65529	//       "location": "query",
65530	//       "type": "integer"
65531	//     },
65532	//     "requestId": {
65533	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
65534	//       "location": "query",
65535	//       "type": "string"
65536	//     }
65537	//   },
65538	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/removeRule",
65539	//   "response": {
65540	//     "$ref": "Operation"
65541	//   },
65542	//   "scopes": [
65543	//     "https://www.googleapis.com/auth/cloud-platform",
65544	//     "https://www.googleapis.com/auth/compute"
65545	//   ]
65546	// }
65547
65548}
65549
65550// method id "compute.firewallPolicies.setIamPolicy":
65551
65552type FirewallPoliciesSetIamPolicyCall struct {
65553	s                                  *Service
65554	resource                           string
65555	globalorganizationsetpolicyrequest *GlobalOrganizationSetPolicyRequest
65556	urlParams_                         gensupport.URLParams
65557	ctx_                               context.Context
65558	header_                            http.Header
65559}
65560
65561// SetIamPolicy: Sets the access control policy on the specified
65562// resource. Replaces any existing policy.
65563//
65564// - resource: Name or id of the resource for this request.
65565func (r *FirewallPoliciesService) SetIamPolicy(resource string, globalorganizationsetpolicyrequest *GlobalOrganizationSetPolicyRequest) *FirewallPoliciesSetIamPolicyCall {
65566	c := &FirewallPoliciesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65567	c.resource = resource
65568	c.globalorganizationsetpolicyrequest = globalorganizationsetpolicyrequest
65569	return c
65570}
65571
65572// Fields allows partial responses to be retrieved. See
65573// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65574// for more information.
65575func (c *FirewallPoliciesSetIamPolicyCall) Fields(s ...googleapi.Field) *FirewallPoliciesSetIamPolicyCall {
65576	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65577	return c
65578}
65579
65580// Context sets the context to be used in this call's Do method. Any
65581// pending HTTP request will be aborted if the provided context is
65582// canceled.
65583func (c *FirewallPoliciesSetIamPolicyCall) Context(ctx context.Context) *FirewallPoliciesSetIamPolicyCall {
65584	c.ctx_ = ctx
65585	return c
65586}
65587
65588// Header returns an http.Header that can be modified by the caller to
65589// add HTTP headers to the request.
65590func (c *FirewallPoliciesSetIamPolicyCall) Header() http.Header {
65591	if c.header_ == nil {
65592		c.header_ = make(http.Header)
65593	}
65594	return c.header_
65595}
65596
65597func (c *FirewallPoliciesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
65598	reqHeaders := make(http.Header)
65599	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
65600	for k, v := range c.header_ {
65601		reqHeaders[k] = v
65602	}
65603	reqHeaders.Set("User-Agent", c.s.userAgent())
65604	var body io.Reader = nil
65605	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalorganizationsetpolicyrequest)
65606	if err != nil {
65607		return nil, err
65608	}
65609	reqHeaders.Set("Content-Type", "application/json")
65610	c.urlParams_.Set("alt", alt)
65611	c.urlParams_.Set("prettyPrint", "false")
65612	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{resource}/setIamPolicy")
65613	urls += "?" + c.urlParams_.Encode()
65614	req, err := http.NewRequest("POST", urls, body)
65615	if err != nil {
65616		return nil, err
65617	}
65618	req.Header = reqHeaders
65619	googleapi.Expand(req.URL, map[string]string{
65620		"resource": c.resource,
65621	})
65622	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65623}
65624
65625// Do executes the "compute.firewallPolicies.setIamPolicy" call.
65626// Exactly one of *Policy or error will be non-nil. Any non-2xx status
65627// code is an error. Response headers are in either
65628// *Policy.ServerResponse.Header or (if a response was returned at all)
65629// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
65630// check whether the returned error was because http.StatusNotModified
65631// was returned.
65632func (c *FirewallPoliciesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
65633	gensupport.SetOptions(c.urlParams_, opts...)
65634	res, err := c.doRequest("json")
65635	if res != nil && res.StatusCode == http.StatusNotModified {
65636		if res.Body != nil {
65637			res.Body.Close()
65638		}
65639		return nil, &googleapi.Error{
65640			Code:   res.StatusCode,
65641			Header: res.Header,
65642		}
65643	}
65644	if err != nil {
65645		return nil, err
65646	}
65647	defer googleapi.CloseBody(res)
65648	if err := googleapi.CheckResponse(res); err != nil {
65649		return nil, err
65650	}
65651	ret := &Policy{
65652		ServerResponse: googleapi.ServerResponse{
65653			Header:         res.Header,
65654			HTTPStatusCode: res.StatusCode,
65655		},
65656	}
65657	target := &ret
65658	if err := gensupport.DecodeResponse(target, res); err != nil {
65659		return nil, err
65660	}
65661	return ret, nil
65662	// {
65663	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
65664	//   "flatPath": "locations/global/firewallPolicies/{resource}/setIamPolicy",
65665	//   "httpMethod": "POST",
65666	//   "id": "compute.firewallPolicies.setIamPolicy",
65667	//   "parameterOrder": [
65668	//     "resource"
65669	//   ],
65670	//   "parameters": {
65671	//     "resource": {
65672	//       "description": "Name or id of the resource for this request.",
65673	//       "location": "path",
65674	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
65675	//       "required": true,
65676	//       "type": "string"
65677	//     }
65678	//   },
65679	//   "path": "locations/global/firewallPolicies/{resource}/setIamPolicy",
65680	//   "request": {
65681	//     "$ref": "GlobalOrganizationSetPolicyRequest"
65682	//   },
65683	//   "response": {
65684	//     "$ref": "Policy"
65685	//   },
65686	//   "scopes": [
65687	//     "https://www.googleapis.com/auth/cloud-platform",
65688	//     "https://www.googleapis.com/auth/compute"
65689	//   ]
65690	// }
65691
65692}
65693
65694// method id "compute.firewallPolicies.testIamPermissions":
65695
65696type FirewallPoliciesTestIamPermissionsCall struct {
65697	s                      *Service
65698	resource               string
65699	testpermissionsrequest *TestPermissionsRequest
65700	urlParams_             gensupport.URLParams
65701	ctx_                   context.Context
65702	header_                http.Header
65703}
65704
65705// TestIamPermissions: Returns permissions that a caller has on the
65706// specified resource.
65707//
65708// - resource: Name or id of the resource for this request.
65709func (r *FirewallPoliciesService) TestIamPermissions(resource string, testpermissionsrequest *TestPermissionsRequest) *FirewallPoliciesTestIamPermissionsCall {
65710	c := &FirewallPoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65711	c.resource = resource
65712	c.testpermissionsrequest = testpermissionsrequest
65713	return c
65714}
65715
65716// Fields allows partial responses to be retrieved. See
65717// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65718// for more information.
65719func (c *FirewallPoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *FirewallPoliciesTestIamPermissionsCall {
65720	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65721	return c
65722}
65723
65724// Context sets the context to be used in this call's Do method. Any
65725// pending HTTP request will be aborted if the provided context is
65726// canceled.
65727func (c *FirewallPoliciesTestIamPermissionsCall) Context(ctx context.Context) *FirewallPoliciesTestIamPermissionsCall {
65728	c.ctx_ = ctx
65729	return c
65730}
65731
65732// Header returns an http.Header that can be modified by the caller to
65733// add HTTP headers to the request.
65734func (c *FirewallPoliciesTestIamPermissionsCall) Header() http.Header {
65735	if c.header_ == nil {
65736		c.header_ = make(http.Header)
65737	}
65738	return c.header_
65739}
65740
65741func (c *FirewallPoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
65742	reqHeaders := make(http.Header)
65743	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
65744	for k, v := range c.header_ {
65745		reqHeaders[k] = v
65746	}
65747	reqHeaders.Set("User-Agent", c.s.userAgent())
65748	var body io.Reader = nil
65749	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
65750	if err != nil {
65751		return nil, err
65752	}
65753	reqHeaders.Set("Content-Type", "application/json")
65754	c.urlParams_.Set("alt", alt)
65755	c.urlParams_.Set("prettyPrint", "false")
65756	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{resource}/testIamPermissions")
65757	urls += "?" + c.urlParams_.Encode()
65758	req, err := http.NewRequest("POST", urls, body)
65759	if err != nil {
65760		return nil, err
65761	}
65762	req.Header = reqHeaders
65763	googleapi.Expand(req.URL, map[string]string{
65764		"resource": c.resource,
65765	})
65766	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65767}
65768
65769// Do executes the "compute.firewallPolicies.testIamPermissions" call.
65770// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
65771// non-2xx status code is an error. Response headers are in either
65772// *TestPermissionsResponse.ServerResponse.Header or (if a response was
65773// returned at all) in error.(*googleapi.Error).Header. Use
65774// googleapi.IsNotModified to check whether the returned error was
65775// because http.StatusNotModified was returned.
65776func (c *FirewallPoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
65777	gensupport.SetOptions(c.urlParams_, opts...)
65778	res, err := c.doRequest("json")
65779	if res != nil && res.StatusCode == http.StatusNotModified {
65780		if res.Body != nil {
65781			res.Body.Close()
65782		}
65783		return nil, &googleapi.Error{
65784			Code:   res.StatusCode,
65785			Header: res.Header,
65786		}
65787	}
65788	if err != nil {
65789		return nil, err
65790	}
65791	defer googleapi.CloseBody(res)
65792	if err := googleapi.CheckResponse(res); err != nil {
65793		return nil, err
65794	}
65795	ret := &TestPermissionsResponse{
65796		ServerResponse: googleapi.ServerResponse{
65797			Header:         res.Header,
65798			HTTPStatusCode: res.StatusCode,
65799		},
65800	}
65801	target := &ret
65802	if err := gensupport.DecodeResponse(target, res); err != nil {
65803		return nil, err
65804	}
65805	return ret, nil
65806	// {
65807	//   "description": "Returns permissions that a caller has on the specified resource.",
65808	//   "flatPath": "locations/global/firewallPolicies/{resource}/testIamPermissions",
65809	//   "httpMethod": "POST",
65810	//   "id": "compute.firewallPolicies.testIamPermissions",
65811	//   "parameterOrder": [
65812	//     "resource"
65813	//   ],
65814	//   "parameters": {
65815	//     "resource": {
65816	//       "description": "Name or id of the resource for this request.",
65817	//       "location": "path",
65818	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
65819	//       "required": true,
65820	//       "type": "string"
65821	//     }
65822	//   },
65823	//   "path": "locations/global/firewallPolicies/{resource}/testIamPermissions",
65824	//   "request": {
65825	//     "$ref": "TestPermissionsRequest"
65826	//   },
65827	//   "response": {
65828	//     "$ref": "TestPermissionsResponse"
65829	//   },
65830	//   "scopes": [
65831	//     "https://www.googleapis.com/auth/cloud-platform",
65832	//     "https://www.googleapis.com/auth/compute",
65833	//     "https://www.googleapis.com/auth/compute.readonly"
65834	//   ]
65835	// }
65836
65837}
65838
65839// method id "compute.firewalls.delete":
65840
65841type FirewallsDeleteCall struct {
65842	s          *Service
65843	project    string
65844	firewall   string
65845	urlParams_ gensupport.URLParams
65846	ctx_       context.Context
65847	header_    http.Header
65848}
65849
65850// Delete: Deletes the specified firewall.
65851//
65852// - firewall: Name of the firewall rule to delete.
65853// - project: Project ID for this request.
65854func (r *FirewallsService) Delete(project string, firewall string) *FirewallsDeleteCall {
65855	c := &FirewallsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65856	c.project = project
65857	c.firewall = firewall
65858	return c
65859}
65860
65861// RequestId sets the optional parameter "requestId": An optional
65862// request ID to identify requests. Specify a unique request ID so that
65863// if you must retry your request, the server will know to ignore the
65864// request if it has already been completed. For example, consider a
65865// situation where you make an initial request and the request times
65866// out. If you make the request again with the same request ID, the
65867// server can check if original operation with the same request ID was
65868// received, and if so, will ignore the second request. This prevents
65869// clients from accidentally creating duplicate commitments. The request
65870// ID must be a valid UUID with the exception that zero UUID is not
65871// supported ( 00000000-0000-0000-0000-000000000000).
65872func (c *FirewallsDeleteCall) RequestId(requestId string) *FirewallsDeleteCall {
65873	c.urlParams_.Set("requestId", requestId)
65874	return c
65875}
65876
65877// Fields allows partial responses to be retrieved. See
65878// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65879// for more information.
65880func (c *FirewallsDeleteCall) Fields(s ...googleapi.Field) *FirewallsDeleteCall {
65881	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65882	return c
65883}
65884
65885// Context sets the context to be used in this call's Do method. Any
65886// pending HTTP request will be aborted if the provided context is
65887// canceled.
65888func (c *FirewallsDeleteCall) Context(ctx context.Context) *FirewallsDeleteCall {
65889	c.ctx_ = ctx
65890	return c
65891}
65892
65893// Header returns an http.Header that can be modified by the caller to
65894// add HTTP headers to the request.
65895func (c *FirewallsDeleteCall) Header() http.Header {
65896	if c.header_ == nil {
65897		c.header_ = make(http.Header)
65898	}
65899	return c.header_
65900}
65901
65902func (c *FirewallsDeleteCall) doRequest(alt string) (*http.Response, error) {
65903	reqHeaders := make(http.Header)
65904	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
65905	for k, v := range c.header_ {
65906		reqHeaders[k] = v
65907	}
65908	reqHeaders.Set("User-Agent", c.s.userAgent())
65909	var body io.Reader = nil
65910	c.urlParams_.Set("alt", alt)
65911	c.urlParams_.Set("prettyPrint", "false")
65912	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{firewall}")
65913	urls += "?" + c.urlParams_.Encode()
65914	req, err := http.NewRequest("DELETE", urls, body)
65915	if err != nil {
65916		return nil, err
65917	}
65918	req.Header = reqHeaders
65919	googleapi.Expand(req.URL, map[string]string{
65920		"project":  c.project,
65921		"firewall": c.firewall,
65922	})
65923	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65924}
65925
65926// Do executes the "compute.firewalls.delete" call.
65927// Exactly one of *Operation or error will be non-nil. Any non-2xx
65928// status code is an error. Response headers are in either
65929// *Operation.ServerResponse.Header or (if a response was returned at
65930// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65931// to check whether the returned error was because
65932// http.StatusNotModified was returned.
65933func (c *FirewallsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65934	gensupport.SetOptions(c.urlParams_, opts...)
65935	res, err := c.doRequest("json")
65936	if res != nil && res.StatusCode == http.StatusNotModified {
65937		if res.Body != nil {
65938			res.Body.Close()
65939		}
65940		return nil, &googleapi.Error{
65941			Code:   res.StatusCode,
65942			Header: res.Header,
65943		}
65944	}
65945	if err != nil {
65946		return nil, err
65947	}
65948	defer googleapi.CloseBody(res)
65949	if err := googleapi.CheckResponse(res); err != nil {
65950		return nil, err
65951	}
65952	ret := &Operation{
65953		ServerResponse: googleapi.ServerResponse{
65954			Header:         res.Header,
65955			HTTPStatusCode: res.StatusCode,
65956		},
65957	}
65958	target := &ret
65959	if err := gensupport.DecodeResponse(target, res); err != nil {
65960		return nil, err
65961	}
65962	return ret, nil
65963	// {
65964	//   "description": "Deletes the specified firewall.",
65965	//   "flatPath": "projects/{project}/global/firewalls/{firewall}",
65966	//   "httpMethod": "DELETE",
65967	//   "id": "compute.firewalls.delete",
65968	//   "parameterOrder": [
65969	//     "project",
65970	//     "firewall"
65971	//   ],
65972	//   "parameters": {
65973	//     "firewall": {
65974	//       "description": "Name of the firewall rule to delete.",
65975	//       "location": "path",
65976	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
65977	//       "required": true,
65978	//       "type": "string"
65979	//     },
65980	//     "project": {
65981	//       "description": "Project ID for this request.",
65982	//       "location": "path",
65983	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65984	//       "required": true,
65985	//       "type": "string"
65986	//     },
65987	//     "requestId": {
65988	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
65989	//       "location": "query",
65990	//       "type": "string"
65991	//     }
65992	//   },
65993	//   "path": "projects/{project}/global/firewalls/{firewall}",
65994	//   "response": {
65995	//     "$ref": "Operation"
65996	//   },
65997	//   "scopes": [
65998	//     "https://www.googleapis.com/auth/cloud-platform",
65999	//     "https://www.googleapis.com/auth/compute"
66000	//   ]
66001	// }
66002
66003}
66004
66005// method id "compute.firewalls.get":
66006
66007type FirewallsGetCall struct {
66008	s            *Service
66009	project      string
66010	firewall     string
66011	urlParams_   gensupport.URLParams
66012	ifNoneMatch_ string
66013	ctx_         context.Context
66014	header_      http.Header
66015}
66016
66017// Get: Returns the specified firewall.
66018//
66019// - firewall: Name of the firewall rule to return.
66020// - project: Project ID for this request.
66021func (r *FirewallsService) Get(project string, firewall string) *FirewallsGetCall {
66022	c := &FirewallsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66023	c.project = project
66024	c.firewall = firewall
66025	return c
66026}
66027
66028// Fields allows partial responses to be retrieved. See
66029// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66030// for more information.
66031func (c *FirewallsGetCall) Fields(s ...googleapi.Field) *FirewallsGetCall {
66032	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66033	return c
66034}
66035
66036// IfNoneMatch sets the optional parameter which makes the operation
66037// fail if the object's ETag matches the given value. This is useful for
66038// getting updates only after the object has changed since the last
66039// request. Use googleapi.IsNotModified to check whether the response
66040// error from Do is the result of In-None-Match.
66041func (c *FirewallsGetCall) IfNoneMatch(entityTag string) *FirewallsGetCall {
66042	c.ifNoneMatch_ = entityTag
66043	return c
66044}
66045
66046// Context sets the context to be used in this call's Do method. Any
66047// pending HTTP request will be aborted if the provided context is
66048// canceled.
66049func (c *FirewallsGetCall) Context(ctx context.Context) *FirewallsGetCall {
66050	c.ctx_ = ctx
66051	return c
66052}
66053
66054// Header returns an http.Header that can be modified by the caller to
66055// add HTTP headers to the request.
66056func (c *FirewallsGetCall) Header() http.Header {
66057	if c.header_ == nil {
66058		c.header_ = make(http.Header)
66059	}
66060	return c.header_
66061}
66062
66063func (c *FirewallsGetCall) doRequest(alt string) (*http.Response, error) {
66064	reqHeaders := make(http.Header)
66065	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
66066	for k, v := range c.header_ {
66067		reqHeaders[k] = v
66068	}
66069	reqHeaders.Set("User-Agent", c.s.userAgent())
66070	if c.ifNoneMatch_ != "" {
66071		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
66072	}
66073	var body io.Reader = nil
66074	c.urlParams_.Set("alt", alt)
66075	c.urlParams_.Set("prettyPrint", "false")
66076	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{firewall}")
66077	urls += "?" + c.urlParams_.Encode()
66078	req, err := http.NewRequest("GET", urls, body)
66079	if err != nil {
66080		return nil, err
66081	}
66082	req.Header = reqHeaders
66083	googleapi.Expand(req.URL, map[string]string{
66084		"project":  c.project,
66085		"firewall": c.firewall,
66086	})
66087	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66088}
66089
66090// Do executes the "compute.firewalls.get" call.
66091// Exactly one of *Firewall or error will be non-nil. Any non-2xx status
66092// code is an error. Response headers are in either
66093// *Firewall.ServerResponse.Header or (if a response was returned at
66094// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66095// to check whether the returned error was because
66096// http.StatusNotModified was returned.
66097func (c *FirewallsGetCall) Do(opts ...googleapi.CallOption) (*Firewall, error) {
66098	gensupport.SetOptions(c.urlParams_, opts...)
66099	res, err := c.doRequest("json")
66100	if res != nil && res.StatusCode == http.StatusNotModified {
66101		if res.Body != nil {
66102			res.Body.Close()
66103		}
66104		return nil, &googleapi.Error{
66105			Code:   res.StatusCode,
66106			Header: res.Header,
66107		}
66108	}
66109	if err != nil {
66110		return nil, err
66111	}
66112	defer googleapi.CloseBody(res)
66113	if err := googleapi.CheckResponse(res); err != nil {
66114		return nil, err
66115	}
66116	ret := &Firewall{
66117		ServerResponse: googleapi.ServerResponse{
66118			Header:         res.Header,
66119			HTTPStatusCode: res.StatusCode,
66120		},
66121	}
66122	target := &ret
66123	if err := gensupport.DecodeResponse(target, res); err != nil {
66124		return nil, err
66125	}
66126	return ret, nil
66127	// {
66128	//   "description": "Returns the specified firewall.",
66129	//   "flatPath": "projects/{project}/global/firewalls/{firewall}",
66130	//   "httpMethod": "GET",
66131	//   "id": "compute.firewalls.get",
66132	//   "parameterOrder": [
66133	//     "project",
66134	//     "firewall"
66135	//   ],
66136	//   "parameters": {
66137	//     "firewall": {
66138	//       "description": "Name of the firewall rule to return.",
66139	//       "location": "path",
66140	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66141	//       "required": true,
66142	//       "type": "string"
66143	//     },
66144	//     "project": {
66145	//       "description": "Project ID for this request.",
66146	//       "location": "path",
66147	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66148	//       "required": true,
66149	//       "type": "string"
66150	//     }
66151	//   },
66152	//   "path": "projects/{project}/global/firewalls/{firewall}",
66153	//   "response": {
66154	//     "$ref": "Firewall"
66155	//   },
66156	//   "scopes": [
66157	//     "https://www.googleapis.com/auth/cloud-platform",
66158	//     "https://www.googleapis.com/auth/compute",
66159	//     "https://www.googleapis.com/auth/compute.readonly"
66160	//   ]
66161	// }
66162
66163}
66164
66165// method id "compute.firewalls.insert":
66166
66167type FirewallsInsertCall struct {
66168	s          *Service
66169	project    string
66170	firewall   *Firewall
66171	urlParams_ gensupport.URLParams
66172	ctx_       context.Context
66173	header_    http.Header
66174}
66175
66176// Insert: Creates a firewall rule in the specified project using the
66177// data included in the request.
66178//
66179// - project: Project ID for this request.
66180func (r *FirewallsService) Insert(project string, firewall *Firewall) *FirewallsInsertCall {
66181	c := &FirewallsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66182	c.project = project
66183	c.firewall = firewall
66184	return c
66185}
66186
66187// RequestId sets the optional parameter "requestId": An optional
66188// request ID to identify requests. Specify a unique request ID so that
66189// if you must retry your request, the server will know to ignore the
66190// request if it has already been completed. For example, consider a
66191// situation where you make an initial request and the request times
66192// out. If you make the request again with the same request ID, the
66193// server can check if original operation with the same request ID was
66194// received, and if so, will ignore the second request. This prevents
66195// clients from accidentally creating duplicate commitments. The request
66196// ID must be a valid UUID with the exception that zero UUID is not
66197// supported ( 00000000-0000-0000-0000-000000000000).
66198func (c *FirewallsInsertCall) RequestId(requestId string) *FirewallsInsertCall {
66199	c.urlParams_.Set("requestId", requestId)
66200	return c
66201}
66202
66203// Fields allows partial responses to be retrieved. See
66204// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66205// for more information.
66206func (c *FirewallsInsertCall) Fields(s ...googleapi.Field) *FirewallsInsertCall {
66207	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66208	return c
66209}
66210
66211// Context sets the context to be used in this call's Do method. Any
66212// pending HTTP request will be aborted if the provided context is
66213// canceled.
66214func (c *FirewallsInsertCall) Context(ctx context.Context) *FirewallsInsertCall {
66215	c.ctx_ = ctx
66216	return c
66217}
66218
66219// Header returns an http.Header that can be modified by the caller to
66220// add HTTP headers to the request.
66221func (c *FirewallsInsertCall) Header() http.Header {
66222	if c.header_ == nil {
66223		c.header_ = make(http.Header)
66224	}
66225	return c.header_
66226}
66227
66228func (c *FirewallsInsertCall) doRequest(alt string) (*http.Response, error) {
66229	reqHeaders := make(http.Header)
66230	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
66231	for k, v := range c.header_ {
66232		reqHeaders[k] = v
66233	}
66234	reqHeaders.Set("User-Agent", c.s.userAgent())
66235	var body io.Reader = nil
66236	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall)
66237	if err != nil {
66238		return nil, err
66239	}
66240	reqHeaders.Set("Content-Type", "application/json")
66241	c.urlParams_.Set("alt", alt)
66242	c.urlParams_.Set("prettyPrint", "false")
66243	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls")
66244	urls += "?" + c.urlParams_.Encode()
66245	req, err := http.NewRequest("POST", urls, body)
66246	if err != nil {
66247		return nil, err
66248	}
66249	req.Header = reqHeaders
66250	googleapi.Expand(req.URL, map[string]string{
66251		"project": c.project,
66252	})
66253	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66254}
66255
66256// Do executes the "compute.firewalls.insert" call.
66257// Exactly one of *Operation or error will be non-nil. Any non-2xx
66258// status code is an error. Response headers are in either
66259// *Operation.ServerResponse.Header or (if a response was returned at
66260// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66261// to check whether the returned error was because
66262// http.StatusNotModified was returned.
66263func (c *FirewallsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66264	gensupport.SetOptions(c.urlParams_, opts...)
66265	res, err := c.doRequest("json")
66266	if res != nil && res.StatusCode == http.StatusNotModified {
66267		if res.Body != nil {
66268			res.Body.Close()
66269		}
66270		return nil, &googleapi.Error{
66271			Code:   res.StatusCode,
66272			Header: res.Header,
66273		}
66274	}
66275	if err != nil {
66276		return nil, err
66277	}
66278	defer googleapi.CloseBody(res)
66279	if err := googleapi.CheckResponse(res); err != nil {
66280		return nil, err
66281	}
66282	ret := &Operation{
66283		ServerResponse: googleapi.ServerResponse{
66284			Header:         res.Header,
66285			HTTPStatusCode: res.StatusCode,
66286		},
66287	}
66288	target := &ret
66289	if err := gensupport.DecodeResponse(target, res); err != nil {
66290		return nil, err
66291	}
66292	return ret, nil
66293	// {
66294	//   "description": "Creates a firewall rule in the specified project using the data included in the request.",
66295	//   "flatPath": "projects/{project}/global/firewalls",
66296	//   "httpMethod": "POST",
66297	//   "id": "compute.firewalls.insert",
66298	//   "parameterOrder": [
66299	//     "project"
66300	//   ],
66301	//   "parameters": {
66302	//     "project": {
66303	//       "description": "Project ID for this request.",
66304	//       "location": "path",
66305	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66306	//       "required": true,
66307	//       "type": "string"
66308	//     },
66309	//     "requestId": {
66310	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
66311	//       "location": "query",
66312	//       "type": "string"
66313	//     }
66314	//   },
66315	//   "path": "projects/{project}/global/firewalls",
66316	//   "request": {
66317	//     "$ref": "Firewall"
66318	//   },
66319	//   "response": {
66320	//     "$ref": "Operation"
66321	//   },
66322	//   "scopes": [
66323	//     "https://www.googleapis.com/auth/cloud-platform",
66324	//     "https://www.googleapis.com/auth/compute"
66325	//   ]
66326	// }
66327
66328}
66329
66330// method id "compute.firewalls.list":
66331
66332type FirewallsListCall struct {
66333	s            *Service
66334	project      string
66335	urlParams_   gensupport.URLParams
66336	ifNoneMatch_ string
66337	ctx_         context.Context
66338	header_      http.Header
66339}
66340
66341// List: Retrieves the list of firewall rules available to the specified
66342// project.
66343//
66344// - project: Project ID for this request.
66345func (r *FirewallsService) List(project string) *FirewallsListCall {
66346	c := &FirewallsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66347	c.project = project
66348	return c
66349}
66350
66351// Filter sets the optional parameter "filter": A filter expression that
66352// filters resources listed in the response. The expression must specify
66353// the field name, a comparison operator, and the value that you want to
66354// use for filtering. The value must be a string, a number, or a
66355// boolean. The comparison operator must be either `=`, `!=`, `>`, or
66356// `<`. For example, if you are filtering Compute Engine instances, you
66357// can exclude instances named `example-instance` by specifying `name !=
66358// example-instance`. You can also filter nested fields. For example,
66359// you could specify `scheduling.automaticRestart = false` to include
66360// instances only if they are not scheduled for automatic restarts. You
66361// can use filtering on nested fields to filter based on resource
66362// labels. To filter on multiple expressions, provide each separate
66363// expression within parentheses. For example: ```
66364// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
66365// ``` By default, each expression is an `AND` expression. However, you
66366// can include `AND` and `OR` expressions explicitly. For example: ```
66367// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
66368// AND (scheduling.automaticRestart = true) ```
66369func (c *FirewallsListCall) Filter(filter string) *FirewallsListCall {
66370	c.urlParams_.Set("filter", filter)
66371	return c
66372}
66373
66374// MaxResults sets the optional parameter "maxResults": The maximum
66375// number of results per page that should be returned. If the number of
66376// available results is larger than `maxResults`, Compute Engine returns
66377// a `nextPageToken` that can be used to get the next page of results in
66378// subsequent list requests. Acceptable values are `0` to `500`,
66379// inclusive. (Default: `500`)
66380func (c *FirewallsListCall) MaxResults(maxResults int64) *FirewallsListCall {
66381	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
66382	return c
66383}
66384
66385// OrderBy sets the optional parameter "orderBy": Sorts list results by
66386// a certain order. By default, results are returned in alphanumerical
66387// order based on the resource name. You can also sort results in
66388// descending order based on the creation timestamp using
66389// `orderBy="creationTimestamp desc". This sorts results based on the
66390// `creationTimestamp` field in reverse chronological order (newest
66391// result first). Use this to sort resources like operations so that the
66392// newest operation is returned first. Currently, only sorting by `name`
66393// or `creationTimestamp desc` is supported.
66394func (c *FirewallsListCall) OrderBy(orderBy string) *FirewallsListCall {
66395	c.urlParams_.Set("orderBy", orderBy)
66396	return c
66397}
66398
66399// PageToken sets the optional parameter "pageToken": Specifies a page
66400// token to use. Set `pageToken` to the `nextPageToken` returned by a
66401// previous list request to get the next page of results.
66402func (c *FirewallsListCall) PageToken(pageToken string) *FirewallsListCall {
66403	c.urlParams_.Set("pageToken", pageToken)
66404	return c
66405}
66406
66407// ReturnPartialSuccess sets the optional parameter
66408// "returnPartialSuccess": Opt-in for partial success behavior which
66409// provides partial results in case of failure. The default value is
66410// false.
66411func (c *FirewallsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *FirewallsListCall {
66412	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
66413	return c
66414}
66415
66416// Fields allows partial responses to be retrieved. See
66417// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66418// for more information.
66419func (c *FirewallsListCall) Fields(s ...googleapi.Field) *FirewallsListCall {
66420	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66421	return c
66422}
66423
66424// IfNoneMatch sets the optional parameter which makes the operation
66425// fail if the object's ETag matches the given value. This is useful for
66426// getting updates only after the object has changed since the last
66427// request. Use googleapi.IsNotModified to check whether the response
66428// error from Do is the result of In-None-Match.
66429func (c *FirewallsListCall) IfNoneMatch(entityTag string) *FirewallsListCall {
66430	c.ifNoneMatch_ = entityTag
66431	return c
66432}
66433
66434// Context sets the context to be used in this call's Do method. Any
66435// pending HTTP request will be aborted if the provided context is
66436// canceled.
66437func (c *FirewallsListCall) Context(ctx context.Context) *FirewallsListCall {
66438	c.ctx_ = ctx
66439	return c
66440}
66441
66442// Header returns an http.Header that can be modified by the caller to
66443// add HTTP headers to the request.
66444func (c *FirewallsListCall) Header() http.Header {
66445	if c.header_ == nil {
66446		c.header_ = make(http.Header)
66447	}
66448	return c.header_
66449}
66450
66451func (c *FirewallsListCall) doRequest(alt string) (*http.Response, error) {
66452	reqHeaders := make(http.Header)
66453	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
66454	for k, v := range c.header_ {
66455		reqHeaders[k] = v
66456	}
66457	reqHeaders.Set("User-Agent", c.s.userAgent())
66458	if c.ifNoneMatch_ != "" {
66459		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
66460	}
66461	var body io.Reader = nil
66462	c.urlParams_.Set("alt", alt)
66463	c.urlParams_.Set("prettyPrint", "false")
66464	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls")
66465	urls += "?" + c.urlParams_.Encode()
66466	req, err := http.NewRequest("GET", urls, body)
66467	if err != nil {
66468		return nil, err
66469	}
66470	req.Header = reqHeaders
66471	googleapi.Expand(req.URL, map[string]string{
66472		"project": c.project,
66473	})
66474	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66475}
66476
66477// Do executes the "compute.firewalls.list" call.
66478// Exactly one of *FirewallList or error will be non-nil. Any non-2xx
66479// status code is an error. Response headers are in either
66480// *FirewallList.ServerResponse.Header or (if a response was returned at
66481// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66482// to check whether the returned error was because
66483// http.StatusNotModified was returned.
66484func (c *FirewallsListCall) Do(opts ...googleapi.CallOption) (*FirewallList, error) {
66485	gensupport.SetOptions(c.urlParams_, opts...)
66486	res, err := c.doRequest("json")
66487	if res != nil && res.StatusCode == http.StatusNotModified {
66488		if res.Body != nil {
66489			res.Body.Close()
66490		}
66491		return nil, &googleapi.Error{
66492			Code:   res.StatusCode,
66493			Header: res.Header,
66494		}
66495	}
66496	if err != nil {
66497		return nil, err
66498	}
66499	defer googleapi.CloseBody(res)
66500	if err := googleapi.CheckResponse(res); err != nil {
66501		return nil, err
66502	}
66503	ret := &FirewallList{
66504		ServerResponse: googleapi.ServerResponse{
66505			Header:         res.Header,
66506			HTTPStatusCode: res.StatusCode,
66507		},
66508	}
66509	target := &ret
66510	if err := gensupport.DecodeResponse(target, res); err != nil {
66511		return nil, err
66512	}
66513	return ret, nil
66514	// {
66515	//   "description": "Retrieves the list of firewall rules available to the specified project.",
66516	//   "flatPath": "projects/{project}/global/firewalls",
66517	//   "httpMethod": "GET",
66518	//   "id": "compute.firewalls.list",
66519	//   "parameterOrder": [
66520	//     "project"
66521	//   ],
66522	//   "parameters": {
66523	//     "filter": {
66524	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
66525	//       "location": "query",
66526	//       "type": "string"
66527	//     },
66528	//     "maxResults": {
66529	//       "default": "500",
66530	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
66531	//       "format": "uint32",
66532	//       "location": "query",
66533	//       "minimum": "0",
66534	//       "type": "integer"
66535	//     },
66536	//     "orderBy": {
66537	//       "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.",
66538	//       "location": "query",
66539	//       "type": "string"
66540	//     },
66541	//     "pageToken": {
66542	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
66543	//       "location": "query",
66544	//       "type": "string"
66545	//     },
66546	//     "project": {
66547	//       "description": "Project ID for this request.",
66548	//       "location": "path",
66549	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66550	//       "required": true,
66551	//       "type": "string"
66552	//     },
66553	//     "returnPartialSuccess": {
66554	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
66555	//       "location": "query",
66556	//       "type": "boolean"
66557	//     }
66558	//   },
66559	//   "path": "projects/{project}/global/firewalls",
66560	//   "response": {
66561	//     "$ref": "FirewallList"
66562	//   },
66563	//   "scopes": [
66564	//     "https://www.googleapis.com/auth/cloud-platform",
66565	//     "https://www.googleapis.com/auth/compute",
66566	//     "https://www.googleapis.com/auth/compute.readonly"
66567	//   ]
66568	// }
66569
66570}
66571
66572// Pages invokes f for each page of results.
66573// A non-nil error returned from f will halt the iteration.
66574// The provided context supersedes any context provided to the Context method.
66575func (c *FirewallsListCall) Pages(ctx context.Context, f func(*FirewallList) error) error {
66576	c.ctx_ = ctx
66577	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
66578	for {
66579		x, err := c.Do()
66580		if err != nil {
66581			return err
66582		}
66583		if err := f(x); err != nil {
66584			return err
66585		}
66586		if x.NextPageToken == "" {
66587			return nil
66588		}
66589		c.PageToken(x.NextPageToken)
66590	}
66591}
66592
66593// method id "compute.firewalls.patch":
66594
66595type FirewallsPatchCall struct {
66596	s          *Service
66597	project    string
66598	firewall   string
66599	firewall2  *Firewall
66600	urlParams_ gensupport.URLParams
66601	ctx_       context.Context
66602	header_    http.Header
66603}
66604
66605// Patch: Updates the specified firewall rule with the data included in
66606// the request. This method supports PATCH semantics and uses the JSON
66607// merge patch format and processing rules.
66608//
66609// - firewall: Name of the firewall rule to patch.
66610// - project: Project ID for this request.
66611func (r *FirewallsService) Patch(project string, firewall string, firewall2 *Firewall) *FirewallsPatchCall {
66612	c := &FirewallsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66613	c.project = project
66614	c.firewall = firewall
66615	c.firewall2 = firewall2
66616	return c
66617}
66618
66619// RequestId sets the optional parameter "requestId": An optional
66620// request ID to identify requests. Specify a unique request ID so that
66621// if you must retry your request, the server will know to ignore the
66622// request if it has already been completed. For example, consider a
66623// situation where you make an initial request and the request times
66624// out. If you make the request again with the same request ID, the
66625// server can check if original operation with the same request ID was
66626// received, and if so, will ignore the second request. This prevents
66627// clients from accidentally creating duplicate commitments. The request
66628// ID must be a valid UUID with the exception that zero UUID is not
66629// supported ( 00000000-0000-0000-0000-000000000000).
66630func (c *FirewallsPatchCall) RequestId(requestId string) *FirewallsPatchCall {
66631	c.urlParams_.Set("requestId", requestId)
66632	return c
66633}
66634
66635// Fields allows partial responses to be retrieved. See
66636// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66637// for more information.
66638func (c *FirewallsPatchCall) Fields(s ...googleapi.Field) *FirewallsPatchCall {
66639	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66640	return c
66641}
66642
66643// Context sets the context to be used in this call's Do method. Any
66644// pending HTTP request will be aborted if the provided context is
66645// canceled.
66646func (c *FirewallsPatchCall) Context(ctx context.Context) *FirewallsPatchCall {
66647	c.ctx_ = ctx
66648	return c
66649}
66650
66651// Header returns an http.Header that can be modified by the caller to
66652// add HTTP headers to the request.
66653func (c *FirewallsPatchCall) Header() http.Header {
66654	if c.header_ == nil {
66655		c.header_ = make(http.Header)
66656	}
66657	return c.header_
66658}
66659
66660func (c *FirewallsPatchCall) doRequest(alt string) (*http.Response, error) {
66661	reqHeaders := make(http.Header)
66662	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
66663	for k, v := range c.header_ {
66664		reqHeaders[k] = v
66665	}
66666	reqHeaders.Set("User-Agent", c.s.userAgent())
66667	var body io.Reader = nil
66668	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2)
66669	if err != nil {
66670		return nil, err
66671	}
66672	reqHeaders.Set("Content-Type", "application/json")
66673	c.urlParams_.Set("alt", alt)
66674	c.urlParams_.Set("prettyPrint", "false")
66675	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{firewall}")
66676	urls += "?" + c.urlParams_.Encode()
66677	req, err := http.NewRequest("PATCH", urls, body)
66678	if err != nil {
66679		return nil, err
66680	}
66681	req.Header = reqHeaders
66682	googleapi.Expand(req.URL, map[string]string{
66683		"project":  c.project,
66684		"firewall": c.firewall,
66685	})
66686	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66687}
66688
66689// Do executes the "compute.firewalls.patch" call.
66690// Exactly one of *Operation or error will be non-nil. Any non-2xx
66691// status code is an error. Response headers are in either
66692// *Operation.ServerResponse.Header or (if a response was returned at
66693// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66694// to check whether the returned error was because
66695// http.StatusNotModified was returned.
66696func (c *FirewallsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66697	gensupport.SetOptions(c.urlParams_, opts...)
66698	res, err := c.doRequest("json")
66699	if res != nil && res.StatusCode == http.StatusNotModified {
66700		if res.Body != nil {
66701			res.Body.Close()
66702		}
66703		return nil, &googleapi.Error{
66704			Code:   res.StatusCode,
66705			Header: res.Header,
66706		}
66707	}
66708	if err != nil {
66709		return nil, err
66710	}
66711	defer googleapi.CloseBody(res)
66712	if err := googleapi.CheckResponse(res); err != nil {
66713		return nil, err
66714	}
66715	ret := &Operation{
66716		ServerResponse: googleapi.ServerResponse{
66717			Header:         res.Header,
66718			HTTPStatusCode: res.StatusCode,
66719		},
66720	}
66721	target := &ret
66722	if err := gensupport.DecodeResponse(target, res); err != nil {
66723		return nil, err
66724	}
66725	return ret, nil
66726	// {
66727	//   "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.",
66728	//   "flatPath": "projects/{project}/global/firewalls/{firewall}",
66729	//   "httpMethod": "PATCH",
66730	//   "id": "compute.firewalls.patch",
66731	//   "parameterOrder": [
66732	//     "project",
66733	//     "firewall"
66734	//   ],
66735	//   "parameters": {
66736	//     "firewall": {
66737	//       "description": "Name of the firewall rule to patch.",
66738	//       "location": "path",
66739	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66740	//       "required": true,
66741	//       "type": "string"
66742	//     },
66743	//     "project": {
66744	//       "description": "Project ID for this request.",
66745	//       "location": "path",
66746	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66747	//       "required": true,
66748	//       "type": "string"
66749	//     },
66750	//     "requestId": {
66751	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
66752	//       "location": "query",
66753	//       "type": "string"
66754	//     }
66755	//   },
66756	//   "path": "projects/{project}/global/firewalls/{firewall}",
66757	//   "request": {
66758	//     "$ref": "Firewall"
66759	//   },
66760	//   "response": {
66761	//     "$ref": "Operation"
66762	//   },
66763	//   "scopes": [
66764	//     "https://www.googleapis.com/auth/cloud-platform",
66765	//     "https://www.googleapis.com/auth/compute"
66766	//   ]
66767	// }
66768
66769}
66770
66771// method id "compute.firewalls.update":
66772
66773type FirewallsUpdateCall struct {
66774	s          *Service
66775	project    string
66776	firewall   string
66777	firewall2  *Firewall
66778	urlParams_ gensupport.URLParams
66779	ctx_       context.Context
66780	header_    http.Header
66781}
66782
66783// Update: Updates the specified firewall rule with the data included in
66784// the request. Note that all fields will be updated if using PUT, even
66785// fields that are not specified. To update individual fields, please
66786// use PATCH instead.
66787//
66788// - firewall: Name of the firewall rule to update.
66789// - project: Project ID for this request.
66790func (r *FirewallsService) Update(project string, firewall string, firewall2 *Firewall) *FirewallsUpdateCall {
66791	c := &FirewallsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66792	c.project = project
66793	c.firewall = firewall
66794	c.firewall2 = firewall2
66795	return c
66796}
66797
66798// RequestId sets the optional parameter "requestId": An optional
66799// request ID to identify requests. Specify a unique request ID so that
66800// if you must retry your request, the server will know to ignore the
66801// request if it has already been completed. For example, consider a
66802// situation where you make an initial request and the request times
66803// out. If you make the request again with the same request ID, the
66804// server can check if original operation with the same request ID was
66805// received, and if so, will ignore the second request. This prevents
66806// clients from accidentally creating duplicate commitments. The request
66807// ID must be a valid UUID with the exception that zero UUID is not
66808// supported ( 00000000-0000-0000-0000-000000000000).
66809func (c *FirewallsUpdateCall) RequestId(requestId string) *FirewallsUpdateCall {
66810	c.urlParams_.Set("requestId", requestId)
66811	return c
66812}
66813
66814// Fields allows partial responses to be retrieved. See
66815// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66816// for more information.
66817func (c *FirewallsUpdateCall) Fields(s ...googleapi.Field) *FirewallsUpdateCall {
66818	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66819	return c
66820}
66821
66822// Context sets the context to be used in this call's Do method. Any
66823// pending HTTP request will be aborted if the provided context is
66824// canceled.
66825func (c *FirewallsUpdateCall) Context(ctx context.Context) *FirewallsUpdateCall {
66826	c.ctx_ = ctx
66827	return c
66828}
66829
66830// Header returns an http.Header that can be modified by the caller to
66831// add HTTP headers to the request.
66832func (c *FirewallsUpdateCall) Header() http.Header {
66833	if c.header_ == nil {
66834		c.header_ = make(http.Header)
66835	}
66836	return c.header_
66837}
66838
66839func (c *FirewallsUpdateCall) doRequest(alt string) (*http.Response, error) {
66840	reqHeaders := make(http.Header)
66841	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
66842	for k, v := range c.header_ {
66843		reqHeaders[k] = v
66844	}
66845	reqHeaders.Set("User-Agent", c.s.userAgent())
66846	var body io.Reader = nil
66847	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2)
66848	if err != nil {
66849		return nil, err
66850	}
66851	reqHeaders.Set("Content-Type", "application/json")
66852	c.urlParams_.Set("alt", alt)
66853	c.urlParams_.Set("prettyPrint", "false")
66854	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{firewall}")
66855	urls += "?" + c.urlParams_.Encode()
66856	req, err := http.NewRequest("PUT", urls, body)
66857	if err != nil {
66858		return nil, err
66859	}
66860	req.Header = reqHeaders
66861	googleapi.Expand(req.URL, map[string]string{
66862		"project":  c.project,
66863		"firewall": c.firewall,
66864	})
66865	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66866}
66867
66868// Do executes the "compute.firewalls.update" call.
66869// Exactly one of *Operation or error will be non-nil. Any non-2xx
66870// status code is an error. Response headers are in either
66871// *Operation.ServerResponse.Header or (if a response was returned at
66872// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66873// to check whether the returned error was because
66874// http.StatusNotModified was returned.
66875func (c *FirewallsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66876	gensupport.SetOptions(c.urlParams_, opts...)
66877	res, err := c.doRequest("json")
66878	if res != nil && res.StatusCode == http.StatusNotModified {
66879		if res.Body != nil {
66880			res.Body.Close()
66881		}
66882		return nil, &googleapi.Error{
66883			Code:   res.StatusCode,
66884			Header: res.Header,
66885		}
66886	}
66887	if err != nil {
66888		return nil, err
66889	}
66890	defer googleapi.CloseBody(res)
66891	if err := googleapi.CheckResponse(res); err != nil {
66892		return nil, err
66893	}
66894	ret := &Operation{
66895		ServerResponse: googleapi.ServerResponse{
66896			Header:         res.Header,
66897			HTTPStatusCode: res.StatusCode,
66898		},
66899	}
66900	target := &ret
66901	if err := gensupport.DecodeResponse(target, res); err != nil {
66902		return nil, err
66903	}
66904	return ret, nil
66905	// {
66906	//   "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.",
66907	//   "flatPath": "projects/{project}/global/firewalls/{firewall}",
66908	//   "httpMethod": "PUT",
66909	//   "id": "compute.firewalls.update",
66910	//   "parameterOrder": [
66911	//     "project",
66912	//     "firewall"
66913	//   ],
66914	//   "parameters": {
66915	//     "firewall": {
66916	//       "description": "Name of the firewall rule to update.",
66917	//       "location": "path",
66918	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66919	//       "required": true,
66920	//       "type": "string"
66921	//     },
66922	//     "project": {
66923	//       "description": "Project ID for this request.",
66924	//       "location": "path",
66925	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66926	//       "required": true,
66927	//       "type": "string"
66928	//     },
66929	//     "requestId": {
66930	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
66931	//       "location": "query",
66932	//       "type": "string"
66933	//     }
66934	//   },
66935	//   "path": "projects/{project}/global/firewalls/{firewall}",
66936	//   "request": {
66937	//     "$ref": "Firewall"
66938	//   },
66939	//   "response": {
66940	//     "$ref": "Operation"
66941	//   },
66942	//   "scopes": [
66943	//     "https://www.googleapis.com/auth/cloud-platform",
66944	//     "https://www.googleapis.com/auth/compute"
66945	//   ]
66946	// }
66947
66948}
66949
66950// method id "compute.forwardingRules.aggregatedList":
66951
66952type ForwardingRulesAggregatedListCall struct {
66953	s            *Service
66954	project      string
66955	urlParams_   gensupport.URLParams
66956	ifNoneMatch_ string
66957	ctx_         context.Context
66958	header_      http.Header
66959}
66960
66961// AggregatedList: Retrieves an aggregated list of forwarding rules.
66962//
66963// - project: Project ID for this request.
66964func (r *ForwardingRulesService) AggregatedList(project string) *ForwardingRulesAggregatedListCall {
66965	c := &ForwardingRulesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66966	c.project = project
66967	return c
66968}
66969
66970// Filter sets the optional parameter "filter": A filter expression that
66971// filters resources listed in the response. The expression must specify
66972// the field name, a comparison operator, and the value that you want to
66973// use for filtering. The value must be a string, a number, or a
66974// boolean. The comparison operator must be either `=`, `!=`, `>`, or
66975// `<`. For example, if you are filtering Compute Engine instances, you
66976// can exclude instances named `example-instance` by specifying `name !=
66977// example-instance`. You can also filter nested fields. For example,
66978// you could specify `scheduling.automaticRestart = false` to include
66979// instances only if they are not scheduled for automatic restarts. You
66980// can use filtering on nested fields to filter based on resource
66981// labels. To filter on multiple expressions, provide each separate
66982// expression within parentheses. For example: ```
66983// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
66984// ``` By default, each expression is an `AND` expression. However, you
66985// can include `AND` and `OR` expressions explicitly. For example: ```
66986// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
66987// AND (scheduling.automaticRestart = true) ```
66988func (c *ForwardingRulesAggregatedListCall) Filter(filter string) *ForwardingRulesAggregatedListCall {
66989	c.urlParams_.Set("filter", filter)
66990	return c
66991}
66992
66993// IncludeAllScopes sets the optional parameter "includeAllScopes":
66994// Indicates whether every visible scope for each scope type (zone,
66995// region, global) should be included in the response. For new resource
66996// types added after this field, the flag has no effect as new resource
66997// types will always include every visible scope for each scope type in
66998// response. For resource types which predate this field, if this flag
66999// is omitted or false, only scopes of the scope types where the
67000// resource type is expected to be found will be included.
67001func (c *ForwardingRulesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ForwardingRulesAggregatedListCall {
67002	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
67003	return c
67004}
67005
67006// MaxResults sets the optional parameter "maxResults": The maximum
67007// number of results per page that should be returned. If the number of
67008// available results is larger than `maxResults`, Compute Engine returns
67009// a `nextPageToken` that can be used to get the next page of results in
67010// subsequent list requests. Acceptable values are `0` to `500`,
67011// inclusive. (Default: `500`)
67012func (c *ForwardingRulesAggregatedListCall) MaxResults(maxResults int64) *ForwardingRulesAggregatedListCall {
67013	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
67014	return c
67015}
67016
67017// OrderBy sets the optional parameter "orderBy": Sorts list results by
67018// a certain order. By default, results are returned in alphanumerical
67019// order based on the resource name. You can also sort results in
67020// descending order based on the creation timestamp using
67021// `orderBy="creationTimestamp desc". This sorts results based on the
67022// `creationTimestamp` field in reverse chronological order (newest
67023// result first). Use this to sort resources like operations so that the
67024// newest operation is returned first. Currently, only sorting by `name`
67025// or `creationTimestamp desc` is supported.
67026func (c *ForwardingRulesAggregatedListCall) OrderBy(orderBy string) *ForwardingRulesAggregatedListCall {
67027	c.urlParams_.Set("orderBy", orderBy)
67028	return c
67029}
67030
67031// PageToken sets the optional parameter "pageToken": Specifies a page
67032// token to use. Set `pageToken` to the `nextPageToken` returned by a
67033// previous list request to get the next page of results.
67034func (c *ForwardingRulesAggregatedListCall) PageToken(pageToken string) *ForwardingRulesAggregatedListCall {
67035	c.urlParams_.Set("pageToken", pageToken)
67036	return c
67037}
67038
67039// ReturnPartialSuccess sets the optional parameter
67040// "returnPartialSuccess": Opt-in for partial success behavior which
67041// provides partial results in case of failure. The default value is
67042// false.
67043func (c *ForwardingRulesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ForwardingRulesAggregatedListCall {
67044	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
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 *ForwardingRulesAggregatedListCall) Fields(s ...googleapi.Field) *ForwardingRulesAggregatedListCall {
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 *ForwardingRulesAggregatedListCall) IfNoneMatch(entityTag string) *ForwardingRulesAggregatedListCall {
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 *ForwardingRulesAggregatedListCall) Context(ctx context.Context) *ForwardingRulesAggregatedListCall {
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 *ForwardingRulesAggregatedListCall) Header() http.Header {
67077	if c.header_ == nil {
67078		c.header_ = make(http.Header)
67079	}
67080	return c.header_
67081}
67082
67083func (c *ForwardingRulesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
67084	reqHeaders := make(http.Header)
67085	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
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}/aggregated/forwardingRules")
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	})
67106	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67107}
67108
67109// Do executes the "compute.forwardingRules.aggregatedList" call.
67110// Exactly one of *ForwardingRuleAggregatedList or error will be
67111// non-nil. Any non-2xx status code is an error. Response headers are in
67112// either *ForwardingRuleAggregatedList.ServerResponse.Header or (if a
67113// response was returned at all) in error.(*googleapi.Error).Header. Use
67114// googleapi.IsNotModified to check whether the returned error was
67115// because http.StatusNotModified was returned.
67116func (c *ForwardingRulesAggregatedListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleAggregatedList, error) {
67117	gensupport.SetOptions(c.urlParams_, opts...)
67118	res, err := c.doRequest("json")
67119	if res != nil && res.StatusCode == http.StatusNotModified {
67120		if res.Body != nil {
67121			res.Body.Close()
67122		}
67123		return nil, &googleapi.Error{
67124			Code:   res.StatusCode,
67125			Header: res.Header,
67126		}
67127	}
67128	if err != nil {
67129		return nil, err
67130	}
67131	defer googleapi.CloseBody(res)
67132	if err := googleapi.CheckResponse(res); err != nil {
67133		return nil, err
67134	}
67135	ret := &ForwardingRuleAggregatedList{
67136		ServerResponse: googleapi.ServerResponse{
67137			Header:         res.Header,
67138			HTTPStatusCode: res.StatusCode,
67139		},
67140	}
67141	target := &ret
67142	if err := gensupport.DecodeResponse(target, res); err != nil {
67143		return nil, err
67144	}
67145	return ret, nil
67146	// {
67147	//   "description": "Retrieves an aggregated list of forwarding rules.",
67148	//   "flatPath": "projects/{project}/aggregated/forwardingRules",
67149	//   "httpMethod": "GET",
67150	//   "id": "compute.forwardingRules.aggregatedList",
67151	//   "parameterOrder": [
67152	//     "project"
67153	//   ],
67154	//   "parameters": {
67155	//     "filter": {
67156	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
67157	//       "location": "query",
67158	//       "type": "string"
67159	//     },
67160	//     "includeAllScopes": {
67161	//       "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.",
67162	//       "location": "query",
67163	//       "type": "boolean"
67164	//     },
67165	//     "maxResults": {
67166	//       "default": "500",
67167	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
67168	//       "format": "uint32",
67169	//       "location": "query",
67170	//       "minimum": "0",
67171	//       "type": "integer"
67172	//     },
67173	//     "orderBy": {
67174	//       "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.",
67175	//       "location": "query",
67176	//       "type": "string"
67177	//     },
67178	//     "pageToken": {
67179	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
67180	//       "location": "query",
67181	//       "type": "string"
67182	//     },
67183	//     "project": {
67184	//       "description": "Project ID for this request.",
67185	//       "location": "path",
67186	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67187	//       "required": true,
67188	//       "type": "string"
67189	//     },
67190	//     "returnPartialSuccess": {
67191	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
67192	//       "location": "query",
67193	//       "type": "boolean"
67194	//     }
67195	//   },
67196	//   "path": "projects/{project}/aggregated/forwardingRules",
67197	//   "response": {
67198	//     "$ref": "ForwardingRuleAggregatedList"
67199	//   },
67200	//   "scopes": [
67201	//     "https://www.googleapis.com/auth/cloud-platform",
67202	//     "https://www.googleapis.com/auth/compute",
67203	//     "https://www.googleapis.com/auth/compute.readonly"
67204	//   ]
67205	// }
67206
67207}
67208
67209// Pages invokes f for each page of results.
67210// A non-nil error returned from f will halt the iteration.
67211// The provided context supersedes any context provided to the Context method.
67212func (c *ForwardingRulesAggregatedListCall) Pages(ctx context.Context, f func(*ForwardingRuleAggregatedList) error) error {
67213	c.ctx_ = ctx
67214	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
67215	for {
67216		x, err := c.Do()
67217		if err != nil {
67218			return err
67219		}
67220		if err := f(x); err != nil {
67221			return err
67222		}
67223		if x.NextPageToken == "" {
67224			return nil
67225		}
67226		c.PageToken(x.NextPageToken)
67227	}
67228}
67229
67230// method id "compute.forwardingRules.delete":
67231
67232type ForwardingRulesDeleteCall struct {
67233	s              *Service
67234	project        string
67235	region         string
67236	forwardingRule string
67237	urlParams_     gensupport.URLParams
67238	ctx_           context.Context
67239	header_        http.Header
67240}
67241
67242// Delete: Deletes the specified ForwardingRule resource.
67243//
67244// - forwardingRule: Name of the ForwardingRule resource to delete.
67245// - project: Project ID for this request.
67246// - region: Name of the region scoping this request.
67247func (r *ForwardingRulesService) Delete(project string, region string, forwardingRule string) *ForwardingRulesDeleteCall {
67248	c := &ForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67249	c.project = project
67250	c.region = region
67251	c.forwardingRule = forwardingRule
67252	return c
67253}
67254
67255// RequestId sets the optional parameter "requestId": An optional
67256// request ID to identify requests. Specify a unique request ID so that
67257// if you must retry your request, the server will know to ignore the
67258// request if it has already been completed. For example, consider a
67259// situation where you make an initial request and the request times
67260// out. If you make the request again with the same request ID, the
67261// server can check if original operation with the same request ID was
67262// received, and if so, will ignore the second request. This prevents
67263// clients from accidentally creating duplicate commitments. The request
67264// ID must be a valid UUID with the exception that zero UUID is not
67265// supported ( 00000000-0000-0000-0000-000000000000).
67266func (c *ForwardingRulesDeleteCall) RequestId(requestId string) *ForwardingRulesDeleteCall {
67267	c.urlParams_.Set("requestId", requestId)
67268	return c
67269}
67270
67271// Fields allows partial responses to be retrieved. See
67272// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67273// for more information.
67274func (c *ForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *ForwardingRulesDeleteCall {
67275	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67276	return c
67277}
67278
67279// Context sets the context to be used in this call's Do method. Any
67280// pending HTTP request will be aborted if the provided context is
67281// canceled.
67282func (c *ForwardingRulesDeleteCall) Context(ctx context.Context) *ForwardingRulesDeleteCall {
67283	c.ctx_ = ctx
67284	return c
67285}
67286
67287// Header returns an http.Header that can be modified by the caller to
67288// add HTTP headers to the request.
67289func (c *ForwardingRulesDeleteCall) Header() http.Header {
67290	if c.header_ == nil {
67291		c.header_ = make(http.Header)
67292	}
67293	return c.header_
67294}
67295
67296func (c *ForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) {
67297	reqHeaders := make(http.Header)
67298	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
67299	for k, v := range c.header_ {
67300		reqHeaders[k] = v
67301	}
67302	reqHeaders.Set("User-Agent", c.s.userAgent())
67303	var body io.Reader = nil
67304	c.urlParams_.Set("alt", alt)
67305	c.urlParams_.Set("prettyPrint", "false")
67306	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}")
67307	urls += "?" + c.urlParams_.Encode()
67308	req, err := http.NewRequest("DELETE", urls, body)
67309	if err != nil {
67310		return nil, err
67311	}
67312	req.Header = reqHeaders
67313	googleapi.Expand(req.URL, map[string]string{
67314		"project":        c.project,
67315		"region":         c.region,
67316		"forwardingRule": c.forwardingRule,
67317	})
67318	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67319}
67320
67321// Do executes the "compute.forwardingRules.delete" call.
67322// Exactly one of *Operation or error will be non-nil. Any non-2xx
67323// status code is an error. Response headers are in either
67324// *Operation.ServerResponse.Header or (if a response was returned at
67325// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67326// to check whether the returned error was because
67327// http.StatusNotModified was returned.
67328func (c *ForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67329	gensupport.SetOptions(c.urlParams_, opts...)
67330	res, err := c.doRequest("json")
67331	if res != nil && res.StatusCode == http.StatusNotModified {
67332		if res.Body != nil {
67333			res.Body.Close()
67334		}
67335		return nil, &googleapi.Error{
67336			Code:   res.StatusCode,
67337			Header: res.Header,
67338		}
67339	}
67340	if err != nil {
67341		return nil, err
67342	}
67343	defer googleapi.CloseBody(res)
67344	if err := googleapi.CheckResponse(res); err != nil {
67345		return nil, err
67346	}
67347	ret := &Operation{
67348		ServerResponse: googleapi.ServerResponse{
67349			Header:         res.Header,
67350			HTTPStatusCode: res.StatusCode,
67351		},
67352	}
67353	target := &ret
67354	if err := gensupport.DecodeResponse(target, res); err != nil {
67355		return nil, err
67356	}
67357	return ret, nil
67358	// {
67359	//   "description": "Deletes the specified ForwardingRule resource.",
67360	//   "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}",
67361	//   "httpMethod": "DELETE",
67362	//   "id": "compute.forwardingRules.delete",
67363	//   "parameterOrder": [
67364	//     "project",
67365	//     "region",
67366	//     "forwardingRule"
67367	//   ],
67368	//   "parameters": {
67369	//     "forwardingRule": {
67370	//       "description": "Name of the ForwardingRule resource to delete.",
67371	//       "location": "path",
67372	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67373	//       "required": true,
67374	//       "type": "string"
67375	//     },
67376	//     "project": {
67377	//       "description": "Project ID for this request.",
67378	//       "location": "path",
67379	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67380	//       "required": true,
67381	//       "type": "string"
67382	//     },
67383	//     "region": {
67384	//       "description": "Name of the region scoping this request.",
67385	//       "location": "path",
67386	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
67387	//       "required": true,
67388	//       "type": "string"
67389	//     },
67390	//     "requestId": {
67391	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
67392	//       "location": "query",
67393	//       "type": "string"
67394	//     }
67395	//   },
67396	//   "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}",
67397	//   "response": {
67398	//     "$ref": "Operation"
67399	//   },
67400	//   "scopes": [
67401	//     "https://www.googleapis.com/auth/cloud-platform",
67402	//     "https://www.googleapis.com/auth/compute"
67403	//   ]
67404	// }
67405
67406}
67407
67408// method id "compute.forwardingRules.get":
67409
67410type ForwardingRulesGetCall struct {
67411	s              *Service
67412	project        string
67413	region         string
67414	forwardingRule string
67415	urlParams_     gensupport.URLParams
67416	ifNoneMatch_   string
67417	ctx_           context.Context
67418	header_        http.Header
67419}
67420
67421// Get: Returns the specified ForwardingRule resource.
67422//
67423// - forwardingRule: Name of the ForwardingRule resource to return.
67424// - project: Project ID for this request.
67425// - region: Name of the region scoping this request.
67426func (r *ForwardingRulesService) Get(project string, region string, forwardingRule string) *ForwardingRulesGetCall {
67427	c := &ForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67428	c.project = project
67429	c.region = region
67430	c.forwardingRule = forwardingRule
67431	return c
67432}
67433
67434// Fields allows partial responses to be retrieved. See
67435// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67436// for more information.
67437func (c *ForwardingRulesGetCall) Fields(s ...googleapi.Field) *ForwardingRulesGetCall {
67438	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67439	return c
67440}
67441
67442// IfNoneMatch sets the optional parameter which makes the operation
67443// fail if the object's ETag matches the given value. This is useful for
67444// getting updates only after the object has changed since the last
67445// request. Use googleapi.IsNotModified to check whether the response
67446// error from Do is the result of In-None-Match.
67447func (c *ForwardingRulesGetCall) IfNoneMatch(entityTag string) *ForwardingRulesGetCall {
67448	c.ifNoneMatch_ = entityTag
67449	return c
67450}
67451
67452// Context sets the context to be used in this call's Do method. Any
67453// pending HTTP request will be aborted if the provided context is
67454// canceled.
67455func (c *ForwardingRulesGetCall) Context(ctx context.Context) *ForwardingRulesGetCall {
67456	c.ctx_ = ctx
67457	return c
67458}
67459
67460// Header returns an http.Header that can be modified by the caller to
67461// add HTTP headers to the request.
67462func (c *ForwardingRulesGetCall) Header() http.Header {
67463	if c.header_ == nil {
67464		c.header_ = make(http.Header)
67465	}
67466	return c.header_
67467}
67468
67469func (c *ForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) {
67470	reqHeaders := make(http.Header)
67471	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
67472	for k, v := range c.header_ {
67473		reqHeaders[k] = v
67474	}
67475	reqHeaders.Set("User-Agent", c.s.userAgent())
67476	if c.ifNoneMatch_ != "" {
67477		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
67478	}
67479	var body io.Reader = nil
67480	c.urlParams_.Set("alt", alt)
67481	c.urlParams_.Set("prettyPrint", "false")
67482	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}")
67483	urls += "?" + c.urlParams_.Encode()
67484	req, err := http.NewRequest("GET", urls, body)
67485	if err != nil {
67486		return nil, err
67487	}
67488	req.Header = reqHeaders
67489	googleapi.Expand(req.URL, map[string]string{
67490		"project":        c.project,
67491		"region":         c.region,
67492		"forwardingRule": c.forwardingRule,
67493	})
67494	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67495}
67496
67497// Do executes the "compute.forwardingRules.get" call.
67498// Exactly one of *ForwardingRule or error will be non-nil. Any non-2xx
67499// status code is an error. Response headers are in either
67500// *ForwardingRule.ServerResponse.Header or (if a response was returned
67501// at all) in error.(*googleapi.Error).Header. Use
67502// googleapi.IsNotModified to check whether the returned error was
67503// because http.StatusNotModified was returned.
67504func (c *ForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) {
67505	gensupport.SetOptions(c.urlParams_, opts...)
67506	res, err := c.doRequest("json")
67507	if res != nil && res.StatusCode == http.StatusNotModified {
67508		if res.Body != nil {
67509			res.Body.Close()
67510		}
67511		return nil, &googleapi.Error{
67512			Code:   res.StatusCode,
67513			Header: res.Header,
67514		}
67515	}
67516	if err != nil {
67517		return nil, err
67518	}
67519	defer googleapi.CloseBody(res)
67520	if err := googleapi.CheckResponse(res); err != nil {
67521		return nil, err
67522	}
67523	ret := &ForwardingRule{
67524		ServerResponse: googleapi.ServerResponse{
67525			Header:         res.Header,
67526			HTTPStatusCode: res.StatusCode,
67527		},
67528	}
67529	target := &ret
67530	if err := gensupport.DecodeResponse(target, res); err != nil {
67531		return nil, err
67532	}
67533	return ret, nil
67534	// {
67535	//   "description": "Returns the specified ForwardingRule resource.",
67536	//   "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}",
67537	//   "httpMethod": "GET",
67538	//   "id": "compute.forwardingRules.get",
67539	//   "parameterOrder": [
67540	//     "project",
67541	//     "region",
67542	//     "forwardingRule"
67543	//   ],
67544	//   "parameters": {
67545	//     "forwardingRule": {
67546	//       "description": "Name of the ForwardingRule resource to return.",
67547	//       "location": "path",
67548	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67549	//       "required": true,
67550	//       "type": "string"
67551	//     },
67552	//     "project": {
67553	//       "description": "Project ID for this request.",
67554	//       "location": "path",
67555	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67556	//       "required": true,
67557	//       "type": "string"
67558	//     },
67559	//     "region": {
67560	//       "description": "Name of the region scoping this request.",
67561	//       "location": "path",
67562	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
67563	//       "required": true,
67564	//       "type": "string"
67565	//     }
67566	//   },
67567	//   "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}",
67568	//   "response": {
67569	//     "$ref": "ForwardingRule"
67570	//   },
67571	//   "scopes": [
67572	//     "https://www.googleapis.com/auth/cloud-platform",
67573	//     "https://www.googleapis.com/auth/compute",
67574	//     "https://www.googleapis.com/auth/compute.readonly"
67575	//   ]
67576	// }
67577
67578}
67579
67580// method id "compute.forwardingRules.insert":
67581
67582type ForwardingRulesInsertCall struct {
67583	s              *Service
67584	project        string
67585	region         string
67586	forwardingrule *ForwardingRule
67587	urlParams_     gensupport.URLParams
67588	ctx_           context.Context
67589	header_        http.Header
67590}
67591
67592// Insert: Creates a ForwardingRule resource in the specified project
67593// and region using the data included in the request.
67594//
67595// - project: Project ID for this request.
67596// - region: Name of the region scoping this request.
67597func (r *ForwardingRulesService) Insert(project string, region string, forwardingrule *ForwardingRule) *ForwardingRulesInsertCall {
67598	c := &ForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67599	c.project = project
67600	c.region = region
67601	c.forwardingrule = forwardingrule
67602	return c
67603}
67604
67605// RequestId sets the optional parameter "requestId": An optional
67606// request ID to identify requests. Specify a unique request ID so that
67607// if you must retry your request, the server will know to ignore the
67608// request if it has already been completed. For example, consider a
67609// situation where you make an initial request and the request times
67610// out. If you make the request again with the same request ID, the
67611// server can check if original operation with the same request ID was
67612// received, and if so, will ignore the second request. This prevents
67613// clients from accidentally creating duplicate commitments. The request
67614// ID must be a valid UUID with the exception that zero UUID is not
67615// supported ( 00000000-0000-0000-0000-000000000000).
67616func (c *ForwardingRulesInsertCall) RequestId(requestId string) *ForwardingRulesInsertCall {
67617	c.urlParams_.Set("requestId", requestId)
67618	return c
67619}
67620
67621// Fields allows partial responses to be retrieved. See
67622// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67623// for more information.
67624func (c *ForwardingRulesInsertCall) Fields(s ...googleapi.Field) *ForwardingRulesInsertCall {
67625	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67626	return c
67627}
67628
67629// Context sets the context to be used in this call's Do method. Any
67630// pending HTTP request will be aborted if the provided context is
67631// canceled.
67632func (c *ForwardingRulesInsertCall) Context(ctx context.Context) *ForwardingRulesInsertCall {
67633	c.ctx_ = ctx
67634	return c
67635}
67636
67637// Header returns an http.Header that can be modified by the caller to
67638// add HTTP headers to the request.
67639func (c *ForwardingRulesInsertCall) Header() http.Header {
67640	if c.header_ == nil {
67641		c.header_ = make(http.Header)
67642	}
67643	return c.header_
67644}
67645
67646func (c *ForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) {
67647	reqHeaders := make(http.Header)
67648	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
67649	for k, v := range c.header_ {
67650		reqHeaders[k] = v
67651	}
67652	reqHeaders.Set("User-Agent", c.s.userAgent())
67653	var body io.Reader = nil
67654	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
67655	if err != nil {
67656		return nil, err
67657	}
67658	reqHeaders.Set("Content-Type", "application/json")
67659	c.urlParams_.Set("alt", alt)
67660	c.urlParams_.Set("prettyPrint", "false")
67661	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules")
67662	urls += "?" + c.urlParams_.Encode()
67663	req, err := http.NewRequest("POST", urls, body)
67664	if err != nil {
67665		return nil, err
67666	}
67667	req.Header = reqHeaders
67668	googleapi.Expand(req.URL, map[string]string{
67669		"project": c.project,
67670		"region":  c.region,
67671	})
67672	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67673}
67674
67675// Do executes the "compute.forwardingRules.insert" call.
67676// Exactly one of *Operation or error will be non-nil. Any non-2xx
67677// status code is an error. Response headers are in either
67678// *Operation.ServerResponse.Header or (if a response was returned at
67679// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67680// to check whether the returned error was because
67681// http.StatusNotModified was returned.
67682func (c *ForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67683	gensupport.SetOptions(c.urlParams_, opts...)
67684	res, err := c.doRequest("json")
67685	if res != nil && res.StatusCode == http.StatusNotModified {
67686		if res.Body != nil {
67687			res.Body.Close()
67688		}
67689		return nil, &googleapi.Error{
67690			Code:   res.StatusCode,
67691			Header: res.Header,
67692		}
67693	}
67694	if err != nil {
67695		return nil, err
67696	}
67697	defer googleapi.CloseBody(res)
67698	if err := googleapi.CheckResponse(res); err != nil {
67699		return nil, err
67700	}
67701	ret := &Operation{
67702		ServerResponse: googleapi.ServerResponse{
67703			Header:         res.Header,
67704			HTTPStatusCode: res.StatusCode,
67705		},
67706	}
67707	target := &ret
67708	if err := gensupport.DecodeResponse(target, res); err != nil {
67709		return nil, err
67710	}
67711	return ret, nil
67712	// {
67713	//   "description": "Creates a ForwardingRule resource in the specified project and region using the data included in the request.",
67714	//   "flatPath": "projects/{project}/regions/{region}/forwardingRules",
67715	//   "httpMethod": "POST",
67716	//   "id": "compute.forwardingRules.insert",
67717	//   "parameterOrder": [
67718	//     "project",
67719	//     "region"
67720	//   ],
67721	//   "parameters": {
67722	//     "project": {
67723	//       "description": "Project ID for this request.",
67724	//       "location": "path",
67725	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67726	//       "required": true,
67727	//       "type": "string"
67728	//     },
67729	//     "region": {
67730	//       "description": "Name of the region scoping this request.",
67731	//       "location": "path",
67732	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
67733	//       "required": true,
67734	//       "type": "string"
67735	//     },
67736	//     "requestId": {
67737	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
67738	//       "location": "query",
67739	//       "type": "string"
67740	//     }
67741	//   },
67742	//   "path": "projects/{project}/regions/{region}/forwardingRules",
67743	//   "request": {
67744	//     "$ref": "ForwardingRule"
67745	//   },
67746	//   "response": {
67747	//     "$ref": "Operation"
67748	//   },
67749	//   "scopes": [
67750	//     "https://www.googleapis.com/auth/cloud-platform",
67751	//     "https://www.googleapis.com/auth/compute"
67752	//   ]
67753	// }
67754
67755}
67756
67757// method id "compute.forwardingRules.list":
67758
67759type ForwardingRulesListCall struct {
67760	s            *Service
67761	project      string
67762	region       string
67763	urlParams_   gensupport.URLParams
67764	ifNoneMatch_ string
67765	ctx_         context.Context
67766	header_      http.Header
67767}
67768
67769// List: Retrieves a list of ForwardingRule resources available to the
67770// specified project and region.
67771//
67772// - project: Project ID for this request.
67773// - region: Name of the region scoping this request.
67774func (r *ForwardingRulesService) List(project string, region string) *ForwardingRulesListCall {
67775	c := &ForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67776	c.project = project
67777	c.region = region
67778	return c
67779}
67780
67781// Filter sets the optional parameter "filter": A filter expression that
67782// filters resources listed in the response. The expression must specify
67783// the field name, a comparison operator, and the value that you want to
67784// use for filtering. The value must be a string, a number, or a
67785// boolean. The comparison operator must be either `=`, `!=`, `>`, or
67786// `<`. For example, if you are filtering Compute Engine instances, you
67787// can exclude instances named `example-instance` by specifying `name !=
67788// example-instance`. You can also filter nested fields. For example,
67789// you could specify `scheduling.automaticRestart = false` to include
67790// instances only if they are not scheduled for automatic restarts. You
67791// can use filtering on nested fields to filter based on resource
67792// labels. To filter on multiple expressions, provide each separate
67793// expression within parentheses. For example: ```
67794// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
67795// ``` By default, each expression is an `AND` expression. However, you
67796// can include `AND` and `OR` expressions explicitly. For example: ```
67797// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
67798// AND (scheduling.automaticRestart = true) ```
67799func (c *ForwardingRulesListCall) Filter(filter string) *ForwardingRulesListCall {
67800	c.urlParams_.Set("filter", filter)
67801	return c
67802}
67803
67804// MaxResults sets the optional parameter "maxResults": The maximum
67805// number of results per page that should be returned. If the number of
67806// available results is larger than `maxResults`, Compute Engine returns
67807// a `nextPageToken` that can be used to get the next page of results in
67808// subsequent list requests. Acceptable values are `0` to `500`,
67809// inclusive. (Default: `500`)
67810func (c *ForwardingRulesListCall) MaxResults(maxResults int64) *ForwardingRulesListCall {
67811	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
67812	return c
67813}
67814
67815// OrderBy sets the optional parameter "orderBy": Sorts list results by
67816// a certain order. By default, results are returned in alphanumerical
67817// order based on the resource name. You can also sort results in
67818// descending order based on the creation timestamp using
67819// `orderBy="creationTimestamp desc". This sorts results based on the
67820// `creationTimestamp` field in reverse chronological order (newest
67821// result first). Use this to sort resources like operations so that the
67822// newest operation is returned first. Currently, only sorting by `name`
67823// or `creationTimestamp desc` is supported.
67824func (c *ForwardingRulesListCall) OrderBy(orderBy string) *ForwardingRulesListCall {
67825	c.urlParams_.Set("orderBy", orderBy)
67826	return c
67827}
67828
67829// PageToken sets the optional parameter "pageToken": Specifies a page
67830// token to use. Set `pageToken` to the `nextPageToken` returned by a
67831// previous list request to get the next page of results.
67832func (c *ForwardingRulesListCall) PageToken(pageToken string) *ForwardingRulesListCall {
67833	c.urlParams_.Set("pageToken", pageToken)
67834	return c
67835}
67836
67837// ReturnPartialSuccess sets the optional parameter
67838// "returnPartialSuccess": Opt-in for partial success behavior which
67839// provides partial results in case of failure. The default value is
67840// false.
67841func (c *ForwardingRulesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ForwardingRulesListCall {
67842	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
67843	return c
67844}
67845
67846// Fields allows partial responses to be retrieved. See
67847// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67848// for more information.
67849func (c *ForwardingRulesListCall) Fields(s ...googleapi.Field) *ForwardingRulesListCall {
67850	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67851	return c
67852}
67853
67854// IfNoneMatch sets the optional parameter which makes the operation
67855// fail if the object's ETag matches the given value. This is useful for
67856// getting updates only after the object has changed since the last
67857// request. Use googleapi.IsNotModified to check whether the response
67858// error from Do is the result of In-None-Match.
67859func (c *ForwardingRulesListCall) IfNoneMatch(entityTag string) *ForwardingRulesListCall {
67860	c.ifNoneMatch_ = entityTag
67861	return c
67862}
67863
67864// Context sets the context to be used in this call's Do method. Any
67865// pending HTTP request will be aborted if the provided context is
67866// canceled.
67867func (c *ForwardingRulesListCall) Context(ctx context.Context) *ForwardingRulesListCall {
67868	c.ctx_ = ctx
67869	return c
67870}
67871
67872// Header returns an http.Header that can be modified by the caller to
67873// add HTTP headers to the request.
67874func (c *ForwardingRulesListCall) Header() http.Header {
67875	if c.header_ == nil {
67876		c.header_ = make(http.Header)
67877	}
67878	return c.header_
67879}
67880
67881func (c *ForwardingRulesListCall) doRequest(alt string) (*http.Response, error) {
67882	reqHeaders := make(http.Header)
67883	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
67884	for k, v := range c.header_ {
67885		reqHeaders[k] = v
67886	}
67887	reqHeaders.Set("User-Agent", c.s.userAgent())
67888	if c.ifNoneMatch_ != "" {
67889		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
67890	}
67891	var body io.Reader = nil
67892	c.urlParams_.Set("alt", alt)
67893	c.urlParams_.Set("prettyPrint", "false")
67894	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules")
67895	urls += "?" + c.urlParams_.Encode()
67896	req, err := http.NewRequest("GET", urls, body)
67897	if err != nil {
67898		return nil, err
67899	}
67900	req.Header = reqHeaders
67901	googleapi.Expand(req.URL, map[string]string{
67902		"project": c.project,
67903		"region":  c.region,
67904	})
67905	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67906}
67907
67908// Do executes the "compute.forwardingRules.list" call.
67909// Exactly one of *ForwardingRuleList or error will be non-nil. Any
67910// non-2xx status code is an error. Response headers are in either
67911// *ForwardingRuleList.ServerResponse.Header or (if a response was
67912// returned at all) in error.(*googleapi.Error).Header. Use
67913// googleapi.IsNotModified to check whether the returned error was
67914// because http.StatusNotModified was returned.
67915func (c *ForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) {
67916	gensupport.SetOptions(c.urlParams_, opts...)
67917	res, err := c.doRequest("json")
67918	if res != nil && res.StatusCode == http.StatusNotModified {
67919		if res.Body != nil {
67920			res.Body.Close()
67921		}
67922		return nil, &googleapi.Error{
67923			Code:   res.StatusCode,
67924			Header: res.Header,
67925		}
67926	}
67927	if err != nil {
67928		return nil, err
67929	}
67930	defer googleapi.CloseBody(res)
67931	if err := googleapi.CheckResponse(res); err != nil {
67932		return nil, err
67933	}
67934	ret := &ForwardingRuleList{
67935		ServerResponse: googleapi.ServerResponse{
67936			Header:         res.Header,
67937			HTTPStatusCode: res.StatusCode,
67938		},
67939	}
67940	target := &ret
67941	if err := gensupport.DecodeResponse(target, res); err != nil {
67942		return nil, err
67943	}
67944	return ret, nil
67945	// {
67946	//   "description": "Retrieves a list of ForwardingRule resources available to the specified project and region.",
67947	//   "flatPath": "projects/{project}/regions/{region}/forwardingRules",
67948	//   "httpMethod": "GET",
67949	//   "id": "compute.forwardingRules.list",
67950	//   "parameterOrder": [
67951	//     "project",
67952	//     "region"
67953	//   ],
67954	//   "parameters": {
67955	//     "filter": {
67956	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
67957	//       "location": "query",
67958	//       "type": "string"
67959	//     },
67960	//     "maxResults": {
67961	//       "default": "500",
67962	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
67963	//       "format": "uint32",
67964	//       "location": "query",
67965	//       "minimum": "0",
67966	//       "type": "integer"
67967	//     },
67968	//     "orderBy": {
67969	//       "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.",
67970	//       "location": "query",
67971	//       "type": "string"
67972	//     },
67973	//     "pageToken": {
67974	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
67975	//       "location": "query",
67976	//       "type": "string"
67977	//     },
67978	//     "project": {
67979	//       "description": "Project ID for this request.",
67980	//       "location": "path",
67981	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67982	//       "required": true,
67983	//       "type": "string"
67984	//     },
67985	//     "region": {
67986	//       "description": "Name of the region scoping this request.",
67987	//       "location": "path",
67988	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
67989	//       "required": true,
67990	//       "type": "string"
67991	//     },
67992	//     "returnPartialSuccess": {
67993	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
67994	//       "location": "query",
67995	//       "type": "boolean"
67996	//     }
67997	//   },
67998	//   "path": "projects/{project}/regions/{region}/forwardingRules",
67999	//   "response": {
68000	//     "$ref": "ForwardingRuleList"
68001	//   },
68002	//   "scopes": [
68003	//     "https://www.googleapis.com/auth/cloud-platform",
68004	//     "https://www.googleapis.com/auth/compute",
68005	//     "https://www.googleapis.com/auth/compute.readonly"
68006	//   ]
68007	// }
68008
68009}
68010
68011// Pages invokes f for each page of results.
68012// A non-nil error returned from f will halt the iteration.
68013// The provided context supersedes any context provided to the Context method.
68014func (c *ForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error {
68015	c.ctx_ = ctx
68016	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
68017	for {
68018		x, err := c.Do()
68019		if err != nil {
68020			return err
68021		}
68022		if err := f(x); err != nil {
68023			return err
68024		}
68025		if x.NextPageToken == "" {
68026			return nil
68027		}
68028		c.PageToken(x.NextPageToken)
68029	}
68030}
68031
68032// method id "compute.forwardingRules.patch":
68033
68034type ForwardingRulesPatchCall struct {
68035	s              *Service
68036	project        string
68037	region         string
68038	forwardingRule string
68039	forwardingrule *ForwardingRule
68040	urlParams_     gensupport.URLParams
68041	ctx_           context.Context
68042	header_        http.Header
68043}
68044
68045// Patch: Updates the specified forwarding rule with the data included
68046// in the request. This method supports PATCH semantics and uses the
68047// JSON merge patch format and processing rules. Currently, you can only
68048// patch the network_tier field.
68049//
68050// - forwardingRule: Name of the ForwardingRule resource to patch.
68051// - project: Project ID for this request.
68052// - region: Name of the region scoping this request.
68053func (r *ForwardingRulesService) Patch(project string, region string, forwardingRule string, forwardingrule *ForwardingRule) *ForwardingRulesPatchCall {
68054	c := &ForwardingRulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68055	c.project = project
68056	c.region = region
68057	c.forwardingRule = forwardingRule
68058	c.forwardingrule = forwardingrule
68059	return c
68060}
68061
68062// RequestId sets the optional parameter "requestId": An optional
68063// request ID to identify requests. Specify a unique request ID so that
68064// if you must retry your request, the server will know to ignore the
68065// request if it has already been completed. For example, consider a
68066// situation where you make an initial request and the request times
68067// out. If you make the request again with the same request ID, the
68068// server can check if original operation with the same request ID was
68069// received, and if so, will ignore the second request. This prevents
68070// clients from accidentally creating duplicate commitments. The request
68071// ID must be a valid UUID with the exception that zero UUID is not
68072// supported ( 00000000-0000-0000-0000-000000000000).
68073func (c *ForwardingRulesPatchCall) RequestId(requestId string) *ForwardingRulesPatchCall {
68074	c.urlParams_.Set("requestId", requestId)
68075	return c
68076}
68077
68078// Fields allows partial responses to be retrieved. See
68079// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68080// for more information.
68081func (c *ForwardingRulesPatchCall) Fields(s ...googleapi.Field) *ForwardingRulesPatchCall {
68082	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68083	return c
68084}
68085
68086// Context sets the context to be used in this call's Do method. Any
68087// pending HTTP request will be aborted if the provided context is
68088// canceled.
68089func (c *ForwardingRulesPatchCall) Context(ctx context.Context) *ForwardingRulesPatchCall {
68090	c.ctx_ = ctx
68091	return c
68092}
68093
68094// Header returns an http.Header that can be modified by the caller to
68095// add HTTP headers to the request.
68096func (c *ForwardingRulesPatchCall) Header() http.Header {
68097	if c.header_ == nil {
68098		c.header_ = make(http.Header)
68099	}
68100	return c.header_
68101}
68102
68103func (c *ForwardingRulesPatchCall) doRequest(alt string) (*http.Response, error) {
68104	reqHeaders := make(http.Header)
68105	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
68106	for k, v := range c.header_ {
68107		reqHeaders[k] = v
68108	}
68109	reqHeaders.Set("User-Agent", c.s.userAgent())
68110	var body io.Reader = nil
68111	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
68112	if err != nil {
68113		return nil, err
68114	}
68115	reqHeaders.Set("Content-Type", "application/json")
68116	c.urlParams_.Set("alt", alt)
68117	c.urlParams_.Set("prettyPrint", "false")
68118	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}")
68119	urls += "?" + c.urlParams_.Encode()
68120	req, err := http.NewRequest("PATCH", urls, body)
68121	if err != nil {
68122		return nil, err
68123	}
68124	req.Header = reqHeaders
68125	googleapi.Expand(req.URL, map[string]string{
68126		"project":        c.project,
68127		"region":         c.region,
68128		"forwardingRule": c.forwardingRule,
68129	})
68130	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68131}
68132
68133// Do executes the "compute.forwardingRules.patch" call.
68134// Exactly one of *Operation or error will be non-nil. Any non-2xx
68135// status code is an error. Response headers are in either
68136// *Operation.ServerResponse.Header or (if a response was returned at
68137// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68138// to check whether the returned error was because
68139// http.StatusNotModified was returned.
68140func (c *ForwardingRulesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68141	gensupport.SetOptions(c.urlParams_, opts...)
68142	res, err := c.doRequest("json")
68143	if res != nil && res.StatusCode == http.StatusNotModified {
68144		if res.Body != nil {
68145			res.Body.Close()
68146		}
68147		return nil, &googleapi.Error{
68148			Code:   res.StatusCode,
68149			Header: res.Header,
68150		}
68151	}
68152	if err != nil {
68153		return nil, err
68154	}
68155	defer googleapi.CloseBody(res)
68156	if err := googleapi.CheckResponse(res); err != nil {
68157		return nil, err
68158	}
68159	ret := &Operation{
68160		ServerResponse: googleapi.ServerResponse{
68161			Header:         res.Header,
68162			HTTPStatusCode: res.StatusCode,
68163		},
68164	}
68165	target := &ret
68166	if err := gensupport.DecodeResponse(target, res); err != nil {
68167		return nil, err
68168	}
68169	return ret, nil
68170	// {
68171	//   "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.",
68172	//   "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}",
68173	//   "httpMethod": "PATCH",
68174	//   "id": "compute.forwardingRules.patch",
68175	//   "parameterOrder": [
68176	//     "project",
68177	//     "region",
68178	//     "forwardingRule"
68179	//   ],
68180	//   "parameters": {
68181	//     "forwardingRule": {
68182	//       "description": "Name of the ForwardingRule resource to patch.",
68183	//       "location": "path",
68184	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68185	//       "required": true,
68186	//       "type": "string"
68187	//     },
68188	//     "project": {
68189	//       "description": "Project ID for this request.",
68190	//       "location": "path",
68191	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68192	//       "required": true,
68193	//       "type": "string"
68194	//     },
68195	//     "region": {
68196	//       "description": "Name of the region scoping this request.",
68197	//       "location": "path",
68198	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
68199	//       "required": true,
68200	//       "type": "string"
68201	//     },
68202	//     "requestId": {
68203	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
68204	//       "location": "query",
68205	//       "type": "string"
68206	//     }
68207	//   },
68208	//   "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}",
68209	//   "request": {
68210	//     "$ref": "ForwardingRule"
68211	//   },
68212	//   "response": {
68213	//     "$ref": "Operation"
68214	//   },
68215	//   "scopes": [
68216	//     "https://www.googleapis.com/auth/cloud-platform",
68217	//     "https://www.googleapis.com/auth/compute"
68218	//   ]
68219	// }
68220
68221}
68222
68223// method id "compute.forwardingRules.setLabels":
68224
68225type ForwardingRulesSetLabelsCall struct {
68226	s                      *Service
68227	project                string
68228	region                 string
68229	resource               string
68230	regionsetlabelsrequest *RegionSetLabelsRequest
68231	urlParams_             gensupport.URLParams
68232	ctx_                   context.Context
68233	header_                http.Header
68234}
68235
68236// SetLabels: Sets the labels on the specified resource. To learn more
68237// about labels, read the Labeling Resources documentation.
68238//
68239// - project: Project ID for this request.
68240// - region: The region for this request.
68241// - resource: Name or id of the resource for this request.
68242func (r *ForwardingRulesService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *ForwardingRulesSetLabelsCall {
68243	c := &ForwardingRulesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68244	c.project = project
68245	c.region = region
68246	c.resource = resource
68247	c.regionsetlabelsrequest = regionsetlabelsrequest
68248	return c
68249}
68250
68251// RequestId sets the optional parameter "requestId": An optional
68252// request ID to identify requests. Specify a unique request ID so that
68253// if you must retry your request, the server will know to ignore the
68254// request if it has already been completed. For example, consider a
68255// situation where you make an initial request and the request times
68256// out. If you make the request again with the same request ID, the
68257// server can check if original operation with the same request ID was
68258// received, and if so, will ignore the second request. This prevents
68259// clients from accidentally creating duplicate commitments. The request
68260// ID must be a valid UUID with the exception that zero UUID is not
68261// supported ( 00000000-0000-0000-0000-000000000000).
68262func (c *ForwardingRulesSetLabelsCall) RequestId(requestId string) *ForwardingRulesSetLabelsCall {
68263	c.urlParams_.Set("requestId", requestId)
68264	return c
68265}
68266
68267// Fields allows partial responses to be retrieved. See
68268// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68269// for more information.
68270func (c *ForwardingRulesSetLabelsCall) Fields(s ...googleapi.Field) *ForwardingRulesSetLabelsCall {
68271	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68272	return c
68273}
68274
68275// Context sets the context to be used in this call's Do method. Any
68276// pending HTTP request will be aborted if the provided context is
68277// canceled.
68278func (c *ForwardingRulesSetLabelsCall) Context(ctx context.Context) *ForwardingRulesSetLabelsCall {
68279	c.ctx_ = ctx
68280	return c
68281}
68282
68283// Header returns an http.Header that can be modified by the caller to
68284// add HTTP headers to the request.
68285func (c *ForwardingRulesSetLabelsCall) Header() http.Header {
68286	if c.header_ == nil {
68287		c.header_ = make(http.Header)
68288	}
68289	return c.header_
68290}
68291
68292func (c *ForwardingRulesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
68293	reqHeaders := make(http.Header)
68294	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
68295	for k, v := range c.header_ {
68296		reqHeaders[k] = v
68297	}
68298	reqHeaders.Set("User-Agent", c.s.userAgent())
68299	var body io.Reader = nil
68300	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
68301	if err != nil {
68302		return nil, err
68303	}
68304	reqHeaders.Set("Content-Type", "application/json")
68305	c.urlParams_.Set("alt", alt)
68306	c.urlParams_.Set("prettyPrint", "false")
68307	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels")
68308	urls += "?" + c.urlParams_.Encode()
68309	req, err := http.NewRequest("POST", urls, body)
68310	if err != nil {
68311		return nil, err
68312	}
68313	req.Header = reqHeaders
68314	googleapi.Expand(req.URL, map[string]string{
68315		"project":  c.project,
68316		"region":   c.region,
68317		"resource": c.resource,
68318	})
68319	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68320}
68321
68322// Do executes the "compute.forwardingRules.setLabels" call.
68323// Exactly one of *Operation or error will be non-nil. Any non-2xx
68324// status code is an error. Response headers are in either
68325// *Operation.ServerResponse.Header or (if a response was returned at
68326// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68327// to check whether the returned error was because
68328// http.StatusNotModified was returned.
68329func (c *ForwardingRulesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68330	gensupport.SetOptions(c.urlParams_, opts...)
68331	res, err := c.doRequest("json")
68332	if res != nil && res.StatusCode == http.StatusNotModified {
68333		if res.Body != nil {
68334			res.Body.Close()
68335		}
68336		return nil, &googleapi.Error{
68337			Code:   res.StatusCode,
68338			Header: res.Header,
68339		}
68340	}
68341	if err != nil {
68342		return nil, err
68343	}
68344	defer googleapi.CloseBody(res)
68345	if err := googleapi.CheckResponse(res); err != nil {
68346		return nil, err
68347	}
68348	ret := &Operation{
68349		ServerResponse: googleapi.ServerResponse{
68350			Header:         res.Header,
68351			HTTPStatusCode: res.StatusCode,
68352		},
68353	}
68354	target := &ret
68355	if err := gensupport.DecodeResponse(target, res); err != nil {
68356		return nil, err
68357	}
68358	return ret, nil
68359	// {
68360	//   "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling Resources documentation.",
68361	//   "flatPath": "projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels",
68362	//   "httpMethod": "POST",
68363	//   "id": "compute.forwardingRules.setLabels",
68364	//   "parameterOrder": [
68365	//     "project",
68366	//     "region",
68367	//     "resource"
68368	//   ],
68369	//   "parameters": {
68370	//     "project": {
68371	//       "description": "Project ID for this request.",
68372	//       "location": "path",
68373	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68374	//       "required": true,
68375	//       "type": "string"
68376	//     },
68377	//     "region": {
68378	//       "description": "The region for this request.",
68379	//       "location": "path",
68380	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
68381	//       "required": true,
68382	//       "type": "string"
68383	//     },
68384	//     "requestId": {
68385	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
68386	//       "location": "query",
68387	//       "type": "string"
68388	//     },
68389	//     "resource": {
68390	//       "description": "Name or id of the resource for this request.",
68391	//       "location": "path",
68392	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68393	//       "required": true,
68394	//       "type": "string"
68395	//     }
68396	//   },
68397	//   "path": "projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels",
68398	//   "request": {
68399	//     "$ref": "RegionSetLabelsRequest"
68400	//   },
68401	//   "response": {
68402	//     "$ref": "Operation"
68403	//   },
68404	//   "scopes": [
68405	//     "https://www.googleapis.com/auth/cloud-platform",
68406	//     "https://www.googleapis.com/auth/compute"
68407	//   ]
68408	// }
68409
68410}
68411
68412// method id "compute.forwardingRules.setTarget":
68413
68414type ForwardingRulesSetTargetCall struct {
68415	s               *Service
68416	project         string
68417	region          string
68418	forwardingRule  string
68419	targetreference *TargetReference
68420	urlParams_      gensupport.URLParams
68421	ctx_            context.Context
68422	header_         http.Header
68423}
68424
68425// SetTarget: Changes target URL for forwarding rule. The new target
68426// should be of the same type as the old target.
68427//
68428// - forwardingRule: Name of the ForwardingRule resource in which target
68429//   is to be set.
68430// - project: Project ID for this request.
68431// - region: Name of the region scoping this request.
68432func (r *ForwardingRulesService) SetTarget(project string, region string, forwardingRule string, targetreference *TargetReference) *ForwardingRulesSetTargetCall {
68433	c := &ForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68434	c.project = project
68435	c.region = region
68436	c.forwardingRule = forwardingRule
68437	c.targetreference = targetreference
68438	return c
68439}
68440
68441// RequestId sets the optional parameter "requestId": An optional
68442// request ID to identify requests. Specify a unique request ID so that
68443// if you must retry your request, the server will know to ignore the
68444// request if it has already been completed. For example, consider a
68445// situation where you make an initial request and the request times
68446// out. If you make the request again with the same request ID, the
68447// server can check if original operation with the same request ID was
68448// received, and if so, will ignore the second request. This prevents
68449// clients from accidentally creating duplicate commitments. The request
68450// ID must be a valid UUID with the exception that zero UUID is not
68451// supported ( 00000000-0000-0000-0000-000000000000).
68452func (c *ForwardingRulesSetTargetCall) RequestId(requestId string) *ForwardingRulesSetTargetCall {
68453	c.urlParams_.Set("requestId", requestId)
68454	return c
68455}
68456
68457// Fields allows partial responses to be retrieved. See
68458// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68459// for more information.
68460func (c *ForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *ForwardingRulesSetTargetCall {
68461	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68462	return c
68463}
68464
68465// Context sets the context to be used in this call's Do method. Any
68466// pending HTTP request will be aborted if the provided context is
68467// canceled.
68468func (c *ForwardingRulesSetTargetCall) Context(ctx context.Context) *ForwardingRulesSetTargetCall {
68469	c.ctx_ = ctx
68470	return c
68471}
68472
68473// Header returns an http.Header that can be modified by the caller to
68474// add HTTP headers to the request.
68475func (c *ForwardingRulesSetTargetCall) Header() http.Header {
68476	if c.header_ == nil {
68477		c.header_ = make(http.Header)
68478	}
68479	return c.header_
68480}
68481
68482func (c *ForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) {
68483	reqHeaders := make(http.Header)
68484	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
68485	for k, v := range c.header_ {
68486		reqHeaders[k] = v
68487	}
68488	reqHeaders.Set("User-Agent", c.s.userAgent())
68489	var body io.Reader = nil
68490	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
68491	if err != nil {
68492		return nil, err
68493	}
68494	reqHeaders.Set("Content-Type", "application/json")
68495	c.urlParams_.Set("alt", alt)
68496	c.urlParams_.Set("prettyPrint", "false")
68497	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget")
68498	urls += "?" + c.urlParams_.Encode()
68499	req, err := http.NewRequest("POST", urls, body)
68500	if err != nil {
68501		return nil, err
68502	}
68503	req.Header = reqHeaders
68504	googleapi.Expand(req.URL, map[string]string{
68505		"project":        c.project,
68506		"region":         c.region,
68507		"forwardingRule": c.forwardingRule,
68508	})
68509	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68510}
68511
68512// Do executes the "compute.forwardingRules.setTarget" call.
68513// Exactly one of *Operation or error will be non-nil. Any non-2xx
68514// status code is an error. Response headers are in either
68515// *Operation.ServerResponse.Header or (if a response was returned at
68516// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68517// to check whether the returned error was because
68518// http.StatusNotModified was returned.
68519func (c *ForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68520	gensupport.SetOptions(c.urlParams_, opts...)
68521	res, err := c.doRequest("json")
68522	if res != nil && res.StatusCode == http.StatusNotModified {
68523		if res.Body != nil {
68524			res.Body.Close()
68525		}
68526		return nil, &googleapi.Error{
68527			Code:   res.StatusCode,
68528			Header: res.Header,
68529		}
68530	}
68531	if err != nil {
68532		return nil, err
68533	}
68534	defer googleapi.CloseBody(res)
68535	if err := googleapi.CheckResponse(res); err != nil {
68536		return nil, err
68537	}
68538	ret := &Operation{
68539		ServerResponse: googleapi.ServerResponse{
68540			Header:         res.Header,
68541			HTTPStatusCode: res.StatusCode,
68542		},
68543	}
68544	target := &ret
68545	if err := gensupport.DecodeResponse(target, res); err != nil {
68546		return nil, err
68547	}
68548	return ret, nil
68549	// {
68550	//   "description": "Changes target URL for forwarding rule. The new target should be of the same type as the old target.",
68551	//   "flatPath": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget",
68552	//   "httpMethod": "POST",
68553	//   "id": "compute.forwardingRules.setTarget",
68554	//   "parameterOrder": [
68555	//     "project",
68556	//     "region",
68557	//     "forwardingRule"
68558	//   ],
68559	//   "parameters": {
68560	//     "forwardingRule": {
68561	//       "description": "Name of the ForwardingRule resource in which target is to be set.",
68562	//       "location": "path",
68563	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68564	//       "required": true,
68565	//       "type": "string"
68566	//     },
68567	//     "project": {
68568	//       "description": "Project ID for this request.",
68569	//       "location": "path",
68570	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68571	//       "required": true,
68572	//       "type": "string"
68573	//     },
68574	//     "region": {
68575	//       "description": "Name of the region scoping this request.",
68576	//       "location": "path",
68577	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
68578	//       "required": true,
68579	//       "type": "string"
68580	//     },
68581	//     "requestId": {
68582	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
68583	//       "location": "query",
68584	//       "type": "string"
68585	//     }
68586	//   },
68587	//   "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget",
68588	//   "request": {
68589	//     "$ref": "TargetReference"
68590	//   },
68591	//   "response": {
68592	//     "$ref": "Operation"
68593	//   },
68594	//   "scopes": [
68595	//     "https://www.googleapis.com/auth/cloud-platform",
68596	//     "https://www.googleapis.com/auth/compute"
68597	//   ]
68598	// }
68599
68600}
68601
68602// method id "compute.globalAddresses.delete":
68603
68604type GlobalAddressesDeleteCall struct {
68605	s          *Service
68606	project    string
68607	address    string
68608	urlParams_ gensupport.URLParams
68609	ctx_       context.Context
68610	header_    http.Header
68611}
68612
68613// Delete: Deletes the specified address resource.
68614//
68615// - address: Name of the address resource to delete.
68616// - project: Project ID for this request.
68617func (r *GlobalAddressesService) Delete(project string, address string) *GlobalAddressesDeleteCall {
68618	c := &GlobalAddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68619	c.project = project
68620	c.address = address
68621	return c
68622}
68623
68624// RequestId sets the optional parameter "requestId": An optional
68625// request ID to identify requests. Specify a unique request ID so that
68626// if you must retry your request, the server will know to ignore the
68627// request if it has already been completed. For example, consider a
68628// situation where you make an initial request and the request times
68629// out. If you make the request again with the same request ID, the
68630// server can check if original operation with the same request ID was
68631// received, and if so, will ignore the second request. This prevents
68632// clients from accidentally creating duplicate commitments. The request
68633// ID must be a valid UUID with the exception that zero UUID is not
68634// supported ( 00000000-0000-0000-0000-000000000000).
68635func (c *GlobalAddressesDeleteCall) RequestId(requestId string) *GlobalAddressesDeleteCall {
68636	c.urlParams_.Set("requestId", requestId)
68637	return c
68638}
68639
68640// Fields allows partial responses to be retrieved. See
68641// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68642// for more information.
68643func (c *GlobalAddressesDeleteCall) Fields(s ...googleapi.Field) *GlobalAddressesDeleteCall {
68644	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68645	return c
68646}
68647
68648// Context sets the context to be used in this call's Do method. Any
68649// pending HTTP request will be aborted if the provided context is
68650// canceled.
68651func (c *GlobalAddressesDeleteCall) Context(ctx context.Context) *GlobalAddressesDeleteCall {
68652	c.ctx_ = ctx
68653	return c
68654}
68655
68656// Header returns an http.Header that can be modified by the caller to
68657// add HTTP headers to the request.
68658func (c *GlobalAddressesDeleteCall) Header() http.Header {
68659	if c.header_ == nil {
68660		c.header_ = make(http.Header)
68661	}
68662	return c.header_
68663}
68664
68665func (c *GlobalAddressesDeleteCall) doRequest(alt string) (*http.Response, error) {
68666	reqHeaders := make(http.Header)
68667	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
68668	for k, v := range c.header_ {
68669		reqHeaders[k] = v
68670	}
68671	reqHeaders.Set("User-Agent", c.s.userAgent())
68672	var body io.Reader = nil
68673	c.urlParams_.Set("alt", alt)
68674	c.urlParams_.Set("prettyPrint", "false")
68675	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses/{address}")
68676	urls += "?" + c.urlParams_.Encode()
68677	req, err := http.NewRequest("DELETE", urls, body)
68678	if err != nil {
68679		return nil, err
68680	}
68681	req.Header = reqHeaders
68682	googleapi.Expand(req.URL, map[string]string{
68683		"project": c.project,
68684		"address": c.address,
68685	})
68686	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68687}
68688
68689// Do executes the "compute.globalAddresses.delete" call.
68690// Exactly one of *Operation or error will be non-nil. Any non-2xx
68691// status code is an error. Response headers are in either
68692// *Operation.ServerResponse.Header or (if a response was returned at
68693// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68694// to check whether the returned error was because
68695// http.StatusNotModified was returned.
68696func (c *GlobalAddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68697	gensupport.SetOptions(c.urlParams_, opts...)
68698	res, err := c.doRequest("json")
68699	if res != nil && res.StatusCode == http.StatusNotModified {
68700		if res.Body != nil {
68701			res.Body.Close()
68702		}
68703		return nil, &googleapi.Error{
68704			Code:   res.StatusCode,
68705			Header: res.Header,
68706		}
68707	}
68708	if err != nil {
68709		return nil, err
68710	}
68711	defer googleapi.CloseBody(res)
68712	if err := googleapi.CheckResponse(res); err != nil {
68713		return nil, err
68714	}
68715	ret := &Operation{
68716		ServerResponse: googleapi.ServerResponse{
68717			Header:         res.Header,
68718			HTTPStatusCode: res.StatusCode,
68719		},
68720	}
68721	target := &ret
68722	if err := gensupport.DecodeResponse(target, res); err != nil {
68723		return nil, err
68724	}
68725	return ret, nil
68726	// {
68727	//   "description": "Deletes the specified address resource.",
68728	//   "flatPath": "projects/{project}/global/addresses/{address}",
68729	//   "httpMethod": "DELETE",
68730	//   "id": "compute.globalAddresses.delete",
68731	//   "parameterOrder": [
68732	//     "project",
68733	//     "address"
68734	//   ],
68735	//   "parameters": {
68736	//     "address": {
68737	//       "description": "Name of the address resource to delete.",
68738	//       "location": "path",
68739	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68740	//       "required": true,
68741	//       "type": "string"
68742	//     },
68743	//     "project": {
68744	//       "description": "Project ID for this request.",
68745	//       "location": "path",
68746	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68747	//       "required": true,
68748	//       "type": "string"
68749	//     },
68750	//     "requestId": {
68751	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
68752	//       "location": "query",
68753	//       "type": "string"
68754	//     }
68755	//   },
68756	//   "path": "projects/{project}/global/addresses/{address}",
68757	//   "response": {
68758	//     "$ref": "Operation"
68759	//   },
68760	//   "scopes": [
68761	//     "https://www.googleapis.com/auth/cloud-platform",
68762	//     "https://www.googleapis.com/auth/compute"
68763	//   ]
68764	// }
68765
68766}
68767
68768// method id "compute.globalAddresses.get":
68769
68770type GlobalAddressesGetCall struct {
68771	s            *Service
68772	project      string
68773	address      string
68774	urlParams_   gensupport.URLParams
68775	ifNoneMatch_ string
68776	ctx_         context.Context
68777	header_      http.Header
68778}
68779
68780// Get: Returns the specified address resource. Gets a list of available
68781// addresses by making a list() request.
68782//
68783// - address: Name of the address resource to return.
68784// - project: Project ID for this request.
68785func (r *GlobalAddressesService) Get(project string, address string) *GlobalAddressesGetCall {
68786	c := &GlobalAddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68787	c.project = project
68788	c.address = address
68789	return c
68790}
68791
68792// Fields allows partial responses to be retrieved. See
68793// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68794// for more information.
68795func (c *GlobalAddressesGetCall) Fields(s ...googleapi.Field) *GlobalAddressesGetCall {
68796	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68797	return c
68798}
68799
68800// IfNoneMatch sets the optional parameter which makes the operation
68801// fail if the object's ETag matches the given value. This is useful for
68802// getting updates only after the object has changed since the last
68803// request. Use googleapi.IsNotModified to check whether the response
68804// error from Do is the result of In-None-Match.
68805func (c *GlobalAddressesGetCall) IfNoneMatch(entityTag string) *GlobalAddressesGetCall {
68806	c.ifNoneMatch_ = entityTag
68807	return c
68808}
68809
68810// Context sets the context to be used in this call's Do method. Any
68811// pending HTTP request will be aborted if the provided context is
68812// canceled.
68813func (c *GlobalAddressesGetCall) Context(ctx context.Context) *GlobalAddressesGetCall {
68814	c.ctx_ = ctx
68815	return c
68816}
68817
68818// Header returns an http.Header that can be modified by the caller to
68819// add HTTP headers to the request.
68820func (c *GlobalAddressesGetCall) Header() http.Header {
68821	if c.header_ == nil {
68822		c.header_ = make(http.Header)
68823	}
68824	return c.header_
68825}
68826
68827func (c *GlobalAddressesGetCall) doRequest(alt string) (*http.Response, error) {
68828	reqHeaders := make(http.Header)
68829	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
68830	for k, v := range c.header_ {
68831		reqHeaders[k] = v
68832	}
68833	reqHeaders.Set("User-Agent", c.s.userAgent())
68834	if c.ifNoneMatch_ != "" {
68835		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68836	}
68837	var body io.Reader = nil
68838	c.urlParams_.Set("alt", alt)
68839	c.urlParams_.Set("prettyPrint", "false")
68840	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses/{address}")
68841	urls += "?" + c.urlParams_.Encode()
68842	req, err := http.NewRequest("GET", urls, body)
68843	if err != nil {
68844		return nil, err
68845	}
68846	req.Header = reqHeaders
68847	googleapi.Expand(req.URL, map[string]string{
68848		"project": c.project,
68849		"address": c.address,
68850	})
68851	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68852}
68853
68854// Do executes the "compute.globalAddresses.get" call.
68855// Exactly one of *Address or error will be non-nil. Any non-2xx status
68856// code is an error. Response headers are in either
68857// *Address.ServerResponse.Header or (if a response was returned at all)
68858// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
68859// check whether the returned error was because http.StatusNotModified
68860// was returned.
68861func (c *GlobalAddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, 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 := &Address{
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": "Returns the specified address resource. Gets a list of available addresses by making a list() request.",
68893	//   "flatPath": "projects/{project}/global/addresses/{address}",
68894	//   "httpMethod": "GET",
68895	//   "id": "compute.globalAddresses.get",
68896	//   "parameterOrder": [
68897	//     "project",
68898	//     "address"
68899	//   ],
68900	//   "parameters": {
68901	//     "address": {
68902	//       "description": "Name of the address resource to return.",
68903	//       "location": "path",
68904	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68905	//       "required": true,
68906	//       "type": "string"
68907	//     },
68908	//     "project": {
68909	//       "description": "Project ID for this request.",
68910	//       "location": "path",
68911	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68912	//       "required": true,
68913	//       "type": "string"
68914	//     }
68915	//   },
68916	//   "path": "projects/{project}/global/addresses/{address}",
68917	//   "response": {
68918	//     "$ref": "Address"
68919	//   },
68920	//   "scopes": [
68921	//     "https://www.googleapis.com/auth/cloud-platform",
68922	//     "https://www.googleapis.com/auth/compute",
68923	//     "https://www.googleapis.com/auth/compute.readonly"
68924	//   ]
68925	// }
68926
68927}
68928
68929// method id "compute.globalAddresses.insert":
68930
68931type GlobalAddressesInsertCall struct {
68932	s          *Service
68933	project    string
68934	address    *Address
68935	urlParams_ gensupport.URLParams
68936	ctx_       context.Context
68937	header_    http.Header
68938}
68939
68940// Insert: Creates an address resource in the specified project by using
68941// the data included in the request.
68942//
68943// - project: Project ID for this request.
68944func (r *GlobalAddressesService) Insert(project string, address *Address) *GlobalAddressesInsertCall {
68945	c := &GlobalAddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68946	c.project = project
68947	c.address = address
68948	return c
68949}
68950
68951// RequestId sets the optional parameter "requestId": An optional
68952// request ID to identify requests. Specify a unique request ID so that
68953// if you must retry your request, the server will know to ignore the
68954// request if it has already been completed. For example, consider a
68955// situation where you make an initial request and the request times
68956// out. If you make the request again with the same request ID, the
68957// server can check if original operation with the same request ID was
68958// received, and if so, will ignore the second request. This prevents
68959// clients from accidentally creating duplicate commitments. The request
68960// ID must be a valid UUID with the exception that zero UUID is not
68961// supported ( 00000000-0000-0000-0000-000000000000).
68962func (c *GlobalAddressesInsertCall) RequestId(requestId string) *GlobalAddressesInsertCall {
68963	c.urlParams_.Set("requestId", requestId)
68964	return c
68965}
68966
68967// Fields allows partial responses to be retrieved. See
68968// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68969// for more information.
68970func (c *GlobalAddressesInsertCall) Fields(s ...googleapi.Field) *GlobalAddressesInsertCall {
68971	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68972	return c
68973}
68974
68975// Context sets the context to be used in this call's Do method. Any
68976// pending HTTP request will be aborted if the provided context is
68977// canceled.
68978func (c *GlobalAddressesInsertCall) Context(ctx context.Context) *GlobalAddressesInsertCall {
68979	c.ctx_ = ctx
68980	return c
68981}
68982
68983// Header returns an http.Header that can be modified by the caller to
68984// add HTTP headers to the request.
68985func (c *GlobalAddressesInsertCall) Header() http.Header {
68986	if c.header_ == nil {
68987		c.header_ = make(http.Header)
68988	}
68989	return c.header_
68990}
68991
68992func (c *GlobalAddressesInsertCall) doRequest(alt string) (*http.Response, error) {
68993	reqHeaders := make(http.Header)
68994	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
68995	for k, v := range c.header_ {
68996		reqHeaders[k] = v
68997	}
68998	reqHeaders.Set("User-Agent", c.s.userAgent())
68999	var body io.Reader = nil
69000	body, err := googleapi.WithoutDataWrapper.JSONReader(c.address)
69001	if err != nil {
69002		return nil, err
69003	}
69004	reqHeaders.Set("Content-Type", "application/json")
69005	c.urlParams_.Set("alt", alt)
69006	c.urlParams_.Set("prettyPrint", "false")
69007	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses")
69008	urls += "?" + c.urlParams_.Encode()
69009	req, err := http.NewRequest("POST", urls, body)
69010	if err != nil {
69011		return nil, err
69012	}
69013	req.Header = reqHeaders
69014	googleapi.Expand(req.URL, map[string]string{
69015		"project": c.project,
69016	})
69017	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69018}
69019
69020// Do executes the "compute.globalAddresses.insert" call.
69021// Exactly one of *Operation or error will be non-nil. Any non-2xx
69022// status code is an error. Response headers are in either
69023// *Operation.ServerResponse.Header or (if a response was returned at
69024// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69025// to check whether the returned error was because
69026// http.StatusNotModified was returned.
69027func (c *GlobalAddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69028	gensupport.SetOptions(c.urlParams_, opts...)
69029	res, err := c.doRequest("json")
69030	if res != nil && res.StatusCode == http.StatusNotModified {
69031		if res.Body != nil {
69032			res.Body.Close()
69033		}
69034		return nil, &googleapi.Error{
69035			Code:   res.StatusCode,
69036			Header: res.Header,
69037		}
69038	}
69039	if err != nil {
69040		return nil, err
69041	}
69042	defer googleapi.CloseBody(res)
69043	if err := googleapi.CheckResponse(res); err != nil {
69044		return nil, err
69045	}
69046	ret := &Operation{
69047		ServerResponse: googleapi.ServerResponse{
69048			Header:         res.Header,
69049			HTTPStatusCode: res.StatusCode,
69050		},
69051	}
69052	target := &ret
69053	if err := gensupport.DecodeResponse(target, res); err != nil {
69054		return nil, err
69055	}
69056	return ret, nil
69057	// {
69058	//   "description": "Creates an address resource in the specified project by using the data included in the request.",
69059	//   "flatPath": "projects/{project}/global/addresses",
69060	//   "httpMethod": "POST",
69061	//   "id": "compute.globalAddresses.insert",
69062	//   "parameterOrder": [
69063	//     "project"
69064	//   ],
69065	//   "parameters": {
69066	//     "project": {
69067	//       "description": "Project ID for this request.",
69068	//       "location": "path",
69069	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69070	//       "required": true,
69071	//       "type": "string"
69072	//     },
69073	//     "requestId": {
69074	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
69075	//       "location": "query",
69076	//       "type": "string"
69077	//     }
69078	//   },
69079	//   "path": "projects/{project}/global/addresses",
69080	//   "request": {
69081	//     "$ref": "Address"
69082	//   },
69083	//   "response": {
69084	//     "$ref": "Operation"
69085	//   },
69086	//   "scopes": [
69087	//     "https://www.googleapis.com/auth/cloud-platform",
69088	//     "https://www.googleapis.com/auth/compute"
69089	//   ]
69090	// }
69091
69092}
69093
69094// method id "compute.globalAddresses.list":
69095
69096type GlobalAddressesListCall struct {
69097	s            *Service
69098	project      string
69099	urlParams_   gensupport.URLParams
69100	ifNoneMatch_ string
69101	ctx_         context.Context
69102	header_      http.Header
69103}
69104
69105// List: Retrieves a list of global addresses.
69106//
69107// - project: Project ID for this request.
69108func (r *GlobalAddressesService) List(project string) *GlobalAddressesListCall {
69109	c := &GlobalAddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69110	c.project = project
69111	return c
69112}
69113
69114// Filter sets the optional parameter "filter": A filter expression that
69115// filters resources listed in the response. The expression must specify
69116// the field name, a comparison operator, and the value that you want to
69117// use for filtering. The value must be a string, a number, or a
69118// boolean. The comparison operator must be either `=`, `!=`, `>`, or
69119// `<`. For example, if you are filtering Compute Engine instances, you
69120// can exclude instances named `example-instance` by specifying `name !=
69121// example-instance`. You can also filter nested fields. For example,
69122// you could specify `scheduling.automaticRestart = false` to include
69123// instances only if they are not scheduled for automatic restarts. You
69124// can use filtering on nested fields to filter based on resource
69125// labels. To filter on multiple expressions, provide each separate
69126// expression within parentheses. For example: ```
69127// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
69128// ``` By default, each expression is an `AND` expression. However, you
69129// can include `AND` and `OR` expressions explicitly. For example: ```
69130// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
69131// AND (scheduling.automaticRestart = true) ```
69132func (c *GlobalAddressesListCall) Filter(filter string) *GlobalAddressesListCall {
69133	c.urlParams_.Set("filter", filter)
69134	return c
69135}
69136
69137// MaxResults sets the optional parameter "maxResults": The maximum
69138// number of results per page that should be returned. If the number of
69139// available results is larger than `maxResults`, Compute Engine returns
69140// a `nextPageToken` that can be used to get the next page of results in
69141// subsequent list requests. Acceptable values are `0` to `500`,
69142// inclusive. (Default: `500`)
69143func (c *GlobalAddressesListCall) MaxResults(maxResults int64) *GlobalAddressesListCall {
69144	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
69145	return c
69146}
69147
69148// OrderBy sets the optional parameter "orderBy": Sorts list results by
69149// a certain order. By default, results are returned in alphanumerical
69150// order based on the resource name. You can also sort results in
69151// descending order based on the creation timestamp using
69152// `orderBy="creationTimestamp desc". This sorts results based on the
69153// `creationTimestamp` field in reverse chronological order (newest
69154// result first). Use this to sort resources like operations so that the
69155// newest operation is returned first. Currently, only sorting by `name`
69156// or `creationTimestamp desc` is supported.
69157func (c *GlobalAddressesListCall) OrderBy(orderBy string) *GlobalAddressesListCall {
69158	c.urlParams_.Set("orderBy", orderBy)
69159	return c
69160}
69161
69162// PageToken sets the optional parameter "pageToken": Specifies a page
69163// token to use. Set `pageToken` to the `nextPageToken` returned by a
69164// previous list request to get the next page of results.
69165func (c *GlobalAddressesListCall) PageToken(pageToken string) *GlobalAddressesListCall {
69166	c.urlParams_.Set("pageToken", pageToken)
69167	return c
69168}
69169
69170// ReturnPartialSuccess sets the optional parameter
69171// "returnPartialSuccess": Opt-in for partial success behavior which
69172// provides partial results in case of failure. The default value is
69173// false.
69174func (c *GlobalAddressesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalAddressesListCall {
69175	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
69176	return c
69177}
69178
69179// Fields allows partial responses to be retrieved. See
69180// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69181// for more information.
69182func (c *GlobalAddressesListCall) Fields(s ...googleapi.Field) *GlobalAddressesListCall {
69183	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69184	return c
69185}
69186
69187// IfNoneMatch sets the optional parameter which makes the operation
69188// fail if the object's ETag matches the given value. This is useful for
69189// getting updates only after the object has changed since the last
69190// request. Use googleapi.IsNotModified to check whether the response
69191// error from Do is the result of In-None-Match.
69192func (c *GlobalAddressesListCall) IfNoneMatch(entityTag string) *GlobalAddressesListCall {
69193	c.ifNoneMatch_ = entityTag
69194	return c
69195}
69196
69197// Context sets the context to be used in this call's Do method. Any
69198// pending HTTP request will be aborted if the provided context is
69199// canceled.
69200func (c *GlobalAddressesListCall) Context(ctx context.Context) *GlobalAddressesListCall {
69201	c.ctx_ = ctx
69202	return c
69203}
69204
69205// Header returns an http.Header that can be modified by the caller to
69206// add HTTP headers to the request.
69207func (c *GlobalAddressesListCall) Header() http.Header {
69208	if c.header_ == nil {
69209		c.header_ = make(http.Header)
69210	}
69211	return c.header_
69212}
69213
69214func (c *GlobalAddressesListCall) doRequest(alt string) (*http.Response, error) {
69215	reqHeaders := make(http.Header)
69216	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
69217	for k, v := range c.header_ {
69218		reqHeaders[k] = v
69219	}
69220	reqHeaders.Set("User-Agent", c.s.userAgent())
69221	if c.ifNoneMatch_ != "" {
69222		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
69223	}
69224	var body io.Reader = nil
69225	c.urlParams_.Set("alt", alt)
69226	c.urlParams_.Set("prettyPrint", "false")
69227	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses")
69228	urls += "?" + c.urlParams_.Encode()
69229	req, err := http.NewRequest("GET", urls, body)
69230	if err != nil {
69231		return nil, err
69232	}
69233	req.Header = reqHeaders
69234	googleapi.Expand(req.URL, map[string]string{
69235		"project": c.project,
69236	})
69237	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69238}
69239
69240// Do executes the "compute.globalAddresses.list" call.
69241// Exactly one of *AddressList or error will be non-nil. Any non-2xx
69242// status code is an error. Response headers are in either
69243// *AddressList.ServerResponse.Header or (if a response was returned at
69244// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69245// to check whether the returned error was because
69246// http.StatusNotModified was returned.
69247func (c *GlobalAddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) {
69248	gensupport.SetOptions(c.urlParams_, opts...)
69249	res, err := c.doRequest("json")
69250	if res != nil && res.StatusCode == http.StatusNotModified {
69251		if res.Body != nil {
69252			res.Body.Close()
69253		}
69254		return nil, &googleapi.Error{
69255			Code:   res.StatusCode,
69256			Header: res.Header,
69257		}
69258	}
69259	if err != nil {
69260		return nil, err
69261	}
69262	defer googleapi.CloseBody(res)
69263	if err := googleapi.CheckResponse(res); err != nil {
69264		return nil, err
69265	}
69266	ret := &AddressList{
69267		ServerResponse: googleapi.ServerResponse{
69268			Header:         res.Header,
69269			HTTPStatusCode: res.StatusCode,
69270		},
69271	}
69272	target := &ret
69273	if err := gensupport.DecodeResponse(target, res); err != nil {
69274		return nil, err
69275	}
69276	return ret, nil
69277	// {
69278	//   "description": "Retrieves a list of global addresses.",
69279	//   "flatPath": "projects/{project}/global/addresses",
69280	//   "httpMethod": "GET",
69281	//   "id": "compute.globalAddresses.list",
69282	//   "parameterOrder": [
69283	//     "project"
69284	//   ],
69285	//   "parameters": {
69286	//     "filter": {
69287	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
69288	//       "location": "query",
69289	//       "type": "string"
69290	//     },
69291	//     "maxResults": {
69292	//       "default": "500",
69293	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
69294	//       "format": "uint32",
69295	//       "location": "query",
69296	//       "minimum": "0",
69297	//       "type": "integer"
69298	//     },
69299	//     "orderBy": {
69300	//       "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.",
69301	//       "location": "query",
69302	//       "type": "string"
69303	//     },
69304	//     "pageToken": {
69305	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
69306	//       "location": "query",
69307	//       "type": "string"
69308	//     },
69309	//     "project": {
69310	//       "description": "Project ID for this request.",
69311	//       "location": "path",
69312	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69313	//       "required": true,
69314	//       "type": "string"
69315	//     },
69316	//     "returnPartialSuccess": {
69317	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
69318	//       "location": "query",
69319	//       "type": "boolean"
69320	//     }
69321	//   },
69322	//   "path": "projects/{project}/global/addresses",
69323	//   "response": {
69324	//     "$ref": "AddressList"
69325	//   },
69326	//   "scopes": [
69327	//     "https://www.googleapis.com/auth/cloud-platform",
69328	//     "https://www.googleapis.com/auth/compute",
69329	//     "https://www.googleapis.com/auth/compute.readonly"
69330	//   ]
69331	// }
69332
69333}
69334
69335// Pages invokes f for each page of results.
69336// A non-nil error returned from f will halt the iteration.
69337// The provided context supersedes any context provided to the Context method.
69338func (c *GlobalAddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error {
69339	c.ctx_ = ctx
69340	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
69341	for {
69342		x, err := c.Do()
69343		if err != nil {
69344			return err
69345		}
69346		if err := f(x); err != nil {
69347			return err
69348		}
69349		if x.NextPageToken == "" {
69350			return nil
69351		}
69352		c.PageToken(x.NextPageToken)
69353	}
69354}
69355
69356// method id "compute.globalForwardingRules.delete":
69357
69358type GlobalForwardingRulesDeleteCall struct {
69359	s              *Service
69360	project        string
69361	forwardingRule string
69362	urlParams_     gensupport.URLParams
69363	ctx_           context.Context
69364	header_        http.Header
69365}
69366
69367// Delete: Deletes the specified GlobalForwardingRule resource.
69368//
69369// - forwardingRule: Name of the ForwardingRule resource to delete.
69370// - project: Project ID for this request.
69371func (r *GlobalForwardingRulesService) Delete(project string, forwardingRule string) *GlobalForwardingRulesDeleteCall {
69372	c := &GlobalForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69373	c.project = project
69374	c.forwardingRule = forwardingRule
69375	return c
69376}
69377
69378// RequestId sets the optional parameter "requestId": An optional
69379// request ID to identify requests. Specify a unique request ID so that
69380// if you must retry your request, the server will know to ignore the
69381// request if it has already been completed. For example, consider a
69382// situation where you make an initial request and the request times
69383// out. If you make the request again with the same request ID, the
69384// server can check if original operation with the same request ID was
69385// received, and if so, will ignore the second request. This prevents
69386// clients from accidentally creating duplicate commitments. The request
69387// ID must be a valid UUID with the exception that zero UUID is not
69388// supported ( 00000000-0000-0000-0000-000000000000).
69389func (c *GlobalForwardingRulesDeleteCall) RequestId(requestId string) *GlobalForwardingRulesDeleteCall {
69390	c.urlParams_.Set("requestId", requestId)
69391	return c
69392}
69393
69394// Fields allows partial responses to be retrieved. See
69395// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69396// for more information.
69397func (c *GlobalForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesDeleteCall {
69398	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69399	return c
69400}
69401
69402// Context sets the context to be used in this call's Do method. Any
69403// pending HTTP request will be aborted if the provided context is
69404// canceled.
69405func (c *GlobalForwardingRulesDeleteCall) Context(ctx context.Context) *GlobalForwardingRulesDeleteCall {
69406	c.ctx_ = ctx
69407	return c
69408}
69409
69410// Header returns an http.Header that can be modified by the caller to
69411// add HTTP headers to the request.
69412func (c *GlobalForwardingRulesDeleteCall) Header() http.Header {
69413	if c.header_ == nil {
69414		c.header_ = make(http.Header)
69415	}
69416	return c.header_
69417}
69418
69419func (c *GlobalForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) {
69420	reqHeaders := make(http.Header)
69421	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
69422	for k, v := range c.header_ {
69423		reqHeaders[k] = v
69424	}
69425	reqHeaders.Set("User-Agent", c.s.userAgent())
69426	var body io.Reader = nil
69427	c.urlParams_.Set("alt", alt)
69428	c.urlParams_.Set("prettyPrint", "false")
69429	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}")
69430	urls += "?" + c.urlParams_.Encode()
69431	req, err := http.NewRequest("DELETE", urls, body)
69432	if err != nil {
69433		return nil, err
69434	}
69435	req.Header = reqHeaders
69436	googleapi.Expand(req.URL, map[string]string{
69437		"project":        c.project,
69438		"forwardingRule": c.forwardingRule,
69439	})
69440	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69441}
69442
69443// Do executes the "compute.globalForwardingRules.delete" call.
69444// Exactly one of *Operation or error will be non-nil. Any non-2xx
69445// status code is an error. Response headers are in either
69446// *Operation.ServerResponse.Header or (if a response was returned at
69447// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69448// to check whether the returned error was because
69449// http.StatusNotModified was returned.
69450func (c *GlobalForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69451	gensupport.SetOptions(c.urlParams_, opts...)
69452	res, err := c.doRequest("json")
69453	if res != nil && res.StatusCode == http.StatusNotModified {
69454		if res.Body != nil {
69455			res.Body.Close()
69456		}
69457		return nil, &googleapi.Error{
69458			Code:   res.StatusCode,
69459			Header: res.Header,
69460		}
69461	}
69462	if err != nil {
69463		return nil, err
69464	}
69465	defer googleapi.CloseBody(res)
69466	if err := googleapi.CheckResponse(res); err != nil {
69467		return nil, err
69468	}
69469	ret := &Operation{
69470		ServerResponse: googleapi.ServerResponse{
69471			Header:         res.Header,
69472			HTTPStatusCode: res.StatusCode,
69473		},
69474	}
69475	target := &ret
69476	if err := gensupport.DecodeResponse(target, res); err != nil {
69477		return nil, err
69478	}
69479	return ret, nil
69480	// {
69481	//   "description": "Deletes the specified GlobalForwardingRule resource.",
69482	//   "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}",
69483	//   "httpMethod": "DELETE",
69484	//   "id": "compute.globalForwardingRules.delete",
69485	//   "parameterOrder": [
69486	//     "project",
69487	//     "forwardingRule"
69488	//   ],
69489	//   "parameters": {
69490	//     "forwardingRule": {
69491	//       "description": "Name of the ForwardingRule resource to delete.",
69492	//       "location": "path",
69493	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69494	//       "required": true,
69495	//       "type": "string"
69496	//     },
69497	//     "project": {
69498	//       "description": "Project ID for this request.",
69499	//       "location": "path",
69500	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69501	//       "required": true,
69502	//       "type": "string"
69503	//     },
69504	//     "requestId": {
69505	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
69506	//       "location": "query",
69507	//       "type": "string"
69508	//     }
69509	//   },
69510	//   "path": "projects/{project}/global/forwardingRules/{forwardingRule}",
69511	//   "response": {
69512	//     "$ref": "Operation"
69513	//   },
69514	//   "scopes": [
69515	//     "https://www.googleapis.com/auth/cloud-platform",
69516	//     "https://www.googleapis.com/auth/compute"
69517	//   ]
69518	// }
69519
69520}
69521
69522// method id "compute.globalForwardingRules.get":
69523
69524type GlobalForwardingRulesGetCall struct {
69525	s              *Service
69526	project        string
69527	forwardingRule string
69528	urlParams_     gensupport.URLParams
69529	ifNoneMatch_   string
69530	ctx_           context.Context
69531	header_        http.Header
69532}
69533
69534// Get: Returns the specified GlobalForwardingRule resource. Gets a list
69535// of available forwarding rules by making a list() request.
69536//
69537// - forwardingRule: Name of the ForwardingRule resource to return.
69538// - project: Project ID for this request.
69539func (r *GlobalForwardingRulesService) Get(project string, forwardingRule string) *GlobalForwardingRulesGetCall {
69540	c := &GlobalForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69541	c.project = project
69542	c.forwardingRule = forwardingRule
69543	return c
69544}
69545
69546// Fields allows partial responses to be retrieved. See
69547// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69548// for more information.
69549func (c *GlobalForwardingRulesGetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesGetCall {
69550	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69551	return c
69552}
69553
69554// IfNoneMatch sets the optional parameter which makes the operation
69555// fail if the object's ETag matches the given value. This is useful for
69556// getting updates only after the object has changed since the last
69557// request. Use googleapi.IsNotModified to check whether the response
69558// error from Do is the result of In-None-Match.
69559func (c *GlobalForwardingRulesGetCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesGetCall {
69560	c.ifNoneMatch_ = entityTag
69561	return c
69562}
69563
69564// Context sets the context to be used in this call's Do method. Any
69565// pending HTTP request will be aborted if the provided context is
69566// canceled.
69567func (c *GlobalForwardingRulesGetCall) Context(ctx context.Context) *GlobalForwardingRulesGetCall {
69568	c.ctx_ = ctx
69569	return c
69570}
69571
69572// Header returns an http.Header that can be modified by the caller to
69573// add HTTP headers to the request.
69574func (c *GlobalForwardingRulesGetCall) Header() http.Header {
69575	if c.header_ == nil {
69576		c.header_ = make(http.Header)
69577	}
69578	return c.header_
69579}
69580
69581func (c *GlobalForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) {
69582	reqHeaders := make(http.Header)
69583	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
69584	for k, v := range c.header_ {
69585		reqHeaders[k] = v
69586	}
69587	reqHeaders.Set("User-Agent", c.s.userAgent())
69588	if c.ifNoneMatch_ != "" {
69589		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
69590	}
69591	var body io.Reader = nil
69592	c.urlParams_.Set("alt", alt)
69593	c.urlParams_.Set("prettyPrint", "false")
69594	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}")
69595	urls += "?" + c.urlParams_.Encode()
69596	req, err := http.NewRequest("GET", urls, body)
69597	if err != nil {
69598		return nil, err
69599	}
69600	req.Header = reqHeaders
69601	googleapi.Expand(req.URL, map[string]string{
69602		"project":        c.project,
69603		"forwardingRule": c.forwardingRule,
69604	})
69605	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69606}
69607
69608// Do executes the "compute.globalForwardingRules.get" call.
69609// Exactly one of *ForwardingRule or error will be non-nil. Any non-2xx
69610// status code is an error. Response headers are in either
69611// *ForwardingRule.ServerResponse.Header or (if a response was returned
69612// at all) in error.(*googleapi.Error).Header. Use
69613// googleapi.IsNotModified to check whether the returned error was
69614// because http.StatusNotModified was returned.
69615func (c *GlobalForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) {
69616	gensupport.SetOptions(c.urlParams_, opts...)
69617	res, err := c.doRequest("json")
69618	if res != nil && res.StatusCode == http.StatusNotModified {
69619		if res.Body != nil {
69620			res.Body.Close()
69621		}
69622		return nil, &googleapi.Error{
69623			Code:   res.StatusCode,
69624			Header: res.Header,
69625		}
69626	}
69627	if err != nil {
69628		return nil, err
69629	}
69630	defer googleapi.CloseBody(res)
69631	if err := googleapi.CheckResponse(res); err != nil {
69632		return nil, err
69633	}
69634	ret := &ForwardingRule{
69635		ServerResponse: googleapi.ServerResponse{
69636			Header:         res.Header,
69637			HTTPStatusCode: res.StatusCode,
69638		},
69639	}
69640	target := &ret
69641	if err := gensupport.DecodeResponse(target, res); err != nil {
69642		return nil, err
69643	}
69644	return ret, nil
69645	// {
69646	//   "description": "Returns the specified GlobalForwardingRule resource. Gets a list of available forwarding rules by making a list() request.",
69647	//   "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}",
69648	//   "httpMethod": "GET",
69649	//   "id": "compute.globalForwardingRules.get",
69650	//   "parameterOrder": [
69651	//     "project",
69652	//     "forwardingRule"
69653	//   ],
69654	//   "parameters": {
69655	//     "forwardingRule": {
69656	//       "description": "Name of the ForwardingRule resource to return.",
69657	//       "location": "path",
69658	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69659	//       "required": true,
69660	//       "type": "string"
69661	//     },
69662	//     "project": {
69663	//       "description": "Project ID for this request.",
69664	//       "location": "path",
69665	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69666	//       "required": true,
69667	//       "type": "string"
69668	//     }
69669	//   },
69670	//   "path": "projects/{project}/global/forwardingRules/{forwardingRule}",
69671	//   "response": {
69672	//     "$ref": "ForwardingRule"
69673	//   },
69674	//   "scopes": [
69675	//     "https://www.googleapis.com/auth/cloud-platform",
69676	//     "https://www.googleapis.com/auth/compute",
69677	//     "https://www.googleapis.com/auth/compute.readonly"
69678	//   ]
69679	// }
69680
69681}
69682
69683// method id "compute.globalForwardingRules.insert":
69684
69685type GlobalForwardingRulesInsertCall struct {
69686	s              *Service
69687	project        string
69688	forwardingrule *ForwardingRule
69689	urlParams_     gensupport.URLParams
69690	ctx_           context.Context
69691	header_        http.Header
69692}
69693
69694// Insert: Creates a GlobalForwardingRule resource in the specified
69695// project using the data included in the request.
69696//
69697// - project: Project ID for this request.
69698func (r *GlobalForwardingRulesService) Insert(project string, forwardingrule *ForwardingRule) *GlobalForwardingRulesInsertCall {
69699	c := &GlobalForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69700	c.project = project
69701	c.forwardingrule = forwardingrule
69702	return c
69703}
69704
69705// RequestId sets the optional parameter "requestId": An optional
69706// request ID to identify requests. Specify a unique request ID so that
69707// if you must retry your request, the server will know to ignore the
69708// request if it has already been completed. For example, consider a
69709// situation where you make an initial request and the request times
69710// out. If you make the request again with the same request ID, the
69711// server can check if original operation with the same request ID was
69712// received, and if so, will ignore the second request. This prevents
69713// clients from accidentally creating duplicate commitments. The request
69714// ID must be a valid UUID with the exception that zero UUID is not
69715// supported ( 00000000-0000-0000-0000-000000000000).
69716func (c *GlobalForwardingRulesInsertCall) RequestId(requestId string) *GlobalForwardingRulesInsertCall {
69717	c.urlParams_.Set("requestId", requestId)
69718	return c
69719}
69720
69721// Fields allows partial responses to be retrieved. See
69722// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69723// for more information.
69724func (c *GlobalForwardingRulesInsertCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesInsertCall {
69725	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69726	return c
69727}
69728
69729// Context sets the context to be used in this call's Do method. Any
69730// pending HTTP request will be aborted if the provided context is
69731// canceled.
69732func (c *GlobalForwardingRulesInsertCall) Context(ctx context.Context) *GlobalForwardingRulesInsertCall {
69733	c.ctx_ = ctx
69734	return c
69735}
69736
69737// Header returns an http.Header that can be modified by the caller to
69738// add HTTP headers to the request.
69739func (c *GlobalForwardingRulesInsertCall) Header() http.Header {
69740	if c.header_ == nil {
69741		c.header_ = make(http.Header)
69742	}
69743	return c.header_
69744}
69745
69746func (c *GlobalForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) {
69747	reqHeaders := make(http.Header)
69748	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
69749	for k, v := range c.header_ {
69750		reqHeaders[k] = v
69751	}
69752	reqHeaders.Set("User-Agent", c.s.userAgent())
69753	var body io.Reader = nil
69754	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
69755	if err != nil {
69756		return nil, err
69757	}
69758	reqHeaders.Set("Content-Type", "application/json")
69759	c.urlParams_.Set("alt", alt)
69760	c.urlParams_.Set("prettyPrint", "false")
69761	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules")
69762	urls += "?" + c.urlParams_.Encode()
69763	req, err := http.NewRequest("POST", urls, body)
69764	if err != nil {
69765		return nil, err
69766	}
69767	req.Header = reqHeaders
69768	googleapi.Expand(req.URL, map[string]string{
69769		"project": c.project,
69770	})
69771	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69772}
69773
69774// Do executes the "compute.globalForwardingRules.insert" call.
69775// Exactly one of *Operation or error will be non-nil. Any non-2xx
69776// status code is an error. Response headers are in either
69777// *Operation.ServerResponse.Header or (if a response was returned at
69778// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69779// to check whether the returned error was because
69780// http.StatusNotModified was returned.
69781func (c *GlobalForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69782	gensupport.SetOptions(c.urlParams_, opts...)
69783	res, err := c.doRequest("json")
69784	if res != nil && res.StatusCode == http.StatusNotModified {
69785		if res.Body != nil {
69786			res.Body.Close()
69787		}
69788		return nil, &googleapi.Error{
69789			Code:   res.StatusCode,
69790			Header: res.Header,
69791		}
69792	}
69793	if err != nil {
69794		return nil, err
69795	}
69796	defer googleapi.CloseBody(res)
69797	if err := googleapi.CheckResponse(res); err != nil {
69798		return nil, err
69799	}
69800	ret := &Operation{
69801		ServerResponse: googleapi.ServerResponse{
69802			Header:         res.Header,
69803			HTTPStatusCode: res.StatusCode,
69804		},
69805	}
69806	target := &ret
69807	if err := gensupport.DecodeResponse(target, res); err != nil {
69808		return nil, err
69809	}
69810	return ret, nil
69811	// {
69812	//   "description": "Creates a GlobalForwardingRule resource in the specified project using the data included in the request.",
69813	//   "flatPath": "projects/{project}/global/forwardingRules",
69814	//   "httpMethod": "POST",
69815	//   "id": "compute.globalForwardingRules.insert",
69816	//   "parameterOrder": [
69817	//     "project"
69818	//   ],
69819	//   "parameters": {
69820	//     "project": {
69821	//       "description": "Project ID for this request.",
69822	//       "location": "path",
69823	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69824	//       "required": true,
69825	//       "type": "string"
69826	//     },
69827	//     "requestId": {
69828	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
69829	//       "location": "query",
69830	//       "type": "string"
69831	//     }
69832	//   },
69833	//   "path": "projects/{project}/global/forwardingRules",
69834	//   "request": {
69835	//     "$ref": "ForwardingRule"
69836	//   },
69837	//   "response": {
69838	//     "$ref": "Operation"
69839	//   },
69840	//   "scopes": [
69841	//     "https://www.googleapis.com/auth/cloud-platform",
69842	//     "https://www.googleapis.com/auth/compute"
69843	//   ]
69844	// }
69845
69846}
69847
69848// method id "compute.globalForwardingRules.list":
69849
69850type GlobalForwardingRulesListCall struct {
69851	s            *Service
69852	project      string
69853	urlParams_   gensupport.URLParams
69854	ifNoneMatch_ string
69855	ctx_         context.Context
69856	header_      http.Header
69857}
69858
69859// List: Retrieves a list of GlobalForwardingRule resources available to
69860// the specified project.
69861//
69862// - project: Project ID for this request.
69863func (r *GlobalForwardingRulesService) List(project string) *GlobalForwardingRulesListCall {
69864	c := &GlobalForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69865	c.project = project
69866	return c
69867}
69868
69869// Filter sets the optional parameter "filter": A filter expression that
69870// filters resources listed in the response. The expression must specify
69871// the field name, a comparison operator, and the value that you want to
69872// use for filtering. The value must be a string, a number, or a
69873// boolean. The comparison operator must be either `=`, `!=`, `>`, or
69874// `<`. For example, if you are filtering Compute Engine instances, you
69875// can exclude instances named `example-instance` by specifying `name !=
69876// example-instance`. You can also filter nested fields. For example,
69877// you could specify `scheduling.automaticRestart = false` to include
69878// instances only if they are not scheduled for automatic restarts. You
69879// can use filtering on nested fields to filter based on resource
69880// labels. To filter on multiple expressions, provide each separate
69881// expression within parentheses. For example: ```
69882// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
69883// ``` By default, each expression is an `AND` expression. However, you
69884// can include `AND` and `OR` expressions explicitly. For example: ```
69885// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
69886// AND (scheduling.automaticRestart = true) ```
69887func (c *GlobalForwardingRulesListCall) Filter(filter string) *GlobalForwardingRulesListCall {
69888	c.urlParams_.Set("filter", filter)
69889	return c
69890}
69891
69892// MaxResults sets the optional parameter "maxResults": The maximum
69893// number of results per page that should be returned. If the number of
69894// available results is larger than `maxResults`, Compute Engine returns
69895// a `nextPageToken` that can be used to get the next page of results in
69896// subsequent list requests. Acceptable values are `0` to `500`,
69897// inclusive. (Default: `500`)
69898func (c *GlobalForwardingRulesListCall) MaxResults(maxResults int64) *GlobalForwardingRulesListCall {
69899	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
69900	return c
69901}
69902
69903// OrderBy sets the optional parameter "orderBy": Sorts list results by
69904// a certain order. By default, results are returned in alphanumerical
69905// order based on the resource name. You can also sort results in
69906// descending order based on the creation timestamp using
69907// `orderBy="creationTimestamp desc". This sorts results based on the
69908// `creationTimestamp` field in reverse chronological order (newest
69909// result first). Use this to sort resources like operations so that the
69910// newest operation is returned first. Currently, only sorting by `name`
69911// or `creationTimestamp desc` is supported.
69912func (c *GlobalForwardingRulesListCall) OrderBy(orderBy string) *GlobalForwardingRulesListCall {
69913	c.urlParams_.Set("orderBy", orderBy)
69914	return c
69915}
69916
69917// PageToken sets the optional parameter "pageToken": Specifies a page
69918// token to use. Set `pageToken` to the `nextPageToken` returned by a
69919// previous list request to get the next page of results.
69920func (c *GlobalForwardingRulesListCall) PageToken(pageToken string) *GlobalForwardingRulesListCall {
69921	c.urlParams_.Set("pageToken", pageToken)
69922	return c
69923}
69924
69925// ReturnPartialSuccess sets the optional parameter
69926// "returnPartialSuccess": Opt-in for partial success behavior which
69927// provides partial results in case of failure. The default value is
69928// false.
69929func (c *GlobalForwardingRulesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalForwardingRulesListCall {
69930	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
69931	return c
69932}
69933
69934// Fields allows partial responses to be retrieved. See
69935// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69936// for more information.
69937func (c *GlobalForwardingRulesListCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesListCall {
69938	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69939	return c
69940}
69941
69942// IfNoneMatch sets the optional parameter which makes the operation
69943// fail if the object's ETag matches the given value. This is useful for
69944// getting updates only after the object has changed since the last
69945// request. Use googleapi.IsNotModified to check whether the response
69946// error from Do is the result of In-None-Match.
69947func (c *GlobalForwardingRulesListCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesListCall {
69948	c.ifNoneMatch_ = entityTag
69949	return c
69950}
69951
69952// Context sets the context to be used in this call's Do method. Any
69953// pending HTTP request will be aborted if the provided context is
69954// canceled.
69955func (c *GlobalForwardingRulesListCall) Context(ctx context.Context) *GlobalForwardingRulesListCall {
69956	c.ctx_ = ctx
69957	return c
69958}
69959
69960// Header returns an http.Header that can be modified by the caller to
69961// add HTTP headers to the request.
69962func (c *GlobalForwardingRulesListCall) Header() http.Header {
69963	if c.header_ == nil {
69964		c.header_ = make(http.Header)
69965	}
69966	return c.header_
69967}
69968
69969func (c *GlobalForwardingRulesListCall) doRequest(alt string) (*http.Response, error) {
69970	reqHeaders := make(http.Header)
69971	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
69972	for k, v := range c.header_ {
69973		reqHeaders[k] = v
69974	}
69975	reqHeaders.Set("User-Agent", c.s.userAgent())
69976	if c.ifNoneMatch_ != "" {
69977		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
69978	}
69979	var body io.Reader = nil
69980	c.urlParams_.Set("alt", alt)
69981	c.urlParams_.Set("prettyPrint", "false")
69982	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules")
69983	urls += "?" + c.urlParams_.Encode()
69984	req, err := http.NewRequest("GET", urls, body)
69985	if err != nil {
69986		return nil, err
69987	}
69988	req.Header = reqHeaders
69989	googleapi.Expand(req.URL, map[string]string{
69990		"project": c.project,
69991	})
69992	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69993}
69994
69995// Do executes the "compute.globalForwardingRules.list" call.
69996// Exactly one of *ForwardingRuleList or error will be non-nil. Any
69997// non-2xx status code is an error. Response headers are in either
69998// *ForwardingRuleList.ServerResponse.Header or (if a response was
69999// returned at all) in error.(*googleapi.Error).Header. Use
70000// googleapi.IsNotModified to check whether the returned error was
70001// because http.StatusNotModified was returned.
70002func (c *GlobalForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) {
70003	gensupport.SetOptions(c.urlParams_, opts...)
70004	res, err := c.doRequest("json")
70005	if res != nil && res.StatusCode == http.StatusNotModified {
70006		if res.Body != nil {
70007			res.Body.Close()
70008		}
70009		return nil, &googleapi.Error{
70010			Code:   res.StatusCode,
70011			Header: res.Header,
70012		}
70013	}
70014	if err != nil {
70015		return nil, err
70016	}
70017	defer googleapi.CloseBody(res)
70018	if err := googleapi.CheckResponse(res); err != nil {
70019		return nil, err
70020	}
70021	ret := &ForwardingRuleList{
70022		ServerResponse: googleapi.ServerResponse{
70023			Header:         res.Header,
70024			HTTPStatusCode: res.StatusCode,
70025		},
70026	}
70027	target := &ret
70028	if err := gensupport.DecodeResponse(target, res); err != nil {
70029		return nil, err
70030	}
70031	return ret, nil
70032	// {
70033	//   "description": "Retrieves a list of GlobalForwardingRule resources available to the specified project.",
70034	//   "flatPath": "projects/{project}/global/forwardingRules",
70035	//   "httpMethod": "GET",
70036	//   "id": "compute.globalForwardingRules.list",
70037	//   "parameterOrder": [
70038	//     "project"
70039	//   ],
70040	//   "parameters": {
70041	//     "filter": {
70042	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
70043	//       "location": "query",
70044	//       "type": "string"
70045	//     },
70046	//     "maxResults": {
70047	//       "default": "500",
70048	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
70049	//       "format": "uint32",
70050	//       "location": "query",
70051	//       "minimum": "0",
70052	//       "type": "integer"
70053	//     },
70054	//     "orderBy": {
70055	//       "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.",
70056	//       "location": "query",
70057	//       "type": "string"
70058	//     },
70059	//     "pageToken": {
70060	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
70061	//       "location": "query",
70062	//       "type": "string"
70063	//     },
70064	//     "project": {
70065	//       "description": "Project ID for this request.",
70066	//       "location": "path",
70067	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70068	//       "required": true,
70069	//       "type": "string"
70070	//     },
70071	//     "returnPartialSuccess": {
70072	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
70073	//       "location": "query",
70074	//       "type": "boolean"
70075	//     }
70076	//   },
70077	//   "path": "projects/{project}/global/forwardingRules",
70078	//   "response": {
70079	//     "$ref": "ForwardingRuleList"
70080	//   },
70081	//   "scopes": [
70082	//     "https://www.googleapis.com/auth/cloud-platform",
70083	//     "https://www.googleapis.com/auth/compute",
70084	//     "https://www.googleapis.com/auth/compute.readonly"
70085	//   ]
70086	// }
70087
70088}
70089
70090// Pages invokes f for each page of results.
70091// A non-nil error returned from f will halt the iteration.
70092// The provided context supersedes any context provided to the Context method.
70093func (c *GlobalForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error {
70094	c.ctx_ = ctx
70095	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
70096	for {
70097		x, err := c.Do()
70098		if err != nil {
70099			return err
70100		}
70101		if err := f(x); err != nil {
70102			return err
70103		}
70104		if x.NextPageToken == "" {
70105			return nil
70106		}
70107		c.PageToken(x.NextPageToken)
70108	}
70109}
70110
70111// method id "compute.globalForwardingRules.patch":
70112
70113type GlobalForwardingRulesPatchCall struct {
70114	s              *Service
70115	project        string
70116	forwardingRule string
70117	forwardingrule *ForwardingRule
70118	urlParams_     gensupport.URLParams
70119	ctx_           context.Context
70120	header_        http.Header
70121}
70122
70123// Patch: Updates the specified forwarding rule with the data included
70124// in the request. This method supports PATCH semantics and uses the
70125// JSON merge patch format and processing rules. Currently, you can only
70126// patch the network_tier field.
70127//
70128// - forwardingRule: Name of the ForwardingRule resource to patch.
70129// - project: Project ID for this request.
70130func (r *GlobalForwardingRulesService) Patch(project string, forwardingRule string, forwardingrule *ForwardingRule) *GlobalForwardingRulesPatchCall {
70131	c := &GlobalForwardingRulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70132	c.project = project
70133	c.forwardingRule = forwardingRule
70134	c.forwardingrule = forwardingrule
70135	return c
70136}
70137
70138// RequestId sets the optional parameter "requestId": An optional
70139// request ID to identify requests. Specify a unique request ID so that
70140// if you must retry your request, the server will know to ignore the
70141// request if it has already been completed. For example, consider a
70142// situation where you make an initial request and the request times
70143// out. If you make the request again with the same request ID, the
70144// server can check if original operation with the same request ID was
70145// received, and if so, will ignore the second request. This prevents
70146// clients from accidentally creating duplicate commitments. The request
70147// ID must be a valid UUID with the exception that zero UUID is not
70148// supported ( 00000000-0000-0000-0000-000000000000).
70149func (c *GlobalForwardingRulesPatchCall) RequestId(requestId string) *GlobalForwardingRulesPatchCall {
70150	c.urlParams_.Set("requestId", requestId)
70151	return c
70152}
70153
70154// Fields allows partial responses to be retrieved. See
70155// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70156// for more information.
70157func (c *GlobalForwardingRulesPatchCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesPatchCall {
70158	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70159	return c
70160}
70161
70162// Context sets the context to be used in this call's Do method. Any
70163// pending HTTP request will be aborted if the provided context is
70164// canceled.
70165func (c *GlobalForwardingRulesPatchCall) Context(ctx context.Context) *GlobalForwardingRulesPatchCall {
70166	c.ctx_ = ctx
70167	return c
70168}
70169
70170// Header returns an http.Header that can be modified by the caller to
70171// add HTTP headers to the request.
70172func (c *GlobalForwardingRulesPatchCall) Header() http.Header {
70173	if c.header_ == nil {
70174		c.header_ = make(http.Header)
70175	}
70176	return c.header_
70177}
70178
70179func (c *GlobalForwardingRulesPatchCall) doRequest(alt string) (*http.Response, error) {
70180	reqHeaders := make(http.Header)
70181	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
70182	for k, v := range c.header_ {
70183		reqHeaders[k] = v
70184	}
70185	reqHeaders.Set("User-Agent", c.s.userAgent())
70186	var body io.Reader = nil
70187	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
70188	if err != nil {
70189		return nil, err
70190	}
70191	reqHeaders.Set("Content-Type", "application/json")
70192	c.urlParams_.Set("alt", alt)
70193	c.urlParams_.Set("prettyPrint", "false")
70194	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}")
70195	urls += "?" + c.urlParams_.Encode()
70196	req, err := http.NewRequest("PATCH", urls, body)
70197	if err != nil {
70198		return nil, err
70199	}
70200	req.Header = reqHeaders
70201	googleapi.Expand(req.URL, map[string]string{
70202		"project":        c.project,
70203		"forwardingRule": c.forwardingRule,
70204	})
70205	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70206}
70207
70208// Do executes the "compute.globalForwardingRules.patch" call.
70209// Exactly one of *Operation or error will be non-nil. Any non-2xx
70210// status code is an error. Response headers are in either
70211// *Operation.ServerResponse.Header or (if a response was returned at
70212// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70213// to check whether the returned error was because
70214// http.StatusNotModified was returned.
70215func (c *GlobalForwardingRulesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70216	gensupport.SetOptions(c.urlParams_, opts...)
70217	res, err := c.doRequest("json")
70218	if res != nil && res.StatusCode == http.StatusNotModified {
70219		if res.Body != nil {
70220			res.Body.Close()
70221		}
70222		return nil, &googleapi.Error{
70223			Code:   res.StatusCode,
70224			Header: res.Header,
70225		}
70226	}
70227	if err != nil {
70228		return nil, err
70229	}
70230	defer googleapi.CloseBody(res)
70231	if err := googleapi.CheckResponse(res); err != nil {
70232		return nil, err
70233	}
70234	ret := &Operation{
70235		ServerResponse: googleapi.ServerResponse{
70236			Header:         res.Header,
70237			HTTPStatusCode: res.StatusCode,
70238		},
70239	}
70240	target := &ret
70241	if err := gensupport.DecodeResponse(target, res); err != nil {
70242		return nil, err
70243	}
70244	return ret, nil
70245	// {
70246	//   "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.",
70247	//   "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}",
70248	//   "httpMethod": "PATCH",
70249	//   "id": "compute.globalForwardingRules.patch",
70250	//   "parameterOrder": [
70251	//     "project",
70252	//     "forwardingRule"
70253	//   ],
70254	//   "parameters": {
70255	//     "forwardingRule": {
70256	//       "description": "Name of the ForwardingRule resource to patch.",
70257	//       "location": "path",
70258	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70259	//       "required": true,
70260	//       "type": "string"
70261	//     },
70262	//     "project": {
70263	//       "description": "Project ID for this request.",
70264	//       "location": "path",
70265	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70266	//       "required": true,
70267	//       "type": "string"
70268	//     },
70269	//     "requestId": {
70270	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
70271	//       "location": "query",
70272	//       "type": "string"
70273	//     }
70274	//   },
70275	//   "path": "projects/{project}/global/forwardingRules/{forwardingRule}",
70276	//   "request": {
70277	//     "$ref": "ForwardingRule"
70278	//   },
70279	//   "response": {
70280	//     "$ref": "Operation"
70281	//   },
70282	//   "scopes": [
70283	//     "https://www.googleapis.com/auth/cloud-platform",
70284	//     "https://www.googleapis.com/auth/compute"
70285	//   ]
70286	// }
70287
70288}
70289
70290// method id "compute.globalForwardingRules.setLabels":
70291
70292type GlobalForwardingRulesSetLabelsCall struct {
70293	s                      *Service
70294	project                string
70295	resource               string
70296	globalsetlabelsrequest *GlobalSetLabelsRequest
70297	urlParams_             gensupport.URLParams
70298	ctx_                   context.Context
70299	header_                http.Header
70300}
70301
70302// SetLabels: Sets the labels on the specified resource. To learn more
70303// about labels, read the Labeling resources documentation.
70304//
70305// - project: Project ID for this request.
70306// - resource: Name or id of the resource for this request.
70307func (r *GlobalForwardingRulesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *GlobalForwardingRulesSetLabelsCall {
70308	c := &GlobalForwardingRulesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70309	c.project = project
70310	c.resource = resource
70311	c.globalsetlabelsrequest = globalsetlabelsrequest
70312	return c
70313}
70314
70315// Fields allows partial responses to be retrieved. See
70316// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70317// for more information.
70318func (c *GlobalForwardingRulesSetLabelsCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesSetLabelsCall {
70319	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70320	return c
70321}
70322
70323// Context sets the context to be used in this call's Do method. Any
70324// pending HTTP request will be aborted if the provided context is
70325// canceled.
70326func (c *GlobalForwardingRulesSetLabelsCall) Context(ctx context.Context) *GlobalForwardingRulesSetLabelsCall {
70327	c.ctx_ = ctx
70328	return c
70329}
70330
70331// Header returns an http.Header that can be modified by the caller to
70332// add HTTP headers to the request.
70333func (c *GlobalForwardingRulesSetLabelsCall) Header() http.Header {
70334	if c.header_ == nil {
70335		c.header_ = make(http.Header)
70336	}
70337	return c.header_
70338}
70339
70340func (c *GlobalForwardingRulesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
70341	reqHeaders := make(http.Header)
70342	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
70343	for k, v := range c.header_ {
70344		reqHeaders[k] = v
70345	}
70346	reqHeaders.Set("User-Agent", c.s.userAgent())
70347	var body io.Reader = nil
70348	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
70349	if err != nil {
70350		return nil, err
70351	}
70352	reqHeaders.Set("Content-Type", "application/json")
70353	c.urlParams_.Set("alt", alt)
70354	c.urlParams_.Set("prettyPrint", "false")
70355	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{resource}/setLabels")
70356	urls += "?" + c.urlParams_.Encode()
70357	req, err := http.NewRequest("POST", urls, body)
70358	if err != nil {
70359		return nil, err
70360	}
70361	req.Header = reqHeaders
70362	googleapi.Expand(req.URL, map[string]string{
70363		"project":  c.project,
70364		"resource": c.resource,
70365	})
70366	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70367}
70368
70369// Do executes the "compute.globalForwardingRules.setLabels" call.
70370// Exactly one of *Operation or error will be non-nil. Any non-2xx
70371// status code is an error. Response headers are in either
70372// *Operation.ServerResponse.Header or (if a response was returned at
70373// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70374// to check whether the returned error was because
70375// http.StatusNotModified was returned.
70376func (c *GlobalForwardingRulesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70377	gensupport.SetOptions(c.urlParams_, opts...)
70378	res, err := c.doRequest("json")
70379	if res != nil && res.StatusCode == http.StatusNotModified {
70380		if res.Body != nil {
70381			res.Body.Close()
70382		}
70383		return nil, &googleapi.Error{
70384			Code:   res.StatusCode,
70385			Header: res.Header,
70386		}
70387	}
70388	if err != nil {
70389		return nil, err
70390	}
70391	defer googleapi.CloseBody(res)
70392	if err := googleapi.CheckResponse(res); err != nil {
70393		return nil, err
70394	}
70395	ret := &Operation{
70396		ServerResponse: googleapi.ServerResponse{
70397			Header:         res.Header,
70398			HTTPStatusCode: res.StatusCode,
70399		},
70400	}
70401	target := &ret
70402	if err := gensupport.DecodeResponse(target, res); err != nil {
70403		return nil, err
70404	}
70405	return ret, nil
70406	// {
70407	//   "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling resources documentation.",
70408	//   "flatPath": "projects/{project}/global/forwardingRules/{resource}/setLabels",
70409	//   "httpMethod": "POST",
70410	//   "id": "compute.globalForwardingRules.setLabels",
70411	//   "parameterOrder": [
70412	//     "project",
70413	//     "resource"
70414	//   ],
70415	//   "parameters": {
70416	//     "project": {
70417	//       "description": "Project ID for this request.",
70418	//       "location": "path",
70419	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70420	//       "required": true,
70421	//       "type": "string"
70422	//     },
70423	//     "resource": {
70424	//       "description": "Name or id of the resource for this request.",
70425	//       "location": "path",
70426	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70427	//       "required": true,
70428	//       "type": "string"
70429	//     }
70430	//   },
70431	//   "path": "projects/{project}/global/forwardingRules/{resource}/setLabels",
70432	//   "request": {
70433	//     "$ref": "GlobalSetLabelsRequest"
70434	//   },
70435	//   "response": {
70436	//     "$ref": "Operation"
70437	//   },
70438	//   "scopes": [
70439	//     "https://www.googleapis.com/auth/cloud-platform",
70440	//     "https://www.googleapis.com/auth/compute"
70441	//   ]
70442	// }
70443
70444}
70445
70446// method id "compute.globalForwardingRules.setTarget":
70447
70448type GlobalForwardingRulesSetTargetCall struct {
70449	s               *Service
70450	project         string
70451	forwardingRule  string
70452	targetreference *TargetReference
70453	urlParams_      gensupport.URLParams
70454	ctx_            context.Context
70455	header_         http.Header
70456}
70457
70458// SetTarget: Changes target URL for the GlobalForwardingRule resource.
70459// The new target should be of the same type as the old target.
70460//
70461// - forwardingRule: Name of the ForwardingRule resource in which target
70462//   is to be set.
70463// - project: Project ID for this request.
70464func (r *GlobalForwardingRulesService) SetTarget(project string, forwardingRule string, targetreference *TargetReference) *GlobalForwardingRulesSetTargetCall {
70465	c := &GlobalForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70466	c.project = project
70467	c.forwardingRule = forwardingRule
70468	c.targetreference = targetreference
70469	return c
70470}
70471
70472// RequestId sets the optional parameter "requestId": An optional
70473// request ID to identify requests. Specify a unique request ID so that
70474// if you must retry your request, the server will know to ignore the
70475// request if it has already been completed. For example, consider a
70476// situation where you make an initial request and the request times
70477// out. If you make the request again with the same request ID, the
70478// server can check if original operation with the same request ID was
70479// received, and if so, will ignore the second request. This prevents
70480// clients from accidentally creating duplicate commitments. The request
70481// ID must be a valid UUID with the exception that zero UUID is not
70482// supported ( 00000000-0000-0000-0000-000000000000).
70483func (c *GlobalForwardingRulesSetTargetCall) RequestId(requestId string) *GlobalForwardingRulesSetTargetCall {
70484	c.urlParams_.Set("requestId", requestId)
70485	return c
70486}
70487
70488// Fields allows partial responses to be retrieved. See
70489// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70490// for more information.
70491func (c *GlobalForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesSetTargetCall {
70492	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70493	return c
70494}
70495
70496// Context sets the context to be used in this call's Do method. Any
70497// pending HTTP request will be aborted if the provided context is
70498// canceled.
70499func (c *GlobalForwardingRulesSetTargetCall) Context(ctx context.Context) *GlobalForwardingRulesSetTargetCall {
70500	c.ctx_ = ctx
70501	return c
70502}
70503
70504// Header returns an http.Header that can be modified by the caller to
70505// add HTTP headers to the request.
70506func (c *GlobalForwardingRulesSetTargetCall) Header() http.Header {
70507	if c.header_ == nil {
70508		c.header_ = make(http.Header)
70509	}
70510	return c.header_
70511}
70512
70513func (c *GlobalForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) {
70514	reqHeaders := make(http.Header)
70515	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
70516	for k, v := range c.header_ {
70517		reqHeaders[k] = v
70518	}
70519	reqHeaders.Set("User-Agent", c.s.userAgent())
70520	var body io.Reader = nil
70521	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
70522	if err != nil {
70523		return nil, err
70524	}
70525	reqHeaders.Set("Content-Type", "application/json")
70526	c.urlParams_.Set("alt", alt)
70527	c.urlParams_.Set("prettyPrint", "false")
70528	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}/setTarget")
70529	urls += "?" + c.urlParams_.Encode()
70530	req, err := http.NewRequest("POST", urls, body)
70531	if err != nil {
70532		return nil, err
70533	}
70534	req.Header = reqHeaders
70535	googleapi.Expand(req.URL, map[string]string{
70536		"project":        c.project,
70537		"forwardingRule": c.forwardingRule,
70538	})
70539	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70540}
70541
70542// Do executes the "compute.globalForwardingRules.setTarget" call.
70543// Exactly one of *Operation or error will be non-nil. Any non-2xx
70544// status code is an error. Response headers are in either
70545// *Operation.ServerResponse.Header or (if a response was returned at
70546// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70547// to check whether the returned error was because
70548// http.StatusNotModified was returned.
70549func (c *GlobalForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70550	gensupport.SetOptions(c.urlParams_, opts...)
70551	res, err := c.doRequest("json")
70552	if res != nil && res.StatusCode == http.StatusNotModified {
70553		if res.Body != nil {
70554			res.Body.Close()
70555		}
70556		return nil, &googleapi.Error{
70557			Code:   res.StatusCode,
70558			Header: res.Header,
70559		}
70560	}
70561	if err != nil {
70562		return nil, err
70563	}
70564	defer googleapi.CloseBody(res)
70565	if err := googleapi.CheckResponse(res); err != nil {
70566		return nil, err
70567	}
70568	ret := &Operation{
70569		ServerResponse: googleapi.ServerResponse{
70570			Header:         res.Header,
70571			HTTPStatusCode: res.StatusCode,
70572		},
70573	}
70574	target := &ret
70575	if err := gensupport.DecodeResponse(target, res); err != nil {
70576		return nil, err
70577	}
70578	return ret, nil
70579	// {
70580	//   "description": "Changes target URL for the GlobalForwardingRule resource. The new target should be of the same type as the old target.",
70581	//   "flatPath": "projects/{project}/global/forwardingRules/{forwardingRule}/setTarget",
70582	//   "httpMethod": "POST",
70583	//   "id": "compute.globalForwardingRules.setTarget",
70584	//   "parameterOrder": [
70585	//     "project",
70586	//     "forwardingRule"
70587	//   ],
70588	//   "parameters": {
70589	//     "forwardingRule": {
70590	//       "description": "Name of the ForwardingRule resource in which target is to be set.",
70591	//       "location": "path",
70592	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70593	//       "required": true,
70594	//       "type": "string"
70595	//     },
70596	//     "project": {
70597	//       "description": "Project ID for this request.",
70598	//       "location": "path",
70599	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70600	//       "required": true,
70601	//       "type": "string"
70602	//     },
70603	//     "requestId": {
70604	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
70605	//       "location": "query",
70606	//       "type": "string"
70607	//     }
70608	//   },
70609	//   "path": "projects/{project}/global/forwardingRules/{forwardingRule}/setTarget",
70610	//   "request": {
70611	//     "$ref": "TargetReference"
70612	//   },
70613	//   "response": {
70614	//     "$ref": "Operation"
70615	//   },
70616	//   "scopes": [
70617	//     "https://www.googleapis.com/auth/cloud-platform",
70618	//     "https://www.googleapis.com/auth/compute"
70619	//   ]
70620	// }
70621
70622}
70623
70624// method id "compute.globalNetworkEndpointGroups.attachNetworkEndpoints":
70625
70626type GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall struct {
70627	s                                                 *Service
70628	project                                           string
70629	networkEndpointGroup                              string
70630	globalnetworkendpointgroupsattachendpointsrequest *GlobalNetworkEndpointGroupsAttachEndpointsRequest
70631	urlParams_                                        gensupport.URLParams
70632	ctx_                                              context.Context
70633	header_                                           http.Header
70634}
70635
70636// AttachNetworkEndpoints: Attach a network endpoint to the specified
70637// network endpoint group.
70638//
70639// - networkEndpointGroup: The name of the network endpoint group where
70640//   you are attaching network endpoints to. It should comply with
70641//   RFC1035.
70642// - project: Project ID for this request.
70643func (r *GlobalNetworkEndpointGroupsService) AttachNetworkEndpoints(project string, networkEndpointGroup string, globalnetworkendpointgroupsattachendpointsrequest *GlobalNetworkEndpointGroupsAttachEndpointsRequest) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
70644	c := &GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70645	c.project = project
70646	c.networkEndpointGroup = networkEndpointGroup
70647	c.globalnetworkendpointgroupsattachendpointsrequest = globalnetworkendpointgroupsattachendpointsrequest
70648	return c
70649}
70650
70651// RequestId sets the optional parameter "requestId": An optional
70652// request ID to identify requests. Specify a unique request ID so that
70653// if you must retry your request, the server will know to ignore the
70654// request if it has already been completed. For example, consider a
70655// situation where you make an initial request and the request times
70656// out. If you make the request again with the same request ID, the
70657// server can check if original operation with the same request ID was
70658// received, and if so, will ignore the second request. This prevents
70659// clients from accidentally creating duplicate commitments. The request
70660// ID must be a valid UUID with the exception that zero UUID is not
70661// supported ( 00000000-0000-0000-0000-000000000000).
70662func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
70663	c.urlParams_.Set("requestId", requestId)
70664	return c
70665}
70666
70667// Fields allows partial responses to be retrieved. See
70668// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70669// for more information.
70670func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
70671	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70672	return c
70673}
70674
70675// Context sets the context to be used in this call's Do method. Any
70676// pending HTTP request will be aborted if the provided context is
70677// canceled.
70678func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
70679	c.ctx_ = ctx
70680	return c
70681}
70682
70683// Header returns an http.Header that can be modified by the caller to
70684// add HTTP headers to the request.
70685func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Header() http.Header {
70686	if c.header_ == nil {
70687		c.header_ = make(http.Header)
70688	}
70689	return c.header_
70690}
70691
70692func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
70693	reqHeaders := make(http.Header)
70694	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
70695	for k, v := range c.header_ {
70696		reqHeaders[k] = v
70697	}
70698	reqHeaders.Set("User-Agent", c.s.userAgent())
70699	var body io.Reader = nil
70700	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalnetworkendpointgroupsattachendpointsrequest)
70701	if err != nil {
70702		return nil, err
70703	}
70704	reqHeaders.Set("Content-Type", "application/json")
70705	c.urlParams_.Set("alt", alt)
70706	c.urlParams_.Set("prettyPrint", "false")
70707	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints")
70708	urls += "?" + c.urlParams_.Encode()
70709	req, err := http.NewRequest("POST", urls, body)
70710	if err != nil {
70711		return nil, err
70712	}
70713	req.Header = reqHeaders
70714	googleapi.Expand(req.URL, map[string]string{
70715		"project":              c.project,
70716		"networkEndpointGroup": c.networkEndpointGroup,
70717	})
70718	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70719}
70720
70721// Do executes the "compute.globalNetworkEndpointGroups.attachNetworkEndpoints" call.
70722// Exactly one of *Operation or error will be non-nil. Any non-2xx
70723// status code is an error. Response headers are in either
70724// *Operation.ServerResponse.Header or (if a response was returned at
70725// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70726// to check whether the returned error was because
70727// http.StatusNotModified was returned.
70728func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70729	gensupport.SetOptions(c.urlParams_, opts...)
70730	res, err := c.doRequest("json")
70731	if res != nil && res.StatusCode == http.StatusNotModified {
70732		if res.Body != nil {
70733			res.Body.Close()
70734		}
70735		return nil, &googleapi.Error{
70736			Code:   res.StatusCode,
70737			Header: res.Header,
70738		}
70739	}
70740	if err != nil {
70741		return nil, err
70742	}
70743	defer googleapi.CloseBody(res)
70744	if err := googleapi.CheckResponse(res); err != nil {
70745		return nil, err
70746	}
70747	ret := &Operation{
70748		ServerResponse: googleapi.ServerResponse{
70749			Header:         res.Header,
70750			HTTPStatusCode: res.StatusCode,
70751		},
70752	}
70753	target := &ret
70754	if err := gensupport.DecodeResponse(target, res); err != nil {
70755		return nil, err
70756	}
70757	return ret, nil
70758	// {
70759	//   "description": "Attach a network endpoint to the specified network endpoint group.",
70760	//   "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
70761	//   "httpMethod": "POST",
70762	//   "id": "compute.globalNetworkEndpointGroups.attachNetworkEndpoints",
70763	//   "parameterOrder": [
70764	//     "project",
70765	//     "networkEndpointGroup"
70766	//   ],
70767	//   "parameters": {
70768	//     "networkEndpointGroup": {
70769	//       "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.",
70770	//       "location": "path",
70771	//       "required": true,
70772	//       "type": "string"
70773	//     },
70774	//     "project": {
70775	//       "description": "Project ID for this request.",
70776	//       "location": "path",
70777	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70778	//       "required": true,
70779	//       "type": "string"
70780	//     },
70781	//     "requestId": {
70782	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
70783	//       "location": "query",
70784	//       "type": "string"
70785	//     }
70786	//   },
70787	//   "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
70788	//   "request": {
70789	//     "$ref": "GlobalNetworkEndpointGroupsAttachEndpointsRequest"
70790	//   },
70791	//   "response": {
70792	//     "$ref": "Operation"
70793	//   },
70794	//   "scopes": [
70795	//     "https://www.googleapis.com/auth/cloud-platform",
70796	//     "https://www.googleapis.com/auth/compute"
70797	//   ]
70798	// }
70799
70800}
70801
70802// method id "compute.globalNetworkEndpointGroups.delete":
70803
70804type GlobalNetworkEndpointGroupsDeleteCall struct {
70805	s                    *Service
70806	project              string
70807	networkEndpointGroup string
70808	urlParams_           gensupport.URLParams
70809	ctx_                 context.Context
70810	header_              http.Header
70811}
70812
70813// Delete: Deletes the specified network endpoint group.Note that the
70814// NEG cannot be deleted if there are backend services referencing it.
70815//
70816// - networkEndpointGroup: The name of the network endpoint group to
70817//   delete. It should comply with RFC1035.
70818// - project: Project ID for this request.
70819func (r *GlobalNetworkEndpointGroupsService) Delete(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsDeleteCall {
70820	c := &GlobalNetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70821	c.project = project
70822	c.networkEndpointGroup = networkEndpointGroup
70823	return c
70824}
70825
70826// RequestId sets the optional parameter "requestId": An optional
70827// request ID to identify requests. Specify a unique request ID so that
70828// if you must retry your request, the server will know to ignore the
70829// request if it has already been completed. For example, consider a
70830// situation where you make an initial request and the request times
70831// out. If you make the request again with the same request ID, the
70832// server can check if original operation with the same request ID was
70833// received, and if so, will ignore the second request. This prevents
70834// clients from accidentally creating duplicate commitments. The request
70835// ID must be a valid UUID with the exception that zero UUID is not
70836// supported ( 00000000-0000-0000-0000-000000000000).
70837func (c *GlobalNetworkEndpointGroupsDeleteCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsDeleteCall {
70838	c.urlParams_.Set("requestId", requestId)
70839	return c
70840}
70841
70842// Fields allows partial responses to be retrieved. See
70843// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70844// for more information.
70845func (c *GlobalNetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsDeleteCall {
70846	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70847	return c
70848}
70849
70850// Context sets the context to be used in this call's Do method. Any
70851// pending HTTP request will be aborted if the provided context is
70852// canceled.
70853func (c *GlobalNetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsDeleteCall {
70854	c.ctx_ = ctx
70855	return c
70856}
70857
70858// Header returns an http.Header that can be modified by the caller to
70859// add HTTP headers to the request.
70860func (c *GlobalNetworkEndpointGroupsDeleteCall) Header() http.Header {
70861	if c.header_ == nil {
70862		c.header_ = make(http.Header)
70863	}
70864	return c.header_
70865}
70866
70867func (c *GlobalNetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
70868	reqHeaders := make(http.Header)
70869	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
70870	for k, v := range c.header_ {
70871		reqHeaders[k] = v
70872	}
70873	reqHeaders.Set("User-Agent", c.s.userAgent())
70874	var body io.Reader = nil
70875	c.urlParams_.Set("alt", alt)
70876	c.urlParams_.Set("prettyPrint", "false")
70877	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}")
70878	urls += "?" + c.urlParams_.Encode()
70879	req, err := http.NewRequest("DELETE", urls, body)
70880	if err != nil {
70881		return nil, err
70882	}
70883	req.Header = reqHeaders
70884	googleapi.Expand(req.URL, map[string]string{
70885		"project":              c.project,
70886		"networkEndpointGroup": c.networkEndpointGroup,
70887	})
70888	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70889}
70890
70891// Do executes the "compute.globalNetworkEndpointGroups.delete" call.
70892// Exactly one of *Operation or error will be non-nil. Any non-2xx
70893// status code is an error. Response headers are in either
70894// *Operation.ServerResponse.Header or (if a response was returned at
70895// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70896// to check whether the returned error was because
70897// http.StatusNotModified was returned.
70898func (c *GlobalNetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70899	gensupport.SetOptions(c.urlParams_, opts...)
70900	res, err := c.doRequest("json")
70901	if res != nil && res.StatusCode == http.StatusNotModified {
70902		if res.Body != nil {
70903			res.Body.Close()
70904		}
70905		return nil, &googleapi.Error{
70906			Code:   res.StatusCode,
70907			Header: res.Header,
70908		}
70909	}
70910	if err != nil {
70911		return nil, err
70912	}
70913	defer googleapi.CloseBody(res)
70914	if err := googleapi.CheckResponse(res); err != nil {
70915		return nil, err
70916	}
70917	ret := &Operation{
70918		ServerResponse: googleapi.ServerResponse{
70919			Header:         res.Header,
70920			HTTPStatusCode: res.StatusCode,
70921		},
70922	}
70923	target := &ret
70924	if err := gensupport.DecodeResponse(target, res); err != nil {
70925		return nil, err
70926	}
70927	return ret, nil
70928	// {
70929	//   "description": "Deletes the specified network endpoint group.Note that the NEG cannot be deleted if there are backend services referencing it.",
70930	//   "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}",
70931	//   "httpMethod": "DELETE",
70932	//   "id": "compute.globalNetworkEndpointGroups.delete",
70933	//   "parameterOrder": [
70934	//     "project",
70935	//     "networkEndpointGroup"
70936	//   ],
70937	//   "parameters": {
70938	//     "networkEndpointGroup": {
70939	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
70940	//       "location": "path",
70941	//       "required": true,
70942	//       "type": "string"
70943	//     },
70944	//     "project": {
70945	//       "description": "Project ID for this request.",
70946	//       "location": "path",
70947	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70948	//       "required": true,
70949	//       "type": "string"
70950	//     },
70951	//     "requestId": {
70952	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
70953	//       "location": "query",
70954	//       "type": "string"
70955	//     }
70956	//   },
70957	//   "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}",
70958	//   "response": {
70959	//     "$ref": "Operation"
70960	//   },
70961	//   "scopes": [
70962	//     "https://www.googleapis.com/auth/cloud-platform",
70963	//     "https://www.googleapis.com/auth/compute"
70964	//   ]
70965	// }
70966
70967}
70968
70969// method id "compute.globalNetworkEndpointGroups.detachNetworkEndpoints":
70970
70971type GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall struct {
70972	s                                                 *Service
70973	project                                           string
70974	networkEndpointGroup                              string
70975	globalnetworkendpointgroupsdetachendpointsrequest *GlobalNetworkEndpointGroupsDetachEndpointsRequest
70976	urlParams_                                        gensupport.URLParams
70977	ctx_                                              context.Context
70978	header_                                           http.Header
70979}
70980
70981// DetachNetworkEndpoints: Detach the network endpoint from the
70982// specified network endpoint group.
70983//
70984// - networkEndpointGroup: The name of the network endpoint group where
70985//   you are removing network endpoints. It should comply with RFC1035.
70986// - project: Project ID for this request.
70987func (r *GlobalNetworkEndpointGroupsService) DetachNetworkEndpoints(project string, networkEndpointGroup string, globalnetworkendpointgroupsdetachendpointsrequest *GlobalNetworkEndpointGroupsDetachEndpointsRequest) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
70988	c := &GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70989	c.project = project
70990	c.networkEndpointGroup = networkEndpointGroup
70991	c.globalnetworkendpointgroupsdetachendpointsrequest = globalnetworkendpointgroupsdetachendpointsrequest
70992	return c
70993}
70994
70995// RequestId sets the optional parameter "requestId": An optional
70996// request ID to identify requests. Specify a unique request ID so that
70997// if you must retry your request, the server will know to ignore the
70998// request if it has already been completed. For example, consider a
70999// situation where you make an initial request and the request times
71000// out. If you make the request again with the same request ID, the
71001// server can check if original operation with the same request ID was
71002// received, and if so, will ignore the second request. This prevents
71003// clients from accidentally creating duplicate commitments. The request
71004// ID must be a valid UUID with the exception that zero UUID is not
71005// supported ( 00000000-0000-0000-0000-000000000000).
71006func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
71007	c.urlParams_.Set("requestId", requestId)
71008	return c
71009}
71010
71011// Fields allows partial responses to be retrieved. See
71012// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71013// for more information.
71014func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
71015	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71016	return c
71017}
71018
71019// Context sets the context to be used in this call's Do method. Any
71020// pending HTTP request will be aborted if the provided context is
71021// canceled.
71022func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
71023	c.ctx_ = ctx
71024	return c
71025}
71026
71027// Header returns an http.Header that can be modified by the caller to
71028// add HTTP headers to the request.
71029func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Header() http.Header {
71030	if c.header_ == nil {
71031		c.header_ = make(http.Header)
71032	}
71033	return c.header_
71034}
71035
71036func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
71037	reqHeaders := make(http.Header)
71038	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
71039	for k, v := range c.header_ {
71040		reqHeaders[k] = v
71041	}
71042	reqHeaders.Set("User-Agent", c.s.userAgent())
71043	var body io.Reader = nil
71044	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalnetworkendpointgroupsdetachendpointsrequest)
71045	if err != nil {
71046		return nil, err
71047	}
71048	reqHeaders.Set("Content-Type", "application/json")
71049	c.urlParams_.Set("alt", alt)
71050	c.urlParams_.Set("prettyPrint", "false")
71051	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints")
71052	urls += "?" + c.urlParams_.Encode()
71053	req, err := http.NewRequest("POST", urls, body)
71054	if err != nil {
71055		return nil, err
71056	}
71057	req.Header = reqHeaders
71058	googleapi.Expand(req.URL, map[string]string{
71059		"project":              c.project,
71060		"networkEndpointGroup": c.networkEndpointGroup,
71061	})
71062	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71063}
71064
71065// Do executes the "compute.globalNetworkEndpointGroups.detachNetworkEndpoints" call.
71066// Exactly one of *Operation or error will be non-nil. Any non-2xx
71067// status code is an error. Response headers are in either
71068// *Operation.ServerResponse.Header or (if a response was returned at
71069// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71070// to check whether the returned error was because
71071// http.StatusNotModified was returned.
71072func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71073	gensupport.SetOptions(c.urlParams_, opts...)
71074	res, err := c.doRequest("json")
71075	if res != nil && res.StatusCode == http.StatusNotModified {
71076		if res.Body != nil {
71077			res.Body.Close()
71078		}
71079		return nil, &googleapi.Error{
71080			Code:   res.StatusCode,
71081			Header: res.Header,
71082		}
71083	}
71084	if err != nil {
71085		return nil, err
71086	}
71087	defer googleapi.CloseBody(res)
71088	if err := googleapi.CheckResponse(res); err != nil {
71089		return nil, err
71090	}
71091	ret := &Operation{
71092		ServerResponse: googleapi.ServerResponse{
71093			Header:         res.Header,
71094			HTTPStatusCode: res.StatusCode,
71095		},
71096	}
71097	target := &ret
71098	if err := gensupport.DecodeResponse(target, res); err != nil {
71099		return nil, err
71100	}
71101	return ret, nil
71102	// {
71103	//   "description": "Detach the network endpoint from the specified network endpoint group.",
71104	//   "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
71105	//   "httpMethod": "POST",
71106	//   "id": "compute.globalNetworkEndpointGroups.detachNetworkEndpoints",
71107	//   "parameterOrder": [
71108	//     "project",
71109	//     "networkEndpointGroup"
71110	//   ],
71111	//   "parameters": {
71112	//     "networkEndpointGroup": {
71113	//       "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.",
71114	//       "location": "path",
71115	//       "required": true,
71116	//       "type": "string"
71117	//     },
71118	//     "project": {
71119	//       "description": "Project ID for this request.",
71120	//       "location": "path",
71121	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71122	//       "required": true,
71123	//       "type": "string"
71124	//     },
71125	//     "requestId": {
71126	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
71127	//       "location": "query",
71128	//       "type": "string"
71129	//     }
71130	//   },
71131	//   "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
71132	//   "request": {
71133	//     "$ref": "GlobalNetworkEndpointGroupsDetachEndpointsRequest"
71134	//   },
71135	//   "response": {
71136	//     "$ref": "Operation"
71137	//   },
71138	//   "scopes": [
71139	//     "https://www.googleapis.com/auth/cloud-platform",
71140	//     "https://www.googleapis.com/auth/compute"
71141	//   ]
71142	// }
71143
71144}
71145
71146// method id "compute.globalNetworkEndpointGroups.get":
71147
71148type GlobalNetworkEndpointGroupsGetCall struct {
71149	s                    *Service
71150	project              string
71151	networkEndpointGroup string
71152	urlParams_           gensupport.URLParams
71153	ifNoneMatch_         string
71154	ctx_                 context.Context
71155	header_              http.Header
71156}
71157
71158// Get: Returns the specified network endpoint group. Gets a list of
71159// available network endpoint groups by making a list() request.
71160//
71161// - networkEndpointGroup: The name of the network endpoint group. It
71162//   should comply with RFC1035.
71163// - project: Project ID for this request.
71164func (r *GlobalNetworkEndpointGroupsService) Get(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsGetCall {
71165	c := &GlobalNetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71166	c.project = project
71167	c.networkEndpointGroup = networkEndpointGroup
71168	return c
71169}
71170
71171// Fields allows partial responses to be retrieved. See
71172// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71173// for more information.
71174func (c *GlobalNetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsGetCall {
71175	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71176	return c
71177}
71178
71179// IfNoneMatch sets the optional parameter which makes the operation
71180// fail if the object's ETag matches the given value. This is useful for
71181// getting updates only after the object has changed since the last
71182// request. Use googleapi.IsNotModified to check whether the response
71183// error from Do is the result of In-None-Match.
71184func (c *GlobalNetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *GlobalNetworkEndpointGroupsGetCall {
71185	c.ifNoneMatch_ = entityTag
71186	return c
71187}
71188
71189// Context sets the context to be used in this call's Do method. Any
71190// pending HTTP request will be aborted if the provided context is
71191// canceled.
71192func (c *GlobalNetworkEndpointGroupsGetCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsGetCall {
71193	c.ctx_ = ctx
71194	return c
71195}
71196
71197// Header returns an http.Header that can be modified by the caller to
71198// add HTTP headers to the request.
71199func (c *GlobalNetworkEndpointGroupsGetCall) Header() http.Header {
71200	if c.header_ == nil {
71201		c.header_ = make(http.Header)
71202	}
71203	return c.header_
71204}
71205
71206func (c *GlobalNetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
71207	reqHeaders := make(http.Header)
71208	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
71209	for k, v := range c.header_ {
71210		reqHeaders[k] = v
71211	}
71212	reqHeaders.Set("User-Agent", c.s.userAgent())
71213	if c.ifNoneMatch_ != "" {
71214		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
71215	}
71216	var body io.Reader = nil
71217	c.urlParams_.Set("alt", alt)
71218	c.urlParams_.Set("prettyPrint", "false")
71219	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}")
71220	urls += "?" + c.urlParams_.Encode()
71221	req, err := http.NewRequest("GET", urls, body)
71222	if err != nil {
71223		return nil, err
71224	}
71225	req.Header = reqHeaders
71226	googleapi.Expand(req.URL, map[string]string{
71227		"project":              c.project,
71228		"networkEndpointGroup": c.networkEndpointGroup,
71229	})
71230	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71231}
71232
71233// Do executes the "compute.globalNetworkEndpointGroups.get" call.
71234// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
71235// non-2xx status code is an error. Response headers are in either
71236// *NetworkEndpointGroup.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 *GlobalNetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, 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 := &NetworkEndpointGroup{
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": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.",
71272	//   "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}",
71273	//   "httpMethod": "GET",
71274	//   "id": "compute.globalNetworkEndpointGroups.get",
71275	//   "parameterOrder": [
71276	//     "project",
71277	//     "networkEndpointGroup"
71278	//   ],
71279	//   "parameters": {
71280	//     "networkEndpointGroup": {
71281	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
71282	//       "location": "path",
71283	//       "required": true,
71284	//       "type": "string"
71285	//     },
71286	//     "project": {
71287	//       "description": "Project ID for this request.",
71288	//       "location": "path",
71289	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71290	//       "required": true,
71291	//       "type": "string"
71292	//     }
71293	//   },
71294	//   "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}",
71295	//   "response": {
71296	//     "$ref": "NetworkEndpointGroup"
71297	//   },
71298	//   "scopes": [
71299	//     "https://www.googleapis.com/auth/cloud-platform",
71300	//     "https://www.googleapis.com/auth/compute",
71301	//     "https://www.googleapis.com/auth/compute.readonly"
71302	//   ]
71303	// }
71304
71305}
71306
71307// method id "compute.globalNetworkEndpointGroups.insert":
71308
71309type GlobalNetworkEndpointGroupsInsertCall struct {
71310	s                    *Service
71311	project              string
71312	networkendpointgroup *NetworkEndpointGroup
71313	urlParams_           gensupport.URLParams
71314	ctx_                 context.Context
71315	header_              http.Header
71316}
71317
71318// Insert: Creates a network endpoint group in the specified project
71319// using the parameters that are included in the request.
71320//
71321// - project: Project ID for this request.
71322func (r *GlobalNetworkEndpointGroupsService) Insert(project string, networkendpointgroup *NetworkEndpointGroup) *GlobalNetworkEndpointGroupsInsertCall {
71323	c := &GlobalNetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71324	c.project = project
71325	c.networkendpointgroup = networkendpointgroup
71326	return c
71327}
71328
71329// RequestId sets the optional parameter "requestId": An optional
71330// request ID to identify requests. Specify a unique request ID so that
71331// if you must retry your request, the server will know to ignore the
71332// request if it has already been completed. For example, consider a
71333// situation where you make an initial request and the request times
71334// out. If you make the request again with the same request ID, the
71335// server can check if original operation with the same request ID was
71336// received, and if so, will ignore the second request. This prevents
71337// clients from accidentally creating duplicate commitments. The request
71338// ID must be a valid UUID with the exception that zero UUID is not
71339// supported ( 00000000-0000-0000-0000-000000000000).
71340func (c *GlobalNetworkEndpointGroupsInsertCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsInsertCall {
71341	c.urlParams_.Set("requestId", requestId)
71342	return c
71343}
71344
71345// Fields allows partial responses to be retrieved. See
71346// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71347// for more information.
71348func (c *GlobalNetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsInsertCall {
71349	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71350	return c
71351}
71352
71353// Context sets the context to be used in this call's Do method. Any
71354// pending HTTP request will be aborted if the provided context is
71355// canceled.
71356func (c *GlobalNetworkEndpointGroupsInsertCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsInsertCall {
71357	c.ctx_ = ctx
71358	return c
71359}
71360
71361// Header returns an http.Header that can be modified by the caller to
71362// add HTTP headers to the request.
71363func (c *GlobalNetworkEndpointGroupsInsertCall) Header() http.Header {
71364	if c.header_ == nil {
71365		c.header_ = make(http.Header)
71366	}
71367	return c.header_
71368}
71369
71370func (c *GlobalNetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
71371	reqHeaders := make(http.Header)
71372	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
71373	for k, v := range c.header_ {
71374		reqHeaders[k] = v
71375	}
71376	reqHeaders.Set("User-Agent", c.s.userAgent())
71377	var body io.Reader = nil
71378	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
71379	if err != nil {
71380		return nil, err
71381	}
71382	reqHeaders.Set("Content-Type", "application/json")
71383	c.urlParams_.Set("alt", alt)
71384	c.urlParams_.Set("prettyPrint", "false")
71385	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups")
71386	urls += "?" + c.urlParams_.Encode()
71387	req, err := http.NewRequest("POST", urls, body)
71388	if err != nil {
71389		return nil, err
71390	}
71391	req.Header = reqHeaders
71392	googleapi.Expand(req.URL, map[string]string{
71393		"project": c.project,
71394	})
71395	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71396}
71397
71398// Do executes the "compute.globalNetworkEndpointGroups.insert" call.
71399// Exactly one of *Operation or error will be non-nil. Any non-2xx
71400// status code is an error. Response headers are in either
71401// *Operation.ServerResponse.Header or (if a response was returned at
71402// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71403// to check whether the returned error was because
71404// http.StatusNotModified was returned.
71405func (c *GlobalNetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71406	gensupport.SetOptions(c.urlParams_, opts...)
71407	res, err := c.doRequest("json")
71408	if res != nil && res.StatusCode == http.StatusNotModified {
71409		if res.Body != nil {
71410			res.Body.Close()
71411		}
71412		return nil, &googleapi.Error{
71413			Code:   res.StatusCode,
71414			Header: res.Header,
71415		}
71416	}
71417	if err != nil {
71418		return nil, err
71419	}
71420	defer googleapi.CloseBody(res)
71421	if err := googleapi.CheckResponse(res); err != nil {
71422		return nil, err
71423	}
71424	ret := &Operation{
71425		ServerResponse: googleapi.ServerResponse{
71426			Header:         res.Header,
71427			HTTPStatusCode: res.StatusCode,
71428		},
71429	}
71430	target := &ret
71431	if err := gensupport.DecodeResponse(target, res); err != nil {
71432		return nil, err
71433	}
71434	return ret, nil
71435	// {
71436	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.",
71437	//   "flatPath": "projects/{project}/global/networkEndpointGroups",
71438	//   "httpMethod": "POST",
71439	//   "id": "compute.globalNetworkEndpointGroups.insert",
71440	//   "parameterOrder": [
71441	//     "project"
71442	//   ],
71443	//   "parameters": {
71444	//     "project": {
71445	//       "description": "Project ID for this request.",
71446	//       "location": "path",
71447	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71448	//       "required": true,
71449	//       "type": "string"
71450	//     },
71451	//     "requestId": {
71452	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
71453	//       "location": "query",
71454	//       "type": "string"
71455	//     }
71456	//   },
71457	//   "path": "projects/{project}/global/networkEndpointGroups",
71458	//   "request": {
71459	//     "$ref": "NetworkEndpointGroup"
71460	//   },
71461	//   "response": {
71462	//     "$ref": "Operation"
71463	//   },
71464	//   "scopes": [
71465	//     "https://www.googleapis.com/auth/cloud-platform",
71466	//     "https://www.googleapis.com/auth/compute"
71467	//   ]
71468	// }
71469
71470}
71471
71472// method id "compute.globalNetworkEndpointGroups.list":
71473
71474type GlobalNetworkEndpointGroupsListCall struct {
71475	s            *Service
71476	project      string
71477	urlParams_   gensupport.URLParams
71478	ifNoneMatch_ string
71479	ctx_         context.Context
71480	header_      http.Header
71481}
71482
71483// List: Retrieves the list of network endpoint groups that are located
71484// in the specified project.
71485//
71486// - project: Project ID for this request.
71487func (r *GlobalNetworkEndpointGroupsService) List(project string) *GlobalNetworkEndpointGroupsListCall {
71488	c := &GlobalNetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71489	c.project = project
71490	return c
71491}
71492
71493// Filter sets the optional parameter "filter": A filter expression that
71494// filters resources listed in the response. The expression must specify
71495// the field name, a comparison operator, and the value that you want to
71496// use for filtering. The value must be a string, a number, or a
71497// boolean. The comparison operator must be either `=`, `!=`, `>`, or
71498// `<`. For example, if you are filtering Compute Engine instances, you
71499// can exclude instances named `example-instance` by specifying `name !=
71500// example-instance`. You can also filter nested fields. For example,
71501// you could specify `scheduling.automaticRestart = false` to include
71502// instances only if they are not scheduled for automatic restarts. You
71503// can use filtering on nested fields to filter based on resource
71504// labels. To filter on multiple expressions, provide each separate
71505// expression within parentheses. For example: ```
71506// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
71507// ``` By default, each expression is an `AND` expression. However, you
71508// can include `AND` and `OR` expressions explicitly. For example: ```
71509// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
71510// AND (scheduling.automaticRestart = true) ```
71511func (c *GlobalNetworkEndpointGroupsListCall) Filter(filter string) *GlobalNetworkEndpointGroupsListCall {
71512	c.urlParams_.Set("filter", filter)
71513	return c
71514}
71515
71516// MaxResults sets the optional parameter "maxResults": The maximum
71517// number of results per page that should be returned. If the number of
71518// available results is larger than `maxResults`, Compute Engine returns
71519// a `nextPageToken` that can be used to get the next page of results in
71520// subsequent list requests. Acceptable values are `0` to `500`,
71521// inclusive. (Default: `500`)
71522func (c *GlobalNetworkEndpointGroupsListCall) MaxResults(maxResults int64) *GlobalNetworkEndpointGroupsListCall {
71523	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
71524	return c
71525}
71526
71527// OrderBy sets the optional parameter "orderBy": Sorts list results by
71528// a certain order. By default, results are returned in alphanumerical
71529// order based on the resource name. You can also sort results in
71530// descending order based on the creation timestamp using
71531// `orderBy="creationTimestamp desc". This sorts results based on the
71532// `creationTimestamp` field in reverse chronological order (newest
71533// result first). Use this to sort resources like operations so that the
71534// newest operation is returned first. Currently, only sorting by `name`
71535// or `creationTimestamp desc` is supported.
71536func (c *GlobalNetworkEndpointGroupsListCall) OrderBy(orderBy string) *GlobalNetworkEndpointGroupsListCall {
71537	c.urlParams_.Set("orderBy", orderBy)
71538	return c
71539}
71540
71541// PageToken sets the optional parameter "pageToken": Specifies a page
71542// token to use. Set `pageToken` to the `nextPageToken` returned by a
71543// previous list request to get the next page of results.
71544func (c *GlobalNetworkEndpointGroupsListCall) PageToken(pageToken string) *GlobalNetworkEndpointGroupsListCall {
71545	c.urlParams_.Set("pageToken", pageToken)
71546	return c
71547}
71548
71549// ReturnPartialSuccess sets the optional parameter
71550// "returnPartialSuccess": Opt-in for partial success behavior which
71551// provides partial results in case of failure. The default value is
71552// false.
71553func (c *GlobalNetworkEndpointGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalNetworkEndpointGroupsListCall {
71554	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
71555	return c
71556}
71557
71558// Fields allows partial responses to be retrieved. See
71559// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71560// for more information.
71561func (c *GlobalNetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsListCall {
71562	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71563	return c
71564}
71565
71566// IfNoneMatch sets the optional parameter which makes the operation
71567// fail if the object's ETag matches the given value. This is useful for
71568// getting updates only after the object has changed since the last
71569// request. Use googleapi.IsNotModified to check whether the response
71570// error from Do is the result of In-None-Match.
71571func (c *GlobalNetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *GlobalNetworkEndpointGroupsListCall {
71572	c.ifNoneMatch_ = entityTag
71573	return c
71574}
71575
71576// Context sets the context to be used in this call's Do method. Any
71577// pending HTTP request will be aborted if the provided context is
71578// canceled.
71579func (c *GlobalNetworkEndpointGroupsListCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsListCall {
71580	c.ctx_ = ctx
71581	return c
71582}
71583
71584// Header returns an http.Header that can be modified by the caller to
71585// add HTTP headers to the request.
71586func (c *GlobalNetworkEndpointGroupsListCall) Header() http.Header {
71587	if c.header_ == nil {
71588		c.header_ = make(http.Header)
71589	}
71590	return c.header_
71591}
71592
71593func (c *GlobalNetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
71594	reqHeaders := make(http.Header)
71595	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
71596	for k, v := range c.header_ {
71597		reqHeaders[k] = v
71598	}
71599	reqHeaders.Set("User-Agent", c.s.userAgent())
71600	if c.ifNoneMatch_ != "" {
71601		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
71602	}
71603	var body io.Reader = nil
71604	c.urlParams_.Set("alt", alt)
71605	c.urlParams_.Set("prettyPrint", "false")
71606	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups")
71607	urls += "?" + c.urlParams_.Encode()
71608	req, err := http.NewRequest("GET", urls, body)
71609	if err != nil {
71610		return nil, err
71611	}
71612	req.Header = reqHeaders
71613	googleapi.Expand(req.URL, map[string]string{
71614		"project": c.project,
71615	})
71616	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71617}
71618
71619// Do executes the "compute.globalNetworkEndpointGroups.list" call.
71620// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
71621// Any non-2xx status code is an error. Response headers are in either
71622// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
71623// returned at all) in error.(*googleapi.Error).Header. Use
71624// googleapi.IsNotModified to check whether the returned error was
71625// because http.StatusNotModified was returned.
71626func (c *GlobalNetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
71627	gensupport.SetOptions(c.urlParams_, opts...)
71628	res, err := c.doRequest("json")
71629	if res != nil && res.StatusCode == http.StatusNotModified {
71630		if res.Body != nil {
71631			res.Body.Close()
71632		}
71633		return nil, &googleapi.Error{
71634			Code:   res.StatusCode,
71635			Header: res.Header,
71636		}
71637	}
71638	if err != nil {
71639		return nil, err
71640	}
71641	defer googleapi.CloseBody(res)
71642	if err := googleapi.CheckResponse(res); err != nil {
71643		return nil, err
71644	}
71645	ret := &NetworkEndpointGroupList{
71646		ServerResponse: googleapi.ServerResponse{
71647			Header:         res.Header,
71648			HTTPStatusCode: res.StatusCode,
71649		},
71650	}
71651	target := &ret
71652	if err := gensupport.DecodeResponse(target, res); err != nil {
71653		return nil, err
71654	}
71655	return ret, nil
71656	// {
71657	//   "description": "Retrieves the list of network endpoint groups that are located in the specified project.",
71658	//   "flatPath": "projects/{project}/global/networkEndpointGroups",
71659	//   "httpMethod": "GET",
71660	//   "id": "compute.globalNetworkEndpointGroups.list",
71661	//   "parameterOrder": [
71662	//     "project"
71663	//   ],
71664	//   "parameters": {
71665	//     "filter": {
71666	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
71667	//       "location": "query",
71668	//       "type": "string"
71669	//     },
71670	//     "maxResults": {
71671	//       "default": "500",
71672	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
71673	//       "format": "uint32",
71674	//       "location": "query",
71675	//       "minimum": "0",
71676	//       "type": "integer"
71677	//     },
71678	//     "orderBy": {
71679	//       "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.",
71680	//       "location": "query",
71681	//       "type": "string"
71682	//     },
71683	//     "pageToken": {
71684	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
71685	//       "location": "query",
71686	//       "type": "string"
71687	//     },
71688	//     "project": {
71689	//       "description": "Project ID for this request.",
71690	//       "location": "path",
71691	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71692	//       "required": true,
71693	//       "type": "string"
71694	//     },
71695	//     "returnPartialSuccess": {
71696	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
71697	//       "location": "query",
71698	//       "type": "boolean"
71699	//     }
71700	//   },
71701	//   "path": "projects/{project}/global/networkEndpointGroups",
71702	//   "response": {
71703	//     "$ref": "NetworkEndpointGroupList"
71704	//   },
71705	//   "scopes": [
71706	//     "https://www.googleapis.com/auth/cloud-platform",
71707	//     "https://www.googleapis.com/auth/compute",
71708	//     "https://www.googleapis.com/auth/compute.readonly"
71709	//   ]
71710	// }
71711
71712}
71713
71714// Pages invokes f for each page of results.
71715// A non-nil error returned from f will halt the iteration.
71716// The provided context supersedes any context provided to the Context method.
71717func (c *GlobalNetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
71718	c.ctx_ = ctx
71719	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
71720	for {
71721		x, err := c.Do()
71722		if err != nil {
71723			return err
71724		}
71725		if err := f(x); err != nil {
71726			return err
71727		}
71728		if x.NextPageToken == "" {
71729			return nil
71730		}
71731		c.PageToken(x.NextPageToken)
71732	}
71733}
71734
71735// method id "compute.globalNetworkEndpointGroups.listNetworkEndpoints":
71736
71737type GlobalNetworkEndpointGroupsListNetworkEndpointsCall struct {
71738	s                    *Service
71739	project              string
71740	networkEndpointGroup string
71741	urlParams_           gensupport.URLParams
71742	ctx_                 context.Context
71743	header_              http.Header
71744}
71745
71746// ListNetworkEndpoints: Lists the network endpoints in the specified
71747// network endpoint group.
71748//
71749// - networkEndpointGroup: The name of the network endpoint group from
71750//   which you want to generate a list of included network endpoints. It
71751//   should comply with RFC1035.
71752// - project: Project ID for this request.
71753func (r *GlobalNetworkEndpointGroupsService) ListNetworkEndpoints(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
71754	c := &GlobalNetworkEndpointGroupsListNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71755	c.project = project
71756	c.networkEndpointGroup = networkEndpointGroup
71757	return c
71758}
71759
71760// Filter sets the optional parameter "filter": A filter expression that
71761// filters resources listed in the response. The expression must specify
71762// the field name, a comparison operator, and the value that you want to
71763// use for filtering. The value must be a string, a number, or a
71764// boolean. The comparison operator must be either `=`, `!=`, `>`, or
71765// `<`. For example, if you are filtering Compute Engine instances, you
71766// can exclude instances named `example-instance` by specifying `name !=
71767// example-instance`. You can also filter nested fields. For example,
71768// you could specify `scheduling.automaticRestart = false` to include
71769// instances only if they are not scheduled for automatic restarts. You
71770// can use filtering on nested fields to filter based on resource
71771// labels. To filter on multiple expressions, provide each separate
71772// expression within parentheses. For example: ```
71773// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
71774// ``` By default, each expression is an `AND` expression. However, you
71775// can include `AND` and `OR` expressions explicitly. For example: ```
71776// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
71777// AND (scheduling.automaticRestart = true) ```
71778func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Filter(filter string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
71779	c.urlParams_.Set("filter", filter)
71780	return c
71781}
71782
71783// MaxResults sets the optional parameter "maxResults": The maximum
71784// number of results per page that should be returned. If the number of
71785// available results is larger than `maxResults`, Compute Engine returns
71786// a `nextPageToken` that can be used to get the next page of results in
71787// subsequent list requests. Acceptable values are `0` to `500`,
71788// inclusive. (Default: `500`)
71789func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) MaxResults(maxResults int64) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
71790	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
71791	return c
71792}
71793
71794// OrderBy sets the optional parameter "orderBy": Sorts list results by
71795// a certain order. By default, results are returned in alphanumerical
71796// order based on the resource name. You can also sort results in
71797// descending order based on the creation timestamp using
71798// `orderBy="creationTimestamp desc". This sorts results based on the
71799// `creationTimestamp` field in reverse chronological order (newest
71800// result first). Use this to sort resources like operations so that the
71801// newest operation is returned first. Currently, only sorting by `name`
71802// or `creationTimestamp desc` is supported.
71803func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) OrderBy(orderBy string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
71804	c.urlParams_.Set("orderBy", orderBy)
71805	return c
71806}
71807
71808// PageToken sets the optional parameter "pageToken": Specifies a page
71809// token to use. Set `pageToken` to the `nextPageToken` returned by a
71810// previous list request to get the next page of results.
71811func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) PageToken(pageToken string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
71812	c.urlParams_.Set("pageToken", pageToken)
71813	return c
71814}
71815
71816// ReturnPartialSuccess sets the optional parameter
71817// "returnPartialSuccess": Opt-in for partial success behavior which
71818// provides partial results in case of failure. The default value is
71819// false.
71820func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
71821	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
71822	return c
71823}
71824
71825// Fields allows partial responses to be retrieved. See
71826// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71827// for more information.
71828func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
71829	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71830	return c
71831}
71832
71833// Context sets the context to be used in this call's Do method. Any
71834// pending HTTP request will be aborted if the provided context is
71835// canceled.
71836func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
71837	c.ctx_ = ctx
71838	return c
71839}
71840
71841// Header returns an http.Header that can be modified by the caller to
71842// add HTTP headers to the request.
71843func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Header() http.Header {
71844	if c.header_ == nil {
71845		c.header_ = make(http.Header)
71846	}
71847	return c.header_
71848}
71849
71850func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
71851	reqHeaders := make(http.Header)
71852	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
71853	for k, v := range c.header_ {
71854		reqHeaders[k] = v
71855	}
71856	reqHeaders.Set("User-Agent", c.s.userAgent())
71857	var body io.Reader = nil
71858	c.urlParams_.Set("alt", alt)
71859	c.urlParams_.Set("prettyPrint", "false")
71860	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints")
71861	urls += "?" + c.urlParams_.Encode()
71862	req, err := http.NewRequest("POST", urls, body)
71863	if err != nil {
71864		return nil, err
71865	}
71866	req.Header = reqHeaders
71867	googleapi.Expand(req.URL, map[string]string{
71868		"project":              c.project,
71869		"networkEndpointGroup": c.networkEndpointGroup,
71870	})
71871	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71872}
71873
71874// Do executes the "compute.globalNetworkEndpointGroups.listNetworkEndpoints" call.
71875// Exactly one of *NetworkEndpointGroupsListNetworkEndpoints or error
71876// will be non-nil. Any non-2xx status code is an error. Response
71877// headers are in either
71878// *NetworkEndpointGroupsListNetworkEndpoints.ServerResponse.Header or
71879// (if a response was returned at all) in
71880// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
71881// whether the returned error was because http.StatusNotModified was
71882// returned.
71883func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupsListNetworkEndpoints, error) {
71884	gensupport.SetOptions(c.urlParams_, opts...)
71885	res, err := c.doRequest("json")
71886	if res != nil && res.StatusCode == http.StatusNotModified {
71887		if res.Body != nil {
71888			res.Body.Close()
71889		}
71890		return nil, &googleapi.Error{
71891			Code:   res.StatusCode,
71892			Header: res.Header,
71893		}
71894	}
71895	if err != nil {
71896		return nil, err
71897	}
71898	defer googleapi.CloseBody(res)
71899	if err := googleapi.CheckResponse(res); err != nil {
71900		return nil, err
71901	}
71902	ret := &NetworkEndpointGroupsListNetworkEndpoints{
71903		ServerResponse: googleapi.ServerResponse{
71904			Header:         res.Header,
71905			HTTPStatusCode: res.StatusCode,
71906		},
71907	}
71908	target := &ret
71909	if err := gensupport.DecodeResponse(target, res); err != nil {
71910		return nil, err
71911	}
71912	return ret, nil
71913	// {
71914	//   "description": "Lists the network endpoints in the specified network endpoint group.",
71915	//   "flatPath": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
71916	//   "httpMethod": "POST",
71917	//   "id": "compute.globalNetworkEndpointGroups.listNetworkEndpoints",
71918	//   "parameterOrder": [
71919	//     "project",
71920	//     "networkEndpointGroup"
71921	//   ],
71922	//   "parameters": {
71923	//     "filter": {
71924	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
71925	//       "location": "query",
71926	//       "type": "string"
71927	//     },
71928	//     "maxResults": {
71929	//       "default": "500",
71930	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
71931	//       "format": "uint32",
71932	//       "location": "query",
71933	//       "minimum": "0",
71934	//       "type": "integer"
71935	//     },
71936	//     "networkEndpointGroup": {
71937	//       "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.",
71938	//       "location": "path",
71939	//       "required": true,
71940	//       "type": "string"
71941	//     },
71942	//     "orderBy": {
71943	//       "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.",
71944	//       "location": "query",
71945	//       "type": "string"
71946	//     },
71947	//     "pageToken": {
71948	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
71949	//       "location": "query",
71950	//       "type": "string"
71951	//     },
71952	//     "project": {
71953	//       "description": "Project ID for this request.",
71954	//       "location": "path",
71955	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71956	//       "required": true,
71957	//       "type": "string"
71958	//     },
71959	//     "returnPartialSuccess": {
71960	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
71961	//       "location": "query",
71962	//       "type": "boolean"
71963	//     }
71964	//   },
71965	//   "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
71966	//   "response": {
71967	//     "$ref": "NetworkEndpointGroupsListNetworkEndpoints"
71968	//   },
71969	//   "scopes": [
71970	//     "https://www.googleapis.com/auth/cloud-platform",
71971	//     "https://www.googleapis.com/auth/compute",
71972	//     "https://www.googleapis.com/auth/compute.readonly"
71973	//   ]
71974	// }
71975
71976}
71977
71978// Pages invokes f for each page of results.
71979// A non-nil error returned from f will halt the iteration.
71980// The provided context supersedes any context provided to the Context method.
71981func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupsListNetworkEndpoints) error) error {
71982	c.ctx_ = ctx
71983	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
71984	for {
71985		x, err := c.Do()
71986		if err != nil {
71987			return err
71988		}
71989		if err := f(x); err != nil {
71990			return err
71991		}
71992		if x.NextPageToken == "" {
71993			return nil
71994		}
71995		c.PageToken(x.NextPageToken)
71996	}
71997}
71998
71999// method id "compute.globalOperations.aggregatedList":
72000
72001type GlobalOperationsAggregatedListCall struct {
72002	s            *Service
72003	project      string
72004	urlParams_   gensupport.URLParams
72005	ifNoneMatch_ string
72006	ctx_         context.Context
72007	header_      http.Header
72008}
72009
72010// AggregatedList: Retrieves an aggregated list of all operations.
72011//
72012// - project: Project ID for this request.
72013func (r *GlobalOperationsService) AggregatedList(project string) *GlobalOperationsAggregatedListCall {
72014	c := &GlobalOperationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72015	c.project = project
72016	return c
72017}
72018
72019// Filter sets the optional parameter "filter": A filter expression that
72020// filters resources listed in the response. The expression must specify
72021// the field name, a comparison operator, and the value that you want to
72022// use for filtering. The value must be a string, a number, or a
72023// boolean. The comparison operator must be either `=`, `!=`, `>`, or
72024// `<`. For example, if you are filtering Compute Engine instances, you
72025// can exclude instances named `example-instance` by specifying `name !=
72026// example-instance`. You can also filter nested fields. For example,
72027// you could specify `scheduling.automaticRestart = false` to include
72028// instances only if they are not scheduled for automatic restarts. You
72029// can use filtering on nested fields to filter based on resource
72030// labels. To filter on multiple expressions, provide each separate
72031// expression within parentheses. For example: ```
72032// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
72033// ``` By default, each expression is an `AND` expression. However, you
72034// can include `AND` and `OR` expressions explicitly. For example: ```
72035// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
72036// AND (scheduling.automaticRestart = true) ```
72037func (c *GlobalOperationsAggregatedListCall) Filter(filter string) *GlobalOperationsAggregatedListCall {
72038	c.urlParams_.Set("filter", filter)
72039	return c
72040}
72041
72042// IncludeAllScopes sets the optional parameter "includeAllScopes":
72043// Indicates whether every visible scope for each scope type (zone,
72044// region, global) should be included in the response. For new resource
72045// types added after this field, the flag has no effect as new resource
72046// types will always include every visible scope for each scope type in
72047// response. For resource types which predate this field, if this flag
72048// is omitted or false, only scopes of the scope types where the
72049// resource type is expected to be found will be included.
72050func (c *GlobalOperationsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *GlobalOperationsAggregatedListCall {
72051	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
72052	return c
72053}
72054
72055// MaxResults sets the optional parameter "maxResults": The maximum
72056// number of results per page that should be returned. If the number of
72057// available results is larger than `maxResults`, Compute Engine returns
72058// a `nextPageToken` that can be used to get the next page of results in
72059// subsequent list requests. Acceptable values are `0` to `500`,
72060// inclusive. (Default: `500`)
72061func (c *GlobalOperationsAggregatedListCall) MaxResults(maxResults int64) *GlobalOperationsAggregatedListCall {
72062	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
72063	return c
72064}
72065
72066// OrderBy sets the optional parameter "orderBy": Sorts list results by
72067// a certain order. By default, results are returned in alphanumerical
72068// order based on the resource name. You can also sort results in
72069// descending order based on the creation timestamp using
72070// `orderBy="creationTimestamp desc". This sorts results based on the
72071// `creationTimestamp` field in reverse chronological order (newest
72072// result first). Use this to sort resources like operations so that the
72073// newest operation is returned first. Currently, only sorting by `name`
72074// or `creationTimestamp desc` is supported.
72075func (c *GlobalOperationsAggregatedListCall) OrderBy(orderBy string) *GlobalOperationsAggregatedListCall {
72076	c.urlParams_.Set("orderBy", orderBy)
72077	return c
72078}
72079
72080// PageToken sets the optional parameter "pageToken": Specifies a page
72081// token to use. Set `pageToken` to the `nextPageToken` returned by a
72082// previous list request to get the next page of results.
72083func (c *GlobalOperationsAggregatedListCall) PageToken(pageToken string) *GlobalOperationsAggregatedListCall {
72084	c.urlParams_.Set("pageToken", pageToken)
72085	return c
72086}
72087
72088// ReturnPartialSuccess sets the optional parameter
72089// "returnPartialSuccess": Opt-in for partial success behavior which
72090// provides partial results in case of failure. The default value is
72091// false.
72092func (c *GlobalOperationsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalOperationsAggregatedListCall {
72093	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
72094	return c
72095}
72096
72097// Fields allows partial responses to be retrieved. See
72098// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72099// for more information.
72100func (c *GlobalOperationsAggregatedListCall) Fields(s ...googleapi.Field) *GlobalOperationsAggregatedListCall {
72101	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72102	return c
72103}
72104
72105// IfNoneMatch sets the optional parameter which makes the operation
72106// fail if the object's ETag matches the given value. This is useful for
72107// getting updates only after the object has changed since the last
72108// request. Use googleapi.IsNotModified to check whether the response
72109// error from Do is the result of In-None-Match.
72110func (c *GlobalOperationsAggregatedListCall) IfNoneMatch(entityTag string) *GlobalOperationsAggregatedListCall {
72111	c.ifNoneMatch_ = entityTag
72112	return c
72113}
72114
72115// Context sets the context to be used in this call's Do method. Any
72116// pending HTTP request will be aborted if the provided context is
72117// canceled.
72118func (c *GlobalOperationsAggregatedListCall) Context(ctx context.Context) *GlobalOperationsAggregatedListCall {
72119	c.ctx_ = ctx
72120	return c
72121}
72122
72123// Header returns an http.Header that can be modified by the caller to
72124// add HTTP headers to the request.
72125func (c *GlobalOperationsAggregatedListCall) Header() http.Header {
72126	if c.header_ == nil {
72127		c.header_ = make(http.Header)
72128	}
72129	return c.header_
72130}
72131
72132func (c *GlobalOperationsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
72133	reqHeaders := make(http.Header)
72134	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
72135	for k, v := range c.header_ {
72136		reqHeaders[k] = v
72137	}
72138	reqHeaders.Set("User-Agent", c.s.userAgent())
72139	if c.ifNoneMatch_ != "" {
72140		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
72141	}
72142	var body io.Reader = nil
72143	c.urlParams_.Set("alt", alt)
72144	c.urlParams_.Set("prettyPrint", "false")
72145	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/operations")
72146	urls += "?" + c.urlParams_.Encode()
72147	req, err := http.NewRequest("GET", urls, body)
72148	if err != nil {
72149		return nil, err
72150	}
72151	req.Header = reqHeaders
72152	googleapi.Expand(req.URL, map[string]string{
72153		"project": c.project,
72154	})
72155	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72156}
72157
72158// Do executes the "compute.globalOperations.aggregatedList" call.
72159// Exactly one of *OperationAggregatedList or error will be non-nil. Any
72160// non-2xx status code is an error. Response headers are in either
72161// *OperationAggregatedList.ServerResponse.Header or (if a response was
72162// returned at all) in error.(*googleapi.Error).Header. Use
72163// googleapi.IsNotModified to check whether the returned error was
72164// because http.StatusNotModified was returned.
72165func (c *GlobalOperationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*OperationAggregatedList, error) {
72166	gensupport.SetOptions(c.urlParams_, opts...)
72167	res, err := c.doRequest("json")
72168	if res != nil && res.StatusCode == http.StatusNotModified {
72169		if res.Body != nil {
72170			res.Body.Close()
72171		}
72172		return nil, &googleapi.Error{
72173			Code:   res.StatusCode,
72174			Header: res.Header,
72175		}
72176	}
72177	if err != nil {
72178		return nil, err
72179	}
72180	defer googleapi.CloseBody(res)
72181	if err := googleapi.CheckResponse(res); err != nil {
72182		return nil, err
72183	}
72184	ret := &OperationAggregatedList{
72185		ServerResponse: googleapi.ServerResponse{
72186			Header:         res.Header,
72187			HTTPStatusCode: res.StatusCode,
72188		},
72189	}
72190	target := &ret
72191	if err := gensupport.DecodeResponse(target, res); err != nil {
72192		return nil, err
72193	}
72194	return ret, nil
72195	// {
72196	//   "description": "Retrieves an aggregated list of all operations.",
72197	//   "flatPath": "projects/{project}/aggregated/operations",
72198	//   "httpMethod": "GET",
72199	//   "id": "compute.globalOperations.aggregatedList",
72200	//   "parameterOrder": [
72201	//     "project"
72202	//   ],
72203	//   "parameters": {
72204	//     "filter": {
72205	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
72206	//       "location": "query",
72207	//       "type": "string"
72208	//     },
72209	//     "includeAllScopes": {
72210	//       "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.",
72211	//       "location": "query",
72212	//       "type": "boolean"
72213	//     },
72214	//     "maxResults": {
72215	//       "default": "500",
72216	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
72217	//       "format": "uint32",
72218	//       "location": "query",
72219	//       "minimum": "0",
72220	//       "type": "integer"
72221	//     },
72222	//     "orderBy": {
72223	//       "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.",
72224	//       "location": "query",
72225	//       "type": "string"
72226	//     },
72227	//     "pageToken": {
72228	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
72229	//       "location": "query",
72230	//       "type": "string"
72231	//     },
72232	//     "project": {
72233	//       "description": "Project ID for this request.",
72234	//       "location": "path",
72235	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72236	//       "required": true,
72237	//       "type": "string"
72238	//     },
72239	//     "returnPartialSuccess": {
72240	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
72241	//       "location": "query",
72242	//       "type": "boolean"
72243	//     }
72244	//   },
72245	//   "path": "projects/{project}/aggregated/operations",
72246	//   "response": {
72247	//     "$ref": "OperationAggregatedList"
72248	//   },
72249	//   "scopes": [
72250	//     "https://www.googleapis.com/auth/cloud-platform",
72251	//     "https://www.googleapis.com/auth/compute",
72252	//     "https://www.googleapis.com/auth/compute.readonly"
72253	//   ]
72254	// }
72255
72256}
72257
72258// Pages invokes f for each page of results.
72259// A non-nil error returned from f will halt the iteration.
72260// The provided context supersedes any context provided to the Context method.
72261func (c *GlobalOperationsAggregatedListCall) Pages(ctx context.Context, f func(*OperationAggregatedList) error) error {
72262	c.ctx_ = ctx
72263	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
72264	for {
72265		x, err := c.Do()
72266		if err != nil {
72267			return err
72268		}
72269		if err := f(x); err != nil {
72270			return err
72271		}
72272		if x.NextPageToken == "" {
72273			return nil
72274		}
72275		c.PageToken(x.NextPageToken)
72276	}
72277}
72278
72279// method id "compute.globalOperations.delete":
72280
72281type GlobalOperationsDeleteCall struct {
72282	s          *Service
72283	project    string
72284	operation  string
72285	urlParams_ gensupport.URLParams
72286	ctx_       context.Context
72287	header_    http.Header
72288}
72289
72290// Delete: Deletes the specified Operations resource.
72291//
72292// - operation: Name of the Operations resource to delete.
72293// - project: Project ID for this request.
72294func (r *GlobalOperationsService) Delete(project string, operation string) *GlobalOperationsDeleteCall {
72295	c := &GlobalOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72296	c.project = project
72297	c.operation = operation
72298	return c
72299}
72300
72301// Fields allows partial responses to be retrieved. See
72302// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72303// for more information.
72304func (c *GlobalOperationsDeleteCall) Fields(s ...googleapi.Field) *GlobalOperationsDeleteCall {
72305	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72306	return c
72307}
72308
72309// Context sets the context to be used in this call's Do method. Any
72310// pending HTTP request will be aborted if the provided context is
72311// canceled.
72312func (c *GlobalOperationsDeleteCall) Context(ctx context.Context) *GlobalOperationsDeleteCall {
72313	c.ctx_ = ctx
72314	return c
72315}
72316
72317// Header returns an http.Header that can be modified by the caller to
72318// add HTTP headers to the request.
72319func (c *GlobalOperationsDeleteCall) Header() http.Header {
72320	if c.header_ == nil {
72321		c.header_ = make(http.Header)
72322	}
72323	return c.header_
72324}
72325
72326func (c *GlobalOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
72327	reqHeaders := make(http.Header)
72328	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
72329	for k, v := range c.header_ {
72330		reqHeaders[k] = v
72331	}
72332	reqHeaders.Set("User-Agent", c.s.userAgent())
72333	var body io.Reader = nil
72334	c.urlParams_.Set("alt", alt)
72335	c.urlParams_.Set("prettyPrint", "false")
72336	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/operations/{operation}")
72337	urls += "?" + c.urlParams_.Encode()
72338	req, err := http.NewRequest("DELETE", urls, body)
72339	if err != nil {
72340		return nil, err
72341	}
72342	req.Header = reqHeaders
72343	googleapi.Expand(req.URL, map[string]string{
72344		"project":   c.project,
72345		"operation": c.operation,
72346	})
72347	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72348}
72349
72350// Do executes the "compute.globalOperations.delete" call.
72351func (c *GlobalOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
72352	gensupport.SetOptions(c.urlParams_, opts...)
72353	res, err := c.doRequest("json")
72354	if err != nil {
72355		return err
72356	}
72357	defer googleapi.CloseBody(res)
72358	if err := googleapi.CheckResponse(res); err != nil {
72359		return err
72360	}
72361	return nil
72362	// {
72363	//   "description": "Deletes the specified Operations resource.",
72364	//   "flatPath": "projects/{project}/global/operations/{operation}",
72365	//   "httpMethod": "DELETE",
72366	//   "id": "compute.globalOperations.delete",
72367	//   "parameterOrder": [
72368	//     "project",
72369	//     "operation"
72370	//   ],
72371	//   "parameters": {
72372	//     "operation": {
72373	//       "description": "Name of the Operations resource to delete.",
72374	//       "location": "path",
72375	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72376	//       "required": true,
72377	//       "type": "string"
72378	//     },
72379	//     "project": {
72380	//       "description": "Project ID for this request.",
72381	//       "location": "path",
72382	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72383	//       "required": true,
72384	//       "type": "string"
72385	//     }
72386	//   },
72387	//   "path": "projects/{project}/global/operations/{operation}",
72388	//   "scopes": [
72389	//     "https://www.googleapis.com/auth/cloud-platform",
72390	//     "https://www.googleapis.com/auth/compute"
72391	//   ]
72392	// }
72393
72394}
72395
72396// method id "compute.globalOperations.get":
72397
72398type GlobalOperationsGetCall struct {
72399	s            *Service
72400	project      string
72401	operation    string
72402	urlParams_   gensupport.URLParams
72403	ifNoneMatch_ string
72404	ctx_         context.Context
72405	header_      http.Header
72406}
72407
72408// Get: Retrieves the specified Operations resource.
72409//
72410// - operation: Name of the Operations resource to return.
72411// - project: Project ID for this request.
72412func (r *GlobalOperationsService) Get(project string, operation string) *GlobalOperationsGetCall {
72413	c := &GlobalOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72414	c.project = project
72415	c.operation = operation
72416	return c
72417}
72418
72419// Fields allows partial responses to be retrieved. See
72420// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72421// for more information.
72422func (c *GlobalOperationsGetCall) Fields(s ...googleapi.Field) *GlobalOperationsGetCall {
72423	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72424	return c
72425}
72426
72427// IfNoneMatch sets the optional parameter which makes the operation
72428// fail if the object's ETag matches the given value. This is useful for
72429// getting updates only after the object has changed since the last
72430// request. Use googleapi.IsNotModified to check whether the response
72431// error from Do is the result of In-None-Match.
72432func (c *GlobalOperationsGetCall) IfNoneMatch(entityTag string) *GlobalOperationsGetCall {
72433	c.ifNoneMatch_ = entityTag
72434	return c
72435}
72436
72437// Context sets the context to be used in this call's Do method. Any
72438// pending HTTP request will be aborted if the provided context is
72439// canceled.
72440func (c *GlobalOperationsGetCall) Context(ctx context.Context) *GlobalOperationsGetCall {
72441	c.ctx_ = ctx
72442	return c
72443}
72444
72445// Header returns an http.Header that can be modified by the caller to
72446// add HTTP headers to the request.
72447func (c *GlobalOperationsGetCall) Header() http.Header {
72448	if c.header_ == nil {
72449		c.header_ = make(http.Header)
72450	}
72451	return c.header_
72452}
72453
72454func (c *GlobalOperationsGetCall) doRequest(alt string) (*http.Response, error) {
72455	reqHeaders := make(http.Header)
72456	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
72457	for k, v := range c.header_ {
72458		reqHeaders[k] = v
72459	}
72460	reqHeaders.Set("User-Agent", c.s.userAgent())
72461	if c.ifNoneMatch_ != "" {
72462		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
72463	}
72464	var body io.Reader = nil
72465	c.urlParams_.Set("alt", alt)
72466	c.urlParams_.Set("prettyPrint", "false")
72467	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/operations/{operation}")
72468	urls += "?" + c.urlParams_.Encode()
72469	req, err := http.NewRequest("GET", urls, body)
72470	if err != nil {
72471		return nil, err
72472	}
72473	req.Header = reqHeaders
72474	googleapi.Expand(req.URL, map[string]string{
72475		"project":   c.project,
72476		"operation": c.operation,
72477	})
72478	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72479}
72480
72481// Do executes the "compute.globalOperations.get" call.
72482// Exactly one of *Operation or error will be non-nil. Any non-2xx
72483// status code is an error. Response headers are in either
72484// *Operation.ServerResponse.Header or (if a response was returned at
72485// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72486// to check whether the returned error was because
72487// http.StatusNotModified was returned.
72488func (c *GlobalOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72489	gensupport.SetOptions(c.urlParams_, opts...)
72490	res, err := c.doRequest("json")
72491	if res != nil && res.StatusCode == http.StatusNotModified {
72492		if res.Body != nil {
72493			res.Body.Close()
72494		}
72495		return nil, &googleapi.Error{
72496			Code:   res.StatusCode,
72497			Header: res.Header,
72498		}
72499	}
72500	if err != nil {
72501		return nil, err
72502	}
72503	defer googleapi.CloseBody(res)
72504	if err := googleapi.CheckResponse(res); err != nil {
72505		return nil, err
72506	}
72507	ret := &Operation{
72508		ServerResponse: googleapi.ServerResponse{
72509			Header:         res.Header,
72510			HTTPStatusCode: res.StatusCode,
72511		},
72512	}
72513	target := &ret
72514	if err := gensupport.DecodeResponse(target, res); err != nil {
72515		return nil, err
72516	}
72517	return ret, nil
72518	// {
72519	//   "description": "Retrieves the specified Operations resource.",
72520	//   "flatPath": "projects/{project}/global/operations/{operation}",
72521	//   "httpMethod": "GET",
72522	//   "id": "compute.globalOperations.get",
72523	//   "parameterOrder": [
72524	//     "project",
72525	//     "operation"
72526	//   ],
72527	//   "parameters": {
72528	//     "operation": {
72529	//       "description": "Name of the Operations resource to return.",
72530	//       "location": "path",
72531	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72532	//       "required": true,
72533	//       "type": "string"
72534	//     },
72535	//     "project": {
72536	//       "description": "Project ID for this request.",
72537	//       "location": "path",
72538	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72539	//       "required": true,
72540	//       "type": "string"
72541	//     }
72542	//   },
72543	//   "path": "projects/{project}/global/operations/{operation}",
72544	//   "response": {
72545	//     "$ref": "Operation"
72546	//   },
72547	//   "scopes": [
72548	//     "https://www.googleapis.com/auth/cloud-platform",
72549	//     "https://www.googleapis.com/auth/compute",
72550	//     "https://www.googleapis.com/auth/compute.readonly"
72551	//   ]
72552	// }
72553
72554}
72555
72556// method id "compute.globalOperations.list":
72557
72558type GlobalOperationsListCall struct {
72559	s            *Service
72560	project      string
72561	urlParams_   gensupport.URLParams
72562	ifNoneMatch_ string
72563	ctx_         context.Context
72564	header_      http.Header
72565}
72566
72567// List: Retrieves a list of Operation resources contained within the
72568// specified project.
72569//
72570// - project: Project ID for this request.
72571func (r *GlobalOperationsService) List(project string) *GlobalOperationsListCall {
72572	c := &GlobalOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72573	c.project = project
72574	return c
72575}
72576
72577// Filter sets the optional parameter "filter": A filter expression that
72578// filters resources listed in the response. The expression must specify
72579// the field name, a comparison operator, and the value that you want to
72580// use for filtering. The value must be a string, a number, or a
72581// boolean. The comparison operator must be either `=`, `!=`, `>`, or
72582// `<`. For example, if you are filtering Compute Engine instances, you
72583// can exclude instances named `example-instance` by specifying `name !=
72584// example-instance`. You can also filter nested fields. For example,
72585// you could specify `scheduling.automaticRestart = false` to include
72586// instances only if they are not scheduled for automatic restarts. You
72587// can use filtering on nested fields to filter based on resource
72588// labels. To filter on multiple expressions, provide each separate
72589// expression within parentheses. For example: ```
72590// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
72591// ``` By default, each expression is an `AND` expression. However, you
72592// can include `AND` and `OR` expressions explicitly. For example: ```
72593// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
72594// AND (scheduling.automaticRestart = true) ```
72595func (c *GlobalOperationsListCall) Filter(filter string) *GlobalOperationsListCall {
72596	c.urlParams_.Set("filter", filter)
72597	return c
72598}
72599
72600// MaxResults sets the optional parameter "maxResults": The maximum
72601// number of results per page that should be returned. If the number of
72602// available results is larger than `maxResults`, Compute Engine returns
72603// a `nextPageToken` that can be used to get the next page of results in
72604// subsequent list requests. Acceptable values are `0` to `500`,
72605// inclusive. (Default: `500`)
72606func (c *GlobalOperationsListCall) MaxResults(maxResults int64) *GlobalOperationsListCall {
72607	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
72608	return c
72609}
72610
72611// OrderBy sets the optional parameter "orderBy": Sorts list results by
72612// a certain order. By default, results are returned in alphanumerical
72613// order based on the resource name. You can also sort results in
72614// descending order based on the creation timestamp using
72615// `orderBy="creationTimestamp desc". This sorts results based on the
72616// `creationTimestamp` field in reverse chronological order (newest
72617// result first). Use this to sort resources like operations so that the
72618// newest operation is returned first. Currently, only sorting by `name`
72619// or `creationTimestamp desc` is supported.
72620func (c *GlobalOperationsListCall) OrderBy(orderBy string) *GlobalOperationsListCall {
72621	c.urlParams_.Set("orderBy", orderBy)
72622	return c
72623}
72624
72625// PageToken sets the optional parameter "pageToken": Specifies a page
72626// token to use. Set `pageToken` to the `nextPageToken` returned by a
72627// previous list request to get the next page of results.
72628func (c *GlobalOperationsListCall) PageToken(pageToken string) *GlobalOperationsListCall {
72629	c.urlParams_.Set("pageToken", pageToken)
72630	return c
72631}
72632
72633// ReturnPartialSuccess sets the optional parameter
72634// "returnPartialSuccess": Opt-in for partial success behavior which
72635// provides partial results in case of failure. The default value is
72636// false.
72637func (c *GlobalOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalOperationsListCall {
72638	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
72639	return c
72640}
72641
72642// Fields allows partial responses to be retrieved. See
72643// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72644// for more information.
72645func (c *GlobalOperationsListCall) Fields(s ...googleapi.Field) *GlobalOperationsListCall {
72646	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72647	return c
72648}
72649
72650// IfNoneMatch sets the optional parameter which makes the operation
72651// fail if the object's ETag matches the given value. This is useful for
72652// getting updates only after the object has changed since the last
72653// request. Use googleapi.IsNotModified to check whether the response
72654// error from Do is the result of In-None-Match.
72655func (c *GlobalOperationsListCall) IfNoneMatch(entityTag string) *GlobalOperationsListCall {
72656	c.ifNoneMatch_ = entityTag
72657	return c
72658}
72659
72660// Context sets the context to be used in this call's Do method. Any
72661// pending HTTP request will be aborted if the provided context is
72662// canceled.
72663func (c *GlobalOperationsListCall) Context(ctx context.Context) *GlobalOperationsListCall {
72664	c.ctx_ = ctx
72665	return c
72666}
72667
72668// Header returns an http.Header that can be modified by the caller to
72669// add HTTP headers to the request.
72670func (c *GlobalOperationsListCall) Header() http.Header {
72671	if c.header_ == nil {
72672		c.header_ = make(http.Header)
72673	}
72674	return c.header_
72675}
72676
72677func (c *GlobalOperationsListCall) doRequest(alt string) (*http.Response, error) {
72678	reqHeaders := make(http.Header)
72679	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
72680	for k, v := range c.header_ {
72681		reqHeaders[k] = v
72682	}
72683	reqHeaders.Set("User-Agent", c.s.userAgent())
72684	if c.ifNoneMatch_ != "" {
72685		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
72686	}
72687	var body io.Reader = nil
72688	c.urlParams_.Set("alt", alt)
72689	c.urlParams_.Set("prettyPrint", "false")
72690	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/operations")
72691	urls += "?" + c.urlParams_.Encode()
72692	req, err := http.NewRequest("GET", urls, body)
72693	if err != nil {
72694		return nil, err
72695	}
72696	req.Header = reqHeaders
72697	googleapi.Expand(req.URL, map[string]string{
72698		"project": c.project,
72699	})
72700	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72701}
72702
72703// Do executes the "compute.globalOperations.list" call.
72704// Exactly one of *OperationList or error will be non-nil. Any non-2xx
72705// status code is an error. Response headers are in either
72706// *OperationList.ServerResponse.Header or (if a response was returned
72707// at all) in error.(*googleapi.Error).Header. Use
72708// googleapi.IsNotModified to check whether the returned error was
72709// because http.StatusNotModified was returned.
72710func (c *GlobalOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
72711	gensupport.SetOptions(c.urlParams_, opts...)
72712	res, err := c.doRequest("json")
72713	if res != nil && res.StatusCode == http.StatusNotModified {
72714		if res.Body != nil {
72715			res.Body.Close()
72716		}
72717		return nil, &googleapi.Error{
72718			Code:   res.StatusCode,
72719			Header: res.Header,
72720		}
72721	}
72722	if err != nil {
72723		return nil, err
72724	}
72725	defer googleapi.CloseBody(res)
72726	if err := googleapi.CheckResponse(res); err != nil {
72727		return nil, err
72728	}
72729	ret := &OperationList{
72730		ServerResponse: googleapi.ServerResponse{
72731			Header:         res.Header,
72732			HTTPStatusCode: res.StatusCode,
72733		},
72734	}
72735	target := &ret
72736	if err := gensupport.DecodeResponse(target, res); err != nil {
72737		return nil, err
72738	}
72739	return ret, nil
72740	// {
72741	//   "description": "Retrieves a list of Operation resources contained within the specified project.",
72742	//   "flatPath": "projects/{project}/global/operations",
72743	//   "httpMethod": "GET",
72744	//   "id": "compute.globalOperations.list",
72745	//   "parameterOrder": [
72746	//     "project"
72747	//   ],
72748	//   "parameters": {
72749	//     "filter": {
72750	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
72751	//       "location": "query",
72752	//       "type": "string"
72753	//     },
72754	//     "maxResults": {
72755	//       "default": "500",
72756	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
72757	//       "format": "uint32",
72758	//       "location": "query",
72759	//       "minimum": "0",
72760	//       "type": "integer"
72761	//     },
72762	//     "orderBy": {
72763	//       "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.",
72764	//       "location": "query",
72765	//       "type": "string"
72766	//     },
72767	//     "pageToken": {
72768	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
72769	//       "location": "query",
72770	//       "type": "string"
72771	//     },
72772	//     "project": {
72773	//       "description": "Project ID for this request.",
72774	//       "location": "path",
72775	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72776	//       "required": true,
72777	//       "type": "string"
72778	//     },
72779	//     "returnPartialSuccess": {
72780	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
72781	//       "location": "query",
72782	//       "type": "boolean"
72783	//     }
72784	//   },
72785	//   "path": "projects/{project}/global/operations",
72786	//   "response": {
72787	//     "$ref": "OperationList"
72788	//   },
72789	//   "scopes": [
72790	//     "https://www.googleapis.com/auth/cloud-platform",
72791	//     "https://www.googleapis.com/auth/compute",
72792	//     "https://www.googleapis.com/auth/compute.readonly"
72793	//   ]
72794	// }
72795
72796}
72797
72798// Pages invokes f for each page of results.
72799// A non-nil error returned from f will halt the iteration.
72800// The provided context supersedes any context provided to the Context method.
72801func (c *GlobalOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
72802	c.ctx_ = ctx
72803	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
72804	for {
72805		x, err := c.Do()
72806		if err != nil {
72807			return err
72808		}
72809		if err := f(x); err != nil {
72810			return err
72811		}
72812		if x.NextPageToken == "" {
72813			return nil
72814		}
72815		c.PageToken(x.NextPageToken)
72816	}
72817}
72818
72819// method id "compute.globalOperations.wait":
72820
72821type GlobalOperationsWaitCall struct {
72822	s          *Service
72823	project    string
72824	operation  string
72825	urlParams_ gensupport.URLParams
72826	ctx_       context.Context
72827	header_    http.Header
72828}
72829
72830// Wait: Waits for the specified Operation resource to return as `DONE`
72831// or for the request to approach the 2 minute deadline, and retrieves
72832// the specified Operation resource. This method differs from the `GET`
72833// method in that it waits for no more than the default deadline (2
72834// minutes) and then returns the current state of the operation, which
72835// might be `DONE` or still in progress. This method is called on a
72836// best-effort basis. Specifically: - In uncommon cases, when the server
72837// is overloaded, the request might return before the default deadline
72838// is reached, or might return after zero seconds. - If the default
72839// deadline is reached, there is no guarantee that the operation is
72840// actually done when the method returns. Be prepared to retry if the
72841// operation is not `DONE`.
72842//
72843// - operation: Name of the Operations resource to return.
72844// - project: Project ID for this request.
72845func (r *GlobalOperationsService) Wait(project string, operation string) *GlobalOperationsWaitCall {
72846	c := &GlobalOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72847	c.project = project
72848	c.operation = operation
72849	return c
72850}
72851
72852// Fields allows partial responses to be retrieved. See
72853// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72854// for more information.
72855func (c *GlobalOperationsWaitCall) Fields(s ...googleapi.Field) *GlobalOperationsWaitCall {
72856	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72857	return c
72858}
72859
72860// Context sets the context to be used in this call's Do method. Any
72861// pending HTTP request will be aborted if the provided context is
72862// canceled.
72863func (c *GlobalOperationsWaitCall) Context(ctx context.Context) *GlobalOperationsWaitCall {
72864	c.ctx_ = ctx
72865	return c
72866}
72867
72868// Header returns an http.Header that can be modified by the caller to
72869// add HTTP headers to the request.
72870func (c *GlobalOperationsWaitCall) Header() http.Header {
72871	if c.header_ == nil {
72872		c.header_ = make(http.Header)
72873	}
72874	return c.header_
72875}
72876
72877func (c *GlobalOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
72878	reqHeaders := make(http.Header)
72879	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
72880	for k, v := range c.header_ {
72881		reqHeaders[k] = v
72882	}
72883	reqHeaders.Set("User-Agent", c.s.userAgent())
72884	var body io.Reader = nil
72885	c.urlParams_.Set("alt", alt)
72886	c.urlParams_.Set("prettyPrint", "false")
72887	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/operations/{operation}/wait")
72888	urls += "?" + c.urlParams_.Encode()
72889	req, err := http.NewRequest("POST", urls, body)
72890	if err != nil {
72891		return nil, err
72892	}
72893	req.Header = reqHeaders
72894	googleapi.Expand(req.URL, map[string]string{
72895		"project":   c.project,
72896		"operation": c.operation,
72897	})
72898	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72899}
72900
72901// Do executes the "compute.globalOperations.wait" call.
72902// Exactly one of *Operation or error will be non-nil. Any non-2xx
72903// status code is an error. Response headers are in either
72904// *Operation.ServerResponse.Header or (if a response was returned at
72905// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72906// to check whether the returned error was because
72907// http.StatusNotModified was returned.
72908func (c *GlobalOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72909	gensupport.SetOptions(c.urlParams_, opts...)
72910	res, err := c.doRequest("json")
72911	if res != nil && res.StatusCode == http.StatusNotModified {
72912		if res.Body != nil {
72913			res.Body.Close()
72914		}
72915		return nil, &googleapi.Error{
72916			Code:   res.StatusCode,
72917			Header: res.Header,
72918		}
72919	}
72920	if err != nil {
72921		return nil, err
72922	}
72923	defer googleapi.CloseBody(res)
72924	if err := googleapi.CheckResponse(res); err != nil {
72925		return nil, err
72926	}
72927	ret := &Operation{
72928		ServerResponse: googleapi.ServerResponse{
72929			Header:         res.Header,
72930			HTTPStatusCode: res.StatusCode,
72931		},
72932	}
72933	target := &ret
72934	if err := gensupport.DecodeResponse(target, res); err != nil {
72935		return nil, err
72936	}
72937	return ret, nil
72938	// {
72939	//   "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`. ",
72940	//   "flatPath": "projects/{project}/global/operations/{operation}/wait",
72941	//   "httpMethod": "POST",
72942	//   "id": "compute.globalOperations.wait",
72943	//   "parameterOrder": [
72944	//     "project",
72945	//     "operation"
72946	//   ],
72947	//   "parameters": {
72948	//     "operation": {
72949	//       "description": "Name of the Operations resource to return.",
72950	//       "location": "path",
72951	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72952	//       "required": true,
72953	//       "type": "string"
72954	//     },
72955	//     "project": {
72956	//       "description": "Project ID for this request.",
72957	//       "location": "path",
72958	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72959	//       "required": true,
72960	//       "type": "string"
72961	//     }
72962	//   },
72963	//   "path": "projects/{project}/global/operations/{operation}/wait",
72964	//   "response": {
72965	//     "$ref": "Operation"
72966	//   },
72967	//   "scopes": [
72968	//     "https://www.googleapis.com/auth/cloud-platform",
72969	//     "https://www.googleapis.com/auth/compute",
72970	//     "https://www.googleapis.com/auth/compute.readonly"
72971	//   ]
72972	// }
72973
72974}
72975
72976// method id "compute.globalOrganizationOperations.delete":
72977
72978type GlobalOrganizationOperationsDeleteCall struct {
72979	s          *Service
72980	operation  string
72981	urlParams_ gensupport.URLParams
72982	ctx_       context.Context
72983	header_    http.Header
72984}
72985
72986// Delete: Deletes the specified Operations resource.
72987//
72988// - operation: Name of the Operations resource to delete.
72989func (r *GlobalOrganizationOperationsService) Delete(operation string) *GlobalOrganizationOperationsDeleteCall {
72990	c := &GlobalOrganizationOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72991	c.operation = operation
72992	return c
72993}
72994
72995// ParentId sets the optional parameter "parentId": Parent ID for this
72996// request.
72997func (c *GlobalOrganizationOperationsDeleteCall) ParentId(parentId string) *GlobalOrganizationOperationsDeleteCall {
72998	c.urlParams_.Set("parentId", parentId)
72999	return c
73000}
73001
73002// Fields allows partial responses to be retrieved. See
73003// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73004// for more information.
73005func (c *GlobalOrganizationOperationsDeleteCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsDeleteCall {
73006	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73007	return c
73008}
73009
73010// Context sets the context to be used in this call's Do method. Any
73011// pending HTTP request will be aborted if the provided context is
73012// canceled.
73013func (c *GlobalOrganizationOperationsDeleteCall) Context(ctx context.Context) *GlobalOrganizationOperationsDeleteCall {
73014	c.ctx_ = ctx
73015	return c
73016}
73017
73018// Header returns an http.Header that can be modified by the caller to
73019// add HTTP headers to the request.
73020func (c *GlobalOrganizationOperationsDeleteCall) Header() http.Header {
73021	if c.header_ == nil {
73022		c.header_ = make(http.Header)
73023	}
73024	return c.header_
73025}
73026
73027func (c *GlobalOrganizationOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
73028	reqHeaders := make(http.Header)
73029	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
73030	for k, v := range c.header_ {
73031		reqHeaders[k] = v
73032	}
73033	reqHeaders.Set("User-Agent", c.s.userAgent())
73034	var body io.Reader = nil
73035	c.urlParams_.Set("alt", alt)
73036	c.urlParams_.Set("prettyPrint", "false")
73037	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations/{operation}")
73038	urls += "?" + c.urlParams_.Encode()
73039	req, err := http.NewRequest("DELETE", urls, body)
73040	if err != nil {
73041		return nil, err
73042	}
73043	req.Header = reqHeaders
73044	googleapi.Expand(req.URL, map[string]string{
73045		"operation": c.operation,
73046	})
73047	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73048}
73049
73050// Do executes the "compute.globalOrganizationOperations.delete" call.
73051func (c *GlobalOrganizationOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
73052	gensupport.SetOptions(c.urlParams_, opts...)
73053	res, err := c.doRequest("json")
73054	if err != nil {
73055		return err
73056	}
73057	defer googleapi.CloseBody(res)
73058	if err := googleapi.CheckResponse(res); err != nil {
73059		return err
73060	}
73061	return nil
73062	// {
73063	//   "description": "Deletes the specified Operations resource.",
73064	//   "flatPath": "locations/global/operations/{operation}",
73065	//   "httpMethod": "DELETE",
73066	//   "id": "compute.globalOrganizationOperations.delete",
73067	//   "parameterOrder": [
73068	//     "operation"
73069	//   ],
73070	//   "parameters": {
73071	//     "operation": {
73072	//       "description": "Name of the Operations resource to delete.",
73073	//       "location": "path",
73074	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73075	//       "required": true,
73076	//       "type": "string"
73077	//     },
73078	//     "parentId": {
73079	//       "description": "Parent ID for this request.",
73080	//       "location": "query",
73081	//       "type": "string"
73082	//     }
73083	//   },
73084	//   "path": "locations/global/operations/{operation}",
73085	//   "scopes": [
73086	//     "https://www.googleapis.com/auth/cloud-platform",
73087	//     "https://www.googleapis.com/auth/compute"
73088	//   ]
73089	// }
73090
73091}
73092
73093// method id "compute.globalOrganizationOperations.get":
73094
73095type GlobalOrganizationOperationsGetCall struct {
73096	s            *Service
73097	operation    string
73098	urlParams_   gensupport.URLParams
73099	ifNoneMatch_ string
73100	ctx_         context.Context
73101	header_      http.Header
73102}
73103
73104// Get: Retrieves the specified Operations resource. Gets a list of
73105// operations by making a `list()` request.
73106//
73107// - operation: Name of the Operations resource to return.
73108func (r *GlobalOrganizationOperationsService) Get(operation string) *GlobalOrganizationOperationsGetCall {
73109	c := &GlobalOrganizationOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73110	c.operation = operation
73111	return c
73112}
73113
73114// ParentId sets the optional parameter "parentId": Parent ID for this
73115// request.
73116func (c *GlobalOrganizationOperationsGetCall) ParentId(parentId string) *GlobalOrganizationOperationsGetCall {
73117	c.urlParams_.Set("parentId", parentId)
73118	return c
73119}
73120
73121// Fields allows partial responses to be retrieved. See
73122// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73123// for more information.
73124func (c *GlobalOrganizationOperationsGetCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsGetCall {
73125	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73126	return c
73127}
73128
73129// IfNoneMatch sets the optional parameter which makes the operation
73130// fail if the object's ETag matches the given value. This is useful for
73131// getting updates only after the object has changed since the last
73132// request. Use googleapi.IsNotModified to check whether the response
73133// error from Do is the result of In-None-Match.
73134func (c *GlobalOrganizationOperationsGetCall) IfNoneMatch(entityTag string) *GlobalOrganizationOperationsGetCall {
73135	c.ifNoneMatch_ = entityTag
73136	return c
73137}
73138
73139// Context sets the context to be used in this call's Do method. Any
73140// pending HTTP request will be aborted if the provided context is
73141// canceled.
73142func (c *GlobalOrganizationOperationsGetCall) Context(ctx context.Context) *GlobalOrganizationOperationsGetCall {
73143	c.ctx_ = ctx
73144	return c
73145}
73146
73147// Header returns an http.Header that can be modified by the caller to
73148// add HTTP headers to the request.
73149func (c *GlobalOrganizationOperationsGetCall) Header() http.Header {
73150	if c.header_ == nil {
73151		c.header_ = make(http.Header)
73152	}
73153	return c.header_
73154}
73155
73156func (c *GlobalOrganizationOperationsGetCall) doRequest(alt string) (*http.Response, error) {
73157	reqHeaders := make(http.Header)
73158	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
73159	for k, v := range c.header_ {
73160		reqHeaders[k] = v
73161	}
73162	reqHeaders.Set("User-Agent", c.s.userAgent())
73163	if c.ifNoneMatch_ != "" {
73164		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
73165	}
73166	var body io.Reader = nil
73167	c.urlParams_.Set("alt", alt)
73168	c.urlParams_.Set("prettyPrint", "false")
73169	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations/{operation}")
73170	urls += "?" + c.urlParams_.Encode()
73171	req, err := http.NewRequest("GET", urls, body)
73172	if err != nil {
73173		return nil, err
73174	}
73175	req.Header = reqHeaders
73176	googleapi.Expand(req.URL, map[string]string{
73177		"operation": c.operation,
73178	})
73179	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73180}
73181
73182// Do executes the "compute.globalOrganizationOperations.get" call.
73183// Exactly one of *Operation or error will be non-nil. Any non-2xx
73184// status code is an error. Response headers are in either
73185// *Operation.ServerResponse.Header or (if a response was returned at
73186// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73187// to check whether the returned error was because
73188// http.StatusNotModified was returned.
73189func (c *GlobalOrganizationOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73190	gensupport.SetOptions(c.urlParams_, opts...)
73191	res, err := c.doRequest("json")
73192	if res != nil && res.StatusCode == http.StatusNotModified {
73193		if res.Body != nil {
73194			res.Body.Close()
73195		}
73196		return nil, &googleapi.Error{
73197			Code:   res.StatusCode,
73198			Header: res.Header,
73199		}
73200	}
73201	if err != nil {
73202		return nil, err
73203	}
73204	defer googleapi.CloseBody(res)
73205	if err := googleapi.CheckResponse(res); err != nil {
73206		return nil, err
73207	}
73208	ret := &Operation{
73209		ServerResponse: googleapi.ServerResponse{
73210			Header:         res.Header,
73211			HTTPStatusCode: res.StatusCode,
73212		},
73213	}
73214	target := &ret
73215	if err := gensupport.DecodeResponse(target, res); err != nil {
73216		return nil, err
73217	}
73218	return ret, nil
73219	// {
73220	//   "description": "Retrieves the specified Operations resource. Gets a list of operations by making a `list()` request.",
73221	//   "flatPath": "locations/global/operations/{operation}",
73222	//   "httpMethod": "GET",
73223	//   "id": "compute.globalOrganizationOperations.get",
73224	//   "parameterOrder": [
73225	//     "operation"
73226	//   ],
73227	//   "parameters": {
73228	//     "operation": {
73229	//       "description": "Name of the Operations resource to return.",
73230	//       "location": "path",
73231	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73232	//       "required": true,
73233	//       "type": "string"
73234	//     },
73235	//     "parentId": {
73236	//       "description": "Parent ID for this request.",
73237	//       "location": "query",
73238	//       "type": "string"
73239	//     }
73240	//   },
73241	//   "path": "locations/global/operations/{operation}",
73242	//   "response": {
73243	//     "$ref": "Operation"
73244	//   },
73245	//   "scopes": [
73246	//     "https://www.googleapis.com/auth/cloud-platform",
73247	//     "https://www.googleapis.com/auth/compute",
73248	//     "https://www.googleapis.com/auth/compute.readonly"
73249	//   ]
73250	// }
73251
73252}
73253
73254// method id "compute.globalOrganizationOperations.list":
73255
73256type GlobalOrganizationOperationsListCall struct {
73257	s            *Service
73258	urlParams_   gensupport.URLParams
73259	ifNoneMatch_ string
73260	ctx_         context.Context
73261	header_      http.Header
73262}
73263
73264// List: Retrieves a list of Operation resources contained within the
73265// specified organization.
73266func (r *GlobalOrganizationOperationsService) List() *GlobalOrganizationOperationsListCall {
73267	c := &GlobalOrganizationOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73268	return c
73269}
73270
73271// Filter sets the optional parameter "filter": A filter expression that
73272// filters resources listed in the response. The expression must specify
73273// the field name, a comparison operator, and the value that you want to
73274// use for filtering. The value must be a string, a number, or a
73275// boolean. The comparison operator must be either `=`, `!=`, `>`, or
73276// `<`. For example, if you are filtering Compute Engine instances, you
73277// can exclude instances named `example-instance` by specifying `name !=
73278// example-instance`. You can also filter nested fields. For example,
73279// you could specify `scheduling.automaticRestart = false` to include
73280// instances only if they are not scheduled for automatic restarts. You
73281// can use filtering on nested fields to filter based on resource
73282// labels. To filter on multiple expressions, provide each separate
73283// expression within parentheses. For example: ```
73284// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
73285// ``` By default, each expression is an `AND` expression. However, you
73286// can include `AND` and `OR` expressions explicitly. For example: ```
73287// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
73288// AND (scheduling.automaticRestart = true) ```
73289func (c *GlobalOrganizationOperationsListCall) Filter(filter string) *GlobalOrganizationOperationsListCall {
73290	c.urlParams_.Set("filter", filter)
73291	return c
73292}
73293
73294// MaxResults sets the optional parameter "maxResults": The maximum
73295// number of results per page that should be returned. If the number of
73296// available results is larger than `maxResults`, Compute Engine returns
73297// a `nextPageToken` that can be used to get the next page of results in
73298// subsequent list requests. Acceptable values are `0` to `500`,
73299// inclusive. (Default: `500`)
73300func (c *GlobalOrganizationOperationsListCall) MaxResults(maxResults int64) *GlobalOrganizationOperationsListCall {
73301	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
73302	return c
73303}
73304
73305// OrderBy sets the optional parameter "orderBy": Sorts list results by
73306// a certain order. By default, results are returned in alphanumerical
73307// order based on the resource name. You can also sort results in
73308// descending order based on the creation timestamp using
73309// `orderBy="creationTimestamp desc". This sorts results based on the
73310// `creationTimestamp` field in reverse chronological order (newest
73311// result first). Use this to sort resources like operations so that the
73312// newest operation is returned first. Currently, only sorting by `name`
73313// or `creationTimestamp desc` is supported.
73314func (c *GlobalOrganizationOperationsListCall) OrderBy(orderBy string) *GlobalOrganizationOperationsListCall {
73315	c.urlParams_.Set("orderBy", orderBy)
73316	return c
73317}
73318
73319// PageToken sets the optional parameter "pageToken": Specifies a page
73320// token to use. Set `pageToken` to the `nextPageToken` returned by a
73321// previous list request to get the next page of results.
73322func (c *GlobalOrganizationOperationsListCall) PageToken(pageToken string) *GlobalOrganizationOperationsListCall {
73323	c.urlParams_.Set("pageToken", pageToken)
73324	return c
73325}
73326
73327// ParentId sets the optional parameter "parentId": Parent ID for this
73328// request.
73329func (c *GlobalOrganizationOperationsListCall) ParentId(parentId string) *GlobalOrganizationOperationsListCall {
73330	c.urlParams_.Set("parentId", parentId)
73331	return c
73332}
73333
73334// ReturnPartialSuccess sets the optional parameter
73335// "returnPartialSuccess": Opt-in for partial success behavior which
73336// provides partial results in case of failure. The default value is
73337// false.
73338func (c *GlobalOrganizationOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalOrganizationOperationsListCall {
73339	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
73340	return c
73341}
73342
73343// Fields allows partial responses to be retrieved. See
73344// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73345// for more information.
73346func (c *GlobalOrganizationOperationsListCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsListCall {
73347	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73348	return c
73349}
73350
73351// IfNoneMatch sets the optional parameter which makes the operation
73352// fail if the object's ETag matches the given value. This is useful for
73353// getting updates only after the object has changed since the last
73354// request. Use googleapi.IsNotModified to check whether the response
73355// error from Do is the result of In-None-Match.
73356func (c *GlobalOrganizationOperationsListCall) IfNoneMatch(entityTag string) *GlobalOrganizationOperationsListCall {
73357	c.ifNoneMatch_ = entityTag
73358	return c
73359}
73360
73361// Context sets the context to be used in this call's Do method. Any
73362// pending HTTP request will be aborted if the provided context is
73363// canceled.
73364func (c *GlobalOrganizationOperationsListCall) Context(ctx context.Context) *GlobalOrganizationOperationsListCall {
73365	c.ctx_ = ctx
73366	return c
73367}
73368
73369// Header returns an http.Header that can be modified by the caller to
73370// add HTTP headers to the request.
73371func (c *GlobalOrganizationOperationsListCall) Header() http.Header {
73372	if c.header_ == nil {
73373		c.header_ = make(http.Header)
73374	}
73375	return c.header_
73376}
73377
73378func (c *GlobalOrganizationOperationsListCall) doRequest(alt string) (*http.Response, error) {
73379	reqHeaders := make(http.Header)
73380	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
73381	for k, v := range c.header_ {
73382		reqHeaders[k] = v
73383	}
73384	reqHeaders.Set("User-Agent", c.s.userAgent())
73385	if c.ifNoneMatch_ != "" {
73386		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
73387	}
73388	var body io.Reader = nil
73389	c.urlParams_.Set("alt", alt)
73390	c.urlParams_.Set("prettyPrint", "false")
73391	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations")
73392	urls += "?" + c.urlParams_.Encode()
73393	req, err := http.NewRequest("GET", urls, body)
73394	if err != nil {
73395		return nil, err
73396	}
73397	req.Header = reqHeaders
73398	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73399}
73400
73401// Do executes the "compute.globalOrganizationOperations.list" call.
73402// Exactly one of *OperationList or error will be non-nil. Any non-2xx
73403// status code is an error. Response headers are in either
73404// *OperationList.ServerResponse.Header or (if a response was returned
73405// at all) in error.(*googleapi.Error).Header. Use
73406// googleapi.IsNotModified to check whether the returned error was
73407// because http.StatusNotModified was returned.
73408func (c *GlobalOrganizationOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
73409	gensupport.SetOptions(c.urlParams_, opts...)
73410	res, err := c.doRequest("json")
73411	if res != nil && res.StatusCode == http.StatusNotModified {
73412		if res.Body != nil {
73413			res.Body.Close()
73414		}
73415		return nil, &googleapi.Error{
73416			Code:   res.StatusCode,
73417			Header: res.Header,
73418		}
73419	}
73420	if err != nil {
73421		return nil, err
73422	}
73423	defer googleapi.CloseBody(res)
73424	if err := googleapi.CheckResponse(res); err != nil {
73425		return nil, err
73426	}
73427	ret := &OperationList{
73428		ServerResponse: googleapi.ServerResponse{
73429			Header:         res.Header,
73430			HTTPStatusCode: res.StatusCode,
73431		},
73432	}
73433	target := &ret
73434	if err := gensupport.DecodeResponse(target, res); err != nil {
73435		return nil, err
73436	}
73437	return ret, nil
73438	// {
73439	//   "description": "Retrieves a list of Operation resources contained within the specified organization.",
73440	//   "flatPath": "locations/global/operations",
73441	//   "httpMethod": "GET",
73442	//   "id": "compute.globalOrganizationOperations.list",
73443	//   "parameters": {
73444	//     "filter": {
73445	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
73446	//       "location": "query",
73447	//       "type": "string"
73448	//     },
73449	//     "maxResults": {
73450	//       "default": "500",
73451	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
73452	//       "format": "uint32",
73453	//       "location": "query",
73454	//       "minimum": "0",
73455	//       "type": "integer"
73456	//     },
73457	//     "orderBy": {
73458	//       "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.",
73459	//       "location": "query",
73460	//       "type": "string"
73461	//     },
73462	//     "pageToken": {
73463	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
73464	//       "location": "query",
73465	//       "type": "string"
73466	//     },
73467	//     "parentId": {
73468	//       "description": "Parent ID for this request.",
73469	//       "location": "query",
73470	//       "type": "string"
73471	//     },
73472	//     "returnPartialSuccess": {
73473	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
73474	//       "location": "query",
73475	//       "type": "boolean"
73476	//     }
73477	//   },
73478	//   "path": "locations/global/operations",
73479	//   "response": {
73480	//     "$ref": "OperationList"
73481	//   },
73482	//   "scopes": [
73483	//     "https://www.googleapis.com/auth/cloud-platform",
73484	//     "https://www.googleapis.com/auth/compute",
73485	//     "https://www.googleapis.com/auth/compute.readonly"
73486	//   ]
73487	// }
73488
73489}
73490
73491// Pages invokes f for each page of results.
73492// A non-nil error returned from f will halt the iteration.
73493// The provided context supersedes any context provided to the Context method.
73494func (c *GlobalOrganizationOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
73495	c.ctx_ = ctx
73496	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
73497	for {
73498		x, err := c.Do()
73499		if err != nil {
73500			return err
73501		}
73502		if err := f(x); err != nil {
73503			return err
73504		}
73505		if x.NextPageToken == "" {
73506			return nil
73507		}
73508		c.PageToken(x.NextPageToken)
73509	}
73510}
73511
73512// method id "compute.globalPublicDelegatedPrefixes.delete":
73513
73514type GlobalPublicDelegatedPrefixesDeleteCall struct {
73515	s                     *Service
73516	project               string
73517	publicDelegatedPrefix string
73518	urlParams_            gensupport.URLParams
73519	ctx_                  context.Context
73520	header_               http.Header
73521}
73522
73523// Delete: Deletes the specified global PublicDelegatedPrefix.
73524//
73525// - project: Project ID for this request.
73526// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource
73527//   to delete.
73528func (r *GlobalPublicDelegatedPrefixesService) Delete(project string, publicDelegatedPrefix string) *GlobalPublicDelegatedPrefixesDeleteCall {
73529	c := &GlobalPublicDelegatedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73530	c.project = project
73531	c.publicDelegatedPrefix = publicDelegatedPrefix
73532	return c
73533}
73534
73535// RequestId sets the optional parameter "requestId": An optional
73536// request ID to identify requests. Specify a unique request ID so that
73537// if you must retry your request, the server will know to ignore the
73538// request if it has already been completed. For example, consider a
73539// situation where you make an initial request and the request times
73540// out. If you make the request again with the same request ID, the
73541// server can check if original operation with the same request ID was
73542// received, and if so, will ignore the second request. This prevents
73543// clients from accidentally creating duplicate commitments. The request
73544// ID must be a valid UUID with the exception that zero UUID is not
73545// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
73546// MixerMutationRequestBuilder
73547func (c *GlobalPublicDelegatedPrefixesDeleteCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesDeleteCall {
73548	c.urlParams_.Set("requestId", requestId)
73549	return c
73550}
73551
73552// Fields allows partial responses to be retrieved. See
73553// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73554// for more information.
73555func (c *GlobalPublicDelegatedPrefixesDeleteCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesDeleteCall {
73556	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73557	return c
73558}
73559
73560// Context sets the context to be used in this call's Do method. Any
73561// pending HTTP request will be aborted if the provided context is
73562// canceled.
73563func (c *GlobalPublicDelegatedPrefixesDeleteCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesDeleteCall {
73564	c.ctx_ = ctx
73565	return c
73566}
73567
73568// Header returns an http.Header that can be modified by the caller to
73569// add HTTP headers to the request.
73570func (c *GlobalPublicDelegatedPrefixesDeleteCall) Header() http.Header {
73571	if c.header_ == nil {
73572		c.header_ = make(http.Header)
73573	}
73574	return c.header_
73575}
73576
73577func (c *GlobalPublicDelegatedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) {
73578	reqHeaders := make(http.Header)
73579	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
73580	for k, v := range c.header_ {
73581		reqHeaders[k] = v
73582	}
73583	reqHeaders.Set("User-Agent", c.s.userAgent())
73584	var body io.Reader = nil
73585	c.urlParams_.Set("alt", alt)
73586	c.urlParams_.Set("prettyPrint", "false")
73587	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}")
73588	urls += "?" + c.urlParams_.Encode()
73589	req, err := http.NewRequest("DELETE", urls, body)
73590	if err != nil {
73591		return nil, err
73592	}
73593	req.Header = reqHeaders
73594	googleapi.Expand(req.URL, map[string]string{
73595		"project":               c.project,
73596		"publicDelegatedPrefix": c.publicDelegatedPrefix,
73597	})
73598	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73599}
73600
73601// Do executes the "compute.globalPublicDelegatedPrefixes.delete" call.
73602// Exactly one of *Operation or error will be non-nil. Any non-2xx
73603// status code is an error. Response headers are in either
73604// *Operation.ServerResponse.Header or (if a response was returned at
73605// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73606// to check whether the returned error was because
73607// http.StatusNotModified was returned.
73608func (c *GlobalPublicDelegatedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73609	gensupport.SetOptions(c.urlParams_, opts...)
73610	res, err := c.doRequest("json")
73611	if res != nil && res.StatusCode == http.StatusNotModified {
73612		if res.Body != nil {
73613			res.Body.Close()
73614		}
73615		return nil, &googleapi.Error{
73616			Code:   res.StatusCode,
73617			Header: res.Header,
73618		}
73619	}
73620	if err != nil {
73621		return nil, err
73622	}
73623	defer googleapi.CloseBody(res)
73624	if err := googleapi.CheckResponse(res); err != nil {
73625		return nil, err
73626	}
73627	ret := &Operation{
73628		ServerResponse: googleapi.ServerResponse{
73629			Header:         res.Header,
73630			HTTPStatusCode: res.StatusCode,
73631		},
73632	}
73633	target := &ret
73634	if err := gensupport.DecodeResponse(target, res); err != nil {
73635		return nil, err
73636	}
73637	return ret, nil
73638	// {
73639	//   "description": "Deletes the specified global PublicDelegatedPrefix.",
73640	//   "flatPath": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
73641	//   "httpMethod": "DELETE",
73642	//   "id": "compute.globalPublicDelegatedPrefixes.delete",
73643	//   "parameterOrder": [
73644	//     "project",
73645	//     "publicDelegatedPrefix"
73646	//   ],
73647	//   "parameters": {
73648	//     "project": {
73649	//       "description": "Project ID for this request.",
73650	//       "location": "path",
73651	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73652	//       "required": true,
73653	//       "type": "string"
73654	//     },
73655	//     "publicDelegatedPrefix": {
73656	//       "description": "Name of the PublicDelegatedPrefix resource to delete.",
73657	//       "location": "path",
73658	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73659	//       "required": true,
73660	//       "type": "string"
73661	//     },
73662	//     "requestId": {
73663	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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",
73664	//       "location": "query",
73665	//       "type": "string"
73666	//     }
73667	//   },
73668	//   "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
73669	//   "response": {
73670	//     "$ref": "Operation"
73671	//   },
73672	//   "scopes": [
73673	//     "https://www.googleapis.com/auth/cloud-platform",
73674	//     "https://www.googleapis.com/auth/compute"
73675	//   ]
73676	// }
73677
73678}
73679
73680// method id "compute.globalPublicDelegatedPrefixes.get":
73681
73682type GlobalPublicDelegatedPrefixesGetCall struct {
73683	s                     *Service
73684	project               string
73685	publicDelegatedPrefix string
73686	urlParams_            gensupport.URLParams
73687	ifNoneMatch_          string
73688	ctx_                  context.Context
73689	header_               http.Header
73690}
73691
73692// Get: Returns the specified global PublicDelegatedPrefix resource.
73693//
73694// - project: Project ID for this request.
73695// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource
73696//   to return.
73697func (r *GlobalPublicDelegatedPrefixesService) Get(project string, publicDelegatedPrefix string) *GlobalPublicDelegatedPrefixesGetCall {
73698	c := &GlobalPublicDelegatedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73699	c.project = project
73700	c.publicDelegatedPrefix = publicDelegatedPrefix
73701	return c
73702}
73703
73704// Fields allows partial responses to be retrieved. See
73705// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73706// for more information.
73707func (c *GlobalPublicDelegatedPrefixesGetCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesGetCall {
73708	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73709	return c
73710}
73711
73712// IfNoneMatch sets the optional parameter which makes the operation
73713// fail if the object's ETag matches the given value. This is useful for
73714// getting updates only after the object has changed since the last
73715// request. Use googleapi.IsNotModified to check whether the response
73716// error from Do is the result of In-None-Match.
73717func (c *GlobalPublicDelegatedPrefixesGetCall) IfNoneMatch(entityTag string) *GlobalPublicDelegatedPrefixesGetCall {
73718	c.ifNoneMatch_ = entityTag
73719	return c
73720}
73721
73722// Context sets the context to be used in this call's Do method. Any
73723// pending HTTP request will be aborted if the provided context is
73724// canceled.
73725func (c *GlobalPublicDelegatedPrefixesGetCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesGetCall {
73726	c.ctx_ = ctx
73727	return c
73728}
73729
73730// Header returns an http.Header that can be modified by the caller to
73731// add HTTP headers to the request.
73732func (c *GlobalPublicDelegatedPrefixesGetCall) Header() http.Header {
73733	if c.header_ == nil {
73734		c.header_ = make(http.Header)
73735	}
73736	return c.header_
73737}
73738
73739func (c *GlobalPublicDelegatedPrefixesGetCall) doRequest(alt string) (*http.Response, error) {
73740	reqHeaders := make(http.Header)
73741	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
73742	for k, v := range c.header_ {
73743		reqHeaders[k] = v
73744	}
73745	reqHeaders.Set("User-Agent", c.s.userAgent())
73746	if c.ifNoneMatch_ != "" {
73747		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
73748	}
73749	var body io.Reader = nil
73750	c.urlParams_.Set("alt", alt)
73751	c.urlParams_.Set("prettyPrint", "false")
73752	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}")
73753	urls += "?" + c.urlParams_.Encode()
73754	req, err := http.NewRequest("GET", urls, body)
73755	if err != nil {
73756		return nil, err
73757	}
73758	req.Header = reqHeaders
73759	googleapi.Expand(req.URL, map[string]string{
73760		"project":               c.project,
73761		"publicDelegatedPrefix": c.publicDelegatedPrefix,
73762	})
73763	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73764}
73765
73766// Do executes the "compute.globalPublicDelegatedPrefixes.get" call.
73767// Exactly one of *PublicDelegatedPrefix or error will be non-nil. Any
73768// non-2xx status code is an error. Response headers are in either
73769// *PublicDelegatedPrefix.ServerResponse.Header or (if a response was
73770// returned at all) in error.(*googleapi.Error).Header. Use
73771// googleapi.IsNotModified to check whether the returned error was
73772// because http.StatusNotModified was returned.
73773func (c *GlobalPublicDelegatedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefix, error) {
73774	gensupport.SetOptions(c.urlParams_, opts...)
73775	res, err := c.doRequest("json")
73776	if res != nil && res.StatusCode == http.StatusNotModified {
73777		if res.Body != nil {
73778			res.Body.Close()
73779		}
73780		return nil, &googleapi.Error{
73781			Code:   res.StatusCode,
73782			Header: res.Header,
73783		}
73784	}
73785	if err != nil {
73786		return nil, err
73787	}
73788	defer googleapi.CloseBody(res)
73789	if err := googleapi.CheckResponse(res); err != nil {
73790		return nil, err
73791	}
73792	ret := &PublicDelegatedPrefix{
73793		ServerResponse: googleapi.ServerResponse{
73794			Header:         res.Header,
73795			HTTPStatusCode: res.StatusCode,
73796		},
73797	}
73798	target := &ret
73799	if err := gensupport.DecodeResponse(target, res); err != nil {
73800		return nil, err
73801	}
73802	return ret, nil
73803	// {
73804	//   "description": "Returns the specified global PublicDelegatedPrefix resource.",
73805	//   "flatPath": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
73806	//   "httpMethod": "GET",
73807	//   "id": "compute.globalPublicDelegatedPrefixes.get",
73808	//   "parameterOrder": [
73809	//     "project",
73810	//     "publicDelegatedPrefix"
73811	//   ],
73812	//   "parameters": {
73813	//     "project": {
73814	//       "description": "Project ID for this request.",
73815	//       "location": "path",
73816	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73817	//       "required": true,
73818	//       "type": "string"
73819	//     },
73820	//     "publicDelegatedPrefix": {
73821	//       "description": "Name of the PublicDelegatedPrefix resource to return.",
73822	//       "location": "path",
73823	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73824	//       "required": true,
73825	//       "type": "string"
73826	//     }
73827	//   },
73828	//   "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
73829	//   "response": {
73830	//     "$ref": "PublicDelegatedPrefix"
73831	//   },
73832	//   "scopes": [
73833	//     "https://www.googleapis.com/auth/cloud-platform",
73834	//     "https://www.googleapis.com/auth/compute",
73835	//     "https://www.googleapis.com/auth/compute.readonly"
73836	//   ]
73837	// }
73838
73839}
73840
73841// method id "compute.globalPublicDelegatedPrefixes.insert":
73842
73843type GlobalPublicDelegatedPrefixesInsertCall struct {
73844	s                     *Service
73845	project               string
73846	publicdelegatedprefix *PublicDelegatedPrefix
73847	urlParams_            gensupport.URLParams
73848	ctx_                  context.Context
73849	header_               http.Header
73850}
73851
73852// Insert: Creates a global PublicDelegatedPrefix in the specified
73853// project using the parameters that are included in the request.
73854//
73855// - project: Project ID for this request.
73856func (r *GlobalPublicDelegatedPrefixesService) Insert(project string, publicdelegatedprefix *PublicDelegatedPrefix) *GlobalPublicDelegatedPrefixesInsertCall {
73857	c := &GlobalPublicDelegatedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73858	c.project = project
73859	c.publicdelegatedprefix = publicdelegatedprefix
73860	return c
73861}
73862
73863// RequestId sets the optional parameter "requestId": An optional
73864// request ID to identify requests. Specify a unique request ID so that
73865// if you must retry your request, the server will know to ignore the
73866// request if it has already been completed. For example, consider a
73867// situation where you make an initial request and the request times
73868// out. If you make the request again with the same request ID, the
73869// server can check if original operation with the same request ID was
73870// received, and if so, will ignore the second request. This prevents
73871// clients from accidentally creating duplicate commitments. The request
73872// ID must be a valid UUID with the exception that zero UUID is not
73873// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
73874// MixerMutationRequestBuilder
73875func (c *GlobalPublicDelegatedPrefixesInsertCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesInsertCall {
73876	c.urlParams_.Set("requestId", requestId)
73877	return c
73878}
73879
73880// Fields allows partial responses to be retrieved. See
73881// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73882// for more information.
73883func (c *GlobalPublicDelegatedPrefixesInsertCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesInsertCall {
73884	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73885	return c
73886}
73887
73888// Context sets the context to be used in this call's Do method. Any
73889// pending HTTP request will be aborted if the provided context is
73890// canceled.
73891func (c *GlobalPublicDelegatedPrefixesInsertCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesInsertCall {
73892	c.ctx_ = ctx
73893	return c
73894}
73895
73896// Header returns an http.Header that can be modified by the caller to
73897// add HTTP headers to the request.
73898func (c *GlobalPublicDelegatedPrefixesInsertCall) Header() http.Header {
73899	if c.header_ == nil {
73900		c.header_ = make(http.Header)
73901	}
73902	return c.header_
73903}
73904
73905func (c *GlobalPublicDelegatedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) {
73906	reqHeaders := make(http.Header)
73907	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
73908	for k, v := range c.header_ {
73909		reqHeaders[k] = v
73910	}
73911	reqHeaders.Set("User-Agent", c.s.userAgent())
73912	var body io.Reader = nil
73913	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
73914	if err != nil {
73915		return nil, err
73916	}
73917	reqHeaders.Set("Content-Type", "application/json")
73918	c.urlParams_.Set("alt", alt)
73919	c.urlParams_.Set("prettyPrint", "false")
73920	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes")
73921	urls += "?" + c.urlParams_.Encode()
73922	req, err := http.NewRequest("POST", urls, body)
73923	if err != nil {
73924		return nil, err
73925	}
73926	req.Header = reqHeaders
73927	googleapi.Expand(req.URL, map[string]string{
73928		"project": c.project,
73929	})
73930	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73931}
73932
73933// Do executes the "compute.globalPublicDelegatedPrefixes.insert" call.
73934// Exactly one of *Operation or error will be non-nil. Any non-2xx
73935// status code is an error. Response headers are in either
73936// *Operation.ServerResponse.Header or (if a response was returned at
73937// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73938// to check whether the returned error was because
73939// http.StatusNotModified was returned.
73940func (c *GlobalPublicDelegatedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73941	gensupport.SetOptions(c.urlParams_, opts...)
73942	res, err := c.doRequest("json")
73943	if res != nil && res.StatusCode == http.StatusNotModified {
73944		if res.Body != nil {
73945			res.Body.Close()
73946		}
73947		return nil, &googleapi.Error{
73948			Code:   res.StatusCode,
73949			Header: res.Header,
73950		}
73951	}
73952	if err != nil {
73953		return nil, err
73954	}
73955	defer googleapi.CloseBody(res)
73956	if err := googleapi.CheckResponse(res); err != nil {
73957		return nil, err
73958	}
73959	ret := &Operation{
73960		ServerResponse: googleapi.ServerResponse{
73961			Header:         res.Header,
73962			HTTPStatusCode: res.StatusCode,
73963		},
73964	}
73965	target := &ret
73966	if err := gensupport.DecodeResponse(target, res); err != nil {
73967		return nil, err
73968	}
73969	return ret, nil
73970	// {
73971	//   "description": "Creates a global PublicDelegatedPrefix in the specified project using the parameters that are included in the request.",
73972	//   "flatPath": "projects/{project}/global/publicDelegatedPrefixes",
73973	//   "httpMethod": "POST",
73974	//   "id": "compute.globalPublicDelegatedPrefixes.insert",
73975	//   "parameterOrder": [
73976	//     "project"
73977	//   ],
73978	//   "parameters": {
73979	//     "project": {
73980	//       "description": "Project ID for this request.",
73981	//       "location": "path",
73982	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73983	//       "required": true,
73984	//       "type": "string"
73985	//     },
73986	//     "requestId": {
73987	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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",
73988	//       "location": "query",
73989	//       "type": "string"
73990	//     }
73991	//   },
73992	//   "path": "projects/{project}/global/publicDelegatedPrefixes",
73993	//   "request": {
73994	//     "$ref": "PublicDelegatedPrefix"
73995	//   },
73996	//   "response": {
73997	//     "$ref": "Operation"
73998	//   },
73999	//   "scopes": [
74000	//     "https://www.googleapis.com/auth/cloud-platform",
74001	//     "https://www.googleapis.com/auth/compute"
74002	//   ]
74003	// }
74004
74005}
74006
74007// method id "compute.globalPublicDelegatedPrefixes.list":
74008
74009type GlobalPublicDelegatedPrefixesListCall struct {
74010	s            *Service
74011	project      string
74012	urlParams_   gensupport.URLParams
74013	ifNoneMatch_ string
74014	ctx_         context.Context
74015	header_      http.Header
74016}
74017
74018// List: Lists the global PublicDelegatedPrefixes for a project.
74019//
74020// - project: Project ID for this request.
74021func (r *GlobalPublicDelegatedPrefixesService) List(project string) *GlobalPublicDelegatedPrefixesListCall {
74022	c := &GlobalPublicDelegatedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74023	c.project = project
74024	return c
74025}
74026
74027// Filter sets the optional parameter "filter": A filter expression that
74028// filters resources listed in the response. The expression must specify
74029// the field name, a comparison operator, and the value that you want to
74030// use for filtering. The value must be a string, a number, or a
74031// boolean. The comparison operator must be either `=`, `!=`, `>`, or
74032// `<`. For example, if you are filtering Compute Engine instances, you
74033// can exclude instances named `example-instance` by specifying `name !=
74034// example-instance`. You can also filter nested fields. For example,
74035// you could specify `scheduling.automaticRestart = false` to include
74036// instances only if they are not scheduled for automatic restarts. You
74037// can use filtering on nested fields to filter based on resource
74038// labels. To filter on multiple expressions, provide each separate
74039// expression within parentheses. For example: ```
74040// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
74041// ``` By default, each expression is an `AND` expression. However, you
74042// can include `AND` and `OR` expressions explicitly. For example: ```
74043// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
74044// AND (scheduling.automaticRestart = true) ```
74045func (c *GlobalPublicDelegatedPrefixesListCall) Filter(filter string) *GlobalPublicDelegatedPrefixesListCall {
74046	c.urlParams_.Set("filter", filter)
74047	return c
74048}
74049
74050// MaxResults sets the optional parameter "maxResults": The maximum
74051// number of results per page that should be returned. If the number of
74052// available results is larger than `maxResults`, Compute Engine returns
74053// a `nextPageToken` that can be used to get the next page of results in
74054// subsequent list requests. Acceptable values are `0` to `500`,
74055// inclusive. (Default: `500`)
74056func (c *GlobalPublicDelegatedPrefixesListCall) MaxResults(maxResults int64) *GlobalPublicDelegatedPrefixesListCall {
74057	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
74058	return c
74059}
74060
74061// OrderBy sets the optional parameter "orderBy": Sorts list results by
74062// a certain order. By default, results are returned in alphanumerical
74063// order based on the resource name. You can also sort results in
74064// descending order based on the creation timestamp using
74065// `orderBy="creationTimestamp desc". This sorts results based on the
74066// `creationTimestamp` field in reverse chronological order (newest
74067// result first). Use this to sort resources like operations so that the
74068// newest operation is returned first. Currently, only sorting by `name`
74069// or `creationTimestamp desc` is supported.
74070func (c *GlobalPublicDelegatedPrefixesListCall) OrderBy(orderBy string) *GlobalPublicDelegatedPrefixesListCall {
74071	c.urlParams_.Set("orderBy", orderBy)
74072	return c
74073}
74074
74075// PageToken sets the optional parameter "pageToken": Specifies a page
74076// token to use. Set `pageToken` to the `nextPageToken` returned by a
74077// previous list request to get the next page of results.
74078func (c *GlobalPublicDelegatedPrefixesListCall) PageToken(pageToken string) *GlobalPublicDelegatedPrefixesListCall {
74079	c.urlParams_.Set("pageToken", pageToken)
74080	return c
74081}
74082
74083// ReturnPartialSuccess sets the optional parameter
74084// "returnPartialSuccess": Opt-in for partial success behavior which
74085// provides partial results in case of failure. The default value is
74086// false.
74087func (c *GlobalPublicDelegatedPrefixesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalPublicDelegatedPrefixesListCall {
74088	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
74089	return c
74090}
74091
74092// Fields allows partial responses to be retrieved. See
74093// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74094// for more information.
74095func (c *GlobalPublicDelegatedPrefixesListCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesListCall {
74096	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74097	return c
74098}
74099
74100// IfNoneMatch sets the optional parameter which makes the operation
74101// fail if the object's ETag matches the given value. This is useful for
74102// getting updates only after the object has changed since the last
74103// request. Use googleapi.IsNotModified to check whether the response
74104// error from Do is the result of In-None-Match.
74105func (c *GlobalPublicDelegatedPrefixesListCall) IfNoneMatch(entityTag string) *GlobalPublicDelegatedPrefixesListCall {
74106	c.ifNoneMatch_ = entityTag
74107	return c
74108}
74109
74110// Context sets the context to be used in this call's Do method. Any
74111// pending HTTP request will be aborted if the provided context is
74112// canceled.
74113func (c *GlobalPublicDelegatedPrefixesListCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesListCall {
74114	c.ctx_ = ctx
74115	return c
74116}
74117
74118// Header returns an http.Header that can be modified by the caller to
74119// add HTTP headers to the request.
74120func (c *GlobalPublicDelegatedPrefixesListCall) Header() http.Header {
74121	if c.header_ == nil {
74122		c.header_ = make(http.Header)
74123	}
74124	return c.header_
74125}
74126
74127func (c *GlobalPublicDelegatedPrefixesListCall) doRequest(alt string) (*http.Response, error) {
74128	reqHeaders := make(http.Header)
74129	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
74130	for k, v := range c.header_ {
74131		reqHeaders[k] = v
74132	}
74133	reqHeaders.Set("User-Agent", c.s.userAgent())
74134	if c.ifNoneMatch_ != "" {
74135		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74136	}
74137	var body io.Reader = nil
74138	c.urlParams_.Set("alt", alt)
74139	c.urlParams_.Set("prettyPrint", "false")
74140	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes")
74141	urls += "?" + c.urlParams_.Encode()
74142	req, err := http.NewRequest("GET", urls, body)
74143	if err != nil {
74144		return nil, err
74145	}
74146	req.Header = reqHeaders
74147	googleapi.Expand(req.URL, map[string]string{
74148		"project": c.project,
74149	})
74150	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74151}
74152
74153// Do executes the "compute.globalPublicDelegatedPrefixes.list" call.
74154// Exactly one of *PublicDelegatedPrefixList or error will be non-nil.
74155// Any non-2xx status code is an error. Response headers are in either
74156// *PublicDelegatedPrefixList.ServerResponse.Header or (if a response
74157// was returned at all) in error.(*googleapi.Error).Header. Use
74158// googleapi.IsNotModified to check whether the returned error was
74159// because http.StatusNotModified was returned.
74160func (c *GlobalPublicDelegatedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixList, error) {
74161	gensupport.SetOptions(c.urlParams_, opts...)
74162	res, err := c.doRequest("json")
74163	if res != nil && res.StatusCode == http.StatusNotModified {
74164		if res.Body != nil {
74165			res.Body.Close()
74166		}
74167		return nil, &googleapi.Error{
74168			Code:   res.StatusCode,
74169			Header: res.Header,
74170		}
74171	}
74172	if err != nil {
74173		return nil, err
74174	}
74175	defer googleapi.CloseBody(res)
74176	if err := googleapi.CheckResponse(res); err != nil {
74177		return nil, err
74178	}
74179	ret := &PublicDelegatedPrefixList{
74180		ServerResponse: googleapi.ServerResponse{
74181			Header:         res.Header,
74182			HTTPStatusCode: res.StatusCode,
74183		},
74184	}
74185	target := &ret
74186	if err := gensupport.DecodeResponse(target, res); err != nil {
74187		return nil, err
74188	}
74189	return ret, nil
74190	// {
74191	//   "description": "Lists the global PublicDelegatedPrefixes for a project.",
74192	//   "flatPath": "projects/{project}/global/publicDelegatedPrefixes",
74193	//   "httpMethod": "GET",
74194	//   "id": "compute.globalPublicDelegatedPrefixes.list",
74195	//   "parameterOrder": [
74196	//     "project"
74197	//   ],
74198	//   "parameters": {
74199	//     "filter": {
74200	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
74201	//       "location": "query",
74202	//       "type": "string"
74203	//     },
74204	//     "maxResults": {
74205	//       "default": "500",
74206	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
74207	//       "format": "uint32",
74208	//       "location": "query",
74209	//       "minimum": "0",
74210	//       "type": "integer"
74211	//     },
74212	//     "orderBy": {
74213	//       "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.",
74214	//       "location": "query",
74215	//       "type": "string"
74216	//     },
74217	//     "pageToken": {
74218	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
74219	//       "location": "query",
74220	//       "type": "string"
74221	//     },
74222	//     "project": {
74223	//       "description": "Project ID for this request.",
74224	//       "location": "path",
74225	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74226	//       "required": true,
74227	//       "type": "string"
74228	//     },
74229	//     "returnPartialSuccess": {
74230	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
74231	//       "location": "query",
74232	//       "type": "boolean"
74233	//     }
74234	//   },
74235	//   "path": "projects/{project}/global/publicDelegatedPrefixes",
74236	//   "response": {
74237	//     "$ref": "PublicDelegatedPrefixList"
74238	//   },
74239	//   "scopes": [
74240	//     "https://www.googleapis.com/auth/cloud-platform",
74241	//     "https://www.googleapis.com/auth/compute",
74242	//     "https://www.googleapis.com/auth/compute.readonly"
74243	//   ]
74244	// }
74245
74246}
74247
74248// Pages invokes f for each page of results.
74249// A non-nil error returned from f will halt the iteration.
74250// The provided context supersedes any context provided to the Context method.
74251func (c *GlobalPublicDelegatedPrefixesListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixList) error) error {
74252	c.ctx_ = ctx
74253	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
74254	for {
74255		x, err := c.Do()
74256		if err != nil {
74257			return err
74258		}
74259		if err := f(x); err != nil {
74260			return err
74261		}
74262		if x.NextPageToken == "" {
74263			return nil
74264		}
74265		c.PageToken(x.NextPageToken)
74266	}
74267}
74268
74269// method id "compute.globalPublicDelegatedPrefixes.patch":
74270
74271type GlobalPublicDelegatedPrefixesPatchCall struct {
74272	s                     *Service
74273	project               string
74274	publicDelegatedPrefix string
74275	publicdelegatedprefix *PublicDelegatedPrefix
74276	urlParams_            gensupport.URLParams
74277	ctx_                  context.Context
74278	header_               http.Header
74279}
74280
74281// Patch: Patches the specified global PublicDelegatedPrefix resource
74282// with the data included in the request. This method supports PATCH
74283// semantics and uses JSON merge patch format and processing rules.
74284//
74285// - project: Project ID for this request.
74286// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource
74287//   to patch.
74288func (r *GlobalPublicDelegatedPrefixesService) Patch(project string, publicDelegatedPrefix string, publicdelegatedprefix *PublicDelegatedPrefix) *GlobalPublicDelegatedPrefixesPatchCall {
74289	c := &GlobalPublicDelegatedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74290	c.project = project
74291	c.publicDelegatedPrefix = publicDelegatedPrefix
74292	c.publicdelegatedprefix = publicdelegatedprefix
74293	return c
74294}
74295
74296// RequestId sets the optional parameter "requestId": An optional
74297// request ID to identify requests. Specify a unique request ID so that
74298// if you must retry your request, the server will know to ignore the
74299// request if it has already been completed. For example, consider a
74300// situation where you make an initial request and the request times
74301// out. If you make the request again with the same request ID, the
74302// server can check if original operation with the same request ID was
74303// received, and if so, will ignore the second request. This prevents
74304// clients from accidentally creating duplicate commitments. The request
74305// ID must be a valid UUID with the exception that zero UUID is not
74306// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
74307// MixerMutationRequestBuilder
74308func (c *GlobalPublicDelegatedPrefixesPatchCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesPatchCall {
74309	c.urlParams_.Set("requestId", requestId)
74310	return c
74311}
74312
74313// Fields allows partial responses to be retrieved. See
74314// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74315// for more information.
74316func (c *GlobalPublicDelegatedPrefixesPatchCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesPatchCall {
74317	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74318	return c
74319}
74320
74321// Context sets the context to be used in this call's Do method. Any
74322// pending HTTP request will be aborted if the provided context is
74323// canceled.
74324func (c *GlobalPublicDelegatedPrefixesPatchCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesPatchCall {
74325	c.ctx_ = ctx
74326	return c
74327}
74328
74329// Header returns an http.Header that can be modified by the caller to
74330// add HTTP headers to the request.
74331func (c *GlobalPublicDelegatedPrefixesPatchCall) Header() http.Header {
74332	if c.header_ == nil {
74333		c.header_ = make(http.Header)
74334	}
74335	return c.header_
74336}
74337
74338func (c *GlobalPublicDelegatedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) {
74339	reqHeaders := make(http.Header)
74340	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
74341	for k, v := range c.header_ {
74342		reqHeaders[k] = v
74343	}
74344	reqHeaders.Set("User-Agent", c.s.userAgent())
74345	var body io.Reader = nil
74346	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
74347	if err != nil {
74348		return nil, err
74349	}
74350	reqHeaders.Set("Content-Type", "application/json")
74351	c.urlParams_.Set("alt", alt)
74352	c.urlParams_.Set("prettyPrint", "false")
74353	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}")
74354	urls += "?" + c.urlParams_.Encode()
74355	req, err := http.NewRequest("PATCH", urls, body)
74356	if err != nil {
74357		return nil, err
74358	}
74359	req.Header = reqHeaders
74360	googleapi.Expand(req.URL, map[string]string{
74361		"project":               c.project,
74362		"publicDelegatedPrefix": c.publicDelegatedPrefix,
74363	})
74364	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74365}
74366
74367// Do executes the "compute.globalPublicDelegatedPrefixes.patch" call.
74368// Exactly one of *Operation or error will be non-nil. Any non-2xx
74369// status code is an error. Response headers are in either
74370// *Operation.ServerResponse.Header or (if a response was returned at
74371// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74372// to check whether the returned error was because
74373// http.StatusNotModified was returned.
74374func (c *GlobalPublicDelegatedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74375	gensupport.SetOptions(c.urlParams_, opts...)
74376	res, err := c.doRequest("json")
74377	if res != nil && res.StatusCode == http.StatusNotModified {
74378		if res.Body != nil {
74379			res.Body.Close()
74380		}
74381		return nil, &googleapi.Error{
74382			Code:   res.StatusCode,
74383			Header: res.Header,
74384		}
74385	}
74386	if err != nil {
74387		return nil, err
74388	}
74389	defer googleapi.CloseBody(res)
74390	if err := googleapi.CheckResponse(res); err != nil {
74391		return nil, err
74392	}
74393	ret := &Operation{
74394		ServerResponse: googleapi.ServerResponse{
74395			Header:         res.Header,
74396			HTTPStatusCode: res.StatusCode,
74397		},
74398	}
74399	target := &ret
74400	if err := gensupport.DecodeResponse(target, res); err != nil {
74401		return nil, err
74402	}
74403	return ret, nil
74404	// {
74405	//   "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.",
74406	//   "flatPath": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
74407	//   "httpMethod": "PATCH",
74408	//   "id": "compute.globalPublicDelegatedPrefixes.patch",
74409	//   "parameterOrder": [
74410	//     "project",
74411	//     "publicDelegatedPrefix"
74412	//   ],
74413	//   "parameters": {
74414	//     "project": {
74415	//       "description": "Project ID for this request.",
74416	//       "location": "path",
74417	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74418	//       "required": true,
74419	//       "type": "string"
74420	//     },
74421	//     "publicDelegatedPrefix": {
74422	//       "description": "Name of the PublicDelegatedPrefix resource to patch.",
74423	//       "location": "path",
74424	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74425	//       "required": true,
74426	//       "type": "string"
74427	//     },
74428	//     "requestId": {
74429	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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",
74430	//       "location": "query",
74431	//       "type": "string"
74432	//     }
74433	//   },
74434	//   "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
74435	//   "request": {
74436	//     "$ref": "PublicDelegatedPrefix"
74437	//   },
74438	//   "response": {
74439	//     "$ref": "Operation"
74440	//   },
74441	//   "scopes": [
74442	//     "https://www.googleapis.com/auth/cloud-platform",
74443	//     "https://www.googleapis.com/auth/compute"
74444	//   ]
74445	// }
74446
74447}
74448
74449// method id "compute.healthChecks.aggregatedList":
74450
74451type HealthChecksAggregatedListCall struct {
74452	s            *Service
74453	project      string
74454	urlParams_   gensupport.URLParams
74455	ifNoneMatch_ string
74456	ctx_         context.Context
74457	header_      http.Header
74458}
74459
74460// AggregatedList: Retrieves the list of all HealthCheck resources,
74461// regional and global, available to the specified project.
74462//
74463// - project: Name of the project scoping this request.
74464func (r *HealthChecksService) AggregatedList(project string) *HealthChecksAggregatedListCall {
74465	c := &HealthChecksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74466	c.project = project
74467	return c
74468}
74469
74470// Filter sets the optional parameter "filter": A filter expression that
74471// filters resources listed in the response. The expression must specify
74472// the field name, a comparison operator, and the value that you want to
74473// use for filtering. The value must be a string, a number, or a
74474// boolean. The comparison operator must be either `=`, `!=`, `>`, or
74475// `<`. For example, if you are filtering Compute Engine instances, you
74476// can exclude instances named `example-instance` by specifying `name !=
74477// example-instance`. You can also filter nested fields. For example,
74478// you could specify `scheduling.automaticRestart = false` to include
74479// instances only if they are not scheduled for automatic restarts. You
74480// can use filtering on nested fields to filter based on resource
74481// labels. To filter on multiple expressions, provide each separate
74482// expression within parentheses. For example: ```
74483// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
74484// ``` By default, each expression is an `AND` expression. However, you
74485// can include `AND` and `OR` expressions explicitly. For example: ```
74486// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
74487// AND (scheduling.automaticRestart = true) ```
74488func (c *HealthChecksAggregatedListCall) Filter(filter string) *HealthChecksAggregatedListCall {
74489	c.urlParams_.Set("filter", filter)
74490	return c
74491}
74492
74493// IncludeAllScopes sets the optional parameter "includeAllScopes":
74494// Indicates whether every visible scope for each scope type (zone,
74495// region, global) should be included in the response. For new resource
74496// types added after this field, the flag has no effect as new resource
74497// types will always include every visible scope for each scope type in
74498// response. For resource types which predate this field, if this flag
74499// is omitted or false, only scopes of the scope types where the
74500// resource type is expected to be found will be included.
74501func (c *HealthChecksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *HealthChecksAggregatedListCall {
74502	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
74503	return c
74504}
74505
74506// MaxResults sets the optional parameter "maxResults": The maximum
74507// number of results per page that should be returned. If the number of
74508// available results is larger than `maxResults`, Compute Engine returns
74509// a `nextPageToken` that can be used to get the next page of results in
74510// subsequent list requests. Acceptable values are `0` to `500`,
74511// inclusive. (Default: `500`)
74512func (c *HealthChecksAggregatedListCall) MaxResults(maxResults int64) *HealthChecksAggregatedListCall {
74513	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
74514	return c
74515}
74516
74517// OrderBy sets the optional parameter "orderBy": Sorts list results by
74518// a certain order. By default, results are returned in alphanumerical
74519// order based on the resource name. You can also sort results in
74520// descending order based on the creation timestamp using
74521// `orderBy="creationTimestamp desc". This sorts results based on the
74522// `creationTimestamp` field in reverse chronological order (newest
74523// result first). Use this to sort resources like operations so that the
74524// newest operation is returned first. Currently, only sorting by `name`
74525// or `creationTimestamp desc` is supported.
74526func (c *HealthChecksAggregatedListCall) OrderBy(orderBy string) *HealthChecksAggregatedListCall {
74527	c.urlParams_.Set("orderBy", orderBy)
74528	return c
74529}
74530
74531// PageToken sets the optional parameter "pageToken": Specifies a page
74532// token to use. Set `pageToken` to the `nextPageToken` returned by a
74533// previous list request to get the next page of results.
74534func (c *HealthChecksAggregatedListCall) PageToken(pageToken string) *HealthChecksAggregatedListCall {
74535	c.urlParams_.Set("pageToken", pageToken)
74536	return c
74537}
74538
74539// ReturnPartialSuccess sets the optional parameter
74540// "returnPartialSuccess": Opt-in for partial success behavior which
74541// provides partial results in case of failure. The default value is
74542// false.
74543func (c *HealthChecksAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HealthChecksAggregatedListCall {
74544	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
74545	return c
74546}
74547
74548// Fields allows partial responses to be retrieved. See
74549// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74550// for more information.
74551func (c *HealthChecksAggregatedListCall) Fields(s ...googleapi.Field) *HealthChecksAggregatedListCall {
74552	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74553	return c
74554}
74555
74556// IfNoneMatch sets the optional parameter which makes the operation
74557// fail if the object's ETag matches the given value. This is useful for
74558// getting updates only after the object has changed since the last
74559// request. Use googleapi.IsNotModified to check whether the response
74560// error from Do is the result of In-None-Match.
74561func (c *HealthChecksAggregatedListCall) IfNoneMatch(entityTag string) *HealthChecksAggregatedListCall {
74562	c.ifNoneMatch_ = entityTag
74563	return c
74564}
74565
74566// Context sets the context to be used in this call's Do method. Any
74567// pending HTTP request will be aborted if the provided context is
74568// canceled.
74569func (c *HealthChecksAggregatedListCall) Context(ctx context.Context) *HealthChecksAggregatedListCall {
74570	c.ctx_ = ctx
74571	return c
74572}
74573
74574// Header returns an http.Header that can be modified by the caller to
74575// add HTTP headers to the request.
74576func (c *HealthChecksAggregatedListCall) Header() http.Header {
74577	if c.header_ == nil {
74578		c.header_ = make(http.Header)
74579	}
74580	return c.header_
74581}
74582
74583func (c *HealthChecksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
74584	reqHeaders := make(http.Header)
74585	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
74586	for k, v := range c.header_ {
74587		reqHeaders[k] = v
74588	}
74589	reqHeaders.Set("User-Agent", c.s.userAgent())
74590	if c.ifNoneMatch_ != "" {
74591		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74592	}
74593	var body io.Reader = nil
74594	c.urlParams_.Set("alt", alt)
74595	c.urlParams_.Set("prettyPrint", "false")
74596	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/healthChecks")
74597	urls += "?" + c.urlParams_.Encode()
74598	req, err := http.NewRequest("GET", urls, body)
74599	if err != nil {
74600		return nil, err
74601	}
74602	req.Header = reqHeaders
74603	googleapi.Expand(req.URL, map[string]string{
74604		"project": c.project,
74605	})
74606	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74607}
74608
74609// Do executes the "compute.healthChecks.aggregatedList" call.
74610// Exactly one of *HealthChecksAggregatedList or error will be non-nil.
74611// Any non-2xx status code is an error. Response headers are in either
74612// *HealthChecksAggregatedList.ServerResponse.Header or (if a response
74613// was returned at all) in error.(*googleapi.Error).Header. Use
74614// googleapi.IsNotModified to check whether the returned error was
74615// because http.StatusNotModified was returned.
74616func (c *HealthChecksAggregatedListCall) Do(opts ...googleapi.CallOption) (*HealthChecksAggregatedList, error) {
74617	gensupport.SetOptions(c.urlParams_, opts...)
74618	res, err := c.doRequest("json")
74619	if res != nil && res.StatusCode == http.StatusNotModified {
74620		if res.Body != nil {
74621			res.Body.Close()
74622		}
74623		return nil, &googleapi.Error{
74624			Code:   res.StatusCode,
74625			Header: res.Header,
74626		}
74627	}
74628	if err != nil {
74629		return nil, err
74630	}
74631	defer googleapi.CloseBody(res)
74632	if err := googleapi.CheckResponse(res); err != nil {
74633		return nil, err
74634	}
74635	ret := &HealthChecksAggregatedList{
74636		ServerResponse: googleapi.ServerResponse{
74637			Header:         res.Header,
74638			HTTPStatusCode: res.StatusCode,
74639		},
74640	}
74641	target := &ret
74642	if err := gensupport.DecodeResponse(target, res); err != nil {
74643		return nil, err
74644	}
74645	return ret, nil
74646	// {
74647	//   "description": "Retrieves the list of all HealthCheck resources, regional and global, available to the specified project.",
74648	//   "flatPath": "projects/{project}/aggregated/healthChecks",
74649	//   "httpMethod": "GET",
74650	//   "id": "compute.healthChecks.aggregatedList",
74651	//   "parameterOrder": [
74652	//     "project"
74653	//   ],
74654	//   "parameters": {
74655	//     "filter": {
74656	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
74657	//       "location": "query",
74658	//       "type": "string"
74659	//     },
74660	//     "includeAllScopes": {
74661	//       "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.",
74662	//       "location": "query",
74663	//       "type": "boolean"
74664	//     },
74665	//     "maxResults": {
74666	//       "default": "500",
74667	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
74668	//       "format": "uint32",
74669	//       "location": "query",
74670	//       "minimum": "0",
74671	//       "type": "integer"
74672	//     },
74673	//     "orderBy": {
74674	//       "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.",
74675	//       "location": "query",
74676	//       "type": "string"
74677	//     },
74678	//     "pageToken": {
74679	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
74680	//       "location": "query",
74681	//       "type": "string"
74682	//     },
74683	//     "project": {
74684	//       "description": "Name of the project scoping this request.",
74685	//       "location": "path",
74686	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74687	//       "required": true,
74688	//       "type": "string"
74689	//     },
74690	//     "returnPartialSuccess": {
74691	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
74692	//       "location": "query",
74693	//       "type": "boolean"
74694	//     }
74695	//   },
74696	//   "path": "projects/{project}/aggregated/healthChecks",
74697	//   "response": {
74698	//     "$ref": "HealthChecksAggregatedList"
74699	//   },
74700	//   "scopes": [
74701	//     "https://www.googleapis.com/auth/cloud-platform",
74702	//     "https://www.googleapis.com/auth/compute",
74703	//     "https://www.googleapis.com/auth/compute.readonly"
74704	//   ]
74705	// }
74706
74707}
74708
74709// Pages invokes f for each page of results.
74710// A non-nil error returned from f will halt the iteration.
74711// The provided context supersedes any context provided to the Context method.
74712func (c *HealthChecksAggregatedListCall) Pages(ctx context.Context, f func(*HealthChecksAggregatedList) error) error {
74713	c.ctx_ = ctx
74714	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
74715	for {
74716		x, err := c.Do()
74717		if err != nil {
74718			return err
74719		}
74720		if err := f(x); err != nil {
74721			return err
74722		}
74723		if x.NextPageToken == "" {
74724			return nil
74725		}
74726		c.PageToken(x.NextPageToken)
74727	}
74728}
74729
74730// method id "compute.healthChecks.delete":
74731
74732type HealthChecksDeleteCall struct {
74733	s           *Service
74734	project     string
74735	healthCheck string
74736	urlParams_  gensupport.URLParams
74737	ctx_        context.Context
74738	header_     http.Header
74739}
74740
74741// Delete: Deletes the specified HealthCheck resource.
74742//
74743// - healthCheck: Name of the HealthCheck resource to delete.
74744// - project: Project ID for this request.
74745func (r *HealthChecksService) Delete(project string, healthCheck string) *HealthChecksDeleteCall {
74746	c := &HealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74747	c.project = project
74748	c.healthCheck = healthCheck
74749	return c
74750}
74751
74752// RequestId sets the optional parameter "requestId": An optional
74753// request ID to identify requests. Specify a unique request ID so that
74754// if you must retry your request, the server will know to ignore the
74755// request if it has already been completed. For example, consider a
74756// situation where you make an initial request and the request times
74757// out. If you make the request again with the same request ID, the
74758// server can check if original operation with the same request ID was
74759// received, and if so, will ignore the second request. This prevents
74760// clients from accidentally creating duplicate commitments. The request
74761// ID must be a valid UUID with the exception that zero UUID is not
74762// supported ( 00000000-0000-0000-0000-000000000000).
74763func (c *HealthChecksDeleteCall) RequestId(requestId string) *HealthChecksDeleteCall {
74764	c.urlParams_.Set("requestId", requestId)
74765	return c
74766}
74767
74768// Fields allows partial responses to be retrieved. See
74769// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74770// for more information.
74771func (c *HealthChecksDeleteCall) Fields(s ...googleapi.Field) *HealthChecksDeleteCall {
74772	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74773	return c
74774}
74775
74776// Context sets the context to be used in this call's Do method. Any
74777// pending HTTP request will be aborted if the provided context is
74778// canceled.
74779func (c *HealthChecksDeleteCall) Context(ctx context.Context) *HealthChecksDeleteCall {
74780	c.ctx_ = ctx
74781	return c
74782}
74783
74784// Header returns an http.Header that can be modified by the caller to
74785// add HTTP headers to the request.
74786func (c *HealthChecksDeleteCall) Header() http.Header {
74787	if c.header_ == nil {
74788		c.header_ = make(http.Header)
74789	}
74790	return c.header_
74791}
74792
74793func (c *HealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
74794	reqHeaders := make(http.Header)
74795	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
74796	for k, v := range c.header_ {
74797		reqHeaders[k] = v
74798	}
74799	reqHeaders.Set("User-Agent", c.s.userAgent())
74800	var body io.Reader = nil
74801	c.urlParams_.Set("alt", alt)
74802	c.urlParams_.Set("prettyPrint", "false")
74803	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{healthCheck}")
74804	urls += "?" + c.urlParams_.Encode()
74805	req, err := http.NewRequest("DELETE", urls, body)
74806	if err != nil {
74807		return nil, err
74808	}
74809	req.Header = reqHeaders
74810	googleapi.Expand(req.URL, map[string]string{
74811		"project":     c.project,
74812		"healthCheck": c.healthCheck,
74813	})
74814	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74815}
74816
74817// Do executes the "compute.healthChecks.delete" call.
74818// Exactly one of *Operation or error will be non-nil. Any non-2xx
74819// status code is an error. Response headers are in either
74820// *Operation.ServerResponse.Header or (if a response was returned at
74821// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74822// to check whether the returned error was because
74823// http.StatusNotModified was returned.
74824func (c *HealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74825	gensupport.SetOptions(c.urlParams_, opts...)
74826	res, err := c.doRequest("json")
74827	if res != nil && res.StatusCode == http.StatusNotModified {
74828		if res.Body != nil {
74829			res.Body.Close()
74830		}
74831		return nil, &googleapi.Error{
74832			Code:   res.StatusCode,
74833			Header: res.Header,
74834		}
74835	}
74836	if err != nil {
74837		return nil, err
74838	}
74839	defer googleapi.CloseBody(res)
74840	if err := googleapi.CheckResponse(res); err != nil {
74841		return nil, err
74842	}
74843	ret := &Operation{
74844		ServerResponse: googleapi.ServerResponse{
74845			Header:         res.Header,
74846			HTTPStatusCode: res.StatusCode,
74847		},
74848	}
74849	target := &ret
74850	if err := gensupport.DecodeResponse(target, res); err != nil {
74851		return nil, err
74852	}
74853	return ret, nil
74854	// {
74855	//   "description": "Deletes the specified HealthCheck resource.",
74856	//   "flatPath": "projects/{project}/global/healthChecks/{healthCheck}",
74857	//   "httpMethod": "DELETE",
74858	//   "id": "compute.healthChecks.delete",
74859	//   "parameterOrder": [
74860	//     "project",
74861	//     "healthCheck"
74862	//   ],
74863	//   "parameters": {
74864	//     "healthCheck": {
74865	//       "description": "Name of the HealthCheck resource to delete.",
74866	//       "location": "path",
74867	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74868	//       "required": true,
74869	//       "type": "string"
74870	//     },
74871	//     "project": {
74872	//       "description": "Project ID for this request.",
74873	//       "location": "path",
74874	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74875	//       "required": true,
74876	//       "type": "string"
74877	//     },
74878	//     "requestId": {
74879	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
74880	//       "location": "query",
74881	//       "type": "string"
74882	//     }
74883	//   },
74884	//   "path": "projects/{project}/global/healthChecks/{healthCheck}",
74885	//   "response": {
74886	//     "$ref": "Operation"
74887	//   },
74888	//   "scopes": [
74889	//     "https://www.googleapis.com/auth/cloud-platform",
74890	//     "https://www.googleapis.com/auth/compute"
74891	//   ]
74892	// }
74893
74894}
74895
74896// method id "compute.healthChecks.get":
74897
74898type HealthChecksGetCall struct {
74899	s            *Service
74900	project      string
74901	healthCheck  string
74902	urlParams_   gensupport.URLParams
74903	ifNoneMatch_ string
74904	ctx_         context.Context
74905	header_      http.Header
74906}
74907
74908// Get: Returns the specified HealthCheck resource. Gets a list of
74909// available health checks by making a list() request.
74910//
74911// - healthCheck: Name of the HealthCheck resource to return.
74912// - project: Project ID for this request.
74913func (r *HealthChecksService) Get(project string, healthCheck string) *HealthChecksGetCall {
74914	c := &HealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74915	c.project = project
74916	c.healthCheck = healthCheck
74917	return c
74918}
74919
74920// Fields allows partial responses to be retrieved. See
74921// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74922// for more information.
74923func (c *HealthChecksGetCall) Fields(s ...googleapi.Field) *HealthChecksGetCall {
74924	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74925	return c
74926}
74927
74928// IfNoneMatch sets the optional parameter which makes the operation
74929// fail if the object's ETag matches the given value. This is useful for
74930// getting updates only after the object has changed since the last
74931// request. Use googleapi.IsNotModified to check whether the response
74932// error from Do is the result of In-None-Match.
74933func (c *HealthChecksGetCall) IfNoneMatch(entityTag string) *HealthChecksGetCall {
74934	c.ifNoneMatch_ = entityTag
74935	return c
74936}
74937
74938// Context sets the context to be used in this call's Do method. Any
74939// pending HTTP request will be aborted if the provided context is
74940// canceled.
74941func (c *HealthChecksGetCall) Context(ctx context.Context) *HealthChecksGetCall {
74942	c.ctx_ = ctx
74943	return c
74944}
74945
74946// Header returns an http.Header that can be modified by the caller to
74947// add HTTP headers to the request.
74948func (c *HealthChecksGetCall) Header() http.Header {
74949	if c.header_ == nil {
74950		c.header_ = make(http.Header)
74951	}
74952	return c.header_
74953}
74954
74955func (c *HealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
74956	reqHeaders := make(http.Header)
74957	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
74958	for k, v := range c.header_ {
74959		reqHeaders[k] = v
74960	}
74961	reqHeaders.Set("User-Agent", c.s.userAgent())
74962	if c.ifNoneMatch_ != "" {
74963		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74964	}
74965	var body io.Reader = nil
74966	c.urlParams_.Set("alt", alt)
74967	c.urlParams_.Set("prettyPrint", "false")
74968	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{healthCheck}")
74969	urls += "?" + c.urlParams_.Encode()
74970	req, err := http.NewRequest("GET", urls, body)
74971	if err != nil {
74972		return nil, err
74973	}
74974	req.Header = reqHeaders
74975	googleapi.Expand(req.URL, map[string]string{
74976		"project":     c.project,
74977		"healthCheck": c.healthCheck,
74978	})
74979	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74980}
74981
74982// Do executes the "compute.healthChecks.get" call.
74983// Exactly one of *HealthCheck or error will be non-nil. Any non-2xx
74984// status code is an error. Response headers are in either
74985// *HealthCheck.ServerResponse.Header or (if a response was returned at
74986// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74987// to check whether the returned error was because
74988// http.StatusNotModified was returned.
74989func (c *HealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthCheck, error) {
74990	gensupport.SetOptions(c.urlParams_, opts...)
74991	res, err := c.doRequest("json")
74992	if res != nil && res.StatusCode == http.StatusNotModified {
74993		if res.Body != nil {
74994			res.Body.Close()
74995		}
74996		return nil, &googleapi.Error{
74997			Code:   res.StatusCode,
74998			Header: res.Header,
74999		}
75000	}
75001	if err != nil {
75002		return nil, err
75003	}
75004	defer googleapi.CloseBody(res)
75005	if err := googleapi.CheckResponse(res); err != nil {
75006		return nil, err
75007	}
75008	ret := &HealthCheck{
75009		ServerResponse: googleapi.ServerResponse{
75010			Header:         res.Header,
75011			HTTPStatusCode: res.StatusCode,
75012		},
75013	}
75014	target := &ret
75015	if err := gensupport.DecodeResponse(target, res); err != nil {
75016		return nil, err
75017	}
75018	return ret, nil
75019	// {
75020	//   "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.",
75021	//   "flatPath": "projects/{project}/global/healthChecks/{healthCheck}",
75022	//   "httpMethod": "GET",
75023	//   "id": "compute.healthChecks.get",
75024	//   "parameterOrder": [
75025	//     "project",
75026	//     "healthCheck"
75027	//   ],
75028	//   "parameters": {
75029	//     "healthCheck": {
75030	//       "description": "Name of the HealthCheck resource to return.",
75031	//       "location": "path",
75032	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75033	//       "required": true,
75034	//       "type": "string"
75035	//     },
75036	//     "project": {
75037	//       "description": "Project ID for this request.",
75038	//       "location": "path",
75039	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75040	//       "required": true,
75041	//       "type": "string"
75042	//     }
75043	//   },
75044	//   "path": "projects/{project}/global/healthChecks/{healthCheck}",
75045	//   "response": {
75046	//     "$ref": "HealthCheck"
75047	//   },
75048	//   "scopes": [
75049	//     "https://www.googleapis.com/auth/cloud-platform",
75050	//     "https://www.googleapis.com/auth/compute",
75051	//     "https://www.googleapis.com/auth/compute.readonly"
75052	//   ]
75053	// }
75054
75055}
75056
75057// method id "compute.healthChecks.insert":
75058
75059type HealthChecksInsertCall struct {
75060	s           *Service
75061	project     string
75062	healthcheck *HealthCheck
75063	urlParams_  gensupport.URLParams
75064	ctx_        context.Context
75065	header_     http.Header
75066}
75067
75068// Insert: Creates a HealthCheck resource in the specified project using
75069// the data included in the request.
75070//
75071// - project: Project ID for this request.
75072func (r *HealthChecksService) Insert(project string, healthcheck *HealthCheck) *HealthChecksInsertCall {
75073	c := &HealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75074	c.project = project
75075	c.healthcheck = healthcheck
75076	return c
75077}
75078
75079// RequestId sets the optional parameter "requestId": An optional
75080// request ID to identify requests. Specify a unique request ID so that
75081// if you must retry your request, the server will know to ignore the
75082// request if it has already been completed. For example, consider a
75083// situation where you make an initial request and the request times
75084// out. If you make the request again with the same request ID, the
75085// server can check if original operation with the same request ID was
75086// received, and if so, will ignore the second request. This prevents
75087// clients from accidentally creating duplicate commitments. The request
75088// ID must be a valid UUID with the exception that zero UUID is not
75089// supported ( 00000000-0000-0000-0000-000000000000).
75090func (c *HealthChecksInsertCall) RequestId(requestId string) *HealthChecksInsertCall {
75091	c.urlParams_.Set("requestId", requestId)
75092	return c
75093}
75094
75095// Fields allows partial responses to be retrieved. See
75096// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75097// for more information.
75098func (c *HealthChecksInsertCall) Fields(s ...googleapi.Field) *HealthChecksInsertCall {
75099	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75100	return c
75101}
75102
75103// Context sets the context to be used in this call's Do method. Any
75104// pending HTTP request will be aborted if the provided context is
75105// canceled.
75106func (c *HealthChecksInsertCall) Context(ctx context.Context) *HealthChecksInsertCall {
75107	c.ctx_ = ctx
75108	return c
75109}
75110
75111// Header returns an http.Header that can be modified by the caller to
75112// add HTTP headers to the request.
75113func (c *HealthChecksInsertCall) Header() http.Header {
75114	if c.header_ == nil {
75115		c.header_ = make(http.Header)
75116	}
75117	return c.header_
75118}
75119
75120func (c *HealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
75121	reqHeaders := make(http.Header)
75122	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
75123	for k, v := range c.header_ {
75124		reqHeaders[k] = v
75125	}
75126	reqHeaders.Set("User-Agent", c.s.userAgent())
75127	var body io.Reader = nil
75128	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
75129	if err != nil {
75130		return nil, err
75131	}
75132	reqHeaders.Set("Content-Type", "application/json")
75133	c.urlParams_.Set("alt", alt)
75134	c.urlParams_.Set("prettyPrint", "false")
75135	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks")
75136	urls += "?" + c.urlParams_.Encode()
75137	req, err := http.NewRequest("POST", urls, body)
75138	if err != nil {
75139		return nil, err
75140	}
75141	req.Header = reqHeaders
75142	googleapi.Expand(req.URL, map[string]string{
75143		"project": c.project,
75144	})
75145	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75146}
75147
75148// Do executes the "compute.healthChecks.insert" call.
75149// Exactly one of *Operation or error will be non-nil. Any non-2xx
75150// status code is an error. Response headers are in either
75151// *Operation.ServerResponse.Header or (if a response was returned at
75152// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75153// to check whether the returned error was because
75154// http.StatusNotModified was returned.
75155func (c *HealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75156	gensupport.SetOptions(c.urlParams_, opts...)
75157	res, err := c.doRequest("json")
75158	if res != nil && res.StatusCode == http.StatusNotModified {
75159		if res.Body != nil {
75160			res.Body.Close()
75161		}
75162		return nil, &googleapi.Error{
75163			Code:   res.StatusCode,
75164			Header: res.Header,
75165		}
75166	}
75167	if err != nil {
75168		return nil, err
75169	}
75170	defer googleapi.CloseBody(res)
75171	if err := googleapi.CheckResponse(res); err != nil {
75172		return nil, err
75173	}
75174	ret := &Operation{
75175		ServerResponse: googleapi.ServerResponse{
75176			Header:         res.Header,
75177			HTTPStatusCode: res.StatusCode,
75178		},
75179	}
75180	target := &ret
75181	if err := gensupport.DecodeResponse(target, res); err != nil {
75182		return nil, err
75183	}
75184	return ret, nil
75185	// {
75186	//   "description": "Creates a HealthCheck resource in the specified project using the data included in the request.",
75187	//   "flatPath": "projects/{project}/global/healthChecks",
75188	//   "httpMethod": "POST",
75189	//   "id": "compute.healthChecks.insert",
75190	//   "parameterOrder": [
75191	//     "project"
75192	//   ],
75193	//   "parameters": {
75194	//     "project": {
75195	//       "description": "Project ID for this request.",
75196	//       "location": "path",
75197	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75198	//       "required": true,
75199	//       "type": "string"
75200	//     },
75201	//     "requestId": {
75202	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
75203	//       "location": "query",
75204	//       "type": "string"
75205	//     }
75206	//   },
75207	//   "path": "projects/{project}/global/healthChecks",
75208	//   "request": {
75209	//     "$ref": "HealthCheck"
75210	//   },
75211	//   "response": {
75212	//     "$ref": "Operation"
75213	//   },
75214	//   "scopes": [
75215	//     "https://www.googleapis.com/auth/cloud-platform",
75216	//     "https://www.googleapis.com/auth/compute"
75217	//   ]
75218	// }
75219
75220}
75221
75222// method id "compute.healthChecks.list":
75223
75224type HealthChecksListCall struct {
75225	s            *Service
75226	project      string
75227	urlParams_   gensupport.URLParams
75228	ifNoneMatch_ string
75229	ctx_         context.Context
75230	header_      http.Header
75231}
75232
75233// List: Retrieves the list of HealthCheck resources available to the
75234// specified project.
75235//
75236// - project: Project ID for this request.
75237func (r *HealthChecksService) List(project string) *HealthChecksListCall {
75238	c := &HealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75239	c.project = project
75240	return c
75241}
75242
75243// Filter sets the optional parameter "filter": A filter expression that
75244// filters resources listed in the response. The expression must specify
75245// the field name, a comparison operator, and the value that you want to
75246// use for filtering. The value must be a string, a number, or a
75247// boolean. The comparison operator must be either `=`, `!=`, `>`, or
75248// `<`. For example, if you are filtering Compute Engine instances, you
75249// can exclude instances named `example-instance` by specifying `name !=
75250// example-instance`. You can also filter nested fields. For example,
75251// you could specify `scheduling.automaticRestart = false` to include
75252// instances only if they are not scheduled for automatic restarts. You
75253// can use filtering on nested fields to filter based on resource
75254// labels. To filter on multiple expressions, provide each separate
75255// expression within parentheses. For example: ```
75256// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
75257// ``` By default, each expression is an `AND` expression. However, you
75258// can include `AND` and `OR` expressions explicitly. For example: ```
75259// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
75260// AND (scheduling.automaticRestart = true) ```
75261func (c *HealthChecksListCall) Filter(filter string) *HealthChecksListCall {
75262	c.urlParams_.Set("filter", filter)
75263	return c
75264}
75265
75266// MaxResults sets the optional parameter "maxResults": The maximum
75267// number of results per page that should be returned. If the number of
75268// available results is larger than `maxResults`, Compute Engine returns
75269// a `nextPageToken` that can be used to get the next page of results in
75270// subsequent list requests. Acceptable values are `0` to `500`,
75271// inclusive. (Default: `500`)
75272func (c *HealthChecksListCall) MaxResults(maxResults int64) *HealthChecksListCall {
75273	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
75274	return c
75275}
75276
75277// OrderBy sets the optional parameter "orderBy": Sorts list results by
75278// a certain order. By default, results are returned in alphanumerical
75279// order based on the resource name. You can also sort results in
75280// descending order based on the creation timestamp using
75281// `orderBy="creationTimestamp desc". This sorts results based on the
75282// `creationTimestamp` field in reverse chronological order (newest
75283// result first). Use this to sort resources like operations so that the
75284// newest operation is returned first. Currently, only sorting by `name`
75285// or `creationTimestamp desc` is supported.
75286func (c *HealthChecksListCall) OrderBy(orderBy string) *HealthChecksListCall {
75287	c.urlParams_.Set("orderBy", orderBy)
75288	return c
75289}
75290
75291// PageToken sets the optional parameter "pageToken": Specifies a page
75292// token to use. Set `pageToken` to the `nextPageToken` returned by a
75293// previous list request to get the next page of results.
75294func (c *HealthChecksListCall) PageToken(pageToken string) *HealthChecksListCall {
75295	c.urlParams_.Set("pageToken", pageToken)
75296	return c
75297}
75298
75299// ReturnPartialSuccess sets the optional parameter
75300// "returnPartialSuccess": Opt-in for partial success behavior which
75301// provides partial results in case of failure. The default value is
75302// false.
75303func (c *HealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HealthChecksListCall {
75304	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
75305	return c
75306}
75307
75308// Fields allows partial responses to be retrieved. See
75309// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75310// for more information.
75311func (c *HealthChecksListCall) Fields(s ...googleapi.Field) *HealthChecksListCall {
75312	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75313	return c
75314}
75315
75316// IfNoneMatch sets the optional parameter which makes the operation
75317// fail if the object's ETag matches the given value. This is useful for
75318// getting updates only after the object has changed since the last
75319// request. Use googleapi.IsNotModified to check whether the response
75320// error from Do is the result of In-None-Match.
75321func (c *HealthChecksListCall) IfNoneMatch(entityTag string) *HealthChecksListCall {
75322	c.ifNoneMatch_ = entityTag
75323	return c
75324}
75325
75326// Context sets the context to be used in this call's Do method. Any
75327// pending HTTP request will be aborted if the provided context is
75328// canceled.
75329func (c *HealthChecksListCall) Context(ctx context.Context) *HealthChecksListCall {
75330	c.ctx_ = ctx
75331	return c
75332}
75333
75334// Header returns an http.Header that can be modified by the caller to
75335// add HTTP headers to the request.
75336func (c *HealthChecksListCall) Header() http.Header {
75337	if c.header_ == nil {
75338		c.header_ = make(http.Header)
75339	}
75340	return c.header_
75341}
75342
75343func (c *HealthChecksListCall) doRequest(alt string) (*http.Response, error) {
75344	reqHeaders := make(http.Header)
75345	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
75346	for k, v := range c.header_ {
75347		reqHeaders[k] = v
75348	}
75349	reqHeaders.Set("User-Agent", c.s.userAgent())
75350	if c.ifNoneMatch_ != "" {
75351		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
75352	}
75353	var body io.Reader = nil
75354	c.urlParams_.Set("alt", alt)
75355	c.urlParams_.Set("prettyPrint", "false")
75356	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks")
75357	urls += "?" + c.urlParams_.Encode()
75358	req, err := http.NewRequest("GET", urls, body)
75359	if err != nil {
75360		return nil, err
75361	}
75362	req.Header = reqHeaders
75363	googleapi.Expand(req.URL, map[string]string{
75364		"project": c.project,
75365	})
75366	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75367}
75368
75369// Do executes the "compute.healthChecks.list" call.
75370// Exactly one of *HealthCheckList or error will be non-nil. Any non-2xx
75371// status code is an error. Response headers are in either
75372// *HealthCheckList.ServerResponse.Header or (if a response was returned
75373// at all) in error.(*googleapi.Error).Header. Use
75374// googleapi.IsNotModified to check whether the returned error was
75375// because http.StatusNotModified was returned.
75376func (c *HealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckList, error) {
75377	gensupport.SetOptions(c.urlParams_, opts...)
75378	res, err := c.doRequest("json")
75379	if res != nil && res.StatusCode == http.StatusNotModified {
75380		if res.Body != nil {
75381			res.Body.Close()
75382		}
75383		return nil, &googleapi.Error{
75384			Code:   res.StatusCode,
75385			Header: res.Header,
75386		}
75387	}
75388	if err != nil {
75389		return nil, err
75390	}
75391	defer googleapi.CloseBody(res)
75392	if err := googleapi.CheckResponse(res); err != nil {
75393		return nil, err
75394	}
75395	ret := &HealthCheckList{
75396		ServerResponse: googleapi.ServerResponse{
75397			Header:         res.Header,
75398			HTTPStatusCode: res.StatusCode,
75399		},
75400	}
75401	target := &ret
75402	if err := gensupport.DecodeResponse(target, res); err != nil {
75403		return nil, err
75404	}
75405	return ret, nil
75406	// {
75407	//   "description": "Retrieves the list of HealthCheck resources available to the specified project.",
75408	//   "flatPath": "projects/{project}/global/healthChecks",
75409	//   "httpMethod": "GET",
75410	//   "id": "compute.healthChecks.list",
75411	//   "parameterOrder": [
75412	//     "project"
75413	//   ],
75414	//   "parameters": {
75415	//     "filter": {
75416	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
75417	//       "location": "query",
75418	//       "type": "string"
75419	//     },
75420	//     "maxResults": {
75421	//       "default": "500",
75422	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
75423	//       "format": "uint32",
75424	//       "location": "query",
75425	//       "minimum": "0",
75426	//       "type": "integer"
75427	//     },
75428	//     "orderBy": {
75429	//       "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.",
75430	//       "location": "query",
75431	//       "type": "string"
75432	//     },
75433	//     "pageToken": {
75434	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
75435	//       "location": "query",
75436	//       "type": "string"
75437	//     },
75438	//     "project": {
75439	//       "description": "Project ID for this request.",
75440	//       "location": "path",
75441	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75442	//       "required": true,
75443	//       "type": "string"
75444	//     },
75445	//     "returnPartialSuccess": {
75446	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
75447	//       "location": "query",
75448	//       "type": "boolean"
75449	//     }
75450	//   },
75451	//   "path": "projects/{project}/global/healthChecks",
75452	//   "response": {
75453	//     "$ref": "HealthCheckList"
75454	//   },
75455	//   "scopes": [
75456	//     "https://www.googleapis.com/auth/cloud-platform",
75457	//     "https://www.googleapis.com/auth/compute",
75458	//     "https://www.googleapis.com/auth/compute.readonly"
75459	//   ]
75460	// }
75461
75462}
75463
75464// Pages invokes f for each page of results.
75465// A non-nil error returned from f will halt the iteration.
75466// The provided context supersedes any context provided to the Context method.
75467func (c *HealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckList) error) error {
75468	c.ctx_ = ctx
75469	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
75470	for {
75471		x, err := c.Do()
75472		if err != nil {
75473			return err
75474		}
75475		if err := f(x); err != nil {
75476			return err
75477		}
75478		if x.NextPageToken == "" {
75479			return nil
75480		}
75481		c.PageToken(x.NextPageToken)
75482	}
75483}
75484
75485// method id "compute.healthChecks.patch":
75486
75487type HealthChecksPatchCall struct {
75488	s           *Service
75489	project     string
75490	healthCheck string
75491	healthcheck *HealthCheck
75492	urlParams_  gensupport.URLParams
75493	ctx_        context.Context
75494	header_     http.Header
75495}
75496
75497// Patch: Updates a HealthCheck resource in the specified project using
75498// the data included in the request. This method supports PATCH
75499// semantics and uses the JSON merge patch format and processing rules.
75500//
75501// - healthCheck: Name of the HealthCheck resource to patch.
75502// - project: Project ID for this request.
75503func (r *HealthChecksService) Patch(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksPatchCall {
75504	c := &HealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75505	c.project = project
75506	c.healthCheck = healthCheck
75507	c.healthcheck = healthcheck
75508	return c
75509}
75510
75511// RequestId sets the optional parameter "requestId": An optional
75512// request ID to identify requests. Specify a unique request ID so that
75513// if you must retry your request, the server will know to ignore the
75514// request if it has already been completed. For example, consider a
75515// situation where you make an initial request and the request times
75516// out. If you make the request again with the same request ID, the
75517// server can check if original operation with the same request ID was
75518// received, and if so, will ignore the second request. This prevents
75519// clients from accidentally creating duplicate commitments. The request
75520// ID must be a valid UUID with the exception that zero UUID is not
75521// supported ( 00000000-0000-0000-0000-000000000000).
75522func (c *HealthChecksPatchCall) RequestId(requestId string) *HealthChecksPatchCall {
75523	c.urlParams_.Set("requestId", requestId)
75524	return c
75525}
75526
75527// Fields allows partial responses to be retrieved. See
75528// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75529// for more information.
75530func (c *HealthChecksPatchCall) Fields(s ...googleapi.Field) *HealthChecksPatchCall {
75531	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75532	return c
75533}
75534
75535// Context sets the context to be used in this call's Do method. Any
75536// pending HTTP request will be aborted if the provided context is
75537// canceled.
75538func (c *HealthChecksPatchCall) Context(ctx context.Context) *HealthChecksPatchCall {
75539	c.ctx_ = ctx
75540	return c
75541}
75542
75543// Header returns an http.Header that can be modified by the caller to
75544// add HTTP headers to the request.
75545func (c *HealthChecksPatchCall) Header() http.Header {
75546	if c.header_ == nil {
75547		c.header_ = make(http.Header)
75548	}
75549	return c.header_
75550}
75551
75552func (c *HealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
75553	reqHeaders := make(http.Header)
75554	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
75555	for k, v := range c.header_ {
75556		reqHeaders[k] = v
75557	}
75558	reqHeaders.Set("User-Agent", c.s.userAgent())
75559	var body io.Reader = nil
75560	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
75561	if err != nil {
75562		return nil, err
75563	}
75564	reqHeaders.Set("Content-Type", "application/json")
75565	c.urlParams_.Set("alt", alt)
75566	c.urlParams_.Set("prettyPrint", "false")
75567	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{healthCheck}")
75568	urls += "?" + c.urlParams_.Encode()
75569	req, err := http.NewRequest("PATCH", urls, body)
75570	if err != nil {
75571		return nil, err
75572	}
75573	req.Header = reqHeaders
75574	googleapi.Expand(req.URL, map[string]string{
75575		"project":     c.project,
75576		"healthCheck": c.healthCheck,
75577	})
75578	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75579}
75580
75581// Do executes the "compute.healthChecks.patch" call.
75582// Exactly one of *Operation or error will be non-nil. Any non-2xx
75583// status code is an error. Response headers are in either
75584// *Operation.ServerResponse.Header or (if a response was returned at
75585// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75586// to check whether the returned error was because
75587// http.StatusNotModified was returned.
75588func (c *HealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75589	gensupport.SetOptions(c.urlParams_, opts...)
75590	res, err := c.doRequest("json")
75591	if res != nil && res.StatusCode == http.StatusNotModified {
75592		if res.Body != nil {
75593			res.Body.Close()
75594		}
75595		return nil, &googleapi.Error{
75596			Code:   res.StatusCode,
75597			Header: res.Header,
75598		}
75599	}
75600	if err != nil {
75601		return nil, err
75602	}
75603	defer googleapi.CloseBody(res)
75604	if err := googleapi.CheckResponse(res); err != nil {
75605		return nil, err
75606	}
75607	ret := &Operation{
75608		ServerResponse: googleapi.ServerResponse{
75609			Header:         res.Header,
75610			HTTPStatusCode: res.StatusCode,
75611		},
75612	}
75613	target := &ret
75614	if err := gensupport.DecodeResponse(target, res); err != nil {
75615		return nil, err
75616	}
75617	return ret, nil
75618	// {
75619	//   "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.",
75620	//   "flatPath": "projects/{project}/global/healthChecks/{healthCheck}",
75621	//   "httpMethod": "PATCH",
75622	//   "id": "compute.healthChecks.patch",
75623	//   "parameterOrder": [
75624	//     "project",
75625	//     "healthCheck"
75626	//   ],
75627	//   "parameters": {
75628	//     "healthCheck": {
75629	//       "description": "Name of the HealthCheck resource to patch.",
75630	//       "location": "path",
75631	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75632	//       "required": true,
75633	//       "type": "string"
75634	//     },
75635	//     "project": {
75636	//       "description": "Project ID for this request.",
75637	//       "location": "path",
75638	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75639	//       "required": true,
75640	//       "type": "string"
75641	//     },
75642	//     "requestId": {
75643	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
75644	//       "location": "query",
75645	//       "type": "string"
75646	//     }
75647	//   },
75648	//   "path": "projects/{project}/global/healthChecks/{healthCheck}",
75649	//   "request": {
75650	//     "$ref": "HealthCheck"
75651	//   },
75652	//   "response": {
75653	//     "$ref": "Operation"
75654	//   },
75655	//   "scopes": [
75656	//     "https://www.googleapis.com/auth/cloud-platform",
75657	//     "https://www.googleapis.com/auth/compute"
75658	//   ]
75659	// }
75660
75661}
75662
75663// method id "compute.healthChecks.update":
75664
75665type HealthChecksUpdateCall struct {
75666	s           *Service
75667	project     string
75668	healthCheck string
75669	healthcheck *HealthCheck
75670	urlParams_  gensupport.URLParams
75671	ctx_        context.Context
75672	header_     http.Header
75673}
75674
75675// Update: Updates a HealthCheck resource in the specified project using
75676// the data included in the request.
75677//
75678// - healthCheck: Name of the HealthCheck resource to update.
75679// - project: Project ID for this request.
75680func (r *HealthChecksService) Update(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksUpdateCall {
75681	c := &HealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75682	c.project = project
75683	c.healthCheck = healthCheck
75684	c.healthcheck = healthcheck
75685	return c
75686}
75687
75688// RequestId sets the optional parameter "requestId": An optional
75689// request ID to identify requests. Specify a unique request ID so that
75690// if you must retry your request, the server will know to ignore the
75691// request if it has already been completed. For example, consider a
75692// situation where you make an initial request and the request times
75693// out. If you make the request again with the same request ID, the
75694// server can check if original operation with the same request ID was
75695// received, and if so, will ignore the second request. This prevents
75696// clients from accidentally creating duplicate commitments. The request
75697// ID must be a valid UUID with the exception that zero UUID is not
75698// supported ( 00000000-0000-0000-0000-000000000000).
75699func (c *HealthChecksUpdateCall) RequestId(requestId string) *HealthChecksUpdateCall {
75700	c.urlParams_.Set("requestId", requestId)
75701	return c
75702}
75703
75704// Fields allows partial responses to be retrieved. See
75705// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75706// for more information.
75707func (c *HealthChecksUpdateCall) Fields(s ...googleapi.Field) *HealthChecksUpdateCall {
75708	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75709	return c
75710}
75711
75712// Context sets the context to be used in this call's Do method. Any
75713// pending HTTP request will be aborted if the provided context is
75714// canceled.
75715func (c *HealthChecksUpdateCall) Context(ctx context.Context) *HealthChecksUpdateCall {
75716	c.ctx_ = ctx
75717	return c
75718}
75719
75720// Header returns an http.Header that can be modified by the caller to
75721// add HTTP headers to the request.
75722func (c *HealthChecksUpdateCall) Header() http.Header {
75723	if c.header_ == nil {
75724		c.header_ = make(http.Header)
75725	}
75726	return c.header_
75727}
75728
75729func (c *HealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
75730	reqHeaders := make(http.Header)
75731	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
75732	for k, v := range c.header_ {
75733		reqHeaders[k] = v
75734	}
75735	reqHeaders.Set("User-Agent", c.s.userAgent())
75736	var body io.Reader = nil
75737	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
75738	if err != nil {
75739		return nil, err
75740	}
75741	reqHeaders.Set("Content-Type", "application/json")
75742	c.urlParams_.Set("alt", alt)
75743	c.urlParams_.Set("prettyPrint", "false")
75744	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{healthCheck}")
75745	urls += "?" + c.urlParams_.Encode()
75746	req, err := http.NewRequest("PUT", urls, body)
75747	if err != nil {
75748		return nil, err
75749	}
75750	req.Header = reqHeaders
75751	googleapi.Expand(req.URL, map[string]string{
75752		"project":     c.project,
75753		"healthCheck": c.healthCheck,
75754	})
75755	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75756}
75757
75758// Do executes the "compute.healthChecks.update" call.
75759// Exactly one of *Operation or error will be non-nil. Any non-2xx
75760// status code is an error. Response headers are in either
75761// *Operation.ServerResponse.Header or (if a response was returned at
75762// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75763// to check whether the returned error was because
75764// http.StatusNotModified was returned.
75765func (c *HealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75766	gensupport.SetOptions(c.urlParams_, opts...)
75767	res, err := c.doRequest("json")
75768	if res != nil && res.StatusCode == http.StatusNotModified {
75769		if res.Body != nil {
75770			res.Body.Close()
75771		}
75772		return nil, &googleapi.Error{
75773			Code:   res.StatusCode,
75774			Header: res.Header,
75775		}
75776	}
75777	if err != nil {
75778		return nil, err
75779	}
75780	defer googleapi.CloseBody(res)
75781	if err := googleapi.CheckResponse(res); err != nil {
75782		return nil, err
75783	}
75784	ret := &Operation{
75785		ServerResponse: googleapi.ServerResponse{
75786			Header:         res.Header,
75787			HTTPStatusCode: res.StatusCode,
75788		},
75789	}
75790	target := &ret
75791	if err := gensupport.DecodeResponse(target, res); err != nil {
75792		return nil, err
75793	}
75794	return ret, nil
75795	// {
75796	//   "description": "Updates a HealthCheck resource in the specified project using the data included in the request.",
75797	//   "flatPath": "projects/{project}/global/healthChecks/{healthCheck}",
75798	//   "httpMethod": "PUT",
75799	//   "id": "compute.healthChecks.update",
75800	//   "parameterOrder": [
75801	//     "project",
75802	//     "healthCheck"
75803	//   ],
75804	//   "parameters": {
75805	//     "healthCheck": {
75806	//       "description": "Name of the HealthCheck resource to update.",
75807	//       "location": "path",
75808	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75809	//       "required": true,
75810	//       "type": "string"
75811	//     },
75812	//     "project": {
75813	//       "description": "Project ID for this request.",
75814	//       "location": "path",
75815	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75816	//       "required": true,
75817	//       "type": "string"
75818	//     },
75819	//     "requestId": {
75820	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
75821	//       "location": "query",
75822	//       "type": "string"
75823	//     }
75824	//   },
75825	//   "path": "projects/{project}/global/healthChecks/{healthCheck}",
75826	//   "request": {
75827	//     "$ref": "HealthCheck"
75828	//   },
75829	//   "response": {
75830	//     "$ref": "Operation"
75831	//   },
75832	//   "scopes": [
75833	//     "https://www.googleapis.com/auth/cloud-platform",
75834	//     "https://www.googleapis.com/auth/compute"
75835	//   ]
75836	// }
75837
75838}
75839
75840// method id "compute.httpHealthChecks.delete":
75841
75842type HttpHealthChecksDeleteCall struct {
75843	s               *Service
75844	project         string
75845	httpHealthCheck string
75846	urlParams_      gensupport.URLParams
75847	ctx_            context.Context
75848	header_         http.Header
75849}
75850
75851// Delete: Deletes the specified HttpHealthCheck resource.
75852//
75853// - httpHealthCheck: Name of the HttpHealthCheck resource to delete.
75854// - project: Project ID for this request.
75855func (r *HttpHealthChecksService) Delete(project string, httpHealthCheck string) *HttpHealthChecksDeleteCall {
75856	c := &HttpHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75857	c.project = project
75858	c.httpHealthCheck = httpHealthCheck
75859	return c
75860}
75861
75862// RequestId sets the optional parameter "requestId": An optional
75863// request ID to identify requests. Specify a unique request ID so that
75864// if you must retry your request, the server will know to ignore the
75865// request if it has already been completed. For example, consider a
75866// situation where you make an initial request and the request times
75867// out. If you make the request again with the same request ID, the
75868// server can check if original operation with the same request ID was
75869// received, and if so, will ignore the second request. This prevents
75870// clients from accidentally creating duplicate commitments. The request
75871// ID must be a valid UUID with the exception that zero UUID is not
75872// supported ( 00000000-0000-0000-0000-000000000000).
75873func (c *HttpHealthChecksDeleteCall) RequestId(requestId string) *HttpHealthChecksDeleteCall {
75874	c.urlParams_.Set("requestId", requestId)
75875	return c
75876}
75877
75878// Fields allows partial responses to be retrieved. See
75879// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75880// for more information.
75881func (c *HttpHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpHealthChecksDeleteCall {
75882	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75883	return c
75884}
75885
75886// Context sets the context to be used in this call's Do method. Any
75887// pending HTTP request will be aborted if the provided context is
75888// canceled.
75889func (c *HttpHealthChecksDeleteCall) Context(ctx context.Context) *HttpHealthChecksDeleteCall {
75890	c.ctx_ = ctx
75891	return c
75892}
75893
75894// Header returns an http.Header that can be modified by the caller to
75895// add HTTP headers to the request.
75896func (c *HttpHealthChecksDeleteCall) Header() http.Header {
75897	if c.header_ == nil {
75898		c.header_ = make(http.Header)
75899	}
75900	return c.header_
75901}
75902
75903func (c *HttpHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
75904	reqHeaders := make(http.Header)
75905	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
75906	for k, v := range c.header_ {
75907		reqHeaders[k] = v
75908	}
75909	reqHeaders.Set("User-Agent", c.s.userAgent())
75910	var body io.Reader = nil
75911	c.urlParams_.Set("alt", alt)
75912	c.urlParams_.Set("prettyPrint", "false")
75913	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{httpHealthCheck}")
75914	urls += "?" + c.urlParams_.Encode()
75915	req, err := http.NewRequest("DELETE", urls, body)
75916	if err != nil {
75917		return nil, err
75918	}
75919	req.Header = reqHeaders
75920	googleapi.Expand(req.URL, map[string]string{
75921		"project":         c.project,
75922		"httpHealthCheck": c.httpHealthCheck,
75923	})
75924	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75925}
75926
75927// Do executes the "compute.httpHealthChecks.delete" call.
75928// Exactly one of *Operation or error will be non-nil. Any non-2xx
75929// status code is an error. Response headers are in either
75930// *Operation.ServerResponse.Header or (if a response was returned at
75931// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75932// to check whether the returned error was because
75933// http.StatusNotModified was returned.
75934func (c *HttpHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75935	gensupport.SetOptions(c.urlParams_, opts...)
75936	res, err := c.doRequest("json")
75937	if res != nil && res.StatusCode == http.StatusNotModified {
75938		if res.Body != nil {
75939			res.Body.Close()
75940		}
75941		return nil, &googleapi.Error{
75942			Code:   res.StatusCode,
75943			Header: res.Header,
75944		}
75945	}
75946	if err != nil {
75947		return nil, err
75948	}
75949	defer googleapi.CloseBody(res)
75950	if err := googleapi.CheckResponse(res); err != nil {
75951		return nil, err
75952	}
75953	ret := &Operation{
75954		ServerResponse: googleapi.ServerResponse{
75955			Header:         res.Header,
75956			HTTPStatusCode: res.StatusCode,
75957		},
75958	}
75959	target := &ret
75960	if err := gensupport.DecodeResponse(target, res); err != nil {
75961		return nil, err
75962	}
75963	return ret, nil
75964	// {
75965	//   "description": "Deletes the specified HttpHealthCheck resource.",
75966	//   "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
75967	//   "httpMethod": "DELETE",
75968	//   "id": "compute.httpHealthChecks.delete",
75969	//   "parameterOrder": [
75970	//     "project",
75971	//     "httpHealthCheck"
75972	//   ],
75973	//   "parameters": {
75974	//     "httpHealthCheck": {
75975	//       "description": "Name of the HttpHealthCheck resource to delete.",
75976	//       "location": "path",
75977	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75978	//       "required": true,
75979	//       "type": "string"
75980	//     },
75981	//     "project": {
75982	//       "description": "Project ID for this request.",
75983	//       "location": "path",
75984	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75985	//       "required": true,
75986	//       "type": "string"
75987	//     },
75988	//     "requestId": {
75989	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
75990	//       "location": "query",
75991	//       "type": "string"
75992	//     }
75993	//   },
75994	//   "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
75995	//   "response": {
75996	//     "$ref": "Operation"
75997	//   },
75998	//   "scopes": [
75999	//     "https://www.googleapis.com/auth/cloud-platform",
76000	//     "https://www.googleapis.com/auth/compute"
76001	//   ]
76002	// }
76003
76004}
76005
76006// method id "compute.httpHealthChecks.get":
76007
76008type HttpHealthChecksGetCall struct {
76009	s               *Service
76010	project         string
76011	httpHealthCheck string
76012	urlParams_      gensupport.URLParams
76013	ifNoneMatch_    string
76014	ctx_            context.Context
76015	header_         http.Header
76016}
76017
76018// Get: Returns the specified HttpHealthCheck resource. Gets a list of
76019// available HTTP health checks by making a list() request.
76020//
76021// - httpHealthCheck: Name of the HttpHealthCheck resource to return.
76022// - project: Project ID for this request.
76023func (r *HttpHealthChecksService) Get(project string, httpHealthCheck string) *HttpHealthChecksGetCall {
76024	c := &HttpHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76025	c.project = project
76026	c.httpHealthCheck = httpHealthCheck
76027	return c
76028}
76029
76030// Fields allows partial responses to be retrieved. See
76031// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76032// for more information.
76033func (c *HttpHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpHealthChecksGetCall {
76034	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76035	return c
76036}
76037
76038// IfNoneMatch sets the optional parameter which makes the operation
76039// fail if the object's ETag matches the given value. This is useful for
76040// getting updates only after the object has changed since the last
76041// request. Use googleapi.IsNotModified to check whether the response
76042// error from Do is the result of In-None-Match.
76043func (c *HttpHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpHealthChecksGetCall {
76044	c.ifNoneMatch_ = entityTag
76045	return c
76046}
76047
76048// Context sets the context to be used in this call's Do method. Any
76049// pending HTTP request will be aborted if the provided context is
76050// canceled.
76051func (c *HttpHealthChecksGetCall) Context(ctx context.Context) *HttpHealthChecksGetCall {
76052	c.ctx_ = ctx
76053	return c
76054}
76055
76056// Header returns an http.Header that can be modified by the caller to
76057// add HTTP headers to the request.
76058func (c *HttpHealthChecksGetCall) Header() http.Header {
76059	if c.header_ == nil {
76060		c.header_ = make(http.Header)
76061	}
76062	return c.header_
76063}
76064
76065func (c *HttpHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
76066	reqHeaders := make(http.Header)
76067	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
76068	for k, v := range c.header_ {
76069		reqHeaders[k] = v
76070	}
76071	reqHeaders.Set("User-Agent", c.s.userAgent())
76072	if c.ifNoneMatch_ != "" {
76073		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
76074	}
76075	var body io.Reader = nil
76076	c.urlParams_.Set("alt", alt)
76077	c.urlParams_.Set("prettyPrint", "false")
76078	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{httpHealthCheck}")
76079	urls += "?" + c.urlParams_.Encode()
76080	req, err := http.NewRequest("GET", urls, body)
76081	if err != nil {
76082		return nil, err
76083	}
76084	req.Header = reqHeaders
76085	googleapi.Expand(req.URL, map[string]string{
76086		"project":         c.project,
76087		"httpHealthCheck": c.httpHealthCheck,
76088	})
76089	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76090}
76091
76092// Do executes the "compute.httpHealthChecks.get" call.
76093// Exactly one of *HttpHealthCheck or error will be non-nil. Any non-2xx
76094// status code is an error. Response headers are in either
76095// *HttpHealthCheck.ServerResponse.Header or (if a response was returned
76096// at all) in error.(*googleapi.Error).Header. Use
76097// googleapi.IsNotModified to check whether the returned error was
76098// because http.StatusNotModified was returned.
76099func (c *HttpHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheck, error) {
76100	gensupport.SetOptions(c.urlParams_, opts...)
76101	res, err := c.doRequest("json")
76102	if res != nil && res.StatusCode == http.StatusNotModified {
76103		if res.Body != nil {
76104			res.Body.Close()
76105		}
76106		return nil, &googleapi.Error{
76107			Code:   res.StatusCode,
76108			Header: res.Header,
76109		}
76110	}
76111	if err != nil {
76112		return nil, err
76113	}
76114	defer googleapi.CloseBody(res)
76115	if err := googleapi.CheckResponse(res); err != nil {
76116		return nil, err
76117	}
76118	ret := &HttpHealthCheck{
76119		ServerResponse: googleapi.ServerResponse{
76120			Header:         res.Header,
76121			HTTPStatusCode: res.StatusCode,
76122		},
76123	}
76124	target := &ret
76125	if err := gensupport.DecodeResponse(target, res); err != nil {
76126		return nil, err
76127	}
76128	return ret, nil
76129	// {
76130	//   "description": "Returns the specified HttpHealthCheck resource. Gets a list of available HTTP health checks by making a list() request.",
76131	//   "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
76132	//   "httpMethod": "GET",
76133	//   "id": "compute.httpHealthChecks.get",
76134	//   "parameterOrder": [
76135	//     "project",
76136	//     "httpHealthCheck"
76137	//   ],
76138	//   "parameters": {
76139	//     "httpHealthCheck": {
76140	//       "description": "Name of the HttpHealthCheck resource to return.",
76141	//       "location": "path",
76142	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
76143	//       "required": true,
76144	//       "type": "string"
76145	//     },
76146	//     "project": {
76147	//       "description": "Project ID for this request.",
76148	//       "location": "path",
76149	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76150	//       "required": true,
76151	//       "type": "string"
76152	//     }
76153	//   },
76154	//   "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
76155	//   "response": {
76156	//     "$ref": "HttpHealthCheck"
76157	//   },
76158	//   "scopes": [
76159	//     "https://www.googleapis.com/auth/cloud-platform",
76160	//     "https://www.googleapis.com/auth/compute",
76161	//     "https://www.googleapis.com/auth/compute.readonly"
76162	//   ]
76163	// }
76164
76165}
76166
76167// method id "compute.httpHealthChecks.insert":
76168
76169type HttpHealthChecksInsertCall struct {
76170	s               *Service
76171	project         string
76172	httphealthcheck *HttpHealthCheck
76173	urlParams_      gensupport.URLParams
76174	ctx_            context.Context
76175	header_         http.Header
76176}
76177
76178// Insert: Creates a HttpHealthCheck resource in the specified project
76179// using the data included in the request.
76180//
76181// - project: Project ID for this request.
76182func (r *HttpHealthChecksService) Insert(project string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksInsertCall {
76183	c := &HttpHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76184	c.project = project
76185	c.httphealthcheck = httphealthcheck
76186	return c
76187}
76188
76189// RequestId sets the optional parameter "requestId": An optional
76190// request ID to identify requests. Specify a unique request ID so that
76191// if you must retry your request, the server will know to ignore the
76192// request if it has already been completed. For example, consider a
76193// situation where you make an initial request and the request times
76194// out. If you make the request again with the same request ID, the
76195// server can check if original operation with the same request ID was
76196// received, and if so, will ignore the second request. This prevents
76197// clients from accidentally creating duplicate commitments. The request
76198// ID must be a valid UUID with the exception that zero UUID is not
76199// supported ( 00000000-0000-0000-0000-000000000000).
76200func (c *HttpHealthChecksInsertCall) RequestId(requestId string) *HttpHealthChecksInsertCall {
76201	c.urlParams_.Set("requestId", requestId)
76202	return c
76203}
76204
76205// Fields allows partial responses to be retrieved. See
76206// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76207// for more information.
76208func (c *HttpHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpHealthChecksInsertCall {
76209	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76210	return c
76211}
76212
76213// Context sets the context to be used in this call's Do method. Any
76214// pending HTTP request will be aborted if the provided context is
76215// canceled.
76216func (c *HttpHealthChecksInsertCall) Context(ctx context.Context) *HttpHealthChecksInsertCall {
76217	c.ctx_ = ctx
76218	return c
76219}
76220
76221// Header returns an http.Header that can be modified by the caller to
76222// add HTTP headers to the request.
76223func (c *HttpHealthChecksInsertCall) Header() http.Header {
76224	if c.header_ == nil {
76225		c.header_ = make(http.Header)
76226	}
76227	return c.header_
76228}
76229
76230func (c *HttpHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
76231	reqHeaders := make(http.Header)
76232	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
76233	for k, v := range c.header_ {
76234		reqHeaders[k] = v
76235	}
76236	reqHeaders.Set("User-Agent", c.s.userAgent())
76237	var body io.Reader = nil
76238	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
76239	if err != nil {
76240		return nil, err
76241	}
76242	reqHeaders.Set("Content-Type", "application/json")
76243	c.urlParams_.Set("alt", alt)
76244	c.urlParams_.Set("prettyPrint", "false")
76245	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks")
76246	urls += "?" + c.urlParams_.Encode()
76247	req, err := http.NewRequest("POST", urls, body)
76248	if err != nil {
76249		return nil, err
76250	}
76251	req.Header = reqHeaders
76252	googleapi.Expand(req.URL, map[string]string{
76253		"project": c.project,
76254	})
76255	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76256}
76257
76258// Do executes the "compute.httpHealthChecks.insert" call.
76259// Exactly one of *Operation or error will be non-nil. Any non-2xx
76260// status code is an error. Response headers are in either
76261// *Operation.ServerResponse.Header or (if a response was returned at
76262// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76263// to check whether the returned error was because
76264// http.StatusNotModified was returned.
76265func (c *HttpHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76266	gensupport.SetOptions(c.urlParams_, opts...)
76267	res, err := c.doRequest("json")
76268	if res != nil && res.StatusCode == http.StatusNotModified {
76269		if res.Body != nil {
76270			res.Body.Close()
76271		}
76272		return nil, &googleapi.Error{
76273			Code:   res.StatusCode,
76274			Header: res.Header,
76275		}
76276	}
76277	if err != nil {
76278		return nil, err
76279	}
76280	defer googleapi.CloseBody(res)
76281	if err := googleapi.CheckResponse(res); err != nil {
76282		return nil, err
76283	}
76284	ret := &Operation{
76285		ServerResponse: googleapi.ServerResponse{
76286			Header:         res.Header,
76287			HTTPStatusCode: res.StatusCode,
76288		},
76289	}
76290	target := &ret
76291	if err := gensupport.DecodeResponse(target, res); err != nil {
76292		return nil, err
76293	}
76294	return ret, nil
76295	// {
76296	//   "description": "Creates a HttpHealthCheck resource in the specified project using the data included in the request.",
76297	//   "flatPath": "projects/{project}/global/httpHealthChecks",
76298	//   "httpMethod": "POST",
76299	//   "id": "compute.httpHealthChecks.insert",
76300	//   "parameterOrder": [
76301	//     "project"
76302	//   ],
76303	//   "parameters": {
76304	//     "project": {
76305	//       "description": "Project ID for this request.",
76306	//       "location": "path",
76307	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76308	//       "required": true,
76309	//       "type": "string"
76310	//     },
76311	//     "requestId": {
76312	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
76313	//       "location": "query",
76314	//       "type": "string"
76315	//     }
76316	//   },
76317	//   "path": "projects/{project}/global/httpHealthChecks",
76318	//   "request": {
76319	//     "$ref": "HttpHealthCheck"
76320	//   },
76321	//   "response": {
76322	//     "$ref": "Operation"
76323	//   },
76324	//   "scopes": [
76325	//     "https://www.googleapis.com/auth/cloud-platform",
76326	//     "https://www.googleapis.com/auth/compute"
76327	//   ]
76328	// }
76329
76330}
76331
76332// method id "compute.httpHealthChecks.list":
76333
76334type HttpHealthChecksListCall struct {
76335	s            *Service
76336	project      string
76337	urlParams_   gensupport.URLParams
76338	ifNoneMatch_ string
76339	ctx_         context.Context
76340	header_      http.Header
76341}
76342
76343// List: Retrieves the list of HttpHealthCheck resources available to
76344// the specified project.
76345//
76346// - project: Project ID for this request.
76347func (r *HttpHealthChecksService) List(project string) *HttpHealthChecksListCall {
76348	c := &HttpHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76349	c.project = project
76350	return c
76351}
76352
76353// Filter sets the optional parameter "filter": A filter expression that
76354// filters resources listed in the response. The expression must specify
76355// the field name, a comparison operator, and the value that you want to
76356// use for filtering. The value must be a string, a number, or a
76357// boolean. The comparison operator must be either `=`, `!=`, `>`, or
76358// `<`. For example, if you are filtering Compute Engine instances, you
76359// can exclude instances named `example-instance` by specifying `name !=
76360// example-instance`. You can also filter nested fields. For example,
76361// you could specify `scheduling.automaticRestart = false` to include
76362// instances only if they are not scheduled for automatic restarts. You
76363// can use filtering on nested fields to filter based on resource
76364// labels. To filter on multiple expressions, provide each separate
76365// expression within parentheses. For example: ```
76366// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
76367// ``` By default, each expression is an `AND` expression. However, you
76368// can include `AND` and `OR` expressions explicitly. For example: ```
76369// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
76370// AND (scheduling.automaticRestart = true) ```
76371func (c *HttpHealthChecksListCall) Filter(filter string) *HttpHealthChecksListCall {
76372	c.urlParams_.Set("filter", filter)
76373	return c
76374}
76375
76376// MaxResults sets the optional parameter "maxResults": The maximum
76377// number of results per page that should be returned. If the number of
76378// available results is larger than `maxResults`, Compute Engine returns
76379// a `nextPageToken` that can be used to get the next page of results in
76380// subsequent list requests. Acceptable values are `0` to `500`,
76381// inclusive. (Default: `500`)
76382func (c *HttpHealthChecksListCall) MaxResults(maxResults int64) *HttpHealthChecksListCall {
76383	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
76384	return c
76385}
76386
76387// OrderBy sets the optional parameter "orderBy": Sorts list results by
76388// a certain order. By default, results are returned in alphanumerical
76389// order based on the resource name. You can also sort results in
76390// descending order based on the creation timestamp using
76391// `orderBy="creationTimestamp desc". This sorts results based on the
76392// `creationTimestamp` field in reverse chronological order (newest
76393// result first). Use this to sort resources like operations so that the
76394// newest operation is returned first. Currently, only sorting by `name`
76395// or `creationTimestamp desc` is supported.
76396func (c *HttpHealthChecksListCall) OrderBy(orderBy string) *HttpHealthChecksListCall {
76397	c.urlParams_.Set("orderBy", orderBy)
76398	return c
76399}
76400
76401// PageToken sets the optional parameter "pageToken": Specifies a page
76402// token to use. Set `pageToken` to the `nextPageToken` returned by a
76403// previous list request to get the next page of results.
76404func (c *HttpHealthChecksListCall) PageToken(pageToken string) *HttpHealthChecksListCall {
76405	c.urlParams_.Set("pageToken", pageToken)
76406	return c
76407}
76408
76409// ReturnPartialSuccess sets the optional parameter
76410// "returnPartialSuccess": Opt-in for partial success behavior which
76411// provides partial results in case of failure. The default value is
76412// false.
76413func (c *HttpHealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HttpHealthChecksListCall {
76414	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
76415	return c
76416}
76417
76418// Fields allows partial responses to be retrieved. See
76419// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76420// for more information.
76421func (c *HttpHealthChecksListCall) Fields(s ...googleapi.Field) *HttpHealthChecksListCall {
76422	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76423	return c
76424}
76425
76426// IfNoneMatch sets the optional parameter which makes the operation
76427// fail if the object's ETag matches the given value. This is useful for
76428// getting updates only after the object has changed since the last
76429// request. Use googleapi.IsNotModified to check whether the response
76430// error from Do is the result of In-None-Match.
76431func (c *HttpHealthChecksListCall) IfNoneMatch(entityTag string) *HttpHealthChecksListCall {
76432	c.ifNoneMatch_ = entityTag
76433	return c
76434}
76435
76436// Context sets the context to be used in this call's Do method. Any
76437// pending HTTP request will be aborted if the provided context is
76438// canceled.
76439func (c *HttpHealthChecksListCall) Context(ctx context.Context) *HttpHealthChecksListCall {
76440	c.ctx_ = ctx
76441	return c
76442}
76443
76444// Header returns an http.Header that can be modified by the caller to
76445// add HTTP headers to the request.
76446func (c *HttpHealthChecksListCall) Header() http.Header {
76447	if c.header_ == nil {
76448		c.header_ = make(http.Header)
76449	}
76450	return c.header_
76451}
76452
76453func (c *HttpHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
76454	reqHeaders := make(http.Header)
76455	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
76456	for k, v := range c.header_ {
76457		reqHeaders[k] = v
76458	}
76459	reqHeaders.Set("User-Agent", c.s.userAgent())
76460	if c.ifNoneMatch_ != "" {
76461		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
76462	}
76463	var body io.Reader = nil
76464	c.urlParams_.Set("alt", alt)
76465	c.urlParams_.Set("prettyPrint", "false")
76466	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks")
76467	urls += "?" + c.urlParams_.Encode()
76468	req, err := http.NewRequest("GET", urls, body)
76469	if err != nil {
76470		return nil, err
76471	}
76472	req.Header = reqHeaders
76473	googleapi.Expand(req.URL, map[string]string{
76474		"project": c.project,
76475	})
76476	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76477}
76478
76479// Do executes the "compute.httpHealthChecks.list" call.
76480// Exactly one of *HttpHealthCheckList or error will be non-nil. Any
76481// non-2xx status code is an error. Response headers are in either
76482// *HttpHealthCheckList.ServerResponse.Header or (if a response was
76483// returned at all) in error.(*googleapi.Error).Header. Use
76484// googleapi.IsNotModified to check whether the returned error was
76485// because http.StatusNotModified was returned.
76486func (c *HttpHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheckList, error) {
76487	gensupport.SetOptions(c.urlParams_, opts...)
76488	res, err := c.doRequest("json")
76489	if res != nil && res.StatusCode == http.StatusNotModified {
76490		if res.Body != nil {
76491			res.Body.Close()
76492		}
76493		return nil, &googleapi.Error{
76494			Code:   res.StatusCode,
76495			Header: res.Header,
76496		}
76497	}
76498	if err != nil {
76499		return nil, err
76500	}
76501	defer googleapi.CloseBody(res)
76502	if err := googleapi.CheckResponse(res); err != nil {
76503		return nil, err
76504	}
76505	ret := &HttpHealthCheckList{
76506		ServerResponse: googleapi.ServerResponse{
76507			Header:         res.Header,
76508			HTTPStatusCode: res.StatusCode,
76509		},
76510	}
76511	target := &ret
76512	if err := gensupport.DecodeResponse(target, res); err != nil {
76513		return nil, err
76514	}
76515	return ret, nil
76516	// {
76517	//   "description": "Retrieves the list of HttpHealthCheck resources available to the specified project.",
76518	//   "flatPath": "projects/{project}/global/httpHealthChecks",
76519	//   "httpMethod": "GET",
76520	//   "id": "compute.httpHealthChecks.list",
76521	//   "parameterOrder": [
76522	//     "project"
76523	//   ],
76524	//   "parameters": {
76525	//     "filter": {
76526	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
76527	//       "location": "query",
76528	//       "type": "string"
76529	//     },
76530	//     "maxResults": {
76531	//       "default": "500",
76532	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
76533	//       "format": "uint32",
76534	//       "location": "query",
76535	//       "minimum": "0",
76536	//       "type": "integer"
76537	//     },
76538	//     "orderBy": {
76539	//       "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.",
76540	//       "location": "query",
76541	//       "type": "string"
76542	//     },
76543	//     "pageToken": {
76544	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
76545	//       "location": "query",
76546	//       "type": "string"
76547	//     },
76548	//     "project": {
76549	//       "description": "Project ID for this request.",
76550	//       "location": "path",
76551	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76552	//       "required": true,
76553	//       "type": "string"
76554	//     },
76555	//     "returnPartialSuccess": {
76556	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
76557	//       "location": "query",
76558	//       "type": "boolean"
76559	//     }
76560	//   },
76561	//   "path": "projects/{project}/global/httpHealthChecks",
76562	//   "response": {
76563	//     "$ref": "HttpHealthCheckList"
76564	//   },
76565	//   "scopes": [
76566	//     "https://www.googleapis.com/auth/cloud-platform",
76567	//     "https://www.googleapis.com/auth/compute",
76568	//     "https://www.googleapis.com/auth/compute.readonly"
76569	//   ]
76570	// }
76571
76572}
76573
76574// Pages invokes f for each page of results.
76575// A non-nil error returned from f will halt the iteration.
76576// The provided context supersedes any context provided to the Context method.
76577func (c *HttpHealthChecksListCall) Pages(ctx context.Context, f func(*HttpHealthCheckList) error) error {
76578	c.ctx_ = ctx
76579	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
76580	for {
76581		x, err := c.Do()
76582		if err != nil {
76583			return err
76584		}
76585		if err := f(x); err != nil {
76586			return err
76587		}
76588		if x.NextPageToken == "" {
76589			return nil
76590		}
76591		c.PageToken(x.NextPageToken)
76592	}
76593}
76594
76595// method id "compute.httpHealthChecks.patch":
76596
76597type HttpHealthChecksPatchCall struct {
76598	s               *Service
76599	project         string
76600	httpHealthCheck string
76601	httphealthcheck *HttpHealthCheck
76602	urlParams_      gensupport.URLParams
76603	ctx_            context.Context
76604	header_         http.Header
76605}
76606
76607// Patch: Updates a HttpHealthCheck resource in the specified project
76608// using the data included in the request. This method supports PATCH
76609// semantics and uses the JSON merge patch format and processing rules.
76610//
76611// - httpHealthCheck: Name of the HttpHealthCheck resource to patch.
76612// - project: Project ID for this request.
76613func (r *HttpHealthChecksService) Patch(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksPatchCall {
76614	c := &HttpHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76615	c.project = project
76616	c.httpHealthCheck = httpHealthCheck
76617	c.httphealthcheck = httphealthcheck
76618	return c
76619}
76620
76621// RequestId sets the optional parameter "requestId": An optional
76622// request ID to identify requests. Specify a unique request ID so that
76623// if you must retry your request, the server will know to ignore the
76624// request if it has already been completed. For example, consider a
76625// situation where you make an initial request and the request times
76626// out. If you make the request again with the same request ID, the
76627// server can check if original operation with the same request ID was
76628// received, and if so, will ignore the second request. This prevents
76629// clients from accidentally creating duplicate commitments. The request
76630// ID must be a valid UUID with the exception that zero UUID is not
76631// supported ( 00000000-0000-0000-0000-000000000000).
76632func (c *HttpHealthChecksPatchCall) RequestId(requestId string) *HttpHealthChecksPatchCall {
76633	c.urlParams_.Set("requestId", requestId)
76634	return c
76635}
76636
76637// Fields allows partial responses to be retrieved. See
76638// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76639// for more information.
76640func (c *HttpHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpHealthChecksPatchCall {
76641	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76642	return c
76643}
76644
76645// Context sets the context to be used in this call's Do method. Any
76646// pending HTTP request will be aborted if the provided context is
76647// canceled.
76648func (c *HttpHealthChecksPatchCall) Context(ctx context.Context) *HttpHealthChecksPatchCall {
76649	c.ctx_ = ctx
76650	return c
76651}
76652
76653// Header returns an http.Header that can be modified by the caller to
76654// add HTTP headers to the request.
76655func (c *HttpHealthChecksPatchCall) Header() http.Header {
76656	if c.header_ == nil {
76657		c.header_ = make(http.Header)
76658	}
76659	return c.header_
76660}
76661
76662func (c *HttpHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
76663	reqHeaders := make(http.Header)
76664	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
76665	for k, v := range c.header_ {
76666		reqHeaders[k] = v
76667	}
76668	reqHeaders.Set("User-Agent", c.s.userAgent())
76669	var body io.Reader = nil
76670	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
76671	if err != nil {
76672		return nil, err
76673	}
76674	reqHeaders.Set("Content-Type", "application/json")
76675	c.urlParams_.Set("alt", alt)
76676	c.urlParams_.Set("prettyPrint", "false")
76677	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{httpHealthCheck}")
76678	urls += "?" + c.urlParams_.Encode()
76679	req, err := http.NewRequest("PATCH", urls, body)
76680	if err != nil {
76681		return nil, err
76682	}
76683	req.Header = reqHeaders
76684	googleapi.Expand(req.URL, map[string]string{
76685		"project":         c.project,
76686		"httpHealthCheck": c.httpHealthCheck,
76687	})
76688	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76689}
76690
76691// Do executes the "compute.httpHealthChecks.patch" call.
76692// Exactly one of *Operation or error will be non-nil. Any non-2xx
76693// status code is an error. Response headers are in either
76694// *Operation.ServerResponse.Header or (if a response was returned at
76695// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76696// to check whether the returned error was because
76697// http.StatusNotModified was returned.
76698func (c *HttpHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76699	gensupport.SetOptions(c.urlParams_, opts...)
76700	res, err := c.doRequest("json")
76701	if res != nil && res.StatusCode == http.StatusNotModified {
76702		if res.Body != nil {
76703			res.Body.Close()
76704		}
76705		return nil, &googleapi.Error{
76706			Code:   res.StatusCode,
76707			Header: res.Header,
76708		}
76709	}
76710	if err != nil {
76711		return nil, err
76712	}
76713	defer googleapi.CloseBody(res)
76714	if err := googleapi.CheckResponse(res); err != nil {
76715		return nil, err
76716	}
76717	ret := &Operation{
76718		ServerResponse: googleapi.ServerResponse{
76719			Header:         res.Header,
76720			HTTPStatusCode: res.StatusCode,
76721		},
76722	}
76723	target := &ret
76724	if err := gensupport.DecodeResponse(target, res); err != nil {
76725		return nil, err
76726	}
76727	return ret, nil
76728	// {
76729	//   "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.",
76730	//   "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
76731	//   "httpMethod": "PATCH",
76732	//   "id": "compute.httpHealthChecks.patch",
76733	//   "parameterOrder": [
76734	//     "project",
76735	//     "httpHealthCheck"
76736	//   ],
76737	//   "parameters": {
76738	//     "httpHealthCheck": {
76739	//       "description": "Name of the HttpHealthCheck resource to patch.",
76740	//       "location": "path",
76741	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
76742	//       "required": true,
76743	//       "type": "string"
76744	//     },
76745	//     "project": {
76746	//       "description": "Project ID for this request.",
76747	//       "location": "path",
76748	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76749	//       "required": true,
76750	//       "type": "string"
76751	//     },
76752	//     "requestId": {
76753	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
76754	//       "location": "query",
76755	//       "type": "string"
76756	//     }
76757	//   },
76758	//   "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
76759	//   "request": {
76760	//     "$ref": "HttpHealthCheck"
76761	//   },
76762	//   "response": {
76763	//     "$ref": "Operation"
76764	//   },
76765	//   "scopes": [
76766	//     "https://www.googleapis.com/auth/cloud-platform",
76767	//     "https://www.googleapis.com/auth/compute"
76768	//   ]
76769	// }
76770
76771}
76772
76773// method id "compute.httpHealthChecks.update":
76774
76775type HttpHealthChecksUpdateCall struct {
76776	s               *Service
76777	project         string
76778	httpHealthCheck string
76779	httphealthcheck *HttpHealthCheck
76780	urlParams_      gensupport.URLParams
76781	ctx_            context.Context
76782	header_         http.Header
76783}
76784
76785// Update: Updates a HttpHealthCheck resource in the specified project
76786// using the data included in the request.
76787//
76788// - httpHealthCheck: Name of the HttpHealthCheck resource to update.
76789// - project: Project ID for this request.
76790func (r *HttpHealthChecksService) Update(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksUpdateCall {
76791	c := &HttpHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76792	c.project = project
76793	c.httpHealthCheck = httpHealthCheck
76794	c.httphealthcheck = httphealthcheck
76795	return c
76796}
76797
76798// RequestId sets the optional parameter "requestId": An optional
76799// request ID to identify requests. Specify a unique request ID so that
76800// if you must retry your request, the server will know to ignore the
76801// request if it has already been completed. For example, consider a
76802// situation where you make an initial request and the request times
76803// out. If you make the request again with the same request ID, the
76804// server can check if original operation with the same request ID was
76805// received, and if so, will ignore the second request. This prevents
76806// clients from accidentally creating duplicate commitments. The request
76807// ID must be a valid UUID with the exception that zero UUID is not
76808// supported ( 00000000-0000-0000-0000-000000000000).
76809func (c *HttpHealthChecksUpdateCall) RequestId(requestId string) *HttpHealthChecksUpdateCall {
76810	c.urlParams_.Set("requestId", requestId)
76811	return c
76812}
76813
76814// Fields allows partial responses to be retrieved. See
76815// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76816// for more information.
76817func (c *HttpHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpHealthChecksUpdateCall {
76818	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76819	return c
76820}
76821
76822// Context sets the context to be used in this call's Do method. Any
76823// pending HTTP request will be aborted if the provided context is
76824// canceled.
76825func (c *HttpHealthChecksUpdateCall) Context(ctx context.Context) *HttpHealthChecksUpdateCall {
76826	c.ctx_ = ctx
76827	return c
76828}
76829
76830// Header returns an http.Header that can be modified by the caller to
76831// add HTTP headers to the request.
76832func (c *HttpHealthChecksUpdateCall) Header() http.Header {
76833	if c.header_ == nil {
76834		c.header_ = make(http.Header)
76835	}
76836	return c.header_
76837}
76838
76839func (c *HttpHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
76840	reqHeaders := make(http.Header)
76841	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
76842	for k, v := range c.header_ {
76843		reqHeaders[k] = v
76844	}
76845	reqHeaders.Set("User-Agent", c.s.userAgent())
76846	var body io.Reader = nil
76847	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
76848	if err != nil {
76849		return nil, err
76850	}
76851	reqHeaders.Set("Content-Type", "application/json")
76852	c.urlParams_.Set("alt", alt)
76853	c.urlParams_.Set("prettyPrint", "false")
76854	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{httpHealthCheck}")
76855	urls += "?" + c.urlParams_.Encode()
76856	req, err := http.NewRequest("PUT", urls, body)
76857	if err != nil {
76858		return nil, err
76859	}
76860	req.Header = reqHeaders
76861	googleapi.Expand(req.URL, map[string]string{
76862		"project":         c.project,
76863		"httpHealthCheck": c.httpHealthCheck,
76864	})
76865	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76866}
76867
76868// Do executes the "compute.httpHealthChecks.update" call.
76869// Exactly one of *Operation or error will be non-nil. Any non-2xx
76870// status code is an error. Response headers are in either
76871// *Operation.ServerResponse.Header or (if a response was returned at
76872// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76873// to check whether the returned error was because
76874// http.StatusNotModified was returned.
76875func (c *HttpHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76876	gensupport.SetOptions(c.urlParams_, opts...)
76877	res, err := c.doRequest("json")
76878	if res != nil && res.StatusCode == http.StatusNotModified {
76879		if res.Body != nil {
76880			res.Body.Close()
76881		}
76882		return nil, &googleapi.Error{
76883			Code:   res.StatusCode,
76884			Header: res.Header,
76885		}
76886	}
76887	if err != nil {
76888		return nil, err
76889	}
76890	defer googleapi.CloseBody(res)
76891	if err := googleapi.CheckResponse(res); err != nil {
76892		return nil, err
76893	}
76894	ret := &Operation{
76895		ServerResponse: googleapi.ServerResponse{
76896			Header:         res.Header,
76897			HTTPStatusCode: res.StatusCode,
76898		},
76899	}
76900	target := &ret
76901	if err := gensupport.DecodeResponse(target, res); err != nil {
76902		return nil, err
76903	}
76904	return ret, nil
76905	// {
76906	//   "description": "Updates a HttpHealthCheck resource in the specified project using the data included in the request.",
76907	//   "flatPath": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
76908	//   "httpMethod": "PUT",
76909	//   "id": "compute.httpHealthChecks.update",
76910	//   "parameterOrder": [
76911	//     "project",
76912	//     "httpHealthCheck"
76913	//   ],
76914	//   "parameters": {
76915	//     "httpHealthCheck": {
76916	//       "description": "Name of the HttpHealthCheck resource to update.",
76917	//       "location": "path",
76918	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
76919	//       "required": true,
76920	//       "type": "string"
76921	//     },
76922	//     "project": {
76923	//       "description": "Project ID for this request.",
76924	//       "location": "path",
76925	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76926	//       "required": true,
76927	//       "type": "string"
76928	//     },
76929	//     "requestId": {
76930	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
76931	//       "location": "query",
76932	//       "type": "string"
76933	//     }
76934	//   },
76935	//   "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
76936	//   "request": {
76937	//     "$ref": "HttpHealthCheck"
76938	//   },
76939	//   "response": {
76940	//     "$ref": "Operation"
76941	//   },
76942	//   "scopes": [
76943	//     "https://www.googleapis.com/auth/cloud-platform",
76944	//     "https://www.googleapis.com/auth/compute"
76945	//   ]
76946	// }
76947
76948}
76949
76950// method id "compute.httpsHealthChecks.delete":
76951
76952type HttpsHealthChecksDeleteCall struct {
76953	s                *Service
76954	project          string
76955	httpsHealthCheck string
76956	urlParams_       gensupport.URLParams
76957	ctx_             context.Context
76958	header_          http.Header
76959}
76960
76961// Delete: Deletes the specified HttpsHealthCheck resource.
76962//
76963// - httpsHealthCheck: Name of the HttpsHealthCheck resource to delete.
76964// - project: Project ID for this request.
76965func (r *HttpsHealthChecksService) Delete(project string, httpsHealthCheck string) *HttpsHealthChecksDeleteCall {
76966	c := &HttpsHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76967	c.project = project
76968	c.httpsHealthCheck = httpsHealthCheck
76969	return c
76970}
76971
76972// RequestId sets the optional parameter "requestId": An optional
76973// request ID to identify requests. Specify a unique request ID so that
76974// if you must retry your request, the server will know to ignore the
76975// request if it has already been completed. For example, consider a
76976// situation where you make an initial request and the request times
76977// out. If you make the request again with the same request ID, the
76978// server can check if original operation with the same request ID was
76979// received, and if so, will ignore the second request. This prevents
76980// clients from accidentally creating duplicate commitments. The request
76981// ID must be a valid UUID with the exception that zero UUID is not
76982// supported ( 00000000-0000-0000-0000-000000000000).
76983func (c *HttpsHealthChecksDeleteCall) RequestId(requestId string) *HttpsHealthChecksDeleteCall {
76984	c.urlParams_.Set("requestId", requestId)
76985	return c
76986}
76987
76988// Fields allows partial responses to be retrieved. See
76989// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76990// for more information.
76991func (c *HttpsHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpsHealthChecksDeleteCall {
76992	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76993	return c
76994}
76995
76996// Context sets the context to be used in this call's Do method. Any
76997// pending HTTP request will be aborted if the provided context is
76998// canceled.
76999func (c *HttpsHealthChecksDeleteCall) Context(ctx context.Context) *HttpsHealthChecksDeleteCall {
77000	c.ctx_ = ctx
77001	return c
77002}
77003
77004// Header returns an http.Header that can be modified by the caller to
77005// add HTTP headers to the request.
77006func (c *HttpsHealthChecksDeleteCall) Header() http.Header {
77007	if c.header_ == nil {
77008		c.header_ = make(http.Header)
77009	}
77010	return c.header_
77011}
77012
77013func (c *HttpsHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
77014	reqHeaders := make(http.Header)
77015	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
77016	for k, v := range c.header_ {
77017		reqHeaders[k] = v
77018	}
77019	reqHeaders.Set("User-Agent", c.s.userAgent())
77020	var body io.Reader = nil
77021	c.urlParams_.Set("alt", alt)
77022	c.urlParams_.Set("prettyPrint", "false")
77023	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}")
77024	urls += "?" + c.urlParams_.Encode()
77025	req, err := http.NewRequest("DELETE", urls, body)
77026	if err != nil {
77027		return nil, err
77028	}
77029	req.Header = reqHeaders
77030	googleapi.Expand(req.URL, map[string]string{
77031		"project":          c.project,
77032		"httpsHealthCheck": c.httpsHealthCheck,
77033	})
77034	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77035}
77036
77037// Do executes the "compute.httpsHealthChecks.delete" call.
77038// Exactly one of *Operation or error will be non-nil. Any non-2xx
77039// status code is an error. Response headers are in either
77040// *Operation.ServerResponse.Header or (if a response was returned at
77041// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77042// to check whether the returned error was because
77043// http.StatusNotModified was returned.
77044func (c *HttpsHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77045	gensupport.SetOptions(c.urlParams_, opts...)
77046	res, err := c.doRequest("json")
77047	if res != nil && res.StatusCode == http.StatusNotModified {
77048		if res.Body != nil {
77049			res.Body.Close()
77050		}
77051		return nil, &googleapi.Error{
77052			Code:   res.StatusCode,
77053			Header: res.Header,
77054		}
77055	}
77056	if err != nil {
77057		return nil, err
77058	}
77059	defer googleapi.CloseBody(res)
77060	if err := googleapi.CheckResponse(res); err != nil {
77061		return nil, err
77062	}
77063	ret := &Operation{
77064		ServerResponse: googleapi.ServerResponse{
77065			Header:         res.Header,
77066			HTTPStatusCode: res.StatusCode,
77067		},
77068	}
77069	target := &ret
77070	if err := gensupport.DecodeResponse(target, res); err != nil {
77071		return nil, err
77072	}
77073	return ret, nil
77074	// {
77075	//   "description": "Deletes the specified HttpsHealthCheck resource.",
77076	//   "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
77077	//   "httpMethod": "DELETE",
77078	//   "id": "compute.httpsHealthChecks.delete",
77079	//   "parameterOrder": [
77080	//     "project",
77081	//     "httpsHealthCheck"
77082	//   ],
77083	//   "parameters": {
77084	//     "httpsHealthCheck": {
77085	//       "description": "Name of the HttpsHealthCheck resource to delete.",
77086	//       "location": "path",
77087	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77088	//       "required": true,
77089	//       "type": "string"
77090	//     },
77091	//     "project": {
77092	//       "description": "Project ID for this request.",
77093	//       "location": "path",
77094	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77095	//       "required": true,
77096	//       "type": "string"
77097	//     },
77098	//     "requestId": {
77099	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
77100	//       "location": "query",
77101	//       "type": "string"
77102	//     }
77103	//   },
77104	//   "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
77105	//   "response": {
77106	//     "$ref": "Operation"
77107	//   },
77108	//   "scopes": [
77109	//     "https://www.googleapis.com/auth/cloud-platform",
77110	//     "https://www.googleapis.com/auth/compute"
77111	//   ]
77112	// }
77113
77114}
77115
77116// method id "compute.httpsHealthChecks.get":
77117
77118type HttpsHealthChecksGetCall struct {
77119	s                *Service
77120	project          string
77121	httpsHealthCheck string
77122	urlParams_       gensupport.URLParams
77123	ifNoneMatch_     string
77124	ctx_             context.Context
77125	header_          http.Header
77126}
77127
77128// Get: Returns the specified HttpsHealthCheck resource. Gets a list of
77129// available HTTPS health checks by making a list() request.
77130//
77131// - httpsHealthCheck: Name of the HttpsHealthCheck resource to return.
77132// - project: Project ID for this request.
77133func (r *HttpsHealthChecksService) Get(project string, httpsHealthCheck string) *HttpsHealthChecksGetCall {
77134	c := &HttpsHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77135	c.project = project
77136	c.httpsHealthCheck = httpsHealthCheck
77137	return c
77138}
77139
77140// Fields allows partial responses to be retrieved. See
77141// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77142// for more information.
77143func (c *HttpsHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpsHealthChecksGetCall {
77144	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77145	return c
77146}
77147
77148// IfNoneMatch sets the optional parameter which makes the operation
77149// fail if the object's ETag matches the given value. This is useful for
77150// getting updates only after the object has changed since the last
77151// request. Use googleapi.IsNotModified to check whether the response
77152// error from Do is the result of In-None-Match.
77153func (c *HttpsHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpsHealthChecksGetCall {
77154	c.ifNoneMatch_ = entityTag
77155	return c
77156}
77157
77158// Context sets the context to be used in this call's Do method. Any
77159// pending HTTP request will be aborted if the provided context is
77160// canceled.
77161func (c *HttpsHealthChecksGetCall) Context(ctx context.Context) *HttpsHealthChecksGetCall {
77162	c.ctx_ = ctx
77163	return c
77164}
77165
77166// Header returns an http.Header that can be modified by the caller to
77167// add HTTP headers to the request.
77168func (c *HttpsHealthChecksGetCall) Header() http.Header {
77169	if c.header_ == nil {
77170		c.header_ = make(http.Header)
77171	}
77172	return c.header_
77173}
77174
77175func (c *HttpsHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
77176	reqHeaders := make(http.Header)
77177	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
77178	for k, v := range c.header_ {
77179		reqHeaders[k] = v
77180	}
77181	reqHeaders.Set("User-Agent", c.s.userAgent())
77182	if c.ifNoneMatch_ != "" {
77183		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
77184	}
77185	var body io.Reader = nil
77186	c.urlParams_.Set("alt", alt)
77187	c.urlParams_.Set("prettyPrint", "false")
77188	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}")
77189	urls += "?" + c.urlParams_.Encode()
77190	req, err := http.NewRequest("GET", urls, body)
77191	if err != nil {
77192		return nil, err
77193	}
77194	req.Header = reqHeaders
77195	googleapi.Expand(req.URL, map[string]string{
77196		"project":          c.project,
77197		"httpsHealthCheck": c.httpsHealthCheck,
77198	})
77199	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77200}
77201
77202// Do executes the "compute.httpsHealthChecks.get" call.
77203// Exactly one of *HttpsHealthCheck or error will be non-nil. Any
77204// non-2xx status code is an error. Response headers are in either
77205// *HttpsHealthCheck.ServerResponse.Header or (if a response was
77206// returned at all) in error.(*googleapi.Error).Header. Use
77207// googleapi.IsNotModified to check whether the returned error was
77208// because http.StatusNotModified was returned.
77209func (c *HttpsHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheck, error) {
77210	gensupport.SetOptions(c.urlParams_, opts...)
77211	res, err := c.doRequest("json")
77212	if res != nil && res.StatusCode == http.StatusNotModified {
77213		if res.Body != nil {
77214			res.Body.Close()
77215		}
77216		return nil, &googleapi.Error{
77217			Code:   res.StatusCode,
77218			Header: res.Header,
77219		}
77220	}
77221	if err != nil {
77222		return nil, err
77223	}
77224	defer googleapi.CloseBody(res)
77225	if err := googleapi.CheckResponse(res); err != nil {
77226		return nil, err
77227	}
77228	ret := &HttpsHealthCheck{
77229		ServerResponse: googleapi.ServerResponse{
77230			Header:         res.Header,
77231			HTTPStatusCode: res.StatusCode,
77232		},
77233	}
77234	target := &ret
77235	if err := gensupport.DecodeResponse(target, res); err != nil {
77236		return nil, err
77237	}
77238	return ret, nil
77239	// {
77240	//   "description": "Returns the specified HttpsHealthCheck resource. Gets a list of available HTTPS health checks by making a list() request.",
77241	//   "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
77242	//   "httpMethod": "GET",
77243	//   "id": "compute.httpsHealthChecks.get",
77244	//   "parameterOrder": [
77245	//     "project",
77246	//     "httpsHealthCheck"
77247	//   ],
77248	//   "parameters": {
77249	//     "httpsHealthCheck": {
77250	//       "description": "Name of the HttpsHealthCheck resource to return.",
77251	//       "location": "path",
77252	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77253	//       "required": true,
77254	//       "type": "string"
77255	//     },
77256	//     "project": {
77257	//       "description": "Project ID for this request.",
77258	//       "location": "path",
77259	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77260	//       "required": true,
77261	//       "type": "string"
77262	//     }
77263	//   },
77264	//   "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
77265	//   "response": {
77266	//     "$ref": "HttpsHealthCheck"
77267	//   },
77268	//   "scopes": [
77269	//     "https://www.googleapis.com/auth/cloud-platform",
77270	//     "https://www.googleapis.com/auth/compute",
77271	//     "https://www.googleapis.com/auth/compute.readonly"
77272	//   ]
77273	// }
77274
77275}
77276
77277// method id "compute.httpsHealthChecks.insert":
77278
77279type HttpsHealthChecksInsertCall struct {
77280	s                *Service
77281	project          string
77282	httpshealthcheck *HttpsHealthCheck
77283	urlParams_       gensupport.URLParams
77284	ctx_             context.Context
77285	header_          http.Header
77286}
77287
77288// Insert: Creates a HttpsHealthCheck resource in the specified project
77289// using the data included in the request.
77290//
77291// - project: Project ID for this request.
77292func (r *HttpsHealthChecksService) Insert(project string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksInsertCall {
77293	c := &HttpsHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77294	c.project = project
77295	c.httpshealthcheck = httpshealthcheck
77296	return c
77297}
77298
77299// RequestId sets the optional parameter "requestId": An optional
77300// request ID to identify requests. Specify a unique request ID so that
77301// if you must retry your request, the server will know to ignore the
77302// request if it has already been completed. For example, consider a
77303// situation where you make an initial request and the request times
77304// out. If you make the request again with the same request ID, the
77305// server can check if original operation with the same request ID was
77306// received, and if so, will ignore the second request. This prevents
77307// clients from accidentally creating duplicate commitments. The request
77308// ID must be a valid UUID with the exception that zero UUID is not
77309// supported ( 00000000-0000-0000-0000-000000000000).
77310func (c *HttpsHealthChecksInsertCall) RequestId(requestId string) *HttpsHealthChecksInsertCall {
77311	c.urlParams_.Set("requestId", requestId)
77312	return c
77313}
77314
77315// Fields allows partial responses to be retrieved. See
77316// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77317// for more information.
77318func (c *HttpsHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpsHealthChecksInsertCall {
77319	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77320	return c
77321}
77322
77323// Context sets the context to be used in this call's Do method. Any
77324// pending HTTP request will be aborted if the provided context is
77325// canceled.
77326func (c *HttpsHealthChecksInsertCall) Context(ctx context.Context) *HttpsHealthChecksInsertCall {
77327	c.ctx_ = ctx
77328	return c
77329}
77330
77331// Header returns an http.Header that can be modified by the caller to
77332// add HTTP headers to the request.
77333func (c *HttpsHealthChecksInsertCall) Header() http.Header {
77334	if c.header_ == nil {
77335		c.header_ = make(http.Header)
77336	}
77337	return c.header_
77338}
77339
77340func (c *HttpsHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
77341	reqHeaders := make(http.Header)
77342	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
77343	for k, v := range c.header_ {
77344		reqHeaders[k] = v
77345	}
77346	reqHeaders.Set("User-Agent", c.s.userAgent())
77347	var body io.Reader = nil
77348	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
77349	if err != nil {
77350		return nil, err
77351	}
77352	reqHeaders.Set("Content-Type", "application/json")
77353	c.urlParams_.Set("alt", alt)
77354	c.urlParams_.Set("prettyPrint", "false")
77355	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks")
77356	urls += "?" + c.urlParams_.Encode()
77357	req, err := http.NewRequest("POST", urls, body)
77358	if err != nil {
77359		return nil, err
77360	}
77361	req.Header = reqHeaders
77362	googleapi.Expand(req.URL, map[string]string{
77363		"project": c.project,
77364	})
77365	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77366}
77367
77368// Do executes the "compute.httpsHealthChecks.insert" call.
77369// Exactly one of *Operation or error will be non-nil. Any non-2xx
77370// status code is an error. Response headers are in either
77371// *Operation.ServerResponse.Header or (if a response was returned at
77372// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77373// to check whether the returned error was because
77374// http.StatusNotModified was returned.
77375func (c *HttpsHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77376	gensupport.SetOptions(c.urlParams_, opts...)
77377	res, err := c.doRequest("json")
77378	if res != nil && res.StatusCode == http.StatusNotModified {
77379		if res.Body != nil {
77380			res.Body.Close()
77381		}
77382		return nil, &googleapi.Error{
77383			Code:   res.StatusCode,
77384			Header: res.Header,
77385		}
77386	}
77387	if err != nil {
77388		return nil, err
77389	}
77390	defer googleapi.CloseBody(res)
77391	if err := googleapi.CheckResponse(res); err != nil {
77392		return nil, err
77393	}
77394	ret := &Operation{
77395		ServerResponse: googleapi.ServerResponse{
77396			Header:         res.Header,
77397			HTTPStatusCode: res.StatusCode,
77398		},
77399	}
77400	target := &ret
77401	if err := gensupport.DecodeResponse(target, res); err != nil {
77402		return nil, err
77403	}
77404	return ret, nil
77405	// {
77406	//   "description": "Creates a HttpsHealthCheck resource in the specified project using the data included in the request.",
77407	//   "flatPath": "projects/{project}/global/httpsHealthChecks",
77408	//   "httpMethod": "POST",
77409	//   "id": "compute.httpsHealthChecks.insert",
77410	//   "parameterOrder": [
77411	//     "project"
77412	//   ],
77413	//   "parameters": {
77414	//     "project": {
77415	//       "description": "Project ID for this request.",
77416	//       "location": "path",
77417	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77418	//       "required": true,
77419	//       "type": "string"
77420	//     },
77421	//     "requestId": {
77422	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
77423	//       "location": "query",
77424	//       "type": "string"
77425	//     }
77426	//   },
77427	//   "path": "projects/{project}/global/httpsHealthChecks",
77428	//   "request": {
77429	//     "$ref": "HttpsHealthCheck"
77430	//   },
77431	//   "response": {
77432	//     "$ref": "Operation"
77433	//   },
77434	//   "scopes": [
77435	//     "https://www.googleapis.com/auth/cloud-platform",
77436	//     "https://www.googleapis.com/auth/compute"
77437	//   ]
77438	// }
77439
77440}
77441
77442// method id "compute.httpsHealthChecks.list":
77443
77444type HttpsHealthChecksListCall struct {
77445	s            *Service
77446	project      string
77447	urlParams_   gensupport.URLParams
77448	ifNoneMatch_ string
77449	ctx_         context.Context
77450	header_      http.Header
77451}
77452
77453// List: Retrieves the list of HttpsHealthCheck resources available to
77454// the specified project.
77455//
77456// - project: Project ID for this request.
77457func (r *HttpsHealthChecksService) List(project string) *HttpsHealthChecksListCall {
77458	c := &HttpsHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77459	c.project = project
77460	return c
77461}
77462
77463// Filter sets the optional parameter "filter": A filter expression that
77464// filters resources listed in the response. The expression must specify
77465// the field name, a comparison operator, and the value that you want to
77466// use for filtering. The value must be a string, a number, or a
77467// boolean. The comparison operator must be either `=`, `!=`, `>`, or
77468// `<`. For example, if you are filtering Compute Engine instances, you
77469// can exclude instances named `example-instance` by specifying `name !=
77470// example-instance`. You can also filter nested fields. For example,
77471// you could specify `scheduling.automaticRestart = false` to include
77472// instances only if they are not scheduled for automatic restarts. You
77473// can use filtering on nested fields to filter based on resource
77474// labels. To filter on multiple expressions, provide each separate
77475// expression within parentheses. For example: ```
77476// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
77477// ``` By default, each expression is an `AND` expression. However, you
77478// can include `AND` and `OR` expressions explicitly. For example: ```
77479// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
77480// AND (scheduling.automaticRestart = true) ```
77481func (c *HttpsHealthChecksListCall) Filter(filter string) *HttpsHealthChecksListCall {
77482	c.urlParams_.Set("filter", filter)
77483	return c
77484}
77485
77486// MaxResults sets the optional parameter "maxResults": The maximum
77487// number of results per page that should be returned. If the number of
77488// available results is larger than `maxResults`, Compute Engine returns
77489// a `nextPageToken` that can be used to get the next page of results in
77490// subsequent list requests. Acceptable values are `0` to `500`,
77491// inclusive. (Default: `500`)
77492func (c *HttpsHealthChecksListCall) MaxResults(maxResults int64) *HttpsHealthChecksListCall {
77493	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
77494	return c
77495}
77496
77497// OrderBy sets the optional parameter "orderBy": Sorts list results by
77498// a certain order. By default, results are returned in alphanumerical
77499// order based on the resource name. You can also sort results in
77500// descending order based on the creation timestamp using
77501// `orderBy="creationTimestamp desc". This sorts results based on the
77502// `creationTimestamp` field in reverse chronological order (newest
77503// result first). Use this to sort resources like operations so that the
77504// newest operation is returned first. Currently, only sorting by `name`
77505// or `creationTimestamp desc` is supported.
77506func (c *HttpsHealthChecksListCall) OrderBy(orderBy string) *HttpsHealthChecksListCall {
77507	c.urlParams_.Set("orderBy", orderBy)
77508	return c
77509}
77510
77511// PageToken sets the optional parameter "pageToken": Specifies a page
77512// token to use. Set `pageToken` to the `nextPageToken` returned by a
77513// previous list request to get the next page of results.
77514func (c *HttpsHealthChecksListCall) PageToken(pageToken string) *HttpsHealthChecksListCall {
77515	c.urlParams_.Set("pageToken", pageToken)
77516	return c
77517}
77518
77519// ReturnPartialSuccess sets the optional parameter
77520// "returnPartialSuccess": Opt-in for partial success behavior which
77521// provides partial results in case of failure. The default value is
77522// false.
77523func (c *HttpsHealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HttpsHealthChecksListCall {
77524	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
77525	return c
77526}
77527
77528// Fields allows partial responses to be retrieved. See
77529// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77530// for more information.
77531func (c *HttpsHealthChecksListCall) Fields(s ...googleapi.Field) *HttpsHealthChecksListCall {
77532	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77533	return c
77534}
77535
77536// IfNoneMatch sets the optional parameter which makes the operation
77537// fail if the object's ETag matches the given value. This is useful for
77538// getting updates only after the object has changed since the last
77539// request. Use googleapi.IsNotModified to check whether the response
77540// error from Do is the result of In-None-Match.
77541func (c *HttpsHealthChecksListCall) IfNoneMatch(entityTag string) *HttpsHealthChecksListCall {
77542	c.ifNoneMatch_ = entityTag
77543	return c
77544}
77545
77546// Context sets the context to be used in this call's Do method. Any
77547// pending HTTP request will be aborted if the provided context is
77548// canceled.
77549func (c *HttpsHealthChecksListCall) Context(ctx context.Context) *HttpsHealthChecksListCall {
77550	c.ctx_ = ctx
77551	return c
77552}
77553
77554// Header returns an http.Header that can be modified by the caller to
77555// add HTTP headers to the request.
77556func (c *HttpsHealthChecksListCall) Header() http.Header {
77557	if c.header_ == nil {
77558		c.header_ = make(http.Header)
77559	}
77560	return c.header_
77561}
77562
77563func (c *HttpsHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
77564	reqHeaders := make(http.Header)
77565	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
77566	for k, v := range c.header_ {
77567		reqHeaders[k] = v
77568	}
77569	reqHeaders.Set("User-Agent", c.s.userAgent())
77570	if c.ifNoneMatch_ != "" {
77571		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
77572	}
77573	var body io.Reader = nil
77574	c.urlParams_.Set("alt", alt)
77575	c.urlParams_.Set("prettyPrint", "false")
77576	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks")
77577	urls += "?" + c.urlParams_.Encode()
77578	req, err := http.NewRequest("GET", urls, body)
77579	if err != nil {
77580		return nil, err
77581	}
77582	req.Header = reqHeaders
77583	googleapi.Expand(req.URL, map[string]string{
77584		"project": c.project,
77585	})
77586	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77587}
77588
77589// Do executes the "compute.httpsHealthChecks.list" call.
77590// Exactly one of *HttpsHealthCheckList or error will be non-nil. Any
77591// non-2xx status code is an error. Response headers are in either
77592// *HttpsHealthCheckList.ServerResponse.Header or (if a response was
77593// returned at all) in error.(*googleapi.Error).Header. Use
77594// googleapi.IsNotModified to check whether the returned error was
77595// because http.StatusNotModified was returned.
77596func (c *HttpsHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheckList, error) {
77597	gensupport.SetOptions(c.urlParams_, opts...)
77598	res, err := c.doRequest("json")
77599	if res != nil && res.StatusCode == http.StatusNotModified {
77600		if res.Body != nil {
77601			res.Body.Close()
77602		}
77603		return nil, &googleapi.Error{
77604			Code:   res.StatusCode,
77605			Header: res.Header,
77606		}
77607	}
77608	if err != nil {
77609		return nil, err
77610	}
77611	defer googleapi.CloseBody(res)
77612	if err := googleapi.CheckResponse(res); err != nil {
77613		return nil, err
77614	}
77615	ret := &HttpsHealthCheckList{
77616		ServerResponse: googleapi.ServerResponse{
77617			Header:         res.Header,
77618			HTTPStatusCode: res.StatusCode,
77619		},
77620	}
77621	target := &ret
77622	if err := gensupport.DecodeResponse(target, res); err != nil {
77623		return nil, err
77624	}
77625	return ret, nil
77626	// {
77627	//   "description": "Retrieves the list of HttpsHealthCheck resources available to the specified project.",
77628	//   "flatPath": "projects/{project}/global/httpsHealthChecks",
77629	//   "httpMethod": "GET",
77630	//   "id": "compute.httpsHealthChecks.list",
77631	//   "parameterOrder": [
77632	//     "project"
77633	//   ],
77634	//   "parameters": {
77635	//     "filter": {
77636	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
77637	//       "location": "query",
77638	//       "type": "string"
77639	//     },
77640	//     "maxResults": {
77641	//       "default": "500",
77642	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
77643	//       "format": "uint32",
77644	//       "location": "query",
77645	//       "minimum": "0",
77646	//       "type": "integer"
77647	//     },
77648	//     "orderBy": {
77649	//       "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.",
77650	//       "location": "query",
77651	//       "type": "string"
77652	//     },
77653	//     "pageToken": {
77654	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
77655	//       "location": "query",
77656	//       "type": "string"
77657	//     },
77658	//     "project": {
77659	//       "description": "Project ID for this request.",
77660	//       "location": "path",
77661	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77662	//       "required": true,
77663	//       "type": "string"
77664	//     },
77665	//     "returnPartialSuccess": {
77666	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
77667	//       "location": "query",
77668	//       "type": "boolean"
77669	//     }
77670	//   },
77671	//   "path": "projects/{project}/global/httpsHealthChecks",
77672	//   "response": {
77673	//     "$ref": "HttpsHealthCheckList"
77674	//   },
77675	//   "scopes": [
77676	//     "https://www.googleapis.com/auth/cloud-platform",
77677	//     "https://www.googleapis.com/auth/compute",
77678	//     "https://www.googleapis.com/auth/compute.readonly"
77679	//   ]
77680	// }
77681
77682}
77683
77684// Pages invokes f for each page of results.
77685// A non-nil error returned from f will halt the iteration.
77686// The provided context supersedes any context provided to the Context method.
77687func (c *HttpsHealthChecksListCall) Pages(ctx context.Context, f func(*HttpsHealthCheckList) error) error {
77688	c.ctx_ = ctx
77689	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
77690	for {
77691		x, err := c.Do()
77692		if err != nil {
77693			return err
77694		}
77695		if err := f(x); err != nil {
77696			return err
77697		}
77698		if x.NextPageToken == "" {
77699			return nil
77700		}
77701		c.PageToken(x.NextPageToken)
77702	}
77703}
77704
77705// method id "compute.httpsHealthChecks.patch":
77706
77707type HttpsHealthChecksPatchCall struct {
77708	s                *Service
77709	project          string
77710	httpsHealthCheck string
77711	httpshealthcheck *HttpsHealthCheck
77712	urlParams_       gensupport.URLParams
77713	ctx_             context.Context
77714	header_          http.Header
77715}
77716
77717// Patch: Updates a HttpsHealthCheck resource in the specified project
77718// using the data included in the request. This method supports PATCH
77719// semantics and uses the JSON merge patch format and processing rules.
77720//
77721// - httpsHealthCheck: Name of the HttpsHealthCheck resource to patch.
77722// - project: Project ID for this request.
77723func (r *HttpsHealthChecksService) Patch(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksPatchCall {
77724	c := &HttpsHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77725	c.project = project
77726	c.httpsHealthCheck = httpsHealthCheck
77727	c.httpshealthcheck = httpshealthcheck
77728	return c
77729}
77730
77731// RequestId sets the optional parameter "requestId": An optional
77732// request ID to identify requests. Specify a unique request ID so that
77733// if you must retry your request, the server will know to ignore the
77734// request if it has already been completed. For example, consider a
77735// situation where you make an initial request and the request times
77736// out. If you make the request again with the same request ID, the
77737// server can check if original operation with the same request ID was
77738// received, and if so, will ignore the second request. This prevents
77739// clients from accidentally creating duplicate commitments. The request
77740// ID must be a valid UUID with the exception that zero UUID is not
77741// supported ( 00000000-0000-0000-0000-000000000000).
77742func (c *HttpsHealthChecksPatchCall) RequestId(requestId string) *HttpsHealthChecksPatchCall {
77743	c.urlParams_.Set("requestId", requestId)
77744	return c
77745}
77746
77747// Fields allows partial responses to be retrieved. See
77748// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77749// for more information.
77750func (c *HttpsHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpsHealthChecksPatchCall {
77751	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77752	return c
77753}
77754
77755// Context sets the context to be used in this call's Do method. Any
77756// pending HTTP request will be aborted if the provided context is
77757// canceled.
77758func (c *HttpsHealthChecksPatchCall) Context(ctx context.Context) *HttpsHealthChecksPatchCall {
77759	c.ctx_ = ctx
77760	return c
77761}
77762
77763// Header returns an http.Header that can be modified by the caller to
77764// add HTTP headers to the request.
77765func (c *HttpsHealthChecksPatchCall) Header() http.Header {
77766	if c.header_ == nil {
77767		c.header_ = make(http.Header)
77768	}
77769	return c.header_
77770}
77771
77772func (c *HttpsHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
77773	reqHeaders := make(http.Header)
77774	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
77775	for k, v := range c.header_ {
77776		reqHeaders[k] = v
77777	}
77778	reqHeaders.Set("User-Agent", c.s.userAgent())
77779	var body io.Reader = nil
77780	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
77781	if err != nil {
77782		return nil, err
77783	}
77784	reqHeaders.Set("Content-Type", "application/json")
77785	c.urlParams_.Set("alt", alt)
77786	c.urlParams_.Set("prettyPrint", "false")
77787	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}")
77788	urls += "?" + c.urlParams_.Encode()
77789	req, err := http.NewRequest("PATCH", urls, body)
77790	if err != nil {
77791		return nil, err
77792	}
77793	req.Header = reqHeaders
77794	googleapi.Expand(req.URL, map[string]string{
77795		"project":          c.project,
77796		"httpsHealthCheck": c.httpsHealthCheck,
77797	})
77798	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77799}
77800
77801// Do executes the "compute.httpsHealthChecks.patch" call.
77802// Exactly one of *Operation or error will be non-nil. Any non-2xx
77803// status code is an error. Response headers are in either
77804// *Operation.ServerResponse.Header or (if a response was returned at
77805// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77806// to check whether the returned error was because
77807// http.StatusNotModified was returned.
77808func (c *HttpsHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77809	gensupport.SetOptions(c.urlParams_, opts...)
77810	res, err := c.doRequest("json")
77811	if res != nil && res.StatusCode == http.StatusNotModified {
77812		if res.Body != nil {
77813			res.Body.Close()
77814		}
77815		return nil, &googleapi.Error{
77816			Code:   res.StatusCode,
77817			Header: res.Header,
77818		}
77819	}
77820	if err != nil {
77821		return nil, err
77822	}
77823	defer googleapi.CloseBody(res)
77824	if err := googleapi.CheckResponse(res); err != nil {
77825		return nil, err
77826	}
77827	ret := &Operation{
77828		ServerResponse: googleapi.ServerResponse{
77829			Header:         res.Header,
77830			HTTPStatusCode: res.StatusCode,
77831		},
77832	}
77833	target := &ret
77834	if err := gensupport.DecodeResponse(target, res); err != nil {
77835		return nil, err
77836	}
77837	return ret, nil
77838	// {
77839	//   "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.",
77840	//   "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
77841	//   "httpMethod": "PATCH",
77842	//   "id": "compute.httpsHealthChecks.patch",
77843	//   "parameterOrder": [
77844	//     "project",
77845	//     "httpsHealthCheck"
77846	//   ],
77847	//   "parameters": {
77848	//     "httpsHealthCheck": {
77849	//       "description": "Name of the HttpsHealthCheck resource to patch.",
77850	//       "location": "path",
77851	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77852	//       "required": true,
77853	//       "type": "string"
77854	//     },
77855	//     "project": {
77856	//       "description": "Project ID for this request.",
77857	//       "location": "path",
77858	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77859	//       "required": true,
77860	//       "type": "string"
77861	//     },
77862	//     "requestId": {
77863	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
77864	//       "location": "query",
77865	//       "type": "string"
77866	//     }
77867	//   },
77868	//   "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
77869	//   "request": {
77870	//     "$ref": "HttpsHealthCheck"
77871	//   },
77872	//   "response": {
77873	//     "$ref": "Operation"
77874	//   },
77875	//   "scopes": [
77876	//     "https://www.googleapis.com/auth/cloud-platform",
77877	//     "https://www.googleapis.com/auth/compute"
77878	//   ]
77879	// }
77880
77881}
77882
77883// method id "compute.httpsHealthChecks.update":
77884
77885type HttpsHealthChecksUpdateCall struct {
77886	s                *Service
77887	project          string
77888	httpsHealthCheck string
77889	httpshealthcheck *HttpsHealthCheck
77890	urlParams_       gensupport.URLParams
77891	ctx_             context.Context
77892	header_          http.Header
77893}
77894
77895// Update: Updates a HttpsHealthCheck resource in the specified project
77896// using the data included in the request.
77897//
77898// - httpsHealthCheck: Name of the HttpsHealthCheck resource to update.
77899// - project: Project ID for this request.
77900func (r *HttpsHealthChecksService) Update(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksUpdateCall {
77901	c := &HttpsHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77902	c.project = project
77903	c.httpsHealthCheck = httpsHealthCheck
77904	c.httpshealthcheck = httpshealthcheck
77905	return c
77906}
77907
77908// RequestId sets the optional parameter "requestId": An optional
77909// request ID to identify requests. Specify a unique request ID so that
77910// if you must retry your request, the server will know to ignore the
77911// request if it has already been completed. For example, consider a
77912// situation where you make an initial request and the request times
77913// out. If you make the request again with the same request ID, the
77914// server can check if original operation with the same request ID was
77915// received, and if so, will ignore the second request. This prevents
77916// clients from accidentally creating duplicate commitments. The request
77917// ID must be a valid UUID with the exception that zero UUID is not
77918// supported ( 00000000-0000-0000-0000-000000000000).
77919func (c *HttpsHealthChecksUpdateCall) RequestId(requestId string) *HttpsHealthChecksUpdateCall {
77920	c.urlParams_.Set("requestId", requestId)
77921	return c
77922}
77923
77924// Fields allows partial responses to be retrieved. See
77925// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77926// for more information.
77927func (c *HttpsHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpsHealthChecksUpdateCall {
77928	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77929	return c
77930}
77931
77932// Context sets the context to be used in this call's Do method. Any
77933// pending HTTP request will be aborted if the provided context is
77934// canceled.
77935func (c *HttpsHealthChecksUpdateCall) Context(ctx context.Context) *HttpsHealthChecksUpdateCall {
77936	c.ctx_ = ctx
77937	return c
77938}
77939
77940// Header returns an http.Header that can be modified by the caller to
77941// add HTTP headers to the request.
77942func (c *HttpsHealthChecksUpdateCall) Header() http.Header {
77943	if c.header_ == nil {
77944		c.header_ = make(http.Header)
77945	}
77946	return c.header_
77947}
77948
77949func (c *HttpsHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
77950	reqHeaders := make(http.Header)
77951	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
77952	for k, v := range c.header_ {
77953		reqHeaders[k] = v
77954	}
77955	reqHeaders.Set("User-Agent", c.s.userAgent())
77956	var body io.Reader = nil
77957	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
77958	if err != nil {
77959		return nil, err
77960	}
77961	reqHeaders.Set("Content-Type", "application/json")
77962	c.urlParams_.Set("alt", alt)
77963	c.urlParams_.Set("prettyPrint", "false")
77964	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}")
77965	urls += "?" + c.urlParams_.Encode()
77966	req, err := http.NewRequest("PUT", urls, body)
77967	if err != nil {
77968		return nil, err
77969	}
77970	req.Header = reqHeaders
77971	googleapi.Expand(req.URL, map[string]string{
77972		"project":          c.project,
77973		"httpsHealthCheck": c.httpsHealthCheck,
77974	})
77975	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77976}
77977
77978// Do executes the "compute.httpsHealthChecks.update" call.
77979// Exactly one of *Operation or error will be non-nil. Any non-2xx
77980// status code is an error. Response headers are in either
77981// *Operation.ServerResponse.Header or (if a response was returned at
77982// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77983// to check whether the returned error was because
77984// http.StatusNotModified was returned.
77985func (c *HttpsHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77986	gensupport.SetOptions(c.urlParams_, opts...)
77987	res, err := c.doRequest("json")
77988	if res != nil && res.StatusCode == http.StatusNotModified {
77989		if res.Body != nil {
77990			res.Body.Close()
77991		}
77992		return nil, &googleapi.Error{
77993			Code:   res.StatusCode,
77994			Header: res.Header,
77995		}
77996	}
77997	if err != nil {
77998		return nil, err
77999	}
78000	defer googleapi.CloseBody(res)
78001	if err := googleapi.CheckResponse(res); err != nil {
78002		return nil, err
78003	}
78004	ret := &Operation{
78005		ServerResponse: googleapi.ServerResponse{
78006			Header:         res.Header,
78007			HTTPStatusCode: res.StatusCode,
78008		},
78009	}
78010	target := &ret
78011	if err := gensupport.DecodeResponse(target, res); err != nil {
78012		return nil, err
78013	}
78014	return ret, nil
78015	// {
78016	//   "description": "Updates a HttpsHealthCheck resource in the specified project using the data included in the request.",
78017	//   "flatPath": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
78018	//   "httpMethod": "PUT",
78019	//   "id": "compute.httpsHealthChecks.update",
78020	//   "parameterOrder": [
78021	//     "project",
78022	//     "httpsHealthCheck"
78023	//   ],
78024	//   "parameters": {
78025	//     "httpsHealthCheck": {
78026	//       "description": "Name of the HttpsHealthCheck resource to update.",
78027	//       "location": "path",
78028	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78029	//       "required": true,
78030	//       "type": "string"
78031	//     },
78032	//     "project": {
78033	//       "description": "Project ID for this request.",
78034	//       "location": "path",
78035	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78036	//       "required": true,
78037	//       "type": "string"
78038	//     },
78039	//     "requestId": {
78040	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
78041	//       "location": "query",
78042	//       "type": "string"
78043	//     }
78044	//   },
78045	//   "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
78046	//   "request": {
78047	//     "$ref": "HttpsHealthCheck"
78048	//   },
78049	//   "response": {
78050	//     "$ref": "Operation"
78051	//   },
78052	//   "scopes": [
78053	//     "https://www.googleapis.com/auth/cloud-platform",
78054	//     "https://www.googleapis.com/auth/compute"
78055	//   ]
78056	// }
78057
78058}
78059
78060// method id "compute.imageFamilyViews.get":
78061
78062type ImageFamilyViewsGetCall struct {
78063	s            *Service
78064	project      string
78065	zone         string
78066	family       string
78067	urlParams_   gensupport.URLParams
78068	ifNoneMatch_ string
78069	ctx_         context.Context
78070	header_      http.Header
78071}
78072
78073// Get: Returns the latest image that is part of an image family, is not
78074// deprecated and is rolled out in the specified zone.
78075//
78076// - family: Name of the image family to search for.
78077// - project: Project ID for this request.
78078// - zone: The name of the zone for this request.
78079func (r *ImageFamilyViewsService) Get(project string, zone string, family string) *ImageFamilyViewsGetCall {
78080	c := &ImageFamilyViewsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78081	c.project = project
78082	c.zone = zone
78083	c.family = family
78084	return c
78085}
78086
78087// Fields allows partial responses to be retrieved. See
78088// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78089// for more information.
78090func (c *ImageFamilyViewsGetCall) Fields(s ...googleapi.Field) *ImageFamilyViewsGetCall {
78091	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78092	return c
78093}
78094
78095// IfNoneMatch sets the optional parameter which makes the operation
78096// fail if the object's ETag matches the given value. This is useful for
78097// getting updates only after the object has changed since the last
78098// request. Use googleapi.IsNotModified to check whether the response
78099// error from Do is the result of In-None-Match.
78100func (c *ImageFamilyViewsGetCall) IfNoneMatch(entityTag string) *ImageFamilyViewsGetCall {
78101	c.ifNoneMatch_ = entityTag
78102	return c
78103}
78104
78105// Context sets the context to be used in this call's Do method. Any
78106// pending HTTP request will be aborted if the provided context is
78107// canceled.
78108func (c *ImageFamilyViewsGetCall) Context(ctx context.Context) *ImageFamilyViewsGetCall {
78109	c.ctx_ = ctx
78110	return c
78111}
78112
78113// Header returns an http.Header that can be modified by the caller to
78114// add HTTP headers to the request.
78115func (c *ImageFamilyViewsGetCall) Header() http.Header {
78116	if c.header_ == nil {
78117		c.header_ = make(http.Header)
78118	}
78119	return c.header_
78120}
78121
78122func (c *ImageFamilyViewsGetCall) doRequest(alt string) (*http.Response, error) {
78123	reqHeaders := make(http.Header)
78124	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
78125	for k, v := range c.header_ {
78126		reqHeaders[k] = v
78127	}
78128	reqHeaders.Set("User-Agent", c.s.userAgent())
78129	if c.ifNoneMatch_ != "" {
78130		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
78131	}
78132	var body io.Reader = nil
78133	c.urlParams_.Set("alt", alt)
78134	c.urlParams_.Set("prettyPrint", "false")
78135	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/imageFamilyViews/{family}")
78136	urls += "?" + c.urlParams_.Encode()
78137	req, err := http.NewRequest("GET", urls, body)
78138	if err != nil {
78139		return nil, err
78140	}
78141	req.Header = reqHeaders
78142	googleapi.Expand(req.URL, map[string]string{
78143		"project": c.project,
78144		"zone":    c.zone,
78145		"family":  c.family,
78146	})
78147	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78148}
78149
78150// Do executes the "compute.imageFamilyViews.get" call.
78151// Exactly one of *ImageFamilyView or error will be non-nil. Any non-2xx
78152// status code is an error. Response headers are in either
78153// *ImageFamilyView.ServerResponse.Header or (if a response was returned
78154// at all) in error.(*googleapi.Error).Header. Use
78155// googleapi.IsNotModified to check whether the returned error was
78156// because http.StatusNotModified was returned.
78157func (c *ImageFamilyViewsGetCall) Do(opts ...googleapi.CallOption) (*ImageFamilyView, error) {
78158	gensupport.SetOptions(c.urlParams_, opts...)
78159	res, err := c.doRequest("json")
78160	if res != nil && res.StatusCode == http.StatusNotModified {
78161		if res.Body != nil {
78162			res.Body.Close()
78163		}
78164		return nil, &googleapi.Error{
78165			Code:   res.StatusCode,
78166			Header: res.Header,
78167		}
78168	}
78169	if err != nil {
78170		return nil, err
78171	}
78172	defer googleapi.CloseBody(res)
78173	if err := googleapi.CheckResponse(res); err != nil {
78174		return nil, err
78175	}
78176	ret := &ImageFamilyView{
78177		ServerResponse: googleapi.ServerResponse{
78178			Header:         res.Header,
78179			HTTPStatusCode: res.StatusCode,
78180		},
78181	}
78182	target := &ret
78183	if err := gensupport.DecodeResponse(target, res); err != nil {
78184		return nil, err
78185	}
78186	return ret, nil
78187	// {
78188	//   "description": "Returns the latest image that is part of an image family, is not deprecated and is rolled out in the specified zone.",
78189	//   "flatPath": "projects/{project}/zones/{zone}/imageFamilyViews/{family}",
78190	//   "httpMethod": "GET",
78191	//   "id": "compute.imageFamilyViews.get",
78192	//   "parameterOrder": [
78193	//     "project",
78194	//     "zone",
78195	//     "family"
78196	//   ],
78197	//   "parameters": {
78198	//     "family": {
78199	//       "description": "Name of the image family to search for.",
78200	//       "location": "path",
78201	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78202	//       "required": true,
78203	//       "type": "string"
78204	//     },
78205	//     "project": {
78206	//       "description": "Project ID for this request.",
78207	//       "location": "path",
78208	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78209	//       "required": true,
78210	//       "type": "string"
78211	//     },
78212	//     "zone": {
78213	//       "description": "The name of the zone for this request.",
78214	//       "location": "path",
78215	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
78216	//       "required": true,
78217	//       "type": "string"
78218	//     }
78219	//   },
78220	//   "path": "projects/{project}/zones/{zone}/imageFamilyViews/{family}",
78221	//   "response": {
78222	//     "$ref": "ImageFamilyView"
78223	//   },
78224	//   "scopes": [
78225	//     "https://www.googleapis.com/auth/cloud-platform",
78226	//     "https://www.googleapis.com/auth/compute",
78227	//     "https://www.googleapis.com/auth/compute.readonly"
78228	//   ]
78229	// }
78230
78231}
78232
78233// method id "compute.images.delete":
78234
78235type ImagesDeleteCall struct {
78236	s          *Service
78237	project    string
78238	image      string
78239	urlParams_ gensupport.URLParams
78240	ctx_       context.Context
78241	header_    http.Header
78242}
78243
78244// Delete: Deletes the specified image.
78245//
78246// - image: Name of the image resource to delete.
78247// - project: Project ID for this request.
78248func (r *ImagesService) Delete(project string, image string) *ImagesDeleteCall {
78249	c := &ImagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78250	c.project = project
78251	c.image = image
78252	return c
78253}
78254
78255// RequestId sets the optional parameter "requestId": An optional
78256// request ID to identify requests. Specify a unique request ID so that
78257// if you must retry your request, the server will know to ignore the
78258// request if it has already been completed. For example, consider a
78259// situation where you make an initial request and the request times
78260// out. If you make the request again with the same request ID, the
78261// server can check if original operation with the same request ID was
78262// received, and if so, will ignore the second request. This prevents
78263// clients from accidentally creating duplicate commitments. The request
78264// ID must be a valid UUID with the exception that zero UUID is not
78265// supported ( 00000000-0000-0000-0000-000000000000).
78266func (c *ImagesDeleteCall) RequestId(requestId string) *ImagesDeleteCall {
78267	c.urlParams_.Set("requestId", requestId)
78268	return c
78269}
78270
78271// Fields allows partial responses to be retrieved. See
78272// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78273// for more information.
78274func (c *ImagesDeleteCall) Fields(s ...googleapi.Field) *ImagesDeleteCall {
78275	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78276	return c
78277}
78278
78279// Context sets the context to be used in this call's Do method. Any
78280// pending HTTP request will be aborted if the provided context is
78281// canceled.
78282func (c *ImagesDeleteCall) Context(ctx context.Context) *ImagesDeleteCall {
78283	c.ctx_ = ctx
78284	return c
78285}
78286
78287// Header returns an http.Header that can be modified by the caller to
78288// add HTTP headers to the request.
78289func (c *ImagesDeleteCall) Header() http.Header {
78290	if c.header_ == nil {
78291		c.header_ = make(http.Header)
78292	}
78293	return c.header_
78294}
78295
78296func (c *ImagesDeleteCall) doRequest(alt string) (*http.Response, error) {
78297	reqHeaders := make(http.Header)
78298	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
78299	for k, v := range c.header_ {
78300		reqHeaders[k] = v
78301	}
78302	reqHeaders.Set("User-Agent", c.s.userAgent())
78303	var body io.Reader = nil
78304	c.urlParams_.Set("alt", alt)
78305	c.urlParams_.Set("prettyPrint", "false")
78306	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{image}")
78307	urls += "?" + c.urlParams_.Encode()
78308	req, err := http.NewRequest("DELETE", urls, body)
78309	if err != nil {
78310		return nil, err
78311	}
78312	req.Header = reqHeaders
78313	googleapi.Expand(req.URL, map[string]string{
78314		"project": c.project,
78315		"image":   c.image,
78316	})
78317	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78318}
78319
78320// Do executes the "compute.images.delete" call.
78321// Exactly one of *Operation or error will be non-nil. Any non-2xx
78322// status code is an error. Response headers are in either
78323// *Operation.ServerResponse.Header or (if a response was returned at
78324// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78325// to check whether the returned error was because
78326// http.StatusNotModified was returned.
78327func (c *ImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78328	gensupport.SetOptions(c.urlParams_, opts...)
78329	res, err := c.doRequest("json")
78330	if res != nil && res.StatusCode == http.StatusNotModified {
78331		if res.Body != nil {
78332			res.Body.Close()
78333		}
78334		return nil, &googleapi.Error{
78335			Code:   res.StatusCode,
78336			Header: res.Header,
78337		}
78338	}
78339	if err != nil {
78340		return nil, err
78341	}
78342	defer googleapi.CloseBody(res)
78343	if err := googleapi.CheckResponse(res); err != nil {
78344		return nil, err
78345	}
78346	ret := &Operation{
78347		ServerResponse: googleapi.ServerResponse{
78348			Header:         res.Header,
78349			HTTPStatusCode: res.StatusCode,
78350		},
78351	}
78352	target := &ret
78353	if err := gensupport.DecodeResponse(target, res); err != nil {
78354		return nil, err
78355	}
78356	return ret, nil
78357	// {
78358	//   "description": "Deletes the specified image.",
78359	//   "flatPath": "projects/{project}/global/images/{image}",
78360	//   "httpMethod": "DELETE",
78361	//   "id": "compute.images.delete",
78362	//   "parameterOrder": [
78363	//     "project",
78364	//     "image"
78365	//   ],
78366	//   "parameters": {
78367	//     "image": {
78368	//       "description": "Name of the image resource to delete.",
78369	//       "location": "path",
78370	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78371	//       "required": true,
78372	//       "type": "string"
78373	//     },
78374	//     "project": {
78375	//       "description": "Project ID for this request.",
78376	//       "location": "path",
78377	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78378	//       "required": true,
78379	//       "type": "string"
78380	//     },
78381	//     "requestId": {
78382	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
78383	//       "location": "query",
78384	//       "type": "string"
78385	//     }
78386	//   },
78387	//   "path": "projects/{project}/global/images/{image}",
78388	//   "response": {
78389	//     "$ref": "Operation"
78390	//   },
78391	//   "scopes": [
78392	//     "https://www.googleapis.com/auth/cloud-platform",
78393	//     "https://www.googleapis.com/auth/compute"
78394	//   ]
78395	// }
78396
78397}
78398
78399// method id "compute.images.deprecate":
78400
78401type ImagesDeprecateCall struct {
78402	s                 *Service
78403	project           string
78404	image             string
78405	deprecationstatus *DeprecationStatus
78406	urlParams_        gensupport.URLParams
78407	ctx_              context.Context
78408	header_           http.Header
78409}
78410
78411// Deprecate: Sets the deprecation status of an image. If an empty
78412// request body is given, clears the deprecation status instead.
78413//
78414// - image: Image name.
78415// - project: Project ID for this request.
78416func (r *ImagesService) Deprecate(project string, image string, deprecationstatus *DeprecationStatus) *ImagesDeprecateCall {
78417	c := &ImagesDeprecateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78418	c.project = project
78419	c.image = image
78420	c.deprecationstatus = deprecationstatus
78421	return c
78422}
78423
78424// RequestId sets the optional parameter "requestId": An optional
78425// request ID to identify requests. Specify a unique request ID so that
78426// if you must retry your request, the server will know to ignore the
78427// request if it has already been completed. For example, consider a
78428// situation where you make an initial request and the request times
78429// out. If you make the request again with the same request ID, the
78430// server can check if original operation with the same request ID was
78431// received, and if so, will ignore the second request. This prevents
78432// clients from accidentally creating duplicate commitments. The request
78433// ID must be a valid UUID with the exception that zero UUID is not
78434// supported ( 00000000-0000-0000-0000-000000000000).
78435func (c *ImagesDeprecateCall) RequestId(requestId string) *ImagesDeprecateCall {
78436	c.urlParams_.Set("requestId", requestId)
78437	return c
78438}
78439
78440// Fields allows partial responses to be retrieved. See
78441// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78442// for more information.
78443func (c *ImagesDeprecateCall) Fields(s ...googleapi.Field) *ImagesDeprecateCall {
78444	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78445	return c
78446}
78447
78448// Context sets the context to be used in this call's Do method. Any
78449// pending HTTP request will be aborted if the provided context is
78450// canceled.
78451func (c *ImagesDeprecateCall) Context(ctx context.Context) *ImagesDeprecateCall {
78452	c.ctx_ = ctx
78453	return c
78454}
78455
78456// Header returns an http.Header that can be modified by the caller to
78457// add HTTP headers to the request.
78458func (c *ImagesDeprecateCall) Header() http.Header {
78459	if c.header_ == nil {
78460		c.header_ = make(http.Header)
78461	}
78462	return c.header_
78463}
78464
78465func (c *ImagesDeprecateCall) doRequest(alt string) (*http.Response, error) {
78466	reqHeaders := make(http.Header)
78467	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
78468	for k, v := range c.header_ {
78469		reqHeaders[k] = v
78470	}
78471	reqHeaders.Set("User-Agent", c.s.userAgent())
78472	var body io.Reader = nil
78473	body, err := googleapi.WithoutDataWrapper.JSONReader(c.deprecationstatus)
78474	if err != nil {
78475		return nil, err
78476	}
78477	reqHeaders.Set("Content-Type", "application/json")
78478	c.urlParams_.Set("alt", alt)
78479	c.urlParams_.Set("prettyPrint", "false")
78480	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{image}/deprecate")
78481	urls += "?" + c.urlParams_.Encode()
78482	req, err := http.NewRequest("POST", urls, body)
78483	if err != nil {
78484		return nil, err
78485	}
78486	req.Header = reqHeaders
78487	googleapi.Expand(req.URL, map[string]string{
78488		"project": c.project,
78489		"image":   c.image,
78490	})
78491	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78492}
78493
78494// Do executes the "compute.images.deprecate" call.
78495// Exactly one of *Operation or error will be non-nil. Any non-2xx
78496// status code is an error. Response headers are in either
78497// *Operation.ServerResponse.Header or (if a response was returned at
78498// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78499// to check whether the returned error was because
78500// http.StatusNotModified was returned.
78501func (c *ImagesDeprecateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78502	gensupport.SetOptions(c.urlParams_, opts...)
78503	res, err := c.doRequest("json")
78504	if res != nil && res.StatusCode == http.StatusNotModified {
78505		if res.Body != nil {
78506			res.Body.Close()
78507		}
78508		return nil, &googleapi.Error{
78509			Code:   res.StatusCode,
78510			Header: res.Header,
78511		}
78512	}
78513	if err != nil {
78514		return nil, err
78515	}
78516	defer googleapi.CloseBody(res)
78517	if err := googleapi.CheckResponse(res); err != nil {
78518		return nil, err
78519	}
78520	ret := &Operation{
78521		ServerResponse: googleapi.ServerResponse{
78522			Header:         res.Header,
78523			HTTPStatusCode: res.StatusCode,
78524		},
78525	}
78526	target := &ret
78527	if err := gensupport.DecodeResponse(target, res); err != nil {
78528		return nil, err
78529	}
78530	return ret, nil
78531	// {
78532	//   "description": "Sets the deprecation status of an image. If an empty request body is given, clears the deprecation status instead.",
78533	//   "flatPath": "projects/{project}/global/images/{image}/deprecate",
78534	//   "httpMethod": "POST",
78535	//   "id": "compute.images.deprecate",
78536	//   "parameterOrder": [
78537	//     "project",
78538	//     "image"
78539	//   ],
78540	//   "parameters": {
78541	//     "image": {
78542	//       "description": "Image name.",
78543	//       "location": "path",
78544	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78545	//       "required": true,
78546	//       "type": "string"
78547	//     },
78548	//     "project": {
78549	//       "description": "Project ID for this request.",
78550	//       "location": "path",
78551	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78552	//       "required": true,
78553	//       "type": "string"
78554	//     },
78555	//     "requestId": {
78556	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
78557	//       "location": "query",
78558	//       "type": "string"
78559	//     }
78560	//   },
78561	//   "path": "projects/{project}/global/images/{image}/deprecate",
78562	//   "request": {
78563	//     "$ref": "DeprecationStatus"
78564	//   },
78565	//   "response": {
78566	//     "$ref": "Operation"
78567	//   },
78568	//   "scopes": [
78569	//     "https://www.googleapis.com/auth/cloud-platform",
78570	//     "https://www.googleapis.com/auth/compute"
78571	//   ]
78572	// }
78573
78574}
78575
78576// method id "compute.images.get":
78577
78578type ImagesGetCall struct {
78579	s            *Service
78580	project      string
78581	image        string
78582	urlParams_   gensupport.URLParams
78583	ifNoneMatch_ string
78584	ctx_         context.Context
78585	header_      http.Header
78586}
78587
78588// Get: Returns the specified image. Gets a list of available images by
78589// making a list() request.
78590//
78591// - image: Name of the image resource to return.
78592// - project: Project ID for this request.
78593func (r *ImagesService) Get(project string, image string) *ImagesGetCall {
78594	c := &ImagesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78595	c.project = project
78596	c.image = image
78597	return c
78598}
78599
78600// Fields allows partial responses to be retrieved. See
78601// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78602// for more information.
78603func (c *ImagesGetCall) Fields(s ...googleapi.Field) *ImagesGetCall {
78604	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78605	return c
78606}
78607
78608// IfNoneMatch sets the optional parameter which makes the operation
78609// fail if the object's ETag matches the given value. This is useful for
78610// getting updates only after the object has changed since the last
78611// request. Use googleapi.IsNotModified to check whether the response
78612// error from Do is the result of In-None-Match.
78613func (c *ImagesGetCall) IfNoneMatch(entityTag string) *ImagesGetCall {
78614	c.ifNoneMatch_ = entityTag
78615	return c
78616}
78617
78618// Context sets the context to be used in this call's Do method. Any
78619// pending HTTP request will be aborted if the provided context is
78620// canceled.
78621func (c *ImagesGetCall) Context(ctx context.Context) *ImagesGetCall {
78622	c.ctx_ = ctx
78623	return c
78624}
78625
78626// Header returns an http.Header that can be modified by the caller to
78627// add HTTP headers to the request.
78628func (c *ImagesGetCall) Header() http.Header {
78629	if c.header_ == nil {
78630		c.header_ = make(http.Header)
78631	}
78632	return c.header_
78633}
78634
78635func (c *ImagesGetCall) doRequest(alt string) (*http.Response, error) {
78636	reqHeaders := make(http.Header)
78637	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
78638	for k, v := range c.header_ {
78639		reqHeaders[k] = v
78640	}
78641	reqHeaders.Set("User-Agent", c.s.userAgent())
78642	if c.ifNoneMatch_ != "" {
78643		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
78644	}
78645	var body io.Reader = nil
78646	c.urlParams_.Set("alt", alt)
78647	c.urlParams_.Set("prettyPrint", "false")
78648	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{image}")
78649	urls += "?" + c.urlParams_.Encode()
78650	req, err := http.NewRequest("GET", urls, body)
78651	if err != nil {
78652		return nil, err
78653	}
78654	req.Header = reqHeaders
78655	googleapi.Expand(req.URL, map[string]string{
78656		"project": c.project,
78657		"image":   c.image,
78658	})
78659	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78660}
78661
78662// Do executes the "compute.images.get" call.
78663// Exactly one of *Image or error will be non-nil. Any non-2xx status
78664// code is an error. Response headers are in either
78665// *Image.ServerResponse.Header or (if a response was returned at all)
78666// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
78667// check whether the returned error was because http.StatusNotModified
78668// was returned.
78669func (c *ImagesGetCall) Do(opts ...googleapi.CallOption) (*Image, error) {
78670	gensupport.SetOptions(c.urlParams_, opts...)
78671	res, err := c.doRequest("json")
78672	if res != nil && res.StatusCode == http.StatusNotModified {
78673		if res.Body != nil {
78674			res.Body.Close()
78675		}
78676		return nil, &googleapi.Error{
78677			Code:   res.StatusCode,
78678			Header: res.Header,
78679		}
78680	}
78681	if err != nil {
78682		return nil, err
78683	}
78684	defer googleapi.CloseBody(res)
78685	if err := googleapi.CheckResponse(res); err != nil {
78686		return nil, err
78687	}
78688	ret := &Image{
78689		ServerResponse: googleapi.ServerResponse{
78690			Header:         res.Header,
78691			HTTPStatusCode: res.StatusCode,
78692		},
78693	}
78694	target := &ret
78695	if err := gensupport.DecodeResponse(target, res); err != nil {
78696		return nil, err
78697	}
78698	return ret, nil
78699	// {
78700	//   "description": "Returns the specified image. Gets a list of available images by making a list() request.",
78701	//   "flatPath": "projects/{project}/global/images/{image}",
78702	//   "httpMethod": "GET",
78703	//   "id": "compute.images.get",
78704	//   "parameterOrder": [
78705	//     "project",
78706	//     "image"
78707	//   ],
78708	//   "parameters": {
78709	//     "image": {
78710	//       "description": "Name of the image resource to return.",
78711	//       "location": "path",
78712	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78713	//       "required": true,
78714	//       "type": "string"
78715	//     },
78716	//     "project": {
78717	//       "description": "Project ID for this request.",
78718	//       "location": "path",
78719	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78720	//       "required": true,
78721	//       "type": "string"
78722	//     }
78723	//   },
78724	//   "path": "projects/{project}/global/images/{image}",
78725	//   "response": {
78726	//     "$ref": "Image"
78727	//   },
78728	//   "scopes": [
78729	//     "https://www.googleapis.com/auth/cloud-platform",
78730	//     "https://www.googleapis.com/auth/compute",
78731	//     "https://www.googleapis.com/auth/compute.readonly"
78732	//   ]
78733	// }
78734
78735}
78736
78737// method id "compute.images.getFromFamily":
78738
78739type ImagesGetFromFamilyCall struct {
78740	s            *Service
78741	project      string
78742	family       string
78743	urlParams_   gensupport.URLParams
78744	ifNoneMatch_ string
78745	ctx_         context.Context
78746	header_      http.Header
78747}
78748
78749// GetFromFamily: Returns the latest image that is part of an image
78750// family and is not deprecated.
78751//
78752// - family: Name of the image family to search for.
78753// - project: Project ID for this request.
78754func (r *ImagesService) GetFromFamily(project string, family string) *ImagesGetFromFamilyCall {
78755	c := &ImagesGetFromFamilyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78756	c.project = project
78757	c.family = family
78758	return c
78759}
78760
78761// Fields allows partial responses to be retrieved. See
78762// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78763// for more information.
78764func (c *ImagesGetFromFamilyCall) Fields(s ...googleapi.Field) *ImagesGetFromFamilyCall {
78765	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78766	return c
78767}
78768
78769// IfNoneMatch sets the optional parameter which makes the operation
78770// fail if the object's ETag matches the given value. This is useful for
78771// getting updates only after the object has changed since the last
78772// request. Use googleapi.IsNotModified to check whether the response
78773// error from Do is the result of In-None-Match.
78774func (c *ImagesGetFromFamilyCall) IfNoneMatch(entityTag string) *ImagesGetFromFamilyCall {
78775	c.ifNoneMatch_ = entityTag
78776	return c
78777}
78778
78779// Context sets the context to be used in this call's Do method. Any
78780// pending HTTP request will be aborted if the provided context is
78781// canceled.
78782func (c *ImagesGetFromFamilyCall) Context(ctx context.Context) *ImagesGetFromFamilyCall {
78783	c.ctx_ = ctx
78784	return c
78785}
78786
78787// Header returns an http.Header that can be modified by the caller to
78788// add HTTP headers to the request.
78789func (c *ImagesGetFromFamilyCall) Header() http.Header {
78790	if c.header_ == nil {
78791		c.header_ = make(http.Header)
78792	}
78793	return c.header_
78794}
78795
78796func (c *ImagesGetFromFamilyCall) doRequest(alt string) (*http.Response, error) {
78797	reqHeaders := make(http.Header)
78798	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
78799	for k, v := range c.header_ {
78800		reqHeaders[k] = v
78801	}
78802	reqHeaders.Set("User-Agent", c.s.userAgent())
78803	if c.ifNoneMatch_ != "" {
78804		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
78805	}
78806	var body io.Reader = nil
78807	c.urlParams_.Set("alt", alt)
78808	c.urlParams_.Set("prettyPrint", "false")
78809	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/family/{family}")
78810	urls += "?" + c.urlParams_.Encode()
78811	req, err := http.NewRequest("GET", urls, body)
78812	if err != nil {
78813		return nil, err
78814	}
78815	req.Header = reqHeaders
78816	googleapi.Expand(req.URL, map[string]string{
78817		"project": c.project,
78818		"family":  c.family,
78819	})
78820	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78821}
78822
78823// Do executes the "compute.images.getFromFamily" call.
78824// Exactly one of *Image or error will be non-nil. Any non-2xx status
78825// code is an error. Response headers are in either
78826// *Image.ServerResponse.Header or (if a response was returned at all)
78827// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
78828// check whether the returned error was because http.StatusNotModified
78829// was returned.
78830func (c *ImagesGetFromFamilyCall) Do(opts ...googleapi.CallOption) (*Image, error) {
78831	gensupport.SetOptions(c.urlParams_, opts...)
78832	res, err := c.doRequest("json")
78833	if res != nil && res.StatusCode == http.StatusNotModified {
78834		if res.Body != nil {
78835			res.Body.Close()
78836		}
78837		return nil, &googleapi.Error{
78838			Code:   res.StatusCode,
78839			Header: res.Header,
78840		}
78841	}
78842	if err != nil {
78843		return nil, err
78844	}
78845	defer googleapi.CloseBody(res)
78846	if err := googleapi.CheckResponse(res); err != nil {
78847		return nil, err
78848	}
78849	ret := &Image{
78850		ServerResponse: googleapi.ServerResponse{
78851			Header:         res.Header,
78852			HTTPStatusCode: res.StatusCode,
78853		},
78854	}
78855	target := &ret
78856	if err := gensupport.DecodeResponse(target, res); err != nil {
78857		return nil, err
78858	}
78859	return ret, nil
78860	// {
78861	//   "description": "Returns the latest image that is part of an image family and is not deprecated.",
78862	//   "flatPath": "projects/{project}/global/images/family/{family}",
78863	//   "httpMethod": "GET",
78864	//   "id": "compute.images.getFromFamily",
78865	//   "parameterOrder": [
78866	//     "project",
78867	//     "family"
78868	//   ],
78869	//   "parameters": {
78870	//     "family": {
78871	//       "description": "Name of the image family to search for.",
78872	//       "location": "path",
78873	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78874	//       "required": true,
78875	//       "type": "string"
78876	//     },
78877	//     "project": {
78878	//       "description": "Project ID for this request.",
78879	//       "location": "path",
78880	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78881	//       "required": true,
78882	//       "type": "string"
78883	//     }
78884	//   },
78885	//   "path": "projects/{project}/global/images/family/{family}",
78886	//   "response": {
78887	//     "$ref": "Image"
78888	//   },
78889	//   "scopes": [
78890	//     "https://www.googleapis.com/auth/cloud-platform",
78891	//     "https://www.googleapis.com/auth/compute",
78892	//     "https://www.googleapis.com/auth/compute.readonly"
78893	//   ]
78894	// }
78895
78896}
78897
78898// method id "compute.images.getIamPolicy":
78899
78900type ImagesGetIamPolicyCall struct {
78901	s            *Service
78902	project      string
78903	resource     string
78904	urlParams_   gensupport.URLParams
78905	ifNoneMatch_ string
78906	ctx_         context.Context
78907	header_      http.Header
78908}
78909
78910// GetIamPolicy: Gets the access control policy for a resource. May be
78911// empty if no such policy or resource exists.
78912//
78913// - project: Project ID for this request.
78914// - resource: Name or id of the resource for this request.
78915func (r *ImagesService) GetIamPolicy(project string, resource string) *ImagesGetIamPolicyCall {
78916	c := &ImagesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78917	c.project = project
78918	c.resource = resource
78919	return c
78920}
78921
78922// OptionsRequestedPolicyVersion sets the optional parameter
78923// "optionsRequestedPolicyVersion": Requested IAM Policy version.
78924func (c *ImagesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ImagesGetIamPolicyCall {
78925	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
78926	return c
78927}
78928
78929// Fields allows partial responses to be retrieved. See
78930// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78931// for more information.
78932func (c *ImagesGetIamPolicyCall) Fields(s ...googleapi.Field) *ImagesGetIamPolicyCall {
78933	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78934	return c
78935}
78936
78937// IfNoneMatch sets the optional parameter which makes the operation
78938// fail if the object's ETag matches the given value. This is useful for
78939// getting updates only after the object has changed since the last
78940// request. Use googleapi.IsNotModified to check whether the response
78941// error from Do is the result of In-None-Match.
78942func (c *ImagesGetIamPolicyCall) IfNoneMatch(entityTag string) *ImagesGetIamPolicyCall {
78943	c.ifNoneMatch_ = entityTag
78944	return c
78945}
78946
78947// Context sets the context to be used in this call's Do method. Any
78948// pending HTTP request will be aborted if the provided context is
78949// canceled.
78950func (c *ImagesGetIamPolicyCall) Context(ctx context.Context) *ImagesGetIamPolicyCall {
78951	c.ctx_ = ctx
78952	return c
78953}
78954
78955// Header returns an http.Header that can be modified by the caller to
78956// add HTTP headers to the request.
78957func (c *ImagesGetIamPolicyCall) Header() http.Header {
78958	if c.header_ == nil {
78959		c.header_ = make(http.Header)
78960	}
78961	return c.header_
78962}
78963
78964func (c *ImagesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
78965	reqHeaders := make(http.Header)
78966	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
78967	for k, v := range c.header_ {
78968		reqHeaders[k] = v
78969	}
78970	reqHeaders.Set("User-Agent", c.s.userAgent())
78971	if c.ifNoneMatch_ != "" {
78972		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
78973	}
78974	var body io.Reader = nil
78975	c.urlParams_.Set("alt", alt)
78976	c.urlParams_.Set("prettyPrint", "false")
78977	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{resource}/getIamPolicy")
78978	urls += "?" + c.urlParams_.Encode()
78979	req, err := http.NewRequest("GET", urls, body)
78980	if err != nil {
78981		return nil, err
78982	}
78983	req.Header = reqHeaders
78984	googleapi.Expand(req.URL, map[string]string{
78985		"project":  c.project,
78986		"resource": c.resource,
78987	})
78988	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78989}
78990
78991// Do executes the "compute.images.getIamPolicy" call.
78992// Exactly one of *Policy or error will be non-nil. Any non-2xx status
78993// code is an error. Response headers are in either
78994// *Policy.ServerResponse.Header or (if a response was returned at all)
78995// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
78996// check whether the returned error was because http.StatusNotModified
78997// was returned.
78998func (c *ImagesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
78999	gensupport.SetOptions(c.urlParams_, opts...)
79000	res, err := c.doRequest("json")
79001	if res != nil && res.StatusCode == http.StatusNotModified {
79002		if res.Body != nil {
79003			res.Body.Close()
79004		}
79005		return nil, &googleapi.Error{
79006			Code:   res.StatusCode,
79007			Header: res.Header,
79008		}
79009	}
79010	if err != nil {
79011		return nil, err
79012	}
79013	defer googleapi.CloseBody(res)
79014	if err := googleapi.CheckResponse(res); err != nil {
79015		return nil, err
79016	}
79017	ret := &Policy{
79018		ServerResponse: googleapi.ServerResponse{
79019			Header:         res.Header,
79020			HTTPStatusCode: res.StatusCode,
79021		},
79022	}
79023	target := &ret
79024	if err := gensupport.DecodeResponse(target, res); err != nil {
79025		return nil, err
79026	}
79027	return ret, nil
79028	// {
79029	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
79030	//   "flatPath": "projects/{project}/global/images/{resource}/getIamPolicy",
79031	//   "httpMethod": "GET",
79032	//   "id": "compute.images.getIamPolicy",
79033	//   "parameterOrder": [
79034	//     "project",
79035	//     "resource"
79036	//   ],
79037	//   "parameters": {
79038	//     "optionsRequestedPolicyVersion": {
79039	//       "description": "Requested IAM Policy version.",
79040	//       "format": "int32",
79041	//       "location": "query",
79042	//       "type": "integer"
79043	//     },
79044	//     "project": {
79045	//       "description": "Project ID for this request.",
79046	//       "location": "path",
79047	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79048	//       "required": true,
79049	//       "type": "string"
79050	//     },
79051	//     "resource": {
79052	//       "description": "Name or id of the resource for this request.",
79053	//       "location": "path",
79054	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
79055	//       "required": true,
79056	//       "type": "string"
79057	//     }
79058	//   },
79059	//   "path": "projects/{project}/global/images/{resource}/getIamPolicy",
79060	//   "response": {
79061	//     "$ref": "Policy"
79062	//   },
79063	//   "scopes": [
79064	//     "https://www.googleapis.com/auth/cloud-platform",
79065	//     "https://www.googleapis.com/auth/compute",
79066	//     "https://www.googleapis.com/auth/compute.readonly"
79067	//   ]
79068	// }
79069
79070}
79071
79072// method id "compute.images.insert":
79073
79074type ImagesInsertCall struct {
79075	s          *Service
79076	project    string
79077	image      *Image
79078	urlParams_ gensupport.URLParams
79079	ctx_       context.Context
79080	header_    http.Header
79081}
79082
79083// Insert: Creates an image in the specified project using the data
79084// included in the request.
79085//
79086// - project: Project ID for this request.
79087func (r *ImagesService) Insert(project string, image *Image) *ImagesInsertCall {
79088	c := &ImagesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79089	c.project = project
79090	c.image = image
79091	return c
79092}
79093
79094// ForceCreate sets the optional parameter "forceCreate": Force image
79095// creation if true.
79096func (c *ImagesInsertCall) ForceCreate(forceCreate bool) *ImagesInsertCall {
79097	c.urlParams_.Set("forceCreate", fmt.Sprint(forceCreate))
79098	return c
79099}
79100
79101// RequestId sets the optional parameter "requestId": An optional
79102// request ID to identify requests. Specify a unique request ID so that
79103// if you must retry your request, the server will know to ignore the
79104// request if it has already been completed. For example, consider a
79105// situation where you make an initial request and the request times
79106// out. If you make the request again with the same request ID, the
79107// server can check if original operation with the same request ID was
79108// received, and if so, will ignore the second request. This prevents
79109// clients from accidentally creating duplicate commitments. The request
79110// ID must be a valid UUID with the exception that zero UUID is not
79111// supported ( 00000000-0000-0000-0000-000000000000).
79112func (c *ImagesInsertCall) RequestId(requestId string) *ImagesInsertCall {
79113	c.urlParams_.Set("requestId", requestId)
79114	return c
79115}
79116
79117// Fields allows partial responses to be retrieved. See
79118// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79119// for more information.
79120func (c *ImagesInsertCall) Fields(s ...googleapi.Field) *ImagesInsertCall {
79121	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79122	return c
79123}
79124
79125// Context sets the context to be used in this call's Do method. Any
79126// pending HTTP request will be aborted if the provided context is
79127// canceled.
79128func (c *ImagesInsertCall) Context(ctx context.Context) *ImagesInsertCall {
79129	c.ctx_ = ctx
79130	return c
79131}
79132
79133// Header returns an http.Header that can be modified by the caller to
79134// add HTTP headers to the request.
79135func (c *ImagesInsertCall) Header() http.Header {
79136	if c.header_ == nil {
79137		c.header_ = make(http.Header)
79138	}
79139	return c.header_
79140}
79141
79142func (c *ImagesInsertCall) doRequest(alt string) (*http.Response, error) {
79143	reqHeaders := make(http.Header)
79144	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
79145	for k, v := range c.header_ {
79146		reqHeaders[k] = v
79147	}
79148	reqHeaders.Set("User-Agent", c.s.userAgent())
79149	var body io.Reader = nil
79150	body, err := googleapi.WithoutDataWrapper.JSONReader(c.image)
79151	if err != nil {
79152		return nil, err
79153	}
79154	reqHeaders.Set("Content-Type", "application/json")
79155	c.urlParams_.Set("alt", alt)
79156	c.urlParams_.Set("prettyPrint", "false")
79157	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images")
79158	urls += "?" + c.urlParams_.Encode()
79159	req, err := http.NewRequest("POST", urls, body)
79160	if err != nil {
79161		return nil, err
79162	}
79163	req.Header = reqHeaders
79164	googleapi.Expand(req.URL, map[string]string{
79165		"project": c.project,
79166	})
79167	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79168}
79169
79170// Do executes the "compute.images.insert" call.
79171// Exactly one of *Operation or error will be non-nil. Any non-2xx
79172// status code is an error. Response headers are in either
79173// *Operation.ServerResponse.Header or (if a response was returned at
79174// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79175// to check whether the returned error was because
79176// http.StatusNotModified was returned.
79177func (c *ImagesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79178	gensupport.SetOptions(c.urlParams_, opts...)
79179	res, err := c.doRequest("json")
79180	if res != nil && res.StatusCode == http.StatusNotModified {
79181		if res.Body != nil {
79182			res.Body.Close()
79183		}
79184		return nil, &googleapi.Error{
79185			Code:   res.StatusCode,
79186			Header: res.Header,
79187		}
79188	}
79189	if err != nil {
79190		return nil, err
79191	}
79192	defer googleapi.CloseBody(res)
79193	if err := googleapi.CheckResponse(res); err != nil {
79194		return nil, err
79195	}
79196	ret := &Operation{
79197		ServerResponse: googleapi.ServerResponse{
79198			Header:         res.Header,
79199			HTTPStatusCode: res.StatusCode,
79200		},
79201	}
79202	target := &ret
79203	if err := gensupport.DecodeResponse(target, res); err != nil {
79204		return nil, err
79205	}
79206	return ret, nil
79207	// {
79208	//   "description": "Creates an image in the specified project using the data included in the request.",
79209	//   "flatPath": "projects/{project}/global/images",
79210	//   "httpMethod": "POST",
79211	//   "id": "compute.images.insert",
79212	//   "parameterOrder": [
79213	//     "project"
79214	//   ],
79215	//   "parameters": {
79216	//     "forceCreate": {
79217	//       "description": "Force image creation if true.",
79218	//       "location": "query",
79219	//       "type": "boolean"
79220	//     },
79221	//     "project": {
79222	//       "description": "Project ID for this request.",
79223	//       "location": "path",
79224	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79225	//       "required": true,
79226	//       "type": "string"
79227	//     },
79228	//     "requestId": {
79229	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
79230	//       "location": "query",
79231	//       "type": "string"
79232	//     }
79233	//   },
79234	//   "path": "projects/{project}/global/images",
79235	//   "request": {
79236	//     "$ref": "Image"
79237	//   },
79238	//   "response": {
79239	//     "$ref": "Operation"
79240	//   },
79241	//   "scopes": [
79242	//     "https://www.googleapis.com/auth/cloud-platform",
79243	//     "https://www.googleapis.com/auth/compute",
79244	//     "https://www.googleapis.com/auth/devstorage.full_control",
79245	//     "https://www.googleapis.com/auth/devstorage.read_only",
79246	//     "https://www.googleapis.com/auth/devstorage.read_write"
79247	//   ]
79248	// }
79249
79250}
79251
79252// method id "compute.images.list":
79253
79254type ImagesListCall struct {
79255	s            *Service
79256	project      string
79257	urlParams_   gensupport.URLParams
79258	ifNoneMatch_ string
79259	ctx_         context.Context
79260	header_      http.Header
79261}
79262
79263// List: Retrieves the list of custom images available to the specified
79264// project. Custom images are images you create that belong to your
79265// project. This method does not get any images that belong to other
79266// projects, including publicly-available images, like Debian 8. If you
79267// want to get a list of publicly-available images, use this method to
79268// make a request to the respective image project, such as debian-cloud
79269// or windows-cloud.
79270//
79271// - project: Project ID for this request.
79272func (r *ImagesService) List(project string) *ImagesListCall {
79273	c := &ImagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79274	c.project = project
79275	return c
79276}
79277
79278// Filter sets the optional parameter "filter": A filter expression that
79279// filters resources listed in the response. The expression must specify
79280// the field name, a comparison operator, and the value that you want to
79281// use for filtering. The value must be a string, a number, or a
79282// boolean. The comparison operator must be either `=`, `!=`, `>`, or
79283// `<`. For example, if you are filtering Compute Engine instances, you
79284// can exclude instances named `example-instance` by specifying `name !=
79285// example-instance`. You can also filter nested fields. For example,
79286// you could specify `scheduling.automaticRestart = false` to include
79287// instances only if they are not scheduled for automatic restarts. You
79288// can use filtering on nested fields to filter based on resource
79289// labels. To filter on multiple expressions, provide each separate
79290// expression within parentheses. For example: ```
79291// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
79292// ``` By default, each expression is an `AND` expression. However, you
79293// can include `AND` and `OR` expressions explicitly. For example: ```
79294// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
79295// AND (scheduling.automaticRestart = true) ```
79296func (c *ImagesListCall) Filter(filter string) *ImagesListCall {
79297	c.urlParams_.Set("filter", filter)
79298	return c
79299}
79300
79301// MaxResults sets the optional parameter "maxResults": The maximum
79302// number of results per page that should be returned. If the number of
79303// available results is larger than `maxResults`, Compute Engine returns
79304// a `nextPageToken` that can be used to get the next page of results in
79305// subsequent list requests. Acceptable values are `0` to `500`,
79306// inclusive. (Default: `500`)
79307func (c *ImagesListCall) MaxResults(maxResults int64) *ImagesListCall {
79308	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
79309	return c
79310}
79311
79312// OrderBy sets the optional parameter "orderBy": Sorts list results by
79313// a certain order. By default, results are returned in alphanumerical
79314// order based on the resource name. You can also sort results in
79315// descending order based on the creation timestamp using
79316// `orderBy="creationTimestamp desc". This sorts results based on the
79317// `creationTimestamp` field in reverse chronological order (newest
79318// result first). Use this to sort resources like operations so that the
79319// newest operation is returned first. Currently, only sorting by `name`
79320// or `creationTimestamp desc` is supported.
79321func (c *ImagesListCall) OrderBy(orderBy string) *ImagesListCall {
79322	c.urlParams_.Set("orderBy", orderBy)
79323	return c
79324}
79325
79326// PageToken sets the optional parameter "pageToken": Specifies a page
79327// token to use. Set `pageToken` to the `nextPageToken` returned by a
79328// previous list request to get the next page of results.
79329func (c *ImagesListCall) PageToken(pageToken string) *ImagesListCall {
79330	c.urlParams_.Set("pageToken", pageToken)
79331	return c
79332}
79333
79334// ReturnPartialSuccess sets the optional parameter
79335// "returnPartialSuccess": Opt-in for partial success behavior which
79336// provides partial results in case of failure. The default value is
79337// false.
79338func (c *ImagesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ImagesListCall {
79339	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
79340	return c
79341}
79342
79343// Fields allows partial responses to be retrieved. See
79344// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79345// for more information.
79346func (c *ImagesListCall) Fields(s ...googleapi.Field) *ImagesListCall {
79347	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79348	return c
79349}
79350
79351// IfNoneMatch sets the optional parameter which makes the operation
79352// fail if the object's ETag matches the given value. This is useful for
79353// getting updates only after the object has changed since the last
79354// request. Use googleapi.IsNotModified to check whether the response
79355// error from Do is the result of In-None-Match.
79356func (c *ImagesListCall) IfNoneMatch(entityTag string) *ImagesListCall {
79357	c.ifNoneMatch_ = entityTag
79358	return c
79359}
79360
79361// Context sets the context to be used in this call's Do method. Any
79362// pending HTTP request will be aborted if the provided context is
79363// canceled.
79364func (c *ImagesListCall) Context(ctx context.Context) *ImagesListCall {
79365	c.ctx_ = ctx
79366	return c
79367}
79368
79369// Header returns an http.Header that can be modified by the caller to
79370// add HTTP headers to the request.
79371func (c *ImagesListCall) Header() http.Header {
79372	if c.header_ == nil {
79373		c.header_ = make(http.Header)
79374	}
79375	return c.header_
79376}
79377
79378func (c *ImagesListCall) doRequest(alt string) (*http.Response, error) {
79379	reqHeaders := make(http.Header)
79380	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
79381	for k, v := range c.header_ {
79382		reqHeaders[k] = v
79383	}
79384	reqHeaders.Set("User-Agent", c.s.userAgent())
79385	if c.ifNoneMatch_ != "" {
79386		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
79387	}
79388	var body io.Reader = nil
79389	c.urlParams_.Set("alt", alt)
79390	c.urlParams_.Set("prettyPrint", "false")
79391	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images")
79392	urls += "?" + c.urlParams_.Encode()
79393	req, err := http.NewRequest("GET", urls, body)
79394	if err != nil {
79395		return nil, err
79396	}
79397	req.Header = reqHeaders
79398	googleapi.Expand(req.URL, map[string]string{
79399		"project": c.project,
79400	})
79401	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79402}
79403
79404// Do executes the "compute.images.list" call.
79405// Exactly one of *ImageList or error will be non-nil. Any non-2xx
79406// status code is an error. Response headers are in either
79407// *ImageList.ServerResponse.Header or (if a response was returned at
79408// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79409// to check whether the returned error was because
79410// http.StatusNotModified was returned.
79411func (c *ImagesListCall) Do(opts ...googleapi.CallOption) (*ImageList, error) {
79412	gensupport.SetOptions(c.urlParams_, opts...)
79413	res, err := c.doRequest("json")
79414	if res != nil && res.StatusCode == http.StatusNotModified {
79415		if res.Body != nil {
79416			res.Body.Close()
79417		}
79418		return nil, &googleapi.Error{
79419			Code:   res.StatusCode,
79420			Header: res.Header,
79421		}
79422	}
79423	if err != nil {
79424		return nil, err
79425	}
79426	defer googleapi.CloseBody(res)
79427	if err := googleapi.CheckResponse(res); err != nil {
79428		return nil, err
79429	}
79430	ret := &ImageList{
79431		ServerResponse: googleapi.ServerResponse{
79432			Header:         res.Header,
79433			HTTPStatusCode: res.StatusCode,
79434		},
79435	}
79436	target := &ret
79437	if err := gensupport.DecodeResponse(target, res); err != nil {
79438		return nil, err
79439	}
79440	return ret, nil
79441	// {
79442	//   "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.",
79443	//   "flatPath": "projects/{project}/global/images",
79444	//   "httpMethod": "GET",
79445	//   "id": "compute.images.list",
79446	//   "parameterOrder": [
79447	//     "project"
79448	//   ],
79449	//   "parameters": {
79450	//     "filter": {
79451	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
79452	//       "location": "query",
79453	//       "type": "string"
79454	//     },
79455	//     "maxResults": {
79456	//       "default": "500",
79457	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
79458	//       "format": "uint32",
79459	//       "location": "query",
79460	//       "minimum": "0",
79461	//       "type": "integer"
79462	//     },
79463	//     "orderBy": {
79464	//       "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.",
79465	//       "location": "query",
79466	//       "type": "string"
79467	//     },
79468	//     "pageToken": {
79469	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
79470	//       "location": "query",
79471	//       "type": "string"
79472	//     },
79473	//     "project": {
79474	//       "description": "Project ID for this request.",
79475	//       "location": "path",
79476	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79477	//       "required": true,
79478	//       "type": "string"
79479	//     },
79480	//     "returnPartialSuccess": {
79481	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
79482	//       "location": "query",
79483	//       "type": "boolean"
79484	//     }
79485	//   },
79486	//   "path": "projects/{project}/global/images",
79487	//   "response": {
79488	//     "$ref": "ImageList"
79489	//   },
79490	//   "scopes": [
79491	//     "https://www.googleapis.com/auth/cloud-platform",
79492	//     "https://www.googleapis.com/auth/compute",
79493	//     "https://www.googleapis.com/auth/compute.readonly"
79494	//   ]
79495	// }
79496
79497}
79498
79499// Pages invokes f for each page of results.
79500// A non-nil error returned from f will halt the iteration.
79501// The provided context supersedes any context provided to the Context method.
79502func (c *ImagesListCall) Pages(ctx context.Context, f func(*ImageList) error) error {
79503	c.ctx_ = ctx
79504	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
79505	for {
79506		x, err := c.Do()
79507		if err != nil {
79508			return err
79509		}
79510		if err := f(x); err != nil {
79511			return err
79512		}
79513		if x.NextPageToken == "" {
79514			return nil
79515		}
79516		c.PageToken(x.NextPageToken)
79517	}
79518}
79519
79520// method id "compute.images.patch":
79521
79522type ImagesPatchCall struct {
79523	s          *Service
79524	project    string
79525	image      string
79526	image2     *Image
79527	urlParams_ gensupport.URLParams
79528	ctx_       context.Context
79529	header_    http.Header
79530}
79531
79532// Patch: Patches the specified image with the data included in the
79533// request. Only the following fields can be modified: family,
79534// description, deprecation status.
79535//
79536// - image: Name of the image resource to patch.
79537// - project: Project ID for this request.
79538func (r *ImagesService) Patch(project string, image string, image2 *Image) *ImagesPatchCall {
79539	c := &ImagesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79540	c.project = project
79541	c.image = image
79542	c.image2 = image2
79543	return c
79544}
79545
79546// RequestId sets the optional parameter "requestId": An optional
79547// request ID to identify requests. Specify a unique request ID so that
79548// if you must retry your request, the server will know to ignore the
79549// request if it has already been completed. For example, consider a
79550// situation where you make an initial request and the request times
79551// out. If you make the request again with the same request ID, the
79552// server can check if original operation with the same request ID was
79553// received, and if so, will ignore the second request. This prevents
79554// clients from accidentally creating duplicate commitments. The request
79555// ID must be a valid UUID with the exception that zero UUID is not
79556// supported ( 00000000-0000-0000-0000-000000000000).
79557func (c *ImagesPatchCall) RequestId(requestId string) *ImagesPatchCall {
79558	c.urlParams_.Set("requestId", requestId)
79559	return c
79560}
79561
79562// Fields allows partial responses to be retrieved. See
79563// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79564// for more information.
79565func (c *ImagesPatchCall) Fields(s ...googleapi.Field) *ImagesPatchCall {
79566	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79567	return c
79568}
79569
79570// Context sets the context to be used in this call's Do method. Any
79571// pending HTTP request will be aborted if the provided context is
79572// canceled.
79573func (c *ImagesPatchCall) Context(ctx context.Context) *ImagesPatchCall {
79574	c.ctx_ = ctx
79575	return c
79576}
79577
79578// Header returns an http.Header that can be modified by the caller to
79579// add HTTP headers to the request.
79580func (c *ImagesPatchCall) Header() http.Header {
79581	if c.header_ == nil {
79582		c.header_ = make(http.Header)
79583	}
79584	return c.header_
79585}
79586
79587func (c *ImagesPatchCall) doRequest(alt string) (*http.Response, error) {
79588	reqHeaders := make(http.Header)
79589	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
79590	for k, v := range c.header_ {
79591		reqHeaders[k] = v
79592	}
79593	reqHeaders.Set("User-Agent", c.s.userAgent())
79594	var body io.Reader = nil
79595	body, err := googleapi.WithoutDataWrapper.JSONReader(c.image2)
79596	if err != nil {
79597		return nil, err
79598	}
79599	reqHeaders.Set("Content-Type", "application/json")
79600	c.urlParams_.Set("alt", alt)
79601	c.urlParams_.Set("prettyPrint", "false")
79602	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{image}")
79603	urls += "?" + c.urlParams_.Encode()
79604	req, err := http.NewRequest("PATCH", urls, body)
79605	if err != nil {
79606		return nil, err
79607	}
79608	req.Header = reqHeaders
79609	googleapi.Expand(req.URL, map[string]string{
79610		"project": c.project,
79611		"image":   c.image,
79612	})
79613	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79614}
79615
79616// Do executes the "compute.images.patch" call.
79617// Exactly one of *Operation or error will be non-nil. Any non-2xx
79618// status code is an error. Response headers are in either
79619// *Operation.ServerResponse.Header or (if a response was returned at
79620// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79621// to check whether the returned error was because
79622// http.StatusNotModified was returned.
79623func (c *ImagesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79624	gensupport.SetOptions(c.urlParams_, opts...)
79625	res, err := c.doRequest("json")
79626	if res != nil && res.StatusCode == http.StatusNotModified {
79627		if res.Body != nil {
79628			res.Body.Close()
79629		}
79630		return nil, &googleapi.Error{
79631			Code:   res.StatusCode,
79632			Header: res.Header,
79633		}
79634	}
79635	if err != nil {
79636		return nil, err
79637	}
79638	defer googleapi.CloseBody(res)
79639	if err := googleapi.CheckResponse(res); err != nil {
79640		return nil, err
79641	}
79642	ret := &Operation{
79643		ServerResponse: googleapi.ServerResponse{
79644			Header:         res.Header,
79645			HTTPStatusCode: res.StatusCode,
79646		},
79647	}
79648	target := &ret
79649	if err := gensupport.DecodeResponse(target, res); err != nil {
79650		return nil, err
79651	}
79652	return ret, nil
79653	// {
79654	//   "description": "Patches the specified image with the data included in the request. Only the following fields can be modified: family, description, deprecation status.",
79655	//   "flatPath": "projects/{project}/global/images/{image}",
79656	//   "httpMethod": "PATCH",
79657	//   "id": "compute.images.patch",
79658	//   "parameterOrder": [
79659	//     "project",
79660	//     "image"
79661	//   ],
79662	//   "parameters": {
79663	//     "image": {
79664	//       "description": "Name of the image resource to patch.",
79665	//       "location": "path",
79666	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
79667	//       "required": true,
79668	//       "type": "string"
79669	//     },
79670	//     "project": {
79671	//       "description": "Project ID for this request.",
79672	//       "location": "path",
79673	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79674	//       "required": true,
79675	//       "type": "string"
79676	//     },
79677	//     "requestId": {
79678	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
79679	//       "location": "query",
79680	//       "type": "string"
79681	//     }
79682	//   },
79683	//   "path": "projects/{project}/global/images/{image}",
79684	//   "request": {
79685	//     "$ref": "Image"
79686	//   },
79687	//   "response": {
79688	//     "$ref": "Operation"
79689	//   },
79690	//   "scopes": [
79691	//     "https://www.googleapis.com/auth/cloud-platform",
79692	//     "https://www.googleapis.com/auth/compute"
79693	//   ]
79694	// }
79695
79696}
79697
79698// method id "compute.images.setIamPolicy":
79699
79700type ImagesSetIamPolicyCall struct {
79701	s                      *Service
79702	project                string
79703	resource               string
79704	globalsetpolicyrequest *GlobalSetPolicyRequest
79705	urlParams_             gensupport.URLParams
79706	ctx_                   context.Context
79707	header_                http.Header
79708}
79709
79710// SetIamPolicy: Sets the access control policy on the specified
79711// resource. Replaces any existing policy.
79712//
79713// - project: Project ID for this request.
79714// - resource: Name or id of the resource for this request.
79715func (r *ImagesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *ImagesSetIamPolicyCall {
79716	c := &ImagesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79717	c.project = project
79718	c.resource = resource
79719	c.globalsetpolicyrequest = globalsetpolicyrequest
79720	return c
79721}
79722
79723// Fields allows partial responses to be retrieved. See
79724// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79725// for more information.
79726func (c *ImagesSetIamPolicyCall) Fields(s ...googleapi.Field) *ImagesSetIamPolicyCall {
79727	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79728	return c
79729}
79730
79731// Context sets the context to be used in this call's Do method. Any
79732// pending HTTP request will be aborted if the provided context is
79733// canceled.
79734func (c *ImagesSetIamPolicyCall) Context(ctx context.Context) *ImagesSetIamPolicyCall {
79735	c.ctx_ = ctx
79736	return c
79737}
79738
79739// Header returns an http.Header that can be modified by the caller to
79740// add HTTP headers to the request.
79741func (c *ImagesSetIamPolicyCall) Header() http.Header {
79742	if c.header_ == nil {
79743		c.header_ = make(http.Header)
79744	}
79745	return c.header_
79746}
79747
79748func (c *ImagesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
79749	reqHeaders := make(http.Header)
79750	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
79751	for k, v := range c.header_ {
79752		reqHeaders[k] = v
79753	}
79754	reqHeaders.Set("User-Agent", c.s.userAgent())
79755	var body io.Reader = nil
79756	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
79757	if err != nil {
79758		return nil, err
79759	}
79760	reqHeaders.Set("Content-Type", "application/json")
79761	c.urlParams_.Set("alt", alt)
79762	c.urlParams_.Set("prettyPrint", "false")
79763	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{resource}/setIamPolicy")
79764	urls += "?" + c.urlParams_.Encode()
79765	req, err := http.NewRequest("POST", urls, body)
79766	if err != nil {
79767		return nil, err
79768	}
79769	req.Header = reqHeaders
79770	googleapi.Expand(req.URL, map[string]string{
79771		"project":  c.project,
79772		"resource": c.resource,
79773	})
79774	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79775}
79776
79777// Do executes the "compute.images.setIamPolicy" call.
79778// Exactly one of *Policy or error will be non-nil. Any non-2xx status
79779// code is an error. Response headers are in either
79780// *Policy.ServerResponse.Header or (if a response was returned at all)
79781// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
79782// check whether the returned error was because http.StatusNotModified
79783// was returned.
79784func (c *ImagesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
79785	gensupport.SetOptions(c.urlParams_, opts...)
79786	res, err := c.doRequest("json")
79787	if res != nil && res.StatusCode == http.StatusNotModified {
79788		if res.Body != nil {
79789			res.Body.Close()
79790		}
79791		return nil, &googleapi.Error{
79792			Code:   res.StatusCode,
79793			Header: res.Header,
79794		}
79795	}
79796	if err != nil {
79797		return nil, err
79798	}
79799	defer googleapi.CloseBody(res)
79800	if err := googleapi.CheckResponse(res); err != nil {
79801		return nil, err
79802	}
79803	ret := &Policy{
79804		ServerResponse: googleapi.ServerResponse{
79805			Header:         res.Header,
79806			HTTPStatusCode: res.StatusCode,
79807		},
79808	}
79809	target := &ret
79810	if err := gensupport.DecodeResponse(target, res); err != nil {
79811		return nil, err
79812	}
79813	return ret, nil
79814	// {
79815	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
79816	//   "flatPath": "projects/{project}/global/images/{resource}/setIamPolicy",
79817	//   "httpMethod": "POST",
79818	//   "id": "compute.images.setIamPolicy",
79819	//   "parameterOrder": [
79820	//     "project",
79821	//     "resource"
79822	//   ],
79823	//   "parameters": {
79824	//     "project": {
79825	//       "description": "Project ID for this request.",
79826	//       "location": "path",
79827	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79828	//       "required": true,
79829	//       "type": "string"
79830	//     },
79831	//     "resource": {
79832	//       "description": "Name or id of the resource for this request.",
79833	//       "location": "path",
79834	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
79835	//       "required": true,
79836	//       "type": "string"
79837	//     }
79838	//   },
79839	//   "path": "projects/{project}/global/images/{resource}/setIamPolicy",
79840	//   "request": {
79841	//     "$ref": "GlobalSetPolicyRequest"
79842	//   },
79843	//   "response": {
79844	//     "$ref": "Policy"
79845	//   },
79846	//   "scopes": [
79847	//     "https://www.googleapis.com/auth/cloud-platform",
79848	//     "https://www.googleapis.com/auth/compute"
79849	//   ]
79850	// }
79851
79852}
79853
79854// method id "compute.images.setLabels":
79855
79856type ImagesSetLabelsCall struct {
79857	s                      *Service
79858	project                string
79859	resource               string
79860	globalsetlabelsrequest *GlobalSetLabelsRequest
79861	urlParams_             gensupport.URLParams
79862	ctx_                   context.Context
79863	header_                http.Header
79864}
79865
79866// SetLabels: Sets the labels on an image. To learn more about labels,
79867// read the Labeling Resources documentation.
79868//
79869// - project: Project ID for this request.
79870// - resource: Name or id of the resource for this request.
79871func (r *ImagesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *ImagesSetLabelsCall {
79872	c := &ImagesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79873	c.project = project
79874	c.resource = resource
79875	c.globalsetlabelsrequest = globalsetlabelsrequest
79876	return c
79877}
79878
79879// Fields allows partial responses to be retrieved. See
79880// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79881// for more information.
79882func (c *ImagesSetLabelsCall) Fields(s ...googleapi.Field) *ImagesSetLabelsCall {
79883	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79884	return c
79885}
79886
79887// Context sets the context to be used in this call's Do method. Any
79888// pending HTTP request will be aborted if the provided context is
79889// canceled.
79890func (c *ImagesSetLabelsCall) Context(ctx context.Context) *ImagesSetLabelsCall {
79891	c.ctx_ = ctx
79892	return c
79893}
79894
79895// Header returns an http.Header that can be modified by the caller to
79896// add HTTP headers to the request.
79897func (c *ImagesSetLabelsCall) Header() http.Header {
79898	if c.header_ == nil {
79899		c.header_ = make(http.Header)
79900	}
79901	return c.header_
79902}
79903
79904func (c *ImagesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
79905	reqHeaders := make(http.Header)
79906	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
79907	for k, v := range c.header_ {
79908		reqHeaders[k] = v
79909	}
79910	reqHeaders.Set("User-Agent", c.s.userAgent())
79911	var body io.Reader = nil
79912	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
79913	if err != nil {
79914		return nil, err
79915	}
79916	reqHeaders.Set("Content-Type", "application/json")
79917	c.urlParams_.Set("alt", alt)
79918	c.urlParams_.Set("prettyPrint", "false")
79919	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{resource}/setLabels")
79920	urls += "?" + c.urlParams_.Encode()
79921	req, err := http.NewRequest("POST", urls, body)
79922	if err != nil {
79923		return nil, err
79924	}
79925	req.Header = reqHeaders
79926	googleapi.Expand(req.URL, map[string]string{
79927		"project":  c.project,
79928		"resource": c.resource,
79929	})
79930	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79931}
79932
79933// Do executes the "compute.images.setLabels" call.
79934// Exactly one of *Operation or error will be non-nil. Any non-2xx
79935// status code is an error. Response headers are in either
79936// *Operation.ServerResponse.Header or (if a response was returned at
79937// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79938// to check whether the returned error was because
79939// http.StatusNotModified was returned.
79940func (c *ImagesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79941	gensupport.SetOptions(c.urlParams_, opts...)
79942	res, err := c.doRequest("json")
79943	if res != nil && res.StatusCode == http.StatusNotModified {
79944		if res.Body != nil {
79945			res.Body.Close()
79946		}
79947		return nil, &googleapi.Error{
79948			Code:   res.StatusCode,
79949			Header: res.Header,
79950		}
79951	}
79952	if err != nil {
79953		return nil, err
79954	}
79955	defer googleapi.CloseBody(res)
79956	if err := googleapi.CheckResponse(res); err != nil {
79957		return nil, err
79958	}
79959	ret := &Operation{
79960		ServerResponse: googleapi.ServerResponse{
79961			Header:         res.Header,
79962			HTTPStatusCode: res.StatusCode,
79963		},
79964	}
79965	target := &ret
79966	if err := gensupport.DecodeResponse(target, res); err != nil {
79967		return nil, err
79968	}
79969	return ret, nil
79970	// {
79971	//   "description": "Sets the labels on an image. To learn more about labels, read the Labeling Resources documentation.",
79972	//   "flatPath": "projects/{project}/global/images/{resource}/setLabels",
79973	//   "httpMethod": "POST",
79974	//   "id": "compute.images.setLabels",
79975	//   "parameterOrder": [
79976	//     "project",
79977	//     "resource"
79978	//   ],
79979	//   "parameters": {
79980	//     "project": {
79981	//       "description": "Project ID for this request.",
79982	//       "location": "path",
79983	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79984	//       "required": true,
79985	//       "type": "string"
79986	//     },
79987	//     "resource": {
79988	//       "description": "Name or id of the resource for this request.",
79989	//       "location": "path",
79990	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
79991	//       "required": true,
79992	//       "type": "string"
79993	//     }
79994	//   },
79995	//   "path": "projects/{project}/global/images/{resource}/setLabels",
79996	//   "request": {
79997	//     "$ref": "GlobalSetLabelsRequest"
79998	//   },
79999	//   "response": {
80000	//     "$ref": "Operation"
80001	//   },
80002	//   "scopes": [
80003	//     "https://www.googleapis.com/auth/cloud-platform",
80004	//     "https://www.googleapis.com/auth/compute"
80005	//   ]
80006	// }
80007
80008}
80009
80010// method id "compute.images.testIamPermissions":
80011
80012type ImagesTestIamPermissionsCall struct {
80013	s                      *Service
80014	project                string
80015	resource               string
80016	testpermissionsrequest *TestPermissionsRequest
80017	urlParams_             gensupport.URLParams
80018	ctx_                   context.Context
80019	header_                http.Header
80020}
80021
80022// TestIamPermissions: Returns permissions that a caller has on the
80023// specified resource.
80024//
80025// - project: Project ID for this request.
80026// - resource: Name or id of the resource for this request.
80027func (r *ImagesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *ImagesTestIamPermissionsCall {
80028	c := &ImagesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80029	c.project = project
80030	c.resource = resource
80031	c.testpermissionsrequest = testpermissionsrequest
80032	return c
80033}
80034
80035// Fields allows partial responses to be retrieved. See
80036// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80037// for more information.
80038func (c *ImagesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ImagesTestIamPermissionsCall {
80039	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80040	return c
80041}
80042
80043// Context sets the context to be used in this call's Do method. Any
80044// pending HTTP request will be aborted if the provided context is
80045// canceled.
80046func (c *ImagesTestIamPermissionsCall) Context(ctx context.Context) *ImagesTestIamPermissionsCall {
80047	c.ctx_ = ctx
80048	return c
80049}
80050
80051// Header returns an http.Header that can be modified by the caller to
80052// add HTTP headers to the request.
80053func (c *ImagesTestIamPermissionsCall) Header() http.Header {
80054	if c.header_ == nil {
80055		c.header_ = make(http.Header)
80056	}
80057	return c.header_
80058}
80059
80060func (c *ImagesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
80061	reqHeaders := make(http.Header)
80062	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
80063	for k, v := range c.header_ {
80064		reqHeaders[k] = v
80065	}
80066	reqHeaders.Set("User-Agent", c.s.userAgent())
80067	var body io.Reader = nil
80068	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
80069	if err != nil {
80070		return nil, err
80071	}
80072	reqHeaders.Set("Content-Type", "application/json")
80073	c.urlParams_.Set("alt", alt)
80074	c.urlParams_.Set("prettyPrint", "false")
80075	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{resource}/testIamPermissions")
80076	urls += "?" + c.urlParams_.Encode()
80077	req, err := http.NewRequest("POST", urls, body)
80078	if err != nil {
80079		return nil, err
80080	}
80081	req.Header = reqHeaders
80082	googleapi.Expand(req.URL, map[string]string{
80083		"project":  c.project,
80084		"resource": c.resource,
80085	})
80086	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80087}
80088
80089// Do executes the "compute.images.testIamPermissions" call.
80090// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
80091// non-2xx status code is an error. Response headers are in either
80092// *TestPermissionsResponse.ServerResponse.Header or (if a response was
80093// returned at all) in error.(*googleapi.Error).Header. Use
80094// googleapi.IsNotModified to check whether the returned error was
80095// because http.StatusNotModified was returned.
80096func (c *ImagesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
80097	gensupport.SetOptions(c.urlParams_, opts...)
80098	res, err := c.doRequest("json")
80099	if res != nil && res.StatusCode == http.StatusNotModified {
80100		if res.Body != nil {
80101			res.Body.Close()
80102		}
80103		return nil, &googleapi.Error{
80104			Code:   res.StatusCode,
80105			Header: res.Header,
80106		}
80107	}
80108	if err != nil {
80109		return nil, err
80110	}
80111	defer googleapi.CloseBody(res)
80112	if err := googleapi.CheckResponse(res); err != nil {
80113		return nil, err
80114	}
80115	ret := &TestPermissionsResponse{
80116		ServerResponse: googleapi.ServerResponse{
80117			Header:         res.Header,
80118			HTTPStatusCode: res.StatusCode,
80119		},
80120	}
80121	target := &ret
80122	if err := gensupport.DecodeResponse(target, res); err != nil {
80123		return nil, err
80124	}
80125	return ret, nil
80126	// {
80127	//   "description": "Returns permissions that a caller has on the specified resource.",
80128	//   "flatPath": "projects/{project}/global/images/{resource}/testIamPermissions",
80129	//   "httpMethod": "POST",
80130	//   "id": "compute.images.testIamPermissions",
80131	//   "parameterOrder": [
80132	//     "project",
80133	//     "resource"
80134	//   ],
80135	//   "parameters": {
80136	//     "project": {
80137	//       "description": "Project ID for this request.",
80138	//       "location": "path",
80139	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80140	//       "required": true,
80141	//       "type": "string"
80142	//     },
80143	//     "resource": {
80144	//       "description": "Name or id of the resource for this request.",
80145	//       "location": "path",
80146	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
80147	//       "required": true,
80148	//       "type": "string"
80149	//     }
80150	//   },
80151	//   "path": "projects/{project}/global/images/{resource}/testIamPermissions",
80152	//   "request": {
80153	//     "$ref": "TestPermissionsRequest"
80154	//   },
80155	//   "response": {
80156	//     "$ref": "TestPermissionsResponse"
80157	//   },
80158	//   "scopes": [
80159	//     "https://www.googleapis.com/auth/cloud-platform",
80160	//     "https://www.googleapis.com/auth/compute",
80161	//     "https://www.googleapis.com/auth/compute.readonly"
80162	//   ]
80163	// }
80164
80165}
80166
80167// method id "compute.instanceGroupManagers.abandonInstances":
80168
80169type InstanceGroupManagersAbandonInstancesCall struct {
80170	s                                            *Service
80171	project                                      string
80172	zone                                         string
80173	instanceGroupManager                         string
80174	instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest
80175	urlParams_                                   gensupport.URLParams
80176	ctx_                                         context.Context
80177	header_                                      http.Header
80178}
80179
80180// AbandonInstances: Flags the specified instances to be removed from
80181// the managed instance group. Abandoning an instance does not delete
80182// the instance, but it does remove the instance from any target pools
80183// that are applied by the managed instance group. This method reduces
80184// the targetSize of the managed instance group by the number of
80185// instances that you abandon. This operation is marked as DONE when the
80186// action is scheduled even if the instances have not yet been removed
80187// from the group. You must separately verify the status of the
80188// abandoning action with the listmanagedinstances method. If the group
80189// is part of a backend service that has enabled connection draining, it
80190// can take up to 60 seconds after the connection draining duration has
80191// elapsed before the VM instance is removed or deleted. You can specify
80192// a maximum of 1000 instances with this method per request.
80193//
80194// - instanceGroupManager: The name of the managed instance group.
80195// - project: Project ID for this request.
80196// - zone: The name of the zone where the managed instance group is
80197//   located.
80198func (r *InstanceGroupManagersService) AbandonInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest) *InstanceGroupManagersAbandonInstancesCall {
80199	c := &InstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80200	c.project = project
80201	c.zone = zone
80202	c.instanceGroupManager = instanceGroupManager
80203	c.instancegroupmanagersabandoninstancesrequest = instancegroupmanagersabandoninstancesrequest
80204	return c
80205}
80206
80207// RequestId sets the optional parameter "requestId": An optional
80208// request ID to identify requests. Specify a unique request ID so that
80209// if you must retry your request, the server will know to ignore the
80210// request if it has already been completed. For example, consider a
80211// situation where you make an initial request and the request times
80212// out. If you make the request again with the same request ID, the
80213// server can check if original operation with the same request ID was
80214// received, and if so, will ignore the second request. This prevents
80215// clients from accidentally creating duplicate commitments. The request
80216// ID must be a valid UUID with the exception that zero UUID is not
80217// supported ( 00000000-0000-0000-0000-000000000000).
80218func (c *InstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *InstanceGroupManagersAbandonInstancesCall {
80219	c.urlParams_.Set("requestId", requestId)
80220	return c
80221}
80222
80223// Fields allows partial responses to be retrieved. See
80224// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80225// for more information.
80226func (c *InstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAbandonInstancesCall {
80227	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80228	return c
80229}
80230
80231// Context sets the context to be used in this call's Do method. Any
80232// pending HTTP request will be aborted if the provided context is
80233// canceled.
80234func (c *InstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *InstanceGroupManagersAbandonInstancesCall {
80235	c.ctx_ = ctx
80236	return c
80237}
80238
80239// Header returns an http.Header that can be modified by the caller to
80240// add HTTP headers to the request.
80241func (c *InstanceGroupManagersAbandonInstancesCall) Header() http.Header {
80242	if c.header_ == nil {
80243		c.header_ = make(http.Header)
80244	}
80245	return c.header_
80246}
80247
80248func (c *InstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) {
80249	reqHeaders := make(http.Header)
80250	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
80251	for k, v := range c.header_ {
80252		reqHeaders[k] = v
80253	}
80254	reqHeaders.Set("User-Agent", c.s.userAgent())
80255	var body io.Reader = nil
80256	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersabandoninstancesrequest)
80257	if err != nil {
80258		return nil, err
80259	}
80260	reqHeaders.Set("Content-Type", "application/json")
80261	c.urlParams_.Set("alt", alt)
80262	c.urlParams_.Set("prettyPrint", "false")
80263	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances")
80264	urls += "?" + c.urlParams_.Encode()
80265	req, err := http.NewRequest("POST", urls, body)
80266	if err != nil {
80267		return nil, err
80268	}
80269	req.Header = reqHeaders
80270	googleapi.Expand(req.URL, map[string]string{
80271		"project":              c.project,
80272		"zone":                 c.zone,
80273		"instanceGroupManager": c.instanceGroupManager,
80274	})
80275	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80276}
80277
80278// Do executes the "compute.instanceGroupManagers.abandonInstances" call.
80279// Exactly one of *Operation or error will be non-nil. Any non-2xx
80280// status code is an error. Response headers are in either
80281// *Operation.ServerResponse.Header or (if a response was returned at
80282// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80283// to check whether the returned error was because
80284// http.StatusNotModified was returned.
80285func (c *InstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80286	gensupport.SetOptions(c.urlParams_, opts...)
80287	res, err := c.doRequest("json")
80288	if res != nil && res.StatusCode == http.StatusNotModified {
80289		if res.Body != nil {
80290			res.Body.Close()
80291		}
80292		return nil, &googleapi.Error{
80293			Code:   res.StatusCode,
80294			Header: res.Header,
80295		}
80296	}
80297	if err != nil {
80298		return nil, err
80299	}
80300	defer googleapi.CloseBody(res)
80301	if err := googleapi.CheckResponse(res); err != nil {
80302		return nil, err
80303	}
80304	ret := &Operation{
80305		ServerResponse: googleapi.ServerResponse{
80306			Header:         res.Header,
80307			HTTPStatusCode: res.StatusCode,
80308		},
80309	}
80310	target := &ret
80311	if err := gensupport.DecodeResponse(target, res); err != nil {
80312		return nil, err
80313	}
80314	return ret, nil
80315	// {
80316	//   "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.",
80317	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
80318	//   "httpMethod": "POST",
80319	//   "id": "compute.instanceGroupManagers.abandonInstances",
80320	//   "parameterOrder": [
80321	//     "project",
80322	//     "zone",
80323	//     "instanceGroupManager"
80324	//   ],
80325	//   "parameters": {
80326	//     "instanceGroupManager": {
80327	//       "description": "The name of the managed instance group.",
80328	//       "location": "path",
80329	//       "required": true,
80330	//       "type": "string"
80331	//     },
80332	//     "project": {
80333	//       "description": "Project ID for this request.",
80334	//       "location": "path",
80335	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80336	//       "required": true,
80337	//       "type": "string"
80338	//     },
80339	//     "requestId": {
80340	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
80341	//       "location": "query",
80342	//       "type": "string"
80343	//     },
80344	//     "zone": {
80345	//       "description": "The name of the zone where the managed instance group is located.",
80346	//       "location": "path",
80347	//       "required": true,
80348	//       "type": "string"
80349	//     }
80350	//   },
80351	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
80352	//   "request": {
80353	//     "$ref": "InstanceGroupManagersAbandonInstancesRequest"
80354	//   },
80355	//   "response": {
80356	//     "$ref": "Operation"
80357	//   },
80358	//   "scopes": [
80359	//     "https://www.googleapis.com/auth/cloud-platform",
80360	//     "https://www.googleapis.com/auth/compute"
80361	//   ]
80362	// }
80363
80364}
80365
80366// method id "compute.instanceGroupManagers.aggregatedList":
80367
80368type InstanceGroupManagersAggregatedListCall struct {
80369	s            *Service
80370	project      string
80371	urlParams_   gensupport.URLParams
80372	ifNoneMatch_ string
80373	ctx_         context.Context
80374	header_      http.Header
80375}
80376
80377// AggregatedList: Retrieves the list of managed instance groups and
80378// groups them by zone.
80379//
80380// - project: Project ID for this request.
80381func (r *InstanceGroupManagersService) AggregatedList(project string) *InstanceGroupManagersAggregatedListCall {
80382	c := &InstanceGroupManagersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80383	c.project = project
80384	return c
80385}
80386
80387// Filter sets the optional parameter "filter": A filter expression that
80388// filters resources listed in the response. The expression must specify
80389// the field name, a comparison operator, and the value that you want to
80390// use for filtering. The value must be a string, a number, or a
80391// boolean. The comparison operator must be either `=`, `!=`, `>`, or
80392// `<`. For example, if you are filtering Compute Engine instances, you
80393// can exclude instances named `example-instance` by specifying `name !=
80394// example-instance`. You can also filter nested fields. For example,
80395// you could specify `scheduling.automaticRestart = false` to include
80396// instances only if they are not scheduled for automatic restarts. You
80397// can use filtering on nested fields to filter based on resource
80398// labels. To filter on multiple expressions, provide each separate
80399// expression within parentheses. For example: ```
80400// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
80401// ``` By default, each expression is an `AND` expression. However, you
80402// can include `AND` and `OR` expressions explicitly. For example: ```
80403// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
80404// AND (scheduling.automaticRestart = true) ```
80405func (c *InstanceGroupManagersAggregatedListCall) Filter(filter string) *InstanceGroupManagersAggregatedListCall {
80406	c.urlParams_.Set("filter", filter)
80407	return c
80408}
80409
80410// IncludeAllScopes sets the optional parameter "includeAllScopes":
80411// Indicates whether every visible scope for each scope type (zone,
80412// region, global) should be included in the response. For new resource
80413// types added after this field, the flag has no effect as new resource
80414// types will always include every visible scope for each scope type in
80415// response. For resource types which predate this field, if this flag
80416// is omitted or false, only scopes of the scope types where the
80417// resource type is expected to be found will be included.
80418func (c *InstanceGroupManagersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstanceGroupManagersAggregatedListCall {
80419	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
80420	return c
80421}
80422
80423// MaxResults sets the optional parameter "maxResults": The maximum
80424// number of results per page that should be returned. If the number of
80425// available results is larger than `maxResults`, Compute Engine returns
80426// a `nextPageToken` that can be used to get the next page of results in
80427// subsequent list requests. Acceptable values are `0` to `500`,
80428// inclusive. (Default: `500`)
80429func (c *InstanceGroupManagersAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupManagersAggregatedListCall {
80430	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
80431	return c
80432}
80433
80434// OrderBy sets the optional parameter "orderBy": Sorts list results by
80435// a certain order. By default, results are returned in alphanumerical
80436// order based on the resource name. You can also sort results in
80437// descending order based on the creation timestamp using
80438// `orderBy="creationTimestamp desc". This sorts results based on the
80439// `creationTimestamp` field in reverse chronological order (newest
80440// result first). Use this to sort resources like operations so that the
80441// newest operation is returned first. Currently, only sorting by `name`
80442// or `creationTimestamp desc` is supported.
80443func (c *InstanceGroupManagersAggregatedListCall) OrderBy(orderBy string) *InstanceGroupManagersAggregatedListCall {
80444	c.urlParams_.Set("orderBy", orderBy)
80445	return c
80446}
80447
80448// PageToken sets the optional parameter "pageToken": Specifies a page
80449// token to use. Set `pageToken` to the `nextPageToken` returned by a
80450// previous list request to get the next page of results.
80451func (c *InstanceGroupManagersAggregatedListCall) PageToken(pageToken string) *InstanceGroupManagersAggregatedListCall {
80452	c.urlParams_.Set("pageToken", pageToken)
80453	return c
80454}
80455
80456// ReturnPartialSuccess sets the optional parameter
80457// "returnPartialSuccess": Opt-in for partial success behavior which
80458// provides partial results in case of failure. The default value is
80459// false.
80460func (c *InstanceGroupManagersAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersAggregatedListCall {
80461	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
80462	return c
80463}
80464
80465// Fields allows partial responses to be retrieved. See
80466// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80467// for more information.
80468func (c *InstanceGroupManagersAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAggregatedListCall {
80469	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80470	return c
80471}
80472
80473// IfNoneMatch sets the optional parameter which makes the operation
80474// fail if the object's ETag matches the given value. This is useful for
80475// getting updates only after the object has changed since the last
80476// request. Use googleapi.IsNotModified to check whether the response
80477// error from Do is the result of In-None-Match.
80478func (c *InstanceGroupManagersAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersAggregatedListCall {
80479	c.ifNoneMatch_ = entityTag
80480	return c
80481}
80482
80483// Context sets the context to be used in this call's Do method. Any
80484// pending HTTP request will be aborted if the provided context is
80485// canceled.
80486func (c *InstanceGroupManagersAggregatedListCall) Context(ctx context.Context) *InstanceGroupManagersAggregatedListCall {
80487	c.ctx_ = ctx
80488	return c
80489}
80490
80491// Header returns an http.Header that can be modified by the caller to
80492// add HTTP headers to the request.
80493func (c *InstanceGroupManagersAggregatedListCall) Header() http.Header {
80494	if c.header_ == nil {
80495		c.header_ = make(http.Header)
80496	}
80497	return c.header_
80498}
80499
80500func (c *InstanceGroupManagersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
80501	reqHeaders := make(http.Header)
80502	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
80503	for k, v := range c.header_ {
80504		reqHeaders[k] = v
80505	}
80506	reqHeaders.Set("User-Agent", c.s.userAgent())
80507	if c.ifNoneMatch_ != "" {
80508		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
80509	}
80510	var body io.Reader = nil
80511	c.urlParams_.Set("alt", alt)
80512	c.urlParams_.Set("prettyPrint", "false")
80513	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/instanceGroupManagers")
80514	urls += "?" + c.urlParams_.Encode()
80515	req, err := http.NewRequest("GET", urls, body)
80516	if err != nil {
80517		return nil, err
80518	}
80519	req.Header = reqHeaders
80520	googleapi.Expand(req.URL, map[string]string{
80521		"project": c.project,
80522	})
80523	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80524}
80525
80526// Do executes the "compute.instanceGroupManagers.aggregatedList" call.
80527// Exactly one of *InstanceGroupManagerAggregatedList or error will be
80528// non-nil. Any non-2xx status code is an error. Response headers are in
80529// either *InstanceGroupManagerAggregatedList.ServerResponse.Header or
80530// (if a response was returned at all) in
80531// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
80532// whether the returned error was because http.StatusNotModified was
80533// returned.
80534func (c *InstanceGroupManagersAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerAggregatedList, error) {
80535	gensupport.SetOptions(c.urlParams_, opts...)
80536	res, err := c.doRequest("json")
80537	if res != nil && res.StatusCode == http.StatusNotModified {
80538		if res.Body != nil {
80539			res.Body.Close()
80540		}
80541		return nil, &googleapi.Error{
80542			Code:   res.StatusCode,
80543			Header: res.Header,
80544		}
80545	}
80546	if err != nil {
80547		return nil, err
80548	}
80549	defer googleapi.CloseBody(res)
80550	if err := googleapi.CheckResponse(res); err != nil {
80551		return nil, err
80552	}
80553	ret := &InstanceGroupManagerAggregatedList{
80554		ServerResponse: googleapi.ServerResponse{
80555			Header:         res.Header,
80556			HTTPStatusCode: res.StatusCode,
80557		},
80558	}
80559	target := &ret
80560	if err := gensupport.DecodeResponse(target, res); err != nil {
80561		return nil, err
80562	}
80563	return ret, nil
80564	// {
80565	//   "description": "Retrieves the list of managed instance groups and groups them by zone.",
80566	//   "flatPath": "projects/{project}/aggregated/instanceGroupManagers",
80567	//   "httpMethod": "GET",
80568	//   "id": "compute.instanceGroupManagers.aggregatedList",
80569	//   "parameterOrder": [
80570	//     "project"
80571	//   ],
80572	//   "parameters": {
80573	//     "filter": {
80574	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
80575	//       "location": "query",
80576	//       "type": "string"
80577	//     },
80578	//     "includeAllScopes": {
80579	//       "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.",
80580	//       "location": "query",
80581	//       "type": "boolean"
80582	//     },
80583	//     "maxResults": {
80584	//       "default": "500",
80585	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
80586	//       "format": "uint32",
80587	//       "location": "query",
80588	//       "minimum": "0",
80589	//       "type": "integer"
80590	//     },
80591	//     "orderBy": {
80592	//       "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.",
80593	//       "location": "query",
80594	//       "type": "string"
80595	//     },
80596	//     "pageToken": {
80597	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
80598	//       "location": "query",
80599	//       "type": "string"
80600	//     },
80601	//     "project": {
80602	//       "description": "Project ID for this request.",
80603	//       "location": "path",
80604	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80605	//       "required": true,
80606	//       "type": "string"
80607	//     },
80608	//     "returnPartialSuccess": {
80609	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
80610	//       "location": "query",
80611	//       "type": "boolean"
80612	//     }
80613	//   },
80614	//   "path": "projects/{project}/aggregated/instanceGroupManagers",
80615	//   "response": {
80616	//     "$ref": "InstanceGroupManagerAggregatedList"
80617	//   },
80618	//   "scopes": [
80619	//     "https://www.googleapis.com/auth/cloud-platform",
80620	//     "https://www.googleapis.com/auth/compute",
80621	//     "https://www.googleapis.com/auth/compute.readonly"
80622	//   ]
80623	// }
80624
80625}
80626
80627// Pages invokes f for each page of results.
80628// A non-nil error returned from f will halt the iteration.
80629// The provided context supersedes any context provided to the Context method.
80630func (c *InstanceGroupManagersAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerAggregatedList) error) error {
80631	c.ctx_ = ctx
80632	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
80633	for {
80634		x, err := c.Do()
80635		if err != nil {
80636			return err
80637		}
80638		if err := f(x); err != nil {
80639			return err
80640		}
80641		if x.NextPageToken == "" {
80642			return nil
80643		}
80644		c.PageToken(x.NextPageToken)
80645	}
80646}
80647
80648// method id "compute.instanceGroupManagers.applyUpdatesToInstances":
80649
80650type InstanceGroupManagersApplyUpdatesToInstancesCall struct {
80651	s                                        *Service
80652	project                                  string
80653	zone                                     string
80654	instanceGroupManager                     string
80655	instancegroupmanagersapplyupdatesrequest *InstanceGroupManagersApplyUpdatesRequest
80656	urlParams_                               gensupport.URLParams
80657	ctx_                                     context.Context
80658	header_                                  http.Header
80659}
80660
80661// ApplyUpdatesToInstances: Applies changes to selected instances on the
80662// managed instance group. This method can be used to apply new
80663// overrides and/or new versions.
80664//
80665// - instanceGroupManager: The name of the managed instance group,
80666//   should conform to RFC1035.
80667// - project: Project ID for this request.
80668// - zone: The name of the zone where the managed instance group is
80669//   located. Should conform to RFC1035.
80670func (r *InstanceGroupManagersService) ApplyUpdatesToInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersapplyupdatesrequest *InstanceGroupManagersApplyUpdatesRequest) *InstanceGroupManagersApplyUpdatesToInstancesCall {
80671	c := &InstanceGroupManagersApplyUpdatesToInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80672	c.project = project
80673	c.zone = zone
80674	c.instanceGroupManager = instanceGroupManager
80675	c.instancegroupmanagersapplyupdatesrequest = instancegroupmanagersapplyupdatesrequest
80676	return c
80677}
80678
80679// Fields allows partial responses to be retrieved. See
80680// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80681// for more information.
80682func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersApplyUpdatesToInstancesCall {
80683	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80684	return c
80685}
80686
80687// Context sets the context to be used in this call's Do method. Any
80688// pending HTTP request will be aborted if the provided context is
80689// canceled.
80690func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Context(ctx context.Context) *InstanceGroupManagersApplyUpdatesToInstancesCall {
80691	c.ctx_ = ctx
80692	return c
80693}
80694
80695// Header returns an http.Header that can be modified by the caller to
80696// add HTTP headers to the request.
80697func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Header() http.Header {
80698	if c.header_ == nil {
80699		c.header_ = make(http.Header)
80700	}
80701	return c.header_
80702}
80703
80704func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) doRequest(alt string) (*http.Response, error) {
80705	reqHeaders := make(http.Header)
80706	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
80707	for k, v := range c.header_ {
80708		reqHeaders[k] = v
80709	}
80710	reqHeaders.Set("User-Agent", c.s.userAgent())
80711	var body io.Reader = nil
80712	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersapplyupdatesrequest)
80713	if err != nil {
80714		return nil, err
80715	}
80716	reqHeaders.Set("Content-Type", "application/json")
80717	c.urlParams_.Set("alt", alt)
80718	c.urlParams_.Set("prettyPrint", "false")
80719	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances")
80720	urls += "?" + c.urlParams_.Encode()
80721	req, err := http.NewRequest("POST", urls, body)
80722	if err != nil {
80723		return nil, err
80724	}
80725	req.Header = reqHeaders
80726	googleapi.Expand(req.URL, map[string]string{
80727		"project":              c.project,
80728		"zone":                 c.zone,
80729		"instanceGroupManager": c.instanceGroupManager,
80730	})
80731	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80732}
80733
80734// Do executes the "compute.instanceGroupManagers.applyUpdatesToInstances" call.
80735// Exactly one of *Operation or error will be non-nil. Any non-2xx
80736// status code is an error. Response headers are in either
80737// *Operation.ServerResponse.Header or (if a response was returned at
80738// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80739// to check whether the returned error was because
80740// http.StatusNotModified was returned.
80741func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80742	gensupport.SetOptions(c.urlParams_, opts...)
80743	res, err := c.doRequest("json")
80744	if res != nil && res.StatusCode == http.StatusNotModified {
80745		if res.Body != nil {
80746			res.Body.Close()
80747		}
80748		return nil, &googleapi.Error{
80749			Code:   res.StatusCode,
80750			Header: res.Header,
80751		}
80752	}
80753	if err != nil {
80754		return nil, err
80755	}
80756	defer googleapi.CloseBody(res)
80757	if err := googleapi.CheckResponse(res); err != nil {
80758		return nil, err
80759	}
80760	ret := &Operation{
80761		ServerResponse: googleapi.ServerResponse{
80762			Header:         res.Header,
80763			HTTPStatusCode: res.StatusCode,
80764		},
80765	}
80766	target := &ret
80767	if err := gensupport.DecodeResponse(target, res); err != nil {
80768		return nil, err
80769	}
80770	return ret, nil
80771	// {
80772	//   "description": "Applies changes to selected instances on the managed instance group. This method can be used to apply new overrides and/or new versions.",
80773	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
80774	//   "httpMethod": "POST",
80775	//   "id": "compute.instanceGroupManagers.applyUpdatesToInstances",
80776	//   "parameterOrder": [
80777	//     "project",
80778	//     "zone",
80779	//     "instanceGroupManager"
80780	//   ],
80781	//   "parameters": {
80782	//     "instanceGroupManager": {
80783	//       "description": "The name of the managed instance group, should conform to RFC1035.",
80784	//       "location": "path",
80785	//       "required": true,
80786	//       "type": "string"
80787	//     },
80788	//     "project": {
80789	//       "description": "Project ID for this request.",
80790	//       "location": "path",
80791	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80792	//       "required": true,
80793	//       "type": "string"
80794	//     },
80795	//     "zone": {
80796	//       "description": "The name of the zone where the managed instance group is located. Should conform to RFC1035.",
80797	//       "location": "path",
80798	//       "required": true,
80799	//       "type": "string"
80800	//     }
80801	//   },
80802	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
80803	//   "request": {
80804	//     "$ref": "InstanceGroupManagersApplyUpdatesRequest"
80805	//   },
80806	//   "response": {
80807	//     "$ref": "Operation"
80808	//   },
80809	//   "scopes": [
80810	//     "https://www.googleapis.com/auth/cloud-platform",
80811	//     "https://www.googleapis.com/auth/compute"
80812	//   ]
80813	// }
80814
80815}
80816
80817// method id "compute.instanceGroupManagers.createInstances":
80818
80819type InstanceGroupManagersCreateInstancesCall struct {
80820	s                                           *Service
80821	project                                     string
80822	zone                                        string
80823	instanceGroupManager                        string
80824	instancegroupmanagerscreateinstancesrequest *InstanceGroupManagersCreateInstancesRequest
80825	urlParams_                                  gensupport.URLParams
80826	ctx_                                        context.Context
80827	header_                                     http.Header
80828}
80829
80830// CreateInstances: Creates instances with per-instance configs in this
80831// managed instance group. Instances are created using the current
80832// instance template. The create instances operation is marked DONE if
80833// the createInstances request is successful. The underlying actions
80834// take additional time. You must separately verify the status of the
80835// creating or actions with the listmanagedinstances method.
80836//
80837// - instanceGroupManager: The name of the managed instance group. It
80838//   should conform to RFC1035.
80839// - project: Project ID for this request.
80840// - zone: The name of the zone where the managed instance group is
80841//   located. It should conform to RFC1035.
80842func (r *InstanceGroupManagersService) CreateInstances(project string, zone string, instanceGroupManager string, instancegroupmanagerscreateinstancesrequest *InstanceGroupManagersCreateInstancesRequest) *InstanceGroupManagersCreateInstancesCall {
80843	c := &InstanceGroupManagersCreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80844	c.project = project
80845	c.zone = zone
80846	c.instanceGroupManager = instanceGroupManager
80847	c.instancegroupmanagerscreateinstancesrequest = instancegroupmanagerscreateinstancesrequest
80848	return c
80849}
80850
80851// RequestId sets the optional parameter "requestId": An optional
80852// request ID to identify requests. Specify a unique request ID so that
80853// if you must retry your request, the server will know to ignore the
80854// request if it has already been completed. For example, consider a
80855// situation where you make an initial request and the request times
80856// out. If you make the request again with the same request ID, the
80857// server can check if original operation with the same request ID was
80858// received, and if so, will ignore the second request. The request ID
80859// must be a valid UUID with the exception that zero UUID is not
80860// supported ( 00000000-0000-0000-0000-000000000000).
80861func (c *InstanceGroupManagersCreateInstancesCall) RequestId(requestId string) *InstanceGroupManagersCreateInstancesCall {
80862	c.urlParams_.Set("requestId", requestId)
80863	return c
80864}
80865
80866// Fields allows partial responses to be retrieved. See
80867// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80868// for more information.
80869func (c *InstanceGroupManagersCreateInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersCreateInstancesCall {
80870	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80871	return c
80872}
80873
80874// Context sets the context to be used in this call's Do method. Any
80875// pending HTTP request will be aborted if the provided context is
80876// canceled.
80877func (c *InstanceGroupManagersCreateInstancesCall) Context(ctx context.Context) *InstanceGroupManagersCreateInstancesCall {
80878	c.ctx_ = ctx
80879	return c
80880}
80881
80882// Header returns an http.Header that can be modified by the caller to
80883// add HTTP headers to the request.
80884func (c *InstanceGroupManagersCreateInstancesCall) Header() http.Header {
80885	if c.header_ == nil {
80886		c.header_ = make(http.Header)
80887	}
80888	return c.header_
80889}
80890
80891func (c *InstanceGroupManagersCreateInstancesCall) doRequest(alt string) (*http.Response, error) {
80892	reqHeaders := make(http.Header)
80893	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
80894	for k, v := range c.header_ {
80895		reqHeaders[k] = v
80896	}
80897	reqHeaders.Set("User-Agent", c.s.userAgent())
80898	var body io.Reader = nil
80899	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerscreateinstancesrequest)
80900	if err != nil {
80901		return nil, err
80902	}
80903	reqHeaders.Set("Content-Type", "application/json")
80904	c.urlParams_.Set("alt", alt)
80905	c.urlParams_.Set("prettyPrint", "false")
80906	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances")
80907	urls += "?" + c.urlParams_.Encode()
80908	req, err := http.NewRequest("POST", urls, body)
80909	if err != nil {
80910		return nil, err
80911	}
80912	req.Header = reqHeaders
80913	googleapi.Expand(req.URL, map[string]string{
80914		"project":              c.project,
80915		"zone":                 c.zone,
80916		"instanceGroupManager": c.instanceGroupManager,
80917	})
80918	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80919}
80920
80921// Do executes the "compute.instanceGroupManagers.createInstances" call.
80922// Exactly one of *Operation or error will be non-nil. Any non-2xx
80923// status code is an error. Response headers are in either
80924// *Operation.ServerResponse.Header or (if a response was returned at
80925// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80926// to check whether the returned error was because
80927// http.StatusNotModified was returned.
80928func (c *InstanceGroupManagersCreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80929	gensupport.SetOptions(c.urlParams_, opts...)
80930	res, err := c.doRequest("json")
80931	if res != nil && res.StatusCode == http.StatusNotModified {
80932		if res.Body != nil {
80933			res.Body.Close()
80934		}
80935		return nil, &googleapi.Error{
80936			Code:   res.StatusCode,
80937			Header: res.Header,
80938		}
80939	}
80940	if err != nil {
80941		return nil, err
80942	}
80943	defer googleapi.CloseBody(res)
80944	if err := googleapi.CheckResponse(res); err != nil {
80945		return nil, err
80946	}
80947	ret := &Operation{
80948		ServerResponse: googleapi.ServerResponse{
80949			Header:         res.Header,
80950			HTTPStatusCode: res.StatusCode,
80951		},
80952	}
80953	target := &ret
80954	if err := gensupport.DecodeResponse(target, res); err != nil {
80955		return nil, err
80956	}
80957	return ret, nil
80958	// {
80959	//   "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.",
80960	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances",
80961	//   "httpMethod": "POST",
80962	//   "id": "compute.instanceGroupManagers.createInstances",
80963	//   "parameterOrder": [
80964	//     "project",
80965	//     "zone",
80966	//     "instanceGroupManager"
80967	//   ],
80968	//   "parameters": {
80969	//     "instanceGroupManager": {
80970	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
80971	//       "location": "path",
80972	//       "required": true,
80973	//       "type": "string"
80974	//     },
80975	//     "project": {
80976	//       "description": "Project ID for this request.",
80977	//       "location": "path",
80978	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80979	//       "required": true,
80980	//       "type": "string"
80981	//     },
80982	//     "requestId": {
80983	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same 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).",
80984	//       "location": "query",
80985	//       "type": "string"
80986	//     },
80987	//     "zone": {
80988	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
80989	//       "location": "path",
80990	//       "required": true,
80991	//       "type": "string"
80992	//     }
80993	//   },
80994	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances",
80995	//   "request": {
80996	//     "$ref": "InstanceGroupManagersCreateInstancesRequest"
80997	//   },
80998	//   "response": {
80999	//     "$ref": "Operation"
81000	//   },
81001	//   "scopes": [
81002	//     "https://www.googleapis.com/auth/cloud-platform",
81003	//     "https://www.googleapis.com/auth/compute"
81004	//   ]
81005	// }
81006
81007}
81008
81009// method id "compute.instanceGroupManagers.delete":
81010
81011type InstanceGroupManagersDeleteCall struct {
81012	s                    *Service
81013	project              string
81014	zone                 string
81015	instanceGroupManager string
81016	urlParams_           gensupport.URLParams
81017	ctx_                 context.Context
81018	header_              http.Header
81019}
81020
81021// Delete: Deletes the specified managed instance group and all of the
81022// instances in that group. Note that the instance group must not belong
81023// to a backend service. Read Deleting an instance group for more
81024// information.
81025//
81026// - instanceGroupManager: The name of the managed instance group to
81027//   delete.
81028// - project: Project ID for this request.
81029// - zone: The name of the zone where the managed instance group is
81030//   located.
81031func (r *InstanceGroupManagersService) Delete(project string, zone string, instanceGroupManager string) *InstanceGroupManagersDeleteCall {
81032	c := &InstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81033	c.project = project
81034	c.zone = zone
81035	c.instanceGroupManager = instanceGroupManager
81036	return c
81037}
81038
81039// RequestId sets the optional parameter "requestId": An optional
81040// request ID to identify requests. Specify a unique request ID so that
81041// if you must retry your request, the server will know to ignore the
81042// request if it has already been completed. For example, consider a
81043// situation where you make an initial request and the request times
81044// out. If you make the request again with the same request ID, the
81045// server can check if original operation with the same request ID was
81046// received, and if so, will ignore the second request. This prevents
81047// clients from accidentally creating duplicate commitments. The request
81048// ID must be a valid UUID with the exception that zero UUID is not
81049// supported ( 00000000-0000-0000-0000-000000000000).
81050func (c *InstanceGroupManagersDeleteCall) RequestId(requestId string) *InstanceGroupManagersDeleteCall {
81051	c.urlParams_.Set("requestId", requestId)
81052	return c
81053}
81054
81055// Fields allows partial responses to be retrieved. See
81056// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81057// for more information.
81058func (c *InstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteCall {
81059	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81060	return c
81061}
81062
81063// Context sets the context to be used in this call's Do method. Any
81064// pending HTTP request will be aborted if the provided context is
81065// canceled.
81066func (c *InstanceGroupManagersDeleteCall) Context(ctx context.Context) *InstanceGroupManagersDeleteCall {
81067	c.ctx_ = ctx
81068	return c
81069}
81070
81071// Header returns an http.Header that can be modified by the caller to
81072// add HTTP headers to the request.
81073func (c *InstanceGroupManagersDeleteCall) Header() http.Header {
81074	if c.header_ == nil {
81075		c.header_ = make(http.Header)
81076	}
81077	return c.header_
81078}
81079
81080func (c *InstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) {
81081	reqHeaders := make(http.Header)
81082	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
81083	for k, v := range c.header_ {
81084		reqHeaders[k] = v
81085	}
81086	reqHeaders.Set("User-Agent", c.s.userAgent())
81087	var body io.Reader = nil
81088	c.urlParams_.Set("alt", alt)
81089	c.urlParams_.Set("prettyPrint", "false")
81090	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
81091	urls += "?" + c.urlParams_.Encode()
81092	req, err := http.NewRequest("DELETE", urls, body)
81093	if err != nil {
81094		return nil, err
81095	}
81096	req.Header = reqHeaders
81097	googleapi.Expand(req.URL, map[string]string{
81098		"project":              c.project,
81099		"zone":                 c.zone,
81100		"instanceGroupManager": c.instanceGroupManager,
81101	})
81102	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81103}
81104
81105// Do executes the "compute.instanceGroupManagers.delete" call.
81106// Exactly one of *Operation or error will be non-nil. Any non-2xx
81107// status code is an error. Response headers are in either
81108// *Operation.ServerResponse.Header or (if a response was returned at
81109// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81110// to check whether the returned error was because
81111// http.StatusNotModified was returned.
81112func (c *InstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81113	gensupport.SetOptions(c.urlParams_, opts...)
81114	res, err := c.doRequest("json")
81115	if res != nil && res.StatusCode == http.StatusNotModified {
81116		if res.Body != nil {
81117			res.Body.Close()
81118		}
81119		return nil, &googleapi.Error{
81120			Code:   res.StatusCode,
81121			Header: res.Header,
81122		}
81123	}
81124	if err != nil {
81125		return nil, err
81126	}
81127	defer googleapi.CloseBody(res)
81128	if err := googleapi.CheckResponse(res); err != nil {
81129		return nil, err
81130	}
81131	ret := &Operation{
81132		ServerResponse: googleapi.ServerResponse{
81133			Header:         res.Header,
81134			HTTPStatusCode: res.StatusCode,
81135		},
81136	}
81137	target := &ret
81138	if err := gensupport.DecodeResponse(target, res); err != nil {
81139		return nil, err
81140	}
81141	return ret, nil
81142	// {
81143	//   "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.",
81144	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
81145	//   "httpMethod": "DELETE",
81146	//   "id": "compute.instanceGroupManagers.delete",
81147	//   "parameterOrder": [
81148	//     "project",
81149	//     "zone",
81150	//     "instanceGroupManager"
81151	//   ],
81152	//   "parameters": {
81153	//     "instanceGroupManager": {
81154	//       "description": "The name of the managed instance group to delete.",
81155	//       "location": "path",
81156	//       "required": true,
81157	//       "type": "string"
81158	//     },
81159	//     "project": {
81160	//       "description": "Project ID for this request.",
81161	//       "location": "path",
81162	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81163	//       "required": true,
81164	//       "type": "string"
81165	//     },
81166	//     "requestId": {
81167	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
81168	//       "location": "query",
81169	//       "type": "string"
81170	//     },
81171	//     "zone": {
81172	//       "description": "The name of the zone where the managed instance group is located.",
81173	//       "location": "path",
81174	//       "required": true,
81175	//       "type": "string"
81176	//     }
81177	//   },
81178	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
81179	//   "response": {
81180	//     "$ref": "Operation"
81181	//   },
81182	//   "scopes": [
81183	//     "https://www.googleapis.com/auth/cloud-platform",
81184	//     "https://www.googleapis.com/auth/compute"
81185	//   ]
81186	// }
81187
81188}
81189
81190// method id "compute.instanceGroupManagers.deleteInstances":
81191
81192type InstanceGroupManagersDeleteInstancesCall struct {
81193	s                                           *Service
81194	project                                     string
81195	zone                                        string
81196	instanceGroupManager                        string
81197	instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest
81198	urlParams_                                  gensupport.URLParams
81199	ctx_                                        context.Context
81200	header_                                     http.Header
81201}
81202
81203// DeleteInstances: Flags the specified instances in the managed
81204// instance group for immediate deletion. The instances are also removed
81205// from any target pools of which they were a member. This method
81206// reduces the targetSize of the managed instance group by the number of
81207// instances that you delete. This operation is marked as DONE when the
81208// action is scheduled even if the instances are still being deleted.
81209// You must separately verify the status of the deleting action with the
81210// listmanagedinstances method. If the group is part of a backend
81211// service that has enabled connection draining, it can take up to 60
81212// seconds after the connection draining duration has elapsed before the
81213// VM instance is removed or deleted. You can specify a maximum of 1000
81214// instances with this method per request.
81215//
81216// - instanceGroupManager: The name of the managed instance group.
81217// - project: Project ID for this request.
81218// - zone: The name of the zone where the managed instance group is
81219//   located.
81220func (r *InstanceGroupManagersService) DeleteInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest) *InstanceGroupManagersDeleteInstancesCall {
81221	c := &InstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81222	c.project = project
81223	c.zone = zone
81224	c.instanceGroupManager = instanceGroupManager
81225	c.instancegroupmanagersdeleteinstancesrequest = instancegroupmanagersdeleteinstancesrequest
81226	return c
81227}
81228
81229// RequestId sets the optional parameter "requestId": An optional
81230// request ID to identify requests. Specify a unique request ID so that
81231// if you must retry your request, the server will know to ignore the
81232// request if it has already been completed. For example, consider a
81233// situation where you make an initial request and the request times
81234// out. If you make the request again with the same request ID, the
81235// server can check if original operation with the same request ID was
81236// received, and if so, will ignore the second request. This prevents
81237// clients from accidentally creating duplicate commitments. The request
81238// ID must be a valid UUID with the exception that zero UUID is not
81239// supported ( 00000000-0000-0000-0000-000000000000).
81240func (c *InstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *InstanceGroupManagersDeleteInstancesCall {
81241	c.urlParams_.Set("requestId", requestId)
81242	return c
81243}
81244
81245// Fields allows partial responses to be retrieved. See
81246// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81247// for more information.
81248func (c *InstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteInstancesCall {
81249	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81250	return c
81251}
81252
81253// Context sets the context to be used in this call's Do method. Any
81254// pending HTTP request will be aborted if the provided context is
81255// canceled.
81256func (c *InstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *InstanceGroupManagersDeleteInstancesCall {
81257	c.ctx_ = ctx
81258	return c
81259}
81260
81261// Header returns an http.Header that can be modified by the caller to
81262// add HTTP headers to the request.
81263func (c *InstanceGroupManagersDeleteInstancesCall) Header() http.Header {
81264	if c.header_ == nil {
81265		c.header_ = make(http.Header)
81266	}
81267	return c.header_
81268}
81269
81270func (c *InstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) {
81271	reqHeaders := make(http.Header)
81272	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
81273	for k, v := range c.header_ {
81274		reqHeaders[k] = v
81275	}
81276	reqHeaders.Set("User-Agent", c.s.userAgent())
81277	var body io.Reader = nil
81278	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersdeleteinstancesrequest)
81279	if err != nil {
81280		return nil, err
81281	}
81282	reqHeaders.Set("Content-Type", "application/json")
81283	c.urlParams_.Set("alt", alt)
81284	c.urlParams_.Set("prettyPrint", "false")
81285	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances")
81286	urls += "?" + c.urlParams_.Encode()
81287	req, err := http.NewRequest("POST", urls, body)
81288	if err != nil {
81289		return nil, err
81290	}
81291	req.Header = reqHeaders
81292	googleapi.Expand(req.URL, map[string]string{
81293		"project":              c.project,
81294		"zone":                 c.zone,
81295		"instanceGroupManager": c.instanceGroupManager,
81296	})
81297	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81298}
81299
81300// Do executes the "compute.instanceGroupManagers.deleteInstances" call.
81301// Exactly one of *Operation or error will be non-nil. Any non-2xx
81302// status code is an error. Response headers are in either
81303// *Operation.ServerResponse.Header or (if a response was returned at
81304// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81305// to check whether the returned error was because
81306// http.StatusNotModified was returned.
81307func (c *InstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81308	gensupport.SetOptions(c.urlParams_, opts...)
81309	res, err := c.doRequest("json")
81310	if res != nil && res.StatusCode == http.StatusNotModified {
81311		if res.Body != nil {
81312			res.Body.Close()
81313		}
81314		return nil, &googleapi.Error{
81315			Code:   res.StatusCode,
81316			Header: res.Header,
81317		}
81318	}
81319	if err != nil {
81320		return nil, err
81321	}
81322	defer googleapi.CloseBody(res)
81323	if err := googleapi.CheckResponse(res); err != nil {
81324		return nil, err
81325	}
81326	ret := &Operation{
81327		ServerResponse: googleapi.ServerResponse{
81328			Header:         res.Header,
81329			HTTPStatusCode: res.StatusCode,
81330		},
81331	}
81332	target := &ret
81333	if err := gensupport.DecodeResponse(target, res); err != nil {
81334		return nil, err
81335	}
81336	return ret, nil
81337	// {
81338	//   "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.",
81339	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
81340	//   "httpMethod": "POST",
81341	//   "id": "compute.instanceGroupManagers.deleteInstances",
81342	//   "parameterOrder": [
81343	//     "project",
81344	//     "zone",
81345	//     "instanceGroupManager"
81346	//   ],
81347	//   "parameters": {
81348	//     "instanceGroupManager": {
81349	//       "description": "The name of the managed instance group.",
81350	//       "location": "path",
81351	//       "required": true,
81352	//       "type": "string"
81353	//     },
81354	//     "project": {
81355	//       "description": "Project ID for this request.",
81356	//       "location": "path",
81357	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81358	//       "required": true,
81359	//       "type": "string"
81360	//     },
81361	//     "requestId": {
81362	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
81363	//       "location": "query",
81364	//       "type": "string"
81365	//     },
81366	//     "zone": {
81367	//       "description": "The name of the zone where the managed instance group is located.",
81368	//       "location": "path",
81369	//       "required": true,
81370	//       "type": "string"
81371	//     }
81372	//   },
81373	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
81374	//   "request": {
81375	//     "$ref": "InstanceGroupManagersDeleteInstancesRequest"
81376	//   },
81377	//   "response": {
81378	//     "$ref": "Operation"
81379	//   },
81380	//   "scopes": [
81381	//     "https://www.googleapis.com/auth/cloud-platform",
81382	//     "https://www.googleapis.com/auth/compute"
81383	//   ]
81384	// }
81385
81386}
81387
81388// method id "compute.instanceGroupManagers.deletePerInstanceConfigs":
81389
81390type InstanceGroupManagersDeletePerInstanceConfigsCall struct {
81391	s                                                *Service
81392	project                                          string
81393	zone                                             string
81394	instanceGroupManager                             string
81395	instancegroupmanagersdeleteperinstanceconfigsreq *InstanceGroupManagersDeletePerInstanceConfigsReq
81396	urlParams_                                       gensupport.URLParams
81397	ctx_                                             context.Context
81398	header_                                          http.Header
81399}
81400
81401// DeletePerInstanceConfigs: Deletes selected per-instance configs for
81402// the managed instance group.
81403//
81404// - instanceGroupManager: The name of the managed instance group. It
81405//   should conform to RFC1035.
81406// - project: Project ID for this request.
81407// - zone: The name of the zone where the managed instance group is
81408//   located. It should conform to RFC1035.
81409func (r *InstanceGroupManagersService) DeletePerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagersdeleteperinstanceconfigsreq *InstanceGroupManagersDeletePerInstanceConfigsReq) *InstanceGroupManagersDeletePerInstanceConfigsCall {
81410	c := &InstanceGroupManagersDeletePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81411	c.project = project
81412	c.zone = zone
81413	c.instanceGroupManager = instanceGroupManager
81414	c.instancegroupmanagersdeleteperinstanceconfigsreq = instancegroupmanagersdeleteperinstanceconfigsreq
81415	return c
81416}
81417
81418// Fields allows partial responses to be retrieved. See
81419// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81420// for more information.
81421func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeletePerInstanceConfigsCall {
81422	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81423	return c
81424}
81425
81426// Context sets the context to be used in this call's Do method. Any
81427// pending HTTP request will be aborted if the provided context is
81428// canceled.
81429func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersDeletePerInstanceConfigsCall {
81430	c.ctx_ = ctx
81431	return c
81432}
81433
81434// Header returns an http.Header that can be modified by the caller to
81435// add HTTP headers to the request.
81436func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Header() http.Header {
81437	if c.header_ == nil {
81438		c.header_ = make(http.Header)
81439	}
81440	return c.header_
81441}
81442
81443func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
81444	reqHeaders := make(http.Header)
81445	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
81446	for k, v := range c.header_ {
81447		reqHeaders[k] = v
81448	}
81449	reqHeaders.Set("User-Agent", c.s.userAgent())
81450	var body io.Reader = nil
81451	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersdeleteperinstanceconfigsreq)
81452	if err != nil {
81453		return nil, err
81454	}
81455	reqHeaders.Set("Content-Type", "application/json")
81456	c.urlParams_.Set("alt", alt)
81457	c.urlParams_.Set("prettyPrint", "false")
81458	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs")
81459	urls += "?" + c.urlParams_.Encode()
81460	req, err := http.NewRequest("POST", urls, body)
81461	if err != nil {
81462		return nil, err
81463	}
81464	req.Header = reqHeaders
81465	googleapi.Expand(req.URL, map[string]string{
81466		"project":              c.project,
81467		"zone":                 c.zone,
81468		"instanceGroupManager": c.instanceGroupManager,
81469	})
81470	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81471}
81472
81473// Do executes the "compute.instanceGroupManagers.deletePerInstanceConfigs" call.
81474// Exactly one of *Operation or error will be non-nil. Any non-2xx
81475// status code is an error. Response headers are in either
81476// *Operation.ServerResponse.Header or (if a response was returned at
81477// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81478// to check whether the returned error was because
81479// http.StatusNotModified was returned.
81480func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81481	gensupport.SetOptions(c.urlParams_, opts...)
81482	res, err := c.doRequest("json")
81483	if res != nil && res.StatusCode == http.StatusNotModified {
81484		if res.Body != nil {
81485			res.Body.Close()
81486		}
81487		return nil, &googleapi.Error{
81488			Code:   res.StatusCode,
81489			Header: res.Header,
81490		}
81491	}
81492	if err != nil {
81493		return nil, err
81494	}
81495	defer googleapi.CloseBody(res)
81496	if err := googleapi.CheckResponse(res); err != nil {
81497		return nil, err
81498	}
81499	ret := &Operation{
81500		ServerResponse: googleapi.ServerResponse{
81501			Header:         res.Header,
81502			HTTPStatusCode: res.StatusCode,
81503		},
81504	}
81505	target := &ret
81506	if err := gensupport.DecodeResponse(target, res); err != nil {
81507		return nil, err
81508	}
81509	return ret, nil
81510	// {
81511	//   "description": "Deletes selected per-instance configs for the managed instance group.",
81512	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs",
81513	//   "httpMethod": "POST",
81514	//   "id": "compute.instanceGroupManagers.deletePerInstanceConfigs",
81515	//   "parameterOrder": [
81516	//     "project",
81517	//     "zone",
81518	//     "instanceGroupManager"
81519	//   ],
81520	//   "parameters": {
81521	//     "instanceGroupManager": {
81522	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
81523	//       "location": "path",
81524	//       "required": true,
81525	//       "type": "string"
81526	//     },
81527	//     "project": {
81528	//       "description": "Project ID for this request.",
81529	//       "location": "path",
81530	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81531	//       "required": true,
81532	//       "type": "string"
81533	//     },
81534	//     "zone": {
81535	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
81536	//       "location": "path",
81537	//       "required": true,
81538	//       "type": "string"
81539	//     }
81540	//   },
81541	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs",
81542	//   "request": {
81543	//     "$ref": "InstanceGroupManagersDeletePerInstanceConfigsReq"
81544	//   },
81545	//   "response": {
81546	//     "$ref": "Operation"
81547	//   },
81548	//   "scopes": [
81549	//     "https://www.googleapis.com/auth/cloud-platform",
81550	//     "https://www.googleapis.com/auth/compute"
81551	//   ]
81552	// }
81553
81554}
81555
81556// method id "compute.instanceGroupManagers.get":
81557
81558type InstanceGroupManagersGetCall struct {
81559	s                    *Service
81560	project              string
81561	zone                 string
81562	instanceGroupManager string
81563	urlParams_           gensupport.URLParams
81564	ifNoneMatch_         string
81565	ctx_                 context.Context
81566	header_              http.Header
81567}
81568
81569// Get: Returns all of the details about the specified managed instance
81570// group. Gets a list of available managed instance groups by making a
81571// list() request.
81572//
81573// - instanceGroupManager: The name of the managed instance group.
81574// - project: Project ID for this request.
81575// - zone: The name of the zone where the managed instance group is
81576//   located.
81577func (r *InstanceGroupManagersService) Get(project string, zone string, instanceGroupManager string) *InstanceGroupManagersGetCall {
81578	c := &InstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81579	c.project = project
81580	c.zone = zone
81581	c.instanceGroupManager = instanceGroupManager
81582	return c
81583}
81584
81585// Fields allows partial responses to be retrieved. See
81586// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81587// for more information.
81588func (c *InstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *InstanceGroupManagersGetCall {
81589	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81590	return c
81591}
81592
81593// IfNoneMatch sets the optional parameter which makes the operation
81594// fail if the object's ETag matches the given value. This is useful for
81595// getting updates only after the object has changed since the last
81596// request. Use googleapi.IsNotModified to check whether the response
81597// error from Do is the result of In-None-Match.
81598func (c *InstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *InstanceGroupManagersGetCall {
81599	c.ifNoneMatch_ = entityTag
81600	return c
81601}
81602
81603// Context sets the context to be used in this call's Do method. Any
81604// pending HTTP request will be aborted if the provided context is
81605// canceled.
81606func (c *InstanceGroupManagersGetCall) Context(ctx context.Context) *InstanceGroupManagersGetCall {
81607	c.ctx_ = ctx
81608	return c
81609}
81610
81611// Header returns an http.Header that can be modified by the caller to
81612// add HTTP headers to the request.
81613func (c *InstanceGroupManagersGetCall) Header() http.Header {
81614	if c.header_ == nil {
81615		c.header_ = make(http.Header)
81616	}
81617	return c.header_
81618}
81619
81620func (c *InstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) {
81621	reqHeaders := make(http.Header)
81622	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
81623	for k, v := range c.header_ {
81624		reqHeaders[k] = v
81625	}
81626	reqHeaders.Set("User-Agent", c.s.userAgent())
81627	if c.ifNoneMatch_ != "" {
81628		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
81629	}
81630	var body io.Reader = nil
81631	c.urlParams_.Set("alt", alt)
81632	c.urlParams_.Set("prettyPrint", "false")
81633	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
81634	urls += "?" + c.urlParams_.Encode()
81635	req, err := http.NewRequest("GET", urls, body)
81636	if err != nil {
81637		return nil, err
81638	}
81639	req.Header = reqHeaders
81640	googleapi.Expand(req.URL, map[string]string{
81641		"project":              c.project,
81642		"zone":                 c.zone,
81643		"instanceGroupManager": c.instanceGroupManager,
81644	})
81645	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81646}
81647
81648// Do executes the "compute.instanceGroupManagers.get" call.
81649// Exactly one of *InstanceGroupManager or error will be non-nil. Any
81650// non-2xx status code is an error. Response headers are in either
81651// *InstanceGroupManager.ServerResponse.Header or (if a response was
81652// returned at all) in error.(*googleapi.Error).Header. Use
81653// googleapi.IsNotModified to check whether the returned error was
81654// because http.StatusNotModified was returned.
81655func (c *InstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) {
81656	gensupport.SetOptions(c.urlParams_, opts...)
81657	res, err := c.doRequest("json")
81658	if res != nil && res.StatusCode == http.StatusNotModified {
81659		if res.Body != nil {
81660			res.Body.Close()
81661		}
81662		return nil, &googleapi.Error{
81663			Code:   res.StatusCode,
81664			Header: res.Header,
81665		}
81666	}
81667	if err != nil {
81668		return nil, err
81669	}
81670	defer googleapi.CloseBody(res)
81671	if err := googleapi.CheckResponse(res); err != nil {
81672		return nil, err
81673	}
81674	ret := &InstanceGroupManager{
81675		ServerResponse: googleapi.ServerResponse{
81676			Header:         res.Header,
81677			HTTPStatusCode: res.StatusCode,
81678		},
81679	}
81680	target := &ret
81681	if err := gensupport.DecodeResponse(target, res); err != nil {
81682		return nil, err
81683	}
81684	return ret, nil
81685	// {
81686	//   "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.",
81687	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
81688	//   "httpMethod": "GET",
81689	//   "id": "compute.instanceGroupManagers.get",
81690	//   "parameterOrder": [
81691	//     "project",
81692	//     "zone",
81693	//     "instanceGroupManager"
81694	//   ],
81695	//   "parameters": {
81696	//     "instanceGroupManager": {
81697	//       "description": "The name of the managed instance group.",
81698	//       "location": "path",
81699	//       "required": true,
81700	//       "type": "string"
81701	//     },
81702	//     "project": {
81703	//       "description": "Project ID for this request.",
81704	//       "location": "path",
81705	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81706	//       "required": true,
81707	//       "type": "string"
81708	//     },
81709	//     "zone": {
81710	//       "description": "The name of the zone where the managed instance group is located.",
81711	//       "location": "path",
81712	//       "required": true,
81713	//       "type": "string"
81714	//     }
81715	//   },
81716	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
81717	//   "response": {
81718	//     "$ref": "InstanceGroupManager"
81719	//   },
81720	//   "scopes": [
81721	//     "https://www.googleapis.com/auth/cloud-platform",
81722	//     "https://www.googleapis.com/auth/compute",
81723	//     "https://www.googleapis.com/auth/compute.readonly"
81724	//   ]
81725	// }
81726
81727}
81728
81729// method id "compute.instanceGroupManagers.insert":
81730
81731type InstanceGroupManagersInsertCall struct {
81732	s                    *Service
81733	project              string
81734	zone                 string
81735	instancegroupmanager *InstanceGroupManager
81736	urlParams_           gensupport.URLParams
81737	ctx_                 context.Context
81738	header_              http.Header
81739}
81740
81741// Insert: Creates a managed instance group using the information that
81742// you specify in the request. After the group is created, instances in
81743// the group are created using the specified instance template. This
81744// operation is marked as DONE when the group is created even if the
81745// instances in the group have not yet been created. You must separately
81746// verify the status of the individual instances with the
81747// listmanagedinstances method. A managed instance group can have up to
81748// 1000 VM instances per group. Please contact Cloud Support if you need
81749// an increase in this limit.
81750//
81751// - project: Project ID for this request.
81752// - zone: The name of the zone where you want to create the managed
81753//   instance group.
81754func (r *InstanceGroupManagersService) Insert(project string, zone string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersInsertCall {
81755	c := &InstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81756	c.project = project
81757	c.zone = zone
81758	c.instancegroupmanager = instancegroupmanager
81759	return c
81760}
81761
81762// RequestId sets the optional parameter "requestId": An optional
81763// request ID to identify requests. Specify a unique request ID so that
81764// if you must retry your request, the server will know to ignore the
81765// request if it has already been completed. For example, consider a
81766// situation where you make an initial request and the request times
81767// out. If you make the request again with the same request ID, the
81768// server can check if original operation with the same request ID was
81769// received, and if so, will ignore the second request. This prevents
81770// clients from accidentally creating duplicate commitments. The request
81771// ID must be a valid UUID with the exception that zero UUID is not
81772// supported ( 00000000-0000-0000-0000-000000000000).
81773func (c *InstanceGroupManagersInsertCall) RequestId(requestId string) *InstanceGroupManagersInsertCall {
81774	c.urlParams_.Set("requestId", requestId)
81775	return c
81776}
81777
81778// Fields allows partial responses to be retrieved. See
81779// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81780// for more information.
81781func (c *InstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *InstanceGroupManagersInsertCall {
81782	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81783	return c
81784}
81785
81786// Context sets the context to be used in this call's Do method. Any
81787// pending HTTP request will be aborted if the provided context is
81788// canceled.
81789func (c *InstanceGroupManagersInsertCall) Context(ctx context.Context) *InstanceGroupManagersInsertCall {
81790	c.ctx_ = ctx
81791	return c
81792}
81793
81794// Header returns an http.Header that can be modified by the caller to
81795// add HTTP headers to the request.
81796func (c *InstanceGroupManagersInsertCall) Header() http.Header {
81797	if c.header_ == nil {
81798		c.header_ = make(http.Header)
81799	}
81800	return c.header_
81801}
81802
81803func (c *InstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) {
81804	reqHeaders := make(http.Header)
81805	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
81806	for k, v := range c.header_ {
81807		reqHeaders[k] = v
81808	}
81809	reqHeaders.Set("User-Agent", c.s.userAgent())
81810	var body io.Reader = nil
81811	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
81812	if err != nil {
81813		return nil, err
81814	}
81815	reqHeaders.Set("Content-Type", "application/json")
81816	c.urlParams_.Set("alt", alt)
81817	c.urlParams_.Set("prettyPrint", "false")
81818	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers")
81819	urls += "?" + c.urlParams_.Encode()
81820	req, err := http.NewRequest("POST", urls, body)
81821	if err != nil {
81822		return nil, err
81823	}
81824	req.Header = reqHeaders
81825	googleapi.Expand(req.URL, map[string]string{
81826		"project": c.project,
81827		"zone":    c.zone,
81828	})
81829	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81830}
81831
81832// Do executes the "compute.instanceGroupManagers.insert" call.
81833// Exactly one of *Operation or error will be non-nil. Any non-2xx
81834// status code is an error. Response headers are in either
81835// *Operation.ServerResponse.Header or (if a response was returned at
81836// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81837// to check whether the returned error was because
81838// http.StatusNotModified was returned.
81839func (c *InstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81840	gensupport.SetOptions(c.urlParams_, opts...)
81841	res, err := c.doRequest("json")
81842	if res != nil && res.StatusCode == http.StatusNotModified {
81843		if res.Body != nil {
81844			res.Body.Close()
81845		}
81846		return nil, &googleapi.Error{
81847			Code:   res.StatusCode,
81848			Header: res.Header,
81849		}
81850	}
81851	if err != nil {
81852		return nil, err
81853	}
81854	defer googleapi.CloseBody(res)
81855	if err := googleapi.CheckResponse(res); err != nil {
81856		return nil, err
81857	}
81858	ret := &Operation{
81859		ServerResponse: googleapi.ServerResponse{
81860			Header:         res.Header,
81861			HTTPStatusCode: res.StatusCode,
81862		},
81863	}
81864	target := &ret
81865	if err := gensupport.DecodeResponse(target, res); err != nil {
81866		return nil, err
81867	}
81868	return ret, nil
81869	// {
81870	//   "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.",
81871	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers",
81872	//   "httpMethod": "POST",
81873	//   "id": "compute.instanceGroupManagers.insert",
81874	//   "parameterOrder": [
81875	//     "project",
81876	//     "zone"
81877	//   ],
81878	//   "parameters": {
81879	//     "project": {
81880	//       "description": "Project ID for this request.",
81881	//       "location": "path",
81882	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81883	//       "required": true,
81884	//       "type": "string"
81885	//     },
81886	//     "requestId": {
81887	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
81888	//       "location": "query",
81889	//       "type": "string"
81890	//     },
81891	//     "zone": {
81892	//       "description": "The name of the zone where you want to create the managed instance group.",
81893	//       "location": "path",
81894	//       "required": true,
81895	//       "type": "string"
81896	//     }
81897	//   },
81898	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers",
81899	//   "request": {
81900	//     "$ref": "InstanceGroupManager"
81901	//   },
81902	//   "response": {
81903	//     "$ref": "Operation"
81904	//   },
81905	//   "scopes": [
81906	//     "https://www.googleapis.com/auth/cloud-platform",
81907	//     "https://www.googleapis.com/auth/compute"
81908	//   ]
81909	// }
81910
81911}
81912
81913// method id "compute.instanceGroupManagers.list":
81914
81915type InstanceGroupManagersListCall struct {
81916	s            *Service
81917	project      string
81918	zone         string
81919	urlParams_   gensupport.URLParams
81920	ifNoneMatch_ string
81921	ctx_         context.Context
81922	header_      http.Header
81923}
81924
81925// List: Retrieves a list of managed instance groups that are contained
81926// within the specified project and zone.
81927//
81928// - project: Project ID for this request.
81929// - zone: The name of the zone where the managed instance group is
81930//   located.
81931func (r *InstanceGroupManagersService) List(project string, zone string) *InstanceGroupManagersListCall {
81932	c := &InstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81933	c.project = project
81934	c.zone = zone
81935	return c
81936}
81937
81938// Filter sets the optional parameter "filter": A filter expression that
81939// filters resources listed in the response. The expression must specify
81940// the field name, a comparison operator, and the value that you want to
81941// use for filtering. The value must be a string, a number, or a
81942// boolean. The comparison operator must be either `=`, `!=`, `>`, or
81943// `<`. For example, if you are filtering Compute Engine instances, you
81944// can exclude instances named `example-instance` by specifying `name !=
81945// example-instance`. You can also filter nested fields. For example,
81946// you could specify `scheduling.automaticRestart = false` to include
81947// instances only if they are not scheduled for automatic restarts. You
81948// can use filtering on nested fields to filter based on resource
81949// labels. To filter on multiple expressions, provide each separate
81950// expression within parentheses. For example: ```
81951// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
81952// ``` By default, each expression is an `AND` expression. However, you
81953// can include `AND` and `OR` expressions explicitly. For example: ```
81954// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
81955// AND (scheduling.automaticRestart = true) ```
81956func (c *InstanceGroupManagersListCall) Filter(filter string) *InstanceGroupManagersListCall {
81957	c.urlParams_.Set("filter", filter)
81958	return c
81959}
81960
81961// MaxResults sets the optional parameter "maxResults": The maximum
81962// number of results per page that should be returned. If the number of
81963// available results is larger than `maxResults`, Compute Engine returns
81964// a `nextPageToken` that can be used to get the next page of results in
81965// subsequent list requests. Acceptable values are `0` to `500`,
81966// inclusive. (Default: `500`)
81967func (c *InstanceGroupManagersListCall) MaxResults(maxResults int64) *InstanceGroupManagersListCall {
81968	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
81969	return c
81970}
81971
81972// OrderBy sets the optional parameter "orderBy": Sorts list results by
81973// a certain order. By default, results are returned in alphanumerical
81974// order based on the resource name. You can also sort results in
81975// descending order based on the creation timestamp using
81976// `orderBy="creationTimestamp desc". This sorts results based on the
81977// `creationTimestamp` field in reverse chronological order (newest
81978// result first). Use this to sort resources like operations so that the
81979// newest operation is returned first. Currently, only sorting by `name`
81980// or `creationTimestamp desc` is supported.
81981func (c *InstanceGroupManagersListCall) OrderBy(orderBy string) *InstanceGroupManagersListCall {
81982	c.urlParams_.Set("orderBy", orderBy)
81983	return c
81984}
81985
81986// PageToken sets the optional parameter "pageToken": Specifies a page
81987// token to use. Set `pageToken` to the `nextPageToken` returned by a
81988// previous list request to get the next page of results.
81989func (c *InstanceGroupManagersListCall) PageToken(pageToken string) *InstanceGroupManagersListCall {
81990	c.urlParams_.Set("pageToken", pageToken)
81991	return c
81992}
81993
81994// ReturnPartialSuccess sets the optional parameter
81995// "returnPartialSuccess": Opt-in for partial success behavior which
81996// provides partial results in case of failure. The default value is
81997// false.
81998func (c *InstanceGroupManagersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListCall {
81999	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
82000	return c
82001}
82002
82003// Fields allows partial responses to be retrieved. See
82004// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82005// for more information.
82006func (c *InstanceGroupManagersListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListCall {
82007	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82008	return c
82009}
82010
82011// IfNoneMatch sets the optional parameter which makes the operation
82012// fail if the object's ETag matches the given value. This is useful for
82013// getting updates only after the object has changed since the last
82014// request. Use googleapi.IsNotModified to check whether the response
82015// error from Do is the result of In-None-Match.
82016func (c *InstanceGroupManagersListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersListCall {
82017	c.ifNoneMatch_ = entityTag
82018	return c
82019}
82020
82021// Context sets the context to be used in this call's Do method. Any
82022// pending HTTP request will be aborted if the provided context is
82023// canceled.
82024func (c *InstanceGroupManagersListCall) Context(ctx context.Context) *InstanceGroupManagersListCall {
82025	c.ctx_ = ctx
82026	return c
82027}
82028
82029// Header returns an http.Header that can be modified by the caller to
82030// add HTTP headers to the request.
82031func (c *InstanceGroupManagersListCall) Header() http.Header {
82032	if c.header_ == nil {
82033		c.header_ = make(http.Header)
82034	}
82035	return c.header_
82036}
82037
82038func (c *InstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) {
82039	reqHeaders := make(http.Header)
82040	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
82041	for k, v := range c.header_ {
82042		reqHeaders[k] = v
82043	}
82044	reqHeaders.Set("User-Agent", c.s.userAgent())
82045	if c.ifNoneMatch_ != "" {
82046		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
82047	}
82048	var body io.Reader = nil
82049	c.urlParams_.Set("alt", alt)
82050	c.urlParams_.Set("prettyPrint", "false")
82051	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers")
82052	urls += "?" + c.urlParams_.Encode()
82053	req, err := http.NewRequest("GET", urls, body)
82054	if err != nil {
82055		return nil, err
82056	}
82057	req.Header = reqHeaders
82058	googleapi.Expand(req.URL, map[string]string{
82059		"project": c.project,
82060		"zone":    c.zone,
82061	})
82062	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82063}
82064
82065// Do executes the "compute.instanceGroupManagers.list" call.
82066// Exactly one of *InstanceGroupManagerList or error will be non-nil.
82067// Any non-2xx status code is an error. Response headers are in either
82068// *InstanceGroupManagerList.ServerResponse.Header or (if a response was
82069// returned at all) in error.(*googleapi.Error).Header. Use
82070// googleapi.IsNotModified to check whether the returned error was
82071// because http.StatusNotModified was returned.
82072func (c *InstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerList, error) {
82073	gensupport.SetOptions(c.urlParams_, opts...)
82074	res, err := c.doRequest("json")
82075	if res != nil && res.StatusCode == http.StatusNotModified {
82076		if res.Body != nil {
82077			res.Body.Close()
82078		}
82079		return nil, &googleapi.Error{
82080			Code:   res.StatusCode,
82081			Header: res.Header,
82082		}
82083	}
82084	if err != nil {
82085		return nil, err
82086	}
82087	defer googleapi.CloseBody(res)
82088	if err := googleapi.CheckResponse(res); err != nil {
82089		return nil, err
82090	}
82091	ret := &InstanceGroupManagerList{
82092		ServerResponse: googleapi.ServerResponse{
82093			Header:         res.Header,
82094			HTTPStatusCode: res.StatusCode,
82095		},
82096	}
82097	target := &ret
82098	if err := gensupport.DecodeResponse(target, res); err != nil {
82099		return nil, err
82100	}
82101	return ret, nil
82102	// {
82103	//   "description": "Retrieves a list of managed instance groups that are contained within the specified project and zone.",
82104	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers",
82105	//   "httpMethod": "GET",
82106	//   "id": "compute.instanceGroupManagers.list",
82107	//   "parameterOrder": [
82108	//     "project",
82109	//     "zone"
82110	//   ],
82111	//   "parameters": {
82112	//     "filter": {
82113	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
82114	//       "location": "query",
82115	//       "type": "string"
82116	//     },
82117	//     "maxResults": {
82118	//       "default": "500",
82119	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
82120	//       "format": "uint32",
82121	//       "location": "query",
82122	//       "minimum": "0",
82123	//       "type": "integer"
82124	//     },
82125	//     "orderBy": {
82126	//       "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.",
82127	//       "location": "query",
82128	//       "type": "string"
82129	//     },
82130	//     "pageToken": {
82131	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
82132	//       "location": "query",
82133	//       "type": "string"
82134	//     },
82135	//     "project": {
82136	//       "description": "Project ID for this request.",
82137	//       "location": "path",
82138	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82139	//       "required": true,
82140	//       "type": "string"
82141	//     },
82142	//     "returnPartialSuccess": {
82143	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
82144	//       "location": "query",
82145	//       "type": "boolean"
82146	//     },
82147	//     "zone": {
82148	//       "description": "The name of the zone where the managed instance group is located.",
82149	//       "location": "path",
82150	//       "required": true,
82151	//       "type": "string"
82152	//     }
82153	//   },
82154	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers",
82155	//   "response": {
82156	//     "$ref": "InstanceGroupManagerList"
82157	//   },
82158	//   "scopes": [
82159	//     "https://www.googleapis.com/auth/cloud-platform",
82160	//     "https://www.googleapis.com/auth/compute",
82161	//     "https://www.googleapis.com/auth/compute.readonly"
82162	//   ]
82163	// }
82164
82165}
82166
82167// Pages invokes f for each page of results.
82168// A non-nil error returned from f will halt the iteration.
82169// The provided context supersedes any context provided to the Context method.
82170func (c *InstanceGroupManagersListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerList) error) error {
82171	c.ctx_ = ctx
82172	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
82173	for {
82174		x, err := c.Do()
82175		if err != nil {
82176			return err
82177		}
82178		if err := f(x); err != nil {
82179			return err
82180		}
82181		if x.NextPageToken == "" {
82182			return nil
82183		}
82184		c.PageToken(x.NextPageToken)
82185	}
82186}
82187
82188// method id "compute.instanceGroupManagers.listErrors":
82189
82190type InstanceGroupManagersListErrorsCall struct {
82191	s                    *Service
82192	project              string
82193	zone                 string
82194	instanceGroupManager string
82195	urlParams_           gensupport.URLParams
82196	ifNoneMatch_         string
82197	ctx_                 context.Context
82198	header_              http.Header
82199}
82200
82201// ListErrors: Lists all errors thrown by actions on instances for a
82202// given managed instance group. The filter and orderBy query parameters
82203// are not supported.
82204//
82205// - instanceGroupManager: The name of the managed instance group. It
82206//   must be a string that meets the requirements in RFC1035, or an
82207//   unsigned long integer: must match regexp pattern: (?:a-z
82208//   (?:[-a-z0-9]{0,61}[a-z0-9])?)|1-9{0,19}.
82209// - project: Project ID for this request.
82210// - zone: The name of the zone where the managed instance group is
82211//   located. It should conform to RFC1035.
82212func (r *InstanceGroupManagersService) ListErrors(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListErrorsCall {
82213	c := &InstanceGroupManagersListErrorsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82214	c.project = project
82215	c.zone = zone
82216	c.instanceGroupManager = instanceGroupManager
82217	return c
82218}
82219
82220// Filter sets the optional parameter "filter": A filter expression that
82221// filters resources listed in the response. The expression must specify
82222// the field name, a comparison operator, and the value that you want to
82223// use for filtering. The value must be a string, a number, or a
82224// boolean. The comparison operator must be either `=`, `!=`, `>`, or
82225// `<`. For example, if you are filtering Compute Engine instances, you
82226// can exclude instances named `example-instance` by specifying `name !=
82227// example-instance`. You can also filter nested fields. For example,
82228// you could specify `scheduling.automaticRestart = false` to include
82229// instances only if they are not scheduled for automatic restarts. You
82230// can use filtering on nested fields to filter based on resource
82231// labels. To filter on multiple expressions, provide each separate
82232// expression within parentheses. For example: ```
82233// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
82234// ``` By default, each expression is an `AND` expression. However, you
82235// can include `AND` and `OR` expressions explicitly. For example: ```
82236// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
82237// AND (scheduling.automaticRestart = true) ```
82238func (c *InstanceGroupManagersListErrorsCall) Filter(filter string) *InstanceGroupManagersListErrorsCall {
82239	c.urlParams_.Set("filter", filter)
82240	return c
82241}
82242
82243// MaxResults sets the optional parameter "maxResults": The maximum
82244// number of results per page that should be returned. If the number of
82245// available results is larger than `maxResults`, Compute Engine returns
82246// a `nextPageToken` that can be used to get the next page of results in
82247// subsequent list requests. Acceptable values are `0` to `500`,
82248// inclusive. (Default: `500`)
82249func (c *InstanceGroupManagersListErrorsCall) MaxResults(maxResults int64) *InstanceGroupManagersListErrorsCall {
82250	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
82251	return c
82252}
82253
82254// OrderBy sets the optional parameter "orderBy": Sorts list results by
82255// a certain order. By default, results are returned in alphanumerical
82256// order based on the resource name. You can also sort results in
82257// descending order based on the creation timestamp using
82258// `orderBy="creationTimestamp desc". This sorts results based on the
82259// `creationTimestamp` field in reverse chronological order (newest
82260// result first). Use this to sort resources like operations so that the
82261// newest operation is returned first. Currently, only sorting by `name`
82262// or `creationTimestamp desc` is supported.
82263func (c *InstanceGroupManagersListErrorsCall) OrderBy(orderBy string) *InstanceGroupManagersListErrorsCall {
82264	c.urlParams_.Set("orderBy", orderBy)
82265	return c
82266}
82267
82268// PageToken sets the optional parameter "pageToken": Specifies a page
82269// token to use. Set `pageToken` to the `nextPageToken` returned by a
82270// previous list request to get the next page of results.
82271func (c *InstanceGroupManagersListErrorsCall) PageToken(pageToken string) *InstanceGroupManagersListErrorsCall {
82272	c.urlParams_.Set("pageToken", pageToken)
82273	return c
82274}
82275
82276// ReturnPartialSuccess sets the optional parameter
82277// "returnPartialSuccess": Opt-in for partial success behavior which
82278// provides partial results in case of failure. The default value is
82279// false.
82280func (c *InstanceGroupManagersListErrorsCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListErrorsCall {
82281	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
82282	return c
82283}
82284
82285// Fields allows partial responses to be retrieved. See
82286// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82287// for more information.
82288func (c *InstanceGroupManagersListErrorsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListErrorsCall {
82289	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82290	return c
82291}
82292
82293// IfNoneMatch sets the optional parameter which makes the operation
82294// fail if the object's ETag matches the given value. This is useful for
82295// getting updates only after the object has changed since the last
82296// request. Use googleapi.IsNotModified to check whether the response
82297// error from Do is the result of In-None-Match.
82298func (c *InstanceGroupManagersListErrorsCall) IfNoneMatch(entityTag string) *InstanceGroupManagersListErrorsCall {
82299	c.ifNoneMatch_ = entityTag
82300	return c
82301}
82302
82303// Context sets the context to be used in this call's Do method. Any
82304// pending HTTP request will be aborted if the provided context is
82305// canceled.
82306func (c *InstanceGroupManagersListErrorsCall) Context(ctx context.Context) *InstanceGroupManagersListErrorsCall {
82307	c.ctx_ = ctx
82308	return c
82309}
82310
82311// Header returns an http.Header that can be modified by the caller to
82312// add HTTP headers to the request.
82313func (c *InstanceGroupManagersListErrorsCall) Header() http.Header {
82314	if c.header_ == nil {
82315		c.header_ = make(http.Header)
82316	}
82317	return c.header_
82318}
82319
82320func (c *InstanceGroupManagersListErrorsCall) doRequest(alt string) (*http.Response, error) {
82321	reqHeaders := make(http.Header)
82322	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
82323	for k, v := range c.header_ {
82324		reqHeaders[k] = v
82325	}
82326	reqHeaders.Set("User-Agent", c.s.userAgent())
82327	if c.ifNoneMatch_ != "" {
82328		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
82329	}
82330	var body io.Reader = nil
82331	c.urlParams_.Set("alt", alt)
82332	c.urlParams_.Set("prettyPrint", "false")
82333	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors")
82334	urls += "?" + c.urlParams_.Encode()
82335	req, err := http.NewRequest("GET", urls, body)
82336	if err != nil {
82337		return nil, err
82338	}
82339	req.Header = reqHeaders
82340	googleapi.Expand(req.URL, map[string]string{
82341		"project":              c.project,
82342		"zone":                 c.zone,
82343		"instanceGroupManager": c.instanceGroupManager,
82344	})
82345	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82346}
82347
82348// Do executes the "compute.instanceGroupManagers.listErrors" call.
82349// Exactly one of *InstanceGroupManagersListErrorsResponse or error will
82350// be non-nil. Any non-2xx status code is an error. Response headers are
82351// in either
82352// *InstanceGroupManagersListErrorsResponse.ServerResponse.Header or (if
82353// a response was returned at all) in error.(*googleapi.Error).Header.
82354// Use googleapi.IsNotModified to check whether the returned error was
82355// because http.StatusNotModified was returned.
82356func (c *InstanceGroupManagersListErrorsCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListErrorsResponse, error) {
82357	gensupport.SetOptions(c.urlParams_, opts...)
82358	res, err := c.doRequest("json")
82359	if res != nil && res.StatusCode == http.StatusNotModified {
82360		if res.Body != nil {
82361			res.Body.Close()
82362		}
82363		return nil, &googleapi.Error{
82364			Code:   res.StatusCode,
82365			Header: res.Header,
82366		}
82367	}
82368	if err != nil {
82369		return nil, err
82370	}
82371	defer googleapi.CloseBody(res)
82372	if err := googleapi.CheckResponse(res); err != nil {
82373		return nil, err
82374	}
82375	ret := &InstanceGroupManagersListErrorsResponse{
82376		ServerResponse: googleapi.ServerResponse{
82377			Header:         res.Header,
82378			HTTPStatusCode: res.StatusCode,
82379		},
82380	}
82381	target := &ret
82382	if err := gensupport.DecodeResponse(target, res); err != nil {
82383		return nil, err
82384	}
82385	return ret, nil
82386	// {
82387	//   "description": "Lists all errors thrown by actions on instances for a given managed instance group. The filter and orderBy query parameters are not supported.",
82388	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors",
82389	//   "httpMethod": "GET",
82390	//   "id": "compute.instanceGroupManagers.listErrors",
82391	//   "parameterOrder": [
82392	//     "project",
82393	//     "zone",
82394	//     "instanceGroupManager"
82395	//   ],
82396	//   "parameters": {
82397	//     "filter": {
82398	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
82399	//       "location": "query",
82400	//       "type": "string"
82401	//     },
82402	//     "instanceGroupManager": {
82403	//       "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}.",
82404	//       "location": "path",
82405	//       "required": true,
82406	//       "type": "string"
82407	//     },
82408	//     "maxResults": {
82409	//       "default": "500",
82410	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
82411	//       "format": "uint32",
82412	//       "location": "query",
82413	//       "minimum": "0",
82414	//       "type": "integer"
82415	//     },
82416	//     "orderBy": {
82417	//       "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.",
82418	//       "location": "query",
82419	//       "type": "string"
82420	//     },
82421	//     "pageToken": {
82422	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
82423	//       "location": "query",
82424	//       "type": "string"
82425	//     },
82426	//     "project": {
82427	//       "description": "Project ID for this request.",
82428	//       "location": "path",
82429	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82430	//       "required": true,
82431	//       "type": "string"
82432	//     },
82433	//     "returnPartialSuccess": {
82434	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
82435	//       "location": "query",
82436	//       "type": "boolean"
82437	//     },
82438	//     "zone": {
82439	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
82440	//       "location": "path",
82441	//       "required": true,
82442	//       "type": "string"
82443	//     }
82444	//   },
82445	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors",
82446	//   "response": {
82447	//     "$ref": "InstanceGroupManagersListErrorsResponse"
82448	//   },
82449	//   "scopes": [
82450	//     "https://www.googleapis.com/auth/cloud-platform",
82451	//     "https://www.googleapis.com/auth/compute",
82452	//     "https://www.googleapis.com/auth/compute.readonly"
82453	//   ]
82454	// }
82455
82456}
82457
82458// Pages invokes f for each page of results.
82459// A non-nil error returned from f will halt the iteration.
82460// The provided context supersedes any context provided to the Context method.
82461func (c *InstanceGroupManagersListErrorsCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListErrorsResponse) error) error {
82462	c.ctx_ = ctx
82463	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
82464	for {
82465		x, err := c.Do()
82466		if err != nil {
82467			return err
82468		}
82469		if err := f(x); err != nil {
82470			return err
82471		}
82472		if x.NextPageToken == "" {
82473			return nil
82474		}
82475		c.PageToken(x.NextPageToken)
82476	}
82477}
82478
82479// method id "compute.instanceGroupManagers.listManagedInstances":
82480
82481type InstanceGroupManagersListManagedInstancesCall struct {
82482	s                    *Service
82483	project              string
82484	zone                 string
82485	instanceGroupManager string
82486	urlParams_           gensupport.URLParams
82487	ctx_                 context.Context
82488	header_              http.Header
82489}
82490
82491// ListManagedInstances: Lists all of the instances in the managed
82492// instance group. Each instance in the list has a currentAction, which
82493// indicates the action that the managed instance group is performing on
82494// the instance. For example, if the group is still creating an
82495// instance, the currentAction is CREATING. If a previous action failed,
82496// the list displays the errors for that failed action. The orderBy
82497// query parameter is not supported.
82498//
82499// - instanceGroupManager: The name of the managed instance group.
82500// - project: Project ID for this request.
82501// - zone: The name of the zone where the managed instance group is
82502//   located.
82503func (r *InstanceGroupManagersService) ListManagedInstances(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListManagedInstancesCall {
82504	c := &InstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82505	c.project = project
82506	c.zone = zone
82507	c.instanceGroupManager = instanceGroupManager
82508	return c
82509}
82510
82511// Filter sets the optional parameter "filter": A filter expression that
82512// filters resources listed in the response. The expression must specify
82513// the field name, a comparison operator, and the value that you want to
82514// use for filtering. The value must be a string, a number, or a
82515// boolean. The comparison operator must be either `=`, `!=`, `>`, or
82516// `<`. For example, if you are filtering Compute Engine instances, you
82517// can exclude instances named `example-instance` by specifying `name !=
82518// example-instance`. You can also filter nested fields. For example,
82519// you could specify `scheduling.automaticRestart = false` to include
82520// instances only if they are not scheduled for automatic restarts. You
82521// can use filtering on nested fields to filter based on resource
82522// labels. To filter on multiple expressions, provide each separate
82523// expression within parentheses. For example: ```
82524// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
82525// ``` By default, each expression is an `AND` expression. However, you
82526// can include `AND` and `OR` expressions explicitly. For example: ```
82527// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
82528// AND (scheduling.automaticRestart = true) ```
82529func (c *InstanceGroupManagersListManagedInstancesCall) Filter(filter string) *InstanceGroupManagersListManagedInstancesCall {
82530	c.urlParams_.Set("filter", filter)
82531	return c
82532}
82533
82534// MaxResults sets the optional parameter "maxResults": The maximum
82535// number of results per page that should be returned. If the number of
82536// available results is larger than `maxResults`, Compute Engine returns
82537// a `nextPageToken` that can be used to get the next page of results in
82538// subsequent list requests. Acceptable values are `0` to `500`,
82539// inclusive. (Default: `500`)
82540func (c *InstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *InstanceGroupManagersListManagedInstancesCall {
82541	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
82542	return c
82543}
82544
82545// OrderBy sets the optional parameter "orderBy": Sorts list results by
82546// a certain order. By default, results are returned in alphanumerical
82547// order based on the resource name. You can also sort results in
82548// descending order based on the creation timestamp using
82549// `orderBy="creationTimestamp desc". This sorts results based on the
82550// `creationTimestamp` field in reverse chronological order (newest
82551// result first). Use this to sort resources like operations so that the
82552// newest operation is returned first. Currently, only sorting by `name`
82553// or `creationTimestamp desc` is supported.
82554func (c *InstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *InstanceGroupManagersListManagedInstancesCall {
82555	c.urlParams_.Set("orderBy", orderBy)
82556	return c
82557}
82558
82559// PageToken sets the optional parameter "pageToken": Specifies a page
82560// token to use. Set `pageToken` to the `nextPageToken` returned by a
82561// previous list request to get the next page of results.
82562func (c *InstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *InstanceGroupManagersListManagedInstancesCall {
82563	c.urlParams_.Set("pageToken", pageToken)
82564	return c
82565}
82566
82567// ReturnPartialSuccess sets the optional parameter
82568// "returnPartialSuccess": Opt-in for partial success behavior which
82569// provides partial results in case of failure. The default value is
82570// false.
82571func (c *InstanceGroupManagersListManagedInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListManagedInstancesCall {
82572	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
82573	return c
82574}
82575
82576// Fields allows partial responses to be retrieved. See
82577// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82578// for more information.
82579func (c *InstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListManagedInstancesCall {
82580	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82581	return c
82582}
82583
82584// Context sets the context to be used in this call's Do method. Any
82585// pending HTTP request will be aborted if the provided context is
82586// canceled.
82587func (c *InstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *InstanceGroupManagersListManagedInstancesCall {
82588	c.ctx_ = ctx
82589	return c
82590}
82591
82592// Header returns an http.Header that can be modified by the caller to
82593// add HTTP headers to the request.
82594func (c *InstanceGroupManagersListManagedInstancesCall) Header() http.Header {
82595	if c.header_ == nil {
82596		c.header_ = make(http.Header)
82597	}
82598	return c.header_
82599}
82600
82601func (c *InstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) {
82602	reqHeaders := make(http.Header)
82603	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
82604	for k, v := range c.header_ {
82605		reqHeaders[k] = v
82606	}
82607	reqHeaders.Set("User-Agent", c.s.userAgent())
82608	var body io.Reader = nil
82609	c.urlParams_.Set("alt", alt)
82610	c.urlParams_.Set("prettyPrint", "false")
82611	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances")
82612	urls += "?" + c.urlParams_.Encode()
82613	req, err := http.NewRequest("POST", urls, body)
82614	if err != nil {
82615		return nil, err
82616	}
82617	req.Header = reqHeaders
82618	googleapi.Expand(req.URL, map[string]string{
82619		"project":              c.project,
82620		"zone":                 c.zone,
82621		"instanceGroupManager": c.instanceGroupManager,
82622	})
82623	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82624}
82625
82626// Do executes the "compute.instanceGroupManagers.listManagedInstances" call.
82627// Exactly one of *InstanceGroupManagersListManagedInstancesResponse or
82628// error will be non-nil. Any non-2xx status code is an error. Response
82629// headers are in either
82630// *InstanceGroupManagersListManagedInstancesResponse.ServerResponse.Head
82631// er or (if a response was returned at all) in
82632// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
82633// whether the returned error was because http.StatusNotModified was
82634// returned.
82635func (c *InstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListManagedInstancesResponse, error) {
82636	gensupport.SetOptions(c.urlParams_, opts...)
82637	res, err := c.doRequest("json")
82638	if res != nil && res.StatusCode == http.StatusNotModified {
82639		if res.Body != nil {
82640			res.Body.Close()
82641		}
82642		return nil, &googleapi.Error{
82643			Code:   res.StatusCode,
82644			Header: res.Header,
82645		}
82646	}
82647	if err != nil {
82648		return nil, err
82649	}
82650	defer googleapi.CloseBody(res)
82651	if err := googleapi.CheckResponse(res); err != nil {
82652		return nil, err
82653	}
82654	ret := &InstanceGroupManagersListManagedInstancesResponse{
82655		ServerResponse: googleapi.ServerResponse{
82656			Header:         res.Header,
82657			HTTPStatusCode: res.StatusCode,
82658		},
82659	}
82660	target := &ret
82661	if err := gensupport.DecodeResponse(target, res); err != nil {
82662		return nil, err
82663	}
82664	return ret, nil
82665	// {
82666	//   "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.",
82667	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
82668	//   "httpMethod": "POST",
82669	//   "id": "compute.instanceGroupManagers.listManagedInstances",
82670	//   "parameterOrder": [
82671	//     "project",
82672	//     "zone",
82673	//     "instanceGroupManager"
82674	//   ],
82675	//   "parameters": {
82676	//     "filter": {
82677	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
82678	//       "location": "query",
82679	//       "type": "string"
82680	//     },
82681	//     "instanceGroupManager": {
82682	//       "description": "The name of the managed instance group.",
82683	//       "location": "path",
82684	//       "required": true,
82685	//       "type": "string"
82686	//     },
82687	//     "maxResults": {
82688	//       "default": "500",
82689	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
82690	//       "format": "uint32",
82691	//       "location": "query",
82692	//       "minimum": "0",
82693	//       "type": "integer"
82694	//     },
82695	//     "orderBy": {
82696	//       "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.",
82697	//       "location": "query",
82698	//       "type": "string"
82699	//     },
82700	//     "pageToken": {
82701	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
82702	//       "location": "query",
82703	//       "type": "string"
82704	//     },
82705	//     "project": {
82706	//       "description": "Project ID for this request.",
82707	//       "location": "path",
82708	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82709	//       "required": true,
82710	//       "type": "string"
82711	//     },
82712	//     "returnPartialSuccess": {
82713	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
82714	//       "location": "query",
82715	//       "type": "boolean"
82716	//     },
82717	//     "zone": {
82718	//       "description": "The name of the zone where the managed instance group is located.",
82719	//       "location": "path",
82720	//       "required": true,
82721	//       "type": "string"
82722	//     }
82723	//   },
82724	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
82725	//   "response": {
82726	//     "$ref": "InstanceGroupManagersListManagedInstancesResponse"
82727	//   },
82728	//   "scopes": [
82729	//     "https://www.googleapis.com/auth/cloud-platform",
82730	//     "https://www.googleapis.com/auth/compute",
82731	//     "https://www.googleapis.com/auth/compute.readonly"
82732	//   ]
82733	// }
82734
82735}
82736
82737// Pages invokes f for each page of results.
82738// A non-nil error returned from f will halt the iteration.
82739// The provided context supersedes any context provided to the Context method.
82740func (c *InstanceGroupManagersListManagedInstancesCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListManagedInstancesResponse) error) error {
82741	c.ctx_ = ctx
82742	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
82743	for {
82744		x, err := c.Do()
82745		if err != nil {
82746			return err
82747		}
82748		if err := f(x); err != nil {
82749			return err
82750		}
82751		if x.NextPageToken == "" {
82752			return nil
82753		}
82754		c.PageToken(x.NextPageToken)
82755	}
82756}
82757
82758// method id "compute.instanceGroupManagers.listPerInstanceConfigs":
82759
82760type InstanceGroupManagersListPerInstanceConfigsCall struct {
82761	s                    *Service
82762	project              string
82763	zone                 string
82764	instanceGroupManager string
82765	urlParams_           gensupport.URLParams
82766	ctx_                 context.Context
82767	header_              http.Header
82768}
82769
82770// ListPerInstanceConfigs: Lists all of the per-instance configs defined
82771// for the managed instance group. The orderBy query parameter is not
82772// supported.
82773//
82774// - instanceGroupManager: The name of the managed instance group. It
82775//   should conform to RFC1035.
82776// - project: Project ID for this request.
82777// - zone: The name of the zone where the managed instance group is
82778//   located. It should conform to RFC1035.
82779func (r *InstanceGroupManagersService) ListPerInstanceConfigs(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListPerInstanceConfigsCall {
82780	c := &InstanceGroupManagersListPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82781	c.project = project
82782	c.zone = zone
82783	c.instanceGroupManager = instanceGroupManager
82784	return c
82785}
82786
82787// Filter sets the optional parameter "filter": A filter expression that
82788// filters resources listed in the response. The expression must specify
82789// the field name, a comparison operator, and the value that you want to
82790// use for filtering. The value must be a string, a number, or a
82791// boolean. The comparison operator must be either `=`, `!=`, `>`, or
82792// `<`. For example, if you are filtering Compute Engine instances, you
82793// can exclude instances named `example-instance` by specifying `name !=
82794// example-instance`. You can also filter nested fields. For example,
82795// you could specify `scheduling.automaticRestart = false` to include
82796// instances only if they are not scheduled for automatic restarts. You
82797// can use filtering on nested fields to filter based on resource
82798// labels. To filter on multiple expressions, provide each separate
82799// expression within parentheses. For example: ```
82800// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
82801// ``` By default, each expression is an `AND` expression. However, you
82802// can include `AND` and `OR` expressions explicitly. For example: ```
82803// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
82804// AND (scheduling.automaticRestart = true) ```
82805func (c *InstanceGroupManagersListPerInstanceConfigsCall) Filter(filter string) *InstanceGroupManagersListPerInstanceConfigsCall {
82806	c.urlParams_.Set("filter", filter)
82807	return c
82808}
82809
82810// MaxResults sets the optional parameter "maxResults": The maximum
82811// number of results per page that should be returned. If the number of
82812// available results is larger than `maxResults`, Compute Engine returns
82813// a `nextPageToken` that can be used to get the next page of results in
82814// subsequent list requests. Acceptable values are `0` to `500`,
82815// inclusive. (Default: `500`)
82816func (c *InstanceGroupManagersListPerInstanceConfigsCall) MaxResults(maxResults int64) *InstanceGroupManagersListPerInstanceConfigsCall {
82817	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
82818	return c
82819}
82820
82821// OrderBy sets the optional parameter "orderBy": Sorts list results by
82822// a certain order. By default, results are returned in alphanumerical
82823// order based on the resource name. You can also sort results in
82824// descending order based on the creation timestamp using
82825// `orderBy="creationTimestamp desc". This sorts results based on the
82826// `creationTimestamp` field in reverse chronological order (newest
82827// result first). Use this to sort resources like operations so that the
82828// newest operation is returned first. Currently, only sorting by `name`
82829// or `creationTimestamp desc` is supported.
82830func (c *InstanceGroupManagersListPerInstanceConfigsCall) OrderBy(orderBy string) *InstanceGroupManagersListPerInstanceConfigsCall {
82831	c.urlParams_.Set("orderBy", orderBy)
82832	return c
82833}
82834
82835// PageToken sets the optional parameter "pageToken": Specifies a page
82836// token to use. Set `pageToken` to the `nextPageToken` returned by a
82837// previous list request to get the next page of results.
82838func (c *InstanceGroupManagersListPerInstanceConfigsCall) PageToken(pageToken string) *InstanceGroupManagersListPerInstanceConfigsCall {
82839	c.urlParams_.Set("pageToken", pageToken)
82840	return c
82841}
82842
82843// ReturnPartialSuccess sets the optional parameter
82844// "returnPartialSuccess": Opt-in for partial success behavior which
82845// provides partial results in case of failure. The default value is
82846// false.
82847func (c *InstanceGroupManagersListPerInstanceConfigsCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListPerInstanceConfigsCall {
82848	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
82849	return c
82850}
82851
82852// Fields allows partial responses to be retrieved. See
82853// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82854// for more information.
82855func (c *InstanceGroupManagersListPerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListPerInstanceConfigsCall {
82856	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82857	return c
82858}
82859
82860// Context sets the context to be used in this call's Do method. Any
82861// pending HTTP request will be aborted if the provided context is
82862// canceled.
82863func (c *InstanceGroupManagersListPerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersListPerInstanceConfigsCall {
82864	c.ctx_ = ctx
82865	return c
82866}
82867
82868// Header returns an http.Header that can be modified by the caller to
82869// add HTTP headers to the request.
82870func (c *InstanceGroupManagersListPerInstanceConfigsCall) Header() http.Header {
82871	if c.header_ == nil {
82872		c.header_ = make(http.Header)
82873	}
82874	return c.header_
82875}
82876
82877func (c *InstanceGroupManagersListPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
82878	reqHeaders := make(http.Header)
82879	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
82880	for k, v := range c.header_ {
82881		reqHeaders[k] = v
82882	}
82883	reqHeaders.Set("User-Agent", c.s.userAgent())
82884	var body io.Reader = nil
82885	c.urlParams_.Set("alt", alt)
82886	c.urlParams_.Set("prettyPrint", "false")
82887	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs")
82888	urls += "?" + c.urlParams_.Encode()
82889	req, err := http.NewRequest("POST", urls, body)
82890	if err != nil {
82891		return nil, err
82892	}
82893	req.Header = reqHeaders
82894	googleapi.Expand(req.URL, map[string]string{
82895		"project":              c.project,
82896		"zone":                 c.zone,
82897		"instanceGroupManager": c.instanceGroupManager,
82898	})
82899	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82900}
82901
82902// Do executes the "compute.instanceGroupManagers.listPerInstanceConfigs" call.
82903// Exactly one of *InstanceGroupManagersListPerInstanceConfigsResp or
82904// error will be non-nil. Any non-2xx status code is an error. Response
82905// headers are in either
82906// *InstanceGroupManagersListPerInstanceConfigsResp.ServerResponse.Header
82907//  or (if a response was returned at all) in
82908// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
82909// whether the returned error was because http.StatusNotModified was
82910// returned.
82911func (c *InstanceGroupManagersListPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListPerInstanceConfigsResp, error) {
82912	gensupport.SetOptions(c.urlParams_, opts...)
82913	res, err := c.doRequest("json")
82914	if res != nil && res.StatusCode == http.StatusNotModified {
82915		if res.Body != nil {
82916			res.Body.Close()
82917		}
82918		return nil, &googleapi.Error{
82919			Code:   res.StatusCode,
82920			Header: res.Header,
82921		}
82922	}
82923	if err != nil {
82924		return nil, err
82925	}
82926	defer googleapi.CloseBody(res)
82927	if err := googleapi.CheckResponse(res); err != nil {
82928		return nil, err
82929	}
82930	ret := &InstanceGroupManagersListPerInstanceConfigsResp{
82931		ServerResponse: googleapi.ServerResponse{
82932			Header:         res.Header,
82933			HTTPStatusCode: res.StatusCode,
82934		},
82935	}
82936	target := &ret
82937	if err := gensupport.DecodeResponse(target, res); err != nil {
82938		return nil, err
82939	}
82940	return ret, nil
82941	// {
82942	//   "description": "Lists all of the per-instance configs defined for the managed instance group. The orderBy query parameter is not supported.",
82943	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs",
82944	//   "httpMethod": "POST",
82945	//   "id": "compute.instanceGroupManagers.listPerInstanceConfigs",
82946	//   "parameterOrder": [
82947	//     "project",
82948	//     "zone",
82949	//     "instanceGroupManager"
82950	//   ],
82951	//   "parameters": {
82952	//     "filter": {
82953	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
82954	//       "location": "query",
82955	//       "type": "string"
82956	//     },
82957	//     "instanceGroupManager": {
82958	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
82959	//       "location": "path",
82960	//       "required": true,
82961	//       "type": "string"
82962	//     },
82963	//     "maxResults": {
82964	//       "default": "500",
82965	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
82966	//       "format": "uint32",
82967	//       "location": "query",
82968	//       "minimum": "0",
82969	//       "type": "integer"
82970	//     },
82971	//     "orderBy": {
82972	//       "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.",
82973	//       "location": "query",
82974	//       "type": "string"
82975	//     },
82976	//     "pageToken": {
82977	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
82978	//       "location": "query",
82979	//       "type": "string"
82980	//     },
82981	//     "project": {
82982	//       "description": "Project ID for this request.",
82983	//       "location": "path",
82984	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82985	//       "required": true,
82986	//       "type": "string"
82987	//     },
82988	//     "returnPartialSuccess": {
82989	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
82990	//       "location": "query",
82991	//       "type": "boolean"
82992	//     },
82993	//     "zone": {
82994	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
82995	//       "location": "path",
82996	//       "required": true,
82997	//       "type": "string"
82998	//     }
82999	//   },
83000	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs",
83001	//   "response": {
83002	//     "$ref": "InstanceGroupManagersListPerInstanceConfigsResp"
83003	//   },
83004	//   "scopes": [
83005	//     "https://www.googleapis.com/auth/cloud-platform",
83006	//     "https://www.googleapis.com/auth/compute",
83007	//     "https://www.googleapis.com/auth/compute.readonly"
83008	//   ]
83009	// }
83010
83011}
83012
83013// Pages invokes f for each page of results.
83014// A non-nil error returned from f will halt the iteration.
83015// The provided context supersedes any context provided to the Context method.
83016func (c *InstanceGroupManagersListPerInstanceConfigsCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListPerInstanceConfigsResp) error) error {
83017	c.ctx_ = ctx
83018	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
83019	for {
83020		x, err := c.Do()
83021		if err != nil {
83022			return err
83023		}
83024		if err := f(x); err != nil {
83025			return err
83026		}
83027		if x.NextPageToken == "" {
83028			return nil
83029		}
83030		c.PageToken(x.NextPageToken)
83031	}
83032}
83033
83034// method id "compute.instanceGroupManagers.patch":
83035
83036type InstanceGroupManagersPatchCall struct {
83037	s                    *Service
83038	project              string
83039	zone                 string
83040	instanceGroupManager string
83041	instancegroupmanager *InstanceGroupManager
83042	urlParams_           gensupport.URLParams
83043	ctx_                 context.Context
83044	header_              http.Header
83045}
83046
83047// Patch: Updates a managed instance group using the information that
83048// you specify in the request. This operation is marked as DONE when the
83049// group is patched even if the instances in the group are still in the
83050// process of being patched. You must separately verify the status of
83051// the individual instances with the listManagedInstances method. This
83052// method supports PATCH semantics and uses the JSON merge patch format
83053// and processing rules. If you update your group to specify a new
83054// template or instance configuration, it's possible that your intended
83055// specification for each VM in the group is different from the current
83056// state of that VM. To learn how to apply an updated configuration to
83057// the VMs in a MIG, see Updating instances in a MIG.
83058//
83059// - instanceGroupManager: The name of the instance group manager.
83060// - project: Project ID for this request.
83061// - zone: The name of the zone where you want to create the managed
83062//   instance group.
83063func (r *InstanceGroupManagersService) Patch(project string, zone string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersPatchCall {
83064	c := &InstanceGroupManagersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83065	c.project = project
83066	c.zone = zone
83067	c.instanceGroupManager = instanceGroupManager
83068	c.instancegroupmanager = instancegroupmanager
83069	return c
83070}
83071
83072// RequestId sets the optional parameter "requestId": An optional
83073// request ID to identify requests. Specify a unique request ID so that
83074// if you must retry your request, the server will know to ignore the
83075// request if it has already been completed. For example, consider a
83076// situation where you make an initial request and the request times
83077// out. If you make the request again with the same request ID, the
83078// server can check if original operation with the same request ID was
83079// received, and if so, will ignore the second request. This prevents
83080// clients from accidentally creating duplicate commitments. The request
83081// ID must be a valid UUID with the exception that zero UUID is not
83082// supported ( 00000000-0000-0000-0000-000000000000).
83083func (c *InstanceGroupManagersPatchCall) RequestId(requestId string) *InstanceGroupManagersPatchCall {
83084	c.urlParams_.Set("requestId", requestId)
83085	return c
83086}
83087
83088// Fields allows partial responses to be retrieved. See
83089// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83090// for more information.
83091func (c *InstanceGroupManagersPatchCall) Fields(s ...googleapi.Field) *InstanceGroupManagersPatchCall {
83092	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83093	return c
83094}
83095
83096// Context sets the context to be used in this call's Do method. Any
83097// pending HTTP request will be aborted if the provided context is
83098// canceled.
83099func (c *InstanceGroupManagersPatchCall) Context(ctx context.Context) *InstanceGroupManagersPatchCall {
83100	c.ctx_ = ctx
83101	return c
83102}
83103
83104// Header returns an http.Header that can be modified by the caller to
83105// add HTTP headers to the request.
83106func (c *InstanceGroupManagersPatchCall) Header() http.Header {
83107	if c.header_ == nil {
83108		c.header_ = make(http.Header)
83109	}
83110	return c.header_
83111}
83112
83113func (c *InstanceGroupManagersPatchCall) doRequest(alt string) (*http.Response, error) {
83114	reqHeaders := make(http.Header)
83115	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
83116	for k, v := range c.header_ {
83117		reqHeaders[k] = v
83118	}
83119	reqHeaders.Set("User-Agent", c.s.userAgent())
83120	var body io.Reader = nil
83121	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
83122	if err != nil {
83123		return nil, err
83124	}
83125	reqHeaders.Set("Content-Type", "application/json")
83126	c.urlParams_.Set("alt", alt)
83127	c.urlParams_.Set("prettyPrint", "false")
83128	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
83129	urls += "?" + c.urlParams_.Encode()
83130	req, err := http.NewRequest("PATCH", urls, body)
83131	if err != nil {
83132		return nil, err
83133	}
83134	req.Header = reqHeaders
83135	googleapi.Expand(req.URL, map[string]string{
83136		"project":              c.project,
83137		"zone":                 c.zone,
83138		"instanceGroupManager": c.instanceGroupManager,
83139	})
83140	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83141}
83142
83143// Do executes the "compute.instanceGroupManagers.patch" call.
83144// Exactly one of *Operation or error will be non-nil. Any non-2xx
83145// status code is an error. Response headers are in either
83146// *Operation.ServerResponse.Header or (if a response was returned at
83147// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83148// to check whether the returned error was because
83149// http.StatusNotModified was returned.
83150func (c *InstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83151	gensupport.SetOptions(c.urlParams_, opts...)
83152	res, err := c.doRequest("json")
83153	if res != nil && res.StatusCode == http.StatusNotModified {
83154		if res.Body != nil {
83155			res.Body.Close()
83156		}
83157		return nil, &googleapi.Error{
83158			Code:   res.StatusCode,
83159			Header: res.Header,
83160		}
83161	}
83162	if err != nil {
83163		return nil, err
83164	}
83165	defer googleapi.CloseBody(res)
83166	if err := googleapi.CheckResponse(res); err != nil {
83167		return nil, err
83168	}
83169	ret := &Operation{
83170		ServerResponse: googleapi.ServerResponse{
83171			Header:         res.Header,
83172			HTTPStatusCode: res.StatusCode,
83173		},
83174	}
83175	target := &ret
83176	if err := gensupport.DecodeResponse(target, res); err != nil {
83177		return nil, err
83178	}
83179	return ret, nil
83180	// {
83181	//   "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. If you update your group to specify a new template or instance configuration, it's possible that your intended specification for each VM in the group is different from the current state of that VM. To learn how to apply an updated configuration to the VMs in a MIG, see Updating instances in a MIG.",
83182	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
83183	//   "httpMethod": "PATCH",
83184	//   "id": "compute.instanceGroupManagers.patch",
83185	//   "parameterOrder": [
83186	//     "project",
83187	//     "zone",
83188	//     "instanceGroupManager"
83189	//   ],
83190	//   "parameters": {
83191	//     "instanceGroupManager": {
83192	//       "description": "The name of the instance group manager.",
83193	//       "location": "path",
83194	//       "required": true,
83195	//       "type": "string"
83196	//     },
83197	//     "project": {
83198	//       "description": "Project ID for this request.",
83199	//       "location": "path",
83200	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83201	//       "required": true,
83202	//       "type": "string"
83203	//     },
83204	//     "requestId": {
83205	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
83206	//       "location": "query",
83207	//       "type": "string"
83208	//     },
83209	//     "zone": {
83210	//       "description": "The name of the zone where you want to create the managed instance group.",
83211	//       "location": "path",
83212	//       "required": true,
83213	//       "type": "string"
83214	//     }
83215	//   },
83216	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
83217	//   "request": {
83218	//     "$ref": "InstanceGroupManager"
83219	//   },
83220	//   "response": {
83221	//     "$ref": "Operation"
83222	//   },
83223	//   "scopes": [
83224	//     "https://www.googleapis.com/auth/cloud-platform",
83225	//     "https://www.googleapis.com/auth/compute"
83226	//   ]
83227	// }
83228
83229}
83230
83231// method id "compute.instanceGroupManagers.patchPerInstanceConfigs":
83232
83233type InstanceGroupManagersPatchPerInstanceConfigsCall struct {
83234	s                                               *Service
83235	project                                         string
83236	zone                                            string
83237	instanceGroupManager                            string
83238	instancegroupmanagerspatchperinstanceconfigsreq *InstanceGroupManagersPatchPerInstanceConfigsReq
83239	urlParams_                                      gensupport.URLParams
83240	ctx_                                            context.Context
83241	header_                                         http.Header
83242}
83243
83244// PatchPerInstanceConfigs: Inserts or patches per-instance configs for
83245// the managed instance group. perInstanceConfig.name serves as a key
83246// used to distinguish whether to perform insert or patch.
83247//
83248// - instanceGroupManager: The name of the managed instance group. It
83249//   should conform to RFC1035.
83250// - project: Project ID for this request.
83251// - zone: The name of the zone where the managed instance group is
83252//   located. It should conform to RFC1035.
83253func (r *InstanceGroupManagersService) PatchPerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagerspatchperinstanceconfigsreq *InstanceGroupManagersPatchPerInstanceConfigsReq) *InstanceGroupManagersPatchPerInstanceConfigsCall {
83254	c := &InstanceGroupManagersPatchPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83255	c.project = project
83256	c.zone = zone
83257	c.instanceGroupManager = instanceGroupManager
83258	c.instancegroupmanagerspatchperinstanceconfigsreq = instancegroupmanagerspatchperinstanceconfigsreq
83259	return c
83260}
83261
83262// RequestId sets the optional parameter "requestId": An optional
83263// request ID to identify requests. Specify a unique request ID so that
83264// if you must retry your request, the server will know to ignore the
83265// request if it has already been completed. For example, consider a
83266// situation where you make an initial request and the request times
83267// out. If you make the request again with the same request ID, the
83268// server can check if original operation with the same request ID was
83269// received, and if so, will ignore the second request. This prevents
83270// clients from accidentally creating duplicate commitments. The request
83271// ID must be a valid UUID with the exception that zero UUID is not
83272// supported ( 00000000-0000-0000-0000-000000000000).
83273func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) RequestId(requestId string) *InstanceGroupManagersPatchPerInstanceConfigsCall {
83274	c.urlParams_.Set("requestId", requestId)
83275	return c
83276}
83277
83278// Fields allows partial responses to be retrieved. See
83279// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83280// for more information.
83281func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersPatchPerInstanceConfigsCall {
83282	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83283	return c
83284}
83285
83286// Context sets the context to be used in this call's Do method. Any
83287// pending HTTP request will be aborted if the provided context is
83288// canceled.
83289func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersPatchPerInstanceConfigsCall {
83290	c.ctx_ = ctx
83291	return c
83292}
83293
83294// Header returns an http.Header that can be modified by the caller to
83295// add HTTP headers to the request.
83296func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Header() http.Header {
83297	if c.header_ == nil {
83298		c.header_ = make(http.Header)
83299	}
83300	return c.header_
83301}
83302
83303func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
83304	reqHeaders := make(http.Header)
83305	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
83306	for k, v := range c.header_ {
83307		reqHeaders[k] = v
83308	}
83309	reqHeaders.Set("User-Agent", c.s.userAgent())
83310	var body io.Reader = nil
83311	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerspatchperinstanceconfigsreq)
83312	if err != nil {
83313		return nil, err
83314	}
83315	reqHeaders.Set("Content-Type", "application/json")
83316	c.urlParams_.Set("alt", alt)
83317	c.urlParams_.Set("prettyPrint", "false")
83318	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs")
83319	urls += "?" + c.urlParams_.Encode()
83320	req, err := http.NewRequest("POST", urls, body)
83321	if err != nil {
83322		return nil, err
83323	}
83324	req.Header = reqHeaders
83325	googleapi.Expand(req.URL, map[string]string{
83326		"project":              c.project,
83327		"zone":                 c.zone,
83328		"instanceGroupManager": c.instanceGroupManager,
83329	})
83330	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83331}
83332
83333// Do executes the "compute.instanceGroupManagers.patchPerInstanceConfigs" call.
83334// Exactly one of *Operation or error will be non-nil. Any non-2xx
83335// status code is an error. Response headers are in either
83336// *Operation.ServerResponse.Header or (if a response was returned at
83337// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83338// to check whether the returned error was because
83339// http.StatusNotModified was returned.
83340func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83341	gensupport.SetOptions(c.urlParams_, opts...)
83342	res, err := c.doRequest("json")
83343	if res != nil && res.StatusCode == http.StatusNotModified {
83344		if res.Body != nil {
83345			res.Body.Close()
83346		}
83347		return nil, &googleapi.Error{
83348			Code:   res.StatusCode,
83349			Header: res.Header,
83350		}
83351	}
83352	if err != nil {
83353		return nil, err
83354	}
83355	defer googleapi.CloseBody(res)
83356	if err := googleapi.CheckResponse(res); err != nil {
83357		return nil, err
83358	}
83359	ret := &Operation{
83360		ServerResponse: googleapi.ServerResponse{
83361			Header:         res.Header,
83362			HTTPStatusCode: res.StatusCode,
83363		},
83364	}
83365	target := &ret
83366	if err := gensupport.DecodeResponse(target, res); err != nil {
83367		return nil, err
83368	}
83369	return ret, nil
83370	// {
83371	//   "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.",
83372	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs",
83373	//   "httpMethod": "POST",
83374	//   "id": "compute.instanceGroupManagers.patchPerInstanceConfigs",
83375	//   "parameterOrder": [
83376	//     "project",
83377	//     "zone",
83378	//     "instanceGroupManager"
83379	//   ],
83380	//   "parameters": {
83381	//     "instanceGroupManager": {
83382	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
83383	//       "location": "path",
83384	//       "required": true,
83385	//       "type": "string"
83386	//     },
83387	//     "project": {
83388	//       "description": "Project ID for this request.",
83389	//       "location": "path",
83390	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83391	//       "required": true,
83392	//       "type": "string"
83393	//     },
83394	//     "requestId": {
83395	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
83396	//       "location": "query",
83397	//       "type": "string"
83398	//     },
83399	//     "zone": {
83400	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
83401	//       "location": "path",
83402	//       "required": true,
83403	//       "type": "string"
83404	//     }
83405	//   },
83406	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs",
83407	//   "request": {
83408	//     "$ref": "InstanceGroupManagersPatchPerInstanceConfigsReq"
83409	//   },
83410	//   "response": {
83411	//     "$ref": "Operation"
83412	//   },
83413	//   "scopes": [
83414	//     "https://www.googleapis.com/auth/cloud-platform",
83415	//     "https://www.googleapis.com/auth/compute"
83416	//   ]
83417	// }
83418
83419}
83420
83421// method id "compute.instanceGroupManagers.recreateInstances":
83422
83423type InstanceGroupManagersRecreateInstancesCall struct {
83424	s                                             *Service
83425	project                                       string
83426	zone                                          string
83427	instanceGroupManager                          string
83428	instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest
83429	urlParams_                                    gensupport.URLParams
83430	ctx_                                          context.Context
83431	header_                                       http.Header
83432}
83433
83434// RecreateInstances: Flags the specified VM instances in the managed
83435// instance group to be immediately recreated. Each instance is
83436// recreated using the group's current configuration. This operation is
83437// marked as DONE when the flag is set even if the instances have not
83438// yet been recreated. You must separately verify the status of each
83439// instance by checking its currentAction field; for more information,
83440// see Checking the status of managed instances. If the group is part of
83441// a backend service that has enabled connection draining, it can take
83442// up to 60 seconds after the connection draining duration has elapsed
83443// before the VM instance is removed or deleted. You can specify a
83444// maximum of 1000 instances with this method per request.
83445//
83446// - instanceGroupManager: The name of the managed instance group.
83447// - project: Project ID for this request.
83448// - zone: The name of the zone where the managed instance group is
83449//   located.
83450func (r *InstanceGroupManagersService) RecreateInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest) *InstanceGroupManagersRecreateInstancesCall {
83451	c := &InstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83452	c.project = project
83453	c.zone = zone
83454	c.instanceGroupManager = instanceGroupManager
83455	c.instancegroupmanagersrecreateinstancesrequest = instancegroupmanagersrecreateinstancesrequest
83456	return c
83457}
83458
83459// RequestId sets the optional parameter "requestId": An optional
83460// request ID to identify requests. Specify a unique request ID so that
83461// if you must retry your request, the server will know to ignore the
83462// request if it has already been completed. For example, consider a
83463// situation where you make an initial request and the request times
83464// out. If you make the request again with the same request ID, the
83465// server can check if original operation with the same request ID was
83466// received, and if so, will ignore the second request. This prevents
83467// clients from accidentally creating duplicate commitments. The request
83468// ID must be a valid UUID with the exception that zero UUID is not
83469// supported ( 00000000-0000-0000-0000-000000000000).
83470func (c *InstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *InstanceGroupManagersRecreateInstancesCall {
83471	c.urlParams_.Set("requestId", requestId)
83472	return c
83473}
83474
83475// Fields allows partial responses to be retrieved. See
83476// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83477// for more information.
83478func (c *InstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersRecreateInstancesCall {
83479	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83480	return c
83481}
83482
83483// Context sets the context to be used in this call's Do method. Any
83484// pending HTTP request will be aborted if the provided context is
83485// canceled.
83486func (c *InstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *InstanceGroupManagersRecreateInstancesCall {
83487	c.ctx_ = ctx
83488	return c
83489}
83490
83491// Header returns an http.Header that can be modified by the caller to
83492// add HTTP headers to the request.
83493func (c *InstanceGroupManagersRecreateInstancesCall) Header() http.Header {
83494	if c.header_ == nil {
83495		c.header_ = make(http.Header)
83496	}
83497	return c.header_
83498}
83499
83500func (c *InstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) {
83501	reqHeaders := make(http.Header)
83502	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
83503	for k, v := range c.header_ {
83504		reqHeaders[k] = v
83505	}
83506	reqHeaders.Set("User-Agent", c.s.userAgent())
83507	var body io.Reader = nil
83508	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersrecreateinstancesrequest)
83509	if err != nil {
83510		return nil, err
83511	}
83512	reqHeaders.Set("Content-Type", "application/json")
83513	c.urlParams_.Set("alt", alt)
83514	c.urlParams_.Set("prettyPrint", "false")
83515	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances")
83516	urls += "?" + c.urlParams_.Encode()
83517	req, err := http.NewRequest("POST", urls, body)
83518	if err != nil {
83519		return nil, err
83520	}
83521	req.Header = reqHeaders
83522	googleapi.Expand(req.URL, map[string]string{
83523		"project":              c.project,
83524		"zone":                 c.zone,
83525		"instanceGroupManager": c.instanceGroupManager,
83526	})
83527	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83528}
83529
83530// Do executes the "compute.instanceGroupManagers.recreateInstances" call.
83531// Exactly one of *Operation or error will be non-nil. Any non-2xx
83532// status code is an error. Response headers are in either
83533// *Operation.ServerResponse.Header or (if a response was returned at
83534// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83535// to check whether the returned error was because
83536// http.StatusNotModified was returned.
83537func (c *InstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83538	gensupport.SetOptions(c.urlParams_, opts...)
83539	res, err := c.doRequest("json")
83540	if res != nil && res.StatusCode == http.StatusNotModified {
83541		if res.Body != nil {
83542			res.Body.Close()
83543		}
83544		return nil, &googleapi.Error{
83545			Code:   res.StatusCode,
83546			Header: res.Header,
83547		}
83548	}
83549	if err != nil {
83550		return nil, err
83551	}
83552	defer googleapi.CloseBody(res)
83553	if err := googleapi.CheckResponse(res); err != nil {
83554		return nil, err
83555	}
83556	ret := &Operation{
83557		ServerResponse: googleapi.ServerResponse{
83558			Header:         res.Header,
83559			HTTPStatusCode: res.StatusCode,
83560		},
83561	}
83562	target := &ret
83563	if err := gensupport.DecodeResponse(target, res); err != nil {
83564		return nil, err
83565	}
83566	return ret, nil
83567	// {
83568	//   "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.",
83569	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
83570	//   "httpMethod": "POST",
83571	//   "id": "compute.instanceGroupManagers.recreateInstances",
83572	//   "parameterOrder": [
83573	//     "project",
83574	//     "zone",
83575	//     "instanceGroupManager"
83576	//   ],
83577	//   "parameters": {
83578	//     "instanceGroupManager": {
83579	//       "description": "The name of the managed instance group.",
83580	//       "location": "path",
83581	//       "required": true,
83582	//       "type": "string"
83583	//     },
83584	//     "project": {
83585	//       "description": "Project ID for this request.",
83586	//       "location": "path",
83587	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83588	//       "required": true,
83589	//       "type": "string"
83590	//     },
83591	//     "requestId": {
83592	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
83593	//       "location": "query",
83594	//       "type": "string"
83595	//     },
83596	//     "zone": {
83597	//       "description": "The name of the zone where the managed instance group is located.",
83598	//       "location": "path",
83599	//       "required": true,
83600	//       "type": "string"
83601	//     }
83602	//   },
83603	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
83604	//   "request": {
83605	//     "$ref": "InstanceGroupManagersRecreateInstancesRequest"
83606	//   },
83607	//   "response": {
83608	//     "$ref": "Operation"
83609	//   },
83610	//   "scopes": [
83611	//     "https://www.googleapis.com/auth/cloud-platform",
83612	//     "https://www.googleapis.com/auth/compute"
83613	//   ]
83614	// }
83615
83616}
83617
83618// method id "compute.instanceGroupManagers.resize":
83619
83620type InstanceGroupManagersResizeCall struct {
83621	s                    *Service
83622	project              string
83623	zone                 string
83624	instanceGroupManager string
83625	urlParams_           gensupport.URLParams
83626	ctx_                 context.Context
83627	header_              http.Header
83628}
83629
83630// Resize: Resizes the managed instance group. If you increase the size,
83631// the group creates new instances using the current instance template.
83632// If you decrease the size, the group deletes instances. The resize
83633// operation is marked DONE when the resize actions are scheduled even
83634// if the group has not yet added or deleted any instances. You must
83635// separately verify the status of the creating or deleting actions with
83636// the listmanagedinstances method. When resizing down, the instance
83637// group arbitrarily chooses the order in which VMs are deleted. The
83638// group takes into account some VM attributes when making the selection
83639// including: + The status of the VM instance. + The health of the VM
83640// instance. + The instance template version the VM is based on. + For
83641// regional managed instance groups, the location of the VM instance.
83642// This list is subject to change. If the group is part of a backend
83643// service that has enabled connection draining, it can take up to 60
83644// seconds after the connection draining duration has elapsed before the
83645// VM instance is removed or deleted.
83646//
83647// - instanceGroupManager: The name of the managed instance group.
83648// - project: Project ID for this request.
83649// - size: The number of running instances that the managed instance
83650//   group should maintain at any given time. The group automatically
83651//   adds or removes instances to maintain the number of instances
83652//   specified by this parameter.
83653// - zone: The name of the zone where the managed instance group is
83654//   located.
83655func (r *InstanceGroupManagersService) Resize(project string, zone string, instanceGroupManager string, size int64) *InstanceGroupManagersResizeCall {
83656	c := &InstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83657	c.project = project
83658	c.zone = zone
83659	c.instanceGroupManager = instanceGroupManager
83660	c.urlParams_.Set("size", fmt.Sprint(size))
83661	return c
83662}
83663
83664// RequestId sets the optional parameter "requestId": An optional
83665// request ID to identify requests. Specify a unique request ID so that
83666// if you must retry your request, the server will know to ignore the
83667// request if it has already been completed. For example, consider a
83668// situation where you make an initial request and the request times
83669// out. If you make the request again with the same request ID, the
83670// server can check if original operation with the same request ID was
83671// received, and if so, will ignore the second request. This prevents
83672// clients from accidentally creating duplicate commitments. The request
83673// ID must be a valid UUID with the exception that zero UUID is not
83674// supported ( 00000000-0000-0000-0000-000000000000).
83675func (c *InstanceGroupManagersResizeCall) RequestId(requestId string) *InstanceGroupManagersResizeCall {
83676	c.urlParams_.Set("requestId", requestId)
83677	return c
83678}
83679
83680// Fields allows partial responses to be retrieved. See
83681// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83682// for more information.
83683func (c *InstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *InstanceGroupManagersResizeCall {
83684	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83685	return c
83686}
83687
83688// Context sets the context to be used in this call's Do method. Any
83689// pending HTTP request will be aborted if the provided context is
83690// canceled.
83691func (c *InstanceGroupManagersResizeCall) Context(ctx context.Context) *InstanceGroupManagersResizeCall {
83692	c.ctx_ = ctx
83693	return c
83694}
83695
83696// Header returns an http.Header that can be modified by the caller to
83697// add HTTP headers to the request.
83698func (c *InstanceGroupManagersResizeCall) Header() http.Header {
83699	if c.header_ == nil {
83700		c.header_ = make(http.Header)
83701	}
83702	return c.header_
83703}
83704
83705func (c *InstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) {
83706	reqHeaders := make(http.Header)
83707	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
83708	for k, v := range c.header_ {
83709		reqHeaders[k] = v
83710	}
83711	reqHeaders.Set("User-Agent", c.s.userAgent())
83712	var body io.Reader = nil
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}/resize")
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.resize" 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 *InstanceGroupManagersResizeCall) 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": "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.",
83769	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize",
83770	//   "httpMethod": "POST",
83771	//   "id": "compute.instanceGroupManagers.resize",
83772	//   "parameterOrder": [
83773	//     "project",
83774	//     "zone",
83775	//     "instanceGroupManager",
83776	//     "size"
83777	//   ],
83778	//   "parameters": {
83779	//     "instanceGroupManager": {
83780	//       "description": "The name of the managed instance group.",
83781	//       "location": "path",
83782	//       "required": true,
83783	//       "type": "string"
83784	//     },
83785	//     "project": {
83786	//       "description": "Project ID for this request.",
83787	//       "location": "path",
83788	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83789	//       "required": true,
83790	//       "type": "string"
83791	//     },
83792	//     "requestId": {
83793	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
83794	//       "location": "query",
83795	//       "type": "string"
83796	//     },
83797	//     "size": {
83798	//       "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.",
83799	//       "format": "int32",
83800	//       "location": "query",
83801	//       "required": true,
83802	//       "type": "integer"
83803	//     },
83804	//     "zone": {
83805	//       "description": "The name of the zone where the managed instance group is located.",
83806	//       "location": "path",
83807	//       "required": true,
83808	//       "type": "string"
83809	//     }
83810	//   },
83811	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize",
83812	//   "response": {
83813	//     "$ref": "Operation"
83814	//   },
83815	//   "scopes": [
83816	//     "https://www.googleapis.com/auth/cloud-platform",
83817	//     "https://www.googleapis.com/auth/compute"
83818	//   ]
83819	// }
83820
83821}
83822
83823// method id "compute.instanceGroupManagers.setInstanceTemplate":
83824
83825type InstanceGroupManagersSetInstanceTemplateCall struct {
83826	s                                               *Service
83827	project                                         string
83828	zone                                            string
83829	instanceGroupManager                            string
83830	instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest
83831	urlParams_                                      gensupport.URLParams
83832	ctx_                                            context.Context
83833	header_                                         http.Header
83834}
83835
83836// SetInstanceTemplate: Specifies the instance template to use when
83837// creating new instances in this group. The templates for existing
83838// instances in the group do not change unless you run
83839// recreateInstances, run applyUpdatesToInstances, or set the group's
83840// updatePolicy.type to PROACTIVE.
83841//
83842// - instanceGroupManager: The name of the managed instance group.
83843// - project: Project ID for this request.
83844// - zone: The name of the zone where the managed instance group is
83845//   located.
83846func (r *InstanceGroupManagersService) SetInstanceTemplate(project string, zone string, instanceGroupManager string, instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest) *InstanceGroupManagersSetInstanceTemplateCall {
83847	c := &InstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83848	c.project = project
83849	c.zone = zone
83850	c.instanceGroupManager = instanceGroupManager
83851	c.instancegroupmanagerssetinstancetemplaterequest = instancegroupmanagerssetinstancetemplaterequest
83852	return c
83853}
83854
83855// RequestId sets the optional parameter "requestId": An optional
83856// request ID to identify requests. Specify a unique request ID so that
83857// if you must retry your request, the server will know to ignore the
83858// request if it has already been completed. For example, consider a
83859// situation where you make an initial request and the request times
83860// out. If you make the request again with the same request ID, the
83861// server can check if original operation with the same request ID was
83862// received, and if so, will ignore the second request. This prevents
83863// clients from accidentally creating duplicate commitments. The request
83864// ID must be a valid UUID with the exception that zero UUID is not
83865// supported ( 00000000-0000-0000-0000-000000000000).
83866func (c *InstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *InstanceGroupManagersSetInstanceTemplateCall {
83867	c.urlParams_.Set("requestId", requestId)
83868	return c
83869}
83870
83871// Fields allows partial responses to be retrieved. See
83872// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83873// for more information.
83874func (c *InstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetInstanceTemplateCall {
83875	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83876	return c
83877}
83878
83879// Context sets the context to be used in this call's Do method. Any
83880// pending HTTP request will be aborted if the provided context is
83881// canceled.
83882func (c *InstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *InstanceGroupManagersSetInstanceTemplateCall {
83883	c.ctx_ = ctx
83884	return c
83885}
83886
83887// Header returns an http.Header that can be modified by the caller to
83888// add HTTP headers to the request.
83889func (c *InstanceGroupManagersSetInstanceTemplateCall) Header() http.Header {
83890	if c.header_ == nil {
83891		c.header_ = make(http.Header)
83892	}
83893	return c.header_
83894}
83895
83896func (c *InstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) {
83897	reqHeaders := make(http.Header)
83898	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
83899	for k, v := range c.header_ {
83900		reqHeaders[k] = v
83901	}
83902	reqHeaders.Set("User-Agent", c.s.userAgent())
83903	var body io.Reader = nil
83904	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssetinstancetemplaterequest)
83905	if err != nil {
83906		return nil, err
83907	}
83908	reqHeaders.Set("Content-Type", "application/json")
83909	c.urlParams_.Set("alt", alt)
83910	c.urlParams_.Set("prettyPrint", "false")
83911	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate")
83912	urls += "?" + c.urlParams_.Encode()
83913	req, err := http.NewRequest("POST", urls, body)
83914	if err != nil {
83915		return nil, err
83916	}
83917	req.Header = reqHeaders
83918	googleapi.Expand(req.URL, map[string]string{
83919		"project":              c.project,
83920		"zone":                 c.zone,
83921		"instanceGroupManager": c.instanceGroupManager,
83922	})
83923	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83924}
83925
83926// Do executes the "compute.instanceGroupManagers.setInstanceTemplate" call.
83927// Exactly one of *Operation or error will be non-nil. Any non-2xx
83928// status code is an error. Response headers are in either
83929// *Operation.ServerResponse.Header or (if a response was returned at
83930// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83931// to check whether the returned error was because
83932// http.StatusNotModified was returned.
83933func (c *InstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83934	gensupport.SetOptions(c.urlParams_, opts...)
83935	res, err := c.doRequest("json")
83936	if res != nil && res.StatusCode == http.StatusNotModified {
83937		if res.Body != nil {
83938			res.Body.Close()
83939		}
83940		return nil, &googleapi.Error{
83941			Code:   res.StatusCode,
83942			Header: res.Header,
83943		}
83944	}
83945	if err != nil {
83946		return nil, err
83947	}
83948	defer googleapi.CloseBody(res)
83949	if err := googleapi.CheckResponse(res); err != nil {
83950		return nil, err
83951	}
83952	ret := &Operation{
83953		ServerResponse: googleapi.ServerResponse{
83954			Header:         res.Header,
83955			HTTPStatusCode: res.StatusCode,
83956		},
83957	}
83958	target := &ret
83959	if err := gensupport.DecodeResponse(target, res); err != nil {
83960		return nil, err
83961	}
83962	return ret, nil
83963	// {
83964	//   "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.",
83965	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
83966	//   "httpMethod": "POST",
83967	//   "id": "compute.instanceGroupManagers.setInstanceTemplate",
83968	//   "parameterOrder": [
83969	//     "project",
83970	//     "zone",
83971	//     "instanceGroupManager"
83972	//   ],
83973	//   "parameters": {
83974	//     "instanceGroupManager": {
83975	//       "description": "The name of the managed instance group.",
83976	//       "location": "path",
83977	//       "required": true,
83978	//       "type": "string"
83979	//     },
83980	//     "project": {
83981	//       "description": "Project ID for this request.",
83982	//       "location": "path",
83983	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83984	//       "required": true,
83985	//       "type": "string"
83986	//     },
83987	//     "requestId": {
83988	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
83989	//       "location": "query",
83990	//       "type": "string"
83991	//     },
83992	//     "zone": {
83993	//       "description": "The name of the zone where the managed instance group is located.",
83994	//       "location": "path",
83995	//       "required": true,
83996	//       "type": "string"
83997	//     }
83998	//   },
83999	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
84000	//   "request": {
84001	//     "$ref": "InstanceGroupManagersSetInstanceTemplateRequest"
84002	//   },
84003	//   "response": {
84004	//     "$ref": "Operation"
84005	//   },
84006	//   "scopes": [
84007	//     "https://www.googleapis.com/auth/cloud-platform",
84008	//     "https://www.googleapis.com/auth/compute"
84009	//   ]
84010	// }
84011
84012}
84013
84014// method id "compute.instanceGroupManagers.setTargetPools":
84015
84016type InstanceGroupManagersSetTargetPoolsCall struct {
84017	s                                          *Service
84018	project                                    string
84019	zone                                       string
84020	instanceGroupManager                       string
84021	instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest
84022	urlParams_                                 gensupport.URLParams
84023	ctx_                                       context.Context
84024	header_                                    http.Header
84025}
84026
84027// SetTargetPools: Modifies the target pools to which all instances in
84028// this managed instance group are assigned. The target pools
84029// automatically apply to all of the instances in the managed instance
84030// group. This operation is marked DONE when you make the request even
84031// if the instances have not yet been added to their target pools. The
84032// change might take some time to apply to all of the instances in the
84033// group depending on the size of the group.
84034//
84035// - instanceGroupManager: The name of the managed instance group.
84036// - project: Project ID for this request.
84037// - zone: The name of the zone where the managed instance group is
84038//   located.
84039func (r *InstanceGroupManagersService) SetTargetPools(project string, zone string, instanceGroupManager string, instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest) *InstanceGroupManagersSetTargetPoolsCall {
84040	c := &InstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84041	c.project = project
84042	c.zone = zone
84043	c.instanceGroupManager = instanceGroupManager
84044	c.instancegroupmanagerssettargetpoolsrequest = instancegroupmanagerssettargetpoolsrequest
84045	return c
84046}
84047
84048// RequestId sets the optional parameter "requestId": An optional
84049// request ID to identify requests. Specify a unique request ID so that
84050// if you must retry your request, the server will know to ignore the
84051// request if it has already been completed. For example, consider a
84052// situation where you make an initial request and the request times
84053// out. If you make the request again with the same request ID, the
84054// server can check if original operation with the same request ID was
84055// received, and if so, will ignore the second request. This prevents
84056// clients from accidentally creating duplicate commitments. The request
84057// ID must be a valid UUID with the exception that zero UUID is not
84058// supported ( 00000000-0000-0000-0000-000000000000).
84059func (c *InstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *InstanceGroupManagersSetTargetPoolsCall {
84060	c.urlParams_.Set("requestId", requestId)
84061	return c
84062}
84063
84064// Fields allows partial responses to be retrieved. See
84065// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84066// for more information.
84067func (c *InstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetTargetPoolsCall {
84068	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84069	return c
84070}
84071
84072// Context sets the context to be used in this call's Do method. Any
84073// pending HTTP request will be aborted if the provided context is
84074// canceled.
84075func (c *InstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *InstanceGroupManagersSetTargetPoolsCall {
84076	c.ctx_ = ctx
84077	return c
84078}
84079
84080// Header returns an http.Header that can be modified by the caller to
84081// add HTTP headers to the request.
84082func (c *InstanceGroupManagersSetTargetPoolsCall) Header() http.Header {
84083	if c.header_ == nil {
84084		c.header_ = make(http.Header)
84085	}
84086	return c.header_
84087}
84088
84089func (c *InstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) {
84090	reqHeaders := make(http.Header)
84091	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
84092	for k, v := range c.header_ {
84093		reqHeaders[k] = v
84094	}
84095	reqHeaders.Set("User-Agent", c.s.userAgent())
84096	var body io.Reader = nil
84097	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssettargetpoolsrequest)
84098	if err != nil {
84099		return nil, err
84100	}
84101	reqHeaders.Set("Content-Type", "application/json")
84102	c.urlParams_.Set("alt", alt)
84103	c.urlParams_.Set("prettyPrint", "false")
84104	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools")
84105	urls += "?" + c.urlParams_.Encode()
84106	req, err := http.NewRequest("POST", urls, body)
84107	if err != nil {
84108		return nil, err
84109	}
84110	req.Header = reqHeaders
84111	googleapi.Expand(req.URL, map[string]string{
84112		"project":              c.project,
84113		"zone":                 c.zone,
84114		"instanceGroupManager": c.instanceGroupManager,
84115	})
84116	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84117}
84118
84119// Do executes the "compute.instanceGroupManagers.setTargetPools" call.
84120// Exactly one of *Operation or error will be non-nil. Any non-2xx
84121// status code is an error. Response headers are in either
84122// *Operation.ServerResponse.Header or (if a response was returned at
84123// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84124// to check whether the returned error was because
84125// http.StatusNotModified was returned.
84126func (c *InstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84127	gensupport.SetOptions(c.urlParams_, opts...)
84128	res, err := c.doRequest("json")
84129	if res != nil && res.StatusCode == http.StatusNotModified {
84130		if res.Body != nil {
84131			res.Body.Close()
84132		}
84133		return nil, &googleapi.Error{
84134			Code:   res.StatusCode,
84135			Header: res.Header,
84136		}
84137	}
84138	if err != nil {
84139		return nil, err
84140	}
84141	defer googleapi.CloseBody(res)
84142	if err := googleapi.CheckResponse(res); err != nil {
84143		return nil, err
84144	}
84145	ret := &Operation{
84146		ServerResponse: googleapi.ServerResponse{
84147			Header:         res.Header,
84148			HTTPStatusCode: res.StatusCode,
84149		},
84150	}
84151	target := &ret
84152	if err := gensupport.DecodeResponse(target, res); err != nil {
84153		return nil, err
84154	}
84155	return ret, nil
84156	// {
84157	//   "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.",
84158	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
84159	//   "httpMethod": "POST",
84160	//   "id": "compute.instanceGroupManagers.setTargetPools",
84161	//   "parameterOrder": [
84162	//     "project",
84163	//     "zone",
84164	//     "instanceGroupManager"
84165	//   ],
84166	//   "parameters": {
84167	//     "instanceGroupManager": {
84168	//       "description": "The name of the managed instance group.",
84169	//       "location": "path",
84170	//       "required": true,
84171	//       "type": "string"
84172	//     },
84173	//     "project": {
84174	//       "description": "Project ID for this request.",
84175	//       "location": "path",
84176	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84177	//       "required": true,
84178	//       "type": "string"
84179	//     },
84180	//     "requestId": {
84181	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
84182	//       "location": "query",
84183	//       "type": "string"
84184	//     },
84185	//     "zone": {
84186	//       "description": "The name of the zone where the managed instance group is located.",
84187	//       "location": "path",
84188	//       "required": true,
84189	//       "type": "string"
84190	//     }
84191	//   },
84192	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
84193	//   "request": {
84194	//     "$ref": "InstanceGroupManagersSetTargetPoolsRequest"
84195	//   },
84196	//   "response": {
84197	//     "$ref": "Operation"
84198	//   },
84199	//   "scopes": [
84200	//     "https://www.googleapis.com/auth/cloud-platform",
84201	//     "https://www.googleapis.com/auth/compute"
84202	//   ]
84203	// }
84204
84205}
84206
84207// method id "compute.instanceGroupManagers.updatePerInstanceConfigs":
84208
84209type InstanceGroupManagersUpdatePerInstanceConfigsCall struct {
84210	s                                                *Service
84211	project                                          string
84212	zone                                             string
84213	instanceGroupManager                             string
84214	instancegroupmanagersupdateperinstanceconfigsreq *InstanceGroupManagersUpdatePerInstanceConfigsReq
84215	urlParams_                                       gensupport.URLParams
84216	ctx_                                             context.Context
84217	header_                                          http.Header
84218}
84219
84220// UpdatePerInstanceConfigs: Inserts or updates per-instance configs for
84221// the managed instance group. perInstanceConfig.name serves as a key
84222// used to distinguish whether to perform insert or patch.
84223//
84224// - instanceGroupManager: The name of the managed instance group. It
84225//   should conform to RFC1035.
84226// - project: Project ID for this request.
84227// - zone: The name of the zone where the managed instance group is
84228//   located. It should conform to RFC1035.
84229func (r *InstanceGroupManagersService) UpdatePerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagersupdateperinstanceconfigsreq *InstanceGroupManagersUpdatePerInstanceConfigsReq) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
84230	c := &InstanceGroupManagersUpdatePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84231	c.project = project
84232	c.zone = zone
84233	c.instanceGroupManager = instanceGroupManager
84234	c.instancegroupmanagersupdateperinstanceconfigsreq = instancegroupmanagersupdateperinstanceconfigsreq
84235	return c
84236}
84237
84238// RequestId sets the optional parameter "requestId": An optional
84239// request ID to identify requests. Specify a unique request ID so that
84240// if you must retry your request, the server will know to ignore the
84241// request if it has already been completed. For example, consider a
84242// situation where you make an initial request and the request times
84243// out. If you make the request again with the same request ID, the
84244// server can check if original operation with the same request ID was
84245// received, and if so, will ignore the second request. This prevents
84246// clients from accidentally creating duplicate commitments. The request
84247// ID must be a valid UUID with the exception that zero UUID is not
84248// supported ( 00000000-0000-0000-0000-000000000000).
84249func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) RequestId(requestId string) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
84250	c.urlParams_.Set("requestId", requestId)
84251	return c
84252}
84253
84254// Fields allows partial responses to be retrieved. See
84255// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84256// for more information.
84257func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
84258	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84259	return c
84260}
84261
84262// Context sets the context to be used in this call's Do method. Any
84263// pending HTTP request will be aborted if the provided context is
84264// canceled.
84265func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
84266	c.ctx_ = ctx
84267	return c
84268}
84269
84270// Header returns an http.Header that can be modified by the caller to
84271// add HTTP headers to the request.
84272func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Header() http.Header {
84273	if c.header_ == nil {
84274		c.header_ = make(http.Header)
84275	}
84276	return c.header_
84277}
84278
84279func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
84280	reqHeaders := make(http.Header)
84281	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
84282	for k, v := range c.header_ {
84283		reqHeaders[k] = v
84284	}
84285	reqHeaders.Set("User-Agent", c.s.userAgent())
84286	var body io.Reader = nil
84287	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersupdateperinstanceconfigsreq)
84288	if err != nil {
84289		return nil, err
84290	}
84291	reqHeaders.Set("Content-Type", "application/json")
84292	c.urlParams_.Set("alt", alt)
84293	c.urlParams_.Set("prettyPrint", "false")
84294	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs")
84295	urls += "?" + c.urlParams_.Encode()
84296	req, err := http.NewRequest("POST", urls, body)
84297	if err != nil {
84298		return nil, err
84299	}
84300	req.Header = reqHeaders
84301	googleapi.Expand(req.URL, map[string]string{
84302		"project":              c.project,
84303		"zone":                 c.zone,
84304		"instanceGroupManager": c.instanceGroupManager,
84305	})
84306	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84307}
84308
84309// Do executes the "compute.instanceGroupManagers.updatePerInstanceConfigs" call.
84310// Exactly one of *Operation or error will be non-nil. Any non-2xx
84311// status code is an error. Response headers are in either
84312// *Operation.ServerResponse.Header or (if a response was returned at
84313// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84314// to check whether the returned error was because
84315// http.StatusNotModified was returned.
84316func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84317	gensupport.SetOptions(c.urlParams_, opts...)
84318	res, err := c.doRequest("json")
84319	if res != nil && res.StatusCode == http.StatusNotModified {
84320		if res.Body != nil {
84321			res.Body.Close()
84322		}
84323		return nil, &googleapi.Error{
84324			Code:   res.StatusCode,
84325			Header: res.Header,
84326		}
84327	}
84328	if err != nil {
84329		return nil, err
84330	}
84331	defer googleapi.CloseBody(res)
84332	if err := googleapi.CheckResponse(res); err != nil {
84333		return nil, err
84334	}
84335	ret := &Operation{
84336		ServerResponse: googleapi.ServerResponse{
84337			Header:         res.Header,
84338			HTTPStatusCode: res.StatusCode,
84339		},
84340	}
84341	target := &ret
84342	if err := gensupport.DecodeResponse(target, res); err != nil {
84343		return nil, err
84344	}
84345	return ret, nil
84346	// {
84347	//   "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.",
84348	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs",
84349	//   "httpMethod": "POST",
84350	//   "id": "compute.instanceGroupManagers.updatePerInstanceConfigs",
84351	//   "parameterOrder": [
84352	//     "project",
84353	//     "zone",
84354	//     "instanceGroupManager"
84355	//   ],
84356	//   "parameters": {
84357	//     "instanceGroupManager": {
84358	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
84359	//       "location": "path",
84360	//       "required": true,
84361	//       "type": "string"
84362	//     },
84363	//     "project": {
84364	//       "description": "Project ID for this request.",
84365	//       "location": "path",
84366	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84367	//       "required": true,
84368	//       "type": "string"
84369	//     },
84370	//     "requestId": {
84371	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
84372	//       "location": "query",
84373	//       "type": "string"
84374	//     },
84375	//     "zone": {
84376	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
84377	//       "location": "path",
84378	//       "required": true,
84379	//       "type": "string"
84380	//     }
84381	//   },
84382	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs",
84383	//   "request": {
84384	//     "$ref": "InstanceGroupManagersUpdatePerInstanceConfigsReq"
84385	//   },
84386	//   "response": {
84387	//     "$ref": "Operation"
84388	//   },
84389	//   "scopes": [
84390	//     "https://www.googleapis.com/auth/cloud-platform",
84391	//     "https://www.googleapis.com/auth/compute"
84392	//   ]
84393	// }
84394
84395}
84396
84397// method id "compute.instanceGroups.addInstances":
84398
84399type InstanceGroupsAddInstancesCall struct {
84400	s                                 *Service
84401	project                           string
84402	zone                              string
84403	instanceGroup                     string
84404	instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest
84405	urlParams_                        gensupport.URLParams
84406	ctx_                              context.Context
84407	header_                           http.Header
84408}
84409
84410// AddInstances: Adds a list of instances to the specified instance
84411// group. All of the instances in the instance group must be in the same
84412// network/subnetwork. Read Adding instances for more information.
84413//
84414// - instanceGroup: The name of the instance group where you are adding
84415//   instances.
84416// - project: Project ID for this request.
84417// - zone: The name of the zone where the instance group is located.
84418func (r *InstanceGroupsService) AddInstances(project string, zone string, instanceGroup string, instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest) *InstanceGroupsAddInstancesCall {
84419	c := &InstanceGroupsAddInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84420	c.project = project
84421	c.zone = zone
84422	c.instanceGroup = instanceGroup
84423	c.instancegroupsaddinstancesrequest = instancegroupsaddinstancesrequest
84424	return c
84425}
84426
84427// RequestId sets the optional parameter "requestId": An optional
84428// request ID to identify requests. Specify a unique request ID so that
84429// if you must retry your request, the server will know to ignore the
84430// request if it has already been completed. For example, consider a
84431// situation where you make an initial request and the request times
84432// out. If you make the request again with the same request ID, the
84433// server can check if original operation with the same request ID was
84434// received, and if so, will ignore the second request. This prevents
84435// clients from accidentally creating duplicate commitments. The request
84436// ID must be a valid UUID with the exception that zero UUID is not
84437// supported ( 00000000-0000-0000-0000-000000000000).
84438func (c *InstanceGroupsAddInstancesCall) RequestId(requestId string) *InstanceGroupsAddInstancesCall {
84439	c.urlParams_.Set("requestId", requestId)
84440	return c
84441}
84442
84443// Fields allows partial responses to be retrieved. See
84444// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84445// for more information.
84446func (c *InstanceGroupsAddInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsAddInstancesCall {
84447	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84448	return c
84449}
84450
84451// Context sets the context to be used in this call's Do method. Any
84452// pending HTTP request will be aborted if the provided context is
84453// canceled.
84454func (c *InstanceGroupsAddInstancesCall) Context(ctx context.Context) *InstanceGroupsAddInstancesCall {
84455	c.ctx_ = ctx
84456	return c
84457}
84458
84459// Header returns an http.Header that can be modified by the caller to
84460// add HTTP headers to the request.
84461func (c *InstanceGroupsAddInstancesCall) Header() http.Header {
84462	if c.header_ == nil {
84463		c.header_ = make(http.Header)
84464	}
84465	return c.header_
84466}
84467
84468func (c *InstanceGroupsAddInstancesCall) doRequest(alt string) (*http.Response, error) {
84469	reqHeaders := make(http.Header)
84470	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
84471	for k, v := range c.header_ {
84472		reqHeaders[k] = v
84473	}
84474	reqHeaders.Set("User-Agent", c.s.userAgent())
84475	var body io.Reader = nil
84476	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsaddinstancesrequest)
84477	if err != nil {
84478		return nil, err
84479	}
84480	reqHeaders.Set("Content-Type", "application/json")
84481	c.urlParams_.Set("alt", alt)
84482	c.urlParams_.Set("prettyPrint", "false")
84483	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances")
84484	urls += "?" + c.urlParams_.Encode()
84485	req, err := http.NewRequest("POST", urls, body)
84486	if err != nil {
84487		return nil, err
84488	}
84489	req.Header = reqHeaders
84490	googleapi.Expand(req.URL, map[string]string{
84491		"project":       c.project,
84492		"zone":          c.zone,
84493		"instanceGroup": c.instanceGroup,
84494	})
84495	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84496}
84497
84498// Do executes the "compute.instanceGroups.addInstances" call.
84499// Exactly one of *Operation or error will be non-nil. Any non-2xx
84500// status code is an error. Response headers are in either
84501// *Operation.ServerResponse.Header or (if a response was returned at
84502// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84503// to check whether the returned error was because
84504// http.StatusNotModified was returned.
84505func (c *InstanceGroupsAddInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84506	gensupport.SetOptions(c.urlParams_, opts...)
84507	res, err := c.doRequest("json")
84508	if res != nil && res.StatusCode == http.StatusNotModified {
84509		if res.Body != nil {
84510			res.Body.Close()
84511		}
84512		return nil, &googleapi.Error{
84513			Code:   res.StatusCode,
84514			Header: res.Header,
84515		}
84516	}
84517	if err != nil {
84518		return nil, err
84519	}
84520	defer googleapi.CloseBody(res)
84521	if err := googleapi.CheckResponse(res); err != nil {
84522		return nil, err
84523	}
84524	ret := &Operation{
84525		ServerResponse: googleapi.ServerResponse{
84526			Header:         res.Header,
84527			HTTPStatusCode: res.StatusCode,
84528		},
84529	}
84530	target := &ret
84531	if err := gensupport.DecodeResponse(target, res); err != nil {
84532		return nil, err
84533	}
84534	return ret, nil
84535	// {
84536	//   "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.",
84537	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances",
84538	//   "httpMethod": "POST",
84539	//   "id": "compute.instanceGroups.addInstances",
84540	//   "parameterOrder": [
84541	//     "project",
84542	//     "zone",
84543	//     "instanceGroup"
84544	//   ],
84545	//   "parameters": {
84546	//     "instanceGroup": {
84547	//       "description": "The name of the instance group where you are adding instances.",
84548	//       "location": "path",
84549	//       "required": true,
84550	//       "type": "string"
84551	//     },
84552	//     "project": {
84553	//       "description": "Project ID for this request.",
84554	//       "location": "path",
84555	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84556	//       "required": true,
84557	//       "type": "string"
84558	//     },
84559	//     "requestId": {
84560	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
84561	//       "location": "query",
84562	//       "type": "string"
84563	//     },
84564	//     "zone": {
84565	//       "description": "The name of the zone where the instance group is located.",
84566	//       "location": "path",
84567	//       "required": true,
84568	//       "type": "string"
84569	//     }
84570	//   },
84571	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances",
84572	//   "request": {
84573	//     "$ref": "InstanceGroupsAddInstancesRequest"
84574	//   },
84575	//   "response": {
84576	//     "$ref": "Operation"
84577	//   },
84578	//   "scopes": [
84579	//     "https://www.googleapis.com/auth/cloud-platform",
84580	//     "https://www.googleapis.com/auth/compute"
84581	//   ]
84582	// }
84583
84584}
84585
84586// method id "compute.instanceGroups.aggregatedList":
84587
84588type InstanceGroupsAggregatedListCall struct {
84589	s            *Service
84590	project      string
84591	urlParams_   gensupport.URLParams
84592	ifNoneMatch_ string
84593	ctx_         context.Context
84594	header_      http.Header
84595}
84596
84597// AggregatedList: Retrieves the list of instance groups and sorts them
84598// by zone.
84599//
84600// - project: Project ID for this request.
84601func (r *InstanceGroupsService) AggregatedList(project string) *InstanceGroupsAggregatedListCall {
84602	c := &InstanceGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84603	c.project = project
84604	return c
84605}
84606
84607// Filter sets the optional parameter "filter": A filter expression that
84608// filters resources listed in the response. The expression must specify
84609// the field name, a comparison operator, and the value that you want to
84610// use for filtering. The value must be a string, a number, or a
84611// boolean. The comparison operator must be either `=`, `!=`, `>`, or
84612// `<`. For example, if you are filtering Compute Engine instances, you
84613// can exclude instances named `example-instance` by specifying `name !=
84614// example-instance`. You can also filter nested fields. For example,
84615// you could specify `scheduling.automaticRestart = false` to include
84616// instances only if they are not scheduled for automatic restarts. You
84617// can use filtering on nested fields to filter based on resource
84618// labels. To filter on multiple expressions, provide each separate
84619// expression within parentheses. For example: ```
84620// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
84621// ``` By default, each expression is an `AND` expression. However, you
84622// can include `AND` and `OR` expressions explicitly. For example: ```
84623// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
84624// AND (scheduling.automaticRestart = true) ```
84625func (c *InstanceGroupsAggregatedListCall) Filter(filter string) *InstanceGroupsAggregatedListCall {
84626	c.urlParams_.Set("filter", filter)
84627	return c
84628}
84629
84630// IncludeAllScopes sets the optional parameter "includeAllScopes":
84631// Indicates whether every visible scope for each scope type (zone,
84632// region, global) should be included in the response. For new resource
84633// types added after this field, the flag has no effect as new resource
84634// types will always include every visible scope for each scope type in
84635// response. For resource types which predate this field, if this flag
84636// is omitted or false, only scopes of the scope types where the
84637// resource type is expected to be found will be included.
84638func (c *InstanceGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstanceGroupsAggregatedListCall {
84639	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
84640	return c
84641}
84642
84643// MaxResults sets the optional parameter "maxResults": The maximum
84644// number of results per page that should be returned. If the number of
84645// available results is larger than `maxResults`, Compute Engine returns
84646// a `nextPageToken` that can be used to get the next page of results in
84647// subsequent list requests. Acceptable values are `0` to `500`,
84648// inclusive. (Default: `500`)
84649func (c *InstanceGroupsAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupsAggregatedListCall {
84650	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
84651	return c
84652}
84653
84654// OrderBy sets the optional parameter "orderBy": Sorts list results by
84655// a certain order. By default, results are returned in alphanumerical
84656// order based on the resource name. You can also sort results in
84657// descending order based on the creation timestamp using
84658// `orderBy="creationTimestamp desc". This sorts results based on the
84659// `creationTimestamp` field in reverse chronological order (newest
84660// result first). Use this to sort resources like operations so that the
84661// newest operation is returned first. Currently, only sorting by `name`
84662// or `creationTimestamp desc` is supported.
84663func (c *InstanceGroupsAggregatedListCall) OrderBy(orderBy string) *InstanceGroupsAggregatedListCall {
84664	c.urlParams_.Set("orderBy", orderBy)
84665	return c
84666}
84667
84668// PageToken sets the optional parameter "pageToken": Specifies a page
84669// token to use. Set `pageToken` to the `nextPageToken` returned by a
84670// previous list request to get the next page of results.
84671func (c *InstanceGroupsAggregatedListCall) PageToken(pageToken string) *InstanceGroupsAggregatedListCall {
84672	c.urlParams_.Set("pageToken", pageToken)
84673	return c
84674}
84675
84676// ReturnPartialSuccess sets the optional parameter
84677// "returnPartialSuccess": Opt-in for partial success behavior which
84678// provides partial results in case of failure. The default value is
84679// false.
84680func (c *InstanceGroupsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupsAggregatedListCall {
84681	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
84682	return c
84683}
84684
84685// Fields allows partial responses to be retrieved. See
84686// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84687// for more information.
84688func (c *InstanceGroupsAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupsAggregatedListCall {
84689	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84690	return c
84691}
84692
84693// IfNoneMatch sets the optional parameter which makes the operation
84694// fail if the object's ETag matches the given value. This is useful for
84695// getting updates only after the object has changed since the last
84696// request. Use googleapi.IsNotModified to check whether the response
84697// error from Do is the result of In-None-Match.
84698func (c *InstanceGroupsAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupsAggregatedListCall {
84699	c.ifNoneMatch_ = entityTag
84700	return c
84701}
84702
84703// Context sets the context to be used in this call's Do method. Any
84704// pending HTTP request will be aborted if the provided context is
84705// canceled.
84706func (c *InstanceGroupsAggregatedListCall) Context(ctx context.Context) *InstanceGroupsAggregatedListCall {
84707	c.ctx_ = ctx
84708	return c
84709}
84710
84711// Header returns an http.Header that can be modified by the caller to
84712// add HTTP headers to the request.
84713func (c *InstanceGroupsAggregatedListCall) Header() http.Header {
84714	if c.header_ == nil {
84715		c.header_ = make(http.Header)
84716	}
84717	return c.header_
84718}
84719
84720func (c *InstanceGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
84721	reqHeaders := make(http.Header)
84722	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
84723	for k, v := range c.header_ {
84724		reqHeaders[k] = v
84725	}
84726	reqHeaders.Set("User-Agent", c.s.userAgent())
84727	if c.ifNoneMatch_ != "" {
84728		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
84729	}
84730	var body io.Reader = nil
84731	c.urlParams_.Set("alt", alt)
84732	c.urlParams_.Set("prettyPrint", "false")
84733	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/instanceGroups")
84734	urls += "?" + c.urlParams_.Encode()
84735	req, err := http.NewRequest("GET", urls, body)
84736	if err != nil {
84737		return nil, err
84738	}
84739	req.Header = reqHeaders
84740	googleapi.Expand(req.URL, map[string]string{
84741		"project": c.project,
84742	})
84743	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84744}
84745
84746// Do executes the "compute.instanceGroups.aggregatedList" call.
84747// Exactly one of *InstanceGroupAggregatedList or error will be non-nil.
84748// Any non-2xx status code is an error. Response headers are in either
84749// *InstanceGroupAggregatedList.ServerResponse.Header or (if a response
84750// was returned at all) in error.(*googleapi.Error).Header. Use
84751// googleapi.IsNotModified to check whether the returned error was
84752// because http.StatusNotModified was returned.
84753func (c *InstanceGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupAggregatedList, error) {
84754	gensupport.SetOptions(c.urlParams_, opts...)
84755	res, err := c.doRequest("json")
84756	if res != nil && res.StatusCode == http.StatusNotModified {
84757		if res.Body != nil {
84758			res.Body.Close()
84759		}
84760		return nil, &googleapi.Error{
84761			Code:   res.StatusCode,
84762			Header: res.Header,
84763		}
84764	}
84765	if err != nil {
84766		return nil, err
84767	}
84768	defer googleapi.CloseBody(res)
84769	if err := googleapi.CheckResponse(res); err != nil {
84770		return nil, err
84771	}
84772	ret := &InstanceGroupAggregatedList{
84773		ServerResponse: googleapi.ServerResponse{
84774			Header:         res.Header,
84775			HTTPStatusCode: res.StatusCode,
84776		},
84777	}
84778	target := &ret
84779	if err := gensupport.DecodeResponse(target, res); err != nil {
84780		return nil, err
84781	}
84782	return ret, nil
84783	// {
84784	//   "description": "Retrieves the list of instance groups and sorts them by zone.",
84785	//   "flatPath": "projects/{project}/aggregated/instanceGroups",
84786	//   "httpMethod": "GET",
84787	//   "id": "compute.instanceGroups.aggregatedList",
84788	//   "parameterOrder": [
84789	//     "project"
84790	//   ],
84791	//   "parameters": {
84792	//     "filter": {
84793	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
84794	//       "location": "query",
84795	//       "type": "string"
84796	//     },
84797	//     "includeAllScopes": {
84798	//       "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.",
84799	//       "location": "query",
84800	//       "type": "boolean"
84801	//     },
84802	//     "maxResults": {
84803	//       "default": "500",
84804	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
84805	//       "format": "uint32",
84806	//       "location": "query",
84807	//       "minimum": "0",
84808	//       "type": "integer"
84809	//     },
84810	//     "orderBy": {
84811	//       "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.",
84812	//       "location": "query",
84813	//       "type": "string"
84814	//     },
84815	//     "pageToken": {
84816	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
84817	//       "location": "query",
84818	//       "type": "string"
84819	//     },
84820	//     "project": {
84821	//       "description": "Project ID for this request.",
84822	//       "location": "path",
84823	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84824	//       "required": true,
84825	//       "type": "string"
84826	//     },
84827	//     "returnPartialSuccess": {
84828	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
84829	//       "location": "query",
84830	//       "type": "boolean"
84831	//     }
84832	//   },
84833	//   "path": "projects/{project}/aggregated/instanceGroups",
84834	//   "response": {
84835	//     "$ref": "InstanceGroupAggregatedList"
84836	//   },
84837	//   "scopes": [
84838	//     "https://www.googleapis.com/auth/cloud-platform",
84839	//     "https://www.googleapis.com/auth/compute",
84840	//     "https://www.googleapis.com/auth/compute.readonly"
84841	//   ]
84842	// }
84843
84844}
84845
84846// Pages invokes f for each page of results.
84847// A non-nil error returned from f will halt the iteration.
84848// The provided context supersedes any context provided to the Context method.
84849func (c *InstanceGroupsAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupAggregatedList) error) error {
84850	c.ctx_ = ctx
84851	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
84852	for {
84853		x, err := c.Do()
84854		if err != nil {
84855			return err
84856		}
84857		if err := f(x); err != nil {
84858			return err
84859		}
84860		if x.NextPageToken == "" {
84861			return nil
84862		}
84863		c.PageToken(x.NextPageToken)
84864	}
84865}
84866
84867// method id "compute.instanceGroups.delete":
84868
84869type InstanceGroupsDeleteCall struct {
84870	s             *Service
84871	project       string
84872	zone          string
84873	instanceGroup string
84874	urlParams_    gensupport.URLParams
84875	ctx_          context.Context
84876	header_       http.Header
84877}
84878
84879// Delete: Deletes the specified instance group. The instances in the
84880// group are not deleted. Note that instance group must not belong to a
84881// backend service. Read Deleting an instance group for more
84882// information.
84883//
84884// - instanceGroup: The name of the instance group to delete.
84885// - project: Project ID for this request.
84886// - zone: The name of the zone where the instance group is located.
84887func (r *InstanceGroupsService) Delete(project string, zone string, instanceGroup string) *InstanceGroupsDeleteCall {
84888	c := &InstanceGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84889	c.project = project
84890	c.zone = zone
84891	c.instanceGroup = instanceGroup
84892	return c
84893}
84894
84895// RequestId sets the optional parameter "requestId": An optional
84896// request ID to identify requests. Specify a unique request ID so that
84897// if you must retry your request, the server will know to ignore the
84898// request if it has already been completed. For example, consider a
84899// situation where you make an initial request and the request times
84900// out. If you make the request again with the same request ID, the
84901// server can check if original operation with the same request ID was
84902// received, and if so, will ignore the second request. This prevents
84903// clients from accidentally creating duplicate commitments. The request
84904// ID must be a valid UUID with the exception that zero UUID is not
84905// supported ( 00000000-0000-0000-0000-000000000000).
84906func (c *InstanceGroupsDeleteCall) RequestId(requestId string) *InstanceGroupsDeleteCall {
84907	c.urlParams_.Set("requestId", requestId)
84908	return c
84909}
84910
84911// Fields allows partial responses to be retrieved. See
84912// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84913// for more information.
84914func (c *InstanceGroupsDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupsDeleteCall {
84915	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84916	return c
84917}
84918
84919// Context sets the context to be used in this call's Do method. Any
84920// pending HTTP request will be aborted if the provided context is
84921// canceled.
84922func (c *InstanceGroupsDeleteCall) Context(ctx context.Context) *InstanceGroupsDeleteCall {
84923	c.ctx_ = ctx
84924	return c
84925}
84926
84927// Header returns an http.Header that can be modified by the caller to
84928// add HTTP headers to the request.
84929func (c *InstanceGroupsDeleteCall) Header() http.Header {
84930	if c.header_ == nil {
84931		c.header_ = make(http.Header)
84932	}
84933	return c.header_
84934}
84935
84936func (c *InstanceGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
84937	reqHeaders := make(http.Header)
84938	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
84939	for k, v := range c.header_ {
84940		reqHeaders[k] = v
84941	}
84942	reqHeaders.Set("User-Agent", c.s.userAgent())
84943	var body io.Reader = nil
84944	c.urlParams_.Set("alt", alt)
84945	c.urlParams_.Set("prettyPrint", "false")
84946	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}")
84947	urls += "?" + c.urlParams_.Encode()
84948	req, err := http.NewRequest("DELETE", urls, body)
84949	if err != nil {
84950		return nil, err
84951	}
84952	req.Header = reqHeaders
84953	googleapi.Expand(req.URL, map[string]string{
84954		"project":       c.project,
84955		"zone":          c.zone,
84956		"instanceGroup": c.instanceGroup,
84957	})
84958	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84959}
84960
84961// Do executes the "compute.instanceGroups.delete" call.
84962// Exactly one of *Operation or error will be non-nil. Any non-2xx
84963// status code is an error. Response headers are in either
84964// *Operation.ServerResponse.Header or (if a response was returned at
84965// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84966// to check whether the returned error was because
84967// http.StatusNotModified was returned.
84968func (c *InstanceGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84969	gensupport.SetOptions(c.urlParams_, opts...)
84970	res, err := c.doRequest("json")
84971	if res != nil && res.StatusCode == http.StatusNotModified {
84972		if res.Body != nil {
84973			res.Body.Close()
84974		}
84975		return nil, &googleapi.Error{
84976			Code:   res.StatusCode,
84977			Header: res.Header,
84978		}
84979	}
84980	if err != nil {
84981		return nil, err
84982	}
84983	defer googleapi.CloseBody(res)
84984	if err := googleapi.CheckResponse(res); err != nil {
84985		return nil, err
84986	}
84987	ret := &Operation{
84988		ServerResponse: googleapi.ServerResponse{
84989			Header:         res.Header,
84990			HTTPStatusCode: res.StatusCode,
84991		},
84992	}
84993	target := &ret
84994	if err := gensupport.DecodeResponse(target, res); err != nil {
84995		return nil, err
84996	}
84997	return ret, nil
84998	// {
84999	//   "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.",
85000	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}",
85001	//   "httpMethod": "DELETE",
85002	//   "id": "compute.instanceGroups.delete",
85003	//   "parameterOrder": [
85004	//     "project",
85005	//     "zone",
85006	//     "instanceGroup"
85007	//   ],
85008	//   "parameters": {
85009	//     "instanceGroup": {
85010	//       "description": "The name of the instance group to delete.",
85011	//       "location": "path",
85012	//       "required": true,
85013	//       "type": "string"
85014	//     },
85015	//     "project": {
85016	//       "description": "Project ID for this request.",
85017	//       "location": "path",
85018	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85019	//       "required": true,
85020	//       "type": "string"
85021	//     },
85022	//     "requestId": {
85023	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
85024	//       "location": "query",
85025	//       "type": "string"
85026	//     },
85027	//     "zone": {
85028	//       "description": "The name of the zone where the instance group is located.",
85029	//       "location": "path",
85030	//       "required": true,
85031	//       "type": "string"
85032	//     }
85033	//   },
85034	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}",
85035	//   "response": {
85036	//     "$ref": "Operation"
85037	//   },
85038	//   "scopes": [
85039	//     "https://www.googleapis.com/auth/cloud-platform",
85040	//     "https://www.googleapis.com/auth/compute"
85041	//   ]
85042	// }
85043
85044}
85045
85046// method id "compute.instanceGroups.get":
85047
85048type InstanceGroupsGetCall struct {
85049	s             *Service
85050	project       string
85051	zone          string
85052	instanceGroup string
85053	urlParams_    gensupport.URLParams
85054	ifNoneMatch_  string
85055	ctx_          context.Context
85056	header_       http.Header
85057}
85058
85059// Get: Returns the specified zonal instance group. Get a list of
85060// available zonal instance groups by making a list() request. For
85061// managed instance groups, use the instanceGroupManagers or
85062// regionInstanceGroupManagers methods instead.
85063//
85064// - instanceGroup: The name of the instance group.
85065// - project: Project ID for this request.
85066// - zone: The name of the zone where the instance group is located.
85067func (r *InstanceGroupsService) Get(project string, zone string, instanceGroup string) *InstanceGroupsGetCall {
85068	c := &InstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85069	c.project = project
85070	c.zone = zone
85071	c.instanceGroup = instanceGroup
85072	return c
85073}
85074
85075// Fields allows partial responses to be retrieved. See
85076// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85077// for more information.
85078func (c *InstanceGroupsGetCall) Fields(s ...googleapi.Field) *InstanceGroupsGetCall {
85079	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85080	return c
85081}
85082
85083// IfNoneMatch sets the optional parameter which makes the operation
85084// fail if the object's ETag matches the given value. This is useful for
85085// getting updates only after the object has changed since the last
85086// request. Use googleapi.IsNotModified to check whether the response
85087// error from Do is the result of In-None-Match.
85088func (c *InstanceGroupsGetCall) IfNoneMatch(entityTag string) *InstanceGroupsGetCall {
85089	c.ifNoneMatch_ = entityTag
85090	return c
85091}
85092
85093// Context sets the context to be used in this call's Do method. Any
85094// pending HTTP request will be aborted if the provided context is
85095// canceled.
85096func (c *InstanceGroupsGetCall) Context(ctx context.Context) *InstanceGroupsGetCall {
85097	c.ctx_ = ctx
85098	return c
85099}
85100
85101// Header returns an http.Header that can be modified by the caller to
85102// add HTTP headers to the request.
85103func (c *InstanceGroupsGetCall) Header() http.Header {
85104	if c.header_ == nil {
85105		c.header_ = make(http.Header)
85106	}
85107	return c.header_
85108}
85109
85110func (c *InstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
85111	reqHeaders := make(http.Header)
85112	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
85113	for k, v := range c.header_ {
85114		reqHeaders[k] = v
85115	}
85116	reqHeaders.Set("User-Agent", c.s.userAgent())
85117	if c.ifNoneMatch_ != "" {
85118		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
85119	}
85120	var body io.Reader = nil
85121	c.urlParams_.Set("alt", alt)
85122	c.urlParams_.Set("prettyPrint", "false")
85123	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}")
85124	urls += "?" + c.urlParams_.Encode()
85125	req, err := http.NewRequest("GET", urls, body)
85126	if err != nil {
85127		return nil, err
85128	}
85129	req.Header = reqHeaders
85130	googleapi.Expand(req.URL, map[string]string{
85131		"project":       c.project,
85132		"zone":          c.zone,
85133		"instanceGroup": c.instanceGroup,
85134	})
85135	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85136}
85137
85138// Do executes the "compute.instanceGroups.get" call.
85139// Exactly one of *InstanceGroup or error will be non-nil. Any non-2xx
85140// status code is an error. Response headers are in either
85141// *InstanceGroup.ServerResponse.Header or (if a response was returned
85142// at all) in error.(*googleapi.Error).Header. Use
85143// googleapi.IsNotModified to check whether the returned error was
85144// because http.StatusNotModified was returned.
85145func (c *InstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) {
85146	gensupport.SetOptions(c.urlParams_, opts...)
85147	res, err := c.doRequest("json")
85148	if res != nil && res.StatusCode == http.StatusNotModified {
85149		if res.Body != nil {
85150			res.Body.Close()
85151		}
85152		return nil, &googleapi.Error{
85153			Code:   res.StatusCode,
85154			Header: res.Header,
85155		}
85156	}
85157	if err != nil {
85158		return nil, err
85159	}
85160	defer googleapi.CloseBody(res)
85161	if err := googleapi.CheckResponse(res); err != nil {
85162		return nil, err
85163	}
85164	ret := &InstanceGroup{
85165		ServerResponse: googleapi.ServerResponse{
85166			Header:         res.Header,
85167			HTTPStatusCode: res.StatusCode,
85168		},
85169	}
85170	target := &ret
85171	if err := gensupport.DecodeResponse(target, res); err != nil {
85172		return nil, err
85173	}
85174	return ret, nil
85175	// {
85176	//   "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.",
85177	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}",
85178	//   "httpMethod": "GET",
85179	//   "id": "compute.instanceGroups.get",
85180	//   "parameterOrder": [
85181	//     "project",
85182	//     "zone",
85183	//     "instanceGroup"
85184	//   ],
85185	//   "parameters": {
85186	//     "instanceGroup": {
85187	//       "description": "The name of the instance group.",
85188	//       "location": "path",
85189	//       "required": true,
85190	//       "type": "string"
85191	//     },
85192	//     "project": {
85193	//       "description": "Project ID for this request.",
85194	//       "location": "path",
85195	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85196	//       "required": true,
85197	//       "type": "string"
85198	//     },
85199	//     "zone": {
85200	//       "description": "The name of the zone where the instance group is located.",
85201	//       "location": "path",
85202	//       "required": true,
85203	//       "type": "string"
85204	//     }
85205	//   },
85206	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}",
85207	//   "response": {
85208	//     "$ref": "InstanceGroup"
85209	//   },
85210	//   "scopes": [
85211	//     "https://www.googleapis.com/auth/cloud-platform",
85212	//     "https://www.googleapis.com/auth/compute",
85213	//     "https://www.googleapis.com/auth/compute.readonly"
85214	//   ]
85215	// }
85216
85217}
85218
85219// method id "compute.instanceGroups.insert":
85220
85221type InstanceGroupsInsertCall struct {
85222	s             *Service
85223	project       string
85224	zone          string
85225	instancegroup *InstanceGroup
85226	urlParams_    gensupport.URLParams
85227	ctx_          context.Context
85228	header_       http.Header
85229}
85230
85231// Insert: Creates an instance group in the specified project using the
85232// parameters that are included in the request.
85233//
85234// - project: Project ID for this request.
85235// - zone: The name of the zone where you want to create the instance
85236//   group.
85237func (r *InstanceGroupsService) Insert(project string, zone string, instancegroup *InstanceGroup) *InstanceGroupsInsertCall {
85238	c := &InstanceGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85239	c.project = project
85240	c.zone = zone
85241	c.instancegroup = instancegroup
85242	return c
85243}
85244
85245// RequestId sets the optional parameter "requestId": An optional
85246// request ID to identify requests. Specify a unique request ID so that
85247// if you must retry your request, the server will know to ignore the
85248// request if it has already been completed. For example, consider a
85249// situation where you make an initial request and the request times
85250// out. If you make the request again with the same request ID, the
85251// server can check if original operation with the same request ID was
85252// received, and if so, will ignore the second request. This prevents
85253// clients from accidentally creating duplicate commitments. The request
85254// ID must be a valid UUID with the exception that zero UUID is not
85255// supported ( 00000000-0000-0000-0000-000000000000).
85256func (c *InstanceGroupsInsertCall) RequestId(requestId string) *InstanceGroupsInsertCall {
85257	c.urlParams_.Set("requestId", requestId)
85258	return c
85259}
85260
85261// Fields allows partial responses to be retrieved. See
85262// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85263// for more information.
85264func (c *InstanceGroupsInsertCall) Fields(s ...googleapi.Field) *InstanceGroupsInsertCall {
85265	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85266	return c
85267}
85268
85269// Context sets the context to be used in this call's Do method. Any
85270// pending HTTP request will be aborted if the provided context is
85271// canceled.
85272func (c *InstanceGroupsInsertCall) Context(ctx context.Context) *InstanceGroupsInsertCall {
85273	c.ctx_ = ctx
85274	return c
85275}
85276
85277// Header returns an http.Header that can be modified by the caller to
85278// add HTTP headers to the request.
85279func (c *InstanceGroupsInsertCall) Header() http.Header {
85280	if c.header_ == nil {
85281		c.header_ = make(http.Header)
85282	}
85283	return c.header_
85284}
85285
85286func (c *InstanceGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
85287	reqHeaders := make(http.Header)
85288	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
85289	for k, v := range c.header_ {
85290		reqHeaders[k] = v
85291	}
85292	reqHeaders.Set("User-Agent", c.s.userAgent())
85293	var body io.Reader = nil
85294	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroup)
85295	if err != nil {
85296		return nil, err
85297	}
85298	reqHeaders.Set("Content-Type", "application/json")
85299	c.urlParams_.Set("alt", alt)
85300	c.urlParams_.Set("prettyPrint", "false")
85301	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups")
85302	urls += "?" + c.urlParams_.Encode()
85303	req, err := http.NewRequest("POST", urls, body)
85304	if err != nil {
85305		return nil, err
85306	}
85307	req.Header = reqHeaders
85308	googleapi.Expand(req.URL, map[string]string{
85309		"project": c.project,
85310		"zone":    c.zone,
85311	})
85312	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85313}
85314
85315// Do executes the "compute.instanceGroups.insert" call.
85316// Exactly one of *Operation or error will be non-nil. Any non-2xx
85317// status code is an error. Response headers are in either
85318// *Operation.ServerResponse.Header or (if a response was returned at
85319// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
85320// to check whether the returned error was because
85321// http.StatusNotModified was returned.
85322func (c *InstanceGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
85323	gensupport.SetOptions(c.urlParams_, opts...)
85324	res, err := c.doRequest("json")
85325	if res != nil && res.StatusCode == http.StatusNotModified {
85326		if res.Body != nil {
85327			res.Body.Close()
85328		}
85329		return nil, &googleapi.Error{
85330			Code:   res.StatusCode,
85331			Header: res.Header,
85332		}
85333	}
85334	if err != nil {
85335		return nil, err
85336	}
85337	defer googleapi.CloseBody(res)
85338	if err := googleapi.CheckResponse(res); err != nil {
85339		return nil, err
85340	}
85341	ret := &Operation{
85342		ServerResponse: googleapi.ServerResponse{
85343			Header:         res.Header,
85344			HTTPStatusCode: res.StatusCode,
85345		},
85346	}
85347	target := &ret
85348	if err := gensupport.DecodeResponse(target, res); err != nil {
85349		return nil, err
85350	}
85351	return ret, nil
85352	// {
85353	//   "description": "Creates an instance group in the specified project using the parameters that are included in the request.",
85354	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroups",
85355	//   "httpMethod": "POST",
85356	//   "id": "compute.instanceGroups.insert",
85357	//   "parameterOrder": [
85358	//     "project",
85359	//     "zone"
85360	//   ],
85361	//   "parameters": {
85362	//     "project": {
85363	//       "description": "Project ID for this request.",
85364	//       "location": "path",
85365	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85366	//       "required": true,
85367	//       "type": "string"
85368	//     },
85369	//     "requestId": {
85370	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
85371	//       "location": "query",
85372	//       "type": "string"
85373	//     },
85374	//     "zone": {
85375	//       "description": "The name of the zone where you want to create the instance group.",
85376	//       "location": "path",
85377	//       "required": true,
85378	//       "type": "string"
85379	//     }
85380	//   },
85381	//   "path": "projects/{project}/zones/{zone}/instanceGroups",
85382	//   "request": {
85383	//     "$ref": "InstanceGroup"
85384	//   },
85385	//   "response": {
85386	//     "$ref": "Operation"
85387	//   },
85388	//   "scopes": [
85389	//     "https://www.googleapis.com/auth/cloud-platform",
85390	//     "https://www.googleapis.com/auth/compute"
85391	//   ]
85392	// }
85393
85394}
85395
85396// method id "compute.instanceGroups.list":
85397
85398type InstanceGroupsListCall struct {
85399	s            *Service
85400	project      string
85401	zone         string
85402	urlParams_   gensupport.URLParams
85403	ifNoneMatch_ string
85404	ctx_         context.Context
85405	header_      http.Header
85406}
85407
85408// List: Retrieves the list of zonal instance group resources contained
85409// within the specified zone. For managed instance groups, use the
85410// instanceGroupManagers or regionInstanceGroupManagers methods instead.
85411//
85412// - project: Project ID for this request.
85413// - zone: The name of the zone where the instance group is located.
85414func (r *InstanceGroupsService) List(project string, zone string) *InstanceGroupsListCall {
85415	c := &InstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85416	c.project = project
85417	c.zone = zone
85418	return c
85419}
85420
85421// Filter sets the optional parameter "filter": A filter expression that
85422// filters resources listed in the response. The expression must specify
85423// the field name, a comparison operator, and the value that you want to
85424// use for filtering. The value must be a string, a number, or a
85425// boolean. The comparison operator must be either `=`, `!=`, `>`, or
85426// `<`. For example, if you are filtering Compute Engine instances, you
85427// can exclude instances named `example-instance` by specifying `name !=
85428// example-instance`. You can also filter nested fields. For example,
85429// you could specify `scheduling.automaticRestart = false` to include
85430// instances only if they are not scheduled for automatic restarts. You
85431// can use filtering on nested fields to filter based on resource
85432// labels. To filter on multiple expressions, provide each separate
85433// expression within parentheses. For example: ```
85434// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
85435// ``` By default, each expression is an `AND` expression. However, you
85436// can include `AND` and `OR` expressions explicitly. For example: ```
85437// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
85438// AND (scheduling.automaticRestart = true) ```
85439func (c *InstanceGroupsListCall) Filter(filter string) *InstanceGroupsListCall {
85440	c.urlParams_.Set("filter", filter)
85441	return c
85442}
85443
85444// MaxResults sets the optional parameter "maxResults": The maximum
85445// number of results per page that should be returned. If the number of
85446// available results is larger than `maxResults`, Compute Engine returns
85447// a `nextPageToken` that can be used to get the next page of results in
85448// subsequent list requests. Acceptable values are `0` to `500`,
85449// inclusive. (Default: `500`)
85450func (c *InstanceGroupsListCall) MaxResults(maxResults int64) *InstanceGroupsListCall {
85451	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
85452	return c
85453}
85454
85455// OrderBy sets the optional parameter "orderBy": Sorts list results by
85456// a certain order. By default, results are returned in alphanumerical
85457// order based on the resource name. You can also sort results in
85458// descending order based on the creation timestamp using
85459// `orderBy="creationTimestamp desc". This sorts results based on the
85460// `creationTimestamp` field in reverse chronological order (newest
85461// result first). Use this to sort resources like operations so that the
85462// newest operation is returned first. Currently, only sorting by `name`
85463// or `creationTimestamp desc` is supported.
85464func (c *InstanceGroupsListCall) OrderBy(orderBy string) *InstanceGroupsListCall {
85465	c.urlParams_.Set("orderBy", orderBy)
85466	return c
85467}
85468
85469// PageToken sets the optional parameter "pageToken": Specifies a page
85470// token to use. Set `pageToken` to the `nextPageToken` returned by a
85471// previous list request to get the next page of results.
85472func (c *InstanceGroupsListCall) PageToken(pageToken string) *InstanceGroupsListCall {
85473	c.urlParams_.Set("pageToken", pageToken)
85474	return c
85475}
85476
85477// ReturnPartialSuccess sets the optional parameter
85478// "returnPartialSuccess": Opt-in for partial success behavior which
85479// provides partial results in case of failure. The default value is
85480// false.
85481func (c *InstanceGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupsListCall {
85482	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
85483	return c
85484}
85485
85486// Fields allows partial responses to be retrieved. See
85487// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85488// for more information.
85489func (c *InstanceGroupsListCall) Fields(s ...googleapi.Field) *InstanceGroupsListCall {
85490	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85491	return c
85492}
85493
85494// IfNoneMatch sets the optional parameter which makes the operation
85495// fail if the object's ETag matches the given value. This is useful for
85496// getting updates only after the object has changed since the last
85497// request. Use googleapi.IsNotModified to check whether the response
85498// error from Do is the result of In-None-Match.
85499func (c *InstanceGroupsListCall) IfNoneMatch(entityTag string) *InstanceGroupsListCall {
85500	c.ifNoneMatch_ = entityTag
85501	return c
85502}
85503
85504// Context sets the context to be used in this call's Do method. Any
85505// pending HTTP request will be aborted if the provided context is
85506// canceled.
85507func (c *InstanceGroupsListCall) Context(ctx context.Context) *InstanceGroupsListCall {
85508	c.ctx_ = ctx
85509	return c
85510}
85511
85512// Header returns an http.Header that can be modified by the caller to
85513// add HTTP headers to the request.
85514func (c *InstanceGroupsListCall) Header() http.Header {
85515	if c.header_ == nil {
85516		c.header_ = make(http.Header)
85517	}
85518	return c.header_
85519}
85520
85521func (c *InstanceGroupsListCall) doRequest(alt string) (*http.Response, error) {
85522	reqHeaders := make(http.Header)
85523	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
85524	for k, v := range c.header_ {
85525		reqHeaders[k] = v
85526	}
85527	reqHeaders.Set("User-Agent", c.s.userAgent())
85528	if c.ifNoneMatch_ != "" {
85529		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
85530	}
85531	var body io.Reader = nil
85532	c.urlParams_.Set("alt", alt)
85533	c.urlParams_.Set("prettyPrint", "false")
85534	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups")
85535	urls += "?" + c.urlParams_.Encode()
85536	req, err := http.NewRequest("GET", urls, body)
85537	if err != nil {
85538		return nil, err
85539	}
85540	req.Header = reqHeaders
85541	googleapi.Expand(req.URL, map[string]string{
85542		"project": c.project,
85543		"zone":    c.zone,
85544	})
85545	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85546}
85547
85548// Do executes the "compute.instanceGroups.list" call.
85549// Exactly one of *InstanceGroupList or error will be non-nil. Any
85550// non-2xx status code is an error. Response headers are in either
85551// *InstanceGroupList.ServerResponse.Header or (if a response was
85552// returned at all) in error.(*googleapi.Error).Header. Use
85553// googleapi.IsNotModified to check whether the returned error was
85554// because http.StatusNotModified was returned.
85555func (c *InstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupList, error) {
85556	gensupport.SetOptions(c.urlParams_, opts...)
85557	res, err := c.doRequest("json")
85558	if res != nil && res.StatusCode == http.StatusNotModified {
85559		if res.Body != nil {
85560			res.Body.Close()
85561		}
85562		return nil, &googleapi.Error{
85563			Code:   res.StatusCode,
85564			Header: res.Header,
85565		}
85566	}
85567	if err != nil {
85568		return nil, err
85569	}
85570	defer googleapi.CloseBody(res)
85571	if err := googleapi.CheckResponse(res); err != nil {
85572		return nil, err
85573	}
85574	ret := &InstanceGroupList{
85575		ServerResponse: googleapi.ServerResponse{
85576			Header:         res.Header,
85577			HTTPStatusCode: res.StatusCode,
85578		},
85579	}
85580	target := &ret
85581	if err := gensupport.DecodeResponse(target, res); err != nil {
85582		return nil, err
85583	}
85584	return ret, nil
85585	// {
85586	//   "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.",
85587	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroups",
85588	//   "httpMethod": "GET",
85589	//   "id": "compute.instanceGroups.list",
85590	//   "parameterOrder": [
85591	//     "project",
85592	//     "zone"
85593	//   ],
85594	//   "parameters": {
85595	//     "filter": {
85596	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
85597	//       "location": "query",
85598	//       "type": "string"
85599	//     },
85600	//     "maxResults": {
85601	//       "default": "500",
85602	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
85603	//       "format": "uint32",
85604	//       "location": "query",
85605	//       "minimum": "0",
85606	//       "type": "integer"
85607	//     },
85608	//     "orderBy": {
85609	//       "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.",
85610	//       "location": "query",
85611	//       "type": "string"
85612	//     },
85613	//     "pageToken": {
85614	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
85615	//       "location": "query",
85616	//       "type": "string"
85617	//     },
85618	//     "project": {
85619	//       "description": "Project ID for this request.",
85620	//       "location": "path",
85621	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85622	//       "required": true,
85623	//       "type": "string"
85624	//     },
85625	//     "returnPartialSuccess": {
85626	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
85627	//       "location": "query",
85628	//       "type": "boolean"
85629	//     },
85630	//     "zone": {
85631	//       "description": "The name of the zone where the instance group is located.",
85632	//       "location": "path",
85633	//       "required": true,
85634	//       "type": "string"
85635	//     }
85636	//   },
85637	//   "path": "projects/{project}/zones/{zone}/instanceGroups",
85638	//   "response": {
85639	//     "$ref": "InstanceGroupList"
85640	//   },
85641	//   "scopes": [
85642	//     "https://www.googleapis.com/auth/cloud-platform",
85643	//     "https://www.googleapis.com/auth/compute",
85644	//     "https://www.googleapis.com/auth/compute.readonly"
85645	//   ]
85646	// }
85647
85648}
85649
85650// Pages invokes f for each page of results.
85651// A non-nil error returned from f will halt the iteration.
85652// The provided context supersedes any context provided to the Context method.
85653func (c *InstanceGroupsListCall) Pages(ctx context.Context, f func(*InstanceGroupList) error) error {
85654	c.ctx_ = ctx
85655	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
85656	for {
85657		x, err := c.Do()
85658		if err != nil {
85659			return err
85660		}
85661		if err := f(x); err != nil {
85662			return err
85663		}
85664		if x.NextPageToken == "" {
85665			return nil
85666		}
85667		c.PageToken(x.NextPageToken)
85668	}
85669}
85670
85671// method id "compute.instanceGroups.listInstances":
85672
85673type InstanceGroupsListInstancesCall struct {
85674	s                                  *Service
85675	project                            string
85676	zone                               string
85677	instanceGroup                      string
85678	instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest
85679	urlParams_                         gensupport.URLParams
85680	ctx_                               context.Context
85681	header_                            http.Header
85682}
85683
85684// ListInstances: Lists the instances in the specified instance group.
85685// The orderBy query parameter is not supported.
85686//
85687// - instanceGroup: The name of the instance group from which you want
85688//   to generate a list of included instances.
85689// - project: Project ID for this request.
85690// - zone: The name of the zone where the instance group is located.
85691func (r *InstanceGroupsService) ListInstances(project string, zone string, instanceGroup string, instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest) *InstanceGroupsListInstancesCall {
85692	c := &InstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85693	c.project = project
85694	c.zone = zone
85695	c.instanceGroup = instanceGroup
85696	c.instancegroupslistinstancesrequest = instancegroupslistinstancesrequest
85697	return c
85698}
85699
85700// Filter sets the optional parameter "filter": A filter expression that
85701// filters resources listed in the response. The expression must specify
85702// the field name, a comparison operator, and the value that you want to
85703// use for filtering. The value must be a string, a number, or a
85704// boolean. The comparison operator must be either `=`, `!=`, `>`, or
85705// `<`. For example, if you are filtering Compute Engine instances, you
85706// can exclude instances named `example-instance` by specifying `name !=
85707// example-instance`. You can also filter nested fields. For example,
85708// you could specify `scheduling.automaticRestart = false` to include
85709// instances only if they are not scheduled for automatic restarts. You
85710// can use filtering on nested fields to filter based on resource
85711// labels. To filter on multiple expressions, provide each separate
85712// expression within parentheses. For example: ```
85713// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
85714// ``` By default, each expression is an `AND` expression. However, you
85715// can include `AND` and `OR` expressions explicitly. For example: ```
85716// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
85717// AND (scheduling.automaticRestart = true) ```
85718func (c *InstanceGroupsListInstancesCall) Filter(filter string) *InstanceGroupsListInstancesCall {
85719	c.urlParams_.Set("filter", filter)
85720	return c
85721}
85722
85723// MaxResults sets the optional parameter "maxResults": The maximum
85724// number of results per page that should be returned. If the number of
85725// available results is larger than `maxResults`, Compute Engine returns
85726// a `nextPageToken` that can be used to get the next page of results in
85727// subsequent list requests. Acceptable values are `0` to `500`,
85728// inclusive. (Default: `500`)
85729func (c *InstanceGroupsListInstancesCall) MaxResults(maxResults int64) *InstanceGroupsListInstancesCall {
85730	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
85731	return c
85732}
85733
85734// OrderBy sets the optional parameter "orderBy": Sorts list results by
85735// a certain order. By default, results are returned in alphanumerical
85736// order based on the resource name. You can also sort results in
85737// descending order based on the creation timestamp using
85738// `orderBy="creationTimestamp desc". This sorts results based on the
85739// `creationTimestamp` field in reverse chronological order (newest
85740// result first). Use this to sort resources like operations so that the
85741// newest operation is returned first. Currently, only sorting by `name`
85742// or `creationTimestamp desc` is supported.
85743func (c *InstanceGroupsListInstancesCall) OrderBy(orderBy string) *InstanceGroupsListInstancesCall {
85744	c.urlParams_.Set("orderBy", orderBy)
85745	return c
85746}
85747
85748// PageToken sets the optional parameter "pageToken": Specifies a page
85749// token to use. Set `pageToken` to the `nextPageToken` returned by a
85750// previous list request to get the next page of results.
85751func (c *InstanceGroupsListInstancesCall) PageToken(pageToken string) *InstanceGroupsListInstancesCall {
85752	c.urlParams_.Set("pageToken", pageToken)
85753	return c
85754}
85755
85756// ReturnPartialSuccess sets the optional parameter
85757// "returnPartialSuccess": Opt-in for partial success behavior which
85758// provides partial results in case of failure. The default value is
85759// false.
85760func (c *InstanceGroupsListInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupsListInstancesCall {
85761	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
85762	return c
85763}
85764
85765// Fields allows partial responses to be retrieved. See
85766// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85767// for more information.
85768func (c *InstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsListInstancesCall {
85769	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85770	return c
85771}
85772
85773// Context sets the context to be used in this call's Do method. Any
85774// pending HTTP request will be aborted if the provided context is
85775// canceled.
85776func (c *InstanceGroupsListInstancesCall) Context(ctx context.Context) *InstanceGroupsListInstancesCall {
85777	c.ctx_ = ctx
85778	return c
85779}
85780
85781// Header returns an http.Header that can be modified by the caller to
85782// add HTTP headers to the request.
85783func (c *InstanceGroupsListInstancesCall) Header() http.Header {
85784	if c.header_ == nil {
85785		c.header_ = make(http.Header)
85786	}
85787	return c.header_
85788}
85789
85790func (c *InstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) {
85791	reqHeaders := make(http.Header)
85792	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
85793	for k, v := range c.header_ {
85794		reqHeaders[k] = v
85795	}
85796	reqHeaders.Set("User-Agent", c.s.userAgent())
85797	var body io.Reader = nil
85798	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupslistinstancesrequest)
85799	if err != nil {
85800		return nil, err
85801	}
85802	reqHeaders.Set("Content-Type", "application/json")
85803	c.urlParams_.Set("alt", alt)
85804	c.urlParams_.Set("prettyPrint", "false")
85805	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances")
85806	urls += "?" + c.urlParams_.Encode()
85807	req, err := http.NewRequest("POST", urls, body)
85808	if err != nil {
85809		return nil, err
85810	}
85811	req.Header = reqHeaders
85812	googleapi.Expand(req.URL, map[string]string{
85813		"project":       c.project,
85814		"zone":          c.zone,
85815		"instanceGroup": c.instanceGroup,
85816	})
85817	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85818}
85819
85820// Do executes the "compute.instanceGroups.listInstances" call.
85821// Exactly one of *InstanceGroupsListInstances or error will be non-nil.
85822// Any non-2xx status code is an error. Response headers are in either
85823// *InstanceGroupsListInstances.ServerResponse.Header or (if a response
85824// was returned at all) in error.(*googleapi.Error).Header. Use
85825// googleapi.IsNotModified to check whether the returned error was
85826// because http.StatusNotModified was returned.
85827func (c *InstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupsListInstances, error) {
85828	gensupport.SetOptions(c.urlParams_, opts...)
85829	res, err := c.doRequest("json")
85830	if res != nil && res.StatusCode == http.StatusNotModified {
85831		if res.Body != nil {
85832			res.Body.Close()
85833		}
85834		return nil, &googleapi.Error{
85835			Code:   res.StatusCode,
85836			Header: res.Header,
85837		}
85838	}
85839	if err != nil {
85840		return nil, err
85841	}
85842	defer googleapi.CloseBody(res)
85843	if err := googleapi.CheckResponse(res); err != nil {
85844		return nil, err
85845	}
85846	ret := &InstanceGroupsListInstances{
85847		ServerResponse: googleapi.ServerResponse{
85848			Header:         res.Header,
85849			HTTPStatusCode: res.StatusCode,
85850		},
85851	}
85852	target := &ret
85853	if err := gensupport.DecodeResponse(target, res); err != nil {
85854		return nil, err
85855	}
85856	return ret, nil
85857	// {
85858	//   "description": "Lists the instances in the specified instance group. The orderBy query parameter is not supported.",
85859	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances",
85860	//   "httpMethod": "POST",
85861	//   "id": "compute.instanceGroups.listInstances",
85862	//   "parameterOrder": [
85863	//     "project",
85864	//     "zone",
85865	//     "instanceGroup"
85866	//   ],
85867	//   "parameters": {
85868	//     "filter": {
85869	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
85870	//       "location": "query",
85871	//       "type": "string"
85872	//     },
85873	//     "instanceGroup": {
85874	//       "description": "The name of the instance group from which you want to generate a list of included instances.",
85875	//       "location": "path",
85876	//       "required": true,
85877	//       "type": "string"
85878	//     },
85879	//     "maxResults": {
85880	//       "default": "500",
85881	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
85882	//       "format": "uint32",
85883	//       "location": "query",
85884	//       "minimum": "0",
85885	//       "type": "integer"
85886	//     },
85887	//     "orderBy": {
85888	//       "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.",
85889	//       "location": "query",
85890	//       "type": "string"
85891	//     },
85892	//     "pageToken": {
85893	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
85894	//       "location": "query",
85895	//       "type": "string"
85896	//     },
85897	//     "project": {
85898	//       "description": "Project ID for this request.",
85899	//       "location": "path",
85900	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85901	//       "required": true,
85902	//       "type": "string"
85903	//     },
85904	//     "returnPartialSuccess": {
85905	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
85906	//       "location": "query",
85907	//       "type": "boolean"
85908	//     },
85909	//     "zone": {
85910	//       "description": "The name of the zone where the instance group is located.",
85911	//       "location": "path",
85912	//       "required": true,
85913	//       "type": "string"
85914	//     }
85915	//   },
85916	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances",
85917	//   "request": {
85918	//     "$ref": "InstanceGroupsListInstancesRequest"
85919	//   },
85920	//   "response": {
85921	//     "$ref": "InstanceGroupsListInstances"
85922	//   },
85923	//   "scopes": [
85924	//     "https://www.googleapis.com/auth/cloud-platform",
85925	//     "https://www.googleapis.com/auth/compute",
85926	//     "https://www.googleapis.com/auth/compute.readonly"
85927	//   ]
85928	// }
85929
85930}
85931
85932// Pages invokes f for each page of results.
85933// A non-nil error returned from f will halt the iteration.
85934// The provided context supersedes any context provided to the Context method.
85935func (c *InstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*InstanceGroupsListInstances) error) error {
85936	c.ctx_ = ctx
85937	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
85938	for {
85939		x, err := c.Do()
85940		if err != nil {
85941			return err
85942		}
85943		if err := f(x); err != nil {
85944			return err
85945		}
85946		if x.NextPageToken == "" {
85947			return nil
85948		}
85949		c.PageToken(x.NextPageToken)
85950	}
85951}
85952
85953// method id "compute.instanceGroups.removeInstances":
85954
85955type InstanceGroupsRemoveInstancesCall struct {
85956	s                                    *Service
85957	project                              string
85958	zone                                 string
85959	instanceGroup                        string
85960	instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest
85961	urlParams_                           gensupport.URLParams
85962	ctx_                                 context.Context
85963	header_                              http.Header
85964}
85965
85966// RemoveInstances: Removes one or more instances from the specified
85967// instance group, but does not delete those instances. If the group is
85968// part of a backend service that has enabled connection draining, it
85969// can take up to 60 seconds after the connection draining duration
85970// before the VM instance is removed or deleted.
85971//
85972// - instanceGroup: The name of the instance group where the specified
85973//   instances will be removed.
85974// - project: Project ID for this request.
85975// - zone: The name of the zone where the instance group is located.
85976func (r *InstanceGroupsService) RemoveInstances(project string, zone string, instanceGroup string, instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest) *InstanceGroupsRemoveInstancesCall {
85977	c := &InstanceGroupsRemoveInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85978	c.project = project
85979	c.zone = zone
85980	c.instanceGroup = instanceGroup
85981	c.instancegroupsremoveinstancesrequest = instancegroupsremoveinstancesrequest
85982	return c
85983}
85984
85985// RequestId sets the optional parameter "requestId": An optional
85986// request ID to identify requests. Specify a unique request ID so that
85987// if you must retry your request, the server will know to ignore the
85988// request if it has already been completed. For example, consider a
85989// situation where you make an initial request and the request times
85990// out. If you make the request again with the same request ID, the
85991// server can check if original operation with the same request ID was
85992// received, and if so, will ignore the second request. This prevents
85993// clients from accidentally creating duplicate commitments. The request
85994// ID must be a valid UUID with the exception that zero UUID is not
85995// supported ( 00000000-0000-0000-0000-000000000000).
85996func (c *InstanceGroupsRemoveInstancesCall) RequestId(requestId string) *InstanceGroupsRemoveInstancesCall {
85997	c.urlParams_.Set("requestId", requestId)
85998	return c
85999}
86000
86001// Fields allows partial responses to be retrieved. See
86002// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86003// for more information.
86004func (c *InstanceGroupsRemoveInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsRemoveInstancesCall {
86005	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86006	return c
86007}
86008
86009// Context sets the context to be used in this call's Do method. Any
86010// pending HTTP request will be aborted if the provided context is
86011// canceled.
86012func (c *InstanceGroupsRemoveInstancesCall) Context(ctx context.Context) *InstanceGroupsRemoveInstancesCall {
86013	c.ctx_ = ctx
86014	return c
86015}
86016
86017// Header returns an http.Header that can be modified by the caller to
86018// add HTTP headers to the request.
86019func (c *InstanceGroupsRemoveInstancesCall) Header() http.Header {
86020	if c.header_ == nil {
86021		c.header_ = make(http.Header)
86022	}
86023	return c.header_
86024}
86025
86026func (c *InstanceGroupsRemoveInstancesCall) doRequest(alt string) (*http.Response, error) {
86027	reqHeaders := make(http.Header)
86028	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
86029	for k, v := range c.header_ {
86030		reqHeaders[k] = v
86031	}
86032	reqHeaders.Set("User-Agent", c.s.userAgent())
86033	var body io.Reader = nil
86034	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsremoveinstancesrequest)
86035	if err != nil {
86036		return nil, err
86037	}
86038	reqHeaders.Set("Content-Type", "application/json")
86039	c.urlParams_.Set("alt", alt)
86040	c.urlParams_.Set("prettyPrint", "false")
86041	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances")
86042	urls += "?" + c.urlParams_.Encode()
86043	req, err := http.NewRequest("POST", urls, body)
86044	if err != nil {
86045		return nil, err
86046	}
86047	req.Header = reqHeaders
86048	googleapi.Expand(req.URL, map[string]string{
86049		"project":       c.project,
86050		"zone":          c.zone,
86051		"instanceGroup": c.instanceGroup,
86052	})
86053	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86054}
86055
86056// Do executes the "compute.instanceGroups.removeInstances" call.
86057// Exactly one of *Operation or error will be non-nil. Any non-2xx
86058// status code is an error. Response headers are in either
86059// *Operation.ServerResponse.Header or (if a response was returned at
86060// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86061// to check whether the returned error was because
86062// http.StatusNotModified was returned.
86063func (c *InstanceGroupsRemoveInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86064	gensupport.SetOptions(c.urlParams_, opts...)
86065	res, err := c.doRequest("json")
86066	if res != nil && res.StatusCode == http.StatusNotModified {
86067		if res.Body != nil {
86068			res.Body.Close()
86069		}
86070		return nil, &googleapi.Error{
86071			Code:   res.StatusCode,
86072			Header: res.Header,
86073		}
86074	}
86075	if err != nil {
86076		return nil, err
86077	}
86078	defer googleapi.CloseBody(res)
86079	if err := googleapi.CheckResponse(res); err != nil {
86080		return nil, err
86081	}
86082	ret := &Operation{
86083		ServerResponse: googleapi.ServerResponse{
86084			Header:         res.Header,
86085			HTTPStatusCode: res.StatusCode,
86086		},
86087	}
86088	target := &ret
86089	if err := gensupport.DecodeResponse(target, res); err != nil {
86090		return nil, err
86091	}
86092	return ret, nil
86093	// {
86094	//   "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.",
86095	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances",
86096	//   "httpMethod": "POST",
86097	//   "id": "compute.instanceGroups.removeInstances",
86098	//   "parameterOrder": [
86099	//     "project",
86100	//     "zone",
86101	//     "instanceGroup"
86102	//   ],
86103	//   "parameters": {
86104	//     "instanceGroup": {
86105	//       "description": "The name of the instance group where the specified instances will be removed.",
86106	//       "location": "path",
86107	//       "required": true,
86108	//       "type": "string"
86109	//     },
86110	//     "project": {
86111	//       "description": "Project ID for this request.",
86112	//       "location": "path",
86113	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86114	//       "required": true,
86115	//       "type": "string"
86116	//     },
86117	//     "requestId": {
86118	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
86119	//       "location": "query",
86120	//       "type": "string"
86121	//     },
86122	//     "zone": {
86123	//       "description": "The name of the zone where the instance group is located.",
86124	//       "location": "path",
86125	//       "required": true,
86126	//       "type": "string"
86127	//     }
86128	//   },
86129	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances",
86130	//   "request": {
86131	//     "$ref": "InstanceGroupsRemoveInstancesRequest"
86132	//   },
86133	//   "response": {
86134	//     "$ref": "Operation"
86135	//   },
86136	//   "scopes": [
86137	//     "https://www.googleapis.com/auth/cloud-platform",
86138	//     "https://www.googleapis.com/auth/compute"
86139	//   ]
86140	// }
86141
86142}
86143
86144// method id "compute.instanceGroups.setNamedPorts":
86145
86146type InstanceGroupsSetNamedPortsCall struct {
86147	s                                  *Service
86148	project                            string
86149	zone                               string
86150	instanceGroup                      string
86151	instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest
86152	urlParams_                         gensupport.URLParams
86153	ctx_                               context.Context
86154	header_                            http.Header
86155}
86156
86157// SetNamedPorts: Sets the named ports for the specified instance group.
86158//
86159// - instanceGroup: The name of the instance group where the named ports
86160//   are updated.
86161// - project: Project ID for this request.
86162// - zone: The name of the zone where the instance group is located.
86163func (r *InstanceGroupsService) SetNamedPorts(project string, zone string, instanceGroup string, instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest) *InstanceGroupsSetNamedPortsCall {
86164	c := &InstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86165	c.project = project
86166	c.zone = zone
86167	c.instanceGroup = instanceGroup
86168	c.instancegroupssetnamedportsrequest = instancegroupssetnamedportsrequest
86169	return c
86170}
86171
86172// RequestId sets the optional parameter "requestId": An optional
86173// request ID to identify requests. Specify a unique request ID so that
86174// if you must retry your request, the server will know to ignore the
86175// request if it has already been completed. For example, consider a
86176// situation where you make an initial request and the request times
86177// out. If you make the request again with the same request ID, the
86178// server can check if original operation with the same request ID was
86179// received, and if so, will ignore the second request. This prevents
86180// clients from accidentally creating duplicate commitments. The request
86181// ID must be a valid UUID with the exception that zero UUID is not
86182// supported ( 00000000-0000-0000-0000-000000000000).
86183func (c *InstanceGroupsSetNamedPortsCall) RequestId(requestId string) *InstanceGroupsSetNamedPortsCall {
86184	c.urlParams_.Set("requestId", requestId)
86185	return c
86186}
86187
86188// Fields allows partial responses to be retrieved. See
86189// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86190// for more information.
86191func (c *InstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *InstanceGroupsSetNamedPortsCall {
86192	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86193	return c
86194}
86195
86196// Context sets the context to be used in this call's Do method. Any
86197// pending HTTP request will be aborted if the provided context is
86198// canceled.
86199func (c *InstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *InstanceGroupsSetNamedPortsCall {
86200	c.ctx_ = ctx
86201	return c
86202}
86203
86204// Header returns an http.Header that can be modified by the caller to
86205// add HTTP headers to the request.
86206func (c *InstanceGroupsSetNamedPortsCall) Header() http.Header {
86207	if c.header_ == nil {
86208		c.header_ = make(http.Header)
86209	}
86210	return c.header_
86211}
86212
86213func (c *InstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) {
86214	reqHeaders := make(http.Header)
86215	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
86216	for k, v := range c.header_ {
86217		reqHeaders[k] = v
86218	}
86219	reqHeaders.Set("User-Agent", c.s.userAgent())
86220	var body io.Reader = nil
86221	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupssetnamedportsrequest)
86222	if err != nil {
86223		return nil, err
86224	}
86225	reqHeaders.Set("Content-Type", "application/json")
86226	c.urlParams_.Set("alt", alt)
86227	c.urlParams_.Set("prettyPrint", "false")
86228	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts")
86229	urls += "?" + c.urlParams_.Encode()
86230	req, err := http.NewRequest("POST", urls, body)
86231	if err != nil {
86232		return nil, err
86233	}
86234	req.Header = reqHeaders
86235	googleapi.Expand(req.URL, map[string]string{
86236		"project":       c.project,
86237		"zone":          c.zone,
86238		"instanceGroup": c.instanceGroup,
86239	})
86240	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86241}
86242
86243// Do executes the "compute.instanceGroups.setNamedPorts" call.
86244// Exactly one of *Operation or error will be non-nil. Any non-2xx
86245// status code is an error. Response headers are in either
86246// *Operation.ServerResponse.Header or (if a response was returned at
86247// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86248// to check whether the returned error was because
86249// http.StatusNotModified was returned.
86250func (c *InstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86251	gensupport.SetOptions(c.urlParams_, opts...)
86252	res, err := c.doRequest("json")
86253	if res != nil && res.StatusCode == http.StatusNotModified {
86254		if res.Body != nil {
86255			res.Body.Close()
86256		}
86257		return nil, &googleapi.Error{
86258			Code:   res.StatusCode,
86259			Header: res.Header,
86260		}
86261	}
86262	if err != nil {
86263		return nil, err
86264	}
86265	defer googleapi.CloseBody(res)
86266	if err := googleapi.CheckResponse(res); err != nil {
86267		return nil, err
86268	}
86269	ret := &Operation{
86270		ServerResponse: googleapi.ServerResponse{
86271			Header:         res.Header,
86272			HTTPStatusCode: res.StatusCode,
86273		},
86274	}
86275	target := &ret
86276	if err := gensupport.DecodeResponse(target, res); err != nil {
86277		return nil, err
86278	}
86279	return ret, nil
86280	// {
86281	//   "description": "Sets the named ports for the specified instance group.",
86282	//   "flatPath": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts",
86283	//   "httpMethod": "POST",
86284	//   "id": "compute.instanceGroups.setNamedPorts",
86285	//   "parameterOrder": [
86286	//     "project",
86287	//     "zone",
86288	//     "instanceGroup"
86289	//   ],
86290	//   "parameters": {
86291	//     "instanceGroup": {
86292	//       "description": "The name of the instance group where the named ports are updated.",
86293	//       "location": "path",
86294	//       "required": true,
86295	//       "type": "string"
86296	//     },
86297	//     "project": {
86298	//       "description": "Project ID for this request.",
86299	//       "location": "path",
86300	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86301	//       "required": true,
86302	//       "type": "string"
86303	//     },
86304	//     "requestId": {
86305	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
86306	//       "location": "query",
86307	//       "type": "string"
86308	//     },
86309	//     "zone": {
86310	//       "description": "The name of the zone where the instance group is located.",
86311	//       "location": "path",
86312	//       "required": true,
86313	//       "type": "string"
86314	//     }
86315	//   },
86316	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts",
86317	//   "request": {
86318	//     "$ref": "InstanceGroupsSetNamedPortsRequest"
86319	//   },
86320	//   "response": {
86321	//     "$ref": "Operation"
86322	//   },
86323	//   "scopes": [
86324	//     "https://www.googleapis.com/auth/cloud-platform",
86325	//     "https://www.googleapis.com/auth/compute"
86326	//   ]
86327	// }
86328
86329}
86330
86331// method id "compute.instanceTemplates.delete":
86332
86333type InstanceTemplatesDeleteCall struct {
86334	s                *Service
86335	project          string
86336	instanceTemplate string
86337	urlParams_       gensupport.URLParams
86338	ctx_             context.Context
86339	header_          http.Header
86340}
86341
86342// Delete: Deletes the specified instance template. Deleting an instance
86343// template is permanent and cannot be undone. It is not possible to
86344// delete templates that are already in use by a managed instance group.
86345//
86346// - instanceTemplate: The name of the instance template to delete.
86347// - project: Project ID for this request.
86348func (r *InstanceTemplatesService) Delete(project string, instanceTemplate string) *InstanceTemplatesDeleteCall {
86349	c := &InstanceTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86350	c.project = project
86351	c.instanceTemplate = instanceTemplate
86352	return c
86353}
86354
86355// RequestId sets the optional parameter "requestId": An optional
86356// request ID to identify requests. Specify a unique request ID so that
86357// if you must retry your request, the server will know to ignore the
86358// request if it has already been completed. For example, consider a
86359// situation where you make an initial request and the request times
86360// out. If you make the request again with the same request ID, the
86361// server can check if original operation with the same request ID was
86362// received, and if so, will ignore the second request. This prevents
86363// clients from accidentally creating duplicate commitments. The request
86364// ID must be a valid UUID with the exception that zero UUID is not
86365// supported ( 00000000-0000-0000-0000-000000000000).
86366func (c *InstanceTemplatesDeleteCall) RequestId(requestId string) *InstanceTemplatesDeleteCall {
86367	c.urlParams_.Set("requestId", requestId)
86368	return c
86369}
86370
86371// Fields allows partial responses to be retrieved. See
86372// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86373// for more information.
86374func (c *InstanceTemplatesDeleteCall) Fields(s ...googleapi.Field) *InstanceTemplatesDeleteCall {
86375	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86376	return c
86377}
86378
86379// Context sets the context to be used in this call's Do method. Any
86380// pending HTTP request will be aborted if the provided context is
86381// canceled.
86382func (c *InstanceTemplatesDeleteCall) Context(ctx context.Context) *InstanceTemplatesDeleteCall {
86383	c.ctx_ = ctx
86384	return c
86385}
86386
86387// Header returns an http.Header that can be modified by the caller to
86388// add HTTP headers to the request.
86389func (c *InstanceTemplatesDeleteCall) Header() http.Header {
86390	if c.header_ == nil {
86391		c.header_ = make(http.Header)
86392	}
86393	return c.header_
86394}
86395
86396func (c *InstanceTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) {
86397	reqHeaders := make(http.Header)
86398	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
86399	for k, v := range c.header_ {
86400		reqHeaders[k] = v
86401	}
86402	reqHeaders.Set("User-Agent", c.s.userAgent())
86403	var body io.Reader = nil
86404	c.urlParams_.Set("alt", alt)
86405	c.urlParams_.Set("prettyPrint", "false")
86406	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{instanceTemplate}")
86407	urls += "?" + c.urlParams_.Encode()
86408	req, err := http.NewRequest("DELETE", urls, body)
86409	if err != nil {
86410		return nil, err
86411	}
86412	req.Header = reqHeaders
86413	googleapi.Expand(req.URL, map[string]string{
86414		"project":          c.project,
86415		"instanceTemplate": c.instanceTemplate,
86416	})
86417	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86418}
86419
86420// Do executes the "compute.instanceTemplates.delete" call.
86421// Exactly one of *Operation or error will be non-nil. Any non-2xx
86422// status code is an error. Response headers are in either
86423// *Operation.ServerResponse.Header or (if a response was returned at
86424// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86425// to check whether the returned error was because
86426// http.StatusNotModified was returned.
86427func (c *InstanceTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86428	gensupport.SetOptions(c.urlParams_, opts...)
86429	res, err := c.doRequest("json")
86430	if res != nil && res.StatusCode == http.StatusNotModified {
86431		if res.Body != nil {
86432			res.Body.Close()
86433		}
86434		return nil, &googleapi.Error{
86435			Code:   res.StatusCode,
86436			Header: res.Header,
86437		}
86438	}
86439	if err != nil {
86440		return nil, err
86441	}
86442	defer googleapi.CloseBody(res)
86443	if err := googleapi.CheckResponse(res); err != nil {
86444		return nil, err
86445	}
86446	ret := &Operation{
86447		ServerResponse: googleapi.ServerResponse{
86448			Header:         res.Header,
86449			HTTPStatusCode: res.StatusCode,
86450		},
86451	}
86452	target := &ret
86453	if err := gensupport.DecodeResponse(target, res); err != nil {
86454		return nil, err
86455	}
86456	return ret, nil
86457	// {
86458	//   "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.",
86459	//   "flatPath": "projects/{project}/global/instanceTemplates/{instanceTemplate}",
86460	//   "httpMethod": "DELETE",
86461	//   "id": "compute.instanceTemplates.delete",
86462	//   "parameterOrder": [
86463	//     "project",
86464	//     "instanceTemplate"
86465	//   ],
86466	//   "parameters": {
86467	//     "instanceTemplate": {
86468	//       "description": "The name of the instance template to delete.",
86469	//       "location": "path",
86470	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86471	//       "required": true,
86472	//       "type": "string"
86473	//     },
86474	//     "project": {
86475	//       "description": "Project ID for this request.",
86476	//       "location": "path",
86477	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86478	//       "required": true,
86479	//       "type": "string"
86480	//     },
86481	//     "requestId": {
86482	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
86483	//       "location": "query",
86484	//       "type": "string"
86485	//     }
86486	//   },
86487	//   "path": "projects/{project}/global/instanceTemplates/{instanceTemplate}",
86488	//   "response": {
86489	//     "$ref": "Operation"
86490	//   },
86491	//   "scopes": [
86492	//     "https://www.googleapis.com/auth/cloud-platform",
86493	//     "https://www.googleapis.com/auth/compute"
86494	//   ]
86495	// }
86496
86497}
86498
86499// method id "compute.instanceTemplates.get":
86500
86501type InstanceTemplatesGetCall struct {
86502	s                *Service
86503	project          string
86504	instanceTemplate string
86505	urlParams_       gensupport.URLParams
86506	ifNoneMatch_     string
86507	ctx_             context.Context
86508	header_          http.Header
86509}
86510
86511// Get: Returns the specified instance template. Gets a list of
86512// available instance templates by making a list() request.
86513//
86514// - instanceTemplate: The name of the instance template.
86515// - project: Project ID for this request.
86516func (r *InstanceTemplatesService) Get(project string, instanceTemplate string) *InstanceTemplatesGetCall {
86517	c := &InstanceTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86518	c.project = project
86519	c.instanceTemplate = instanceTemplate
86520	return c
86521}
86522
86523// Fields allows partial responses to be retrieved. See
86524// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86525// for more information.
86526func (c *InstanceTemplatesGetCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetCall {
86527	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86528	return c
86529}
86530
86531// IfNoneMatch sets the optional parameter which makes the operation
86532// fail if the object's ETag matches the given value. This is useful for
86533// getting updates only after the object has changed since the last
86534// request. Use googleapi.IsNotModified to check whether the response
86535// error from Do is the result of In-None-Match.
86536func (c *InstanceTemplatesGetCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetCall {
86537	c.ifNoneMatch_ = entityTag
86538	return c
86539}
86540
86541// Context sets the context to be used in this call's Do method. Any
86542// pending HTTP request will be aborted if the provided context is
86543// canceled.
86544func (c *InstanceTemplatesGetCall) Context(ctx context.Context) *InstanceTemplatesGetCall {
86545	c.ctx_ = ctx
86546	return c
86547}
86548
86549// Header returns an http.Header that can be modified by the caller to
86550// add HTTP headers to the request.
86551func (c *InstanceTemplatesGetCall) Header() http.Header {
86552	if c.header_ == nil {
86553		c.header_ = make(http.Header)
86554	}
86555	return c.header_
86556}
86557
86558func (c *InstanceTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
86559	reqHeaders := make(http.Header)
86560	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
86561	for k, v := range c.header_ {
86562		reqHeaders[k] = v
86563	}
86564	reqHeaders.Set("User-Agent", c.s.userAgent())
86565	if c.ifNoneMatch_ != "" {
86566		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
86567	}
86568	var body io.Reader = nil
86569	c.urlParams_.Set("alt", alt)
86570	c.urlParams_.Set("prettyPrint", "false")
86571	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{instanceTemplate}")
86572	urls += "?" + c.urlParams_.Encode()
86573	req, err := http.NewRequest("GET", urls, body)
86574	if err != nil {
86575		return nil, err
86576	}
86577	req.Header = reqHeaders
86578	googleapi.Expand(req.URL, map[string]string{
86579		"project":          c.project,
86580		"instanceTemplate": c.instanceTemplate,
86581	})
86582	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86583}
86584
86585// Do executes the "compute.instanceTemplates.get" call.
86586// Exactly one of *InstanceTemplate or error will be non-nil. Any
86587// non-2xx status code is an error. Response headers are in either
86588// *InstanceTemplate.ServerResponse.Header or (if a response was
86589// returned at all) in error.(*googleapi.Error).Header. Use
86590// googleapi.IsNotModified to check whether the returned error was
86591// because http.StatusNotModified was returned.
86592func (c *InstanceTemplatesGetCall) Do(opts ...googleapi.CallOption) (*InstanceTemplate, error) {
86593	gensupport.SetOptions(c.urlParams_, opts...)
86594	res, err := c.doRequest("json")
86595	if res != nil && res.StatusCode == http.StatusNotModified {
86596		if res.Body != nil {
86597			res.Body.Close()
86598		}
86599		return nil, &googleapi.Error{
86600			Code:   res.StatusCode,
86601			Header: res.Header,
86602		}
86603	}
86604	if err != nil {
86605		return nil, err
86606	}
86607	defer googleapi.CloseBody(res)
86608	if err := googleapi.CheckResponse(res); err != nil {
86609		return nil, err
86610	}
86611	ret := &InstanceTemplate{
86612		ServerResponse: googleapi.ServerResponse{
86613			Header:         res.Header,
86614			HTTPStatusCode: res.StatusCode,
86615		},
86616	}
86617	target := &ret
86618	if err := gensupport.DecodeResponse(target, res); err != nil {
86619		return nil, err
86620	}
86621	return ret, nil
86622	// {
86623	//   "description": "Returns the specified instance template. Gets a list of available instance templates by making a list() request.",
86624	//   "flatPath": "projects/{project}/global/instanceTemplates/{instanceTemplate}",
86625	//   "httpMethod": "GET",
86626	//   "id": "compute.instanceTemplates.get",
86627	//   "parameterOrder": [
86628	//     "project",
86629	//     "instanceTemplate"
86630	//   ],
86631	//   "parameters": {
86632	//     "instanceTemplate": {
86633	//       "description": "The name of the instance template.",
86634	//       "location": "path",
86635	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86636	//       "required": true,
86637	//       "type": "string"
86638	//     },
86639	//     "project": {
86640	//       "description": "Project ID for this request.",
86641	//       "location": "path",
86642	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86643	//       "required": true,
86644	//       "type": "string"
86645	//     }
86646	//   },
86647	//   "path": "projects/{project}/global/instanceTemplates/{instanceTemplate}",
86648	//   "response": {
86649	//     "$ref": "InstanceTemplate"
86650	//   },
86651	//   "scopes": [
86652	//     "https://www.googleapis.com/auth/cloud-platform",
86653	//     "https://www.googleapis.com/auth/compute",
86654	//     "https://www.googleapis.com/auth/compute.readonly"
86655	//   ]
86656	// }
86657
86658}
86659
86660// method id "compute.instanceTemplates.getIamPolicy":
86661
86662type InstanceTemplatesGetIamPolicyCall struct {
86663	s            *Service
86664	project      string
86665	resource     string
86666	urlParams_   gensupport.URLParams
86667	ifNoneMatch_ string
86668	ctx_         context.Context
86669	header_      http.Header
86670}
86671
86672// GetIamPolicy: Gets the access control policy for a resource. May be
86673// empty if no such policy or resource exists.
86674//
86675// - project: Project ID for this request.
86676// - resource: Name or id of the resource for this request.
86677func (r *InstanceTemplatesService) GetIamPolicy(project string, resource string) *InstanceTemplatesGetIamPolicyCall {
86678	c := &InstanceTemplatesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86679	c.project = project
86680	c.resource = resource
86681	return c
86682}
86683
86684// OptionsRequestedPolicyVersion sets the optional parameter
86685// "optionsRequestedPolicyVersion": Requested IAM Policy version.
86686func (c *InstanceTemplatesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InstanceTemplatesGetIamPolicyCall {
86687	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
86688	return c
86689}
86690
86691// Fields allows partial responses to be retrieved. See
86692// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86693// for more information.
86694func (c *InstanceTemplatesGetIamPolicyCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetIamPolicyCall {
86695	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86696	return c
86697}
86698
86699// IfNoneMatch sets the optional parameter which makes the operation
86700// fail if the object's ETag matches the given value. This is useful for
86701// getting updates only after the object has changed since the last
86702// request. Use googleapi.IsNotModified to check whether the response
86703// error from Do is the result of In-None-Match.
86704func (c *InstanceTemplatesGetIamPolicyCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetIamPolicyCall {
86705	c.ifNoneMatch_ = entityTag
86706	return c
86707}
86708
86709// Context sets the context to be used in this call's Do method. Any
86710// pending HTTP request will be aborted if the provided context is
86711// canceled.
86712func (c *InstanceTemplatesGetIamPolicyCall) Context(ctx context.Context) *InstanceTemplatesGetIamPolicyCall {
86713	c.ctx_ = ctx
86714	return c
86715}
86716
86717// Header returns an http.Header that can be modified by the caller to
86718// add HTTP headers to the request.
86719func (c *InstanceTemplatesGetIamPolicyCall) Header() http.Header {
86720	if c.header_ == nil {
86721		c.header_ = make(http.Header)
86722	}
86723	return c.header_
86724}
86725
86726func (c *InstanceTemplatesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
86727	reqHeaders := make(http.Header)
86728	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
86729	for k, v := range c.header_ {
86730		reqHeaders[k] = v
86731	}
86732	reqHeaders.Set("User-Agent", c.s.userAgent())
86733	if c.ifNoneMatch_ != "" {
86734		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
86735	}
86736	var body io.Reader = nil
86737	c.urlParams_.Set("alt", alt)
86738	c.urlParams_.Set("prettyPrint", "false")
86739	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{resource}/getIamPolicy")
86740	urls += "?" + c.urlParams_.Encode()
86741	req, err := http.NewRequest("GET", urls, body)
86742	if err != nil {
86743		return nil, err
86744	}
86745	req.Header = reqHeaders
86746	googleapi.Expand(req.URL, map[string]string{
86747		"project":  c.project,
86748		"resource": c.resource,
86749	})
86750	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86751}
86752
86753// Do executes the "compute.instanceTemplates.getIamPolicy" call.
86754// Exactly one of *Policy or error will be non-nil. Any non-2xx status
86755// code is an error. Response headers are in either
86756// *Policy.ServerResponse.Header or (if a response was returned at all)
86757// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
86758// check whether the returned error was because http.StatusNotModified
86759// was returned.
86760func (c *InstanceTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
86761	gensupport.SetOptions(c.urlParams_, opts...)
86762	res, err := c.doRequest("json")
86763	if res != nil && res.StatusCode == http.StatusNotModified {
86764		if res.Body != nil {
86765			res.Body.Close()
86766		}
86767		return nil, &googleapi.Error{
86768			Code:   res.StatusCode,
86769			Header: res.Header,
86770		}
86771	}
86772	if err != nil {
86773		return nil, err
86774	}
86775	defer googleapi.CloseBody(res)
86776	if err := googleapi.CheckResponse(res); err != nil {
86777		return nil, err
86778	}
86779	ret := &Policy{
86780		ServerResponse: googleapi.ServerResponse{
86781			Header:         res.Header,
86782			HTTPStatusCode: res.StatusCode,
86783		},
86784	}
86785	target := &ret
86786	if err := gensupport.DecodeResponse(target, res); err != nil {
86787		return nil, err
86788	}
86789	return ret, nil
86790	// {
86791	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
86792	//   "flatPath": "projects/{project}/global/instanceTemplates/{resource}/getIamPolicy",
86793	//   "httpMethod": "GET",
86794	//   "id": "compute.instanceTemplates.getIamPolicy",
86795	//   "parameterOrder": [
86796	//     "project",
86797	//     "resource"
86798	//   ],
86799	//   "parameters": {
86800	//     "optionsRequestedPolicyVersion": {
86801	//       "description": "Requested IAM Policy version.",
86802	//       "format": "int32",
86803	//       "location": "query",
86804	//       "type": "integer"
86805	//     },
86806	//     "project": {
86807	//       "description": "Project ID for this request.",
86808	//       "location": "path",
86809	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86810	//       "required": true,
86811	//       "type": "string"
86812	//     },
86813	//     "resource": {
86814	//       "description": "Name or id of the resource for this request.",
86815	//       "location": "path",
86816	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86817	//       "required": true,
86818	//       "type": "string"
86819	//     }
86820	//   },
86821	//   "path": "projects/{project}/global/instanceTemplates/{resource}/getIamPolicy",
86822	//   "response": {
86823	//     "$ref": "Policy"
86824	//   },
86825	//   "scopes": [
86826	//     "https://www.googleapis.com/auth/cloud-platform",
86827	//     "https://www.googleapis.com/auth/compute",
86828	//     "https://www.googleapis.com/auth/compute.readonly"
86829	//   ]
86830	// }
86831
86832}
86833
86834// method id "compute.instanceTemplates.insert":
86835
86836type InstanceTemplatesInsertCall struct {
86837	s                *Service
86838	project          string
86839	instancetemplate *InstanceTemplate
86840	urlParams_       gensupport.URLParams
86841	ctx_             context.Context
86842	header_          http.Header
86843}
86844
86845// Insert: Creates an instance template in the specified project using
86846// the data that is included in the request. If you are creating a new
86847// template to update an existing instance group, your new instance
86848// template must use the same network or, if applicable, the same
86849// subnetwork as the original template.
86850//
86851// - project: Project ID for this request.
86852func (r *InstanceTemplatesService) Insert(project string, instancetemplate *InstanceTemplate) *InstanceTemplatesInsertCall {
86853	c := &InstanceTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86854	c.project = project
86855	c.instancetemplate = instancetemplate
86856	return c
86857}
86858
86859// RequestId sets the optional parameter "requestId": An optional
86860// request ID to identify requests. Specify a unique request ID so that
86861// if you must retry your request, the server will know to ignore the
86862// request if it has already been completed. For example, consider a
86863// situation where you make an initial request and the request times
86864// out. If you make the request again with the same request ID, the
86865// server can check if original operation with the same request ID was
86866// received, and if so, will ignore the second request. This prevents
86867// clients from accidentally creating duplicate commitments. The request
86868// ID must be a valid UUID with the exception that zero UUID is not
86869// supported ( 00000000-0000-0000-0000-000000000000).
86870func (c *InstanceTemplatesInsertCall) RequestId(requestId string) *InstanceTemplatesInsertCall {
86871	c.urlParams_.Set("requestId", requestId)
86872	return c
86873}
86874
86875// Fields allows partial responses to be retrieved. See
86876// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86877// for more information.
86878func (c *InstanceTemplatesInsertCall) Fields(s ...googleapi.Field) *InstanceTemplatesInsertCall {
86879	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86880	return c
86881}
86882
86883// Context sets the context to be used in this call's Do method. Any
86884// pending HTTP request will be aborted if the provided context is
86885// canceled.
86886func (c *InstanceTemplatesInsertCall) Context(ctx context.Context) *InstanceTemplatesInsertCall {
86887	c.ctx_ = ctx
86888	return c
86889}
86890
86891// Header returns an http.Header that can be modified by the caller to
86892// add HTTP headers to the request.
86893func (c *InstanceTemplatesInsertCall) Header() http.Header {
86894	if c.header_ == nil {
86895		c.header_ = make(http.Header)
86896	}
86897	return c.header_
86898}
86899
86900func (c *InstanceTemplatesInsertCall) doRequest(alt string) (*http.Response, error) {
86901	reqHeaders := make(http.Header)
86902	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
86903	for k, v := range c.header_ {
86904		reqHeaders[k] = v
86905	}
86906	reqHeaders.Set("User-Agent", c.s.userAgent())
86907	var body io.Reader = nil
86908	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancetemplate)
86909	if err != nil {
86910		return nil, err
86911	}
86912	reqHeaders.Set("Content-Type", "application/json")
86913	c.urlParams_.Set("alt", alt)
86914	c.urlParams_.Set("prettyPrint", "false")
86915	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates")
86916	urls += "?" + c.urlParams_.Encode()
86917	req, err := http.NewRequest("POST", urls, body)
86918	if err != nil {
86919		return nil, err
86920	}
86921	req.Header = reqHeaders
86922	googleapi.Expand(req.URL, map[string]string{
86923		"project": c.project,
86924	})
86925	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86926}
86927
86928// Do executes the "compute.instanceTemplates.insert" call.
86929// Exactly one of *Operation or error will be non-nil. Any non-2xx
86930// status code is an error. Response headers are in either
86931// *Operation.ServerResponse.Header or (if a response was returned at
86932// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86933// to check whether the returned error was because
86934// http.StatusNotModified was returned.
86935func (c *InstanceTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86936	gensupport.SetOptions(c.urlParams_, opts...)
86937	res, err := c.doRequest("json")
86938	if res != nil && res.StatusCode == http.StatusNotModified {
86939		if res.Body != nil {
86940			res.Body.Close()
86941		}
86942		return nil, &googleapi.Error{
86943			Code:   res.StatusCode,
86944			Header: res.Header,
86945		}
86946	}
86947	if err != nil {
86948		return nil, err
86949	}
86950	defer googleapi.CloseBody(res)
86951	if err := googleapi.CheckResponse(res); err != nil {
86952		return nil, err
86953	}
86954	ret := &Operation{
86955		ServerResponse: googleapi.ServerResponse{
86956			Header:         res.Header,
86957			HTTPStatusCode: res.StatusCode,
86958		},
86959	}
86960	target := &ret
86961	if err := gensupport.DecodeResponse(target, res); err != nil {
86962		return nil, err
86963	}
86964	return ret, nil
86965	// {
86966	//   "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.",
86967	//   "flatPath": "projects/{project}/global/instanceTemplates",
86968	//   "httpMethod": "POST",
86969	//   "id": "compute.instanceTemplates.insert",
86970	//   "parameterOrder": [
86971	//     "project"
86972	//   ],
86973	//   "parameters": {
86974	//     "project": {
86975	//       "description": "Project ID for this request.",
86976	//       "location": "path",
86977	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86978	//       "required": true,
86979	//       "type": "string"
86980	//     },
86981	//     "requestId": {
86982	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
86983	//       "location": "query",
86984	//       "type": "string"
86985	//     }
86986	//   },
86987	//   "path": "projects/{project}/global/instanceTemplates",
86988	//   "request": {
86989	//     "$ref": "InstanceTemplate"
86990	//   },
86991	//   "response": {
86992	//     "$ref": "Operation"
86993	//   },
86994	//   "scopes": [
86995	//     "https://www.googleapis.com/auth/cloud-platform",
86996	//     "https://www.googleapis.com/auth/compute"
86997	//   ]
86998	// }
86999
87000}
87001
87002// method id "compute.instanceTemplates.list":
87003
87004type InstanceTemplatesListCall struct {
87005	s            *Service
87006	project      string
87007	urlParams_   gensupport.URLParams
87008	ifNoneMatch_ string
87009	ctx_         context.Context
87010	header_      http.Header
87011}
87012
87013// List: Retrieves a list of instance templates that are contained
87014// within the specified project.
87015//
87016// - project: Project ID for this request.
87017func (r *InstanceTemplatesService) List(project string) *InstanceTemplatesListCall {
87018	c := &InstanceTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87019	c.project = project
87020	return c
87021}
87022
87023// Filter sets the optional parameter "filter": A filter expression that
87024// filters resources listed in the response. The expression must specify
87025// the field name, a comparison operator, and the value that you want to
87026// use for filtering. The value must be a string, a number, or a
87027// boolean. The comparison operator must be either `=`, `!=`, `>`, or
87028// `<`. For example, if you are filtering Compute Engine instances, you
87029// can exclude instances named `example-instance` by specifying `name !=
87030// example-instance`. You can also filter nested fields. For example,
87031// you could specify `scheduling.automaticRestart = false` to include
87032// instances only if they are not scheduled for automatic restarts. You
87033// can use filtering on nested fields to filter based on resource
87034// labels. To filter on multiple expressions, provide each separate
87035// expression within parentheses. For example: ```
87036// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
87037// ``` By default, each expression is an `AND` expression. However, you
87038// can include `AND` and `OR` expressions explicitly. For example: ```
87039// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
87040// AND (scheduling.automaticRestart = true) ```
87041func (c *InstanceTemplatesListCall) Filter(filter string) *InstanceTemplatesListCall {
87042	c.urlParams_.Set("filter", filter)
87043	return c
87044}
87045
87046// MaxResults sets the optional parameter "maxResults": The maximum
87047// number of results per page that should be returned. If the number of
87048// available results is larger than `maxResults`, Compute Engine returns
87049// a `nextPageToken` that can be used to get the next page of results in
87050// subsequent list requests. Acceptable values are `0` to `500`,
87051// inclusive. (Default: `500`)
87052func (c *InstanceTemplatesListCall) MaxResults(maxResults int64) *InstanceTemplatesListCall {
87053	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
87054	return c
87055}
87056
87057// OrderBy sets the optional parameter "orderBy": Sorts list results by
87058// a certain order. By default, results are returned in alphanumerical
87059// order based on the resource name. You can also sort results in
87060// descending order based on the creation timestamp using
87061// `orderBy="creationTimestamp desc". This sorts results based on the
87062// `creationTimestamp` field in reverse chronological order (newest
87063// result first). Use this to sort resources like operations so that the
87064// newest operation is returned first. Currently, only sorting by `name`
87065// or `creationTimestamp desc` is supported.
87066func (c *InstanceTemplatesListCall) OrderBy(orderBy string) *InstanceTemplatesListCall {
87067	c.urlParams_.Set("orderBy", orderBy)
87068	return c
87069}
87070
87071// PageToken sets the optional parameter "pageToken": Specifies a page
87072// token to use. Set `pageToken` to the `nextPageToken` returned by a
87073// previous list request to get the next page of results.
87074func (c *InstanceTemplatesListCall) PageToken(pageToken string) *InstanceTemplatesListCall {
87075	c.urlParams_.Set("pageToken", pageToken)
87076	return c
87077}
87078
87079// ReturnPartialSuccess sets the optional parameter
87080// "returnPartialSuccess": Opt-in for partial success behavior which
87081// provides partial results in case of failure. The default value is
87082// false.
87083func (c *InstanceTemplatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceTemplatesListCall {
87084	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
87085	return c
87086}
87087
87088// Fields allows partial responses to be retrieved. See
87089// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87090// for more information.
87091func (c *InstanceTemplatesListCall) Fields(s ...googleapi.Field) *InstanceTemplatesListCall {
87092	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87093	return c
87094}
87095
87096// IfNoneMatch sets the optional parameter which makes the operation
87097// fail if the object's ETag matches the given value. This is useful for
87098// getting updates only after the object has changed since the last
87099// request. Use googleapi.IsNotModified to check whether the response
87100// error from Do is the result of In-None-Match.
87101func (c *InstanceTemplatesListCall) IfNoneMatch(entityTag string) *InstanceTemplatesListCall {
87102	c.ifNoneMatch_ = entityTag
87103	return c
87104}
87105
87106// Context sets the context to be used in this call's Do method. Any
87107// pending HTTP request will be aborted if the provided context is
87108// canceled.
87109func (c *InstanceTemplatesListCall) Context(ctx context.Context) *InstanceTemplatesListCall {
87110	c.ctx_ = ctx
87111	return c
87112}
87113
87114// Header returns an http.Header that can be modified by the caller to
87115// add HTTP headers to the request.
87116func (c *InstanceTemplatesListCall) Header() http.Header {
87117	if c.header_ == nil {
87118		c.header_ = make(http.Header)
87119	}
87120	return c.header_
87121}
87122
87123func (c *InstanceTemplatesListCall) doRequest(alt string) (*http.Response, error) {
87124	reqHeaders := make(http.Header)
87125	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
87126	for k, v := range c.header_ {
87127		reqHeaders[k] = v
87128	}
87129	reqHeaders.Set("User-Agent", c.s.userAgent())
87130	if c.ifNoneMatch_ != "" {
87131		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
87132	}
87133	var body io.Reader = nil
87134	c.urlParams_.Set("alt", alt)
87135	c.urlParams_.Set("prettyPrint", "false")
87136	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates")
87137	urls += "?" + c.urlParams_.Encode()
87138	req, err := http.NewRequest("GET", urls, body)
87139	if err != nil {
87140		return nil, err
87141	}
87142	req.Header = reqHeaders
87143	googleapi.Expand(req.URL, map[string]string{
87144		"project": c.project,
87145	})
87146	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87147}
87148
87149// Do executes the "compute.instanceTemplates.list" call.
87150// Exactly one of *InstanceTemplateList or error will be non-nil. Any
87151// non-2xx status code is an error. Response headers are in either
87152// *InstanceTemplateList.ServerResponse.Header or (if a response was
87153// returned at all) in error.(*googleapi.Error).Header. Use
87154// googleapi.IsNotModified to check whether the returned error was
87155// because http.StatusNotModified was returned.
87156func (c *InstanceTemplatesListCall) Do(opts ...googleapi.CallOption) (*InstanceTemplateList, error) {
87157	gensupport.SetOptions(c.urlParams_, opts...)
87158	res, err := c.doRequest("json")
87159	if res != nil && res.StatusCode == http.StatusNotModified {
87160		if res.Body != nil {
87161			res.Body.Close()
87162		}
87163		return nil, &googleapi.Error{
87164			Code:   res.StatusCode,
87165			Header: res.Header,
87166		}
87167	}
87168	if err != nil {
87169		return nil, err
87170	}
87171	defer googleapi.CloseBody(res)
87172	if err := googleapi.CheckResponse(res); err != nil {
87173		return nil, err
87174	}
87175	ret := &InstanceTemplateList{
87176		ServerResponse: googleapi.ServerResponse{
87177			Header:         res.Header,
87178			HTTPStatusCode: res.StatusCode,
87179		},
87180	}
87181	target := &ret
87182	if err := gensupport.DecodeResponse(target, res); err != nil {
87183		return nil, err
87184	}
87185	return ret, nil
87186	// {
87187	//   "description": "Retrieves a list of instance templates that are contained within the specified project.",
87188	//   "flatPath": "projects/{project}/global/instanceTemplates",
87189	//   "httpMethod": "GET",
87190	//   "id": "compute.instanceTemplates.list",
87191	//   "parameterOrder": [
87192	//     "project"
87193	//   ],
87194	//   "parameters": {
87195	//     "filter": {
87196	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
87197	//       "location": "query",
87198	//       "type": "string"
87199	//     },
87200	//     "maxResults": {
87201	//       "default": "500",
87202	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
87203	//       "format": "uint32",
87204	//       "location": "query",
87205	//       "minimum": "0",
87206	//       "type": "integer"
87207	//     },
87208	//     "orderBy": {
87209	//       "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.",
87210	//       "location": "query",
87211	//       "type": "string"
87212	//     },
87213	//     "pageToken": {
87214	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
87215	//       "location": "query",
87216	//       "type": "string"
87217	//     },
87218	//     "project": {
87219	//       "description": "Project ID for this request.",
87220	//       "location": "path",
87221	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87222	//       "required": true,
87223	//       "type": "string"
87224	//     },
87225	//     "returnPartialSuccess": {
87226	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
87227	//       "location": "query",
87228	//       "type": "boolean"
87229	//     }
87230	//   },
87231	//   "path": "projects/{project}/global/instanceTemplates",
87232	//   "response": {
87233	//     "$ref": "InstanceTemplateList"
87234	//   },
87235	//   "scopes": [
87236	//     "https://www.googleapis.com/auth/cloud-platform",
87237	//     "https://www.googleapis.com/auth/compute",
87238	//     "https://www.googleapis.com/auth/compute.readonly"
87239	//   ]
87240	// }
87241
87242}
87243
87244// Pages invokes f for each page of results.
87245// A non-nil error returned from f will halt the iteration.
87246// The provided context supersedes any context provided to the Context method.
87247func (c *InstanceTemplatesListCall) Pages(ctx context.Context, f func(*InstanceTemplateList) error) error {
87248	c.ctx_ = ctx
87249	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
87250	for {
87251		x, err := c.Do()
87252		if err != nil {
87253			return err
87254		}
87255		if err := f(x); err != nil {
87256			return err
87257		}
87258		if x.NextPageToken == "" {
87259			return nil
87260		}
87261		c.PageToken(x.NextPageToken)
87262	}
87263}
87264
87265// method id "compute.instanceTemplates.setIamPolicy":
87266
87267type InstanceTemplatesSetIamPolicyCall struct {
87268	s                      *Service
87269	project                string
87270	resource               string
87271	globalsetpolicyrequest *GlobalSetPolicyRequest
87272	urlParams_             gensupport.URLParams
87273	ctx_                   context.Context
87274	header_                http.Header
87275}
87276
87277// SetIamPolicy: Sets the access control policy on the specified
87278// resource. Replaces any existing policy.
87279//
87280// - project: Project ID for this request.
87281// - resource: Name or id of the resource for this request.
87282func (r *InstanceTemplatesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *InstanceTemplatesSetIamPolicyCall {
87283	c := &InstanceTemplatesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87284	c.project = project
87285	c.resource = resource
87286	c.globalsetpolicyrequest = globalsetpolicyrequest
87287	return c
87288}
87289
87290// Fields allows partial responses to be retrieved. See
87291// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87292// for more information.
87293func (c *InstanceTemplatesSetIamPolicyCall) Fields(s ...googleapi.Field) *InstanceTemplatesSetIamPolicyCall {
87294	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87295	return c
87296}
87297
87298// Context sets the context to be used in this call's Do method. Any
87299// pending HTTP request will be aborted if the provided context is
87300// canceled.
87301func (c *InstanceTemplatesSetIamPolicyCall) Context(ctx context.Context) *InstanceTemplatesSetIamPolicyCall {
87302	c.ctx_ = ctx
87303	return c
87304}
87305
87306// Header returns an http.Header that can be modified by the caller to
87307// add HTTP headers to the request.
87308func (c *InstanceTemplatesSetIamPolicyCall) Header() http.Header {
87309	if c.header_ == nil {
87310		c.header_ = make(http.Header)
87311	}
87312	return c.header_
87313}
87314
87315func (c *InstanceTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
87316	reqHeaders := make(http.Header)
87317	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
87318	for k, v := range c.header_ {
87319		reqHeaders[k] = v
87320	}
87321	reqHeaders.Set("User-Agent", c.s.userAgent())
87322	var body io.Reader = nil
87323	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
87324	if err != nil {
87325		return nil, err
87326	}
87327	reqHeaders.Set("Content-Type", "application/json")
87328	c.urlParams_.Set("alt", alt)
87329	c.urlParams_.Set("prettyPrint", "false")
87330	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{resource}/setIamPolicy")
87331	urls += "?" + c.urlParams_.Encode()
87332	req, err := http.NewRequest("POST", urls, body)
87333	if err != nil {
87334		return nil, err
87335	}
87336	req.Header = reqHeaders
87337	googleapi.Expand(req.URL, map[string]string{
87338		"project":  c.project,
87339		"resource": c.resource,
87340	})
87341	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87342}
87343
87344// Do executes the "compute.instanceTemplates.setIamPolicy" call.
87345// Exactly one of *Policy or error will be non-nil. Any non-2xx status
87346// code is an error. Response headers are in either
87347// *Policy.ServerResponse.Header or (if a response was returned at all)
87348// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
87349// check whether the returned error was because http.StatusNotModified
87350// was returned.
87351func (c *InstanceTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
87352	gensupport.SetOptions(c.urlParams_, opts...)
87353	res, err := c.doRequest("json")
87354	if res != nil && res.StatusCode == http.StatusNotModified {
87355		if res.Body != nil {
87356			res.Body.Close()
87357		}
87358		return nil, &googleapi.Error{
87359			Code:   res.StatusCode,
87360			Header: res.Header,
87361		}
87362	}
87363	if err != nil {
87364		return nil, err
87365	}
87366	defer googleapi.CloseBody(res)
87367	if err := googleapi.CheckResponse(res); err != nil {
87368		return nil, err
87369	}
87370	ret := &Policy{
87371		ServerResponse: googleapi.ServerResponse{
87372			Header:         res.Header,
87373			HTTPStatusCode: res.StatusCode,
87374		},
87375	}
87376	target := &ret
87377	if err := gensupport.DecodeResponse(target, res); err != nil {
87378		return nil, err
87379	}
87380	return ret, nil
87381	// {
87382	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
87383	//   "flatPath": "projects/{project}/global/instanceTemplates/{resource}/setIamPolicy",
87384	//   "httpMethod": "POST",
87385	//   "id": "compute.instanceTemplates.setIamPolicy",
87386	//   "parameterOrder": [
87387	//     "project",
87388	//     "resource"
87389	//   ],
87390	//   "parameters": {
87391	//     "project": {
87392	//       "description": "Project ID for this request.",
87393	//       "location": "path",
87394	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87395	//       "required": true,
87396	//       "type": "string"
87397	//     },
87398	//     "resource": {
87399	//       "description": "Name or id of the resource for this request.",
87400	//       "location": "path",
87401	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87402	//       "required": true,
87403	//       "type": "string"
87404	//     }
87405	//   },
87406	//   "path": "projects/{project}/global/instanceTemplates/{resource}/setIamPolicy",
87407	//   "request": {
87408	//     "$ref": "GlobalSetPolicyRequest"
87409	//   },
87410	//   "response": {
87411	//     "$ref": "Policy"
87412	//   },
87413	//   "scopes": [
87414	//     "https://www.googleapis.com/auth/cloud-platform",
87415	//     "https://www.googleapis.com/auth/compute"
87416	//   ]
87417	// }
87418
87419}
87420
87421// method id "compute.instanceTemplates.testIamPermissions":
87422
87423type InstanceTemplatesTestIamPermissionsCall struct {
87424	s                      *Service
87425	project                string
87426	resource               string
87427	testpermissionsrequest *TestPermissionsRequest
87428	urlParams_             gensupport.URLParams
87429	ctx_                   context.Context
87430	header_                http.Header
87431}
87432
87433// TestIamPermissions: Returns permissions that a caller has on the
87434// specified resource.
87435//
87436// - project: Project ID for this request.
87437// - resource: Name or id of the resource for this request.
87438func (r *InstanceTemplatesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstanceTemplatesTestIamPermissionsCall {
87439	c := &InstanceTemplatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87440	c.project = project
87441	c.resource = resource
87442	c.testpermissionsrequest = testpermissionsrequest
87443	return c
87444}
87445
87446// Fields allows partial responses to be retrieved. See
87447// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87448// for more information.
87449func (c *InstanceTemplatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstanceTemplatesTestIamPermissionsCall {
87450	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87451	return c
87452}
87453
87454// Context sets the context to be used in this call's Do method. Any
87455// pending HTTP request will be aborted if the provided context is
87456// canceled.
87457func (c *InstanceTemplatesTestIamPermissionsCall) Context(ctx context.Context) *InstanceTemplatesTestIamPermissionsCall {
87458	c.ctx_ = ctx
87459	return c
87460}
87461
87462// Header returns an http.Header that can be modified by the caller to
87463// add HTTP headers to the request.
87464func (c *InstanceTemplatesTestIamPermissionsCall) Header() http.Header {
87465	if c.header_ == nil {
87466		c.header_ = make(http.Header)
87467	}
87468	return c.header_
87469}
87470
87471func (c *InstanceTemplatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
87472	reqHeaders := make(http.Header)
87473	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
87474	for k, v := range c.header_ {
87475		reqHeaders[k] = v
87476	}
87477	reqHeaders.Set("User-Agent", c.s.userAgent())
87478	var body io.Reader = nil
87479	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
87480	if err != nil {
87481		return nil, err
87482	}
87483	reqHeaders.Set("Content-Type", "application/json")
87484	c.urlParams_.Set("alt", alt)
87485	c.urlParams_.Set("prettyPrint", "false")
87486	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{resource}/testIamPermissions")
87487	urls += "?" + c.urlParams_.Encode()
87488	req, err := http.NewRequest("POST", urls, body)
87489	if err != nil {
87490		return nil, err
87491	}
87492	req.Header = reqHeaders
87493	googleapi.Expand(req.URL, map[string]string{
87494		"project":  c.project,
87495		"resource": c.resource,
87496	})
87497	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87498}
87499
87500// Do executes the "compute.instanceTemplates.testIamPermissions" call.
87501// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
87502// non-2xx status code is an error. Response headers are in either
87503// *TestPermissionsResponse.ServerResponse.Header or (if a response was
87504// returned at all) in error.(*googleapi.Error).Header. Use
87505// googleapi.IsNotModified to check whether the returned error was
87506// because http.StatusNotModified was returned.
87507func (c *InstanceTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
87508	gensupport.SetOptions(c.urlParams_, opts...)
87509	res, err := c.doRequest("json")
87510	if res != nil && res.StatusCode == http.StatusNotModified {
87511		if res.Body != nil {
87512			res.Body.Close()
87513		}
87514		return nil, &googleapi.Error{
87515			Code:   res.StatusCode,
87516			Header: res.Header,
87517		}
87518	}
87519	if err != nil {
87520		return nil, err
87521	}
87522	defer googleapi.CloseBody(res)
87523	if err := googleapi.CheckResponse(res); err != nil {
87524		return nil, err
87525	}
87526	ret := &TestPermissionsResponse{
87527		ServerResponse: googleapi.ServerResponse{
87528			Header:         res.Header,
87529			HTTPStatusCode: res.StatusCode,
87530		},
87531	}
87532	target := &ret
87533	if err := gensupport.DecodeResponse(target, res); err != nil {
87534		return nil, err
87535	}
87536	return ret, nil
87537	// {
87538	//   "description": "Returns permissions that a caller has on the specified resource.",
87539	//   "flatPath": "projects/{project}/global/instanceTemplates/{resource}/testIamPermissions",
87540	//   "httpMethod": "POST",
87541	//   "id": "compute.instanceTemplates.testIamPermissions",
87542	//   "parameterOrder": [
87543	//     "project",
87544	//     "resource"
87545	//   ],
87546	//   "parameters": {
87547	//     "project": {
87548	//       "description": "Project ID for this request.",
87549	//       "location": "path",
87550	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87551	//       "required": true,
87552	//       "type": "string"
87553	//     },
87554	//     "resource": {
87555	//       "description": "Name or id of the resource for this request.",
87556	//       "location": "path",
87557	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87558	//       "required": true,
87559	//       "type": "string"
87560	//     }
87561	//   },
87562	//   "path": "projects/{project}/global/instanceTemplates/{resource}/testIamPermissions",
87563	//   "request": {
87564	//     "$ref": "TestPermissionsRequest"
87565	//   },
87566	//   "response": {
87567	//     "$ref": "TestPermissionsResponse"
87568	//   },
87569	//   "scopes": [
87570	//     "https://www.googleapis.com/auth/cloud-platform",
87571	//     "https://www.googleapis.com/auth/compute",
87572	//     "https://www.googleapis.com/auth/compute.readonly"
87573	//   ]
87574	// }
87575
87576}
87577
87578// method id "compute.instances.addAccessConfig":
87579
87580type InstancesAddAccessConfigCall struct {
87581	s            *Service
87582	project      string
87583	zone         string
87584	instance     string
87585	accessconfig *AccessConfig
87586	urlParams_   gensupport.URLParams
87587	ctx_         context.Context
87588	header_      http.Header
87589}
87590
87591// AddAccessConfig: Adds an access config to an instance's network
87592// interface.
87593//
87594// - instance: The instance name for this request.
87595// - networkInterface: The name of the network interface to add to this
87596//   instance.
87597// - project: Project ID for this request.
87598// - zone: The name of the zone for this request.
87599func (r *InstancesService) AddAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesAddAccessConfigCall {
87600	c := &InstancesAddAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87601	c.project = project
87602	c.zone = zone
87603	c.instance = instance
87604	c.urlParams_.Set("networkInterface", networkInterface)
87605	c.accessconfig = accessconfig
87606	return c
87607}
87608
87609// RequestId sets the optional parameter "requestId": An optional
87610// request ID to identify requests. Specify a unique request ID so that
87611// if you must retry your request, the server will know to ignore the
87612// request if it has already been completed. For example, consider a
87613// situation where you make an initial request and the request times
87614// out. If you make the request again with the same request ID, the
87615// server can check if original operation with the same request ID was
87616// received, and if so, will ignore the second request. This prevents
87617// clients from accidentally creating duplicate commitments. The request
87618// ID must be a valid UUID with the exception that zero UUID is not
87619// supported ( 00000000-0000-0000-0000-000000000000).
87620func (c *InstancesAddAccessConfigCall) RequestId(requestId string) *InstancesAddAccessConfigCall {
87621	c.urlParams_.Set("requestId", requestId)
87622	return c
87623}
87624
87625// Fields allows partial responses to be retrieved. See
87626// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87627// for more information.
87628func (c *InstancesAddAccessConfigCall) Fields(s ...googleapi.Field) *InstancesAddAccessConfigCall {
87629	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87630	return c
87631}
87632
87633// Context sets the context to be used in this call's Do method. Any
87634// pending HTTP request will be aborted if the provided context is
87635// canceled.
87636func (c *InstancesAddAccessConfigCall) Context(ctx context.Context) *InstancesAddAccessConfigCall {
87637	c.ctx_ = ctx
87638	return c
87639}
87640
87641// Header returns an http.Header that can be modified by the caller to
87642// add HTTP headers to the request.
87643func (c *InstancesAddAccessConfigCall) Header() http.Header {
87644	if c.header_ == nil {
87645		c.header_ = make(http.Header)
87646	}
87647	return c.header_
87648}
87649
87650func (c *InstancesAddAccessConfigCall) doRequest(alt string) (*http.Response, error) {
87651	reqHeaders := make(http.Header)
87652	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
87653	for k, v := range c.header_ {
87654		reqHeaders[k] = v
87655	}
87656	reqHeaders.Set("User-Agent", c.s.userAgent())
87657	var body io.Reader = nil
87658	body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig)
87659	if err != nil {
87660		return nil, err
87661	}
87662	reqHeaders.Set("Content-Type", "application/json")
87663	c.urlParams_.Set("alt", alt)
87664	c.urlParams_.Set("prettyPrint", "false")
87665	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/addAccessConfig")
87666	urls += "?" + c.urlParams_.Encode()
87667	req, err := http.NewRequest("POST", urls, body)
87668	if err != nil {
87669		return nil, err
87670	}
87671	req.Header = reqHeaders
87672	googleapi.Expand(req.URL, map[string]string{
87673		"project":  c.project,
87674		"zone":     c.zone,
87675		"instance": c.instance,
87676	})
87677	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87678}
87679
87680// Do executes the "compute.instances.addAccessConfig" call.
87681// Exactly one of *Operation or error will be non-nil. Any non-2xx
87682// status code is an error. Response headers are in either
87683// *Operation.ServerResponse.Header or (if a response was returned at
87684// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87685// to check whether the returned error was because
87686// http.StatusNotModified was returned.
87687func (c *InstancesAddAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87688	gensupport.SetOptions(c.urlParams_, opts...)
87689	res, err := c.doRequest("json")
87690	if res != nil && res.StatusCode == http.StatusNotModified {
87691		if res.Body != nil {
87692			res.Body.Close()
87693		}
87694		return nil, &googleapi.Error{
87695			Code:   res.StatusCode,
87696			Header: res.Header,
87697		}
87698	}
87699	if err != nil {
87700		return nil, err
87701	}
87702	defer googleapi.CloseBody(res)
87703	if err := googleapi.CheckResponse(res); err != nil {
87704		return nil, err
87705	}
87706	ret := &Operation{
87707		ServerResponse: googleapi.ServerResponse{
87708			Header:         res.Header,
87709			HTTPStatusCode: res.StatusCode,
87710		},
87711	}
87712	target := &ret
87713	if err := gensupport.DecodeResponse(target, res); err != nil {
87714		return nil, err
87715	}
87716	return ret, nil
87717	// {
87718	//   "description": "Adds an access config to an instance's network interface.",
87719	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/addAccessConfig",
87720	//   "httpMethod": "POST",
87721	//   "id": "compute.instances.addAccessConfig",
87722	//   "parameterOrder": [
87723	//     "project",
87724	//     "zone",
87725	//     "instance",
87726	//     "networkInterface"
87727	//   ],
87728	//   "parameters": {
87729	//     "instance": {
87730	//       "description": "The instance name for this request.",
87731	//       "location": "path",
87732	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87733	//       "required": true,
87734	//       "type": "string"
87735	//     },
87736	//     "networkInterface": {
87737	//       "description": "The name of the network interface to add to this instance.",
87738	//       "location": "query",
87739	//       "required": true,
87740	//       "type": "string"
87741	//     },
87742	//     "project": {
87743	//       "description": "Project ID for this request.",
87744	//       "location": "path",
87745	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87746	//       "required": true,
87747	//       "type": "string"
87748	//     },
87749	//     "requestId": {
87750	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
87751	//       "location": "query",
87752	//       "type": "string"
87753	//     },
87754	//     "zone": {
87755	//       "description": "The name of the zone for this request.",
87756	//       "location": "path",
87757	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87758	//       "required": true,
87759	//       "type": "string"
87760	//     }
87761	//   },
87762	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/addAccessConfig",
87763	//   "request": {
87764	//     "$ref": "AccessConfig"
87765	//   },
87766	//   "response": {
87767	//     "$ref": "Operation"
87768	//   },
87769	//   "scopes": [
87770	//     "https://www.googleapis.com/auth/cloud-platform",
87771	//     "https://www.googleapis.com/auth/compute"
87772	//   ]
87773	// }
87774
87775}
87776
87777// method id "compute.instances.addResourcePolicies":
87778
87779type InstancesAddResourcePoliciesCall struct {
87780	s                                   *Service
87781	project                             string
87782	zone                                string
87783	instance                            string
87784	instancesaddresourcepoliciesrequest *InstancesAddResourcePoliciesRequest
87785	urlParams_                          gensupport.URLParams
87786	ctx_                                context.Context
87787	header_                             http.Header
87788}
87789
87790// AddResourcePolicies: Adds existing resource policies to an instance.
87791// You can only add one policy right now which will be applied to this
87792// instance for scheduling live migrations.
87793//
87794// - instance: The instance name for this request.
87795// - project: Project ID for this request.
87796// - zone: The name of the zone for this request.
87797func (r *InstancesService) AddResourcePolicies(project string, zone string, instance string, instancesaddresourcepoliciesrequest *InstancesAddResourcePoliciesRequest) *InstancesAddResourcePoliciesCall {
87798	c := &InstancesAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87799	c.project = project
87800	c.zone = zone
87801	c.instance = instance
87802	c.instancesaddresourcepoliciesrequest = instancesaddresourcepoliciesrequest
87803	return c
87804}
87805
87806// RequestId sets the optional parameter "requestId": An optional
87807// request ID to identify requests. Specify a unique request ID so that
87808// if you must retry your request, the server will know to ignore the
87809// request if it has already been completed. For example, consider a
87810// situation where you make an initial request and the request times
87811// out. If you make the request again with the same request ID, the
87812// server can check if original operation with the same request ID was
87813// received, and if so, will ignore the second request. This prevents
87814// clients from accidentally creating duplicate commitments. The request
87815// ID must be a valid UUID with the exception that zero UUID is not
87816// supported ( 00000000-0000-0000-0000-000000000000).
87817func (c *InstancesAddResourcePoliciesCall) RequestId(requestId string) *InstancesAddResourcePoliciesCall {
87818	c.urlParams_.Set("requestId", requestId)
87819	return c
87820}
87821
87822// Fields allows partial responses to be retrieved. See
87823// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87824// for more information.
87825func (c *InstancesAddResourcePoliciesCall) Fields(s ...googleapi.Field) *InstancesAddResourcePoliciesCall {
87826	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87827	return c
87828}
87829
87830// Context sets the context to be used in this call's Do method. Any
87831// pending HTTP request will be aborted if the provided context is
87832// canceled.
87833func (c *InstancesAddResourcePoliciesCall) Context(ctx context.Context) *InstancesAddResourcePoliciesCall {
87834	c.ctx_ = ctx
87835	return c
87836}
87837
87838// Header returns an http.Header that can be modified by the caller to
87839// add HTTP headers to the request.
87840func (c *InstancesAddResourcePoliciesCall) Header() http.Header {
87841	if c.header_ == nil {
87842		c.header_ = make(http.Header)
87843	}
87844	return c.header_
87845}
87846
87847func (c *InstancesAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
87848	reqHeaders := make(http.Header)
87849	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
87850	for k, v := range c.header_ {
87851		reqHeaders[k] = v
87852	}
87853	reqHeaders.Set("User-Agent", c.s.userAgent())
87854	var body io.Reader = nil
87855	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesaddresourcepoliciesrequest)
87856	if err != nil {
87857		return nil, err
87858	}
87859	reqHeaders.Set("Content-Type", "application/json")
87860	c.urlParams_.Set("alt", alt)
87861	c.urlParams_.Set("prettyPrint", "false")
87862	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies")
87863	urls += "?" + c.urlParams_.Encode()
87864	req, err := http.NewRequest("POST", urls, body)
87865	if err != nil {
87866		return nil, err
87867	}
87868	req.Header = reqHeaders
87869	googleapi.Expand(req.URL, map[string]string{
87870		"project":  c.project,
87871		"zone":     c.zone,
87872		"instance": c.instance,
87873	})
87874	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87875}
87876
87877// Do executes the "compute.instances.addResourcePolicies" call.
87878// Exactly one of *Operation or error will be non-nil. Any non-2xx
87879// status code is an error. Response headers are in either
87880// *Operation.ServerResponse.Header or (if a response was returned at
87881// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87882// to check whether the returned error was because
87883// http.StatusNotModified was returned.
87884func (c *InstancesAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87885	gensupport.SetOptions(c.urlParams_, opts...)
87886	res, err := c.doRequest("json")
87887	if res != nil && res.StatusCode == http.StatusNotModified {
87888		if res.Body != nil {
87889			res.Body.Close()
87890		}
87891		return nil, &googleapi.Error{
87892			Code:   res.StatusCode,
87893			Header: res.Header,
87894		}
87895	}
87896	if err != nil {
87897		return nil, err
87898	}
87899	defer googleapi.CloseBody(res)
87900	if err := googleapi.CheckResponse(res); err != nil {
87901		return nil, err
87902	}
87903	ret := &Operation{
87904		ServerResponse: googleapi.ServerResponse{
87905			Header:         res.Header,
87906			HTTPStatusCode: res.StatusCode,
87907		},
87908	}
87909	target := &ret
87910	if err := gensupport.DecodeResponse(target, res); err != nil {
87911		return nil, err
87912	}
87913	return ret, nil
87914	// {
87915	//   "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.",
87916	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies",
87917	//   "httpMethod": "POST",
87918	//   "id": "compute.instances.addResourcePolicies",
87919	//   "parameterOrder": [
87920	//     "project",
87921	//     "zone",
87922	//     "instance"
87923	//   ],
87924	//   "parameters": {
87925	//     "instance": {
87926	//       "description": "The instance name for this request.",
87927	//       "location": "path",
87928	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87929	//       "required": true,
87930	//       "type": "string"
87931	//     },
87932	//     "project": {
87933	//       "description": "Project ID for this request.",
87934	//       "location": "path",
87935	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87936	//       "required": true,
87937	//       "type": "string"
87938	//     },
87939	//     "requestId": {
87940	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
87941	//       "location": "query",
87942	//       "type": "string"
87943	//     },
87944	//     "zone": {
87945	//       "description": "The name of the zone for this request.",
87946	//       "location": "path",
87947	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87948	//       "required": true,
87949	//       "type": "string"
87950	//     }
87951	//   },
87952	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies",
87953	//   "request": {
87954	//     "$ref": "InstancesAddResourcePoliciesRequest"
87955	//   },
87956	//   "response": {
87957	//     "$ref": "Operation"
87958	//   },
87959	//   "scopes": [
87960	//     "https://www.googleapis.com/auth/cloud-platform",
87961	//     "https://www.googleapis.com/auth/compute"
87962	//   ]
87963	// }
87964
87965}
87966
87967// method id "compute.instances.aggregatedList":
87968
87969type InstancesAggregatedListCall struct {
87970	s            *Service
87971	project      string
87972	urlParams_   gensupport.URLParams
87973	ifNoneMatch_ string
87974	ctx_         context.Context
87975	header_      http.Header
87976}
87977
87978// AggregatedList: Retrieves an aggregated list of all of the instances
87979// in your project across all regions and zones. The performance of this
87980// method degrades when a filter is specified on a project that has a
87981// very large number of instances.
87982//
87983// - project: Project ID for this request.
87984func (r *InstancesService) AggregatedList(project string) *InstancesAggregatedListCall {
87985	c := &InstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87986	c.project = project
87987	return c
87988}
87989
87990// Filter sets the optional parameter "filter": A filter expression that
87991// filters resources listed in the response. The expression must specify
87992// the field name, a comparison operator, and the value that you want to
87993// use for filtering. The value must be a string, a number, or a
87994// boolean. The comparison operator must be either `=`, `!=`, `>`, or
87995// `<`. For example, if you are filtering Compute Engine instances, you
87996// can exclude instances named `example-instance` by specifying `name !=
87997// example-instance`. You can also filter nested fields. For example,
87998// you could specify `scheduling.automaticRestart = false` to include
87999// instances only if they are not scheduled for automatic restarts. You
88000// can use filtering on nested fields to filter based on resource
88001// labels. To filter on multiple expressions, provide each separate
88002// expression within parentheses. For example: ```
88003// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
88004// ``` By default, each expression is an `AND` expression. However, you
88005// can include `AND` and `OR` expressions explicitly. For example: ```
88006// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
88007// AND (scheduling.automaticRestart = true) ```
88008func (c *InstancesAggregatedListCall) Filter(filter string) *InstancesAggregatedListCall {
88009	c.urlParams_.Set("filter", filter)
88010	return c
88011}
88012
88013// IncludeAllScopes sets the optional parameter "includeAllScopes":
88014// Indicates whether every visible scope for each scope type (zone,
88015// region, global) should be included in the response. For new resource
88016// types added after this field, the flag has no effect as new resource
88017// types will always include every visible scope for each scope type in
88018// response. For resource types which predate this field, if this flag
88019// is omitted or false, only scopes of the scope types where the
88020// resource type is expected to be found will be included.
88021func (c *InstancesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstancesAggregatedListCall {
88022	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
88023	return c
88024}
88025
88026// MaxResults sets the optional parameter "maxResults": The maximum
88027// number of results per page that should be returned. If the number of
88028// available results is larger than `maxResults`, Compute Engine returns
88029// a `nextPageToken` that can be used to get the next page of results in
88030// subsequent list requests. Acceptable values are `0` to `500`,
88031// inclusive. (Default: `500`)
88032func (c *InstancesAggregatedListCall) MaxResults(maxResults int64) *InstancesAggregatedListCall {
88033	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
88034	return c
88035}
88036
88037// OrderBy sets the optional parameter "orderBy": Sorts list results by
88038// a certain order. By default, results are returned in alphanumerical
88039// order based on the resource name. You can also sort results in
88040// descending order based on the creation timestamp using
88041// `orderBy="creationTimestamp desc". This sorts results based on the
88042// `creationTimestamp` field in reverse chronological order (newest
88043// result first). Use this to sort resources like operations so that the
88044// newest operation is returned first. Currently, only sorting by `name`
88045// or `creationTimestamp desc` is supported.
88046func (c *InstancesAggregatedListCall) OrderBy(orderBy string) *InstancesAggregatedListCall {
88047	c.urlParams_.Set("orderBy", orderBy)
88048	return c
88049}
88050
88051// PageToken sets the optional parameter "pageToken": Specifies a page
88052// token to use. Set `pageToken` to the `nextPageToken` returned by a
88053// previous list request to get the next page of results.
88054func (c *InstancesAggregatedListCall) PageToken(pageToken string) *InstancesAggregatedListCall {
88055	c.urlParams_.Set("pageToken", pageToken)
88056	return c
88057}
88058
88059// ReturnPartialSuccess sets the optional parameter
88060// "returnPartialSuccess": Opt-in for partial success behavior which
88061// provides partial results in case of failure. The default value is
88062// false.
88063func (c *InstancesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstancesAggregatedListCall {
88064	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
88065	return c
88066}
88067
88068// Fields allows partial responses to be retrieved. See
88069// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88070// for more information.
88071func (c *InstancesAggregatedListCall) Fields(s ...googleapi.Field) *InstancesAggregatedListCall {
88072	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88073	return c
88074}
88075
88076// IfNoneMatch sets the optional parameter which makes the operation
88077// fail if the object's ETag matches the given value. This is useful for
88078// getting updates only after the object has changed since the last
88079// request. Use googleapi.IsNotModified to check whether the response
88080// error from Do is the result of In-None-Match.
88081func (c *InstancesAggregatedListCall) IfNoneMatch(entityTag string) *InstancesAggregatedListCall {
88082	c.ifNoneMatch_ = entityTag
88083	return c
88084}
88085
88086// Context sets the context to be used in this call's Do method. Any
88087// pending HTTP request will be aborted if the provided context is
88088// canceled.
88089func (c *InstancesAggregatedListCall) Context(ctx context.Context) *InstancesAggregatedListCall {
88090	c.ctx_ = ctx
88091	return c
88092}
88093
88094// Header returns an http.Header that can be modified by the caller to
88095// add HTTP headers to the request.
88096func (c *InstancesAggregatedListCall) Header() http.Header {
88097	if c.header_ == nil {
88098		c.header_ = make(http.Header)
88099	}
88100	return c.header_
88101}
88102
88103func (c *InstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
88104	reqHeaders := make(http.Header)
88105	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
88106	for k, v := range c.header_ {
88107		reqHeaders[k] = v
88108	}
88109	reqHeaders.Set("User-Agent", c.s.userAgent())
88110	if c.ifNoneMatch_ != "" {
88111		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
88112	}
88113	var body io.Reader = nil
88114	c.urlParams_.Set("alt", alt)
88115	c.urlParams_.Set("prettyPrint", "false")
88116	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/instances")
88117	urls += "?" + c.urlParams_.Encode()
88118	req, err := http.NewRequest("GET", urls, body)
88119	if err != nil {
88120		return nil, err
88121	}
88122	req.Header = reqHeaders
88123	googleapi.Expand(req.URL, map[string]string{
88124		"project": c.project,
88125	})
88126	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88127}
88128
88129// Do executes the "compute.instances.aggregatedList" call.
88130// Exactly one of *InstanceAggregatedList or error will be non-nil. Any
88131// non-2xx status code is an error. Response headers are in either
88132// *InstanceAggregatedList.ServerResponse.Header or (if a response was
88133// returned at all) in error.(*googleapi.Error).Header. Use
88134// googleapi.IsNotModified to check whether the returned error was
88135// because http.StatusNotModified was returned.
88136func (c *InstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceAggregatedList, error) {
88137	gensupport.SetOptions(c.urlParams_, opts...)
88138	res, err := c.doRequest("json")
88139	if res != nil && res.StatusCode == http.StatusNotModified {
88140		if res.Body != nil {
88141			res.Body.Close()
88142		}
88143		return nil, &googleapi.Error{
88144			Code:   res.StatusCode,
88145			Header: res.Header,
88146		}
88147	}
88148	if err != nil {
88149		return nil, err
88150	}
88151	defer googleapi.CloseBody(res)
88152	if err := googleapi.CheckResponse(res); err != nil {
88153		return nil, err
88154	}
88155	ret := &InstanceAggregatedList{
88156		ServerResponse: googleapi.ServerResponse{
88157			Header:         res.Header,
88158			HTTPStatusCode: res.StatusCode,
88159		},
88160	}
88161	target := &ret
88162	if err := gensupport.DecodeResponse(target, res); err != nil {
88163		return nil, err
88164	}
88165	return ret, nil
88166	// {
88167	//   "description": "Retrieves an aggregated list of all of the instances in your project across all regions and zones. The performance of this method degrades when a filter is specified on a project that has a very large number of instances.",
88168	//   "flatPath": "projects/{project}/aggregated/instances",
88169	//   "httpMethod": "GET",
88170	//   "id": "compute.instances.aggregatedList",
88171	//   "parameterOrder": [
88172	//     "project"
88173	//   ],
88174	//   "parameters": {
88175	//     "filter": {
88176	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
88177	//       "location": "query",
88178	//       "type": "string"
88179	//     },
88180	//     "includeAllScopes": {
88181	//       "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.",
88182	//       "location": "query",
88183	//       "type": "boolean"
88184	//     },
88185	//     "maxResults": {
88186	//       "default": "500",
88187	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
88188	//       "format": "uint32",
88189	//       "location": "query",
88190	//       "minimum": "0",
88191	//       "type": "integer"
88192	//     },
88193	//     "orderBy": {
88194	//       "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.",
88195	//       "location": "query",
88196	//       "type": "string"
88197	//     },
88198	//     "pageToken": {
88199	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
88200	//       "location": "query",
88201	//       "type": "string"
88202	//     },
88203	//     "project": {
88204	//       "description": "Project ID for this request.",
88205	//       "location": "path",
88206	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88207	//       "required": true,
88208	//       "type": "string"
88209	//     },
88210	//     "returnPartialSuccess": {
88211	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
88212	//       "location": "query",
88213	//       "type": "boolean"
88214	//     }
88215	//   },
88216	//   "path": "projects/{project}/aggregated/instances",
88217	//   "response": {
88218	//     "$ref": "InstanceAggregatedList"
88219	//   },
88220	//   "scopes": [
88221	//     "https://www.googleapis.com/auth/cloud-platform",
88222	//     "https://www.googleapis.com/auth/compute",
88223	//     "https://www.googleapis.com/auth/compute.readonly"
88224	//   ]
88225	// }
88226
88227}
88228
88229// Pages invokes f for each page of results.
88230// A non-nil error returned from f will halt the iteration.
88231// The provided context supersedes any context provided to the Context method.
88232func (c *InstancesAggregatedListCall) Pages(ctx context.Context, f func(*InstanceAggregatedList) error) error {
88233	c.ctx_ = ctx
88234	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
88235	for {
88236		x, err := c.Do()
88237		if err != nil {
88238			return err
88239		}
88240		if err := f(x); err != nil {
88241			return err
88242		}
88243		if x.NextPageToken == "" {
88244			return nil
88245		}
88246		c.PageToken(x.NextPageToken)
88247	}
88248}
88249
88250// method id "compute.instances.attachDisk":
88251
88252type InstancesAttachDiskCall struct {
88253	s            *Service
88254	project      string
88255	zone         string
88256	instance     string
88257	attacheddisk *AttachedDisk
88258	urlParams_   gensupport.URLParams
88259	ctx_         context.Context
88260	header_      http.Header
88261}
88262
88263// AttachDisk: Attaches an existing Disk resource to an instance. You
88264// must first create the disk before you can attach it. It is not
88265// possible to create and attach a disk at the same time. For more
88266// information, read Adding a persistent disk to your instance.
88267//
88268// - instance: The instance name for this request.
88269// - project: Project ID for this request.
88270// - zone: The name of the zone for this request.
88271func (r *InstancesService) AttachDisk(project string, zone string, instance string, attacheddisk *AttachedDisk) *InstancesAttachDiskCall {
88272	c := &InstancesAttachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88273	c.project = project
88274	c.zone = zone
88275	c.instance = instance
88276	c.attacheddisk = attacheddisk
88277	return c
88278}
88279
88280// ForceAttach sets the optional parameter "forceAttach": Whether to
88281// force attach the regional disk even if it's currently attached to
88282// another instance. If you try to force attach a zonal disk to an
88283// instance, you will receive an error.
88284func (c *InstancesAttachDiskCall) ForceAttach(forceAttach bool) *InstancesAttachDiskCall {
88285	c.urlParams_.Set("forceAttach", fmt.Sprint(forceAttach))
88286	return c
88287}
88288
88289// RequestId sets the optional parameter "requestId": An optional
88290// request ID to identify requests. Specify a unique request ID so that
88291// if you must retry your request, the server will know to ignore the
88292// request if it has already been completed. For example, consider a
88293// situation where you make an initial request and the request times
88294// out. If you make the request again with the same request ID, the
88295// server can check if original operation with the same request ID was
88296// received, and if so, will ignore the second request. This prevents
88297// clients from accidentally creating duplicate commitments. The request
88298// ID must be a valid UUID with the exception that zero UUID is not
88299// supported ( 00000000-0000-0000-0000-000000000000).
88300func (c *InstancesAttachDiskCall) RequestId(requestId string) *InstancesAttachDiskCall {
88301	c.urlParams_.Set("requestId", requestId)
88302	return c
88303}
88304
88305// Fields allows partial responses to be retrieved. See
88306// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88307// for more information.
88308func (c *InstancesAttachDiskCall) Fields(s ...googleapi.Field) *InstancesAttachDiskCall {
88309	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88310	return c
88311}
88312
88313// Context sets the context to be used in this call's Do method. Any
88314// pending HTTP request will be aborted if the provided context is
88315// canceled.
88316func (c *InstancesAttachDiskCall) Context(ctx context.Context) *InstancesAttachDiskCall {
88317	c.ctx_ = ctx
88318	return c
88319}
88320
88321// Header returns an http.Header that can be modified by the caller to
88322// add HTTP headers to the request.
88323func (c *InstancesAttachDiskCall) Header() http.Header {
88324	if c.header_ == nil {
88325		c.header_ = make(http.Header)
88326	}
88327	return c.header_
88328}
88329
88330func (c *InstancesAttachDiskCall) doRequest(alt string) (*http.Response, error) {
88331	reqHeaders := make(http.Header)
88332	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
88333	for k, v := range c.header_ {
88334		reqHeaders[k] = v
88335	}
88336	reqHeaders.Set("User-Agent", c.s.userAgent())
88337	var body io.Reader = nil
88338	body, err := googleapi.WithoutDataWrapper.JSONReader(c.attacheddisk)
88339	if err != nil {
88340		return nil, err
88341	}
88342	reqHeaders.Set("Content-Type", "application/json")
88343	c.urlParams_.Set("alt", alt)
88344	c.urlParams_.Set("prettyPrint", "false")
88345	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/attachDisk")
88346	urls += "?" + c.urlParams_.Encode()
88347	req, err := http.NewRequest("POST", urls, body)
88348	if err != nil {
88349		return nil, err
88350	}
88351	req.Header = reqHeaders
88352	googleapi.Expand(req.URL, map[string]string{
88353		"project":  c.project,
88354		"zone":     c.zone,
88355		"instance": c.instance,
88356	})
88357	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88358}
88359
88360// Do executes the "compute.instances.attachDisk" call.
88361// Exactly one of *Operation or error will be non-nil. Any non-2xx
88362// status code is an error. Response headers are in either
88363// *Operation.ServerResponse.Header or (if a response was returned at
88364// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88365// to check whether the returned error was because
88366// http.StatusNotModified was returned.
88367func (c *InstancesAttachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88368	gensupport.SetOptions(c.urlParams_, opts...)
88369	res, err := c.doRequest("json")
88370	if res != nil && res.StatusCode == http.StatusNotModified {
88371		if res.Body != nil {
88372			res.Body.Close()
88373		}
88374		return nil, &googleapi.Error{
88375			Code:   res.StatusCode,
88376			Header: res.Header,
88377		}
88378	}
88379	if err != nil {
88380		return nil, err
88381	}
88382	defer googleapi.CloseBody(res)
88383	if err := googleapi.CheckResponse(res); err != nil {
88384		return nil, err
88385	}
88386	ret := &Operation{
88387		ServerResponse: googleapi.ServerResponse{
88388			Header:         res.Header,
88389			HTTPStatusCode: res.StatusCode,
88390		},
88391	}
88392	target := &ret
88393	if err := gensupport.DecodeResponse(target, res); err != nil {
88394		return nil, err
88395	}
88396	return ret, nil
88397	// {
88398	//   "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.",
88399	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/attachDisk",
88400	//   "httpMethod": "POST",
88401	//   "id": "compute.instances.attachDisk",
88402	//   "parameterOrder": [
88403	//     "project",
88404	//     "zone",
88405	//     "instance"
88406	//   ],
88407	//   "parameters": {
88408	//     "forceAttach": {
88409	//       "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.",
88410	//       "location": "query",
88411	//       "type": "boolean"
88412	//     },
88413	//     "instance": {
88414	//       "description": "The instance name for this request.",
88415	//       "location": "path",
88416	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88417	//       "required": true,
88418	//       "type": "string"
88419	//     },
88420	//     "project": {
88421	//       "description": "Project ID for this request.",
88422	//       "location": "path",
88423	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88424	//       "required": true,
88425	//       "type": "string"
88426	//     },
88427	//     "requestId": {
88428	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
88429	//       "location": "query",
88430	//       "type": "string"
88431	//     },
88432	//     "zone": {
88433	//       "description": "The name of the zone for this request.",
88434	//       "location": "path",
88435	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88436	//       "required": true,
88437	//       "type": "string"
88438	//     }
88439	//   },
88440	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/attachDisk",
88441	//   "request": {
88442	//     "$ref": "AttachedDisk"
88443	//   },
88444	//   "response": {
88445	//     "$ref": "Operation"
88446	//   },
88447	//   "scopes": [
88448	//     "https://www.googleapis.com/auth/cloud-platform",
88449	//     "https://www.googleapis.com/auth/compute"
88450	//   ]
88451	// }
88452
88453}
88454
88455// method id "compute.instances.bulkInsert":
88456
88457type InstancesBulkInsertCall struct {
88458	s                          *Service
88459	project                    string
88460	zone                       string
88461	bulkinsertinstanceresource *BulkInsertInstanceResource
88462	urlParams_                 gensupport.URLParams
88463	ctx_                       context.Context
88464	header_                    http.Header
88465}
88466
88467// BulkInsert: Creates multiple instances. Count specifies the number of
88468// instances to create.
88469//
88470// - project: Project ID for this request.
88471// - zone: The name of the zone for this request.
88472func (r *InstancesService) BulkInsert(project string, zone string, bulkinsertinstanceresource *BulkInsertInstanceResource) *InstancesBulkInsertCall {
88473	c := &InstancesBulkInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88474	c.project = project
88475	c.zone = zone
88476	c.bulkinsertinstanceresource = bulkinsertinstanceresource
88477	return c
88478}
88479
88480// RequestId sets the optional parameter "requestId": An optional
88481// request ID to identify requests. Specify a unique request ID so that
88482// if you must retry your request, the server will know to ignore the
88483// request if it has already been completed. For example, consider a
88484// situation where you make an initial request and the request times
88485// out. If you make the request again with the same request ID, the
88486// server can check if original operation with the same request ID was
88487// received, and if so, will ignore the second request. This prevents
88488// clients from accidentally creating duplicate commitments. The request
88489// ID must be a valid UUID with the exception that zero UUID is not
88490// supported ( 00000000-0000-0000-0000-000000000000).
88491func (c *InstancesBulkInsertCall) RequestId(requestId string) *InstancesBulkInsertCall {
88492	c.urlParams_.Set("requestId", requestId)
88493	return c
88494}
88495
88496// Fields allows partial responses to be retrieved. See
88497// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88498// for more information.
88499func (c *InstancesBulkInsertCall) Fields(s ...googleapi.Field) *InstancesBulkInsertCall {
88500	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88501	return c
88502}
88503
88504// Context sets the context to be used in this call's Do method. Any
88505// pending HTTP request will be aborted if the provided context is
88506// canceled.
88507func (c *InstancesBulkInsertCall) Context(ctx context.Context) *InstancesBulkInsertCall {
88508	c.ctx_ = ctx
88509	return c
88510}
88511
88512// Header returns an http.Header that can be modified by the caller to
88513// add HTTP headers to the request.
88514func (c *InstancesBulkInsertCall) Header() http.Header {
88515	if c.header_ == nil {
88516		c.header_ = make(http.Header)
88517	}
88518	return c.header_
88519}
88520
88521func (c *InstancesBulkInsertCall) doRequest(alt string) (*http.Response, error) {
88522	reqHeaders := make(http.Header)
88523	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
88524	for k, v := range c.header_ {
88525		reqHeaders[k] = v
88526	}
88527	reqHeaders.Set("User-Agent", c.s.userAgent())
88528	var body io.Reader = nil
88529	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkinsertinstanceresource)
88530	if err != nil {
88531		return nil, err
88532	}
88533	reqHeaders.Set("Content-Type", "application/json")
88534	c.urlParams_.Set("alt", alt)
88535	c.urlParams_.Set("prettyPrint", "false")
88536	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/bulkInsert")
88537	urls += "?" + c.urlParams_.Encode()
88538	req, err := http.NewRequest("POST", urls, body)
88539	if err != nil {
88540		return nil, err
88541	}
88542	req.Header = reqHeaders
88543	googleapi.Expand(req.URL, map[string]string{
88544		"project": c.project,
88545		"zone":    c.zone,
88546	})
88547	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88548}
88549
88550// Do executes the "compute.instances.bulkInsert" call.
88551// Exactly one of *Operation or error will be non-nil. Any non-2xx
88552// status code is an error. Response headers are in either
88553// *Operation.ServerResponse.Header or (if a response was returned at
88554// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88555// to check whether the returned error was because
88556// http.StatusNotModified was returned.
88557func (c *InstancesBulkInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88558	gensupport.SetOptions(c.urlParams_, opts...)
88559	res, err := c.doRequest("json")
88560	if res != nil && res.StatusCode == http.StatusNotModified {
88561		if res.Body != nil {
88562			res.Body.Close()
88563		}
88564		return nil, &googleapi.Error{
88565			Code:   res.StatusCode,
88566			Header: res.Header,
88567		}
88568	}
88569	if err != nil {
88570		return nil, err
88571	}
88572	defer googleapi.CloseBody(res)
88573	if err := googleapi.CheckResponse(res); err != nil {
88574		return nil, err
88575	}
88576	ret := &Operation{
88577		ServerResponse: googleapi.ServerResponse{
88578			Header:         res.Header,
88579			HTTPStatusCode: res.StatusCode,
88580		},
88581	}
88582	target := &ret
88583	if err := gensupport.DecodeResponse(target, res); err != nil {
88584		return nil, err
88585	}
88586	return ret, nil
88587	// {
88588	//   "description": "Creates multiple instances. Count specifies the number of instances to create.",
88589	//   "flatPath": "projects/{project}/zones/{zone}/instances/bulkInsert",
88590	//   "httpMethod": "POST",
88591	//   "id": "compute.instances.bulkInsert",
88592	//   "parameterOrder": [
88593	//     "project",
88594	//     "zone"
88595	//   ],
88596	//   "parameters": {
88597	//     "project": {
88598	//       "description": "Project ID for this request.",
88599	//       "location": "path",
88600	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88601	//       "required": true,
88602	//       "type": "string"
88603	//     },
88604	//     "requestId": {
88605	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
88606	//       "location": "query",
88607	//       "type": "string"
88608	//     },
88609	//     "zone": {
88610	//       "description": "The name of the zone for this request.",
88611	//       "location": "path",
88612	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88613	//       "required": true,
88614	//       "type": "string"
88615	//     }
88616	//   },
88617	//   "path": "projects/{project}/zones/{zone}/instances/bulkInsert",
88618	//   "request": {
88619	//     "$ref": "BulkInsertInstanceResource"
88620	//   },
88621	//   "response": {
88622	//     "$ref": "Operation"
88623	//   },
88624	//   "scopes": [
88625	//     "https://www.googleapis.com/auth/cloud-platform",
88626	//     "https://www.googleapis.com/auth/compute"
88627	//   ]
88628	// }
88629
88630}
88631
88632// method id "compute.instances.delete":
88633
88634type InstancesDeleteCall struct {
88635	s          *Service
88636	project    string
88637	zone       string
88638	instance   string
88639	urlParams_ gensupport.URLParams
88640	ctx_       context.Context
88641	header_    http.Header
88642}
88643
88644// Delete: Deletes the specified Instance resource. For more
88645// information, see Deleting an instance.
88646//
88647// - instance: Name of the instance resource to delete.
88648// - project: Project ID for this request.
88649// - zone: The name of the zone for this request.
88650func (r *InstancesService) Delete(project string, zone string, instance string) *InstancesDeleteCall {
88651	c := &InstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88652	c.project = project
88653	c.zone = zone
88654	c.instance = instance
88655	return c
88656}
88657
88658// RequestId sets the optional parameter "requestId": An optional
88659// request ID to identify requests. Specify a unique request ID so that
88660// if you must retry your request, the server will know to ignore the
88661// request if it has already been completed. For example, consider a
88662// situation where you make an initial request and the request times
88663// out. If you make the request again with the same request ID, the
88664// server can check if original operation with the same request ID was
88665// received, and if so, will ignore the second request. This prevents
88666// clients from accidentally creating duplicate commitments. The request
88667// ID must be a valid UUID with the exception that zero UUID is not
88668// supported ( 00000000-0000-0000-0000-000000000000).
88669func (c *InstancesDeleteCall) RequestId(requestId string) *InstancesDeleteCall {
88670	c.urlParams_.Set("requestId", requestId)
88671	return c
88672}
88673
88674// Fields allows partial responses to be retrieved. See
88675// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88676// for more information.
88677func (c *InstancesDeleteCall) Fields(s ...googleapi.Field) *InstancesDeleteCall {
88678	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88679	return c
88680}
88681
88682// Context sets the context to be used in this call's Do method. Any
88683// pending HTTP request will be aborted if the provided context is
88684// canceled.
88685func (c *InstancesDeleteCall) Context(ctx context.Context) *InstancesDeleteCall {
88686	c.ctx_ = ctx
88687	return c
88688}
88689
88690// Header returns an http.Header that can be modified by the caller to
88691// add HTTP headers to the request.
88692func (c *InstancesDeleteCall) Header() http.Header {
88693	if c.header_ == nil {
88694		c.header_ = make(http.Header)
88695	}
88696	return c.header_
88697}
88698
88699func (c *InstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
88700	reqHeaders := make(http.Header)
88701	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
88702	for k, v := range c.header_ {
88703		reqHeaders[k] = v
88704	}
88705	reqHeaders.Set("User-Agent", c.s.userAgent())
88706	var body io.Reader = nil
88707	c.urlParams_.Set("alt", alt)
88708	c.urlParams_.Set("prettyPrint", "false")
88709	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}")
88710	urls += "?" + c.urlParams_.Encode()
88711	req, err := http.NewRequest("DELETE", urls, body)
88712	if err != nil {
88713		return nil, err
88714	}
88715	req.Header = reqHeaders
88716	googleapi.Expand(req.URL, map[string]string{
88717		"project":  c.project,
88718		"zone":     c.zone,
88719		"instance": c.instance,
88720	})
88721	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88722}
88723
88724// Do executes the "compute.instances.delete" call.
88725// Exactly one of *Operation or error will be non-nil. Any non-2xx
88726// status code is an error. Response headers are in either
88727// *Operation.ServerResponse.Header or (if a response was returned at
88728// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88729// to check whether the returned error was because
88730// http.StatusNotModified was returned.
88731func (c *InstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88732	gensupport.SetOptions(c.urlParams_, opts...)
88733	res, err := c.doRequest("json")
88734	if res != nil && res.StatusCode == http.StatusNotModified {
88735		if res.Body != nil {
88736			res.Body.Close()
88737		}
88738		return nil, &googleapi.Error{
88739			Code:   res.StatusCode,
88740			Header: res.Header,
88741		}
88742	}
88743	if err != nil {
88744		return nil, err
88745	}
88746	defer googleapi.CloseBody(res)
88747	if err := googleapi.CheckResponse(res); err != nil {
88748		return nil, err
88749	}
88750	ret := &Operation{
88751		ServerResponse: googleapi.ServerResponse{
88752			Header:         res.Header,
88753			HTTPStatusCode: res.StatusCode,
88754		},
88755	}
88756	target := &ret
88757	if err := gensupport.DecodeResponse(target, res); err != nil {
88758		return nil, err
88759	}
88760	return ret, nil
88761	// {
88762	//   "description": "Deletes the specified Instance resource. For more information, see Deleting an instance.",
88763	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}",
88764	//   "httpMethod": "DELETE",
88765	//   "id": "compute.instances.delete",
88766	//   "parameterOrder": [
88767	//     "project",
88768	//     "zone",
88769	//     "instance"
88770	//   ],
88771	//   "parameters": {
88772	//     "instance": {
88773	//       "description": "Name of the instance resource to delete.",
88774	//       "location": "path",
88775	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88776	//       "required": true,
88777	//       "type": "string"
88778	//     },
88779	//     "project": {
88780	//       "description": "Project ID for this request.",
88781	//       "location": "path",
88782	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88783	//       "required": true,
88784	//       "type": "string"
88785	//     },
88786	//     "requestId": {
88787	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
88788	//       "location": "query",
88789	//       "type": "string"
88790	//     },
88791	//     "zone": {
88792	//       "description": "The name of the zone for this request.",
88793	//       "location": "path",
88794	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88795	//       "required": true,
88796	//       "type": "string"
88797	//     }
88798	//   },
88799	//   "path": "projects/{project}/zones/{zone}/instances/{instance}",
88800	//   "response": {
88801	//     "$ref": "Operation"
88802	//   },
88803	//   "scopes": [
88804	//     "https://www.googleapis.com/auth/cloud-platform",
88805	//     "https://www.googleapis.com/auth/compute"
88806	//   ]
88807	// }
88808
88809}
88810
88811// method id "compute.instances.deleteAccessConfig":
88812
88813type InstancesDeleteAccessConfigCall struct {
88814	s          *Service
88815	project    string
88816	zone       string
88817	instance   string
88818	urlParams_ gensupport.URLParams
88819	ctx_       context.Context
88820	header_    http.Header
88821}
88822
88823// DeleteAccessConfig: Deletes an access config from an instance's
88824// network interface.
88825//
88826// - accessConfig: The name of the access config to delete.
88827// - instance: The instance name for this request.
88828// - networkInterface: The name of the network interface.
88829// - project: Project ID for this request.
88830// - zone: The name of the zone for this request.
88831func (r *InstancesService) DeleteAccessConfig(project string, zone string, instance string, accessConfig string, networkInterface string) *InstancesDeleteAccessConfigCall {
88832	c := &InstancesDeleteAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88833	c.project = project
88834	c.zone = zone
88835	c.instance = instance
88836	c.urlParams_.Set("accessConfig", accessConfig)
88837	c.urlParams_.Set("networkInterface", networkInterface)
88838	return c
88839}
88840
88841// RequestId sets the optional parameter "requestId": An optional
88842// request ID to identify requests. Specify a unique request ID so that
88843// if you must retry your request, the server will know to ignore the
88844// request if it has already been completed. For example, consider a
88845// situation where you make an initial request and the request times
88846// out. If you make the request again with the same request ID, the
88847// server can check if original operation with the same request ID was
88848// received, and if so, will ignore the second request. This prevents
88849// clients from accidentally creating duplicate commitments. The request
88850// ID must be a valid UUID with the exception that zero UUID is not
88851// supported ( 00000000-0000-0000-0000-000000000000).
88852func (c *InstancesDeleteAccessConfigCall) RequestId(requestId string) *InstancesDeleteAccessConfigCall {
88853	c.urlParams_.Set("requestId", requestId)
88854	return c
88855}
88856
88857// Fields allows partial responses to be retrieved. See
88858// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88859// for more information.
88860func (c *InstancesDeleteAccessConfigCall) Fields(s ...googleapi.Field) *InstancesDeleteAccessConfigCall {
88861	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88862	return c
88863}
88864
88865// Context sets the context to be used in this call's Do method. Any
88866// pending HTTP request will be aborted if the provided context is
88867// canceled.
88868func (c *InstancesDeleteAccessConfigCall) Context(ctx context.Context) *InstancesDeleteAccessConfigCall {
88869	c.ctx_ = ctx
88870	return c
88871}
88872
88873// Header returns an http.Header that can be modified by the caller to
88874// add HTTP headers to the request.
88875func (c *InstancesDeleteAccessConfigCall) Header() http.Header {
88876	if c.header_ == nil {
88877		c.header_ = make(http.Header)
88878	}
88879	return c.header_
88880}
88881
88882func (c *InstancesDeleteAccessConfigCall) doRequest(alt string) (*http.Response, error) {
88883	reqHeaders := make(http.Header)
88884	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
88885	for k, v := range c.header_ {
88886		reqHeaders[k] = v
88887	}
88888	reqHeaders.Set("User-Agent", c.s.userAgent())
88889	var body io.Reader = nil
88890	c.urlParams_.Set("alt", alt)
88891	c.urlParams_.Set("prettyPrint", "false")
88892	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/deleteAccessConfig")
88893	urls += "?" + c.urlParams_.Encode()
88894	req, err := http.NewRequest("POST", urls, body)
88895	if err != nil {
88896		return nil, err
88897	}
88898	req.Header = reqHeaders
88899	googleapi.Expand(req.URL, map[string]string{
88900		"project":  c.project,
88901		"zone":     c.zone,
88902		"instance": c.instance,
88903	})
88904	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88905}
88906
88907// Do executes the "compute.instances.deleteAccessConfig" call.
88908// Exactly one of *Operation or error will be non-nil. Any non-2xx
88909// status code is an error. Response headers are in either
88910// *Operation.ServerResponse.Header or (if a response was returned at
88911// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88912// to check whether the returned error was because
88913// http.StatusNotModified was returned.
88914func (c *InstancesDeleteAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88915	gensupport.SetOptions(c.urlParams_, opts...)
88916	res, err := c.doRequest("json")
88917	if res != nil && res.StatusCode == http.StatusNotModified {
88918		if res.Body != nil {
88919			res.Body.Close()
88920		}
88921		return nil, &googleapi.Error{
88922			Code:   res.StatusCode,
88923			Header: res.Header,
88924		}
88925	}
88926	if err != nil {
88927		return nil, err
88928	}
88929	defer googleapi.CloseBody(res)
88930	if err := googleapi.CheckResponse(res); err != nil {
88931		return nil, err
88932	}
88933	ret := &Operation{
88934		ServerResponse: googleapi.ServerResponse{
88935			Header:         res.Header,
88936			HTTPStatusCode: res.StatusCode,
88937		},
88938	}
88939	target := &ret
88940	if err := gensupport.DecodeResponse(target, res); err != nil {
88941		return nil, err
88942	}
88943	return ret, nil
88944	// {
88945	//   "description": "Deletes an access config from an instance's network interface.",
88946	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/deleteAccessConfig",
88947	//   "httpMethod": "POST",
88948	//   "id": "compute.instances.deleteAccessConfig",
88949	//   "parameterOrder": [
88950	//     "project",
88951	//     "zone",
88952	//     "instance",
88953	//     "accessConfig",
88954	//     "networkInterface"
88955	//   ],
88956	//   "parameters": {
88957	//     "accessConfig": {
88958	//       "description": "The name of the access config to delete.",
88959	//       "location": "query",
88960	//       "required": true,
88961	//       "type": "string"
88962	//     },
88963	//     "instance": {
88964	//       "description": "The instance name for this request.",
88965	//       "location": "path",
88966	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88967	//       "required": true,
88968	//       "type": "string"
88969	//     },
88970	//     "networkInterface": {
88971	//       "description": "The name of the network interface.",
88972	//       "location": "query",
88973	//       "required": true,
88974	//       "type": "string"
88975	//     },
88976	//     "project": {
88977	//       "description": "Project ID for this request.",
88978	//       "location": "path",
88979	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88980	//       "required": true,
88981	//       "type": "string"
88982	//     },
88983	//     "requestId": {
88984	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
88985	//       "location": "query",
88986	//       "type": "string"
88987	//     },
88988	//     "zone": {
88989	//       "description": "The name of the zone for this request.",
88990	//       "location": "path",
88991	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88992	//       "required": true,
88993	//       "type": "string"
88994	//     }
88995	//   },
88996	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/deleteAccessConfig",
88997	//   "response": {
88998	//     "$ref": "Operation"
88999	//   },
89000	//   "scopes": [
89001	//     "https://www.googleapis.com/auth/cloud-platform",
89002	//     "https://www.googleapis.com/auth/compute"
89003	//   ]
89004	// }
89005
89006}
89007
89008// method id "compute.instances.detachDisk":
89009
89010type InstancesDetachDiskCall struct {
89011	s          *Service
89012	project    string
89013	zone       string
89014	instance   string
89015	urlParams_ gensupport.URLParams
89016	ctx_       context.Context
89017	header_    http.Header
89018}
89019
89020// DetachDisk: Detaches a disk from an instance.
89021//
89022// - deviceName: The device name of the disk to detach. Make a get()
89023//   request on the instance to view currently attached disks and device
89024//   names.
89025// - instance: Instance name for this request.
89026// - project: Project ID for this request.
89027// - zone: The name of the zone for this request.
89028func (r *InstancesService) DetachDisk(project string, zone string, instance string, deviceName string) *InstancesDetachDiskCall {
89029	c := &InstancesDetachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89030	c.project = project
89031	c.zone = zone
89032	c.instance = instance
89033	c.urlParams_.Set("deviceName", deviceName)
89034	return c
89035}
89036
89037// RequestId sets the optional parameter "requestId": An optional
89038// request ID to identify requests. Specify a unique request ID so that
89039// if you must retry your request, the server will know to ignore the
89040// request if it has already been completed. For example, consider a
89041// situation where you make an initial request and the request times
89042// out. If you make the request again with the same request ID, the
89043// server can check if original operation with the same request ID was
89044// received, and if so, will ignore the second request. This prevents
89045// clients from accidentally creating duplicate commitments. The request
89046// ID must be a valid UUID with the exception that zero UUID is not
89047// supported ( 00000000-0000-0000-0000-000000000000).
89048func (c *InstancesDetachDiskCall) RequestId(requestId string) *InstancesDetachDiskCall {
89049	c.urlParams_.Set("requestId", requestId)
89050	return c
89051}
89052
89053// Fields allows partial responses to be retrieved. See
89054// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89055// for more information.
89056func (c *InstancesDetachDiskCall) Fields(s ...googleapi.Field) *InstancesDetachDiskCall {
89057	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89058	return c
89059}
89060
89061// Context sets the context to be used in this call's Do method. Any
89062// pending HTTP request will be aborted if the provided context is
89063// canceled.
89064func (c *InstancesDetachDiskCall) Context(ctx context.Context) *InstancesDetachDiskCall {
89065	c.ctx_ = ctx
89066	return c
89067}
89068
89069// Header returns an http.Header that can be modified by the caller to
89070// add HTTP headers to the request.
89071func (c *InstancesDetachDiskCall) Header() http.Header {
89072	if c.header_ == nil {
89073		c.header_ = make(http.Header)
89074	}
89075	return c.header_
89076}
89077
89078func (c *InstancesDetachDiskCall) doRequest(alt string) (*http.Response, error) {
89079	reqHeaders := make(http.Header)
89080	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
89081	for k, v := range c.header_ {
89082		reqHeaders[k] = v
89083	}
89084	reqHeaders.Set("User-Agent", c.s.userAgent())
89085	var body io.Reader = nil
89086	c.urlParams_.Set("alt", alt)
89087	c.urlParams_.Set("prettyPrint", "false")
89088	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/detachDisk")
89089	urls += "?" + c.urlParams_.Encode()
89090	req, err := http.NewRequest("POST", urls, body)
89091	if err != nil {
89092		return nil, err
89093	}
89094	req.Header = reqHeaders
89095	googleapi.Expand(req.URL, map[string]string{
89096		"project":  c.project,
89097		"zone":     c.zone,
89098		"instance": c.instance,
89099	})
89100	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89101}
89102
89103// Do executes the "compute.instances.detachDisk" call.
89104// Exactly one of *Operation or error will be non-nil. Any non-2xx
89105// status code is an error. Response headers are in either
89106// *Operation.ServerResponse.Header or (if a response was returned at
89107// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89108// to check whether the returned error was because
89109// http.StatusNotModified was returned.
89110func (c *InstancesDetachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89111	gensupport.SetOptions(c.urlParams_, opts...)
89112	res, err := c.doRequest("json")
89113	if res != nil && res.StatusCode == http.StatusNotModified {
89114		if res.Body != nil {
89115			res.Body.Close()
89116		}
89117		return nil, &googleapi.Error{
89118			Code:   res.StatusCode,
89119			Header: res.Header,
89120		}
89121	}
89122	if err != nil {
89123		return nil, err
89124	}
89125	defer googleapi.CloseBody(res)
89126	if err := googleapi.CheckResponse(res); err != nil {
89127		return nil, err
89128	}
89129	ret := &Operation{
89130		ServerResponse: googleapi.ServerResponse{
89131			Header:         res.Header,
89132			HTTPStatusCode: res.StatusCode,
89133		},
89134	}
89135	target := &ret
89136	if err := gensupport.DecodeResponse(target, res); err != nil {
89137		return nil, err
89138	}
89139	return ret, nil
89140	// {
89141	//   "description": "Detaches a disk from an instance.",
89142	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/detachDisk",
89143	//   "httpMethod": "POST",
89144	//   "id": "compute.instances.detachDisk",
89145	//   "parameterOrder": [
89146	//     "project",
89147	//     "zone",
89148	//     "instance",
89149	//     "deviceName"
89150	//   ],
89151	//   "parameters": {
89152	//     "deviceName": {
89153	//       "description": "The device name of the disk to detach. Make a get() request on the instance to view currently attached disks and device names.",
89154	//       "location": "query",
89155	//       "required": true,
89156	//       "type": "string"
89157	//     },
89158	//     "instance": {
89159	//       "description": "Instance name for this request.",
89160	//       "location": "path",
89161	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89162	//       "required": true,
89163	//       "type": "string"
89164	//     },
89165	//     "project": {
89166	//       "description": "Project ID for this request.",
89167	//       "location": "path",
89168	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89169	//       "required": true,
89170	//       "type": "string"
89171	//     },
89172	//     "requestId": {
89173	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
89174	//       "location": "query",
89175	//       "type": "string"
89176	//     },
89177	//     "zone": {
89178	//       "description": "The name of the zone for this request.",
89179	//       "location": "path",
89180	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89181	//       "required": true,
89182	//       "type": "string"
89183	//     }
89184	//   },
89185	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/detachDisk",
89186	//   "response": {
89187	//     "$ref": "Operation"
89188	//   },
89189	//   "scopes": [
89190	//     "https://www.googleapis.com/auth/cloud-platform",
89191	//     "https://www.googleapis.com/auth/compute"
89192	//   ]
89193	// }
89194
89195}
89196
89197// method id "compute.instances.get":
89198
89199type InstancesGetCall struct {
89200	s            *Service
89201	project      string
89202	zone         string
89203	instance     string
89204	urlParams_   gensupport.URLParams
89205	ifNoneMatch_ string
89206	ctx_         context.Context
89207	header_      http.Header
89208}
89209
89210// Get: Returns the specified Instance resource. Gets a list of
89211// available instances by making a list() request.
89212//
89213// - instance: Name of the instance resource to return.
89214// - project: Project ID for this request.
89215// - zone: The name of the zone for this request.
89216func (r *InstancesService) Get(project string, zone string, instance string) *InstancesGetCall {
89217	c := &InstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89218	c.project = project
89219	c.zone = zone
89220	c.instance = instance
89221	return c
89222}
89223
89224// Fields allows partial responses to be retrieved. See
89225// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89226// for more information.
89227func (c *InstancesGetCall) Fields(s ...googleapi.Field) *InstancesGetCall {
89228	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89229	return c
89230}
89231
89232// IfNoneMatch sets the optional parameter which makes the operation
89233// fail if the object's ETag matches the given value. This is useful for
89234// getting updates only after the object has changed since the last
89235// request. Use googleapi.IsNotModified to check whether the response
89236// error from Do is the result of In-None-Match.
89237func (c *InstancesGetCall) IfNoneMatch(entityTag string) *InstancesGetCall {
89238	c.ifNoneMatch_ = entityTag
89239	return c
89240}
89241
89242// Context sets the context to be used in this call's Do method. Any
89243// pending HTTP request will be aborted if the provided context is
89244// canceled.
89245func (c *InstancesGetCall) Context(ctx context.Context) *InstancesGetCall {
89246	c.ctx_ = ctx
89247	return c
89248}
89249
89250// Header returns an http.Header that can be modified by the caller to
89251// add HTTP headers to the request.
89252func (c *InstancesGetCall) Header() http.Header {
89253	if c.header_ == nil {
89254		c.header_ = make(http.Header)
89255	}
89256	return c.header_
89257}
89258
89259func (c *InstancesGetCall) doRequest(alt string) (*http.Response, error) {
89260	reqHeaders := make(http.Header)
89261	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
89262	for k, v := range c.header_ {
89263		reqHeaders[k] = v
89264	}
89265	reqHeaders.Set("User-Agent", c.s.userAgent())
89266	if c.ifNoneMatch_ != "" {
89267		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
89268	}
89269	var body io.Reader = nil
89270	c.urlParams_.Set("alt", alt)
89271	c.urlParams_.Set("prettyPrint", "false")
89272	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}")
89273	urls += "?" + c.urlParams_.Encode()
89274	req, err := http.NewRequest("GET", urls, body)
89275	if err != nil {
89276		return nil, err
89277	}
89278	req.Header = reqHeaders
89279	googleapi.Expand(req.URL, map[string]string{
89280		"project":  c.project,
89281		"zone":     c.zone,
89282		"instance": c.instance,
89283	})
89284	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89285}
89286
89287// Do executes the "compute.instances.get" call.
89288// Exactly one of *Instance or error will be non-nil. Any non-2xx status
89289// code is an error. Response headers are in either
89290// *Instance.ServerResponse.Header or (if a response was returned at
89291// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89292// to check whether the returned error was because
89293// http.StatusNotModified was returned.
89294func (c *InstancesGetCall) Do(opts ...googleapi.CallOption) (*Instance, error) {
89295	gensupport.SetOptions(c.urlParams_, opts...)
89296	res, err := c.doRequest("json")
89297	if res != nil && res.StatusCode == http.StatusNotModified {
89298		if res.Body != nil {
89299			res.Body.Close()
89300		}
89301		return nil, &googleapi.Error{
89302			Code:   res.StatusCode,
89303			Header: res.Header,
89304		}
89305	}
89306	if err != nil {
89307		return nil, err
89308	}
89309	defer googleapi.CloseBody(res)
89310	if err := googleapi.CheckResponse(res); err != nil {
89311		return nil, err
89312	}
89313	ret := &Instance{
89314		ServerResponse: googleapi.ServerResponse{
89315			Header:         res.Header,
89316			HTTPStatusCode: res.StatusCode,
89317		},
89318	}
89319	target := &ret
89320	if err := gensupport.DecodeResponse(target, res); err != nil {
89321		return nil, err
89322	}
89323	return ret, nil
89324	// {
89325	//   "description": "Returns the specified Instance resource. Gets a list of available instances by making a list() request.",
89326	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}",
89327	//   "httpMethod": "GET",
89328	//   "id": "compute.instances.get",
89329	//   "parameterOrder": [
89330	//     "project",
89331	//     "zone",
89332	//     "instance"
89333	//   ],
89334	//   "parameters": {
89335	//     "instance": {
89336	//       "description": "Name of the instance resource to return.",
89337	//       "location": "path",
89338	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89339	//       "required": true,
89340	//       "type": "string"
89341	//     },
89342	//     "project": {
89343	//       "description": "Project ID for this request.",
89344	//       "location": "path",
89345	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89346	//       "required": true,
89347	//       "type": "string"
89348	//     },
89349	//     "zone": {
89350	//       "description": "The name of the zone for this request.",
89351	//       "location": "path",
89352	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89353	//       "required": true,
89354	//       "type": "string"
89355	//     }
89356	//   },
89357	//   "path": "projects/{project}/zones/{zone}/instances/{instance}",
89358	//   "response": {
89359	//     "$ref": "Instance"
89360	//   },
89361	//   "scopes": [
89362	//     "https://www.googleapis.com/auth/cloud-platform",
89363	//     "https://www.googleapis.com/auth/compute",
89364	//     "https://www.googleapis.com/auth/compute.readonly"
89365	//   ]
89366	// }
89367
89368}
89369
89370// method id "compute.instances.getEffectiveFirewalls":
89371
89372type InstancesGetEffectiveFirewallsCall struct {
89373	s            *Service
89374	project      string
89375	zone         string
89376	instance     string
89377	urlParams_   gensupport.URLParams
89378	ifNoneMatch_ string
89379	ctx_         context.Context
89380	header_      http.Header
89381}
89382
89383// GetEffectiveFirewalls: Returns effective firewalls applied to an
89384// interface of the instance.
89385//
89386// - instance: Name of the instance scoping this request.
89387// - networkInterface: The name of the network interface to get the
89388//   effective firewalls.
89389// - project: Project ID for this request.
89390// - zone: The name of the zone for this request.
89391func (r *InstancesService) GetEffectiveFirewalls(project string, zone string, instance string, networkInterface string) *InstancesGetEffectiveFirewallsCall {
89392	c := &InstancesGetEffectiveFirewallsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89393	c.project = project
89394	c.zone = zone
89395	c.instance = instance
89396	c.urlParams_.Set("networkInterface", networkInterface)
89397	return c
89398}
89399
89400// Fields allows partial responses to be retrieved. See
89401// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89402// for more information.
89403func (c *InstancesGetEffectiveFirewallsCall) Fields(s ...googleapi.Field) *InstancesGetEffectiveFirewallsCall {
89404	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89405	return c
89406}
89407
89408// IfNoneMatch sets the optional parameter which makes the operation
89409// fail if the object's ETag matches the given value. This is useful for
89410// getting updates only after the object has changed since the last
89411// request. Use googleapi.IsNotModified to check whether the response
89412// error from Do is the result of In-None-Match.
89413func (c *InstancesGetEffectiveFirewallsCall) IfNoneMatch(entityTag string) *InstancesGetEffectiveFirewallsCall {
89414	c.ifNoneMatch_ = entityTag
89415	return c
89416}
89417
89418// Context sets the context to be used in this call's Do method. Any
89419// pending HTTP request will be aborted if the provided context is
89420// canceled.
89421func (c *InstancesGetEffectiveFirewallsCall) Context(ctx context.Context) *InstancesGetEffectiveFirewallsCall {
89422	c.ctx_ = ctx
89423	return c
89424}
89425
89426// Header returns an http.Header that can be modified by the caller to
89427// add HTTP headers to the request.
89428func (c *InstancesGetEffectiveFirewallsCall) Header() http.Header {
89429	if c.header_ == nil {
89430		c.header_ = make(http.Header)
89431	}
89432	return c.header_
89433}
89434
89435func (c *InstancesGetEffectiveFirewallsCall) doRequest(alt string) (*http.Response, error) {
89436	reqHeaders := make(http.Header)
89437	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
89438	for k, v := range c.header_ {
89439		reqHeaders[k] = v
89440	}
89441	reqHeaders.Set("User-Agent", c.s.userAgent())
89442	if c.ifNoneMatch_ != "" {
89443		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
89444	}
89445	var body io.Reader = nil
89446	c.urlParams_.Set("alt", alt)
89447	c.urlParams_.Set("prettyPrint", "false")
89448	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls")
89449	urls += "?" + c.urlParams_.Encode()
89450	req, err := http.NewRequest("GET", urls, body)
89451	if err != nil {
89452		return nil, err
89453	}
89454	req.Header = reqHeaders
89455	googleapi.Expand(req.URL, map[string]string{
89456		"project":  c.project,
89457		"zone":     c.zone,
89458		"instance": c.instance,
89459	})
89460	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89461}
89462
89463// Do executes the "compute.instances.getEffectiveFirewalls" call.
89464// Exactly one of *InstancesGetEffectiveFirewallsResponse or error will
89465// be non-nil. Any non-2xx status code is an error. Response headers are
89466// in either
89467// *InstancesGetEffectiveFirewallsResponse.ServerResponse.Header or (if
89468// a response was returned at all) in error.(*googleapi.Error).Header.
89469// Use googleapi.IsNotModified to check whether the returned error was
89470// because http.StatusNotModified was returned.
89471func (c *InstancesGetEffectiveFirewallsCall) Do(opts ...googleapi.CallOption) (*InstancesGetEffectiveFirewallsResponse, error) {
89472	gensupport.SetOptions(c.urlParams_, opts...)
89473	res, err := c.doRequest("json")
89474	if res != nil && res.StatusCode == http.StatusNotModified {
89475		if res.Body != nil {
89476			res.Body.Close()
89477		}
89478		return nil, &googleapi.Error{
89479			Code:   res.StatusCode,
89480			Header: res.Header,
89481		}
89482	}
89483	if err != nil {
89484		return nil, err
89485	}
89486	defer googleapi.CloseBody(res)
89487	if err := googleapi.CheckResponse(res); err != nil {
89488		return nil, err
89489	}
89490	ret := &InstancesGetEffectiveFirewallsResponse{
89491		ServerResponse: googleapi.ServerResponse{
89492			Header:         res.Header,
89493			HTTPStatusCode: res.StatusCode,
89494		},
89495	}
89496	target := &ret
89497	if err := gensupport.DecodeResponse(target, res); err != nil {
89498		return nil, err
89499	}
89500	return ret, nil
89501	// {
89502	//   "description": "Returns effective firewalls applied to an interface of the instance.",
89503	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls",
89504	//   "httpMethod": "GET",
89505	//   "id": "compute.instances.getEffectiveFirewalls",
89506	//   "parameterOrder": [
89507	//     "project",
89508	//     "zone",
89509	//     "instance",
89510	//     "networkInterface"
89511	//   ],
89512	//   "parameters": {
89513	//     "instance": {
89514	//       "description": "Name of the instance scoping this request.",
89515	//       "location": "path",
89516	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89517	//       "required": true,
89518	//       "type": "string"
89519	//     },
89520	//     "networkInterface": {
89521	//       "description": "The name of the network interface to get the effective firewalls.",
89522	//       "location": "query",
89523	//       "required": true,
89524	//       "type": "string"
89525	//     },
89526	//     "project": {
89527	//       "description": "Project ID for this request.",
89528	//       "location": "path",
89529	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89530	//       "required": true,
89531	//       "type": "string"
89532	//     },
89533	//     "zone": {
89534	//       "description": "The name of the zone for this request.",
89535	//       "location": "path",
89536	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89537	//       "required": true,
89538	//       "type": "string"
89539	//     }
89540	//   },
89541	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls",
89542	//   "response": {
89543	//     "$ref": "InstancesGetEffectiveFirewallsResponse"
89544	//   },
89545	//   "scopes": [
89546	//     "https://www.googleapis.com/auth/cloud-platform",
89547	//     "https://www.googleapis.com/auth/compute",
89548	//     "https://www.googleapis.com/auth/compute.readonly"
89549	//   ]
89550	// }
89551
89552}
89553
89554// method id "compute.instances.getGuestAttributes":
89555
89556type InstancesGetGuestAttributesCall struct {
89557	s            *Service
89558	project      string
89559	zone         string
89560	instance     string
89561	urlParams_   gensupport.URLParams
89562	ifNoneMatch_ string
89563	ctx_         context.Context
89564	header_      http.Header
89565}
89566
89567// GetGuestAttributes: Returns the specified guest attributes entry.
89568//
89569// - instance: Name of the instance scoping this request.
89570// - project: Project ID for this request.
89571// - zone: The name of the zone for this request.
89572func (r *InstancesService) GetGuestAttributes(project string, zone string, instance string) *InstancesGetGuestAttributesCall {
89573	c := &InstancesGetGuestAttributesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89574	c.project = project
89575	c.zone = zone
89576	c.instance = instance
89577	return c
89578}
89579
89580// QueryPath sets the optional parameter "queryPath": Specifies the
89581// guest attributes path to be queried.
89582func (c *InstancesGetGuestAttributesCall) QueryPath(queryPath string) *InstancesGetGuestAttributesCall {
89583	c.urlParams_.Set("queryPath", queryPath)
89584	return c
89585}
89586
89587// VariableKey sets the optional parameter "variableKey": Specifies the
89588// key for the guest attributes entry.
89589func (c *InstancesGetGuestAttributesCall) VariableKey(variableKey string) *InstancesGetGuestAttributesCall {
89590	c.urlParams_.Set("variableKey", variableKey)
89591	return c
89592}
89593
89594// Fields allows partial responses to be retrieved. See
89595// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89596// for more information.
89597func (c *InstancesGetGuestAttributesCall) Fields(s ...googleapi.Field) *InstancesGetGuestAttributesCall {
89598	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89599	return c
89600}
89601
89602// IfNoneMatch sets the optional parameter which makes the operation
89603// fail if the object's ETag matches the given value. This is useful for
89604// getting updates only after the object has changed since the last
89605// request. Use googleapi.IsNotModified to check whether the response
89606// error from Do is the result of In-None-Match.
89607func (c *InstancesGetGuestAttributesCall) IfNoneMatch(entityTag string) *InstancesGetGuestAttributesCall {
89608	c.ifNoneMatch_ = entityTag
89609	return c
89610}
89611
89612// Context sets the context to be used in this call's Do method. Any
89613// pending HTTP request will be aborted if the provided context is
89614// canceled.
89615func (c *InstancesGetGuestAttributesCall) Context(ctx context.Context) *InstancesGetGuestAttributesCall {
89616	c.ctx_ = ctx
89617	return c
89618}
89619
89620// Header returns an http.Header that can be modified by the caller to
89621// add HTTP headers to the request.
89622func (c *InstancesGetGuestAttributesCall) Header() http.Header {
89623	if c.header_ == nil {
89624		c.header_ = make(http.Header)
89625	}
89626	return c.header_
89627}
89628
89629func (c *InstancesGetGuestAttributesCall) doRequest(alt string) (*http.Response, error) {
89630	reqHeaders := make(http.Header)
89631	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
89632	for k, v := range c.header_ {
89633		reqHeaders[k] = v
89634	}
89635	reqHeaders.Set("User-Agent", c.s.userAgent())
89636	if c.ifNoneMatch_ != "" {
89637		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
89638	}
89639	var body io.Reader = nil
89640	c.urlParams_.Set("alt", alt)
89641	c.urlParams_.Set("prettyPrint", "false")
89642	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/getGuestAttributes")
89643	urls += "?" + c.urlParams_.Encode()
89644	req, err := http.NewRequest("GET", urls, body)
89645	if err != nil {
89646		return nil, err
89647	}
89648	req.Header = reqHeaders
89649	googleapi.Expand(req.URL, map[string]string{
89650		"project":  c.project,
89651		"zone":     c.zone,
89652		"instance": c.instance,
89653	})
89654	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89655}
89656
89657// Do executes the "compute.instances.getGuestAttributes" call.
89658// Exactly one of *GuestAttributes or error will be non-nil. Any non-2xx
89659// status code is an error. Response headers are in either
89660// *GuestAttributes.ServerResponse.Header or (if a response was returned
89661// at all) in error.(*googleapi.Error).Header. Use
89662// googleapi.IsNotModified to check whether the returned error was
89663// because http.StatusNotModified was returned.
89664func (c *InstancesGetGuestAttributesCall) Do(opts ...googleapi.CallOption) (*GuestAttributes, error) {
89665	gensupport.SetOptions(c.urlParams_, opts...)
89666	res, err := c.doRequest("json")
89667	if res != nil && res.StatusCode == http.StatusNotModified {
89668		if res.Body != nil {
89669			res.Body.Close()
89670		}
89671		return nil, &googleapi.Error{
89672			Code:   res.StatusCode,
89673			Header: res.Header,
89674		}
89675	}
89676	if err != nil {
89677		return nil, err
89678	}
89679	defer googleapi.CloseBody(res)
89680	if err := googleapi.CheckResponse(res); err != nil {
89681		return nil, err
89682	}
89683	ret := &GuestAttributes{
89684		ServerResponse: googleapi.ServerResponse{
89685			Header:         res.Header,
89686			HTTPStatusCode: res.StatusCode,
89687		},
89688	}
89689	target := &ret
89690	if err := gensupport.DecodeResponse(target, res); err != nil {
89691		return nil, err
89692	}
89693	return ret, nil
89694	// {
89695	//   "description": "Returns the specified guest attributes entry.",
89696	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/getGuestAttributes",
89697	//   "httpMethod": "GET",
89698	//   "id": "compute.instances.getGuestAttributes",
89699	//   "parameterOrder": [
89700	//     "project",
89701	//     "zone",
89702	//     "instance"
89703	//   ],
89704	//   "parameters": {
89705	//     "instance": {
89706	//       "description": "Name of the instance scoping this request.",
89707	//       "location": "path",
89708	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89709	//       "required": true,
89710	//       "type": "string"
89711	//     },
89712	//     "project": {
89713	//       "description": "Project ID for this request.",
89714	//       "location": "path",
89715	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89716	//       "required": true,
89717	//       "type": "string"
89718	//     },
89719	//     "queryPath": {
89720	//       "description": "Specifies the guest attributes path to be queried.",
89721	//       "location": "query",
89722	//       "type": "string"
89723	//     },
89724	//     "variableKey": {
89725	//       "description": "Specifies the key for the guest attributes entry.",
89726	//       "location": "query",
89727	//       "type": "string"
89728	//     },
89729	//     "zone": {
89730	//       "description": "The name of the zone for this request.",
89731	//       "location": "path",
89732	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89733	//       "required": true,
89734	//       "type": "string"
89735	//     }
89736	//   },
89737	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/getGuestAttributes",
89738	//   "response": {
89739	//     "$ref": "GuestAttributes"
89740	//   },
89741	//   "scopes": [
89742	//     "https://www.googleapis.com/auth/cloud-platform",
89743	//     "https://www.googleapis.com/auth/compute",
89744	//     "https://www.googleapis.com/auth/compute.readonly"
89745	//   ]
89746	// }
89747
89748}
89749
89750// method id "compute.instances.getIamPolicy":
89751
89752type InstancesGetIamPolicyCall struct {
89753	s            *Service
89754	project      string
89755	zone         string
89756	resource     string
89757	urlParams_   gensupport.URLParams
89758	ifNoneMatch_ string
89759	ctx_         context.Context
89760	header_      http.Header
89761}
89762
89763// GetIamPolicy: Gets the access control policy for a resource. May be
89764// empty if no such policy or resource exists.
89765//
89766// - project: Project ID for this request.
89767// - resource: Name or id of the resource for this request.
89768// - zone: The name of the zone for this request.
89769func (r *InstancesService) GetIamPolicy(project string, zone string, resource string) *InstancesGetIamPolicyCall {
89770	c := &InstancesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89771	c.project = project
89772	c.zone = zone
89773	c.resource = resource
89774	return c
89775}
89776
89777// OptionsRequestedPolicyVersion sets the optional parameter
89778// "optionsRequestedPolicyVersion": Requested IAM Policy version.
89779func (c *InstancesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InstancesGetIamPolicyCall {
89780	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
89781	return c
89782}
89783
89784// Fields allows partial responses to be retrieved. See
89785// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89786// for more information.
89787func (c *InstancesGetIamPolicyCall) Fields(s ...googleapi.Field) *InstancesGetIamPolicyCall {
89788	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89789	return c
89790}
89791
89792// IfNoneMatch sets the optional parameter which makes the operation
89793// fail if the object's ETag matches the given value. This is useful for
89794// getting updates only after the object has changed since the last
89795// request. Use googleapi.IsNotModified to check whether the response
89796// error from Do is the result of In-None-Match.
89797func (c *InstancesGetIamPolicyCall) IfNoneMatch(entityTag string) *InstancesGetIamPolicyCall {
89798	c.ifNoneMatch_ = entityTag
89799	return c
89800}
89801
89802// Context sets the context to be used in this call's Do method. Any
89803// pending HTTP request will be aborted if the provided context is
89804// canceled.
89805func (c *InstancesGetIamPolicyCall) Context(ctx context.Context) *InstancesGetIamPolicyCall {
89806	c.ctx_ = ctx
89807	return c
89808}
89809
89810// Header returns an http.Header that can be modified by the caller to
89811// add HTTP headers to the request.
89812func (c *InstancesGetIamPolicyCall) Header() http.Header {
89813	if c.header_ == nil {
89814		c.header_ = make(http.Header)
89815	}
89816	return c.header_
89817}
89818
89819func (c *InstancesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
89820	reqHeaders := make(http.Header)
89821	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
89822	for k, v := range c.header_ {
89823		reqHeaders[k] = v
89824	}
89825	reqHeaders.Set("User-Agent", c.s.userAgent())
89826	if c.ifNoneMatch_ != "" {
89827		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
89828	}
89829	var body io.Reader = nil
89830	c.urlParams_.Set("alt", alt)
89831	c.urlParams_.Set("prettyPrint", "false")
89832	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy")
89833	urls += "?" + c.urlParams_.Encode()
89834	req, err := http.NewRequest("GET", urls, body)
89835	if err != nil {
89836		return nil, err
89837	}
89838	req.Header = reqHeaders
89839	googleapi.Expand(req.URL, map[string]string{
89840		"project":  c.project,
89841		"zone":     c.zone,
89842		"resource": c.resource,
89843	})
89844	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89845}
89846
89847// Do executes the "compute.instances.getIamPolicy" call.
89848// Exactly one of *Policy or error will be non-nil. Any non-2xx status
89849// code is an error. Response headers are in either
89850// *Policy.ServerResponse.Header or (if a response was returned at all)
89851// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
89852// check whether the returned error was because http.StatusNotModified
89853// was returned.
89854func (c *InstancesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
89855	gensupport.SetOptions(c.urlParams_, opts...)
89856	res, err := c.doRequest("json")
89857	if res != nil && res.StatusCode == http.StatusNotModified {
89858		if res.Body != nil {
89859			res.Body.Close()
89860		}
89861		return nil, &googleapi.Error{
89862			Code:   res.StatusCode,
89863			Header: res.Header,
89864		}
89865	}
89866	if err != nil {
89867		return nil, err
89868	}
89869	defer googleapi.CloseBody(res)
89870	if err := googleapi.CheckResponse(res); err != nil {
89871		return nil, err
89872	}
89873	ret := &Policy{
89874		ServerResponse: googleapi.ServerResponse{
89875			Header:         res.Header,
89876			HTTPStatusCode: res.StatusCode,
89877		},
89878	}
89879	target := &ret
89880	if err := gensupport.DecodeResponse(target, res); err != nil {
89881		return nil, err
89882	}
89883	return ret, nil
89884	// {
89885	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
89886	//   "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy",
89887	//   "httpMethod": "GET",
89888	//   "id": "compute.instances.getIamPolicy",
89889	//   "parameterOrder": [
89890	//     "project",
89891	//     "zone",
89892	//     "resource"
89893	//   ],
89894	//   "parameters": {
89895	//     "optionsRequestedPolicyVersion": {
89896	//       "description": "Requested IAM Policy version.",
89897	//       "format": "int32",
89898	//       "location": "query",
89899	//       "type": "integer"
89900	//     },
89901	//     "project": {
89902	//       "description": "Project ID for this request.",
89903	//       "location": "path",
89904	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89905	//       "required": true,
89906	//       "type": "string"
89907	//     },
89908	//     "resource": {
89909	//       "description": "Name or id of the resource for this request.",
89910	//       "location": "path",
89911	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89912	//       "required": true,
89913	//       "type": "string"
89914	//     },
89915	//     "zone": {
89916	//       "description": "The name of the zone for this request.",
89917	//       "location": "path",
89918	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89919	//       "required": true,
89920	//       "type": "string"
89921	//     }
89922	//   },
89923	//   "path": "projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy",
89924	//   "response": {
89925	//     "$ref": "Policy"
89926	//   },
89927	//   "scopes": [
89928	//     "https://www.googleapis.com/auth/cloud-platform",
89929	//     "https://www.googleapis.com/auth/compute",
89930	//     "https://www.googleapis.com/auth/compute.readonly"
89931	//   ]
89932	// }
89933
89934}
89935
89936// method id "compute.instances.getScreenshot":
89937
89938type InstancesGetScreenshotCall struct {
89939	s            *Service
89940	project      string
89941	zone         string
89942	instance     string
89943	urlParams_   gensupport.URLParams
89944	ifNoneMatch_ string
89945	ctx_         context.Context
89946	header_      http.Header
89947}
89948
89949// GetScreenshot: Returns the screenshot from the specified instance.
89950//
89951// - instance: Name of the instance scoping this request.
89952// - project: Project ID for this request.
89953// - zone: The name of the zone for this request.
89954func (r *InstancesService) GetScreenshot(project string, zone string, instance string) *InstancesGetScreenshotCall {
89955	c := &InstancesGetScreenshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89956	c.project = project
89957	c.zone = zone
89958	c.instance = instance
89959	return c
89960}
89961
89962// Fields allows partial responses to be retrieved. See
89963// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89964// for more information.
89965func (c *InstancesGetScreenshotCall) Fields(s ...googleapi.Field) *InstancesGetScreenshotCall {
89966	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89967	return c
89968}
89969
89970// IfNoneMatch sets the optional parameter which makes the operation
89971// fail if the object's ETag matches the given value. This is useful for
89972// getting updates only after the object has changed since the last
89973// request. Use googleapi.IsNotModified to check whether the response
89974// error from Do is the result of In-None-Match.
89975func (c *InstancesGetScreenshotCall) IfNoneMatch(entityTag string) *InstancesGetScreenshotCall {
89976	c.ifNoneMatch_ = entityTag
89977	return c
89978}
89979
89980// Context sets the context to be used in this call's Do method. Any
89981// pending HTTP request will be aborted if the provided context is
89982// canceled.
89983func (c *InstancesGetScreenshotCall) Context(ctx context.Context) *InstancesGetScreenshotCall {
89984	c.ctx_ = ctx
89985	return c
89986}
89987
89988// Header returns an http.Header that can be modified by the caller to
89989// add HTTP headers to the request.
89990func (c *InstancesGetScreenshotCall) Header() http.Header {
89991	if c.header_ == nil {
89992		c.header_ = make(http.Header)
89993	}
89994	return c.header_
89995}
89996
89997func (c *InstancesGetScreenshotCall) doRequest(alt string) (*http.Response, error) {
89998	reqHeaders := make(http.Header)
89999	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
90000	for k, v := range c.header_ {
90001		reqHeaders[k] = v
90002	}
90003	reqHeaders.Set("User-Agent", c.s.userAgent())
90004	if c.ifNoneMatch_ != "" {
90005		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
90006	}
90007	var body io.Reader = nil
90008	c.urlParams_.Set("alt", alt)
90009	c.urlParams_.Set("prettyPrint", "false")
90010	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/screenshot")
90011	urls += "?" + c.urlParams_.Encode()
90012	req, err := http.NewRequest("GET", urls, body)
90013	if err != nil {
90014		return nil, err
90015	}
90016	req.Header = reqHeaders
90017	googleapi.Expand(req.URL, map[string]string{
90018		"project":  c.project,
90019		"zone":     c.zone,
90020		"instance": c.instance,
90021	})
90022	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90023}
90024
90025// Do executes the "compute.instances.getScreenshot" call.
90026// Exactly one of *Screenshot or error will be non-nil. Any non-2xx
90027// status code is an error. Response headers are in either
90028// *Screenshot.ServerResponse.Header or (if a response was returned at
90029// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90030// to check whether the returned error was because
90031// http.StatusNotModified was returned.
90032func (c *InstancesGetScreenshotCall) Do(opts ...googleapi.CallOption) (*Screenshot, error) {
90033	gensupport.SetOptions(c.urlParams_, opts...)
90034	res, err := c.doRequest("json")
90035	if res != nil && res.StatusCode == http.StatusNotModified {
90036		if res.Body != nil {
90037			res.Body.Close()
90038		}
90039		return nil, &googleapi.Error{
90040			Code:   res.StatusCode,
90041			Header: res.Header,
90042		}
90043	}
90044	if err != nil {
90045		return nil, err
90046	}
90047	defer googleapi.CloseBody(res)
90048	if err := googleapi.CheckResponse(res); err != nil {
90049		return nil, err
90050	}
90051	ret := &Screenshot{
90052		ServerResponse: googleapi.ServerResponse{
90053			Header:         res.Header,
90054			HTTPStatusCode: res.StatusCode,
90055		},
90056	}
90057	target := &ret
90058	if err := gensupport.DecodeResponse(target, res); err != nil {
90059		return nil, err
90060	}
90061	return ret, nil
90062	// {
90063	//   "description": "Returns the screenshot from the specified instance.",
90064	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/screenshot",
90065	//   "httpMethod": "GET",
90066	//   "id": "compute.instances.getScreenshot",
90067	//   "parameterOrder": [
90068	//     "project",
90069	//     "zone",
90070	//     "instance"
90071	//   ],
90072	//   "parameters": {
90073	//     "instance": {
90074	//       "description": "Name of the instance scoping this request.",
90075	//       "location": "path",
90076	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90077	//       "required": true,
90078	//       "type": "string"
90079	//     },
90080	//     "project": {
90081	//       "description": "Project ID for this request.",
90082	//       "location": "path",
90083	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90084	//       "required": true,
90085	//       "type": "string"
90086	//     },
90087	//     "zone": {
90088	//       "description": "The name of the zone for this request.",
90089	//       "location": "path",
90090	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90091	//       "required": true,
90092	//       "type": "string"
90093	//     }
90094	//   },
90095	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/screenshot",
90096	//   "response": {
90097	//     "$ref": "Screenshot"
90098	//   },
90099	//   "scopes": [
90100	//     "https://www.googleapis.com/auth/cloud-platform",
90101	//     "https://www.googleapis.com/auth/compute",
90102	//     "https://www.googleapis.com/auth/compute.readonly"
90103	//   ]
90104	// }
90105
90106}
90107
90108// method id "compute.instances.getSerialPortOutput":
90109
90110type InstancesGetSerialPortOutputCall struct {
90111	s            *Service
90112	project      string
90113	zone         string
90114	instance     string
90115	urlParams_   gensupport.URLParams
90116	ifNoneMatch_ string
90117	ctx_         context.Context
90118	header_      http.Header
90119}
90120
90121// GetSerialPortOutput: Returns the last 1 MB of serial port output from
90122// the specified instance.
90123//
90124// - instance: Name of the instance for this request.
90125// - project: Project ID for this request.
90126// - zone: The name of the zone for this request.
90127func (r *InstancesService) GetSerialPortOutput(project string, zone string, instance string) *InstancesGetSerialPortOutputCall {
90128	c := &InstancesGetSerialPortOutputCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90129	c.project = project
90130	c.zone = zone
90131	c.instance = instance
90132	return c
90133}
90134
90135// Port sets the optional parameter "port": Specifies which COM or
90136// serial port to retrieve data from.
90137func (c *InstancesGetSerialPortOutputCall) Port(port int64) *InstancesGetSerialPortOutputCall {
90138	c.urlParams_.Set("port", fmt.Sprint(port))
90139	return c
90140}
90141
90142// Start sets the optional parameter "start": Specifies the starting
90143// byte position of the output to return. To start with the first byte
90144// of output to the specified port, omit this field or set it to `0`. If
90145// the output for that byte position is available, this field matches
90146// the `start` parameter sent with the request. If the amount of serial
90147// console output exceeds the size of the buffer (1 MB), the oldest
90148// output is discarded and is no longer available. If the requested
90149// start position refers to discarded output, the start position is
90150// adjusted to the oldest output still available, and the adjusted start
90151// position is returned as the `start` property value. You can also
90152// provide a negative start position, which translates to the most
90153// recent number of bytes written to the serial port. For example, -3 is
90154// interpreted as the most recent 3 bytes written to the serial console.
90155func (c *InstancesGetSerialPortOutputCall) Start(start int64) *InstancesGetSerialPortOutputCall {
90156	c.urlParams_.Set("start", fmt.Sprint(start))
90157	return c
90158}
90159
90160// Fields allows partial responses to be retrieved. See
90161// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90162// for more information.
90163func (c *InstancesGetSerialPortOutputCall) Fields(s ...googleapi.Field) *InstancesGetSerialPortOutputCall {
90164	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90165	return c
90166}
90167
90168// IfNoneMatch sets the optional parameter which makes the operation
90169// fail if the object's ETag matches the given value. This is useful for
90170// getting updates only after the object has changed since the last
90171// request. Use googleapi.IsNotModified to check whether the response
90172// error from Do is the result of In-None-Match.
90173func (c *InstancesGetSerialPortOutputCall) IfNoneMatch(entityTag string) *InstancesGetSerialPortOutputCall {
90174	c.ifNoneMatch_ = entityTag
90175	return c
90176}
90177
90178// Context sets the context to be used in this call's Do method. Any
90179// pending HTTP request will be aborted if the provided context is
90180// canceled.
90181func (c *InstancesGetSerialPortOutputCall) Context(ctx context.Context) *InstancesGetSerialPortOutputCall {
90182	c.ctx_ = ctx
90183	return c
90184}
90185
90186// Header returns an http.Header that can be modified by the caller to
90187// add HTTP headers to the request.
90188func (c *InstancesGetSerialPortOutputCall) Header() http.Header {
90189	if c.header_ == nil {
90190		c.header_ = make(http.Header)
90191	}
90192	return c.header_
90193}
90194
90195func (c *InstancesGetSerialPortOutputCall) doRequest(alt string) (*http.Response, error) {
90196	reqHeaders := make(http.Header)
90197	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
90198	for k, v := range c.header_ {
90199		reqHeaders[k] = v
90200	}
90201	reqHeaders.Set("User-Agent", c.s.userAgent())
90202	if c.ifNoneMatch_ != "" {
90203		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
90204	}
90205	var body io.Reader = nil
90206	c.urlParams_.Set("alt", alt)
90207	c.urlParams_.Set("prettyPrint", "false")
90208	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/serialPort")
90209	urls += "?" + c.urlParams_.Encode()
90210	req, err := http.NewRequest("GET", urls, body)
90211	if err != nil {
90212		return nil, err
90213	}
90214	req.Header = reqHeaders
90215	googleapi.Expand(req.URL, map[string]string{
90216		"project":  c.project,
90217		"zone":     c.zone,
90218		"instance": c.instance,
90219	})
90220	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90221}
90222
90223// Do executes the "compute.instances.getSerialPortOutput" call.
90224// Exactly one of *SerialPortOutput or error will be non-nil. Any
90225// non-2xx status code is an error. Response headers are in either
90226// *SerialPortOutput.ServerResponse.Header or (if a response was
90227// returned at all) in error.(*googleapi.Error).Header. Use
90228// googleapi.IsNotModified to check whether the returned error was
90229// because http.StatusNotModified was returned.
90230func (c *InstancesGetSerialPortOutputCall) Do(opts ...googleapi.CallOption) (*SerialPortOutput, error) {
90231	gensupport.SetOptions(c.urlParams_, opts...)
90232	res, err := c.doRequest("json")
90233	if res != nil && res.StatusCode == http.StatusNotModified {
90234		if res.Body != nil {
90235			res.Body.Close()
90236		}
90237		return nil, &googleapi.Error{
90238			Code:   res.StatusCode,
90239			Header: res.Header,
90240		}
90241	}
90242	if err != nil {
90243		return nil, err
90244	}
90245	defer googleapi.CloseBody(res)
90246	if err := googleapi.CheckResponse(res); err != nil {
90247		return nil, err
90248	}
90249	ret := &SerialPortOutput{
90250		ServerResponse: googleapi.ServerResponse{
90251			Header:         res.Header,
90252			HTTPStatusCode: res.StatusCode,
90253		},
90254	}
90255	target := &ret
90256	if err := gensupport.DecodeResponse(target, res); err != nil {
90257		return nil, err
90258	}
90259	return ret, nil
90260	// {
90261	//   "description": "Returns the last 1 MB of serial port output from the specified instance.",
90262	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/serialPort",
90263	//   "httpMethod": "GET",
90264	//   "id": "compute.instances.getSerialPortOutput",
90265	//   "parameterOrder": [
90266	//     "project",
90267	//     "zone",
90268	//     "instance"
90269	//   ],
90270	//   "parameters": {
90271	//     "instance": {
90272	//       "description": "Name of the instance for this request.",
90273	//       "location": "path",
90274	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90275	//       "required": true,
90276	//       "type": "string"
90277	//     },
90278	//     "port": {
90279	//       "default": "1",
90280	//       "description": "Specifies which COM or serial port to retrieve data from.",
90281	//       "format": "int32",
90282	//       "location": "query",
90283	//       "maximum": "4",
90284	//       "minimum": "1",
90285	//       "type": "integer"
90286	//     },
90287	//     "project": {
90288	//       "description": "Project ID for this request.",
90289	//       "location": "path",
90290	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90291	//       "required": true,
90292	//       "type": "string"
90293	//     },
90294	//     "start": {
90295	//       "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.",
90296	//       "format": "int64",
90297	//       "location": "query",
90298	//       "type": "string"
90299	//     },
90300	//     "zone": {
90301	//       "description": "The name of the zone for this request.",
90302	//       "location": "path",
90303	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90304	//       "required": true,
90305	//       "type": "string"
90306	//     }
90307	//   },
90308	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/serialPort",
90309	//   "response": {
90310	//     "$ref": "SerialPortOutput"
90311	//   },
90312	//   "scopes": [
90313	//     "https://www.googleapis.com/auth/cloud-platform",
90314	//     "https://www.googleapis.com/auth/compute",
90315	//     "https://www.googleapis.com/auth/compute.readonly"
90316	//   ]
90317	// }
90318
90319}
90320
90321// method id "compute.instances.getShieldedInstanceIdentity":
90322
90323type InstancesGetShieldedInstanceIdentityCall struct {
90324	s            *Service
90325	project      string
90326	zone         string
90327	instance     string
90328	urlParams_   gensupport.URLParams
90329	ifNoneMatch_ string
90330	ctx_         context.Context
90331	header_      http.Header
90332}
90333
90334// GetShieldedInstanceIdentity: Returns the Shielded Instance Identity
90335// of an instance
90336//
90337// - instance: Name or id of the instance scoping this request.
90338// - project: Project ID for this request.
90339// - zone: The name of the zone for this request.
90340func (r *InstancesService) GetShieldedInstanceIdentity(project string, zone string, instance string) *InstancesGetShieldedInstanceIdentityCall {
90341	c := &InstancesGetShieldedInstanceIdentityCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90342	c.project = project
90343	c.zone = zone
90344	c.instance = instance
90345	return c
90346}
90347
90348// Fields allows partial responses to be retrieved. See
90349// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90350// for more information.
90351func (c *InstancesGetShieldedInstanceIdentityCall) Fields(s ...googleapi.Field) *InstancesGetShieldedInstanceIdentityCall {
90352	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90353	return c
90354}
90355
90356// IfNoneMatch sets the optional parameter which makes the operation
90357// fail if the object's ETag matches the given value. This is useful for
90358// getting updates only after the object has changed since the last
90359// request. Use googleapi.IsNotModified to check whether the response
90360// error from Do is the result of In-None-Match.
90361func (c *InstancesGetShieldedInstanceIdentityCall) IfNoneMatch(entityTag string) *InstancesGetShieldedInstanceIdentityCall {
90362	c.ifNoneMatch_ = entityTag
90363	return c
90364}
90365
90366// Context sets the context to be used in this call's Do method. Any
90367// pending HTTP request will be aborted if the provided context is
90368// canceled.
90369func (c *InstancesGetShieldedInstanceIdentityCall) Context(ctx context.Context) *InstancesGetShieldedInstanceIdentityCall {
90370	c.ctx_ = ctx
90371	return c
90372}
90373
90374// Header returns an http.Header that can be modified by the caller to
90375// add HTTP headers to the request.
90376func (c *InstancesGetShieldedInstanceIdentityCall) Header() http.Header {
90377	if c.header_ == nil {
90378		c.header_ = make(http.Header)
90379	}
90380	return c.header_
90381}
90382
90383func (c *InstancesGetShieldedInstanceIdentityCall) doRequest(alt string) (*http.Response, error) {
90384	reqHeaders := make(http.Header)
90385	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
90386	for k, v := range c.header_ {
90387		reqHeaders[k] = v
90388	}
90389	reqHeaders.Set("User-Agent", c.s.userAgent())
90390	if c.ifNoneMatch_ != "" {
90391		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
90392	}
90393	var body io.Reader = nil
90394	c.urlParams_.Set("alt", alt)
90395	c.urlParams_.Set("prettyPrint", "false")
90396	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity")
90397	urls += "?" + c.urlParams_.Encode()
90398	req, err := http.NewRequest("GET", urls, body)
90399	if err != nil {
90400		return nil, err
90401	}
90402	req.Header = reqHeaders
90403	googleapi.Expand(req.URL, map[string]string{
90404		"project":  c.project,
90405		"zone":     c.zone,
90406		"instance": c.instance,
90407	})
90408	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90409}
90410
90411// Do executes the "compute.instances.getShieldedInstanceIdentity" call.
90412// Exactly one of *ShieldedInstanceIdentity or error will be non-nil.
90413// Any non-2xx status code is an error. Response headers are in either
90414// *ShieldedInstanceIdentity.ServerResponse.Header or (if a response was
90415// returned at all) in error.(*googleapi.Error).Header. Use
90416// googleapi.IsNotModified to check whether the returned error was
90417// because http.StatusNotModified was returned.
90418func (c *InstancesGetShieldedInstanceIdentityCall) Do(opts ...googleapi.CallOption) (*ShieldedInstanceIdentity, error) {
90419	gensupport.SetOptions(c.urlParams_, opts...)
90420	res, err := c.doRequest("json")
90421	if res != nil && res.StatusCode == http.StatusNotModified {
90422		if res.Body != nil {
90423			res.Body.Close()
90424		}
90425		return nil, &googleapi.Error{
90426			Code:   res.StatusCode,
90427			Header: res.Header,
90428		}
90429	}
90430	if err != nil {
90431		return nil, err
90432	}
90433	defer googleapi.CloseBody(res)
90434	if err := googleapi.CheckResponse(res); err != nil {
90435		return nil, err
90436	}
90437	ret := &ShieldedInstanceIdentity{
90438		ServerResponse: googleapi.ServerResponse{
90439			Header:         res.Header,
90440			HTTPStatusCode: res.StatusCode,
90441		},
90442	}
90443	target := &ret
90444	if err := gensupport.DecodeResponse(target, res); err != nil {
90445		return nil, err
90446	}
90447	return ret, nil
90448	// {
90449	//   "description": "Returns the Shielded Instance Identity of an instance",
90450	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity",
90451	//   "httpMethod": "GET",
90452	//   "id": "compute.instances.getShieldedInstanceIdentity",
90453	//   "parameterOrder": [
90454	//     "project",
90455	//     "zone",
90456	//     "instance"
90457	//   ],
90458	//   "parameters": {
90459	//     "instance": {
90460	//       "description": "Name or id of the instance scoping this request.",
90461	//       "location": "path",
90462	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90463	//       "required": true,
90464	//       "type": "string"
90465	//     },
90466	//     "project": {
90467	//       "description": "Project ID for this request.",
90468	//       "location": "path",
90469	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90470	//       "required": true,
90471	//       "type": "string"
90472	//     },
90473	//     "zone": {
90474	//       "description": "The name of the zone for this request.",
90475	//       "location": "path",
90476	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90477	//       "required": true,
90478	//       "type": "string"
90479	//     }
90480	//   },
90481	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity",
90482	//   "response": {
90483	//     "$ref": "ShieldedInstanceIdentity"
90484	//   },
90485	//   "scopes": [
90486	//     "https://www.googleapis.com/auth/cloud-platform",
90487	//     "https://www.googleapis.com/auth/compute",
90488	//     "https://www.googleapis.com/auth/compute.readonly"
90489	//   ]
90490	// }
90491
90492}
90493
90494// method id "compute.instances.insert":
90495
90496type InstancesInsertCall struct {
90497	s          *Service
90498	project    string
90499	zone       string
90500	instance   *Instance
90501	urlParams_ gensupport.URLParams
90502	ctx_       context.Context
90503	header_    http.Header
90504}
90505
90506// Insert: Creates an instance resource in the specified project using
90507// the data included in the request.
90508//
90509// - project: Project ID for this request.
90510// - zone: The name of the zone for this request.
90511func (r *InstancesService) Insert(project string, zone string, instance *Instance) *InstancesInsertCall {
90512	c := &InstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90513	c.project = project
90514	c.zone = zone
90515	c.instance = instance
90516	return c
90517}
90518
90519// RequestId sets the optional parameter "requestId": An optional
90520// request ID to identify requests. Specify a unique request ID so that
90521// if you must retry your request, the server will know to ignore the
90522// request if it has already been completed. For example, consider a
90523// situation where you make an initial request and the request times
90524// out. If you make the request again with the same request ID, the
90525// server can check if original operation with the same request ID was
90526// received, and if so, will ignore the second request. This prevents
90527// clients from accidentally creating duplicate commitments. The request
90528// ID must be a valid UUID with the exception that zero UUID is not
90529// supported ( 00000000-0000-0000-0000-000000000000).
90530func (c *InstancesInsertCall) RequestId(requestId string) *InstancesInsertCall {
90531	c.urlParams_.Set("requestId", requestId)
90532	return c
90533}
90534
90535// SourceInstanceTemplate sets the optional parameter
90536// "sourceInstanceTemplate": Specifies instance template to create the
90537// instance. This field is optional. It can be a full or partial URL.
90538// For example, the following are all valid URLs to an instance
90539// template: - https://www.googleapis.com/compute/v1/projects/project
90540// /global/instanceTemplates/instanceTemplate -
90541// projects/project/global/instanceTemplates/instanceTemplate -
90542// global/instanceTemplates/instanceTemplate
90543func (c *InstancesInsertCall) SourceInstanceTemplate(sourceInstanceTemplate string) *InstancesInsertCall {
90544	c.urlParams_.Set("sourceInstanceTemplate", sourceInstanceTemplate)
90545	return c
90546}
90547
90548// Fields allows partial responses to be retrieved. See
90549// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90550// for more information.
90551func (c *InstancesInsertCall) Fields(s ...googleapi.Field) *InstancesInsertCall {
90552	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90553	return c
90554}
90555
90556// Context sets the context to be used in this call's Do method. Any
90557// pending HTTP request will be aborted if the provided context is
90558// canceled.
90559func (c *InstancesInsertCall) Context(ctx context.Context) *InstancesInsertCall {
90560	c.ctx_ = ctx
90561	return c
90562}
90563
90564// Header returns an http.Header that can be modified by the caller to
90565// add HTTP headers to the request.
90566func (c *InstancesInsertCall) Header() http.Header {
90567	if c.header_ == nil {
90568		c.header_ = make(http.Header)
90569	}
90570	return c.header_
90571}
90572
90573func (c *InstancesInsertCall) doRequest(alt string) (*http.Response, error) {
90574	reqHeaders := make(http.Header)
90575	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
90576	for k, v := range c.header_ {
90577		reqHeaders[k] = v
90578	}
90579	reqHeaders.Set("User-Agent", c.s.userAgent())
90580	var body io.Reader = nil
90581	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instance)
90582	if err != nil {
90583		return nil, err
90584	}
90585	reqHeaders.Set("Content-Type", "application/json")
90586	c.urlParams_.Set("alt", alt)
90587	c.urlParams_.Set("prettyPrint", "false")
90588	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances")
90589	urls += "?" + c.urlParams_.Encode()
90590	req, err := http.NewRequest("POST", urls, body)
90591	if err != nil {
90592		return nil, err
90593	}
90594	req.Header = reqHeaders
90595	googleapi.Expand(req.URL, map[string]string{
90596		"project": c.project,
90597		"zone":    c.zone,
90598	})
90599	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90600}
90601
90602// Do executes the "compute.instances.insert" call.
90603// Exactly one of *Operation or error will be non-nil. Any non-2xx
90604// status code is an error. Response headers are in either
90605// *Operation.ServerResponse.Header or (if a response was returned at
90606// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90607// to check whether the returned error was because
90608// http.StatusNotModified was returned.
90609func (c *InstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90610	gensupport.SetOptions(c.urlParams_, opts...)
90611	res, err := c.doRequest("json")
90612	if res != nil && res.StatusCode == http.StatusNotModified {
90613		if res.Body != nil {
90614			res.Body.Close()
90615		}
90616		return nil, &googleapi.Error{
90617			Code:   res.StatusCode,
90618			Header: res.Header,
90619		}
90620	}
90621	if err != nil {
90622		return nil, err
90623	}
90624	defer googleapi.CloseBody(res)
90625	if err := googleapi.CheckResponse(res); err != nil {
90626		return nil, err
90627	}
90628	ret := &Operation{
90629		ServerResponse: googleapi.ServerResponse{
90630			Header:         res.Header,
90631			HTTPStatusCode: res.StatusCode,
90632		},
90633	}
90634	target := &ret
90635	if err := gensupport.DecodeResponse(target, res); err != nil {
90636		return nil, err
90637	}
90638	return ret, nil
90639	// {
90640	//   "description": "Creates an instance resource in the specified project using the data included in the request.",
90641	//   "flatPath": "projects/{project}/zones/{zone}/instances",
90642	//   "httpMethod": "POST",
90643	//   "id": "compute.instances.insert",
90644	//   "parameterOrder": [
90645	//     "project",
90646	//     "zone"
90647	//   ],
90648	//   "parameters": {
90649	//     "project": {
90650	//       "description": "Project ID for this request.",
90651	//       "location": "path",
90652	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90653	//       "required": true,
90654	//       "type": "string"
90655	//     },
90656	//     "requestId": {
90657	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
90658	//       "location": "query",
90659	//       "type": "string"
90660	//     },
90661	//     "sourceInstanceTemplate": {
90662	//       "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 ",
90663	//       "location": "query",
90664	//       "type": "string"
90665	//     },
90666	//     "zone": {
90667	//       "description": "The name of the zone for this request.",
90668	//       "location": "path",
90669	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90670	//       "required": true,
90671	//       "type": "string"
90672	//     }
90673	//   },
90674	//   "path": "projects/{project}/zones/{zone}/instances",
90675	//   "request": {
90676	//     "$ref": "Instance"
90677	//   },
90678	//   "response": {
90679	//     "$ref": "Operation"
90680	//   },
90681	//   "scopes": [
90682	//     "https://www.googleapis.com/auth/cloud-platform",
90683	//     "https://www.googleapis.com/auth/compute"
90684	//   ]
90685	// }
90686
90687}
90688
90689// method id "compute.instances.list":
90690
90691type InstancesListCall struct {
90692	s            *Service
90693	project      string
90694	zone         string
90695	urlParams_   gensupport.URLParams
90696	ifNoneMatch_ string
90697	ctx_         context.Context
90698	header_      http.Header
90699}
90700
90701// List: Retrieves the list of instances contained within the specified
90702// zone.
90703//
90704// - project: Project ID for this request.
90705// - zone: The name of the zone for this request.
90706func (r *InstancesService) List(project string, zone string) *InstancesListCall {
90707	c := &InstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90708	c.project = project
90709	c.zone = zone
90710	return c
90711}
90712
90713// Filter sets the optional parameter "filter": A filter expression that
90714// filters resources listed in the response. The expression must specify
90715// the field name, a comparison operator, and the value that you want to
90716// use for filtering. The value must be a string, a number, or a
90717// boolean. The comparison operator must be either `=`, `!=`, `>`, or
90718// `<`. For example, if you are filtering Compute Engine instances, you
90719// can exclude instances named `example-instance` by specifying `name !=
90720// example-instance`. You can also filter nested fields. For example,
90721// you could specify `scheduling.automaticRestart = false` to include
90722// instances only if they are not scheduled for automatic restarts. You
90723// can use filtering on nested fields to filter based on resource
90724// labels. To filter on multiple expressions, provide each separate
90725// expression within parentheses. For example: ```
90726// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
90727// ``` By default, each expression is an `AND` expression. However, you
90728// can include `AND` and `OR` expressions explicitly. For example: ```
90729// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
90730// AND (scheduling.automaticRestart = true) ```
90731func (c *InstancesListCall) Filter(filter string) *InstancesListCall {
90732	c.urlParams_.Set("filter", filter)
90733	return c
90734}
90735
90736// MaxResults sets the optional parameter "maxResults": The maximum
90737// number of results per page that should be returned. If the number of
90738// available results is larger than `maxResults`, Compute Engine returns
90739// a `nextPageToken` that can be used to get the next page of results in
90740// subsequent list requests. Acceptable values are `0` to `500`,
90741// inclusive. (Default: `500`)
90742func (c *InstancesListCall) MaxResults(maxResults int64) *InstancesListCall {
90743	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
90744	return c
90745}
90746
90747// OrderBy sets the optional parameter "orderBy": Sorts list results by
90748// a certain order. By default, results are returned in alphanumerical
90749// order based on the resource name. You can also sort results in
90750// descending order based on the creation timestamp using
90751// `orderBy="creationTimestamp desc". This sorts results based on the
90752// `creationTimestamp` field in reverse chronological order (newest
90753// result first). Use this to sort resources like operations so that the
90754// newest operation is returned first. Currently, only sorting by `name`
90755// or `creationTimestamp desc` is supported.
90756func (c *InstancesListCall) OrderBy(orderBy string) *InstancesListCall {
90757	c.urlParams_.Set("orderBy", orderBy)
90758	return c
90759}
90760
90761// PageToken sets the optional parameter "pageToken": Specifies a page
90762// token to use. Set `pageToken` to the `nextPageToken` returned by a
90763// previous list request to get the next page of results.
90764func (c *InstancesListCall) PageToken(pageToken string) *InstancesListCall {
90765	c.urlParams_.Set("pageToken", pageToken)
90766	return c
90767}
90768
90769// ReturnPartialSuccess sets the optional parameter
90770// "returnPartialSuccess": Opt-in for partial success behavior which
90771// provides partial results in case of failure. The default value is
90772// false.
90773func (c *InstancesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstancesListCall {
90774	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
90775	return c
90776}
90777
90778// Fields allows partial responses to be retrieved. See
90779// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90780// for more information.
90781func (c *InstancesListCall) Fields(s ...googleapi.Field) *InstancesListCall {
90782	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90783	return c
90784}
90785
90786// IfNoneMatch sets the optional parameter which makes the operation
90787// fail if the object's ETag matches the given value. This is useful for
90788// getting updates only after the object has changed since the last
90789// request. Use googleapi.IsNotModified to check whether the response
90790// error from Do is the result of In-None-Match.
90791func (c *InstancesListCall) IfNoneMatch(entityTag string) *InstancesListCall {
90792	c.ifNoneMatch_ = entityTag
90793	return c
90794}
90795
90796// Context sets the context to be used in this call's Do method. Any
90797// pending HTTP request will be aborted if the provided context is
90798// canceled.
90799func (c *InstancesListCall) Context(ctx context.Context) *InstancesListCall {
90800	c.ctx_ = ctx
90801	return c
90802}
90803
90804// Header returns an http.Header that can be modified by the caller to
90805// add HTTP headers to the request.
90806func (c *InstancesListCall) Header() http.Header {
90807	if c.header_ == nil {
90808		c.header_ = make(http.Header)
90809	}
90810	return c.header_
90811}
90812
90813func (c *InstancesListCall) doRequest(alt string) (*http.Response, error) {
90814	reqHeaders := make(http.Header)
90815	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
90816	for k, v := range c.header_ {
90817		reqHeaders[k] = v
90818	}
90819	reqHeaders.Set("User-Agent", c.s.userAgent())
90820	if c.ifNoneMatch_ != "" {
90821		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
90822	}
90823	var body io.Reader = nil
90824	c.urlParams_.Set("alt", alt)
90825	c.urlParams_.Set("prettyPrint", "false")
90826	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances")
90827	urls += "?" + c.urlParams_.Encode()
90828	req, err := http.NewRequest("GET", urls, body)
90829	if err != nil {
90830		return nil, err
90831	}
90832	req.Header = reqHeaders
90833	googleapi.Expand(req.URL, map[string]string{
90834		"project": c.project,
90835		"zone":    c.zone,
90836	})
90837	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90838}
90839
90840// Do executes the "compute.instances.list" call.
90841// Exactly one of *InstanceList or error will be non-nil. Any non-2xx
90842// status code is an error. Response headers are in either
90843// *InstanceList.ServerResponse.Header or (if a response was returned at
90844// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90845// to check whether the returned error was because
90846// http.StatusNotModified was returned.
90847func (c *InstancesListCall) Do(opts ...googleapi.CallOption) (*InstanceList, error) {
90848	gensupport.SetOptions(c.urlParams_, opts...)
90849	res, err := c.doRequest("json")
90850	if res != nil && res.StatusCode == http.StatusNotModified {
90851		if res.Body != nil {
90852			res.Body.Close()
90853		}
90854		return nil, &googleapi.Error{
90855			Code:   res.StatusCode,
90856			Header: res.Header,
90857		}
90858	}
90859	if err != nil {
90860		return nil, err
90861	}
90862	defer googleapi.CloseBody(res)
90863	if err := googleapi.CheckResponse(res); err != nil {
90864		return nil, err
90865	}
90866	ret := &InstanceList{
90867		ServerResponse: googleapi.ServerResponse{
90868			Header:         res.Header,
90869			HTTPStatusCode: res.StatusCode,
90870		},
90871	}
90872	target := &ret
90873	if err := gensupport.DecodeResponse(target, res); err != nil {
90874		return nil, err
90875	}
90876	return ret, nil
90877	// {
90878	//   "description": "Retrieves the list of instances contained within the specified zone.",
90879	//   "flatPath": "projects/{project}/zones/{zone}/instances",
90880	//   "httpMethod": "GET",
90881	//   "id": "compute.instances.list",
90882	//   "parameterOrder": [
90883	//     "project",
90884	//     "zone"
90885	//   ],
90886	//   "parameters": {
90887	//     "filter": {
90888	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
90889	//       "location": "query",
90890	//       "type": "string"
90891	//     },
90892	//     "maxResults": {
90893	//       "default": "500",
90894	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
90895	//       "format": "uint32",
90896	//       "location": "query",
90897	//       "minimum": "0",
90898	//       "type": "integer"
90899	//     },
90900	//     "orderBy": {
90901	//       "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.",
90902	//       "location": "query",
90903	//       "type": "string"
90904	//     },
90905	//     "pageToken": {
90906	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
90907	//       "location": "query",
90908	//       "type": "string"
90909	//     },
90910	//     "project": {
90911	//       "description": "Project ID for this request.",
90912	//       "location": "path",
90913	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90914	//       "required": true,
90915	//       "type": "string"
90916	//     },
90917	//     "returnPartialSuccess": {
90918	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
90919	//       "location": "query",
90920	//       "type": "boolean"
90921	//     },
90922	//     "zone": {
90923	//       "description": "The name of the zone for this request.",
90924	//       "location": "path",
90925	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90926	//       "required": true,
90927	//       "type": "string"
90928	//     }
90929	//   },
90930	//   "path": "projects/{project}/zones/{zone}/instances",
90931	//   "response": {
90932	//     "$ref": "InstanceList"
90933	//   },
90934	//   "scopes": [
90935	//     "https://www.googleapis.com/auth/cloud-platform",
90936	//     "https://www.googleapis.com/auth/compute",
90937	//     "https://www.googleapis.com/auth/compute.readonly"
90938	//   ]
90939	// }
90940
90941}
90942
90943// Pages invokes f for each page of results.
90944// A non-nil error returned from f will halt the iteration.
90945// The provided context supersedes any context provided to the Context method.
90946func (c *InstancesListCall) Pages(ctx context.Context, f func(*InstanceList) error) error {
90947	c.ctx_ = ctx
90948	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
90949	for {
90950		x, err := c.Do()
90951		if err != nil {
90952			return err
90953		}
90954		if err := f(x); err != nil {
90955			return err
90956		}
90957		if x.NextPageToken == "" {
90958			return nil
90959		}
90960		c.PageToken(x.NextPageToken)
90961	}
90962}
90963
90964// method id "compute.instances.listReferrers":
90965
90966type InstancesListReferrersCall struct {
90967	s            *Service
90968	project      string
90969	zone         string
90970	instance     string
90971	urlParams_   gensupport.URLParams
90972	ifNoneMatch_ string
90973	ctx_         context.Context
90974	header_      http.Header
90975}
90976
90977// ListReferrers: Retrieves a list of resources that refer to the VM
90978// instance specified in the request. For example, if the VM instance is
90979// part of a managed or unmanaged instance group, the referrers list
90980// includes the instance group. For more information, read Viewing
90981// referrers to VM instances.
90982//
90983// - instance: Name of the target instance scoping this request, or '-'
90984//   if the request should span over all instances in the container.
90985// - project: Project ID for this request.
90986// - zone: The name of the zone for this request.
90987func (r *InstancesService) ListReferrers(project string, zone string, instance string) *InstancesListReferrersCall {
90988	c := &InstancesListReferrersCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90989	c.project = project
90990	c.zone = zone
90991	c.instance = instance
90992	return c
90993}
90994
90995// Filter sets the optional parameter "filter": A filter expression that
90996// filters resources listed in the response. The expression must specify
90997// the field name, a comparison operator, and the value that you want to
90998// use for filtering. The value must be a string, a number, or a
90999// boolean. The comparison operator must be either `=`, `!=`, `>`, or
91000// `<`. For example, if you are filtering Compute Engine instances, you
91001// can exclude instances named `example-instance` by specifying `name !=
91002// example-instance`. You can also filter nested fields. For example,
91003// you could specify `scheduling.automaticRestart = false` to include
91004// instances only if they are not scheduled for automatic restarts. You
91005// can use filtering on nested fields to filter based on resource
91006// labels. To filter on multiple expressions, provide each separate
91007// expression within parentheses. For example: ```
91008// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
91009// ``` By default, each expression is an `AND` expression. However, you
91010// can include `AND` and `OR` expressions explicitly. For example: ```
91011// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
91012// AND (scheduling.automaticRestart = true) ```
91013func (c *InstancesListReferrersCall) Filter(filter string) *InstancesListReferrersCall {
91014	c.urlParams_.Set("filter", filter)
91015	return c
91016}
91017
91018// MaxResults sets the optional parameter "maxResults": The maximum
91019// number of results per page that should be returned. If the number of
91020// available results is larger than `maxResults`, Compute Engine returns
91021// a `nextPageToken` that can be used to get the next page of results in
91022// subsequent list requests. Acceptable values are `0` to `500`,
91023// inclusive. (Default: `500`)
91024func (c *InstancesListReferrersCall) MaxResults(maxResults int64) *InstancesListReferrersCall {
91025	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
91026	return c
91027}
91028
91029// OrderBy sets the optional parameter "orderBy": Sorts list results by
91030// a certain order. By default, results are returned in alphanumerical
91031// order based on the resource name. You can also sort results in
91032// descending order based on the creation timestamp using
91033// `orderBy="creationTimestamp desc". This sorts results based on the
91034// `creationTimestamp` field in reverse chronological order (newest
91035// result first). Use this to sort resources like operations so that the
91036// newest operation is returned first. Currently, only sorting by `name`
91037// or `creationTimestamp desc` is supported.
91038func (c *InstancesListReferrersCall) OrderBy(orderBy string) *InstancesListReferrersCall {
91039	c.urlParams_.Set("orderBy", orderBy)
91040	return c
91041}
91042
91043// PageToken sets the optional parameter "pageToken": Specifies a page
91044// token to use. Set `pageToken` to the `nextPageToken` returned by a
91045// previous list request to get the next page of results.
91046func (c *InstancesListReferrersCall) PageToken(pageToken string) *InstancesListReferrersCall {
91047	c.urlParams_.Set("pageToken", pageToken)
91048	return c
91049}
91050
91051// ReturnPartialSuccess sets the optional parameter
91052// "returnPartialSuccess": Opt-in for partial success behavior which
91053// provides partial results in case of failure. The default value is
91054// false.
91055func (c *InstancesListReferrersCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstancesListReferrersCall {
91056	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
91057	return c
91058}
91059
91060// Fields allows partial responses to be retrieved. See
91061// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91062// for more information.
91063func (c *InstancesListReferrersCall) Fields(s ...googleapi.Field) *InstancesListReferrersCall {
91064	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91065	return c
91066}
91067
91068// IfNoneMatch sets the optional parameter which makes the operation
91069// fail if the object's ETag matches the given value. This is useful for
91070// getting updates only after the object has changed since the last
91071// request. Use googleapi.IsNotModified to check whether the response
91072// error from Do is the result of In-None-Match.
91073func (c *InstancesListReferrersCall) IfNoneMatch(entityTag string) *InstancesListReferrersCall {
91074	c.ifNoneMatch_ = entityTag
91075	return c
91076}
91077
91078// Context sets the context to be used in this call's Do method. Any
91079// pending HTTP request will be aborted if the provided context is
91080// canceled.
91081func (c *InstancesListReferrersCall) Context(ctx context.Context) *InstancesListReferrersCall {
91082	c.ctx_ = ctx
91083	return c
91084}
91085
91086// Header returns an http.Header that can be modified by the caller to
91087// add HTTP headers to the request.
91088func (c *InstancesListReferrersCall) Header() http.Header {
91089	if c.header_ == nil {
91090		c.header_ = make(http.Header)
91091	}
91092	return c.header_
91093}
91094
91095func (c *InstancesListReferrersCall) doRequest(alt string) (*http.Response, error) {
91096	reqHeaders := make(http.Header)
91097	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
91098	for k, v := range c.header_ {
91099		reqHeaders[k] = v
91100	}
91101	reqHeaders.Set("User-Agent", c.s.userAgent())
91102	if c.ifNoneMatch_ != "" {
91103		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
91104	}
91105	var body io.Reader = nil
91106	c.urlParams_.Set("alt", alt)
91107	c.urlParams_.Set("prettyPrint", "false")
91108	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/referrers")
91109	urls += "?" + c.urlParams_.Encode()
91110	req, err := http.NewRequest("GET", urls, body)
91111	if err != nil {
91112		return nil, err
91113	}
91114	req.Header = reqHeaders
91115	googleapi.Expand(req.URL, map[string]string{
91116		"project":  c.project,
91117		"zone":     c.zone,
91118		"instance": c.instance,
91119	})
91120	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91121}
91122
91123// Do executes the "compute.instances.listReferrers" call.
91124// Exactly one of *InstanceListReferrers or error will be non-nil. Any
91125// non-2xx status code is an error. Response headers are in either
91126// *InstanceListReferrers.ServerResponse.Header or (if a response was
91127// returned at all) in error.(*googleapi.Error).Header. Use
91128// googleapi.IsNotModified to check whether the returned error was
91129// because http.StatusNotModified was returned.
91130func (c *InstancesListReferrersCall) Do(opts ...googleapi.CallOption) (*InstanceListReferrers, error) {
91131	gensupport.SetOptions(c.urlParams_, opts...)
91132	res, err := c.doRequest("json")
91133	if res != nil && res.StatusCode == http.StatusNotModified {
91134		if res.Body != nil {
91135			res.Body.Close()
91136		}
91137		return nil, &googleapi.Error{
91138			Code:   res.StatusCode,
91139			Header: res.Header,
91140		}
91141	}
91142	if err != nil {
91143		return nil, err
91144	}
91145	defer googleapi.CloseBody(res)
91146	if err := googleapi.CheckResponse(res); err != nil {
91147		return nil, err
91148	}
91149	ret := &InstanceListReferrers{
91150		ServerResponse: googleapi.ServerResponse{
91151			Header:         res.Header,
91152			HTTPStatusCode: res.StatusCode,
91153		},
91154	}
91155	target := &ret
91156	if err := gensupport.DecodeResponse(target, res); err != nil {
91157		return nil, err
91158	}
91159	return ret, nil
91160	// {
91161	//   "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.",
91162	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/referrers",
91163	//   "httpMethod": "GET",
91164	//   "id": "compute.instances.listReferrers",
91165	//   "parameterOrder": [
91166	//     "project",
91167	//     "zone",
91168	//     "instance"
91169	//   ],
91170	//   "parameters": {
91171	//     "filter": {
91172	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
91173	//       "location": "query",
91174	//       "type": "string"
91175	//     },
91176	//     "instance": {
91177	//       "description": "Name of the target instance scoping this request, or '-' if the request should span over all instances in the container.",
91178	//       "location": "path",
91179	//       "pattern": "-|[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91180	//       "required": true,
91181	//       "type": "string"
91182	//     },
91183	//     "maxResults": {
91184	//       "default": "500",
91185	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
91186	//       "format": "uint32",
91187	//       "location": "query",
91188	//       "minimum": "0",
91189	//       "type": "integer"
91190	//     },
91191	//     "orderBy": {
91192	//       "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.",
91193	//       "location": "query",
91194	//       "type": "string"
91195	//     },
91196	//     "pageToken": {
91197	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
91198	//       "location": "query",
91199	//       "type": "string"
91200	//     },
91201	//     "project": {
91202	//       "description": "Project ID for this request.",
91203	//       "location": "path",
91204	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91205	//       "required": true,
91206	//       "type": "string"
91207	//     },
91208	//     "returnPartialSuccess": {
91209	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
91210	//       "location": "query",
91211	//       "type": "boolean"
91212	//     },
91213	//     "zone": {
91214	//       "description": "The name of the zone for this request.",
91215	//       "location": "path",
91216	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91217	//       "required": true,
91218	//       "type": "string"
91219	//     }
91220	//   },
91221	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/referrers",
91222	//   "response": {
91223	//     "$ref": "InstanceListReferrers"
91224	//   },
91225	//   "scopes": [
91226	//     "https://www.googleapis.com/auth/cloud-platform",
91227	//     "https://www.googleapis.com/auth/compute",
91228	//     "https://www.googleapis.com/auth/compute.readonly"
91229	//   ]
91230	// }
91231
91232}
91233
91234// Pages invokes f for each page of results.
91235// A non-nil error returned from f will halt the iteration.
91236// The provided context supersedes any context provided to the Context method.
91237func (c *InstancesListReferrersCall) Pages(ctx context.Context, f func(*InstanceListReferrers) error) error {
91238	c.ctx_ = ctx
91239	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
91240	for {
91241		x, err := c.Do()
91242		if err != nil {
91243			return err
91244		}
91245		if err := f(x); err != nil {
91246			return err
91247		}
91248		if x.NextPageToken == "" {
91249			return nil
91250		}
91251		c.PageToken(x.NextPageToken)
91252	}
91253}
91254
91255// method id "compute.instances.removeResourcePolicies":
91256
91257type InstancesRemoveResourcePoliciesCall struct {
91258	s                                      *Service
91259	project                                string
91260	zone                                   string
91261	instance                               string
91262	instancesremoveresourcepoliciesrequest *InstancesRemoveResourcePoliciesRequest
91263	urlParams_                             gensupport.URLParams
91264	ctx_                                   context.Context
91265	header_                                http.Header
91266}
91267
91268// RemoveResourcePolicies: Removes resource policies from an instance.
91269//
91270// - instance: The instance name for this request.
91271// - project: Project ID for this request.
91272// - zone: The name of the zone for this request.
91273func (r *InstancesService) RemoveResourcePolicies(project string, zone string, instance string, instancesremoveresourcepoliciesrequest *InstancesRemoveResourcePoliciesRequest) *InstancesRemoveResourcePoliciesCall {
91274	c := &InstancesRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91275	c.project = project
91276	c.zone = zone
91277	c.instance = instance
91278	c.instancesremoveresourcepoliciesrequest = instancesremoveresourcepoliciesrequest
91279	return c
91280}
91281
91282// RequestId sets the optional parameter "requestId": An optional
91283// request ID to identify requests. Specify a unique request ID so that
91284// if you must retry your request, the server will know to ignore the
91285// request if it has already been completed. For example, consider a
91286// situation where you make an initial request and the request times
91287// out. If you make the request again with the same request ID, the
91288// server can check if original operation with the same request ID was
91289// received, and if so, will ignore the second request. This prevents
91290// clients from accidentally creating duplicate commitments. The request
91291// ID must be a valid UUID with the exception that zero UUID is not
91292// supported ( 00000000-0000-0000-0000-000000000000).
91293func (c *InstancesRemoveResourcePoliciesCall) RequestId(requestId string) *InstancesRemoveResourcePoliciesCall {
91294	c.urlParams_.Set("requestId", requestId)
91295	return c
91296}
91297
91298// Fields allows partial responses to be retrieved. See
91299// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91300// for more information.
91301func (c *InstancesRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *InstancesRemoveResourcePoliciesCall {
91302	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91303	return c
91304}
91305
91306// Context sets the context to be used in this call's Do method. Any
91307// pending HTTP request will be aborted if the provided context is
91308// canceled.
91309func (c *InstancesRemoveResourcePoliciesCall) Context(ctx context.Context) *InstancesRemoveResourcePoliciesCall {
91310	c.ctx_ = ctx
91311	return c
91312}
91313
91314// Header returns an http.Header that can be modified by the caller to
91315// add HTTP headers to the request.
91316func (c *InstancesRemoveResourcePoliciesCall) Header() http.Header {
91317	if c.header_ == nil {
91318		c.header_ = make(http.Header)
91319	}
91320	return c.header_
91321}
91322
91323func (c *InstancesRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
91324	reqHeaders := make(http.Header)
91325	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
91326	for k, v := range c.header_ {
91327		reqHeaders[k] = v
91328	}
91329	reqHeaders.Set("User-Agent", c.s.userAgent())
91330	var body io.Reader = nil
91331	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesremoveresourcepoliciesrequest)
91332	if err != nil {
91333		return nil, err
91334	}
91335	reqHeaders.Set("Content-Type", "application/json")
91336	c.urlParams_.Set("alt", alt)
91337	c.urlParams_.Set("prettyPrint", "false")
91338	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies")
91339	urls += "?" + c.urlParams_.Encode()
91340	req, err := http.NewRequest("POST", urls, body)
91341	if err != nil {
91342		return nil, err
91343	}
91344	req.Header = reqHeaders
91345	googleapi.Expand(req.URL, map[string]string{
91346		"project":  c.project,
91347		"zone":     c.zone,
91348		"instance": c.instance,
91349	})
91350	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91351}
91352
91353// Do executes the "compute.instances.removeResourcePolicies" call.
91354// Exactly one of *Operation or error will be non-nil. Any non-2xx
91355// status code is an error. Response headers are in either
91356// *Operation.ServerResponse.Header or (if a response was returned at
91357// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91358// to check whether the returned error was because
91359// http.StatusNotModified was returned.
91360func (c *InstancesRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91361	gensupport.SetOptions(c.urlParams_, opts...)
91362	res, err := c.doRequest("json")
91363	if res != nil && res.StatusCode == http.StatusNotModified {
91364		if res.Body != nil {
91365			res.Body.Close()
91366		}
91367		return nil, &googleapi.Error{
91368			Code:   res.StatusCode,
91369			Header: res.Header,
91370		}
91371	}
91372	if err != nil {
91373		return nil, err
91374	}
91375	defer googleapi.CloseBody(res)
91376	if err := googleapi.CheckResponse(res); err != nil {
91377		return nil, err
91378	}
91379	ret := &Operation{
91380		ServerResponse: googleapi.ServerResponse{
91381			Header:         res.Header,
91382			HTTPStatusCode: res.StatusCode,
91383		},
91384	}
91385	target := &ret
91386	if err := gensupport.DecodeResponse(target, res); err != nil {
91387		return nil, err
91388	}
91389	return ret, nil
91390	// {
91391	//   "description": "Removes resource policies from an instance.",
91392	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies",
91393	//   "httpMethod": "POST",
91394	//   "id": "compute.instances.removeResourcePolicies",
91395	//   "parameterOrder": [
91396	//     "project",
91397	//     "zone",
91398	//     "instance"
91399	//   ],
91400	//   "parameters": {
91401	//     "instance": {
91402	//       "description": "The instance name for this request.",
91403	//       "location": "path",
91404	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91405	//       "required": true,
91406	//       "type": "string"
91407	//     },
91408	//     "project": {
91409	//       "description": "Project ID for this request.",
91410	//       "location": "path",
91411	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91412	//       "required": true,
91413	//       "type": "string"
91414	//     },
91415	//     "requestId": {
91416	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
91417	//       "location": "query",
91418	//       "type": "string"
91419	//     },
91420	//     "zone": {
91421	//       "description": "The name of the zone for this request.",
91422	//       "location": "path",
91423	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91424	//       "required": true,
91425	//       "type": "string"
91426	//     }
91427	//   },
91428	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies",
91429	//   "request": {
91430	//     "$ref": "InstancesRemoveResourcePoliciesRequest"
91431	//   },
91432	//   "response": {
91433	//     "$ref": "Operation"
91434	//   },
91435	//   "scopes": [
91436	//     "https://www.googleapis.com/auth/cloud-platform",
91437	//     "https://www.googleapis.com/auth/compute"
91438	//   ]
91439	// }
91440
91441}
91442
91443// method id "compute.instances.reset":
91444
91445type InstancesResetCall struct {
91446	s          *Service
91447	project    string
91448	zone       string
91449	instance   string
91450	urlParams_ gensupport.URLParams
91451	ctx_       context.Context
91452	header_    http.Header
91453}
91454
91455// Reset: Performs a reset on the instance. This is a hard reset the VM
91456// does not do a graceful shutdown. For more information, see Resetting
91457// an instance.
91458//
91459// - instance: Name of the instance scoping this request.
91460// - project: Project ID for this request.
91461// - zone: The name of the zone for this request.
91462func (r *InstancesService) Reset(project string, zone string, instance string) *InstancesResetCall {
91463	c := &InstancesResetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91464	c.project = project
91465	c.zone = zone
91466	c.instance = instance
91467	return c
91468}
91469
91470// RequestId sets the optional parameter "requestId": An optional
91471// request ID to identify requests. Specify a unique request ID so that
91472// if you must retry your request, the server will know to ignore the
91473// request if it has already been completed. For example, consider a
91474// situation where you make an initial request and the request times
91475// out. If you make the request again with the same request ID, the
91476// server can check if original operation with the same request ID was
91477// received, and if so, will ignore the second request. This prevents
91478// clients from accidentally creating duplicate commitments. The request
91479// ID must be a valid UUID with the exception that zero UUID is not
91480// supported ( 00000000-0000-0000-0000-000000000000).
91481func (c *InstancesResetCall) RequestId(requestId string) *InstancesResetCall {
91482	c.urlParams_.Set("requestId", requestId)
91483	return c
91484}
91485
91486// Fields allows partial responses to be retrieved. See
91487// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91488// for more information.
91489func (c *InstancesResetCall) Fields(s ...googleapi.Field) *InstancesResetCall {
91490	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91491	return c
91492}
91493
91494// Context sets the context to be used in this call's Do method. Any
91495// pending HTTP request will be aborted if the provided context is
91496// canceled.
91497func (c *InstancesResetCall) Context(ctx context.Context) *InstancesResetCall {
91498	c.ctx_ = ctx
91499	return c
91500}
91501
91502// Header returns an http.Header that can be modified by the caller to
91503// add HTTP headers to the request.
91504func (c *InstancesResetCall) Header() http.Header {
91505	if c.header_ == nil {
91506		c.header_ = make(http.Header)
91507	}
91508	return c.header_
91509}
91510
91511func (c *InstancesResetCall) doRequest(alt string) (*http.Response, error) {
91512	reqHeaders := make(http.Header)
91513	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
91514	for k, v := range c.header_ {
91515		reqHeaders[k] = v
91516	}
91517	reqHeaders.Set("User-Agent", c.s.userAgent())
91518	var body io.Reader = nil
91519	c.urlParams_.Set("alt", alt)
91520	c.urlParams_.Set("prettyPrint", "false")
91521	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/reset")
91522	urls += "?" + c.urlParams_.Encode()
91523	req, err := http.NewRequest("POST", urls, body)
91524	if err != nil {
91525		return nil, err
91526	}
91527	req.Header = reqHeaders
91528	googleapi.Expand(req.URL, map[string]string{
91529		"project":  c.project,
91530		"zone":     c.zone,
91531		"instance": c.instance,
91532	})
91533	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91534}
91535
91536// Do executes the "compute.instances.reset" call.
91537// Exactly one of *Operation or error will be non-nil. Any non-2xx
91538// status code is an error. Response headers are in either
91539// *Operation.ServerResponse.Header or (if a response was returned at
91540// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91541// to check whether the returned error was because
91542// http.StatusNotModified was returned.
91543func (c *InstancesResetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91544	gensupport.SetOptions(c.urlParams_, opts...)
91545	res, err := c.doRequest("json")
91546	if res != nil && res.StatusCode == http.StatusNotModified {
91547		if res.Body != nil {
91548			res.Body.Close()
91549		}
91550		return nil, &googleapi.Error{
91551			Code:   res.StatusCode,
91552			Header: res.Header,
91553		}
91554	}
91555	if err != nil {
91556		return nil, err
91557	}
91558	defer googleapi.CloseBody(res)
91559	if err := googleapi.CheckResponse(res); err != nil {
91560		return nil, err
91561	}
91562	ret := &Operation{
91563		ServerResponse: googleapi.ServerResponse{
91564			Header:         res.Header,
91565			HTTPStatusCode: res.StatusCode,
91566		},
91567	}
91568	target := &ret
91569	if err := gensupport.DecodeResponse(target, res); err != nil {
91570		return nil, err
91571	}
91572	return ret, nil
91573	// {
91574	//   "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.",
91575	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/reset",
91576	//   "httpMethod": "POST",
91577	//   "id": "compute.instances.reset",
91578	//   "parameterOrder": [
91579	//     "project",
91580	//     "zone",
91581	//     "instance"
91582	//   ],
91583	//   "parameters": {
91584	//     "instance": {
91585	//       "description": "Name of the instance scoping this request.",
91586	//       "location": "path",
91587	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91588	//       "required": true,
91589	//       "type": "string"
91590	//     },
91591	//     "project": {
91592	//       "description": "Project ID for this request.",
91593	//       "location": "path",
91594	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91595	//       "required": true,
91596	//       "type": "string"
91597	//     },
91598	//     "requestId": {
91599	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
91600	//       "location": "query",
91601	//       "type": "string"
91602	//     },
91603	//     "zone": {
91604	//       "description": "The name of the zone for this request.",
91605	//       "location": "path",
91606	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91607	//       "required": true,
91608	//       "type": "string"
91609	//     }
91610	//   },
91611	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/reset",
91612	//   "response": {
91613	//     "$ref": "Operation"
91614	//   },
91615	//   "scopes": [
91616	//     "https://www.googleapis.com/auth/cloud-platform",
91617	//     "https://www.googleapis.com/auth/compute"
91618	//   ]
91619	// }
91620
91621}
91622
91623// method id "compute.instances.sendDiagnosticInterrupt":
91624
91625type InstancesSendDiagnosticInterruptCall struct {
91626	s          *Service
91627	project    string
91628	zone       string
91629	instance   string
91630	urlParams_ gensupport.URLParams
91631	ctx_       context.Context
91632	header_    http.Header
91633}
91634
91635// SendDiagnosticInterrupt: Sends diagnostic interrupt to the instance.
91636//
91637// - instance: Name of the instance scoping this request.
91638// - project: Project ID for this request.
91639// - zone: The name of the zone for this request.
91640func (r *InstancesService) SendDiagnosticInterrupt(project string, zone string, instance string) *InstancesSendDiagnosticInterruptCall {
91641	c := &InstancesSendDiagnosticInterruptCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91642	c.project = project
91643	c.zone = zone
91644	c.instance = instance
91645	return c
91646}
91647
91648// Fields allows partial responses to be retrieved. See
91649// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91650// for more information.
91651func (c *InstancesSendDiagnosticInterruptCall) Fields(s ...googleapi.Field) *InstancesSendDiagnosticInterruptCall {
91652	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91653	return c
91654}
91655
91656// Context sets the context to be used in this call's Do method. Any
91657// pending HTTP request will be aborted if the provided context is
91658// canceled.
91659func (c *InstancesSendDiagnosticInterruptCall) Context(ctx context.Context) *InstancesSendDiagnosticInterruptCall {
91660	c.ctx_ = ctx
91661	return c
91662}
91663
91664// Header returns an http.Header that can be modified by the caller to
91665// add HTTP headers to the request.
91666func (c *InstancesSendDiagnosticInterruptCall) Header() http.Header {
91667	if c.header_ == nil {
91668		c.header_ = make(http.Header)
91669	}
91670	return c.header_
91671}
91672
91673func (c *InstancesSendDiagnosticInterruptCall) doRequest(alt string) (*http.Response, error) {
91674	reqHeaders := make(http.Header)
91675	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
91676	for k, v := range c.header_ {
91677		reqHeaders[k] = v
91678	}
91679	reqHeaders.Set("User-Agent", c.s.userAgent())
91680	var body io.Reader = nil
91681	c.urlParams_.Set("alt", alt)
91682	c.urlParams_.Set("prettyPrint", "false")
91683	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt")
91684	urls += "?" + c.urlParams_.Encode()
91685	req, err := http.NewRequest("POST", urls, body)
91686	if err != nil {
91687		return nil, err
91688	}
91689	req.Header = reqHeaders
91690	googleapi.Expand(req.URL, map[string]string{
91691		"project":  c.project,
91692		"zone":     c.zone,
91693		"instance": c.instance,
91694	})
91695	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91696}
91697
91698// Do executes the "compute.instances.sendDiagnosticInterrupt" call.
91699func (c *InstancesSendDiagnosticInterruptCall) Do(opts ...googleapi.CallOption) error {
91700	gensupport.SetOptions(c.urlParams_, opts...)
91701	res, err := c.doRequest("json")
91702	if err != nil {
91703		return err
91704	}
91705	defer googleapi.CloseBody(res)
91706	if err := googleapi.CheckResponse(res); err != nil {
91707		return err
91708	}
91709	return nil
91710	// {
91711	//   "description": "Sends diagnostic interrupt to the instance.",
91712	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt",
91713	//   "httpMethod": "POST",
91714	//   "id": "compute.instances.sendDiagnosticInterrupt",
91715	//   "parameterOrder": [
91716	//     "project",
91717	//     "zone",
91718	//     "instance"
91719	//   ],
91720	//   "parameters": {
91721	//     "instance": {
91722	//       "description": "Name of the instance scoping this request.",
91723	//       "location": "path",
91724	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91725	//       "required": true,
91726	//       "type": "string"
91727	//     },
91728	//     "project": {
91729	//       "description": "Project ID for this request.",
91730	//       "location": "path",
91731	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91732	//       "required": true,
91733	//       "type": "string"
91734	//     },
91735	//     "zone": {
91736	//       "description": "The name of the zone for this request.",
91737	//       "location": "path",
91738	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91739	//       "required": true,
91740	//       "type": "string"
91741	//     }
91742	//   },
91743	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt",
91744	//   "scopes": [
91745	//     "https://www.googleapis.com/auth/cloud-platform",
91746	//     "https://www.googleapis.com/auth/compute"
91747	//   ]
91748	// }
91749
91750}
91751
91752// method id "compute.instances.setDeletionProtection":
91753
91754type InstancesSetDeletionProtectionCall struct {
91755	s          *Service
91756	project    string
91757	zone       string
91758	resource   string
91759	urlParams_ gensupport.URLParams
91760	ctx_       context.Context
91761	header_    http.Header
91762}
91763
91764// SetDeletionProtection: Sets deletion protection on the instance.
91765//
91766// - project: Project ID for this request.
91767// - resource: Name or id of the resource for this request.
91768// - zone: The name of the zone for this request.
91769func (r *InstancesService) SetDeletionProtection(project string, zone string, resource string) *InstancesSetDeletionProtectionCall {
91770	c := &InstancesSetDeletionProtectionCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91771	c.project = project
91772	c.zone = zone
91773	c.resource = resource
91774	return c
91775}
91776
91777// DeletionProtection sets the optional parameter "deletionProtection":
91778// Whether the resource should be protected against deletion.
91779func (c *InstancesSetDeletionProtectionCall) DeletionProtection(deletionProtection bool) *InstancesSetDeletionProtectionCall {
91780	c.urlParams_.Set("deletionProtection", fmt.Sprint(deletionProtection))
91781	return c
91782}
91783
91784// RequestId sets the optional parameter "requestId": An optional
91785// request ID to identify requests. Specify a unique request ID so that
91786// if you must retry your request, the server will know to ignore the
91787// request if it has already been completed. For example, consider a
91788// situation where you make an initial request and the request times
91789// out. If you make the request again with the same request ID, the
91790// server can check if original operation with the same request ID was
91791// received, and if so, will ignore the second request. This prevents
91792// clients from accidentally creating duplicate commitments. The request
91793// ID must be a valid UUID with the exception that zero UUID is not
91794// supported ( 00000000-0000-0000-0000-000000000000).
91795func (c *InstancesSetDeletionProtectionCall) RequestId(requestId string) *InstancesSetDeletionProtectionCall {
91796	c.urlParams_.Set("requestId", requestId)
91797	return c
91798}
91799
91800// Fields allows partial responses to be retrieved. See
91801// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91802// for more information.
91803func (c *InstancesSetDeletionProtectionCall) Fields(s ...googleapi.Field) *InstancesSetDeletionProtectionCall {
91804	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91805	return c
91806}
91807
91808// Context sets the context to be used in this call's Do method. Any
91809// pending HTTP request will be aborted if the provided context is
91810// canceled.
91811func (c *InstancesSetDeletionProtectionCall) Context(ctx context.Context) *InstancesSetDeletionProtectionCall {
91812	c.ctx_ = ctx
91813	return c
91814}
91815
91816// Header returns an http.Header that can be modified by the caller to
91817// add HTTP headers to the request.
91818func (c *InstancesSetDeletionProtectionCall) Header() http.Header {
91819	if c.header_ == nil {
91820		c.header_ = make(http.Header)
91821	}
91822	return c.header_
91823}
91824
91825func (c *InstancesSetDeletionProtectionCall) doRequest(alt string) (*http.Response, error) {
91826	reqHeaders := make(http.Header)
91827	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
91828	for k, v := range c.header_ {
91829		reqHeaders[k] = v
91830	}
91831	reqHeaders.Set("User-Agent", c.s.userAgent())
91832	var body io.Reader = nil
91833	c.urlParams_.Set("alt", alt)
91834	c.urlParams_.Set("prettyPrint", "false")
91835	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection")
91836	urls += "?" + c.urlParams_.Encode()
91837	req, err := http.NewRequest("POST", urls, body)
91838	if err != nil {
91839		return nil, err
91840	}
91841	req.Header = reqHeaders
91842	googleapi.Expand(req.URL, map[string]string{
91843		"project":  c.project,
91844		"zone":     c.zone,
91845		"resource": c.resource,
91846	})
91847	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91848}
91849
91850// Do executes the "compute.instances.setDeletionProtection" call.
91851// Exactly one of *Operation or error will be non-nil. Any non-2xx
91852// status code is an error. Response headers are in either
91853// *Operation.ServerResponse.Header or (if a response was returned at
91854// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91855// to check whether the returned error was because
91856// http.StatusNotModified was returned.
91857func (c *InstancesSetDeletionProtectionCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91858	gensupport.SetOptions(c.urlParams_, opts...)
91859	res, err := c.doRequest("json")
91860	if res != nil && res.StatusCode == http.StatusNotModified {
91861		if res.Body != nil {
91862			res.Body.Close()
91863		}
91864		return nil, &googleapi.Error{
91865			Code:   res.StatusCode,
91866			Header: res.Header,
91867		}
91868	}
91869	if err != nil {
91870		return nil, err
91871	}
91872	defer googleapi.CloseBody(res)
91873	if err := googleapi.CheckResponse(res); err != nil {
91874		return nil, err
91875	}
91876	ret := &Operation{
91877		ServerResponse: googleapi.ServerResponse{
91878			Header:         res.Header,
91879			HTTPStatusCode: res.StatusCode,
91880		},
91881	}
91882	target := &ret
91883	if err := gensupport.DecodeResponse(target, res); err != nil {
91884		return nil, err
91885	}
91886	return ret, nil
91887	// {
91888	//   "description": "Sets deletion protection on the instance.",
91889	//   "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection",
91890	//   "httpMethod": "POST",
91891	//   "id": "compute.instances.setDeletionProtection",
91892	//   "parameterOrder": [
91893	//     "project",
91894	//     "zone",
91895	//     "resource"
91896	//   ],
91897	//   "parameters": {
91898	//     "deletionProtection": {
91899	//       "default": "true",
91900	//       "description": "Whether the resource should be protected against deletion.",
91901	//       "location": "query",
91902	//       "type": "boolean"
91903	//     },
91904	//     "project": {
91905	//       "description": "Project ID for this request.",
91906	//       "location": "path",
91907	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91908	//       "required": true,
91909	//       "type": "string"
91910	//     },
91911	//     "requestId": {
91912	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
91913	//       "location": "query",
91914	//       "type": "string"
91915	//     },
91916	//     "resource": {
91917	//       "description": "Name or id of the resource for this request.",
91918	//       "location": "path",
91919	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91920	//       "required": true,
91921	//       "type": "string"
91922	//     },
91923	//     "zone": {
91924	//       "description": "The name of the zone for this request.",
91925	//       "location": "path",
91926	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91927	//       "required": true,
91928	//       "type": "string"
91929	//     }
91930	//   },
91931	//   "path": "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection",
91932	//   "response": {
91933	//     "$ref": "Operation"
91934	//   },
91935	//   "scopes": [
91936	//     "https://www.googleapis.com/auth/cloud-platform",
91937	//     "https://www.googleapis.com/auth/compute"
91938	//   ]
91939	// }
91940
91941}
91942
91943// method id "compute.instances.setDiskAutoDelete":
91944
91945type InstancesSetDiskAutoDeleteCall struct {
91946	s          *Service
91947	project    string
91948	zone       string
91949	instance   string
91950	urlParams_ gensupport.URLParams
91951	ctx_       context.Context
91952	header_    http.Header
91953}
91954
91955// SetDiskAutoDelete: Sets the auto-delete flag for a disk attached to
91956// an instance.
91957//
91958// - autoDelete: Whether to auto-delete the disk when the instance is
91959//   deleted.
91960// - deviceName: The device name of the disk to modify. Make a get()
91961//   request on the instance to view currently attached disks and device
91962//   names.
91963// - instance: The instance name for this request.
91964// - project: Project ID for this request.
91965// - zone: The name of the zone for this request.
91966func (r *InstancesService) SetDiskAutoDelete(project string, zone string, instance string, autoDelete bool, deviceName string) *InstancesSetDiskAutoDeleteCall {
91967	c := &InstancesSetDiskAutoDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91968	c.project = project
91969	c.zone = zone
91970	c.instance = instance
91971	c.urlParams_.Set("autoDelete", fmt.Sprint(autoDelete))
91972	c.urlParams_.Set("deviceName", deviceName)
91973	return c
91974}
91975
91976// RequestId sets the optional parameter "requestId": An optional
91977// request ID to identify requests. Specify a unique request ID so that
91978// if you must retry your request, the server will know to ignore the
91979// request if it has already been completed. For example, consider a
91980// situation where you make an initial request and the request times
91981// out. If you make the request again with the same request ID, the
91982// server can check if original operation with the same request ID was
91983// received, and if so, will ignore the second request. This prevents
91984// clients from accidentally creating duplicate commitments. The request
91985// ID must be a valid UUID with the exception that zero UUID is not
91986// supported ( 00000000-0000-0000-0000-000000000000).
91987func (c *InstancesSetDiskAutoDeleteCall) RequestId(requestId string) *InstancesSetDiskAutoDeleteCall {
91988	c.urlParams_.Set("requestId", requestId)
91989	return c
91990}
91991
91992// Fields allows partial responses to be retrieved. See
91993// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91994// for more information.
91995func (c *InstancesSetDiskAutoDeleteCall) Fields(s ...googleapi.Field) *InstancesSetDiskAutoDeleteCall {
91996	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91997	return c
91998}
91999
92000// Context sets the context to be used in this call's Do method. Any
92001// pending HTTP request will be aborted if the provided context is
92002// canceled.
92003func (c *InstancesSetDiskAutoDeleteCall) Context(ctx context.Context) *InstancesSetDiskAutoDeleteCall {
92004	c.ctx_ = ctx
92005	return c
92006}
92007
92008// Header returns an http.Header that can be modified by the caller to
92009// add HTTP headers to the request.
92010func (c *InstancesSetDiskAutoDeleteCall) Header() http.Header {
92011	if c.header_ == nil {
92012		c.header_ = make(http.Header)
92013	}
92014	return c.header_
92015}
92016
92017func (c *InstancesSetDiskAutoDeleteCall) doRequest(alt string) (*http.Response, error) {
92018	reqHeaders := make(http.Header)
92019	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
92020	for k, v := range c.header_ {
92021		reqHeaders[k] = v
92022	}
92023	reqHeaders.Set("User-Agent", c.s.userAgent())
92024	var body io.Reader = nil
92025	c.urlParams_.Set("alt", alt)
92026	c.urlParams_.Set("prettyPrint", "false")
92027	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete")
92028	urls += "?" + c.urlParams_.Encode()
92029	req, err := http.NewRequest("POST", urls, body)
92030	if err != nil {
92031		return nil, err
92032	}
92033	req.Header = reqHeaders
92034	googleapi.Expand(req.URL, map[string]string{
92035		"project":  c.project,
92036		"zone":     c.zone,
92037		"instance": c.instance,
92038	})
92039	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92040}
92041
92042// Do executes the "compute.instances.setDiskAutoDelete" call.
92043// Exactly one of *Operation or error will be non-nil. Any non-2xx
92044// status code is an error. Response headers are in either
92045// *Operation.ServerResponse.Header or (if a response was returned at
92046// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92047// to check whether the returned error was because
92048// http.StatusNotModified was returned.
92049func (c *InstancesSetDiskAutoDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92050	gensupport.SetOptions(c.urlParams_, opts...)
92051	res, err := c.doRequest("json")
92052	if res != nil && res.StatusCode == http.StatusNotModified {
92053		if res.Body != nil {
92054			res.Body.Close()
92055		}
92056		return nil, &googleapi.Error{
92057			Code:   res.StatusCode,
92058			Header: res.Header,
92059		}
92060	}
92061	if err != nil {
92062		return nil, err
92063	}
92064	defer googleapi.CloseBody(res)
92065	if err := googleapi.CheckResponse(res); err != nil {
92066		return nil, err
92067	}
92068	ret := &Operation{
92069		ServerResponse: googleapi.ServerResponse{
92070			Header:         res.Header,
92071			HTTPStatusCode: res.StatusCode,
92072		},
92073	}
92074	target := &ret
92075	if err := gensupport.DecodeResponse(target, res); err != nil {
92076		return nil, err
92077	}
92078	return ret, nil
92079	// {
92080	//   "description": "Sets the auto-delete flag for a disk attached to an instance.",
92081	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete",
92082	//   "httpMethod": "POST",
92083	//   "id": "compute.instances.setDiskAutoDelete",
92084	//   "parameterOrder": [
92085	//     "project",
92086	//     "zone",
92087	//     "instance",
92088	//     "autoDelete",
92089	//     "deviceName"
92090	//   ],
92091	//   "parameters": {
92092	//     "autoDelete": {
92093	//       "description": "Whether to auto-delete the disk when the instance is deleted.",
92094	//       "location": "query",
92095	//       "required": true,
92096	//       "type": "boolean"
92097	//     },
92098	//     "deviceName": {
92099	//       "description": "The device name of the disk to modify. Make a get() request on the instance to view currently attached disks and device names.",
92100	//       "location": "query",
92101	//       "pattern": "\\w[\\w.-]{0,254}",
92102	//       "required": true,
92103	//       "type": "string"
92104	//     },
92105	//     "instance": {
92106	//       "description": "The instance name for this request.",
92107	//       "location": "path",
92108	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92109	//       "required": true,
92110	//       "type": "string"
92111	//     },
92112	//     "project": {
92113	//       "description": "Project ID for this request.",
92114	//       "location": "path",
92115	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92116	//       "required": true,
92117	//       "type": "string"
92118	//     },
92119	//     "requestId": {
92120	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
92121	//       "location": "query",
92122	//       "type": "string"
92123	//     },
92124	//     "zone": {
92125	//       "description": "The name of the zone for this request.",
92126	//       "location": "path",
92127	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92128	//       "required": true,
92129	//       "type": "string"
92130	//     }
92131	//   },
92132	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete",
92133	//   "response": {
92134	//     "$ref": "Operation"
92135	//   },
92136	//   "scopes": [
92137	//     "https://www.googleapis.com/auth/cloud-platform",
92138	//     "https://www.googleapis.com/auth/compute"
92139	//   ]
92140	// }
92141
92142}
92143
92144// method id "compute.instances.setIamPolicy":
92145
92146type InstancesSetIamPolicyCall struct {
92147	s                    *Service
92148	project              string
92149	zone                 string
92150	resource             string
92151	zonesetpolicyrequest *ZoneSetPolicyRequest
92152	urlParams_           gensupport.URLParams
92153	ctx_                 context.Context
92154	header_              http.Header
92155}
92156
92157// SetIamPolicy: Sets the access control policy on the specified
92158// resource. Replaces any existing policy.
92159//
92160// - project: Project ID for this request.
92161// - resource: Name or id of the resource for this request.
92162// - zone: The name of the zone for this request.
92163func (r *InstancesService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *InstancesSetIamPolicyCall {
92164	c := &InstancesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92165	c.project = project
92166	c.zone = zone
92167	c.resource = resource
92168	c.zonesetpolicyrequest = zonesetpolicyrequest
92169	return c
92170}
92171
92172// Fields allows partial responses to be retrieved. See
92173// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92174// for more information.
92175func (c *InstancesSetIamPolicyCall) Fields(s ...googleapi.Field) *InstancesSetIamPolicyCall {
92176	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92177	return c
92178}
92179
92180// Context sets the context to be used in this call's Do method. Any
92181// pending HTTP request will be aborted if the provided context is
92182// canceled.
92183func (c *InstancesSetIamPolicyCall) Context(ctx context.Context) *InstancesSetIamPolicyCall {
92184	c.ctx_ = ctx
92185	return c
92186}
92187
92188// Header returns an http.Header that can be modified by the caller to
92189// add HTTP headers to the request.
92190func (c *InstancesSetIamPolicyCall) Header() http.Header {
92191	if c.header_ == nil {
92192		c.header_ = make(http.Header)
92193	}
92194	return c.header_
92195}
92196
92197func (c *InstancesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
92198	reqHeaders := make(http.Header)
92199	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
92200	for k, v := range c.header_ {
92201		reqHeaders[k] = v
92202	}
92203	reqHeaders.Set("User-Agent", c.s.userAgent())
92204	var body io.Reader = nil
92205	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
92206	if err != nil {
92207		return nil, err
92208	}
92209	reqHeaders.Set("Content-Type", "application/json")
92210	c.urlParams_.Set("alt", alt)
92211	c.urlParams_.Set("prettyPrint", "false")
92212	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy")
92213	urls += "?" + c.urlParams_.Encode()
92214	req, err := http.NewRequest("POST", urls, body)
92215	if err != nil {
92216		return nil, err
92217	}
92218	req.Header = reqHeaders
92219	googleapi.Expand(req.URL, map[string]string{
92220		"project":  c.project,
92221		"zone":     c.zone,
92222		"resource": c.resource,
92223	})
92224	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92225}
92226
92227// Do executes the "compute.instances.setIamPolicy" call.
92228// Exactly one of *Policy or error will be non-nil. Any non-2xx status
92229// code is an error. Response headers are in either
92230// *Policy.ServerResponse.Header or (if a response was returned at all)
92231// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
92232// check whether the returned error was because http.StatusNotModified
92233// was returned.
92234func (c *InstancesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
92235	gensupport.SetOptions(c.urlParams_, opts...)
92236	res, err := c.doRequest("json")
92237	if res != nil && res.StatusCode == http.StatusNotModified {
92238		if res.Body != nil {
92239			res.Body.Close()
92240		}
92241		return nil, &googleapi.Error{
92242			Code:   res.StatusCode,
92243			Header: res.Header,
92244		}
92245	}
92246	if err != nil {
92247		return nil, err
92248	}
92249	defer googleapi.CloseBody(res)
92250	if err := googleapi.CheckResponse(res); err != nil {
92251		return nil, err
92252	}
92253	ret := &Policy{
92254		ServerResponse: googleapi.ServerResponse{
92255			Header:         res.Header,
92256			HTTPStatusCode: res.StatusCode,
92257		},
92258	}
92259	target := &ret
92260	if err := gensupport.DecodeResponse(target, res); err != nil {
92261		return nil, err
92262	}
92263	return ret, nil
92264	// {
92265	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
92266	//   "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy",
92267	//   "httpMethod": "POST",
92268	//   "id": "compute.instances.setIamPolicy",
92269	//   "parameterOrder": [
92270	//     "project",
92271	//     "zone",
92272	//     "resource"
92273	//   ],
92274	//   "parameters": {
92275	//     "project": {
92276	//       "description": "Project ID for this request.",
92277	//       "location": "path",
92278	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92279	//       "required": true,
92280	//       "type": "string"
92281	//     },
92282	//     "resource": {
92283	//       "description": "Name or id of the resource for this request.",
92284	//       "location": "path",
92285	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92286	//       "required": true,
92287	//       "type": "string"
92288	//     },
92289	//     "zone": {
92290	//       "description": "The name of the zone for this request.",
92291	//       "location": "path",
92292	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92293	//       "required": true,
92294	//       "type": "string"
92295	//     }
92296	//   },
92297	//   "path": "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy",
92298	//   "request": {
92299	//     "$ref": "ZoneSetPolicyRequest"
92300	//   },
92301	//   "response": {
92302	//     "$ref": "Policy"
92303	//   },
92304	//   "scopes": [
92305	//     "https://www.googleapis.com/auth/cloud-platform",
92306	//     "https://www.googleapis.com/auth/compute"
92307	//   ]
92308	// }
92309
92310}
92311
92312// method id "compute.instances.setLabels":
92313
92314type InstancesSetLabelsCall struct {
92315	s                         *Service
92316	project                   string
92317	zone                      string
92318	instance                  string
92319	instancessetlabelsrequest *InstancesSetLabelsRequest
92320	urlParams_                gensupport.URLParams
92321	ctx_                      context.Context
92322	header_                   http.Header
92323}
92324
92325// SetLabels: Sets labels on an instance. To learn more about labels,
92326// read the Labeling Resources documentation.
92327//
92328// - instance: Name of the instance scoping this request.
92329// - project: Project ID for this request.
92330// - zone: The name of the zone for this request.
92331func (r *InstancesService) SetLabels(project string, zone string, instance string, instancessetlabelsrequest *InstancesSetLabelsRequest) *InstancesSetLabelsCall {
92332	c := &InstancesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92333	c.project = project
92334	c.zone = zone
92335	c.instance = instance
92336	c.instancessetlabelsrequest = instancessetlabelsrequest
92337	return c
92338}
92339
92340// RequestId sets the optional parameter "requestId": An optional
92341// request ID to identify requests. Specify a unique request ID so that
92342// if you must retry your request, the server will know to ignore the
92343// request if it has already been completed. For example, consider a
92344// situation where you make an initial request and the request times
92345// out. If you make the request again with the same request ID, the
92346// server can check if original operation with the same request ID was
92347// received, and if so, will ignore the second request. This prevents
92348// clients from accidentally creating duplicate commitments. The request
92349// ID must be a valid UUID with the exception that zero UUID is not
92350// supported ( 00000000-0000-0000-0000-000000000000).
92351func (c *InstancesSetLabelsCall) RequestId(requestId string) *InstancesSetLabelsCall {
92352	c.urlParams_.Set("requestId", requestId)
92353	return c
92354}
92355
92356// Fields allows partial responses to be retrieved. See
92357// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92358// for more information.
92359func (c *InstancesSetLabelsCall) Fields(s ...googleapi.Field) *InstancesSetLabelsCall {
92360	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92361	return c
92362}
92363
92364// Context sets the context to be used in this call's Do method. Any
92365// pending HTTP request will be aborted if the provided context is
92366// canceled.
92367func (c *InstancesSetLabelsCall) Context(ctx context.Context) *InstancesSetLabelsCall {
92368	c.ctx_ = ctx
92369	return c
92370}
92371
92372// Header returns an http.Header that can be modified by the caller to
92373// add HTTP headers to the request.
92374func (c *InstancesSetLabelsCall) Header() http.Header {
92375	if c.header_ == nil {
92376		c.header_ = make(http.Header)
92377	}
92378	return c.header_
92379}
92380
92381func (c *InstancesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
92382	reqHeaders := make(http.Header)
92383	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
92384	for k, v := range c.header_ {
92385		reqHeaders[k] = v
92386	}
92387	reqHeaders.Set("User-Agent", c.s.userAgent())
92388	var body io.Reader = nil
92389	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetlabelsrequest)
92390	if err != nil {
92391		return nil, err
92392	}
92393	reqHeaders.Set("Content-Type", "application/json")
92394	c.urlParams_.Set("alt", alt)
92395	c.urlParams_.Set("prettyPrint", "false")
92396	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setLabels")
92397	urls += "?" + c.urlParams_.Encode()
92398	req, err := http.NewRequest("POST", urls, body)
92399	if err != nil {
92400		return nil, err
92401	}
92402	req.Header = reqHeaders
92403	googleapi.Expand(req.URL, map[string]string{
92404		"project":  c.project,
92405		"zone":     c.zone,
92406		"instance": c.instance,
92407	})
92408	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92409}
92410
92411// Do executes the "compute.instances.setLabels" call.
92412// Exactly one of *Operation or error will be non-nil. Any non-2xx
92413// status code is an error. Response headers are in either
92414// *Operation.ServerResponse.Header or (if a response was returned at
92415// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92416// to check whether the returned error was because
92417// http.StatusNotModified was returned.
92418func (c *InstancesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92419	gensupport.SetOptions(c.urlParams_, opts...)
92420	res, err := c.doRequest("json")
92421	if res != nil && res.StatusCode == http.StatusNotModified {
92422		if res.Body != nil {
92423			res.Body.Close()
92424		}
92425		return nil, &googleapi.Error{
92426			Code:   res.StatusCode,
92427			Header: res.Header,
92428		}
92429	}
92430	if err != nil {
92431		return nil, err
92432	}
92433	defer googleapi.CloseBody(res)
92434	if err := googleapi.CheckResponse(res); err != nil {
92435		return nil, err
92436	}
92437	ret := &Operation{
92438		ServerResponse: googleapi.ServerResponse{
92439			Header:         res.Header,
92440			HTTPStatusCode: res.StatusCode,
92441		},
92442	}
92443	target := &ret
92444	if err := gensupport.DecodeResponse(target, res); err != nil {
92445		return nil, err
92446	}
92447	return ret, nil
92448	// {
92449	//   "description": "Sets labels on an instance. To learn more about labels, read the Labeling Resources documentation.",
92450	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setLabels",
92451	//   "httpMethod": "POST",
92452	//   "id": "compute.instances.setLabels",
92453	//   "parameterOrder": [
92454	//     "project",
92455	//     "zone",
92456	//     "instance"
92457	//   ],
92458	//   "parameters": {
92459	//     "instance": {
92460	//       "description": "Name of the instance scoping this request.",
92461	//       "location": "path",
92462	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92463	//       "required": true,
92464	//       "type": "string"
92465	//     },
92466	//     "project": {
92467	//       "description": "Project ID for this request.",
92468	//       "location": "path",
92469	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92470	//       "required": true,
92471	//       "type": "string"
92472	//     },
92473	//     "requestId": {
92474	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
92475	//       "location": "query",
92476	//       "type": "string"
92477	//     },
92478	//     "zone": {
92479	//       "description": "The name of the zone for this request.",
92480	//       "location": "path",
92481	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92482	//       "required": true,
92483	//       "type": "string"
92484	//     }
92485	//   },
92486	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setLabels",
92487	//   "request": {
92488	//     "$ref": "InstancesSetLabelsRequest"
92489	//   },
92490	//   "response": {
92491	//     "$ref": "Operation"
92492	//   },
92493	//   "scopes": [
92494	//     "https://www.googleapis.com/auth/cloud-platform",
92495	//     "https://www.googleapis.com/auth/compute"
92496	//   ]
92497	// }
92498
92499}
92500
92501// method id "compute.instances.setMachineResources":
92502
92503type InstancesSetMachineResourcesCall struct {
92504	s                                   *Service
92505	project                             string
92506	zone                                string
92507	instance                            string
92508	instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest
92509	urlParams_                          gensupport.URLParams
92510	ctx_                                context.Context
92511	header_                             http.Header
92512}
92513
92514// SetMachineResources: Changes the number and/or type of accelerator
92515// for a stopped instance to the values specified in the request.
92516//
92517// - instance: Name of the instance scoping this request.
92518// - project: Project ID for this request.
92519// - zone: The name of the zone for this request.
92520func (r *InstancesService) SetMachineResources(project string, zone string, instance string, instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest) *InstancesSetMachineResourcesCall {
92521	c := &InstancesSetMachineResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92522	c.project = project
92523	c.zone = zone
92524	c.instance = instance
92525	c.instancessetmachineresourcesrequest = instancessetmachineresourcesrequest
92526	return c
92527}
92528
92529// RequestId sets the optional parameter "requestId": An optional
92530// request ID to identify requests. Specify a unique request ID so that
92531// if you must retry your request, the server will know to ignore the
92532// request if it has already been completed. For example, consider a
92533// situation where you make an initial request and the request times
92534// out. If you make the request again with the same request ID, the
92535// server can check if original operation with the same request ID was
92536// received, and if so, will ignore the second request. This prevents
92537// clients from accidentally creating duplicate commitments. The request
92538// ID must be a valid UUID with the exception that zero UUID is not
92539// supported ( 00000000-0000-0000-0000-000000000000).
92540func (c *InstancesSetMachineResourcesCall) RequestId(requestId string) *InstancesSetMachineResourcesCall {
92541	c.urlParams_.Set("requestId", requestId)
92542	return c
92543}
92544
92545// Fields allows partial responses to be retrieved. See
92546// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92547// for more information.
92548func (c *InstancesSetMachineResourcesCall) Fields(s ...googleapi.Field) *InstancesSetMachineResourcesCall {
92549	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92550	return c
92551}
92552
92553// Context sets the context to be used in this call's Do method. Any
92554// pending HTTP request will be aborted if the provided context is
92555// canceled.
92556func (c *InstancesSetMachineResourcesCall) Context(ctx context.Context) *InstancesSetMachineResourcesCall {
92557	c.ctx_ = ctx
92558	return c
92559}
92560
92561// Header returns an http.Header that can be modified by the caller to
92562// add HTTP headers to the request.
92563func (c *InstancesSetMachineResourcesCall) Header() http.Header {
92564	if c.header_ == nil {
92565		c.header_ = make(http.Header)
92566	}
92567	return c.header_
92568}
92569
92570func (c *InstancesSetMachineResourcesCall) doRequest(alt string) (*http.Response, error) {
92571	reqHeaders := make(http.Header)
92572	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
92573	for k, v := range c.header_ {
92574		reqHeaders[k] = v
92575	}
92576	reqHeaders.Set("User-Agent", c.s.userAgent())
92577	var body io.Reader = nil
92578	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachineresourcesrequest)
92579	if err != nil {
92580		return nil, err
92581	}
92582	reqHeaders.Set("Content-Type", "application/json")
92583	c.urlParams_.Set("alt", alt)
92584	c.urlParams_.Set("prettyPrint", "false")
92585	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources")
92586	urls += "?" + c.urlParams_.Encode()
92587	req, err := http.NewRequest("POST", urls, body)
92588	if err != nil {
92589		return nil, err
92590	}
92591	req.Header = reqHeaders
92592	googleapi.Expand(req.URL, map[string]string{
92593		"project":  c.project,
92594		"zone":     c.zone,
92595		"instance": c.instance,
92596	})
92597	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92598}
92599
92600// Do executes the "compute.instances.setMachineResources" call.
92601// Exactly one of *Operation or error will be non-nil. Any non-2xx
92602// status code is an error. Response headers are in either
92603// *Operation.ServerResponse.Header or (if a response was returned at
92604// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92605// to check whether the returned error was because
92606// http.StatusNotModified was returned.
92607func (c *InstancesSetMachineResourcesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92608	gensupport.SetOptions(c.urlParams_, opts...)
92609	res, err := c.doRequest("json")
92610	if res != nil && res.StatusCode == http.StatusNotModified {
92611		if res.Body != nil {
92612			res.Body.Close()
92613		}
92614		return nil, &googleapi.Error{
92615			Code:   res.StatusCode,
92616			Header: res.Header,
92617		}
92618	}
92619	if err != nil {
92620		return nil, err
92621	}
92622	defer googleapi.CloseBody(res)
92623	if err := googleapi.CheckResponse(res); err != nil {
92624		return nil, err
92625	}
92626	ret := &Operation{
92627		ServerResponse: googleapi.ServerResponse{
92628			Header:         res.Header,
92629			HTTPStatusCode: res.StatusCode,
92630		},
92631	}
92632	target := &ret
92633	if err := gensupport.DecodeResponse(target, res); err != nil {
92634		return nil, err
92635	}
92636	return ret, nil
92637	// {
92638	//   "description": "Changes the number and/or type of accelerator for a stopped instance to the values specified in the request.",
92639	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources",
92640	//   "httpMethod": "POST",
92641	//   "id": "compute.instances.setMachineResources",
92642	//   "parameterOrder": [
92643	//     "project",
92644	//     "zone",
92645	//     "instance"
92646	//   ],
92647	//   "parameters": {
92648	//     "instance": {
92649	//       "description": "Name of the instance scoping this request.",
92650	//       "location": "path",
92651	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92652	//       "required": true,
92653	//       "type": "string"
92654	//     },
92655	//     "project": {
92656	//       "description": "Project ID for this request.",
92657	//       "location": "path",
92658	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92659	//       "required": true,
92660	//       "type": "string"
92661	//     },
92662	//     "requestId": {
92663	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
92664	//       "location": "query",
92665	//       "type": "string"
92666	//     },
92667	//     "zone": {
92668	//       "description": "The name of the zone for this request.",
92669	//       "location": "path",
92670	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92671	//       "required": true,
92672	//       "type": "string"
92673	//     }
92674	//   },
92675	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources",
92676	//   "request": {
92677	//     "$ref": "InstancesSetMachineResourcesRequest"
92678	//   },
92679	//   "response": {
92680	//     "$ref": "Operation"
92681	//   },
92682	//   "scopes": [
92683	//     "https://www.googleapis.com/auth/cloud-platform",
92684	//     "https://www.googleapis.com/auth/compute"
92685	//   ]
92686	// }
92687
92688}
92689
92690// method id "compute.instances.setMachineType":
92691
92692type InstancesSetMachineTypeCall struct {
92693	s                              *Service
92694	project                        string
92695	zone                           string
92696	instance                       string
92697	instancessetmachinetyperequest *InstancesSetMachineTypeRequest
92698	urlParams_                     gensupport.URLParams
92699	ctx_                           context.Context
92700	header_                        http.Header
92701}
92702
92703// SetMachineType: Changes the machine type for a stopped instance to
92704// the machine type specified in the request.
92705//
92706// - instance: Name of the instance scoping this request.
92707// - project: Project ID for this request.
92708// - zone: The name of the zone for this request.
92709func (r *InstancesService) SetMachineType(project string, zone string, instance string, instancessetmachinetyperequest *InstancesSetMachineTypeRequest) *InstancesSetMachineTypeCall {
92710	c := &InstancesSetMachineTypeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92711	c.project = project
92712	c.zone = zone
92713	c.instance = instance
92714	c.instancessetmachinetyperequest = instancessetmachinetyperequest
92715	return c
92716}
92717
92718// RequestId sets the optional parameter "requestId": An optional
92719// request ID to identify requests. Specify a unique request ID so that
92720// if you must retry your request, the server will know to ignore the
92721// request if it has already been completed. For example, consider a
92722// situation where you make an initial request and the request times
92723// out. If you make the request again with the same request ID, the
92724// server can check if original operation with the same request ID was
92725// received, and if so, will ignore the second request. This prevents
92726// clients from accidentally creating duplicate commitments. The request
92727// ID must be a valid UUID with the exception that zero UUID is not
92728// supported ( 00000000-0000-0000-0000-000000000000).
92729func (c *InstancesSetMachineTypeCall) RequestId(requestId string) *InstancesSetMachineTypeCall {
92730	c.urlParams_.Set("requestId", requestId)
92731	return c
92732}
92733
92734// Fields allows partial responses to be retrieved. See
92735// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92736// for more information.
92737func (c *InstancesSetMachineTypeCall) Fields(s ...googleapi.Field) *InstancesSetMachineTypeCall {
92738	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92739	return c
92740}
92741
92742// Context sets the context to be used in this call's Do method. Any
92743// pending HTTP request will be aborted if the provided context is
92744// canceled.
92745func (c *InstancesSetMachineTypeCall) Context(ctx context.Context) *InstancesSetMachineTypeCall {
92746	c.ctx_ = ctx
92747	return c
92748}
92749
92750// Header returns an http.Header that can be modified by the caller to
92751// add HTTP headers to the request.
92752func (c *InstancesSetMachineTypeCall) Header() http.Header {
92753	if c.header_ == nil {
92754		c.header_ = make(http.Header)
92755	}
92756	return c.header_
92757}
92758
92759func (c *InstancesSetMachineTypeCall) doRequest(alt string) (*http.Response, error) {
92760	reqHeaders := make(http.Header)
92761	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
92762	for k, v := range c.header_ {
92763		reqHeaders[k] = v
92764	}
92765	reqHeaders.Set("User-Agent", c.s.userAgent())
92766	var body io.Reader = nil
92767	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachinetyperequest)
92768	if err != nil {
92769		return nil, err
92770	}
92771	reqHeaders.Set("Content-Type", "application/json")
92772	c.urlParams_.Set("alt", alt)
92773	c.urlParams_.Set("prettyPrint", "false")
92774	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setMachineType")
92775	urls += "?" + c.urlParams_.Encode()
92776	req, err := http.NewRequest("POST", urls, body)
92777	if err != nil {
92778		return nil, err
92779	}
92780	req.Header = reqHeaders
92781	googleapi.Expand(req.URL, map[string]string{
92782		"project":  c.project,
92783		"zone":     c.zone,
92784		"instance": c.instance,
92785	})
92786	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92787}
92788
92789// Do executes the "compute.instances.setMachineType" call.
92790// Exactly one of *Operation or error will be non-nil. Any non-2xx
92791// status code is an error. Response headers are in either
92792// *Operation.ServerResponse.Header or (if a response was returned at
92793// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92794// to check whether the returned error was because
92795// http.StatusNotModified was returned.
92796func (c *InstancesSetMachineTypeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92797	gensupport.SetOptions(c.urlParams_, opts...)
92798	res, err := c.doRequest("json")
92799	if res != nil && res.StatusCode == http.StatusNotModified {
92800		if res.Body != nil {
92801			res.Body.Close()
92802		}
92803		return nil, &googleapi.Error{
92804			Code:   res.StatusCode,
92805			Header: res.Header,
92806		}
92807	}
92808	if err != nil {
92809		return nil, err
92810	}
92811	defer googleapi.CloseBody(res)
92812	if err := googleapi.CheckResponse(res); err != nil {
92813		return nil, err
92814	}
92815	ret := &Operation{
92816		ServerResponse: googleapi.ServerResponse{
92817			Header:         res.Header,
92818			HTTPStatusCode: res.StatusCode,
92819		},
92820	}
92821	target := &ret
92822	if err := gensupport.DecodeResponse(target, res); err != nil {
92823		return nil, err
92824	}
92825	return ret, nil
92826	// {
92827	//   "description": "Changes the machine type for a stopped instance to the machine type specified in the request.",
92828	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMachineType",
92829	//   "httpMethod": "POST",
92830	//   "id": "compute.instances.setMachineType",
92831	//   "parameterOrder": [
92832	//     "project",
92833	//     "zone",
92834	//     "instance"
92835	//   ],
92836	//   "parameters": {
92837	//     "instance": {
92838	//       "description": "Name of the instance scoping this request.",
92839	//       "location": "path",
92840	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92841	//       "required": true,
92842	//       "type": "string"
92843	//     },
92844	//     "project": {
92845	//       "description": "Project ID for this request.",
92846	//       "location": "path",
92847	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92848	//       "required": true,
92849	//       "type": "string"
92850	//     },
92851	//     "requestId": {
92852	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
92853	//       "location": "query",
92854	//       "type": "string"
92855	//     },
92856	//     "zone": {
92857	//       "description": "The name of the zone for this request.",
92858	//       "location": "path",
92859	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92860	//       "required": true,
92861	//       "type": "string"
92862	//     }
92863	//   },
92864	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setMachineType",
92865	//   "request": {
92866	//     "$ref": "InstancesSetMachineTypeRequest"
92867	//   },
92868	//   "response": {
92869	//     "$ref": "Operation"
92870	//   },
92871	//   "scopes": [
92872	//     "https://www.googleapis.com/auth/cloud-platform",
92873	//     "https://www.googleapis.com/auth/compute"
92874	//   ]
92875	// }
92876
92877}
92878
92879// method id "compute.instances.setMetadata":
92880
92881type InstancesSetMetadataCall struct {
92882	s          *Service
92883	project    string
92884	zone       string
92885	instance   string
92886	metadata   *Metadata
92887	urlParams_ gensupport.URLParams
92888	ctx_       context.Context
92889	header_    http.Header
92890}
92891
92892// SetMetadata: Sets metadata for the specified instance to the data
92893// included in the request.
92894//
92895// - instance: Name of the instance scoping this request.
92896// - project: Project ID for this request.
92897// - zone: The name of the zone for this request.
92898func (r *InstancesService) SetMetadata(project string, zone string, instance string, metadata *Metadata) *InstancesSetMetadataCall {
92899	c := &InstancesSetMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92900	c.project = project
92901	c.zone = zone
92902	c.instance = instance
92903	c.metadata = metadata
92904	return c
92905}
92906
92907// RequestId sets the optional parameter "requestId": An optional
92908// request ID to identify requests. Specify a unique request ID so that
92909// if you must retry your request, the server will know to ignore the
92910// request if it has already been completed. For example, consider a
92911// situation where you make an initial request and the request times
92912// out. If you make the request again with the same request ID, the
92913// server can check if original operation with the same request ID was
92914// received, and if so, will ignore the second request. This prevents
92915// clients from accidentally creating duplicate commitments. The request
92916// ID must be a valid UUID with the exception that zero UUID is not
92917// supported ( 00000000-0000-0000-0000-000000000000).
92918func (c *InstancesSetMetadataCall) RequestId(requestId string) *InstancesSetMetadataCall {
92919	c.urlParams_.Set("requestId", requestId)
92920	return c
92921}
92922
92923// Fields allows partial responses to be retrieved. See
92924// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92925// for more information.
92926func (c *InstancesSetMetadataCall) Fields(s ...googleapi.Field) *InstancesSetMetadataCall {
92927	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92928	return c
92929}
92930
92931// Context sets the context to be used in this call's Do method. Any
92932// pending HTTP request will be aborted if the provided context is
92933// canceled.
92934func (c *InstancesSetMetadataCall) Context(ctx context.Context) *InstancesSetMetadataCall {
92935	c.ctx_ = ctx
92936	return c
92937}
92938
92939// Header returns an http.Header that can be modified by the caller to
92940// add HTTP headers to the request.
92941func (c *InstancesSetMetadataCall) Header() http.Header {
92942	if c.header_ == nil {
92943		c.header_ = make(http.Header)
92944	}
92945	return c.header_
92946}
92947
92948func (c *InstancesSetMetadataCall) doRequest(alt string) (*http.Response, error) {
92949	reqHeaders := make(http.Header)
92950	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
92951	for k, v := range c.header_ {
92952		reqHeaders[k] = v
92953	}
92954	reqHeaders.Set("User-Agent", c.s.userAgent())
92955	var body io.Reader = nil
92956	body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata)
92957	if err != nil {
92958		return nil, err
92959	}
92960	reqHeaders.Set("Content-Type", "application/json")
92961	c.urlParams_.Set("alt", alt)
92962	c.urlParams_.Set("prettyPrint", "false")
92963	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setMetadata")
92964	urls += "?" + c.urlParams_.Encode()
92965	req, err := http.NewRequest("POST", urls, body)
92966	if err != nil {
92967		return nil, err
92968	}
92969	req.Header = reqHeaders
92970	googleapi.Expand(req.URL, map[string]string{
92971		"project":  c.project,
92972		"zone":     c.zone,
92973		"instance": c.instance,
92974	})
92975	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92976}
92977
92978// Do executes the "compute.instances.setMetadata" call.
92979// Exactly one of *Operation or error will be non-nil. Any non-2xx
92980// status code is an error. Response headers are in either
92981// *Operation.ServerResponse.Header or (if a response was returned at
92982// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92983// to check whether the returned error was because
92984// http.StatusNotModified was returned.
92985func (c *InstancesSetMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92986	gensupport.SetOptions(c.urlParams_, opts...)
92987	res, err := c.doRequest("json")
92988	if res != nil && res.StatusCode == http.StatusNotModified {
92989		if res.Body != nil {
92990			res.Body.Close()
92991		}
92992		return nil, &googleapi.Error{
92993			Code:   res.StatusCode,
92994			Header: res.Header,
92995		}
92996	}
92997	if err != nil {
92998		return nil, err
92999	}
93000	defer googleapi.CloseBody(res)
93001	if err := googleapi.CheckResponse(res); err != nil {
93002		return nil, err
93003	}
93004	ret := &Operation{
93005		ServerResponse: googleapi.ServerResponse{
93006			Header:         res.Header,
93007			HTTPStatusCode: res.StatusCode,
93008		},
93009	}
93010	target := &ret
93011	if err := gensupport.DecodeResponse(target, res); err != nil {
93012		return nil, err
93013	}
93014	return ret, nil
93015	// {
93016	//   "description": "Sets metadata for the specified instance to the data included in the request.",
93017	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMetadata",
93018	//   "httpMethod": "POST",
93019	//   "id": "compute.instances.setMetadata",
93020	//   "parameterOrder": [
93021	//     "project",
93022	//     "zone",
93023	//     "instance"
93024	//   ],
93025	//   "parameters": {
93026	//     "instance": {
93027	//       "description": "Name of the instance scoping this request.",
93028	//       "location": "path",
93029	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93030	//       "required": true,
93031	//       "type": "string"
93032	//     },
93033	//     "project": {
93034	//       "description": "Project ID for this request.",
93035	//       "location": "path",
93036	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93037	//       "required": true,
93038	//       "type": "string"
93039	//     },
93040	//     "requestId": {
93041	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
93042	//       "location": "query",
93043	//       "type": "string"
93044	//     },
93045	//     "zone": {
93046	//       "description": "The name of the zone for this request.",
93047	//       "location": "path",
93048	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93049	//       "required": true,
93050	//       "type": "string"
93051	//     }
93052	//   },
93053	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setMetadata",
93054	//   "request": {
93055	//     "$ref": "Metadata"
93056	//   },
93057	//   "response": {
93058	//     "$ref": "Operation"
93059	//   },
93060	//   "scopes": [
93061	//     "https://www.googleapis.com/auth/cloud-platform",
93062	//     "https://www.googleapis.com/auth/compute"
93063	//   ]
93064	// }
93065
93066}
93067
93068// method id "compute.instances.setMinCpuPlatform":
93069
93070type InstancesSetMinCpuPlatformCall struct {
93071	s                                 *Service
93072	project                           string
93073	zone                              string
93074	instance                          string
93075	instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest
93076	urlParams_                        gensupport.URLParams
93077	ctx_                              context.Context
93078	header_                           http.Header
93079}
93080
93081// SetMinCpuPlatform: Changes the minimum CPU platform that this
93082// instance should use. This method can only be called on a stopped
93083// instance. For more information, read Specifying a Minimum CPU
93084// Platform.
93085//
93086// - instance: Name of the instance scoping this request.
93087// - project: Project ID for this request.
93088// - zone: The name of the zone for this request.
93089func (r *InstancesService) SetMinCpuPlatform(project string, zone string, instance string, instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest) *InstancesSetMinCpuPlatformCall {
93090	c := &InstancesSetMinCpuPlatformCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93091	c.project = project
93092	c.zone = zone
93093	c.instance = instance
93094	c.instancessetmincpuplatformrequest = instancessetmincpuplatformrequest
93095	return c
93096}
93097
93098// RequestId sets the optional parameter "requestId": An optional
93099// request ID to identify requests. Specify a unique request ID so that
93100// if you must retry your request, the server will know to ignore the
93101// request if it has already been completed. For example, consider a
93102// situation where you make an initial request and the request times
93103// out. If you make the request again with the same request ID, the
93104// server can check if original operation with the same request ID was
93105// received, and if so, will ignore the second request. This prevents
93106// clients from accidentally creating duplicate commitments. The request
93107// ID must be a valid UUID with the exception that zero UUID is not
93108// supported ( 00000000-0000-0000-0000-000000000000).
93109func (c *InstancesSetMinCpuPlatformCall) RequestId(requestId string) *InstancesSetMinCpuPlatformCall {
93110	c.urlParams_.Set("requestId", requestId)
93111	return c
93112}
93113
93114// Fields allows partial responses to be retrieved. See
93115// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93116// for more information.
93117func (c *InstancesSetMinCpuPlatformCall) Fields(s ...googleapi.Field) *InstancesSetMinCpuPlatformCall {
93118	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93119	return c
93120}
93121
93122// Context sets the context to be used in this call's Do method. Any
93123// pending HTTP request will be aborted if the provided context is
93124// canceled.
93125func (c *InstancesSetMinCpuPlatformCall) Context(ctx context.Context) *InstancesSetMinCpuPlatformCall {
93126	c.ctx_ = ctx
93127	return c
93128}
93129
93130// Header returns an http.Header that can be modified by the caller to
93131// add HTTP headers to the request.
93132func (c *InstancesSetMinCpuPlatformCall) Header() http.Header {
93133	if c.header_ == nil {
93134		c.header_ = make(http.Header)
93135	}
93136	return c.header_
93137}
93138
93139func (c *InstancesSetMinCpuPlatformCall) doRequest(alt string) (*http.Response, error) {
93140	reqHeaders := make(http.Header)
93141	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
93142	for k, v := range c.header_ {
93143		reqHeaders[k] = v
93144	}
93145	reqHeaders.Set("User-Agent", c.s.userAgent())
93146	var body io.Reader = nil
93147	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmincpuplatformrequest)
93148	if err != nil {
93149		return nil, err
93150	}
93151	reqHeaders.Set("Content-Type", "application/json")
93152	c.urlParams_.Set("alt", alt)
93153	c.urlParams_.Set("prettyPrint", "false")
93154	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform")
93155	urls += "?" + c.urlParams_.Encode()
93156	req, err := http.NewRequest("POST", urls, body)
93157	if err != nil {
93158		return nil, err
93159	}
93160	req.Header = reqHeaders
93161	googleapi.Expand(req.URL, map[string]string{
93162		"project":  c.project,
93163		"zone":     c.zone,
93164		"instance": c.instance,
93165	})
93166	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93167}
93168
93169// Do executes the "compute.instances.setMinCpuPlatform" call.
93170// Exactly one of *Operation or error will be non-nil. Any non-2xx
93171// status code is an error. Response headers are in either
93172// *Operation.ServerResponse.Header or (if a response was returned at
93173// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93174// to check whether the returned error was because
93175// http.StatusNotModified was returned.
93176func (c *InstancesSetMinCpuPlatformCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93177	gensupport.SetOptions(c.urlParams_, opts...)
93178	res, err := c.doRequest("json")
93179	if res != nil && res.StatusCode == http.StatusNotModified {
93180		if res.Body != nil {
93181			res.Body.Close()
93182		}
93183		return nil, &googleapi.Error{
93184			Code:   res.StatusCode,
93185			Header: res.Header,
93186		}
93187	}
93188	if err != nil {
93189		return nil, err
93190	}
93191	defer googleapi.CloseBody(res)
93192	if err := googleapi.CheckResponse(res); err != nil {
93193		return nil, err
93194	}
93195	ret := &Operation{
93196		ServerResponse: googleapi.ServerResponse{
93197			Header:         res.Header,
93198			HTTPStatusCode: res.StatusCode,
93199		},
93200	}
93201	target := &ret
93202	if err := gensupport.DecodeResponse(target, res); err != nil {
93203		return nil, err
93204	}
93205	return ret, nil
93206	// {
93207	//   "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.",
93208	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform",
93209	//   "httpMethod": "POST",
93210	//   "id": "compute.instances.setMinCpuPlatform",
93211	//   "parameterOrder": [
93212	//     "project",
93213	//     "zone",
93214	//     "instance"
93215	//   ],
93216	//   "parameters": {
93217	//     "instance": {
93218	//       "description": "Name of the instance scoping this request.",
93219	//       "location": "path",
93220	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93221	//       "required": true,
93222	//       "type": "string"
93223	//     },
93224	//     "project": {
93225	//       "description": "Project ID for this request.",
93226	//       "location": "path",
93227	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93228	//       "required": true,
93229	//       "type": "string"
93230	//     },
93231	//     "requestId": {
93232	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
93233	//       "location": "query",
93234	//       "type": "string"
93235	//     },
93236	//     "zone": {
93237	//       "description": "The name of the zone for this request.",
93238	//       "location": "path",
93239	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93240	//       "required": true,
93241	//       "type": "string"
93242	//     }
93243	//   },
93244	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform",
93245	//   "request": {
93246	//     "$ref": "InstancesSetMinCpuPlatformRequest"
93247	//   },
93248	//   "response": {
93249	//     "$ref": "Operation"
93250	//   },
93251	//   "scopes": [
93252	//     "https://www.googleapis.com/auth/cloud-platform",
93253	//     "https://www.googleapis.com/auth/compute"
93254	//   ]
93255	// }
93256
93257}
93258
93259// method id "compute.instances.setScheduling":
93260
93261type InstancesSetSchedulingCall struct {
93262	s          *Service
93263	project    string
93264	zone       string
93265	instance   string
93266	scheduling *Scheduling
93267	urlParams_ gensupport.URLParams
93268	ctx_       context.Context
93269	header_    http.Header
93270}
93271
93272// SetScheduling: Sets an instance's scheduling options. You can only
93273// call this method on a stopped instance, that is, a VM instance that
93274// is in a `TERMINATED` state. See Instance Life Cycle for more
93275// information on the possible instance states.
93276//
93277// - instance: Instance name for this request.
93278// - project: Project ID for this request.
93279// - zone: The name of the zone for this request.
93280func (r *InstancesService) SetScheduling(project string, zone string, instance string, scheduling *Scheduling) *InstancesSetSchedulingCall {
93281	c := &InstancesSetSchedulingCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93282	c.project = project
93283	c.zone = zone
93284	c.instance = instance
93285	c.scheduling = scheduling
93286	return c
93287}
93288
93289// RequestId sets the optional parameter "requestId": An optional
93290// request ID to identify requests. Specify a unique request ID so that
93291// if you must retry your request, the server will know to ignore the
93292// request if it has already been completed. For example, consider a
93293// situation where you make an initial request and the request times
93294// out. If you make the request again with the same request ID, the
93295// server can check if original operation with the same request ID was
93296// received, and if so, will ignore the second request. This prevents
93297// clients from accidentally creating duplicate commitments. The request
93298// ID must be a valid UUID with the exception that zero UUID is not
93299// supported ( 00000000-0000-0000-0000-000000000000).
93300func (c *InstancesSetSchedulingCall) RequestId(requestId string) *InstancesSetSchedulingCall {
93301	c.urlParams_.Set("requestId", requestId)
93302	return c
93303}
93304
93305// Fields allows partial responses to be retrieved. See
93306// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93307// for more information.
93308func (c *InstancesSetSchedulingCall) Fields(s ...googleapi.Field) *InstancesSetSchedulingCall {
93309	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93310	return c
93311}
93312
93313// Context sets the context to be used in this call's Do method. Any
93314// pending HTTP request will be aborted if the provided context is
93315// canceled.
93316func (c *InstancesSetSchedulingCall) Context(ctx context.Context) *InstancesSetSchedulingCall {
93317	c.ctx_ = ctx
93318	return c
93319}
93320
93321// Header returns an http.Header that can be modified by the caller to
93322// add HTTP headers to the request.
93323func (c *InstancesSetSchedulingCall) Header() http.Header {
93324	if c.header_ == nil {
93325		c.header_ = make(http.Header)
93326	}
93327	return c.header_
93328}
93329
93330func (c *InstancesSetSchedulingCall) doRequest(alt string) (*http.Response, error) {
93331	reqHeaders := make(http.Header)
93332	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
93333	for k, v := range c.header_ {
93334		reqHeaders[k] = v
93335	}
93336	reqHeaders.Set("User-Agent", c.s.userAgent())
93337	var body io.Reader = nil
93338	body, err := googleapi.WithoutDataWrapper.JSONReader(c.scheduling)
93339	if err != nil {
93340		return nil, err
93341	}
93342	reqHeaders.Set("Content-Type", "application/json")
93343	c.urlParams_.Set("alt", alt)
93344	c.urlParams_.Set("prettyPrint", "false")
93345	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setScheduling")
93346	urls += "?" + c.urlParams_.Encode()
93347	req, err := http.NewRequest("POST", urls, body)
93348	if err != nil {
93349		return nil, err
93350	}
93351	req.Header = reqHeaders
93352	googleapi.Expand(req.URL, map[string]string{
93353		"project":  c.project,
93354		"zone":     c.zone,
93355		"instance": c.instance,
93356	})
93357	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93358}
93359
93360// Do executes the "compute.instances.setScheduling" call.
93361// Exactly one of *Operation or error will be non-nil. Any non-2xx
93362// status code is an error. Response headers are in either
93363// *Operation.ServerResponse.Header or (if a response was returned at
93364// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93365// to check whether the returned error was because
93366// http.StatusNotModified was returned.
93367func (c *InstancesSetSchedulingCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93368	gensupport.SetOptions(c.urlParams_, opts...)
93369	res, err := c.doRequest("json")
93370	if res != nil && res.StatusCode == http.StatusNotModified {
93371		if res.Body != nil {
93372			res.Body.Close()
93373		}
93374		return nil, &googleapi.Error{
93375			Code:   res.StatusCode,
93376			Header: res.Header,
93377		}
93378	}
93379	if err != nil {
93380		return nil, err
93381	}
93382	defer googleapi.CloseBody(res)
93383	if err := googleapi.CheckResponse(res); err != nil {
93384		return nil, err
93385	}
93386	ret := &Operation{
93387		ServerResponse: googleapi.ServerResponse{
93388			Header:         res.Header,
93389			HTTPStatusCode: res.StatusCode,
93390		},
93391	}
93392	target := &ret
93393	if err := gensupport.DecodeResponse(target, res); err != nil {
93394		return nil, err
93395	}
93396	return ret, nil
93397	// {
93398	//   "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.",
93399	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setScheduling",
93400	//   "httpMethod": "POST",
93401	//   "id": "compute.instances.setScheduling",
93402	//   "parameterOrder": [
93403	//     "project",
93404	//     "zone",
93405	//     "instance"
93406	//   ],
93407	//   "parameters": {
93408	//     "instance": {
93409	//       "description": "Instance name for this request.",
93410	//       "location": "path",
93411	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93412	//       "required": true,
93413	//       "type": "string"
93414	//     },
93415	//     "project": {
93416	//       "description": "Project ID for this request.",
93417	//       "location": "path",
93418	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93419	//       "required": true,
93420	//       "type": "string"
93421	//     },
93422	//     "requestId": {
93423	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
93424	//       "location": "query",
93425	//       "type": "string"
93426	//     },
93427	//     "zone": {
93428	//       "description": "The name of the zone for this request.",
93429	//       "location": "path",
93430	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93431	//       "required": true,
93432	//       "type": "string"
93433	//     }
93434	//   },
93435	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setScheduling",
93436	//   "request": {
93437	//     "$ref": "Scheduling"
93438	//   },
93439	//   "response": {
93440	//     "$ref": "Operation"
93441	//   },
93442	//   "scopes": [
93443	//     "https://www.googleapis.com/auth/cloud-platform",
93444	//     "https://www.googleapis.com/auth/compute"
93445	//   ]
93446	// }
93447
93448}
93449
93450// method id "compute.instances.setServiceAccount":
93451
93452type InstancesSetServiceAccountCall struct {
93453	s                                 *Service
93454	project                           string
93455	zone                              string
93456	instance                          string
93457	instancessetserviceaccountrequest *InstancesSetServiceAccountRequest
93458	urlParams_                        gensupport.URLParams
93459	ctx_                              context.Context
93460	header_                           http.Header
93461}
93462
93463// SetServiceAccount: Sets the service account on the instance. For more
93464// information, read Changing the service account and access scopes for
93465// an instance.
93466//
93467// - instance: Name of the instance resource to start.
93468// - project: Project ID for this request.
93469// - zone: The name of the zone for this request.
93470func (r *InstancesService) SetServiceAccount(project string, zone string, instance string, instancessetserviceaccountrequest *InstancesSetServiceAccountRequest) *InstancesSetServiceAccountCall {
93471	c := &InstancesSetServiceAccountCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93472	c.project = project
93473	c.zone = zone
93474	c.instance = instance
93475	c.instancessetserviceaccountrequest = instancessetserviceaccountrequest
93476	return c
93477}
93478
93479// RequestId sets the optional parameter "requestId": An optional
93480// request ID to identify requests. Specify a unique request ID so that
93481// if you must retry your request, the server will know to ignore the
93482// request if it has already been completed. For example, consider a
93483// situation where you make an initial request and the request times
93484// out. If you make the request again with the same request ID, the
93485// server can check if original operation with the same request ID was
93486// received, and if so, will ignore the second request. This prevents
93487// clients from accidentally creating duplicate commitments. The request
93488// ID must be a valid UUID with the exception that zero UUID is not
93489// supported ( 00000000-0000-0000-0000-000000000000).
93490func (c *InstancesSetServiceAccountCall) RequestId(requestId string) *InstancesSetServiceAccountCall {
93491	c.urlParams_.Set("requestId", requestId)
93492	return c
93493}
93494
93495// Fields allows partial responses to be retrieved. See
93496// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93497// for more information.
93498func (c *InstancesSetServiceAccountCall) Fields(s ...googleapi.Field) *InstancesSetServiceAccountCall {
93499	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93500	return c
93501}
93502
93503// Context sets the context to be used in this call's Do method. Any
93504// pending HTTP request will be aborted if the provided context is
93505// canceled.
93506func (c *InstancesSetServiceAccountCall) Context(ctx context.Context) *InstancesSetServiceAccountCall {
93507	c.ctx_ = ctx
93508	return c
93509}
93510
93511// Header returns an http.Header that can be modified by the caller to
93512// add HTTP headers to the request.
93513func (c *InstancesSetServiceAccountCall) Header() http.Header {
93514	if c.header_ == nil {
93515		c.header_ = make(http.Header)
93516	}
93517	return c.header_
93518}
93519
93520func (c *InstancesSetServiceAccountCall) doRequest(alt string) (*http.Response, error) {
93521	reqHeaders := make(http.Header)
93522	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
93523	for k, v := range c.header_ {
93524		reqHeaders[k] = v
93525	}
93526	reqHeaders.Set("User-Agent", c.s.userAgent())
93527	var body io.Reader = nil
93528	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetserviceaccountrequest)
93529	if err != nil {
93530		return nil, err
93531	}
93532	reqHeaders.Set("Content-Type", "application/json")
93533	c.urlParams_.Set("alt", alt)
93534	c.urlParams_.Set("prettyPrint", "false")
93535	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount")
93536	urls += "?" + c.urlParams_.Encode()
93537	req, err := http.NewRequest("POST", urls, body)
93538	if err != nil {
93539		return nil, err
93540	}
93541	req.Header = reqHeaders
93542	googleapi.Expand(req.URL, map[string]string{
93543		"project":  c.project,
93544		"zone":     c.zone,
93545		"instance": c.instance,
93546	})
93547	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93548}
93549
93550// Do executes the "compute.instances.setServiceAccount" call.
93551// Exactly one of *Operation or error will be non-nil. Any non-2xx
93552// status code is an error. Response headers are in either
93553// *Operation.ServerResponse.Header or (if a response was returned at
93554// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93555// to check whether the returned error was because
93556// http.StatusNotModified was returned.
93557func (c *InstancesSetServiceAccountCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93558	gensupport.SetOptions(c.urlParams_, opts...)
93559	res, err := c.doRequest("json")
93560	if res != nil && res.StatusCode == http.StatusNotModified {
93561		if res.Body != nil {
93562			res.Body.Close()
93563		}
93564		return nil, &googleapi.Error{
93565			Code:   res.StatusCode,
93566			Header: res.Header,
93567		}
93568	}
93569	if err != nil {
93570		return nil, err
93571	}
93572	defer googleapi.CloseBody(res)
93573	if err := googleapi.CheckResponse(res); err != nil {
93574		return nil, err
93575	}
93576	ret := &Operation{
93577		ServerResponse: googleapi.ServerResponse{
93578			Header:         res.Header,
93579			HTTPStatusCode: res.StatusCode,
93580		},
93581	}
93582	target := &ret
93583	if err := gensupport.DecodeResponse(target, res); err != nil {
93584		return nil, err
93585	}
93586	return ret, nil
93587	// {
93588	//   "description": "Sets the service account on the instance. For more information, read Changing the service account and access scopes for an instance.",
93589	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount",
93590	//   "httpMethod": "POST",
93591	//   "id": "compute.instances.setServiceAccount",
93592	//   "parameterOrder": [
93593	//     "project",
93594	//     "zone",
93595	//     "instance"
93596	//   ],
93597	//   "parameters": {
93598	//     "instance": {
93599	//       "description": "Name of the instance resource to start.",
93600	//       "location": "path",
93601	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93602	//       "required": true,
93603	//       "type": "string"
93604	//     },
93605	//     "project": {
93606	//       "description": "Project ID for this request.",
93607	//       "location": "path",
93608	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93609	//       "required": true,
93610	//       "type": "string"
93611	//     },
93612	//     "requestId": {
93613	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
93614	//       "location": "query",
93615	//       "type": "string"
93616	//     },
93617	//     "zone": {
93618	//       "description": "The name of the zone for this request.",
93619	//       "location": "path",
93620	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93621	//       "required": true,
93622	//       "type": "string"
93623	//     }
93624	//   },
93625	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount",
93626	//   "request": {
93627	//     "$ref": "InstancesSetServiceAccountRequest"
93628	//   },
93629	//   "response": {
93630	//     "$ref": "Operation"
93631	//   },
93632	//   "scopes": [
93633	//     "https://www.googleapis.com/auth/cloud-platform",
93634	//     "https://www.googleapis.com/auth/compute"
93635	//   ]
93636	// }
93637
93638}
93639
93640// method id "compute.instances.setShieldedInstanceIntegrityPolicy":
93641
93642type InstancesSetShieldedInstanceIntegrityPolicyCall struct {
93643	s                               *Service
93644	project                         string
93645	zone                            string
93646	instance                        string
93647	shieldedinstanceintegritypolicy *ShieldedInstanceIntegrityPolicy
93648	urlParams_                      gensupport.URLParams
93649	ctx_                            context.Context
93650	header_                         http.Header
93651}
93652
93653// SetShieldedInstanceIntegrityPolicy: Sets the Shielded Instance
93654// integrity policy for an instance. You can only use this method on a
93655// running instance. This method supports PATCH semantics and uses the
93656// JSON merge patch format and processing rules.
93657//
93658// - instance: Name or id of the instance scoping this request.
93659// - project: Project ID for this request.
93660// - zone: The name of the zone for this request.
93661func (r *InstancesService) SetShieldedInstanceIntegrityPolicy(project string, zone string, instance string, shieldedinstanceintegritypolicy *ShieldedInstanceIntegrityPolicy) *InstancesSetShieldedInstanceIntegrityPolicyCall {
93662	c := &InstancesSetShieldedInstanceIntegrityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93663	c.project = project
93664	c.zone = zone
93665	c.instance = instance
93666	c.shieldedinstanceintegritypolicy = shieldedinstanceintegritypolicy
93667	return c
93668}
93669
93670// RequestId sets the optional parameter "requestId": An optional
93671// request ID to identify requests. Specify a unique request ID so that
93672// if you must retry your request, the server will know to ignore the
93673// request if it has already been completed. For example, consider a
93674// situation where you make an initial request and the request times
93675// out. If you make the request again with the same request ID, the
93676// server can check if original operation with the same request ID was
93677// received, and if so, will ignore the second request. This prevents
93678// clients from accidentally creating duplicate commitments. The request
93679// ID must be a valid UUID with the exception that zero UUID is not
93680// supported ( 00000000-0000-0000-0000-000000000000).
93681func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) RequestId(requestId string) *InstancesSetShieldedInstanceIntegrityPolicyCall {
93682	c.urlParams_.Set("requestId", requestId)
93683	return c
93684}
93685
93686// Fields allows partial responses to be retrieved. See
93687// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93688// for more information.
93689func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Fields(s ...googleapi.Field) *InstancesSetShieldedInstanceIntegrityPolicyCall {
93690	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93691	return c
93692}
93693
93694// Context sets the context to be used in this call's Do method. Any
93695// pending HTTP request will be aborted if the provided context is
93696// canceled.
93697func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Context(ctx context.Context) *InstancesSetShieldedInstanceIntegrityPolicyCall {
93698	c.ctx_ = ctx
93699	return c
93700}
93701
93702// Header returns an http.Header that can be modified by the caller to
93703// add HTTP headers to the request.
93704func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Header() http.Header {
93705	if c.header_ == nil {
93706		c.header_ = make(http.Header)
93707	}
93708	return c.header_
93709}
93710
93711func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) doRequest(alt string) (*http.Response, error) {
93712	reqHeaders := make(http.Header)
93713	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
93714	for k, v := range c.header_ {
93715		reqHeaders[k] = v
93716	}
93717	reqHeaders.Set("User-Agent", c.s.userAgent())
93718	var body io.Reader = nil
93719	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedinstanceintegritypolicy)
93720	if err != nil {
93721		return nil, err
93722	}
93723	reqHeaders.Set("Content-Type", "application/json")
93724	c.urlParams_.Set("alt", alt)
93725	c.urlParams_.Set("prettyPrint", "false")
93726	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy")
93727	urls += "?" + c.urlParams_.Encode()
93728	req, err := http.NewRequest("PATCH", urls, body)
93729	if err != nil {
93730		return nil, err
93731	}
93732	req.Header = reqHeaders
93733	googleapi.Expand(req.URL, map[string]string{
93734		"project":  c.project,
93735		"zone":     c.zone,
93736		"instance": c.instance,
93737	})
93738	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93739}
93740
93741// Do executes the "compute.instances.setShieldedInstanceIntegrityPolicy" call.
93742// Exactly one of *Operation or error will be non-nil. Any non-2xx
93743// status code is an error. Response headers are in either
93744// *Operation.ServerResponse.Header or (if a response was returned at
93745// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93746// to check whether the returned error was because
93747// http.StatusNotModified was returned.
93748func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93749	gensupport.SetOptions(c.urlParams_, opts...)
93750	res, err := c.doRequest("json")
93751	if res != nil && res.StatusCode == http.StatusNotModified {
93752		if res.Body != nil {
93753			res.Body.Close()
93754		}
93755		return nil, &googleapi.Error{
93756			Code:   res.StatusCode,
93757			Header: res.Header,
93758		}
93759	}
93760	if err != nil {
93761		return nil, err
93762	}
93763	defer googleapi.CloseBody(res)
93764	if err := googleapi.CheckResponse(res); err != nil {
93765		return nil, err
93766	}
93767	ret := &Operation{
93768		ServerResponse: googleapi.ServerResponse{
93769			Header:         res.Header,
93770			HTTPStatusCode: res.StatusCode,
93771		},
93772	}
93773	target := &ret
93774	if err := gensupport.DecodeResponse(target, res); err != nil {
93775		return nil, err
93776	}
93777	return ret, nil
93778	// {
93779	//   "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.",
93780	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy",
93781	//   "httpMethod": "PATCH",
93782	//   "id": "compute.instances.setShieldedInstanceIntegrityPolicy",
93783	//   "parameterOrder": [
93784	//     "project",
93785	//     "zone",
93786	//     "instance"
93787	//   ],
93788	//   "parameters": {
93789	//     "instance": {
93790	//       "description": "Name or id of the instance scoping this request.",
93791	//       "location": "path",
93792	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93793	//       "required": true,
93794	//       "type": "string"
93795	//     },
93796	//     "project": {
93797	//       "description": "Project ID for this request.",
93798	//       "location": "path",
93799	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93800	//       "required": true,
93801	//       "type": "string"
93802	//     },
93803	//     "requestId": {
93804	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
93805	//       "location": "query",
93806	//       "type": "string"
93807	//     },
93808	//     "zone": {
93809	//       "description": "The name of the zone for this request.",
93810	//       "location": "path",
93811	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93812	//       "required": true,
93813	//       "type": "string"
93814	//     }
93815	//   },
93816	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy",
93817	//   "request": {
93818	//     "$ref": "ShieldedInstanceIntegrityPolicy"
93819	//   },
93820	//   "response": {
93821	//     "$ref": "Operation"
93822	//   },
93823	//   "scopes": [
93824	//     "https://www.googleapis.com/auth/cloud-platform",
93825	//     "https://www.googleapis.com/auth/compute"
93826	//   ]
93827	// }
93828
93829}
93830
93831// method id "compute.instances.setTags":
93832
93833type InstancesSetTagsCall struct {
93834	s          *Service
93835	project    string
93836	zone       string
93837	instance   string
93838	tags       *Tags
93839	urlParams_ gensupport.URLParams
93840	ctx_       context.Context
93841	header_    http.Header
93842}
93843
93844// SetTags: Sets network tags for the specified instance to the data
93845// included in the request.
93846//
93847// - instance: Name of the instance scoping this request.
93848// - project: Project ID for this request.
93849// - zone: The name of the zone for this request.
93850func (r *InstancesService) SetTags(project string, zone string, instance string, tags *Tags) *InstancesSetTagsCall {
93851	c := &InstancesSetTagsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93852	c.project = project
93853	c.zone = zone
93854	c.instance = instance
93855	c.tags = tags
93856	return c
93857}
93858
93859// RequestId sets the optional parameter "requestId": An optional
93860// request ID to identify requests. Specify a unique request ID so that
93861// if you must retry your request, the server will know to ignore the
93862// request if it has already been completed. For example, consider a
93863// situation where you make an initial request and the request times
93864// out. If you make the request again with the same request ID, the
93865// server can check if original operation with the same request ID was
93866// received, and if so, will ignore the second request. This prevents
93867// clients from accidentally creating duplicate commitments. The request
93868// ID must be a valid UUID with the exception that zero UUID is not
93869// supported ( 00000000-0000-0000-0000-000000000000).
93870func (c *InstancesSetTagsCall) RequestId(requestId string) *InstancesSetTagsCall {
93871	c.urlParams_.Set("requestId", requestId)
93872	return c
93873}
93874
93875// Fields allows partial responses to be retrieved. See
93876// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93877// for more information.
93878func (c *InstancesSetTagsCall) Fields(s ...googleapi.Field) *InstancesSetTagsCall {
93879	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93880	return c
93881}
93882
93883// Context sets the context to be used in this call's Do method. Any
93884// pending HTTP request will be aborted if the provided context is
93885// canceled.
93886func (c *InstancesSetTagsCall) Context(ctx context.Context) *InstancesSetTagsCall {
93887	c.ctx_ = ctx
93888	return c
93889}
93890
93891// Header returns an http.Header that can be modified by the caller to
93892// add HTTP headers to the request.
93893func (c *InstancesSetTagsCall) Header() http.Header {
93894	if c.header_ == nil {
93895		c.header_ = make(http.Header)
93896	}
93897	return c.header_
93898}
93899
93900func (c *InstancesSetTagsCall) doRequest(alt string) (*http.Response, error) {
93901	reqHeaders := make(http.Header)
93902	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
93903	for k, v := range c.header_ {
93904		reqHeaders[k] = v
93905	}
93906	reqHeaders.Set("User-Agent", c.s.userAgent())
93907	var body io.Reader = nil
93908	body, err := googleapi.WithoutDataWrapper.JSONReader(c.tags)
93909	if err != nil {
93910		return nil, err
93911	}
93912	reqHeaders.Set("Content-Type", "application/json")
93913	c.urlParams_.Set("alt", alt)
93914	c.urlParams_.Set("prettyPrint", "false")
93915	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setTags")
93916	urls += "?" + c.urlParams_.Encode()
93917	req, err := http.NewRequest("POST", urls, body)
93918	if err != nil {
93919		return nil, err
93920	}
93921	req.Header = reqHeaders
93922	googleapi.Expand(req.URL, map[string]string{
93923		"project":  c.project,
93924		"zone":     c.zone,
93925		"instance": c.instance,
93926	})
93927	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93928}
93929
93930// Do executes the "compute.instances.setTags" call.
93931// Exactly one of *Operation or error will be non-nil. Any non-2xx
93932// status code is an error. Response headers are in either
93933// *Operation.ServerResponse.Header or (if a response was returned at
93934// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93935// to check whether the returned error was because
93936// http.StatusNotModified was returned.
93937func (c *InstancesSetTagsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93938	gensupport.SetOptions(c.urlParams_, opts...)
93939	res, err := c.doRequest("json")
93940	if res != nil && res.StatusCode == http.StatusNotModified {
93941		if res.Body != nil {
93942			res.Body.Close()
93943		}
93944		return nil, &googleapi.Error{
93945			Code:   res.StatusCode,
93946			Header: res.Header,
93947		}
93948	}
93949	if err != nil {
93950		return nil, err
93951	}
93952	defer googleapi.CloseBody(res)
93953	if err := googleapi.CheckResponse(res); err != nil {
93954		return nil, err
93955	}
93956	ret := &Operation{
93957		ServerResponse: googleapi.ServerResponse{
93958			Header:         res.Header,
93959			HTTPStatusCode: res.StatusCode,
93960		},
93961	}
93962	target := &ret
93963	if err := gensupport.DecodeResponse(target, res); err != nil {
93964		return nil, err
93965	}
93966	return ret, nil
93967	// {
93968	//   "description": "Sets network tags for the specified instance to the data included in the request.",
93969	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setTags",
93970	//   "httpMethod": "POST",
93971	//   "id": "compute.instances.setTags",
93972	//   "parameterOrder": [
93973	//     "project",
93974	//     "zone",
93975	//     "instance"
93976	//   ],
93977	//   "parameters": {
93978	//     "instance": {
93979	//       "description": "Name of the instance scoping this request.",
93980	//       "location": "path",
93981	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93982	//       "required": true,
93983	//       "type": "string"
93984	//     },
93985	//     "project": {
93986	//       "description": "Project ID for this request.",
93987	//       "location": "path",
93988	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93989	//       "required": true,
93990	//       "type": "string"
93991	//     },
93992	//     "requestId": {
93993	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
93994	//       "location": "query",
93995	//       "type": "string"
93996	//     },
93997	//     "zone": {
93998	//       "description": "The name of the zone for this request.",
93999	//       "location": "path",
94000	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94001	//       "required": true,
94002	//       "type": "string"
94003	//     }
94004	//   },
94005	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setTags",
94006	//   "request": {
94007	//     "$ref": "Tags"
94008	//   },
94009	//   "response": {
94010	//     "$ref": "Operation"
94011	//   },
94012	//   "scopes": [
94013	//     "https://www.googleapis.com/auth/cloud-platform",
94014	//     "https://www.googleapis.com/auth/compute"
94015	//   ]
94016	// }
94017
94018}
94019
94020// method id "compute.instances.simulateMaintenanceEvent":
94021
94022type InstancesSimulateMaintenanceEventCall struct {
94023	s          *Service
94024	project    string
94025	zone       string
94026	instance   string
94027	urlParams_ gensupport.URLParams
94028	ctx_       context.Context
94029	header_    http.Header
94030}
94031
94032// SimulateMaintenanceEvent: Simulates a maintenance event on the
94033// instance.
94034//
94035// - instance: Name of the instance scoping this request.
94036// - project: Project ID for this request.
94037// - zone: The name of the zone for this request.
94038func (r *InstancesService) SimulateMaintenanceEvent(project string, zone string, instance string) *InstancesSimulateMaintenanceEventCall {
94039	c := &InstancesSimulateMaintenanceEventCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94040	c.project = project
94041	c.zone = zone
94042	c.instance = instance
94043	return c
94044}
94045
94046// Fields allows partial responses to be retrieved. See
94047// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94048// for more information.
94049func (c *InstancesSimulateMaintenanceEventCall) Fields(s ...googleapi.Field) *InstancesSimulateMaintenanceEventCall {
94050	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94051	return c
94052}
94053
94054// Context sets the context to be used in this call's Do method. Any
94055// pending HTTP request will be aborted if the provided context is
94056// canceled.
94057func (c *InstancesSimulateMaintenanceEventCall) Context(ctx context.Context) *InstancesSimulateMaintenanceEventCall {
94058	c.ctx_ = ctx
94059	return c
94060}
94061
94062// Header returns an http.Header that can be modified by the caller to
94063// add HTTP headers to the request.
94064func (c *InstancesSimulateMaintenanceEventCall) Header() http.Header {
94065	if c.header_ == nil {
94066		c.header_ = make(http.Header)
94067	}
94068	return c.header_
94069}
94070
94071func (c *InstancesSimulateMaintenanceEventCall) doRequest(alt string) (*http.Response, error) {
94072	reqHeaders := make(http.Header)
94073	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
94074	for k, v := range c.header_ {
94075		reqHeaders[k] = v
94076	}
94077	reqHeaders.Set("User-Agent", c.s.userAgent())
94078	var body io.Reader = nil
94079	c.urlParams_.Set("alt", alt)
94080	c.urlParams_.Set("prettyPrint", "false")
94081	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent")
94082	urls += "?" + c.urlParams_.Encode()
94083	req, err := http.NewRequest("POST", urls, body)
94084	if err != nil {
94085		return nil, err
94086	}
94087	req.Header = reqHeaders
94088	googleapi.Expand(req.URL, map[string]string{
94089		"project":  c.project,
94090		"zone":     c.zone,
94091		"instance": c.instance,
94092	})
94093	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94094}
94095
94096// Do executes the "compute.instances.simulateMaintenanceEvent" call.
94097// Exactly one of *Operation or error will be non-nil. Any non-2xx
94098// status code is an error. Response headers are in either
94099// *Operation.ServerResponse.Header or (if a response was returned at
94100// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94101// to check whether the returned error was because
94102// http.StatusNotModified was returned.
94103func (c *InstancesSimulateMaintenanceEventCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94104	gensupport.SetOptions(c.urlParams_, opts...)
94105	res, err := c.doRequest("json")
94106	if res != nil && res.StatusCode == http.StatusNotModified {
94107		if res.Body != nil {
94108			res.Body.Close()
94109		}
94110		return nil, &googleapi.Error{
94111			Code:   res.StatusCode,
94112			Header: res.Header,
94113		}
94114	}
94115	if err != nil {
94116		return nil, err
94117	}
94118	defer googleapi.CloseBody(res)
94119	if err := googleapi.CheckResponse(res); err != nil {
94120		return nil, err
94121	}
94122	ret := &Operation{
94123		ServerResponse: googleapi.ServerResponse{
94124			Header:         res.Header,
94125			HTTPStatusCode: res.StatusCode,
94126		},
94127	}
94128	target := &ret
94129	if err := gensupport.DecodeResponse(target, res); err != nil {
94130		return nil, err
94131	}
94132	return ret, nil
94133	// {
94134	//   "description": "Simulates a maintenance event on the instance.",
94135	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent",
94136	//   "httpMethod": "POST",
94137	//   "id": "compute.instances.simulateMaintenanceEvent",
94138	//   "parameterOrder": [
94139	//     "project",
94140	//     "zone",
94141	//     "instance"
94142	//   ],
94143	//   "parameters": {
94144	//     "instance": {
94145	//       "description": "Name of the instance scoping this request.",
94146	//       "location": "path",
94147	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94148	//       "required": true,
94149	//       "type": "string"
94150	//     },
94151	//     "project": {
94152	//       "description": "Project ID for this request.",
94153	//       "location": "path",
94154	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94155	//       "required": true,
94156	//       "type": "string"
94157	//     },
94158	//     "zone": {
94159	//       "description": "The name of the zone for this request.",
94160	//       "location": "path",
94161	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94162	//       "required": true,
94163	//       "type": "string"
94164	//     }
94165	//   },
94166	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent",
94167	//   "response": {
94168	//     "$ref": "Operation"
94169	//   },
94170	//   "scopes": [
94171	//     "https://www.googleapis.com/auth/cloud-platform",
94172	//     "https://www.googleapis.com/auth/compute"
94173	//   ]
94174	// }
94175
94176}
94177
94178// method id "compute.instances.start":
94179
94180type InstancesStartCall struct {
94181	s          *Service
94182	project    string
94183	zone       string
94184	instance   string
94185	urlParams_ gensupport.URLParams
94186	ctx_       context.Context
94187	header_    http.Header
94188}
94189
94190// Start: Starts an instance that was stopped using the instances().stop
94191// method. For more information, see Restart an instance.
94192//
94193// - instance: Name of the instance resource to start.
94194// - project: Project ID for this request.
94195// - zone: The name of the zone for this request.
94196func (r *InstancesService) Start(project string, zone string, instance string) *InstancesStartCall {
94197	c := &InstancesStartCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94198	c.project = project
94199	c.zone = zone
94200	c.instance = instance
94201	return c
94202}
94203
94204// RequestId sets the optional parameter "requestId": An optional
94205// request ID to identify requests. Specify a unique request ID so that
94206// if you must retry your request, the server will know to ignore the
94207// request if it has already been completed. For example, consider a
94208// situation where you make an initial request and the request times
94209// out. If you make the request again with the same request ID, the
94210// server can check if original operation with the same request ID was
94211// received, and if so, will ignore the second request. This prevents
94212// clients from accidentally creating duplicate commitments. The request
94213// ID must be a valid UUID with the exception that zero UUID is not
94214// supported ( 00000000-0000-0000-0000-000000000000).
94215func (c *InstancesStartCall) RequestId(requestId string) *InstancesStartCall {
94216	c.urlParams_.Set("requestId", requestId)
94217	return c
94218}
94219
94220// Fields allows partial responses to be retrieved. See
94221// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94222// for more information.
94223func (c *InstancesStartCall) Fields(s ...googleapi.Field) *InstancesStartCall {
94224	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94225	return c
94226}
94227
94228// Context sets the context to be used in this call's Do method. Any
94229// pending HTTP request will be aborted if the provided context is
94230// canceled.
94231func (c *InstancesStartCall) Context(ctx context.Context) *InstancesStartCall {
94232	c.ctx_ = ctx
94233	return c
94234}
94235
94236// Header returns an http.Header that can be modified by the caller to
94237// add HTTP headers to the request.
94238func (c *InstancesStartCall) Header() http.Header {
94239	if c.header_ == nil {
94240		c.header_ = make(http.Header)
94241	}
94242	return c.header_
94243}
94244
94245func (c *InstancesStartCall) doRequest(alt string) (*http.Response, error) {
94246	reqHeaders := make(http.Header)
94247	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
94248	for k, v := range c.header_ {
94249		reqHeaders[k] = v
94250	}
94251	reqHeaders.Set("User-Agent", c.s.userAgent())
94252	var body io.Reader = nil
94253	c.urlParams_.Set("alt", alt)
94254	c.urlParams_.Set("prettyPrint", "false")
94255	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/start")
94256	urls += "?" + c.urlParams_.Encode()
94257	req, err := http.NewRequest("POST", urls, body)
94258	if err != nil {
94259		return nil, err
94260	}
94261	req.Header = reqHeaders
94262	googleapi.Expand(req.URL, map[string]string{
94263		"project":  c.project,
94264		"zone":     c.zone,
94265		"instance": c.instance,
94266	})
94267	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94268}
94269
94270// Do executes the "compute.instances.start" call.
94271// Exactly one of *Operation or error will be non-nil. Any non-2xx
94272// status code is an error. Response headers are in either
94273// *Operation.ServerResponse.Header or (if a response was returned at
94274// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94275// to check whether the returned error was because
94276// http.StatusNotModified was returned.
94277func (c *InstancesStartCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94278	gensupport.SetOptions(c.urlParams_, opts...)
94279	res, err := c.doRequest("json")
94280	if res != nil && res.StatusCode == http.StatusNotModified {
94281		if res.Body != nil {
94282			res.Body.Close()
94283		}
94284		return nil, &googleapi.Error{
94285			Code:   res.StatusCode,
94286			Header: res.Header,
94287		}
94288	}
94289	if err != nil {
94290		return nil, err
94291	}
94292	defer googleapi.CloseBody(res)
94293	if err := googleapi.CheckResponse(res); err != nil {
94294		return nil, err
94295	}
94296	ret := &Operation{
94297		ServerResponse: googleapi.ServerResponse{
94298			Header:         res.Header,
94299			HTTPStatusCode: res.StatusCode,
94300		},
94301	}
94302	target := &ret
94303	if err := gensupport.DecodeResponse(target, res); err != nil {
94304		return nil, err
94305	}
94306	return ret, nil
94307	// {
94308	//   "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.",
94309	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/start",
94310	//   "httpMethod": "POST",
94311	//   "id": "compute.instances.start",
94312	//   "parameterOrder": [
94313	//     "project",
94314	//     "zone",
94315	//     "instance"
94316	//   ],
94317	//   "parameters": {
94318	//     "instance": {
94319	//       "description": "Name of the instance resource to start.",
94320	//       "location": "path",
94321	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94322	//       "required": true,
94323	//       "type": "string"
94324	//     },
94325	//     "project": {
94326	//       "description": "Project ID for this request.",
94327	//       "location": "path",
94328	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94329	//       "required": true,
94330	//       "type": "string"
94331	//     },
94332	//     "requestId": {
94333	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
94334	//       "location": "query",
94335	//       "type": "string"
94336	//     },
94337	//     "zone": {
94338	//       "description": "The name of the zone for this request.",
94339	//       "location": "path",
94340	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94341	//       "required": true,
94342	//       "type": "string"
94343	//     }
94344	//   },
94345	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/start",
94346	//   "response": {
94347	//     "$ref": "Operation"
94348	//   },
94349	//   "scopes": [
94350	//     "https://www.googleapis.com/auth/cloud-platform",
94351	//     "https://www.googleapis.com/auth/compute"
94352	//   ]
94353	// }
94354
94355}
94356
94357// method id "compute.instances.startWithEncryptionKey":
94358
94359type InstancesStartWithEncryptionKeyCall struct {
94360	s                                      *Service
94361	project                                string
94362	zone                                   string
94363	instance                               string
94364	instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest
94365	urlParams_                             gensupport.URLParams
94366	ctx_                                   context.Context
94367	header_                                http.Header
94368}
94369
94370// StartWithEncryptionKey: Starts an instance that was stopped using the
94371// instances().stop method. For more information, see Restart an
94372// instance.
94373//
94374// - instance: Name of the instance resource to start.
94375// - project: Project ID for this request.
94376// - zone: The name of the zone for this request.
94377func (r *InstancesService) StartWithEncryptionKey(project string, zone string, instance string, instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest) *InstancesStartWithEncryptionKeyCall {
94378	c := &InstancesStartWithEncryptionKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94379	c.project = project
94380	c.zone = zone
94381	c.instance = instance
94382	c.instancesstartwithencryptionkeyrequest = instancesstartwithencryptionkeyrequest
94383	return c
94384}
94385
94386// RequestId sets the optional parameter "requestId": An optional
94387// request ID to identify requests. Specify a unique request ID so that
94388// if you must retry your request, the server will know to ignore the
94389// request if it has already been completed. For example, consider a
94390// situation where you make an initial request and the request times
94391// out. If you make the request again with the same request ID, the
94392// server can check if original operation with the same request ID was
94393// received, and if so, will ignore the second request. This prevents
94394// clients from accidentally creating duplicate commitments. The request
94395// ID must be a valid UUID with the exception that zero UUID is not
94396// supported ( 00000000-0000-0000-0000-000000000000).
94397func (c *InstancesStartWithEncryptionKeyCall) RequestId(requestId string) *InstancesStartWithEncryptionKeyCall {
94398	c.urlParams_.Set("requestId", requestId)
94399	return c
94400}
94401
94402// Fields allows partial responses to be retrieved. See
94403// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94404// for more information.
94405func (c *InstancesStartWithEncryptionKeyCall) Fields(s ...googleapi.Field) *InstancesStartWithEncryptionKeyCall {
94406	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94407	return c
94408}
94409
94410// Context sets the context to be used in this call's Do method. Any
94411// pending HTTP request will be aborted if the provided context is
94412// canceled.
94413func (c *InstancesStartWithEncryptionKeyCall) Context(ctx context.Context) *InstancesStartWithEncryptionKeyCall {
94414	c.ctx_ = ctx
94415	return c
94416}
94417
94418// Header returns an http.Header that can be modified by the caller to
94419// add HTTP headers to the request.
94420func (c *InstancesStartWithEncryptionKeyCall) Header() http.Header {
94421	if c.header_ == nil {
94422		c.header_ = make(http.Header)
94423	}
94424	return c.header_
94425}
94426
94427func (c *InstancesStartWithEncryptionKeyCall) doRequest(alt string) (*http.Response, error) {
94428	reqHeaders := make(http.Header)
94429	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
94430	for k, v := range c.header_ {
94431		reqHeaders[k] = v
94432	}
94433	reqHeaders.Set("User-Agent", c.s.userAgent())
94434	var body io.Reader = nil
94435	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesstartwithencryptionkeyrequest)
94436	if err != nil {
94437		return nil, err
94438	}
94439	reqHeaders.Set("Content-Type", "application/json")
94440	c.urlParams_.Set("alt", alt)
94441	c.urlParams_.Set("prettyPrint", "false")
94442	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey")
94443	urls += "?" + c.urlParams_.Encode()
94444	req, err := http.NewRequest("POST", urls, body)
94445	if err != nil {
94446		return nil, err
94447	}
94448	req.Header = reqHeaders
94449	googleapi.Expand(req.URL, map[string]string{
94450		"project":  c.project,
94451		"zone":     c.zone,
94452		"instance": c.instance,
94453	})
94454	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94455}
94456
94457// Do executes the "compute.instances.startWithEncryptionKey" call.
94458// Exactly one of *Operation or error will be non-nil. Any non-2xx
94459// status code is an error. Response headers are in either
94460// *Operation.ServerResponse.Header or (if a response was returned at
94461// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94462// to check whether the returned error was because
94463// http.StatusNotModified was returned.
94464func (c *InstancesStartWithEncryptionKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94465	gensupport.SetOptions(c.urlParams_, opts...)
94466	res, err := c.doRequest("json")
94467	if res != nil && res.StatusCode == http.StatusNotModified {
94468		if res.Body != nil {
94469			res.Body.Close()
94470		}
94471		return nil, &googleapi.Error{
94472			Code:   res.StatusCode,
94473			Header: res.Header,
94474		}
94475	}
94476	if err != nil {
94477		return nil, err
94478	}
94479	defer googleapi.CloseBody(res)
94480	if err := googleapi.CheckResponse(res); err != nil {
94481		return nil, err
94482	}
94483	ret := &Operation{
94484		ServerResponse: googleapi.ServerResponse{
94485			Header:         res.Header,
94486			HTTPStatusCode: res.StatusCode,
94487		},
94488	}
94489	target := &ret
94490	if err := gensupport.DecodeResponse(target, res); err != nil {
94491		return nil, err
94492	}
94493	return ret, nil
94494	// {
94495	//   "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.",
94496	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey",
94497	//   "httpMethod": "POST",
94498	//   "id": "compute.instances.startWithEncryptionKey",
94499	//   "parameterOrder": [
94500	//     "project",
94501	//     "zone",
94502	//     "instance"
94503	//   ],
94504	//   "parameters": {
94505	//     "instance": {
94506	//       "description": "Name of the instance resource to start.",
94507	//       "location": "path",
94508	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94509	//       "required": true,
94510	//       "type": "string"
94511	//     },
94512	//     "project": {
94513	//       "description": "Project ID for this request.",
94514	//       "location": "path",
94515	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94516	//       "required": true,
94517	//       "type": "string"
94518	//     },
94519	//     "requestId": {
94520	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
94521	//       "location": "query",
94522	//       "type": "string"
94523	//     },
94524	//     "zone": {
94525	//       "description": "The name of the zone for this request.",
94526	//       "location": "path",
94527	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94528	//       "required": true,
94529	//       "type": "string"
94530	//     }
94531	//   },
94532	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey",
94533	//   "request": {
94534	//     "$ref": "InstancesStartWithEncryptionKeyRequest"
94535	//   },
94536	//   "response": {
94537	//     "$ref": "Operation"
94538	//   },
94539	//   "scopes": [
94540	//     "https://www.googleapis.com/auth/cloud-platform",
94541	//     "https://www.googleapis.com/auth/compute"
94542	//   ]
94543	// }
94544
94545}
94546
94547// method id "compute.instances.stop":
94548
94549type InstancesStopCall struct {
94550	s          *Service
94551	project    string
94552	zone       string
94553	instance   string
94554	urlParams_ gensupport.URLParams
94555	ctx_       context.Context
94556	header_    http.Header
94557}
94558
94559// Stop: Stops a running instance, shutting it down cleanly, and allows
94560// you to restart the instance at a later time. Stopped instances do not
94561// incur VM usage charges while they are stopped. However, resources
94562// that the VM is using, such as persistent disks and static IP
94563// addresses, will continue to be charged until they are deleted. For
94564// more information, see Stopping an instance.
94565//
94566// - instance: Name of the instance resource to stop.
94567// - project: Project ID for this request.
94568// - zone: The name of the zone for this request.
94569func (r *InstancesService) Stop(project string, zone string, instance string) *InstancesStopCall {
94570	c := &InstancesStopCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94571	c.project = project
94572	c.zone = zone
94573	c.instance = instance
94574	return c
94575}
94576
94577// RequestId sets the optional parameter "requestId": An optional
94578// request ID to identify requests. Specify a unique request ID so that
94579// if you must retry your request, the server will know to ignore the
94580// request if it has already been completed. For example, consider a
94581// situation where you make an initial request and the request times
94582// out. If you make the request again with the same request ID, the
94583// server can check if original operation with the same request ID was
94584// received, and if so, will ignore the second request. This prevents
94585// clients from accidentally creating duplicate commitments. The request
94586// ID must be a valid UUID with the exception that zero UUID is not
94587// supported ( 00000000-0000-0000-0000-000000000000).
94588func (c *InstancesStopCall) RequestId(requestId string) *InstancesStopCall {
94589	c.urlParams_.Set("requestId", requestId)
94590	return c
94591}
94592
94593// Fields allows partial responses to be retrieved. See
94594// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94595// for more information.
94596func (c *InstancesStopCall) Fields(s ...googleapi.Field) *InstancesStopCall {
94597	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94598	return c
94599}
94600
94601// Context sets the context to be used in this call's Do method. Any
94602// pending HTTP request will be aborted if the provided context is
94603// canceled.
94604func (c *InstancesStopCall) Context(ctx context.Context) *InstancesStopCall {
94605	c.ctx_ = ctx
94606	return c
94607}
94608
94609// Header returns an http.Header that can be modified by the caller to
94610// add HTTP headers to the request.
94611func (c *InstancesStopCall) Header() http.Header {
94612	if c.header_ == nil {
94613		c.header_ = make(http.Header)
94614	}
94615	return c.header_
94616}
94617
94618func (c *InstancesStopCall) doRequest(alt string) (*http.Response, error) {
94619	reqHeaders := make(http.Header)
94620	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
94621	for k, v := range c.header_ {
94622		reqHeaders[k] = v
94623	}
94624	reqHeaders.Set("User-Agent", c.s.userAgent())
94625	var body io.Reader = nil
94626	c.urlParams_.Set("alt", alt)
94627	c.urlParams_.Set("prettyPrint", "false")
94628	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/stop")
94629	urls += "?" + c.urlParams_.Encode()
94630	req, err := http.NewRequest("POST", urls, body)
94631	if err != nil {
94632		return nil, err
94633	}
94634	req.Header = reqHeaders
94635	googleapi.Expand(req.URL, map[string]string{
94636		"project":  c.project,
94637		"zone":     c.zone,
94638		"instance": c.instance,
94639	})
94640	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94641}
94642
94643// Do executes the "compute.instances.stop" call.
94644// Exactly one of *Operation or error will be non-nil. Any non-2xx
94645// status code is an error. Response headers are in either
94646// *Operation.ServerResponse.Header or (if a response was returned at
94647// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94648// to check whether the returned error was because
94649// http.StatusNotModified was returned.
94650func (c *InstancesStopCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94651	gensupport.SetOptions(c.urlParams_, opts...)
94652	res, err := c.doRequest("json")
94653	if res != nil && res.StatusCode == http.StatusNotModified {
94654		if res.Body != nil {
94655			res.Body.Close()
94656		}
94657		return nil, &googleapi.Error{
94658			Code:   res.StatusCode,
94659			Header: res.Header,
94660		}
94661	}
94662	if err != nil {
94663		return nil, err
94664	}
94665	defer googleapi.CloseBody(res)
94666	if err := googleapi.CheckResponse(res); err != nil {
94667		return nil, err
94668	}
94669	ret := &Operation{
94670		ServerResponse: googleapi.ServerResponse{
94671			Header:         res.Header,
94672			HTTPStatusCode: res.StatusCode,
94673		},
94674	}
94675	target := &ret
94676	if err := gensupport.DecodeResponse(target, res); err != nil {
94677		return nil, err
94678	}
94679	return ret, nil
94680	// {
94681	//   "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.",
94682	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/stop",
94683	//   "httpMethod": "POST",
94684	//   "id": "compute.instances.stop",
94685	//   "parameterOrder": [
94686	//     "project",
94687	//     "zone",
94688	//     "instance"
94689	//   ],
94690	//   "parameters": {
94691	//     "instance": {
94692	//       "description": "Name of the instance resource to stop.",
94693	//       "location": "path",
94694	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94695	//       "required": true,
94696	//       "type": "string"
94697	//     },
94698	//     "project": {
94699	//       "description": "Project ID for this request.",
94700	//       "location": "path",
94701	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94702	//       "required": true,
94703	//       "type": "string"
94704	//     },
94705	//     "requestId": {
94706	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
94707	//       "location": "query",
94708	//       "type": "string"
94709	//     },
94710	//     "zone": {
94711	//       "description": "The name of the zone for this request.",
94712	//       "location": "path",
94713	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94714	//       "required": true,
94715	//       "type": "string"
94716	//     }
94717	//   },
94718	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/stop",
94719	//   "response": {
94720	//     "$ref": "Operation"
94721	//   },
94722	//   "scopes": [
94723	//     "https://www.googleapis.com/auth/cloud-platform",
94724	//     "https://www.googleapis.com/auth/compute"
94725	//   ]
94726	// }
94727
94728}
94729
94730// method id "compute.instances.testIamPermissions":
94731
94732type InstancesTestIamPermissionsCall struct {
94733	s                      *Service
94734	project                string
94735	zone                   string
94736	resource               string
94737	testpermissionsrequest *TestPermissionsRequest
94738	urlParams_             gensupport.URLParams
94739	ctx_                   context.Context
94740	header_                http.Header
94741}
94742
94743// TestIamPermissions: Returns permissions that a caller has on the
94744// specified resource.
94745//
94746// - project: Project ID for this request.
94747// - resource: Name or id of the resource for this request.
94748// - zone: The name of the zone for this request.
94749func (r *InstancesService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstancesTestIamPermissionsCall {
94750	c := &InstancesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94751	c.project = project
94752	c.zone = zone
94753	c.resource = resource
94754	c.testpermissionsrequest = testpermissionsrequest
94755	return c
94756}
94757
94758// Fields allows partial responses to be retrieved. See
94759// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94760// for more information.
94761func (c *InstancesTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstancesTestIamPermissionsCall {
94762	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94763	return c
94764}
94765
94766// Context sets the context to be used in this call's Do method. Any
94767// pending HTTP request will be aborted if the provided context is
94768// canceled.
94769func (c *InstancesTestIamPermissionsCall) Context(ctx context.Context) *InstancesTestIamPermissionsCall {
94770	c.ctx_ = ctx
94771	return c
94772}
94773
94774// Header returns an http.Header that can be modified by the caller to
94775// add HTTP headers to the request.
94776func (c *InstancesTestIamPermissionsCall) Header() http.Header {
94777	if c.header_ == nil {
94778		c.header_ = make(http.Header)
94779	}
94780	return c.header_
94781}
94782
94783func (c *InstancesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
94784	reqHeaders := make(http.Header)
94785	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
94786	for k, v := range c.header_ {
94787		reqHeaders[k] = v
94788	}
94789	reqHeaders.Set("User-Agent", c.s.userAgent())
94790	var body io.Reader = nil
94791	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
94792	if err != nil {
94793		return nil, err
94794	}
94795	reqHeaders.Set("Content-Type", "application/json")
94796	c.urlParams_.Set("alt", alt)
94797	c.urlParams_.Set("prettyPrint", "false")
94798	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{resource}/testIamPermissions")
94799	urls += "?" + c.urlParams_.Encode()
94800	req, err := http.NewRequest("POST", urls, body)
94801	if err != nil {
94802		return nil, err
94803	}
94804	req.Header = reqHeaders
94805	googleapi.Expand(req.URL, map[string]string{
94806		"project":  c.project,
94807		"zone":     c.zone,
94808		"resource": c.resource,
94809	})
94810	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94811}
94812
94813// Do executes the "compute.instances.testIamPermissions" call.
94814// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
94815// non-2xx status code is an error. Response headers are in either
94816// *TestPermissionsResponse.ServerResponse.Header or (if a response was
94817// returned at all) in error.(*googleapi.Error).Header. Use
94818// googleapi.IsNotModified to check whether the returned error was
94819// because http.StatusNotModified was returned.
94820func (c *InstancesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
94821	gensupport.SetOptions(c.urlParams_, opts...)
94822	res, err := c.doRequest("json")
94823	if res != nil && res.StatusCode == http.StatusNotModified {
94824		if res.Body != nil {
94825			res.Body.Close()
94826		}
94827		return nil, &googleapi.Error{
94828			Code:   res.StatusCode,
94829			Header: res.Header,
94830		}
94831	}
94832	if err != nil {
94833		return nil, err
94834	}
94835	defer googleapi.CloseBody(res)
94836	if err := googleapi.CheckResponse(res); err != nil {
94837		return nil, err
94838	}
94839	ret := &TestPermissionsResponse{
94840		ServerResponse: googleapi.ServerResponse{
94841			Header:         res.Header,
94842			HTTPStatusCode: res.StatusCode,
94843		},
94844	}
94845	target := &ret
94846	if err := gensupport.DecodeResponse(target, res); err != nil {
94847		return nil, err
94848	}
94849	return ret, nil
94850	// {
94851	//   "description": "Returns permissions that a caller has on the specified resource.",
94852	//   "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/testIamPermissions",
94853	//   "httpMethod": "POST",
94854	//   "id": "compute.instances.testIamPermissions",
94855	//   "parameterOrder": [
94856	//     "project",
94857	//     "zone",
94858	//     "resource"
94859	//   ],
94860	//   "parameters": {
94861	//     "project": {
94862	//       "description": "Project ID for this request.",
94863	//       "location": "path",
94864	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94865	//       "required": true,
94866	//       "type": "string"
94867	//     },
94868	//     "resource": {
94869	//       "description": "Name or id of the resource for this request.",
94870	//       "location": "path",
94871	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94872	//       "required": true,
94873	//       "type": "string"
94874	//     },
94875	//     "zone": {
94876	//       "description": "The name of the zone for this request.",
94877	//       "location": "path",
94878	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94879	//       "required": true,
94880	//       "type": "string"
94881	//     }
94882	//   },
94883	//   "path": "projects/{project}/zones/{zone}/instances/{resource}/testIamPermissions",
94884	//   "request": {
94885	//     "$ref": "TestPermissionsRequest"
94886	//   },
94887	//   "response": {
94888	//     "$ref": "TestPermissionsResponse"
94889	//   },
94890	//   "scopes": [
94891	//     "https://www.googleapis.com/auth/cloud-platform",
94892	//     "https://www.googleapis.com/auth/compute",
94893	//     "https://www.googleapis.com/auth/compute.readonly"
94894	//   ]
94895	// }
94896
94897}
94898
94899// method id "compute.instances.update":
94900
94901type InstancesUpdateCall struct {
94902	s          *Service
94903	project    string
94904	zone       string
94905	instance   string
94906	instance2  *Instance
94907	urlParams_ gensupport.URLParams
94908	ctx_       context.Context
94909	header_    http.Header
94910}
94911
94912// Update: Updates an instance only if the necessary resources are
94913// available. This method can update only a specific set of instance
94914// properties. See Updating a running instance for a list of updatable
94915// instance properties.
94916//
94917// - instance: Name of the instance resource to update.
94918// - project: Project ID for this request.
94919// - zone: The name of the zone for this request.
94920func (r *InstancesService) Update(project string, zone string, instance string, instance2 *Instance) *InstancesUpdateCall {
94921	c := &InstancesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94922	c.project = project
94923	c.zone = zone
94924	c.instance = instance
94925	c.instance2 = instance2
94926	return c
94927}
94928
94929// MinimalAction sets the optional parameter "minimalAction": Specifies
94930// the action to take when updating an instance even if the updated
94931// properties do not require it. If not specified, then Compute Engine
94932// acts based on the minimum action that the updated properties require.
94933//
94934// Possible values:
94935//   "INVALID"
94936//   "NO_EFFECT" - No changes can be made to the instance.
94937//   "REFRESH" - The instance will not restart.
94938//   "RESTART" - The instance will restart.
94939func (c *InstancesUpdateCall) MinimalAction(minimalAction string) *InstancesUpdateCall {
94940	c.urlParams_.Set("minimalAction", minimalAction)
94941	return c
94942}
94943
94944// MostDisruptiveAllowedAction sets the optional parameter
94945// "mostDisruptiveAllowedAction": Specifies the most disruptive action
94946// that can be taken on the instance as part of the update. Compute
94947// Engine returns an error if the instance properties require a more
94948// disruptive action as part of the instance update. Valid options from
94949// lowest to highest are NO_EFFECT, REFRESH, and RESTART.
94950//
94951// Possible values:
94952//   "INVALID"
94953//   "NO_EFFECT" - No changes can be made to the instance.
94954//   "REFRESH" - The instance will not restart.
94955//   "RESTART" - The instance will restart.
94956func (c *InstancesUpdateCall) MostDisruptiveAllowedAction(mostDisruptiveAllowedAction string) *InstancesUpdateCall {
94957	c.urlParams_.Set("mostDisruptiveAllowedAction", mostDisruptiveAllowedAction)
94958	return c
94959}
94960
94961// RequestId sets the optional parameter "requestId": An optional
94962// request ID to identify requests. Specify a unique request ID so that
94963// if you must retry your request, the server will know to ignore the
94964// request if it has already been completed. For example, consider a
94965// situation where you make an initial request and the request times
94966// out. If you make the request again with the same request ID, the
94967// server can check if original operation with the same request ID was
94968// received, and if so, will ignore the second request. This prevents
94969// clients from accidentally creating duplicate commitments. The request
94970// ID must be a valid UUID with the exception that zero UUID is not
94971// supported ( 00000000-0000-0000-0000-000000000000).
94972func (c *InstancesUpdateCall) RequestId(requestId string) *InstancesUpdateCall {
94973	c.urlParams_.Set("requestId", requestId)
94974	return c
94975}
94976
94977// Fields allows partial responses to be retrieved. See
94978// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94979// for more information.
94980func (c *InstancesUpdateCall) Fields(s ...googleapi.Field) *InstancesUpdateCall {
94981	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94982	return c
94983}
94984
94985// Context sets the context to be used in this call's Do method. Any
94986// pending HTTP request will be aborted if the provided context is
94987// canceled.
94988func (c *InstancesUpdateCall) Context(ctx context.Context) *InstancesUpdateCall {
94989	c.ctx_ = ctx
94990	return c
94991}
94992
94993// Header returns an http.Header that can be modified by the caller to
94994// add HTTP headers to the request.
94995func (c *InstancesUpdateCall) Header() http.Header {
94996	if c.header_ == nil {
94997		c.header_ = make(http.Header)
94998	}
94999	return c.header_
95000}
95001
95002func (c *InstancesUpdateCall) doRequest(alt string) (*http.Response, error) {
95003	reqHeaders := make(http.Header)
95004	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
95005	for k, v := range c.header_ {
95006		reqHeaders[k] = v
95007	}
95008	reqHeaders.Set("User-Agent", c.s.userAgent())
95009	var body io.Reader = nil
95010	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instance2)
95011	if err != nil {
95012		return nil, err
95013	}
95014	reqHeaders.Set("Content-Type", "application/json")
95015	c.urlParams_.Set("alt", alt)
95016	c.urlParams_.Set("prettyPrint", "false")
95017	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}")
95018	urls += "?" + c.urlParams_.Encode()
95019	req, err := http.NewRequest("PUT", urls, body)
95020	if err != nil {
95021		return nil, err
95022	}
95023	req.Header = reqHeaders
95024	googleapi.Expand(req.URL, map[string]string{
95025		"project":  c.project,
95026		"zone":     c.zone,
95027		"instance": c.instance,
95028	})
95029	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95030}
95031
95032// Do executes the "compute.instances.update" call.
95033// Exactly one of *Operation or error will be non-nil. Any non-2xx
95034// status code is an error. Response headers are in either
95035// *Operation.ServerResponse.Header or (if a response was returned at
95036// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95037// to check whether the returned error was because
95038// http.StatusNotModified was returned.
95039func (c *InstancesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95040	gensupport.SetOptions(c.urlParams_, opts...)
95041	res, err := c.doRequest("json")
95042	if res != nil && res.StatusCode == http.StatusNotModified {
95043		if res.Body != nil {
95044			res.Body.Close()
95045		}
95046		return nil, &googleapi.Error{
95047			Code:   res.StatusCode,
95048			Header: res.Header,
95049		}
95050	}
95051	if err != nil {
95052		return nil, err
95053	}
95054	defer googleapi.CloseBody(res)
95055	if err := googleapi.CheckResponse(res); err != nil {
95056		return nil, err
95057	}
95058	ret := &Operation{
95059		ServerResponse: googleapi.ServerResponse{
95060			Header:         res.Header,
95061			HTTPStatusCode: res.StatusCode,
95062		},
95063	}
95064	target := &ret
95065	if err := gensupport.DecodeResponse(target, res); err != nil {
95066		return nil, err
95067	}
95068	return ret, nil
95069	// {
95070	//   "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.",
95071	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}",
95072	//   "httpMethod": "PUT",
95073	//   "id": "compute.instances.update",
95074	//   "parameterOrder": [
95075	//     "project",
95076	//     "zone",
95077	//     "instance"
95078	//   ],
95079	//   "parameters": {
95080	//     "instance": {
95081	//       "description": "Name of the instance resource to update.",
95082	//       "location": "path",
95083	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95084	//       "required": true,
95085	//       "type": "string"
95086	//     },
95087	//     "minimalAction": {
95088	//       "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.",
95089	//       "enum": [
95090	//         "INVALID",
95091	//         "NO_EFFECT",
95092	//         "REFRESH",
95093	//         "RESTART"
95094	//       ],
95095	//       "enumDescriptions": [
95096	//         "",
95097	//         "No changes can be made to the instance.",
95098	//         "The instance will not restart.",
95099	//         "The instance will restart."
95100	//       ],
95101	//       "location": "query",
95102	//       "type": "string"
95103	//     },
95104	//     "mostDisruptiveAllowedAction": {
95105	//       "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.",
95106	//       "enum": [
95107	//         "INVALID",
95108	//         "NO_EFFECT",
95109	//         "REFRESH",
95110	//         "RESTART"
95111	//       ],
95112	//       "enumDescriptions": [
95113	//         "",
95114	//         "No changes can be made to the instance.",
95115	//         "The instance will not restart.",
95116	//         "The instance will restart."
95117	//       ],
95118	//       "location": "query",
95119	//       "type": "string"
95120	//     },
95121	//     "project": {
95122	//       "description": "Project ID for this request.",
95123	//       "location": "path",
95124	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95125	//       "required": true,
95126	//       "type": "string"
95127	//     },
95128	//     "requestId": {
95129	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
95130	//       "location": "query",
95131	//       "type": "string"
95132	//     },
95133	//     "zone": {
95134	//       "description": "The name of the zone for this request.",
95135	//       "location": "path",
95136	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95137	//       "required": true,
95138	//       "type": "string"
95139	//     }
95140	//   },
95141	//   "path": "projects/{project}/zones/{zone}/instances/{instance}",
95142	//   "request": {
95143	//     "$ref": "Instance"
95144	//   },
95145	//   "response": {
95146	//     "$ref": "Operation"
95147	//   },
95148	//   "scopes": [
95149	//     "https://www.googleapis.com/auth/cloud-platform",
95150	//     "https://www.googleapis.com/auth/compute"
95151	//   ]
95152	// }
95153
95154}
95155
95156// method id "compute.instances.updateAccessConfig":
95157
95158type InstancesUpdateAccessConfigCall struct {
95159	s            *Service
95160	project      string
95161	zone         string
95162	instance     string
95163	accessconfig *AccessConfig
95164	urlParams_   gensupport.URLParams
95165	ctx_         context.Context
95166	header_      http.Header
95167}
95168
95169// UpdateAccessConfig: Updates the specified access config from an
95170// instance's network interface with the data included in the request.
95171// This method supports PATCH semantics and uses the JSON merge patch
95172// format and processing rules.
95173//
95174// - instance: The instance name for this request.
95175// - networkInterface: The name of the network interface where the
95176//   access config is attached.
95177// - project: Project ID for this request.
95178// - zone: The name of the zone for this request.
95179func (r *InstancesService) UpdateAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesUpdateAccessConfigCall {
95180	c := &InstancesUpdateAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95181	c.project = project
95182	c.zone = zone
95183	c.instance = instance
95184	c.urlParams_.Set("networkInterface", networkInterface)
95185	c.accessconfig = accessconfig
95186	return c
95187}
95188
95189// RequestId sets the optional parameter "requestId": An optional
95190// request ID to identify requests. Specify a unique request ID so that
95191// if you must retry your request, the server will know to ignore the
95192// request if it has already been completed. For example, consider a
95193// situation where you make an initial request and the request times
95194// out. If you make the request again with the same request ID, the
95195// server can check if original operation with the same request ID was
95196// received, and if so, will ignore the second request. This prevents
95197// clients from accidentally creating duplicate commitments. The request
95198// ID must be a valid UUID with the exception that zero UUID is not
95199// supported ( 00000000-0000-0000-0000-000000000000).
95200func (c *InstancesUpdateAccessConfigCall) RequestId(requestId string) *InstancesUpdateAccessConfigCall {
95201	c.urlParams_.Set("requestId", requestId)
95202	return c
95203}
95204
95205// Fields allows partial responses to be retrieved. See
95206// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95207// for more information.
95208func (c *InstancesUpdateAccessConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateAccessConfigCall {
95209	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95210	return c
95211}
95212
95213// Context sets the context to be used in this call's Do method. Any
95214// pending HTTP request will be aborted if the provided context is
95215// canceled.
95216func (c *InstancesUpdateAccessConfigCall) Context(ctx context.Context) *InstancesUpdateAccessConfigCall {
95217	c.ctx_ = ctx
95218	return c
95219}
95220
95221// Header returns an http.Header that can be modified by the caller to
95222// add HTTP headers to the request.
95223func (c *InstancesUpdateAccessConfigCall) Header() http.Header {
95224	if c.header_ == nil {
95225		c.header_ = make(http.Header)
95226	}
95227	return c.header_
95228}
95229
95230func (c *InstancesUpdateAccessConfigCall) doRequest(alt string) (*http.Response, error) {
95231	reqHeaders := make(http.Header)
95232	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
95233	for k, v := range c.header_ {
95234		reqHeaders[k] = v
95235	}
95236	reqHeaders.Set("User-Agent", c.s.userAgent())
95237	var body io.Reader = nil
95238	body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig)
95239	if err != nil {
95240		return nil, err
95241	}
95242	reqHeaders.Set("Content-Type", "application/json")
95243	c.urlParams_.Set("alt", alt)
95244	c.urlParams_.Set("prettyPrint", "false")
95245	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig")
95246	urls += "?" + c.urlParams_.Encode()
95247	req, err := http.NewRequest("POST", urls, body)
95248	if err != nil {
95249		return nil, err
95250	}
95251	req.Header = reqHeaders
95252	googleapi.Expand(req.URL, map[string]string{
95253		"project":  c.project,
95254		"zone":     c.zone,
95255		"instance": c.instance,
95256	})
95257	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95258}
95259
95260// Do executes the "compute.instances.updateAccessConfig" call.
95261// Exactly one of *Operation or error will be non-nil. Any non-2xx
95262// status code is an error. Response headers are in either
95263// *Operation.ServerResponse.Header or (if a response was returned at
95264// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95265// to check whether the returned error was because
95266// http.StatusNotModified was returned.
95267func (c *InstancesUpdateAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95268	gensupport.SetOptions(c.urlParams_, opts...)
95269	res, err := c.doRequest("json")
95270	if res != nil && res.StatusCode == http.StatusNotModified {
95271		if res.Body != nil {
95272			res.Body.Close()
95273		}
95274		return nil, &googleapi.Error{
95275			Code:   res.StatusCode,
95276			Header: res.Header,
95277		}
95278	}
95279	if err != nil {
95280		return nil, err
95281	}
95282	defer googleapi.CloseBody(res)
95283	if err := googleapi.CheckResponse(res); err != nil {
95284		return nil, err
95285	}
95286	ret := &Operation{
95287		ServerResponse: googleapi.ServerResponse{
95288			Header:         res.Header,
95289			HTTPStatusCode: res.StatusCode,
95290		},
95291	}
95292	target := &ret
95293	if err := gensupport.DecodeResponse(target, res); err != nil {
95294		return nil, err
95295	}
95296	return ret, nil
95297	// {
95298	//   "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.",
95299	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig",
95300	//   "httpMethod": "POST",
95301	//   "id": "compute.instances.updateAccessConfig",
95302	//   "parameterOrder": [
95303	//     "project",
95304	//     "zone",
95305	//     "instance",
95306	//     "networkInterface"
95307	//   ],
95308	//   "parameters": {
95309	//     "instance": {
95310	//       "description": "The instance name for this request.",
95311	//       "location": "path",
95312	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95313	//       "required": true,
95314	//       "type": "string"
95315	//     },
95316	//     "networkInterface": {
95317	//       "description": "The name of the network interface where the access config is attached.",
95318	//       "location": "query",
95319	//       "required": true,
95320	//       "type": "string"
95321	//     },
95322	//     "project": {
95323	//       "description": "Project ID for this request.",
95324	//       "location": "path",
95325	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95326	//       "required": true,
95327	//       "type": "string"
95328	//     },
95329	//     "requestId": {
95330	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
95331	//       "location": "query",
95332	//       "type": "string"
95333	//     },
95334	//     "zone": {
95335	//       "description": "The name of the zone for this request.",
95336	//       "location": "path",
95337	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95338	//       "required": true,
95339	//       "type": "string"
95340	//     }
95341	//   },
95342	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig",
95343	//   "request": {
95344	//     "$ref": "AccessConfig"
95345	//   },
95346	//   "response": {
95347	//     "$ref": "Operation"
95348	//   },
95349	//   "scopes": [
95350	//     "https://www.googleapis.com/auth/cloud-platform",
95351	//     "https://www.googleapis.com/auth/compute"
95352	//   ]
95353	// }
95354
95355}
95356
95357// method id "compute.instances.updateDisplayDevice":
95358
95359type InstancesUpdateDisplayDeviceCall struct {
95360	s             *Service
95361	project       string
95362	zone          string
95363	instance      string
95364	displaydevice *DisplayDevice
95365	urlParams_    gensupport.URLParams
95366	ctx_          context.Context
95367	header_       http.Header
95368}
95369
95370// UpdateDisplayDevice: Updates the Display config for a VM instance.
95371// You can only use this method on a stopped VM instance. This method
95372// supports PATCH semantics and uses the JSON merge patch format and
95373// processing rules.
95374//
95375// - instance: Name of the instance scoping this request.
95376// - project: Project ID for this request.
95377// - zone: The name of the zone for this request.
95378func (r *InstancesService) UpdateDisplayDevice(project string, zone string, instance string, displaydevice *DisplayDevice) *InstancesUpdateDisplayDeviceCall {
95379	c := &InstancesUpdateDisplayDeviceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95380	c.project = project
95381	c.zone = zone
95382	c.instance = instance
95383	c.displaydevice = displaydevice
95384	return c
95385}
95386
95387// RequestId sets the optional parameter "requestId": An optional
95388// request ID to identify requests. Specify a unique request ID so that
95389// if you must retry your request, the server will know to ignore the
95390// request if it has already been completed. For example, consider a
95391// situation where you make an initial request and the request times
95392// out. If you make the request again with the same request ID, the
95393// server can check if original operation with the same request ID was
95394// received, and if so, will ignore the second request. This prevents
95395// clients from accidentally creating duplicate commitments. The request
95396// ID must be a valid UUID with the exception that zero UUID is not
95397// supported ( 00000000-0000-0000-0000-000000000000).
95398func (c *InstancesUpdateDisplayDeviceCall) RequestId(requestId string) *InstancesUpdateDisplayDeviceCall {
95399	c.urlParams_.Set("requestId", requestId)
95400	return c
95401}
95402
95403// Fields allows partial responses to be retrieved. See
95404// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95405// for more information.
95406func (c *InstancesUpdateDisplayDeviceCall) Fields(s ...googleapi.Field) *InstancesUpdateDisplayDeviceCall {
95407	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95408	return c
95409}
95410
95411// Context sets the context to be used in this call's Do method. Any
95412// pending HTTP request will be aborted if the provided context is
95413// canceled.
95414func (c *InstancesUpdateDisplayDeviceCall) Context(ctx context.Context) *InstancesUpdateDisplayDeviceCall {
95415	c.ctx_ = ctx
95416	return c
95417}
95418
95419// Header returns an http.Header that can be modified by the caller to
95420// add HTTP headers to the request.
95421func (c *InstancesUpdateDisplayDeviceCall) Header() http.Header {
95422	if c.header_ == nil {
95423		c.header_ = make(http.Header)
95424	}
95425	return c.header_
95426}
95427
95428func (c *InstancesUpdateDisplayDeviceCall) doRequest(alt string) (*http.Response, error) {
95429	reqHeaders := make(http.Header)
95430	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
95431	for k, v := range c.header_ {
95432		reqHeaders[k] = v
95433	}
95434	reqHeaders.Set("User-Agent", c.s.userAgent())
95435	var body io.Reader = nil
95436	body, err := googleapi.WithoutDataWrapper.JSONReader(c.displaydevice)
95437	if err != nil {
95438		return nil, err
95439	}
95440	reqHeaders.Set("Content-Type", "application/json")
95441	c.urlParams_.Set("alt", alt)
95442	c.urlParams_.Set("prettyPrint", "false")
95443	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice")
95444	urls += "?" + c.urlParams_.Encode()
95445	req, err := http.NewRequest("PATCH", urls, body)
95446	if err != nil {
95447		return nil, err
95448	}
95449	req.Header = reqHeaders
95450	googleapi.Expand(req.URL, map[string]string{
95451		"project":  c.project,
95452		"zone":     c.zone,
95453		"instance": c.instance,
95454	})
95455	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95456}
95457
95458// Do executes the "compute.instances.updateDisplayDevice" call.
95459// Exactly one of *Operation or error will be non-nil. Any non-2xx
95460// status code is an error. Response headers are in either
95461// *Operation.ServerResponse.Header or (if a response was returned at
95462// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95463// to check whether the returned error was because
95464// http.StatusNotModified was returned.
95465func (c *InstancesUpdateDisplayDeviceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95466	gensupport.SetOptions(c.urlParams_, opts...)
95467	res, err := c.doRequest("json")
95468	if res != nil && res.StatusCode == http.StatusNotModified {
95469		if res.Body != nil {
95470			res.Body.Close()
95471		}
95472		return nil, &googleapi.Error{
95473			Code:   res.StatusCode,
95474			Header: res.Header,
95475		}
95476	}
95477	if err != nil {
95478		return nil, err
95479	}
95480	defer googleapi.CloseBody(res)
95481	if err := googleapi.CheckResponse(res); err != nil {
95482		return nil, err
95483	}
95484	ret := &Operation{
95485		ServerResponse: googleapi.ServerResponse{
95486			Header:         res.Header,
95487			HTTPStatusCode: res.StatusCode,
95488		},
95489	}
95490	target := &ret
95491	if err := gensupport.DecodeResponse(target, res); err != nil {
95492		return nil, err
95493	}
95494	return ret, nil
95495	// {
95496	//   "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.",
95497	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice",
95498	//   "httpMethod": "PATCH",
95499	//   "id": "compute.instances.updateDisplayDevice",
95500	//   "parameterOrder": [
95501	//     "project",
95502	//     "zone",
95503	//     "instance"
95504	//   ],
95505	//   "parameters": {
95506	//     "instance": {
95507	//       "description": "Name of the instance scoping this request.",
95508	//       "location": "path",
95509	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95510	//       "required": true,
95511	//       "type": "string"
95512	//     },
95513	//     "project": {
95514	//       "description": "Project ID for this request.",
95515	//       "location": "path",
95516	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95517	//       "required": true,
95518	//       "type": "string"
95519	//     },
95520	//     "requestId": {
95521	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
95522	//       "location": "query",
95523	//       "type": "string"
95524	//     },
95525	//     "zone": {
95526	//       "description": "The name of the zone for this request.",
95527	//       "location": "path",
95528	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95529	//       "required": true,
95530	//       "type": "string"
95531	//     }
95532	//   },
95533	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice",
95534	//   "request": {
95535	//     "$ref": "DisplayDevice"
95536	//   },
95537	//   "response": {
95538	//     "$ref": "Operation"
95539	//   },
95540	//   "scopes": [
95541	//     "https://www.googleapis.com/auth/cloud-platform",
95542	//     "https://www.googleapis.com/auth/compute"
95543	//   ]
95544	// }
95545
95546}
95547
95548// method id "compute.instances.updateNetworkInterface":
95549
95550type InstancesUpdateNetworkInterfaceCall struct {
95551	s                *Service
95552	project          string
95553	zone             string
95554	instance         string
95555	networkinterface *NetworkInterface
95556	urlParams_       gensupport.URLParams
95557	ctx_             context.Context
95558	header_          http.Header
95559}
95560
95561// UpdateNetworkInterface: Updates an instance's network interface. This
95562// method can only update an interface's alias IP range and attached
95563// network. See Modifying alias IP ranges for an existing instance for
95564// instructions on changing alias IP ranges. See Migrating a VM between
95565// networks for instructions on migrating an interface. This method
95566// follows PATCH semantics.
95567//
95568// - instance: The instance name for this request.
95569// - networkInterface: The name of the network interface to update.
95570// - project: Project ID for this request.
95571// - zone: The name of the zone for this request.
95572func (r *InstancesService) UpdateNetworkInterface(project string, zone string, instance string, networkInterface string, networkinterface *NetworkInterface) *InstancesUpdateNetworkInterfaceCall {
95573	c := &InstancesUpdateNetworkInterfaceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95574	c.project = project
95575	c.zone = zone
95576	c.instance = instance
95577	c.urlParams_.Set("networkInterface", networkInterface)
95578	c.networkinterface = networkinterface
95579	return c
95580}
95581
95582// RequestId sets the optional parameter "requestId": An optional
95583// request ID to identify requests. Specify a unique request ID so that
95584// if you must retry your request, the server will know to ignore the
95585// request if it has already been completed. For example, consider a
95586// situation where you make an initial request and the request times
95587// out. If you make the request again with the same request ID, the
95588// server can check if original operation with the same request ID was
95589// received, and if so, will ignore the second request. This prevents
95590// clients from accidentally creating duplicate commitments. The request
95591// ID must be a valid UUID with the exception that zero UUID is not
95592// supported ( 00000000-0000-0000-0000-000000000000).
95593func (c *InstancesUpdateNetworkInterfaceCall) RequestId(requestId string) *InstancesUpdateNetworkInterfaceCall {
95594	c.urlParams_.Set("requestId", requestId)
95595	return c
95596}
95597
95598// Fields allows partial responses to be retrieved. See
95599// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95600// for more information.
95601func (c *InstancesUpdateNetworkInterfaceCall) Fields(s ...googleapi.Field) *InstancesUpdateNetworkInterfaceCall {
95602	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95603	return c
95604}
95605
95606// Context sets the context to be used in this call's Do method. Any
95607// pending HTTP request will be aborted if the provided context is
95608// canceled.
95609func (c *InstancesUpdateNetworkInterfaceCall) Context(ctx context.Context) *InstancesUpdateNetworkInterfaceCall {
95610	c.ctx_ = ctx
95611	return c
95612}
95613
95614// Header returns an http.Header that can be modified by the caller to
95615// add HTTP headers to the request.
95616func (c *InstancesUpdateNetworkInterfaceCall) Header() http.Header {
95617	if c.header_ == nil {
95618		c.header_ = make(http.Header)
95619	}
95620	return c.header_
95621}
95622
95623func (c *InstancesUpdateNetworkInterfaceCall) doRequest(alt string) (*http.Response, error) {
95624	reqHeaders := make(http.Header)
95625	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
95626	for k, v := range c.header_ {
95627		reqHeaders[k] = v
95628	}
95629	reqHeaders.Set("User-Agent", c.s.userAgent())
95630	var body io.Reader = nil
95631	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkinterface)
95632	if err != nil {
95633		return nil, err
95634	}
95635	reqHeaders.Set("Content-Type", "application/json")
95636	c.urlParams_.Set("alt", alt)
95637	c.urlParams_.Set("prettyPrint", "false")
95638	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface")
95639	urls += "?" + c.urlParams_.Encode()
95640	req, err := http.NewRequest("PATCH", urls, body)
95641	if err != nil {
95642		return nil, err
95643	}
95644	req.Header = reqHeaders
95645	googleapi.Expand(req.URL, map[string]string{
95646		"project":  c.project,
95647		"zone":     c.zone,
95648		"instance": c.instance,
95649	})
95650	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95651}
95652
95653// Do executes the "compute.instances.updateNetworkInterface" call.
95654// Exactly one of *Operation or error will be non-nil. Any non-2xx
95655// status code is an error. Response headers are in either
95656// *Operation.ServerResponse.Header or (if a response was returned at
95657// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95658// to check whether the returned error was because
95659// http.StatusNotModified was returned.
95660func (c *InstancesUpdateNetworkInterfaceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95661	gensupport.SetOptions(c.urlParams_, opts...)
95662	res, err := c.doRequest("json")
95663	if res != nil && res.StatusCode == http.StatusNotModified {
95664		if res.Body != nil {
95665			res.Body.Close()
95666		}
95667		return nil, &googleapi.Error{
95668			Code:   res.StatusCode,
95669			Header: res.Header,
95670		}
95671	}
95672	if err != nil {
95673		return nil, err
95674	}
95675	defer googleapi.CloseBody(res)
95676	if err := googleapi.CheckResponse(res); err != nil {
95677		return nil, err
95678	}
95679	ret := &Operation{
95680		ServerResponse: googleapi.ServerResponse{
95681			Header:         res.Header,
95682			HTTPStatusCode: res.StatusCode,
95683		},
95684	}
95685	target := &ret
95686	if err := gensupport.DecodeResponse(target, res); err != nil {
95687		return nil, err
95688	}
95689	return ret, nil
95690	// {
95691	//   "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.",
95692	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface",
95693	//   "httpMethod": "PATCH",
95694	//   "id": "compute.instances.updateNetworkInterface",
95695	//   "parameterOrder": [
95696	//     "project",
95697	//     "zone",
95698	//     "instance",
95699	//     "networkInterface"
95700	//   ],
95701	//   "parameters": {
95702	//     "instance": {
95703	//       "description": "The instance name for this request.",
95704	//       "location": "path",
95705	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95706	//       "required": true,
95707	//       "type": "string"
95708	//     },
95709	//     "networkInterface": {
95710	//       "description": "The name of the network interface to update.",
95711	//       "location": "query",
95712	//       "required": true,
95713	//       "type": "string"
95714	//     },
95715	//     "project": {
95716	//       "description": "Project ID for this request.",
95717	//       "location": "path",
95718	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95719	//       "required": true,
95720	//       "type": "string"
95721	//     },
95722	//     "requestId": {
95723	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
95724	//       "location": "query",
95725	//       "type": "string"
95726	//     },
95727	//     "zone": {
95728	//       "description": "The name of the zone for this request.",
95729	//       "location": "path",
95730	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95731	//       "required": true,
95732	//       "type": "string"
95733	//     }
95734	//   },
95735	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface",
95736	//   "request": {
95737	//     "$ref": "NetworkInterface"
95738	//   },
95739	//   "response": {
95740	//     "$ref": "Operation"
95741	//   },
95742	//   "scopes": [
95743	//     "https://www.googleapis.com/auth/cloud-platform",
95744	//     "https://www.googleapis.com/auth/compute"
95745	//   ]
95746	// }
95747
95748}
95749
95750// method id "compute.instances.updateShieldedInstanceConfig":
95751
95752type InstancesUpdateShieldedInstanceConfigCall struct {
95753	s                      *Service
95754	project                string
95755	zone                   string
95756	instance               string
95757	shieldedinstanceconfig *ShieldedInstanceConfig
95758	urlParams_             gensupport.URLParams
95759	ctx_                   context.Context
95760	header_                http.Header
95761}
95762
95763// UpdateShieldedInstanceConfig: Updates the Shielded Instance config
95764// for an instance. You can only use this method on a stopped instance.
95765// This method supports PATCH semantics and uses the JSON merge patch
95766// format and processing rules.
95767//
95768// - instance: Name or id of the instance scoping this request.
95769// - project: Project ID for this request.
95770// - zone: The name of the zone for this request.
95771func (r *InstancesService) UpdateShieldedInstanceConfig(project string, zone string, instance string, shieldedinstanceconfig *ShieldedInstanceConfig) *InstancesUpdateShieldedInstanceConfigCall {
95772	c := &InstancesUpdateShieldedInstanceConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95773	c.project = project
95774	c.zone = zone
95775	c.instance = instance
95776	c.shieldedinstanceconfig = shieldedinstanceconfig
95777	return c
95778}
95779
95780// RequestId sets the optional parameter "requestId": An optional
95781// request ID to identify requests. Specify a unique request ID so that
95782// if you must retry your request, the server will know to ignore the
95783// request if it has already been completed. For example, consider a
95784// situation where you make an initial request and the request times
95785// out. If you make the request again with the same request ID, the
95786// server can check if original operation with the same request ID was
95787// received, and if so, will ignore the second request. This prevents
95788// clients from accidentally creating duplicate commitments. The request
95789// ID must be a valid UUID with the exception that zero UUID is not
95790// supported ( 00000000-0000-0000-0000-000000000000).
95791func (c *InstancesUpdateShieldedInstanceConfigCall) RequestId(requestId string) *InstancesUpdateShieldedInstanceConfigCall {
95792	c.urlParams_.Set("requestId", requestId)
95793	return c
95794}
95795
95796// Fields allows partial responses to be retrieved. See
95797// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95798// for more information.
95799func (c *InstancesUpdateShieldedInstanceConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateShieldedInstanceConfigCall {
95800	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95801	return c
95802}
95803
95804// Context sets the context to be used in this call's Do method. Any
95805// pending HTTP request will be aborted if the provided context is
95806// canceled.
95807func (c *InstancesUpdateShieldedInstanceConfigCall) Context(ctx context.Context) *InstancesUpdateShieldedInstanceConfigCall {
95808	c.ctx_ = ctx
95809	return c
95810}
95811
95812// Header returns an http.Header that can be modified by the caller to
95813// add HTTP headers to the request.
95814func (c *InstancesUpdateShieldedInstanceConfigCall) Header() http.Header {
95815	if c.header_ == nil {
95816		c.header_ = make(http.Header)
95817	}
95818	return c.header_
95819}
95820
95821func (c *InstancesUpdateShieldedInstanceConfigCall) doRequest(alt string) (*http.Response, error) {
95822	reqHeaders := make(http.Header)
95823	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
95824	for k, v := range c.header_ {
95825		reqHeaders[k] = v
95826	}
95827	reqHeaders.Set("User-Agent", c.s.userAgent())
95828	var body io.Reader = nil
95829	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedinstanceconfig)
95830	if err != nil {
95831		return nil, err
95832	}
95833	reqHeaders.Set("Content-Type", "application/json")
95834	c.urlParams_.Set("alt", alt)
95835	c.urlParams_.Set("prettyPrint", "false")
95836	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig")
95837	urls += "?" + c.urlParams_.Encode()
95838	req, err := http.NewRequest("PATCH", urls, body)
95839	if err != nil {
95840		return nil, err
95841	}
95842	req.Header = reqHeaders
95843	googleapi.Expand(req.URL, map[string]string{
95844		"project":  c.project,
95845		"zone":     c.zone,
95846		"instance": c.instance,
95847	})
95848	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95849}
95850
95851// Do executes the "compute.instances.updateShieldedInstanceConfig" call.
95852// Exactly one of *Operation or error will be non-nil. Any non-2xx
95853// status code is an error. Response headers are in either
95854// *Operation.ServerResponse.Header or (if a response was returned at
95855// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95856// to check whether the returned error was because
95857// http.StatusNotModified was returned.
95858func (c *InstancesUpdateShieldedInstanceConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95859	gensupport.SetOptions(c.urlParams_, opts...)
95860	res, err := c.doRequest("json")
95861	if res != nil && res.StatusCode == http.StatusNotModified {
95862		if res.Body != nil {
95863			res.Body.Close()
95864		}
95865		return nil, &googleapi.Error{
95866			Code:   res.StatusCode,
95867			Header: res.Header,
95868		}
95869	}
95870	if err != nil {
95871		return nil, err
95872	}
95873	defer googleapi.CloseBody(res)
95874	if err := googleapi.CheckResponse(res); err != nil {
95875		return nil, err
95876	}
95877	ret := &Operation{
95878		ServerResponse: googleapi.ServerResponse{
95879			Header:         res.Header,
95880			HTTPStatusCode: res.StatusCode,
95881		},
95882	}
95883	target := &ret
95884	if err := gensupport.DecodeResponse(target, res); err != nil {
95885		return nil, err
95886	}
95887	return ret, nil
95888	// {
95889	//   "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.",
95890	//   "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig",
95891	//   "httpMethod": "PATCH",
95892	//   "id": "compute.instances.updateShieldedInstanceConfig",
95893	//   "parameterOrder": [
95894	//     "project",
95895	//     "zone",
95896	//     "instance"
95897	//   ],
95898	//   "parameters": {
95899	//     "instance": {
95900	//       "description": "Name or id of the instance scoping this request.",
95901	//       "location": "path",
95902	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95903	//       "required": true,
95904	//       "type": "string"
95905	//     },
95906	//     "project": {
95907	//       "description": "Project ID for this request.",
95908	//       "location": "path",
95909	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95910	//       "required": true,
95911	//       "type": "string"
95912	//     },
95913	//     "requestId": {
95914	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
95915	//       "location": "query",
95916	//       "type": "string"
95917	//     },
95918	//     "zone": {
95919	//       "description": "The name of the zone for this request.",
95920	//       "location": "path",
95921	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95922	//       "required": true,
95923	//       "type": "string"
95924	//     }
95925	//   },
95926	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig",
95927	//   "request": {
95928	//     "$ref": "ShieldedInstanceConfig"
95929	//   },
95930	//   "response": {
95931	//     "$ref": "Operation"
95932	//   },
95933	//   "scopes": [
95934	//     "https://www.googleapis.com/auth/cloud-platform",
95935	//     "https://www.googleapis.com/auth/compute"
95936	//   ]
95937	// }
95938
95939}
95940
95941// method id "compute.interconnectAttachments.aggregatedList":
95942
95943type InterconnectAttachmentsAggregatedListCall struct {
95944	s            *Service
95945	project      string
95946	urlParams_   gensupport.URLParams
95947	ifNoneMatch_ string
95948	ctx_         context.Context
95949	header_      http.Header
95950}
95951
95952// AggregatedList: Retrieves an aggregated list of interconnect
95953// attachments.
95954//
95955// - project: Project ID for this request.
95956func (r *InterconnectAttachmentsService) AggregatedList(project string) *InterconnectAttachmentsAggregatedListCall {
95957	c := &InterconnectAttachmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95958	c.project = project
95959	return c
95960}
95961
95962// Filter sets the optional parameter "filter": A filter expression that
95963// filters resources listed in the response. The expression must specify
95964// the field name, a comparison operator, and the value that you want to
95965// use for filtering. The value must be a string, a number, or a
95966// boolean. The comparison operator must be either `=`, `!=`, `>`, or
95967// `<`. For example, if you are filtering Compute Engine instances, you
95968// can exclude instances named `example-instance` by specifying `name !=
95969// example-instance`. You can also filter nested fields. For example,
95970// you could specify `scheduling.automaticRestart = false` to include
95971// instances only if they are not scheduled for automatic restarts. You
95972// can use filtering on nested fields to filter based on resource
95973// labels. To filter on multiple expressions, provide each separate
95974// expression within parentheses. For example: ```
95975// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
95976// ``` By default, each expression is an `AND` expression. However, you
95977// can include `AND` and `OR` expressions explicitly. For example: ```
95978// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
95979// AND (scheduling.automaticRestart = true) ```
95980func (c *InterconnectAttachmentsAggregatedListCall) Filter(filter string) *InterconnectAttachmentsAggregatedListCall {
95981	c.urlParams_.Set("filter", filter)
95982	return c
95983}
95984
95985// IncludeAllScopes sets the optional parameter "includeAllScopes":
95986// Indicates whether every visible scope for each scope type (zone,
95987// region, global) should be included in the response. For new resource
95988// types added after this field, the flag has no effect as new resource
95989// types will always include every visible scope for each scope type in
95990// response. For resource types which predate this field, if this flag
95991// is omitted or false, only scopes of the scope types where the
95992// resource type is expected to be found will be included.
95993func (c *InterconnectAttachmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InterconnectAttachmentsAggregatedListCall {
95994	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
95995	return c
95996}
95997
95998// MaxResults sets the optional parameter "maxResults": The maximum
95999// number of results per page that should be returned. If the number of
96000// available results is larger than `maxResults`, Compute Engine returns
96001// a `nextPageToken` that can be used to get the next page of results in
96002// subsequent list requests. Acceptable values are `0` to `500`,
96003// inclusive. (Default: `500`)
96004func (c *InterconnectAttachmentsAggregatedListCall) MaxResults(maxResults int64) *InterconnectAttachmentsAggregatedListCall {
96005	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
96006	return c
96007}
96008
96009// OrderBy sets the optional parameter "orderBy": Sorts list results by
96010// a certain order. By default, results are returned in alphanumerical
96011// order based on the resource name. You can also sort results in
96012// descending order based on the creation timestamp using
96013// `orderBy="creationTimestamp desc". This sorts results based on the
96014// `creationTimestamp` field in reverse chronological order (newest
96015// result first). Use this to sort resources like operations so that the
96016// newest operation is returned first. Currently, only sorting by `name`
96017// or `creationTimestamp desc` is supported.
96018func (c *InterconnectAttachmentsAggregatedListCall) OrderBy(orderBy string) *InterconnectAttachmentsAggregatedListCall {
96019	c.urlParams_.Set("orderBy", orderBy)
96020	return c
96021}
96022
96023// PageToken sets the optional parameter "pageToken": Specifies a page
96024// token to use. Set `pageToken` to the `nextPageToken` returned by a
96025// previous list request to get the next page of results.
96026func (c *InterconnectAttachmentsAggregatedListCall) PageToken(pageToken string) *InterconnectAttachmentsAggregatedListCall {
96027	c.urlParams_.Set("pageToken", pageToken)
96028	return c
96029}
96030
96031// ReturnPartialSuccess sets the optional parameter
96032// "returnPartialSuccess": Opt-in for partial success behavior which
96033// provides partial results in case of failure. The default value is
96034// false.
96035func (c *InterconnectAttachmentsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectAttachmentsAggregatedListCall {
96036	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
96037	return c
96038}
96039
96040// Fields allows partial responses to be retrieved. See
96041// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96042// for more information.
96043func (c *InterconnectAttachmentsAggregatedListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsAggregatedListCall {
96044	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96045	return c
96046}
96047
96048// IfNoneMatch sets the optional parameter which makes the operation
96049// fail if the object's ETag matches the given value. This is useful for
96050// getting updates only after the object has changed since the last
96051// request. Use googleapi.IsNotModified to check whether the response
96052// error from Do is the result of In-None-Match.
96053func (c *InterconnectAttachmentsAggregatedListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsAggregatedListCall {
96054	c.ifNoneMatch_ = entityTag
96055	return c
96056}
96057
96058// Context sets the context to be used in this call's Do method. Any
96059// pending HTTP request will be aborted if the provided context is
96060// canceled.
96061func (c *InterconnectAttachmentsAggregatedListCall) Context(ctx context.Context) *InterconnectAttachmentsAggregatedListCall {
96062	c.ctx_ = ctx
96063	return c
96064}
96065
96066// Header returns an http.Header that can be modified by the caller to
96067// add HTTP headers to the request.
96068func (c *InterconnectAttachmentsAggregatedListCall) Header() http.Header {
96069	if c.header_ == nil {
96070		c.header_ = make(http.Header)
96071	}
96072	return c.header_
96073}
96074
96075func (c *InterconnectAttachmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
96076	reqHeaders := make(http.Header)
96077	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
96078	for k, v := range c.header_ {
96079		reqHeaders[k] = v
96080	}
96081	reqHeaders.Set("User-Agent", c.s.userAgent())
96082	if c.ifNoneMatch_ != "" {
96083		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
96084	}
96085	var body io.Reader = nil
96086	c.urlParams_.Set("alt", alt)
96087	c.urlParams_.Set("prettyPrint", "false")
96088	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/interconnectAttachments")
96089	urls += "?" + c.urlParams_.Encode()
96090	req, err := http.NewRequest("GET", urls, body)
96091	if err != nil {
96092		return nil, err
96093	}
96094	req.Header = reqHeaders
96095	googleapi.Expand(req.URL, map[string]string{
96096		"project": c.project,
96097	})
96098	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96099}
96100
96101// Do executes the "compute.interconnectAttachments.aggregatedList" call.
96102// Exactly one of *InterconnectAttachmentAggregatedList or error will be
96103// non-nil. Any non-2xx status code is an error. Response headers are in
96104// either *InterconnectAttachmentAggregatedList.ServerResponse.Header or
96105// (if a response was returned at all) in
96106// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
96107// whether the returned error was because http.StatusNotModified was
96108// returned.
96109func (c *InterconnectAttachmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentAggregatedList, error) {
96110	gensupport.SetOptions(c.urlParams_, opts...)
96111	res, err := c.doRequest("json")
96112	if res != nil && res.StatusCode == http.StatusNotModified {
96113		if res.Body != nil {
96114			res.Body.Close()
96115		}
96116		return nil, &googleapi.Error{
96117			Code:   res.StatusCode,
96118			Header: res.Header,
96119		}
96120	}
96121	if err != nil {
96122		return nil, err
96123	}
96124	defer googleapi.CloseBody(res)
96125	if err := googleapi.CheckResponse(res); err != nil {
96126		return nil, err
96127	}
96128	ret := &InterconnectAttachmentAggregatedList{
96129		ServerResponse: googleapi.ServerResponse{
96130			Header:         res.Header,
96131			HTTPStatusCode: res.StatusCode,
96132		},
96133	}
96134	target := &ret
96135	if err := gensupport.DecodeResponse(target, res); err != nil {
96136		return nil, err
96137	}
96138	return ret, nil
96139	// {
96140	//   "description": "Retrieves an aggregated list of interconnect attachments.",
96141	//   "flatPath": "projects/{project}/aggregated/interconnectAttachments",
96142	//   "httpMethod": "GET",
96143	//   "id": "compute.interconnectAttachments.aggregatedList",
96144	//   "parameterOrder": [
96145	//     "project"
96146	//   ],
96147	//   "parameters": {
96148	//     "filter": {
96149	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
96150	//       "location": "query",
96151	//       "type": "string"
96152	//     },
96153	//     "includeAllScopes": {
96154	//       "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.",
96155	//       "location": "query",
96156	//       "type": "boolean"
96157	//     },
96158	//     "maxResults": {
96159	//       "default": "500",
96160	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
96161	//       "format": "uint32",
96162	//       "location": "query",
96163	//       "minimum": "0",
96164	//       "type": "integer"
96165	//     },
96166	//     "orderBy": {
96167	//       "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.",
96168	//       "location": "query",
96169	//       "type": "string"
96170	//     },
96171	//     "pageToken": {
96172	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
96173	//       "location": "query",
96174	//       "type": "string"
96175	//     },
96176	//     "project": {
96177	//       "description": "Project ID for this request.",
96178	//       "location": "path",
96179	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96180	//       "required": true,
96181	//       "type": "string"
96182	//     },
96183	//     "returnPartialSuccess": {
96184	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
96185	//       "location": "query",
96186	//       "type": "boolean"
96187	//     }
96188	//   },
96189	//   "path": "projects/{project}/aggregated/interconnectAttachments",
96190	//   "response": {
96191	//     "$ref": "InterconnectAttachmentAggregatedList"
96192	//   },
96193	//   "scopes": [
96194	//     "https://www.googleapis.com/auth/cloud-platform",
96195	//     "https://www.googleapis.com/auth/compute",
96196	//     "https://www.googleapis.com/auth/compute.readonly"
96197	//   ]
96198	// }
96199
96200}
96201
96202// Pages invokes f for each page of results.
96203// A non-nil error returned from f will halt the iteration.
96204// The provided context supersedes any context provided to the Context method.
96205func (c *InterconnectAttachmentsAggregatedListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentAggregatedList) error) error {
96206	c.ctx_ = ctx
96207	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
96208	for {
96209		x, err := c.Do()
96210		if err != nil {
96211			return err
96212		}
96213		if err := f(x); err != nil {
96214			return err
96215		}
96216		if x.NextPageToken == "" {
96217			return nil
96218		}
96219		c.PageToken(x.NextPageToken)
96220	}
96221}
96222
96223// method id "compute.interconnectAttachments.delete":
96224
96225type InterconnectAttachmentsDeleteCall struct {
96226	s                      *Service
96227	project                string
96228	region                 string
96229	interconnectAttachment string
96230	urlParams_             gensupport.URLParams
96231	ctx_                   context.Context
96232	header_                http.Header
96233}
96234
96235// Delete: Deletes the specified interconnect attachment.
96236//
96237// - interconnectAttachment: Name of the interconnect attachment to
96238//   delete.
96239// - project: Project ID for this request.
96240// - region: Name of the region for this request.
96241func (r *InterconnectAttachmentsService) Delete(project string, region string, interconnectAttachment string) *InterconnectAttachmentsDeleteCall {
96242	c := &InterconnectAttachmentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96243	c.project = project
96244	c.region = region
96245	c.interconnectAttachment = interconnectAttachment
96246	return c
96247}
96248
96249// RequestId sets the optional parameter "requestId": An optional
96250// request ID to identify requests. Specify a unique request ID so that
96251// if you must retry your request, the server will know to ignore the
96252// request if it has already been completed. For example, consider a
96253// situation where you make an initial request and the request times
96254// out. If you make the request again with the same request ID, the
96255// server can check if original operation with the same request ID was
96256// received, and if so, will ignore the second request. This prevents
96257// clients from accidentally creating duplicate commitments. The request
96258// ID must be a valid UUID with the exception that zero UUID is not
96259// supported ( 00000000-0000-0000-0000-000000000000).
96260func (c *InterconnectAttachmentsDeleteCall) RequestId(requestId string) *InterconnectAttachmentsDeleteCall {
96261	c.urlParams_.Set("requestId", requestId)
96262	return c
96263}
96264
96265// Fields allows partial responses to be retrieved. See
96266// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96267// for more information.
96268func (c *InterconnectAttachmentsDeleteCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsDeleteCall {
96269	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96270	return c
96271}
96272
96273// Context sets the context to be used in this call's Do method. Any
96274// pending HTTP request will be aborted if the provided context is
96275// canceled.
96276func (c *InterconnectAttachmentsDeleteCall) Context(ctx context.Context) *InterconnectAttachmentsDeleteCall {
96277	c.ctx_ = ctx
96278	return c
96279}
96280
96281// Header returns an http.Header that can be modified by the caller to
96282// add HTTP headers to the request.
96283func (c *InterconnectAttachmentsDeleteCall) Header() http.Header {
96284	if c.header_ == nil {
96285		c.header_ = make(http.Header)
96286	}
96287	return c.header_
96288}
96289
96290func (c *InterconnectAttachmentsDeleteCall) doRequest(alt string) (*http.Response, error) {
96291	reqHeaders := make(http.Header)
96292	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
96293	for k, v := range c.header_ {
96294		reqHeaders[k] = v
96295	}
96296	reqHeaders.Set("User-Agent", c.s.userAgent())
96297	var body io.Reader = nil
96298	c.urlParams_.Set("alt", alt)
96299	c.urlParams_.Set("prettyPrint", "false")
96300	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
96301	urls += "?" + c.urlParams_.Encode()
96302	req, err := http.NewRequest("DELETE", urls, body)
96303	if err != nil {
96304		return nil, err
96305	}
96306	req.Header = reqHeaders
96307	googleapi.Expand(req.URL, map[string]string{
96308		"project":                c.project,
96309		"region":                 c.region,
96310		"interconnectAttachment": c.interconnectAttachment,
96311	})
96312	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96313}
96314
96315// Do executes the "compute.interconnectAttachments.delete" call.
96316// Exactly one of *Operation or error will be non-nil. Any non-2xx
96317// status code is an error. Response headers are in either
96318// *Operation.ServerResponse.Header or (if a response was returned at
96319// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96320// to check whether the returned error was because
96321// http.StatusNotModified was returned.
96322func (c *InterconnectAttachmentsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
96323	gensupport.SetOptions(c.urlParams_, opts...)
96324	res, err := c.doRequest("json")
96325	if res != nil && res.StatusCode == http.StatusNotModified {
96326		if res.Body != nil {
96327			res.Body.Close()
96328		}
96329		return nil, &googleapi.Error{
96330			Code:   res.StatusCode,
96331			Header: res.Header,
96332		}
96333	}
96334	if err != nil {
96335		return nil, err
96336	}
96337	defer googleapi.CloseBody(res)
96338	if err := googleapi.CheckResponse(res); err != nil {
96339		return nil, err
96340	}
96341	ret := &Operation{
96342		ServerResponse: googleapi.ServerResponse{
96343			Header:         res.Header,
96344			HTTPStatusCode: res.StatusCode,
96345		},
96346	}
96347	target := &ret
96348	if err := gensupport.DecodeResponse(target, res); err != nil {
96349		return nil, err
96350	}
96351	return ret, nil
96352	// {
96353	//   "description": "Deletes the specified interconnect attachment.",
96354	//   "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
96355	//   "httpMethod": "DELETE",
96356	//   "id": "compute.interconnectAttachments.delete",
96357	//   "parameterOrder": [
96358	//     "project",
96359	//     "region",
96360	//     "interconnectAttachment"
96361	//   ],
96362	//   "parameters": {
96363	//     "interconnectAttachment": {
96364	//       "description": "Name of the interconnect attachment to delete.",
96365	//       "location": "path",
96366	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96367	//       "required": true,
96368	//       "type": "string"
96369	//     },
96370	//     "project": {
96371	//       "description": "Project ID for this request.",
96372	//       "location": "path",
96373	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96374	//       "required": true,
96375	//       "type": "string"
96376	//     },
96377	//     "region": {
96378	//       "description": "Name of the region for this request.",
96379	//       "location": "path",
96380	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96381	//       "required": true,
96382	//       "type": "string"
96383	//     },
96384	//     "requestId": {
96385	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
96386	//       "location": "query",
96387	//       "type": "string"
96388	//     }
96389	//   },
96390	//   "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
96391	//   "response": {
96392	//     "$ref": "Operation"
96393	//   },
96394	//   "scopes": [
96395	//     "https://www.googleapis.com/auth/cloud-platform",
96396	//     "https://www.googleapis.com/auth/compute"
96397	//   ]
96398	// }
96399
96400}
96401
96402// method id "compute.interconnectAttachments.get":
96403
96404type InterconnectAttachmentsGetCall struct {
96405	s                      *Service
96406	project                string
96407	region                 string
96408	interconnectAttachment string
96409	urlParams_             gensupport.URLParams
96410	ifNoneMatch_           string
96411	ctx_                   context.Context
96412	header_                http.Header
96413}
96414
96415// Get: Returns the specified interconnect attachment.
96416//
96417// - interconnectAttachment: Name of the interconnect attachment to
96418//   return.
96419// - project: Project ID for this request.
96420// - region: Name of the region for this request.
96421func (r *InterconnectAttachmentsService) Get(project string, region string, interconnectAttachment string) *InterconnectAttachmentsGetCall {
96422	c := &InterconnectAttachmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96423	c.project = project
96424	c.region = region
96425	c.interconnectAttachment = interconnectAttachment
96426	return c
96427}
96428
96429// Fields allows partial responses to be retrieved. See
96430// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96431// for more information.
96432func (c *InterconnectAttachmentsGetCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsGetCall {
96433	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96434	return c
96435}
96436
96437// IfNoneMatch sets the optional parameter which makes the operation
96438// fail if the object's ETag matches the given value. This is useful for
96439// getting updates only after the object has changed since the last
96440// request. Use googleapi.IsNotModified to check whether the response
96441// error from Do is the result of In-None-Match.
96442func (c *InterconnectAttachmentsGetCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsGetCall {
96443	c.ifNoneMatch_ = entityTag
96444	return c
96445}
96446
96447// Context sets the context to be used in this call's Do method. Any
96448// pending HTTP request will be aborted if the provided context is
96449// canceled.
96450func (c *InterconnectAttachmentsGetCall) Context(ctx context.Context) *InterconnectAttachmentsGetCall {
96451	c.ctx_ = ctx
96452	return c
96453}
96454
96455// Header returns an http.Header that can be modified by the caller to
96456// add HTTP headers to the request.
96457func (c *InterconnectAttachmentsGetCall) Header() http.Header {
96458	if c.header_ == nil {
96459		c.header_ = make(http.Header)
96460	}
96461	return c.header_
96462}
96463
96464func (c *InterconnectAttachmentsGetCall) doRequest(alt string) (*http.Response, error) {
96465	reqHeaders := make(http.Header)
96466	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
96467	for k, v := range c.header_ {
96468		reqHeaders[k] = v
96469	}
96470	reqHeaders.Set("User-Agent", c.s.userAgent())
96471	if c.ifNoneMatch_ != "" {
96472		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
96473	}
96474	var body io.Reader = nil
96475	c.urlParams_.Set("alt", alt)
96476	c.urlParams_.Set("prettyPrint", "false")
96477	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
96478	urls += "?" + c.urlParams_.Encode()
96479	req, err := http.NewRequest("GET", urls, body)
96480	if err != nil {
96481		return nil, err
96482	}
96483	req.Header = reqHeaders
96484	googleapi.Expand(req.URL, map[string]string{
96485		"project":                c.project,
96486		"region":                 c.region,
96487		"interconnectAttachment": c.interconnectAttachment,
96488	})
96489	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96490}
96491
96492// Do executes the "compute.interconnectAttachments.get" call.
96493// Exactly one of *InterconnectAttachment or error will be non-nil. Any
96494// non-2xx status code is an error. Response headers are in either
96495// *InterconnectAttachment.ServerResponse.Header or (if a response was
96496// returned at all) in error.(*googleapi.Error).Header. Use
96497// googleapi.IsNotModified to check whether the returned error was
96498// because http.StatusNotModified was returned.
96499func (c *InterconnectAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachment, error) {
96500	gensupport.SetOptions(c.urlParams_, opts...)
96501	res, err := c.doRequest("json")
96502	if res != nil && res.StatusCode == http.StatusNotModified {
96503		if res.Body != nil {
96504			res.Body.Close()
96505		}
96506		return nil, &googleapi.Error{
96507			Code:   res.StatusCode,
96508			Header: res.Header,
96509		}
96510	}
96511	if err != nil {
96512		return nil, err
96513	}
96514	defer googleapi.CloseBody(res)
96515	if err := googleapi.CheckResponse(res); err != nil {
96516		return nil, err
96517	}
96518	ret := &InterconnectAttachment{
96519		ServerResponse: googleapi.ServerResponse{
96520			Header:         res.Header,
96521			HTTPStatusCode: res.StatusCode,
96522		},
96523	}
96524	target := &ret
96525	if err := gensupport.DecodeResponse(target, res); err != nil {
96526		return nil, err
96527	}
96528	return ret, nil
96529	// {
96530	//   "description": "Returns the specified interconnect attachment.",
96531	//   "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
96532	//   "httpMethod": "GET",
96533	//   "id": "compute.interconnectAttachments.get",
96534	//   "parameterOrder": [
96535	//     "project",
96536	//     "region",
96537	//     "interconnectAttachment"
96538	//   ],
96539	//   "parameters": {
96540	//     "interconnectAttachment": {
96541	//       "description": "Name of the interconnect attachment to return.",
96542	//       "location": "path",
96543	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96544	//       "required": true,
96545	//       "type": "string"
96546	//     },
96547	//     "project": {
96548	//       "description": "Project ID for this request.",
96549	//       "location": "path",
96550	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96551	//       "required": true,
96552	//       "type": "string"
96553	//     },
96554	//     "region": {
96555	//       "description": "Name of the region for this request.",
96556	//       "location": "path",
96557	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96558	//       "required": true,
96559	//       "type": "string"
96560	//     }
96561	//   },
96562	//   "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
96563	//   "response": {
96564	//     "$ref": "InterconnectAttachment"
96565	//   },
96566	//   "scopes": [
96567	//     "https://www.googleapis.com/auth/cloud-platform",
96568	//     "https://www.googleapis.com/auth/compute",
96569	//     "https://www.googleapis.com/auth/compute.readonly"
96570	//   ]
96571	// }
96572
96573}
96574
96575// method id "compute.interconnectAttachments.insert":
96576
96577type InterconnectAttachmentsInsertCall struct {
96578	s                      *Service
96579	project                string
96580	region                 string
96581	interconnectattachment *InterconnectAttachment
96582	urlParams_             gensupport.URLParams
96583	ctx_                   context.Context
96584	header_                http.Header
96585}
96586
96587// Insert: Creates an InterconnectAttachment in the specified project
96588// using the data included in the request.
96589//
96590// - project: Project ID for this request.
96591// - region: Name of the region for this request.
96592func (r *InterconnectAttachmentsService) Insert(project string, region string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsInsertCall {
96593	c := &InterconnectAttachmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96594	c.project = project
96595	c.region = region
96596	c.interconnectattachment = interconnectattachment
96597	return c
96598}
96599
96600// RequestId sets the optional parameter "requestId": An optional
96601// request ID to identify requests. Specify a unique request ID so that
96602// if you must retry your request, the server will know to ignore the
96603// request if it has already been completed. For example, consider a
96604// situation where you make an initial request and the request times
96605// out. If you make the request again with the same request ID, the
96606// server can check if original operation with the same request ID was
96607// received, and if so, will ignore the second request. This prevents
96608// clients from accidentally creating duplicate commitments. The request
96609// ID must be a valid UUID with the exception that zero UUID is not
96610// supported ( 00000000-0000-0000-0000-000000000000).
96611func (c *InterconnectAttachmentsInsertCall) RequestId(requestId string) *InterconnectAttachmentsInsertCall {
96612	c.urlParams_.Set("requestId", requestId)
96613	return c
96614}
96615
96616// ValidateOnly sets the optional parameter "validateOnly": If true, the
96617// request will not be committed.
96618func (c *InterconnectAttachmentsInsertCall) ValidateOnly(validateOnly bool) *InterconnectAttachmentsInsertCall {
96619	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
96620	return c
96621}
96622
96623// Fields allows partial responses to be retrieved. See
96624// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96625// for more information.
96626func (c *InterconnectAttachmentsInsertCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsInsertCall {
96627	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96628	return c
96629}
96630
96631// Context sets the context to be used in this call's Do method. Any
96632// pending HTTP request will be aborted if the provided context is
96633// canceled.
96634func (c *InterconnectAttachmentsInsertCall) Context(ctx context.Context) *InterconnectAttachmentsInsertCall {
96635	c.ctx_ = ctx
96636	return c
96637}
96638
96639// Header returns an http.Header that can be modified by the caller to
96640// add HTTP headers to the request.
96641func (c *InterconnectAttachmentsInsertCall) Header() http.Header {
96642	if c.header_ == nil {
96643		c.header_ = make(http.Header)
96644	}
96645	return c.header_
96646}
96647
96648func (c *InterconnectAttachmentsInsertCall) doRequest(alt string) (*http.Response, error) {
96649	reqHeaders := make(http.Header)
96650	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
96651	for k, v := range c.header_ {
96652		reqHeaders[k] = v
96653	}
96654	reqHeaders.Set("User-Agent", c.s.userAgent())
96655	var body io.Reader = nil
96656	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnectattachment)
96657	if err != nil {
96658		return nil, err
96659	}
96660	reqHeaders.Set("Content-Type", "application/json")
96661	c.urlParams_.Set("alt", alt)
96662	c.urlParams_.Set("prettyPrint", "false")
96663	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments")
96664	urls += "?" + c.urlParams_.Encode()
96665	req, err := http.NewRequest("POST", urls, body)
96666	if err != nil {
96667		return nil, err
96668	}
96669	req.Header = reqHeaders
96670	googleapi.Expand(req.URL, map[string]string{
96671		"project": c.project,
96672		"region":  c.region,
96673	})
96674	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96675}
96676
96677// Do executes the "compute.interconnectAttachments.insert" call.
96678// Exactly one of *Operation or error will be non-nil. Any non-2xx
96679// status code is an error. Response headers are in either
96680// *Operation.ServerResponse.Header or (if a response was returned at
96681// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96682// to check whether the returned error was because
96683// http.StatusNotModified was returned.
96684func (c *InterconnectAttachmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
96685	gensupport.SetOptions(c.urlParams_, opts...)
96686	res, err := c.doRequest("json")
96687	if res != nil && res.StatusCode == http.StatusNotModified {
96688		if res.Body != nil {
96689			res.Body.Close()
96690		}
96691		return nil, &googleapi.Error{
96692			Code:   res.StatusCode,
96693			Header: res.Header,
96694		}
96695	}
96696	if err != nil {
96697		return nil, err
96698	}
96699	defer googleapi.CloseBody(res)
96700	if err := googleapi.CheckResponse(res); err != nil {
96701		return nil, err
96702	}
96703	ret := &Operation{
96704		ServerResponse: googleapi.ServerResponse{
96705			Header:         res.Header,
96706			HTTPStatusCode: res.StatusCode,
96707		},
96708	}
96709	target := &ret
96710	if err := gensupport.DecodeResponse(target, res); err != nil {
96711		return nil, err
96712	}
96713	return ret, nil
96714	// {
96715	//   "description": "Creates an InterconnectAttachment in the specified project using the data included in the request.",
96716	//   "flatPath": "projects/{project}/regions/{region}/interconnectAttachments",
96717	//   "httpMethod": "POST",
96718	//   "id": "compute.interconnectAttachments.insert",
96719	//   "parameterOrder": [
96720	//     "project",
96721	//     "region"
96722	//   ],
96723	//   "parameters": {
96724	//     "project": {
96725	//       "description": "Project ID for this request.",
96726	//       "location": "path",
96727	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96728	//       "required": true,
96729	//       "type": "string"
96730	//     },
96731	//     "region": {
96732	//       "description": "Name of the region for this request.",
96733	//       "location": "path",
96734	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96735	//       "required": true,
96736	//       "type": "string"
96737	//     },
96738	//     "requestId": {
96739	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
96740	//       "location": "query",
96741	//       "type": "string"
96742	//     },
96743	//     "validateOnly": {
96744	//       "description": "If true, the request will not be committed.",
96745	//       "location": "query",
96746	//       "type": "boolean"
96747	//     }
96748	//   },
96749	//   "path": "projects/{project}/regions/{region}/interconnectAttachments",
96750	//   "request": {
96751	//     "$ref": "InterconnectAttachment"
96752	//   },
96753	//   "response": {
96754	//     "$ref": "Operation"
96755	//   },
96756	//   "scopes": [
96757	//     "https://www.googleapis.com/auth/cloud-platform",
96758	//     "https://www.googleapis.com/auth/compute"
96759	//   ]
96760	// }
96761
96762}
96763
96764// method id "compute.interconnectAttachments.list":
96765
96766type InterconnectAttachmentsListCall struct {
96767	s            *Service
96768	project      string
96769	region       string
96770	urlParams_   gensupport.URLParams
96771	ifNoneMatch_ string
96772	ctx_         context.Context
96773	header_      http.Header
96774}
96775
96776// List: Retrieves the list of interconnect attachments contained within
96777// the specified region.
96778//
96779// - project: Project ID for this request.
96780// - region: Name of the region for this request.
96781func (r *InterconnectAttachmentsService) List(project string, region string) *InterconnectAttachmentsListCall {
96782	c := &InterconnectAttachmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96783	c.project = project
96784	c.region = region
96785	return c
96786}
96787
96788// Filter sets the optional parameter "filter": A filter expression that
96789// filters resources listed in the response. The expression must specify
96790// the field name, a comparison operator, and the value that you want to
96791// use for filtering. The value must be a string, a number, or a
96792// boolean. The comparison operator must be either `=`, `!=`, `>`, or
96793// `<`. For example, if you are filtering Compute Engine instances, you
96794// can exclude instances named `example-instance` by specifying `name !=
96795// example-instance`. You can also filter nested fields. For example,
96796// you could specify `scheduling.automaticRestart = false` to include
96797// instances only if they are not scheduled for automatic restarts. You
96798// can use filtering on nested fields to filter based on resource
96799// labels. To filter on multiple expressions, provide each separate
96800// expression within parentheses. For example: ```
96801// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
96802// ``` By default, each expression is an `AND` expression. However, you
96803// can include `AND` and `OR` expressions explicitly. For example: ```
96804// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
96805// AND (scheduling.automaticRestart = true) ```
96806func (c *InterconnectAttachmentsListCall) Filter(filter string) *InterconnectAttachmentsListCall {
96807	c.urlParams_.Set("filter", filter)
96808	return c
96809}
96810
96811// MaxResults sets the optional parameter "maxResults": The maximum
96812// number of results per page that should be returned. If the number of
96813// available results is larger than `maxResults`, Compute Engine returns
96814// a `nextPageToken` that can be used to get the next page of results in
96815// subsequent list requests. Acceptable values are `0` to `500`,
96816// inclusive. (Default: `500`)
96817func (c *InterconnectAttachmentsListCall) MaxResults(maxResults int64) *InterconnectAttachmentsListCall {
96818	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
96819	return c
96820}
96821
96822// OrderBy sets the optional parameter "orderBy": Sorts list results by
96823// a certain order. By default, results are returned in alphanumerical
96824// order based on the resource name. You can also sort results in
96825// descending order based on the creation timestamp using
96826// `orderBy="creationTimestamp desc". This sorts results based on the
96827// `creationTimestamp` field in reverse chronological order (newest
96828// result first). Use this to sort resources like operations so that the
96829// newest operation is returned first. Currently, only sorting by `name`
96830// or `creationTimestamp desc` is supported.
96831func (c *InterconnectAttachmentsListCall) OrderBy(orderBy string) *InterconnectAttachmentsListCall {
96832	c.urlParams_.Set("orderBy", orderBy)
96833	return c
96834}
96835
96836// PageToken sets the optional parameter "pageToken": Specifies a page
96837// token to use. Set `pageToken` to the `nextPageToken` returned by a
96838// previous list request to get the next page of results.
96839func (c *InterconnectAttachmentsListCall) PageToken(pageToken string) *InterconnectAttachmentsListCall {
96840	c.urlParams_.Set("pageToken", pageToken)
96841	return c
96842}
96843
96844// ReturnPartialSuccess sets the optional parameter
96845// "returnPartialSuccess": Opt-in for partial success behavior which
96846// provides partial results in case of failure. The default value is
96847// false.
96848func (c *InterconnectAttachmentsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectAttachmentsListCall {
96849	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
96850	return c
96851}
96852
96853// Fields allows partial responses to be retrieved. See
96854// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96855// for more information.
96856func (c *InterconnectAttachmentsListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsListCall {
96857	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96858	return c
96859}
96860
96861// IfNoneMatch sets the optional parameter which makes the operation
96862// fail if the object's ETag matches the given value. This is useful for
96863// getting updates only after the object has changed since the last
96864// request. Use googleapi.IsNotModified to check whether the response
96865// error from Do is the result of In-None-Match.
96866func (c *InterconnectAttachmentsListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsListCall {
96867	c.ifNoneMatch_ = entityTag
96868	return c
96869}
96870
96871// Context sets the context to be used in this call's Do method. Any
96872// pending HTTP request will be aborted if the provided context is
96873// canceled.
96874func (c *InterconnectAttachmentsListCall) Context(ctx context.Context) *InterconnectAttachmentsListCall {
96875	c.ctx_ = ctx
96876	return c
96877}
96878
96879// Header returns an http.Header that can be modified by the caller to
96880// add HTTP headers to the request.
96881func (c *InterconnectAttachmentsListCall) Header() http.Header {
96882	if c.header_ == nil {
96883		c.header_ = make(http.Header)
96884	}
96885	return c.header_
96886}
96887
96888func (c *InterconnectAttachmentsListCall) doRequest(alt string) (*http.Response, error) {
96889	reqHeaders := make(http.Header)
96890	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
96891	for k, v := range c.header_ {
96892		reqHeaders[k] = v
96893	}
96894	reqHeaders.Set("User-Agent", c.s.userAgent())
96895	if c.ifNoneMatch_ != "" {
96896		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
96897	}
96898	var body io.Reader = nil
96899	c.urlParams_.Set("alt", alt)
96900	c.urlParams_.Set("prettyPrint", "false")
96901	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments")
96902	urls += "?" + c.urlParams_.Encode()
96903	req, err := http.NewRequest("GET", urls, body)
96904	if err != nil {
96905		return nil, err
96906	}
96907	req.Header = reqHeaders
96908	googleapi.Expand(req.URL, map[string]string{
96909		"project": c.project,
96910		"region":  c.region,
96911	})
96912	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96913}
96914
96915// Do executes the "compute.interconnectAttachments.list" call.
96916// Exactly one of *InterconnectAttachmentList or error will be non-nil.
96917// Any non-2xx status code is an error. Response headers are in either
96918// *InterconnectAttachmentList.ServerResponse.Header or (if a response
96919// was returned at all) in error.(*googleapi.Error).Header. Use
96920// googleapi.IsNotModified to check whether the returned error was
96921// because http.StatusNotModified was returned.
96922func (c *InterconnectAttachmentsListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentList, error) {
96923	gensupport.SetOptions(c.urlParams_, opts...)
96924	res, err := c.doRequest("json")
96925	if res != nil && res.StatusCode == http.StatusNotModified {
96926		if res.Body != nil {
96927			res.Body.Close()
96928		}
96929		return nil, &googleapi.Error{
96930			Code:   res.StatusCode,
96931			Header: res.Header,
96932		}
96933	}
96934	if err != nil {
96935		return nil, err
96936	}
96937	defer googleapi.CloseBody(res)
96938	if err := googleapi.CheckResponse(res); err != nil {
96939		return nil, err
96940	}
96941	ret := &InterconnectAttachmentList{
96942		ServerResponse: googleapi.ServerResponse{
96943			Header:         res.Header,
96944			HTTPStatusCode: res.StatusCode,
96945		},
96946	}
96947	target := &ret
96948	if err := gensupport.DecodeResponse(target, res); err != nil {
96949		return nil, err
96950	}
96951	return ret, nil
96952	// {
96953	//   "description": "Retrieves the list of interconnect attachments contained within the specified region.",
96954	//   "flatPath": "projects/{project}/regions/{region}/interconnectAttachments",
96955	//   "httpMethod": "GET",
96956	//   "id": "compute.interconnectAttachments.list",
96957	//   "parameterOrder": [
96958	//     "project",
96959	//     "region"
96960	//   ],
96961	//   "parameters": {
96962	//     "filter": {
96963	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
96964	//       "location": "query",
96965	//       "type": "string"
96966	//     },
96967	//     "maxResults": {
96968	//       "default": "500",
96969	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
96970	//       "format": "uint32",
96971	//       "location": "query",
96972	//       "minimum": "0",
96973	//       "type": "integer"
96974	//     },
96975	//     "orderBy": {
96976	//       "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.",
96977	//       "location": "query",
96978	//       "type": "string"
96979	//     },
96980	//     "pageToken": {
96981	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
96982	//       "location": "query",
96983	//       "type": "string"
96984	//     },
96985	//     "project": {
96986	//       "description": "Project ID for this request.",
96987	//       "location": "path",
96988	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96989	//       "required": true,
96990	//       "type": "string"
96991	//     },
96992	//     "region": {
96993	//       "description": "Name of the region for this request.",
96994	//       "location": "path",
96995	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96996	//       "required": true,
96997	//       "type": "string"
96998	//     },
96999	//     "returnPartialSuccess": {
97000	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
97001	//       "location": "query",
97002	//       "type": "boolean"
97003	//     }
97004	//   },
97005	//   "path": "projects/{project}/regions/{region}/interconnectAttachments",
97006	//   "response": {
97007	//     "$ref": "InterconnectAttachmentList"
97008	//   },
97009	//   "scopes": [
97010	//     "https://www.googleapis.com/auth/cloud-platform",
97011	//     "https://www.googleapis.com/auth/compute",
97012	//     "https://www.googleapis.com/auth/compute.readonly"
97013	//   ]
97014	// }
97015
97016}
97017
97018// Pages invokes f for each page of results.
97019// A non-nil error returned from f will halt the iteration.
97020// The provided context supersedes any context provided to the Context method.
97021func (c *InterconnectAttachmentsListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentList) error) error {
97022	c.ctx_ = ctx
97023	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
97024	for {
97025		x, err := c.Do()
97026		if err != nil {
97027			return err
97028		}
97029		if err := f(x); err != nil {
97030			return err
97031		}
97032		if x.NextPageToken == "" {
97033			return nil
97034		}
97035		c.PageToken(x.NextPageToken)
97036	}
97037}
97038
97039// method id "compute.interconnectAttachments.patch":
97040
97041type InterconnectAttachmentsPatchCall struct {
97042	s                      *Service
97043	project                string
97044	region                 string
97045	interconnectAttachment string
97046	interconnectattachment *InterconnectAttachment
97047	urlParams_             gensupport.URLParams
97048	ctx_                   context.Context
97049	header_                http.Header
97050}
97051
97052// Patch: Updates the specified interconnect attachment with the data
97053// included in the request. This method supports PATCH semantics and
97054// uses the JSON merge patch format and processing rules.
97055//
97056// - interconnectAttachment: Name of the interconnect attachment to
97057//   patch.
97058// - project: Project ID for this request.
97059// - region: Name of the region scoping this request.
97060func (r *InterconnectAttachmentsService) Patch(project string, region string, interconnectAttachment string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsPatchCall {
97061	c := &InterconnectAttachmentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97062	c.project = project
97063	c.region = region
97064	c.interconnectAttachment = interconnectAttachment
97065	c.interconnectattachment = interconnectattachment
97066	return c
97067}
97068
97069// RequestId sets the optional parameter "requestId": An optional
97070// request ID to identify requests. Specify a unique request ID so that
97071// if you must retry your request, the server will know to ignore the
97072// request if it has already been completed. For example, consider a
97073// situation where you make an initial request and the request times
97074// out. If you make the request again with the same request ID, the
97075// server can check if original operation with the same request ID was
97076// received, and if so, will ignore the second request. This prevents
97077// clients from accidentally creating duplicate commitments. The request
97078// ID must be a valid UUID with the exception that zero UUID is not
97079// supported ( 00000000-0000-0000-0000-000000000000).
97080func (c *InterconnectAttachmentsPatchCall) RequestId(requestId string) *InterconnectAttachmentsPatchCall {
97081	c.urlParams_.Set("requestId", requestId)
97082	return c
97083}
97084
97085// Fields allows partial responses to be retrieved. See
97086// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97087// for more information.
97088func (c *InterconnectAttachmentsPatchCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsPatchCall {
97089	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97090	return c
97091}
97092
97093// Context sets the context to be used in this call's Do method. Any
97094// pending HTTP request will be aborted if the provided context is
97095// canceled.
97096func (c *InterconnectAttachmentsPatchCall) Context(ctx context.Context) *InterconnectAttachmentsPatchCall {
97097	c.ctx_ = ctx
97098	return c
97099}
97100
97101// Header returns an http.Header that can be modified by the caller to
97102// add HTTP headers to the request.
97103func (c *InterconnectAttachmentsPatchCall) Header() http.Header {
97104	if c.header_ == nil {
97105		c.header_ = make(http.Header)
97106	}
97107	return c.header_
97108}
97109
97110func (c *InterconnectAttachmentsPatchCall) doRequest(alt string) (*http.Response, error) {
97111	reqHeaders := make(http.Header)
97112	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
97113	for k, v := range c.header_ {
97114		reqHeaders[k] = v
97115	}
97116	reqHeaders.Set("User-Agent", c.s.userAgent())
97117	var body io.Reader = nil
97118	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnectattachment)
97119	if err != nil {
97120		return nil, err
97121	}
97122	reqHeaders.Set("Content-Type", "application/json")
97123	c.urlParams_.Set("alt", alt)
97124	c.urlParams_.Set("prettyPrint", "false")
97125	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
97126	urls += "?" + c.urlParams_.Encode()
97127	req, err := http.NewRequest("PATCH", urls, body)
97128	if err != nil {
97129		return nil, err
97130	}
97131	req.Header = reqHeaders
97132	googleapi.Expand(req.URL, map[string]string{
97133		"project":                c.project,
97134		"region":                 c.region,
97135		"interconnectAttachment": c.interconnectAttachment,
97136	})
97137	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97138}
97139
97140// Do executes the "compute.interconnectAttachments.patch" call.
97141// Exactly one of *Operation or error will be non-nil. Any non-2xx
97142// status code is an error. Response headers are in either
97143// *Operation.ServerResponse.Header or (if a response was returned at
97144// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97145// to check whether the returned error was because
97146// http.StatusNotModified was returned.
97147func (c *InterconnectAttachmentsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97148	gensupport.SetOptions(c.urlParams_, opts...)
97149	res, err := c.doRequest("json")
97150	if res != nil && res.StatusCode == http.StatusNotModified {
97151		if res.Body != nil {
97152			res.Body.Close()
97153		}
97154		return nil, &googleapi.Error{
97155			Code:   res.StatusCode,
97156			Header: res.Header,
97157		}
97158	}
97159	if err != nil {
97160		return nil, err
97161	}
97162	defer googleapi.CloseBody(res)
97163	if err := googleapi.CheckResponse(res); err != nil {
97164		return nil, err
97165	}
97166	ret := &Operation{
97167		ServerResponse: googleapi.ServerResponse{
97168			Header:         res.Header,
97169			HTTPStatusCode: res.StatusCode,
97170		},
97171	}
97172	target := &ret
97173	if err := gensupport.DecodeResponse(target, res); err != nil {
97174		return nil, err
97175	}
97176	return ret, nil
97177	// {
97178	//   "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.",
97179	//   "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
97180	//   "httpMethod": "PATCH",
97181	//   "id": "compute.interconnectAttachments.patch",
97182	//   "parameterOrder": [
97183	//     "project",
97184	//     "region",
97185	//     "interconnectAttachment"
97186	//   ],
97187	//   "parameters": {
97188	//     "interconnectAttachment": {
97189	//       "description": "Name of the interconnect attachment to patch.",
97190	//       "location": "path",
97191	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97192	//       "required": true,
97193	//       "type": "string"
97194	//     },
97195	//     "project": {
97196	//       "description": "Project ID for this request.",
97197	//       "location": "path",
97198	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97199	//       "required": true,
97200	//       "type": "string"
97201	//     },
97202	//     "region": {
97203	//       "description": "Name of the region scoping this request.",
97204	//       "location": "path",
97205	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
97206	//       "required": true,
97207	//       "type": "string"
97208	//     },
97209	//     "requestId": {
97210	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
97211	//       "location": "query",
97212	//       "type": "string"
97213	//     }
97214	//   },
97215	//   "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
97216	//   "request": {
97217	//     "$ref": "InterconnectAttachment"
97218	//   },
97219	//   "response": {
97220	//     "$ref": "Operation"
97221	//   },
97222	//   "scopes": [
97223	//     "https://www.googleapis.com/auth/cloud-platform",
97224	//     "https://www.googleapis.com/auth/compute"
97225	//   ]
97226	// }
97227
97228}
97229
97230// method id "compute.interconnectLocations.get":
97231
97232type InterconnectLocationsGetCall struct {
97233	s                    *Service
97234	project              string
97235	interconnectLocation string
97236	urlParams_           gensupport.URLParams
97237	ifNoneMatch_         string
97238	ctx_                 context.Context
97239	header_              http.Header
97240}
97241
97242// Get: Returns the details for the specified interconnect location.
97243// Gets a list of available interconnect locations by making a list()
97244// request.
97245//
97246// - interconnectLocation: Name of the interconnect location to return.
97247// - project: Project ID for this request.
97248func (r *InterconnectLocationsService) Get(project string, interconnectLocation string) *InterconnectLocationsGetCall {
97249	c := &InterconnectLocationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97250	c.project = project
97251	c.interconnectLocation = interconnectLocation
97252	return c
97253}
97254
97255// Fields allows partial responses to be retrieved. See
97256// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97257// for more information.
97258func (c *InterconnectLocationsGetCall) Fields(s ...googleapi.Field) *InterconnectLocationsGetCall {
97259	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97260	return c
97261}
97262
97263// IfNoneMatch sets the optional parameter which makes the operation
97264// fail if the object's ETag matches the given value. This is useful for
97265// getting updates only after the object has changed since the last
97266// request. Use googleapi.IsNotModified to check whether the response
97267// error from Do is the result of In-None-Match.
97268func (c *InterconnectLocationsGetCall) IfNoneMatch(entityTag string) *InterconnectLocationsGetCall {
97269	c.ifNoneMatch_ = entityTag
97270	return c
97271}
97272
97273// Context sets the context to be used in this call's Do method. Any
97274// pending HTTP request will be aborted if the provided context is
97275// canceled.
97276func (c *InterconnectLocationsGetCall) Context(ctx context.Context) *InterconnectLocationsGetCall {
97277	c.ctx_ = ctx
97278	return c
97279}
97280
97281// Header returns an http.Header that can be modified by the caller to
97282// add HTTP headers to the request.
97283func (c *InterconnectLocationsGetCall) Header() http.Header {
97284	if c.header_ == nil {
97285		c.header_ = make(http.Header)
97286	}
97287	return c.header_
97288}
97289
97290func (c *InterconnectLocationsGetCall) doRequest(alt string) (*http.Response, error) {
97291	reqHeaders := make(http.Header)
97292	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
97293	for k, v := range c.header_ {
97294		reqHeaders[k] = v
97295	}
97296	reqHeaders.Set("User-Agent", c.s.userAgent())
97297	if c.ifNoneMatch_ != "" {
97298		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
97299	}
97300	var body io.Reader = nil
97301	c.urlParams_.Set("alt", alt)
97302	c.urlParams_.Set("prettyPrint", "false")
97303	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectLocations/{interconnectLocation}")
97304	urls += "?" + c.urlParams_.Encode()
97305	req, err := http.NewRequest("GET", urls, body)
97306	if err != nil {
97307		return nil, err
97308	}
97309	req.Header = reqHeaders
97310	googleapi.Expand(req.URL, map[string]string{
97311		"project":              c.project,
97312		"interconnectLocation": c.interconnectLocation,
97313	})
97314	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97315}
97316
97317// Do executes the "compute.interconnectLocations.get" call.
97318// Exactly one of *InterconnectLocation or error will be non-nil. Any
97319// non-2xx status code is an error. Response headers are in either
97320// *InterconnectLocation.ServerResponse.Header or (if a response was
97321// returned at all) in error.(*googleapi.Error).Header. Use
97322// googleapi.IsNotModified to check whether the returned error was
97323// because http.StatusNotModified was returned.
97324func (c *InterconnectLocationsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectLocation, error) {
97325	gensupport.SetOptions(c.urlParams_, opts...)
97326	res, err := c.doRequest("json")
97327	if res != nil && res.StatusCode == http.StatusNotModified {
97328		if res.Body != nil {
97329			res.Body.Close()
97330		}
97331		return nil, &googleapi.Error{
97332			Code:   res.StatusCode,
97333			Header: res.Header,
97334		}
97335	}
97336	if err != nil {
97337		return nil, err
97338	}
97339	defer googleapi.CloseBody(res)
97340	if err := googleapi.CheckResponse(res); err != nil {
97341		return nil, err
97342	}
97343	ret := &InterconnectLocation{
97344		ServerResponse: googleapi.ServerResponse{
97345			Header:         res.Header,
97346			HTTPStatusCode: res.StatusCode,
97347		},
97348	}
97349	target := &ret
97350	if err := gensupport.DecodeResponse(target, res); err != nil {
97351		return nil, err
97352	}
97353	return ret, nil
97354	// {
97355	//   "description": "Returns the details for the specified interconnect location. Gets a list of available interconnect locations by making a list() request.",
97356	//   "flatPath": "projects/{project}/global/interconnectLocations/{interconnectLocation}",
97357	//   "httpMethod": "GET",
97358	//   "id": "compute.interconnectLocations.get",
97359	//   "parameterOrder": [
97360	//     "project",
97361	//     "interconnectLocation"
97362	//   ],
97363	//   "parameters": {
97364	//     "interconnectLocation": {
97365	//       "description": "Name of the interconnect location to return.",
97366	//       "location": "path",
97367	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97368	//       "required": true,
97369	//       "type": "string"
97370	//     },
97371	//     "project": {
97372	//       "description": "Project ID for this request.",
97373	//       "location": "path",
97374	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97375	//       "required": true,
97376	//       "type": "string"
97377	//     }
97378	//   },
97379	//   "path": "projects/{project}/global/interconnectLocations/{interconnectLocation}",
97380	//   "response": {
97381	//     "$ref": "InterconnectLocation"
97382	//   },
97383	//   "scopes": [
97384	//     "https://www.googleapis.com/auth/cloud-platform",
97385	//     "https://www.googleapis.com/auth/compute",
97386	//     "https://www.googleapis.com/auth/compute.readonly"
97387	//   ]
97388	// }
97389
97390}
97391
97392// method id "compute.interconnectLocations.list":
97393
97394type InterconnectLocationsListCall struct {
97395	s            *Service
97396	project      string
97397	urlParams_   gensupport.URLParams
97398	ifNoneMatch_ string
97399	ctx_         context.Context
97400	header_      http.Header
97401}
97402
97403// List: Retrieves the list of interconnect locations available to the
97404// specified project.
97405//
97406// - project: Project ID for this request.
97407func (r *InterconnectLocationsService) List(project string) *InterconnectLocationsListCall {
97408	c := &InterconnectLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97409	c.project = project
97410	return c
97411}
97412
97413// Filter sets the optional parameter "filter": A filter expression that
97414// filters resources listed in the response. The expression must specify
97415// the field name, a comparison operator, and the value that you want to
97416// use for filtering. The value must be a string, a number, or a
97417// boolean. The comparison operator must be either `=`, `!=`, `>`, or
97418// `<`. For example, if you are filtering Compute Engine instances, you
97419// can exclude instances named `example-instance` by specifying `name !=
97420// example-instance`. You can also filter nested fields. For example,
97421// you could specify `scheduling.automaticRestart = false` to include
97422// instances only if they are not scheduled for automatic restarts. You
97423// can use filtering on nested fields to filter based on resource
97424// labels. To filter on multiple expressions, provide each separate
97425// expression within parentheses. For example: ```
97426// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
97427// ``` By default, each expression is an `AND` expression. However, you
97428// can include `AND` and `OR` expressions explicitly. For example: ```
97429// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
97430// AND (scheduling.automaticRestart = true) ```
97431func (c *InterconnectLocationsListCall) Filter(filter string) *InterconnectLocationsListCall {
97432	c.urlParams_.Set("filter", filter)
97433	return c
97434}
97435
97436// MaxResults sets the optional parameter "maxResults": The maximum
97437// number of results per page that should be returned. If the number of
97438// available results is larger than `maxResults`, Compute Engine returns
97439// a `nextPageToken` that can be used to get the next page of results in
97440// subsequent list requests. Acceptable values are `0` to `500`,
97441// inclusive. (Default: `500`)
97442func (c *InterconnectLocationsListCall) MaxResults(maxResults int64) *InterconnectLocationsListCall {
97443	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
97444	return c
97445}
97446
97447// OrderBy sets the optional parameter "orderBy": Sorts list results by
97448// a certain order. By default, results are returned in alphanumerical
97449// order based on the resource name. You can also sort results in
97450// descending order based on the creation timestamp using
97451// `orderBy="creationTimestamp desc". This sorts results based on the
97452// `creationTimestamp` field in reverse chronological order (newest
97453// result first). Use this to sort resources like operations so that the
97454// newest operation is returned first. Currently, only sorting by `name`
97455// or `creationTimestamp desc` is supported.
97456func (c *InterconnectLocationsListCall) OrderBy(orderBy string) *InterconnectLocationsListCall {
97457	c.urlParams_.Set("orderBy", orderBy)
97458	return c
97459}
97460
97461// PageToken sets the optional parameter "pageToken": Specifies a page
97462// token to use. Set `pageToken` to the `nextPageToken` returned by a
97463// previous list request to get the next page of results.
97464func (c *InterconnectLocationsListCall) PageToken(pageToken string) *InterconnectLocationsListCall {
97465	c.urlParams_.Set("pageToken", pageToken)
97466	return c
97467}
97468
97469// ReturnPartialSuccess sets the optional parameter
97470// "returnPartialSuccess": Opt-in for partial success behavior which
97471// provides partial results in case of failure. The default value is
97472// false.
97473func (c *InterconnectLocationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectLocationsListCall {
97474	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
97475	return c
97476}
97477
97478// Fields allows partial responses to be retrieved. See
97479// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97480// for more information.
97481func (c *InterconnectLocationsListCall) Fields(s ...googleapi.Field) *InterconnectLocationsListCall {
97482	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97483	return c
97484}
97485
97486// IfNoneMatch sets the optional parameter which makes the operation
97487// fail if the object's ETag matches the given value. This is useful for
97488// getting updates only after the object has changed since the last
97489// request. Use googleapi.IsNotModified to check whether the response
97490// error from Do is the result of In-None-Match.
97491func (c *InterconnectLocationsListCall) IfNoneMatch(entityTag string) *InterconnectLocationsListCall {
97492	c.ifNoneMatch_ = entityTag
97493	return c
97494}
97495
97496// Context sets the context to be used in this call's Do method. Any
97497// pending HTTP request will be aborted if the provided context is
97498// canceled.
97499func (c *InterconnectLocationsListCall) Context(ctx context.Context) *InterconnectLocationsListCall {
97500	c.ctx_ = ctx
97501	return c
97502}
97503
97504// Header returns an http.Header that can be modified by the caller to
97505// add HTTP headers to the request.
97506func (c *InterconnectLocationsListCall) Header() http.Header {
97507	if c.header_ == nil {
97508		c.header_ = make(http.Header)
97509	}
97510	return c.header_
97511}
97512
97513func (c *InterconnectLocationsListCall) doRequest(alt string) (*http.Response, error) {
97514	reqHeaders := make(http.Header)
97515	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
97516	for k, v := range c.header_ {
97517		reqHeaders[k] = v
97518	}
97519	reqHeaders.Set("User-Agent", c.s.userAgent())
97520	if c.ifNoneMatch_ != "" {
97521		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
97522	}
97523	var body io.Reader = nil
97524	c.urlParams_.Set("alt", alt)
97525	c.urlParams_.Set("prettyPrint", "false")
97526	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectLocations")
97527	urls += "?" + c.urlParams_.Encode()
97528	req, err := http.NewRequest("GET", urls, body)
97529	if err != nil {
97530		return nil, err
97531	}
97532	req.Header = reqHeaders
97533	googleapi.Expand(req.URL, map[string]string{
97534		"project": c.project,
97535	})
97536	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97537}
97538
97539// Do executes the "compute.interconnectLocations.list" call.
97540// Exactly one of *InterconnectLocationList or error will be non-nil.
97541// Any non-2xx status code is an error. Response headers are in either
97542// *InterconnectLocationList.ServerResponse.Header or (if a response was
97543// returned at all) in error.(*googleapi.Error).Header. Use
97544// googleapi.IsNotModified to check whether the returned error was
97545// because http.StatusNotModified was returned.
97546func (c *InterconnectLocationsListCall) Do(opts ...googleapi.CallOption) (*InterconnectLocationList, error) {
97547	gensupport.SetOptions(c.urlParams_, opts...)
97548	res, err := c.doRequest("json")
97549	if res != nil && res.StatusCode == http.StatusNotModified {
97550		if res.Body != nil {
97551			res.Body.Close()
97552		}
97553		return nil, &googleapi.Error{
97554			Code:   res.StatusCode,
97555			Header: res.Header,
97556		}
97557	}
97558	if err != nil {
97559		return nil, err
97560	}
97561	defer googleapi.CloseBody(res)
97562	if err := googleapi.CheckResponse(res); err != nil {
97563		return nil, err
97564	}
97565	ret := &InterconnectLocationList{
97566		ServerResponse: googleapi.ServerResponse{
97567			Header:         res.Header,
97568			HTTPStatusCode: res.StatusCode,
97569		},
97570	}
97571	target := &ret
97572	if err := gensupport.DecodeResponse(target, res); err != nil {
97573		return nil, err
97574	}
97575	return ret, nil
97576	// {
97577	//   "description": "Retrieves the list of interconnect locations available to the specified project.",
97578	//   "flatPath": "projects/{project}/global/interconnectLocations",
97579	//   "httpMethod": "GET",
97580	//   "id": "compute.interconnectLocations.list",
97581	//   "parameterOrder": [
97582	//     "project"
97583	//   ],
97584	//   "parameters": {
97585	//     "filter": {
97586	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
97587	//       "location": "query",
97588	//       "type": "string"
97589	//     },
97590	//     "maxResults": {
97591	//       "default": "500",
97592	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
97593	//       "format": "uint32",
97594	//       "location": "query",
97595	//       "minimum": "0",
97596	//       "type": "integer"
97597	//     },
97598	//     "orderBy": {
97599	//       "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.",
97600	//       "location": "query",
97601	//       "type": "string"
97602	//     },
97603	//     "pageToken": {
97604	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
97605	//       "location": "query",
97606	//       "type": "string"
97607	//     },
97608	//     "project": {
97609	//       "description": "Project ID for this request.",
97610	//       "location": "path",
97611	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97612	//       "required": true,
97613	//       "type": "string"
97614	//     },
97615	//     "returnPartialSuccess": {
97616	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
97617	//       "location": "query",
97618	//       "type": "boolean"
97619	//     }
97620	//   },
97621	//   "path": "projects/{project}/global/interconnectLocations",
97622	//   "response": {
97623	//     "$ref": "InterconnectLocationList"
97624	//   },
97625	//   "scopes": [
97626	//     "https://www.googleapis.com/auth/cloud-platform",
97627	//     "https://www.googleapis.com/auth/compute",
97628	//     "https://www.googleapis.com/auth/compute.readonly"
97629	//   ]
97630	// }
97631
97632}
97633
97634// Pages invokes f for each page of results.
97635// A non-nil error returned from f will halt the iteration.
97636// The provided context supersedes any context provided to the Context method.
97637func (c *InterconnectLocationsListCall) Pages(ctx context.Context, f func(*InterconnectLocationList) error) error {
97638	c.ctx_ = ctx
97639	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
97640	for {
97641		x, err := c.Do()
97642		if err != nil {
97643			return err
97644		}
97645		if err := f(x); err != nil {
97646			return err
97647		}
97648		if x.NextPageToken == "" {
97649			return nil
97650		}
97651		c.PageToken(x.NextPageToken)
97652	}
97653}
97654
97655// method id "compute.interconnects.delete":
97656
97657type InterconnectsDeleteCall struct {
97658	s            *Service
97659	project      string
97660	interconnect string
97661	urlParams_   gensupport.URLParams
97662	ctx_         context.Context
97663	header_      http.Header
97664}
97665
97666// Delete: Deletes the specified interconnect.
97667//
97668// - interconnect: Name of the interconnect to delete.
97669// - project: Project ID for this request.
97670func (r *InterconnectsService) Delete(project string, interconnect string) *InterconnectsDeleteCall {
97671	c := &InterconnectsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97672	c.project = project
97673	c.interconnect = interconnect
97674	return c
97675}
97676
97677// RequestId sets the optional parameter "requestId": An optional
97678// request ID to identify requests. Specify a unique request ID so that
97679// if you must retry your request, the server will know to ignore the
97680// request if it has already been completed. For example, consider a
97681// situation where you make an initial request and the request times
97682// out. If you make the request again with the same request ID, the
97683// server can check if original operation with the same request ID was
97684// received, and if so, will ignore the second request. This prevents
97685// clients from accidentally creating duplicate commitments. The request
97686// ID must be a valid UUID with the exception that zero UUID is not
97687// supported ( 00000000-0000-0000-0000-000000000000).
97688func (c *InterconnectsDeleteCall) RequestId(requestId string) *InterconnectsDeleteCall {
97689	c.urlParams_.Set("requestId", requestId)
97690	return c
97691}
97692
97693// Fields allows partial responses to be retrieved. See
97694// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97695// for more information.
97696func (c *InterconnectsDeleteCall) Fields(s ...googleapi.Field) *InterconnectsDeleteCall {
97697	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97698	return c
97699}
97700
97701// Context sets the context to be used in this call's Do method. Any
97702// pending HTTP request will be aborted if the provided context is
97703// canceled.
97704func (c *InterconnectsDeleteCall) Context(ctx context.Context) *InterconnectsDeleteCall {
97705	c.ctx_ = ctx
97706	return c
97707}
97708
97709// Header returns an http.Header that can be modified by the caller to
97710// add HTTP headers to the request.
97711func (c *InterconnectsDeleteCall) Header() http.Header {
97712	if c.header_ == nil {
97713		c.header_ = make(http.Header)
97714	}
97715	return c.header_
97716}
97717
97718func (c *InterconnectsDeleteCall) doRequest(alt string) (*http.Response, error) {
97719	reqHeaders := make(http.Header)
97720	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
97721	for k, v := range c.header_ {
97722		reqHeaders[k] = v
97723	}
97724	reqHeaders.Set("User-Agent", c.s.userAgent())
97725	var body io.Reader = nil
97726	c.urlParams_.Set("alt", alt)
97727	c.urlParams_.Set("prettyPrint", "false")
97728	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}")
97729	urls += "?" + c.urlParams_.Encode()
97730	req, err := http.NewRequest("DELETE", urls, body)
97731	if err != nil {
97732		return nil, err
97733	}
97734	req.Header = reqHeaders
97735	googleapi.Expand(req.URL, map[string]string{
97736		"project":      c.project,
97737		"interconnect": c.interconnect,
97738	})
97739	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97740}
97741
97742// Do executes the "compute.interconnects.delete" call.
97743// Exactly one of *Operation or error will be non-nil. Any non-2xx
97744// status code is an error. Response headers are in either
97745// *Operation.ServerResponse.Header or (if a response was returned at
97746// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97747// to check whether the returned error was because
97748// http.StatusNotModified was returned.
97749func (c *InterconnectsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97750	gensupport.SetOptions(c.urlParams_, opts...)
97751	res, err := c.doRequest("json")
97752	if res != nil && res.StatusCode == http.StatusNotModified {
97753		if res.Body != nil {
97754			res.Body.Close()
97755		}
97756		return nil, &googleapi.Error{
97757			Code:   res.StatusCode,
97758			Header: res.Header,
97759		}
97760	}
97761	if err != nil {
97762		return nil, err
97763	}
97764	defer googleapi.CloseBody(res)
97765	if err := googleapi.CheckResponse(res); err != nil {
97766		return nil, err
97767	}
97768	ret := &Operation{
97769		ServerResponse: googleapi.ServerResponse{
97770			Header:         res.Header,
97771			HTTPStatusCode: res.StatusCode,
97772		},
97773	}
97774	target := &ret
97775	if err := gensupport.DecodeResponse(target, res); err != nil {
97776		return nil, err
97777	}
97778	return ret, nil
97779	// {
97780	//   "description": "Deletes the specified interconnect.",
97781	//   "flatPath": "projects/{project}/global/interconnects/{interconnect}",
97782	//   "httpMethod": "DELETE",
97783	//   "id": "compute.interconnects.delete",
97784	//   "parameterOrder": [
97785	//     "project",
97786	//     "interconnect"
97787	//   ],
97788	//   "parameters": {
97789	//     "interconnect": {
97790	//       "description": "Name of the interconnect to delete.",
97791	//       "location": "path",
97792	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97793	//       "required": true,
97794	//       "type": "string"
97795	//     },
97796	//     "project": {
97797	//       "description": "Project ID for this request.",
97798	//       "location": "path",
97799	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97800	//       "required": true,
97801	//       "type": "string"
97802	//     },
97803	//     "requestId": {
97804	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
97805	//       "location": "query",
97806	//       "type": "string"
97807	//     }
97808	//   },
97809	//   "path": "projects/{project}/global/interconnects/{interconnect}",
97810	//   "response": {
97811	//     "$ref": "Operation"
97812	//   },
97813	//   "scopes": [
97814	//     "https://www.googleapis.com/auth/cloud-platform",
97815	//     "https://www.googleapis.com/auth/compute"
97816	//   ]
97817	// }
97818
97819}
97820
97821// method id "compute.interconnects.get":
97822
97823type InterconnectsGetCall struct {
97824	s            *Service
97825	project      string
97826	interconnect string
97827	urlParams_   gensupport.URLParams
97828	ifNoneMatch_ string
97829	ctx_         context.Context
97830	header_      http.Header
97831}
97832
97833// Get: Returns the specified interconnect. Get a list of available
97834// interconnects by making a list() request.
97835//
97836// - interconnect: Name of the interconnect to return.
97837// - project: Project ID for this request.
97838func (r *InterconnectsService) Get(project string, interconnect string) *InterconnectsGetCall {
97839	c := &InterconnectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97840	c.project = project
97841	c.interconnect = interconnect
97842	return c
97843}
97844
97845// Fields allows partial responses to be retrieved. See
97846// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97847// for more information.
97848func (c *InterconnectsGetCall) Fields(s ...googleapi.Field) *InterconnectsGetCall {
97849	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97850	return c
97851}
97852
97853// IfNoneMatch sets the optional parameter which makes the operation
97854// fail if the object's ETag matches the given value. This is useful for
97855// getting updates only after the object has changed since the last
97856// request. Use googleapi.IsNotModified to check whether the response
97857// error from Do is the result of In-None-Match.
97858func (c *InterconnectsGetCall) IfNoneMatch(entityTag string) *InterconnectsGetCall {
97859	c.ifNoneMatch_ = entityTag
97860	return c
97861}
97862
97863// Context sets the context to be used in this call's Do method. Any
97864// pending HTTP request will be aborted if the provided context is
97865// canceled.
97866func (c *InterconnectsGetCall) Context(ctx context.Context) *InterconnectsGetCall {
97867	c.ctx_ = ctx
97868	return c
97869}
97870
97871// Header returns an http.Header that can be modified by the caller to
97872// add HTTP headers to the request.
97873func (c *InterconnectsGetCall) Header() http.Header {
97874	if c.header_ == nil {
97875		c.header_ = make(http.Header)
97876	}
97877	return c.header_
97878}
97879
97880func (c *InterconnectsGetCall) doRequest(alt string) (*http.Response, error) {
97881	reqHeaders := make(http.Header)
97882	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
97883	for k, v := range c.header_ {
97884		reqHeaders[k] = v
97885	}
97886	reqHeaders.Set("User-Agent", c.s.userAgent())
97887	if c.ifNoneMatch_ != "" {
97888		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
97889	}
97890	var body io.Reader = nil
97891	c.urlParams_.Set("alt", alt)
97892	c.urlParams_.Set("prettyPrint", "false")
97893	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}")
97894	urls += "?" + c.urlParams_.Encode()
97895	req, err := http.NewRequest("GET", urls, body)
97896	if err != nil {
97897		return nil, err
97898	}
97899	req.Header = reqHeaders
97900	googleapi.Expand(req.URL, map[string]string{
97901		"project":      c.project,
97902		"interconnect": c.interconnect,
97903	})
97904	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97905}
97906
97907// Do executes the "compute.interconnects.get" call.
97908// Exactly one of *Interconnect or error will be non-nil. Any non-2xx
97909// status code is an error. Response headers are in either
97910// *Interconnect.ServerResponse.Header or (if a response was returned at
97911// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97912// to check whether the returned error was because
97913// http.StatusNotModified was returned.
97914func (c *InterconnectsGetCall) Do(opts ...googleapi.CallOption) (*Interconnect, error) {
97915	gensupport.SetOptions(c.urlParams_, opts...)
97916	res, err := c.doRequest("json")
97917	if res != nil && res.StatusCode == http.StatusNotModified {
97918		if res.Body != nil {
97919			res.Body.Close()
97920		}
97921		return nil, &googleapi.Error{
97922			Code:   res.StatusCode,
97923			Header: res.Header,
97924		}
97925	}
97926	if err != nil {
97927		return nil, err
97928	}
97929	defer googleapi.CloseBody(res)
97930	if err := googleapi.CheckResponse(res); err != nil {
97931		return nil, err
97932	}
97933	ret := &Interconnect{
97934		ServerResponse: googleapi.ServerResponse{
97935			Header:         res.Header,
97936			HTTPStatusCode: res.StatusCode,
97937		},
97938	}
97939	target := &ret
97940	if err := gensupport.DecodeResponse(target, res); err != nil {
97941		return nil, err
97942	}
97943	return ret, nil
97944	// {
97945	//   "description": "Returns the specified interconnect. Get a list of available interconnects by making a list() request.",
97946	//   "flatPath": "projects/{project}/global/interconnects/{interconnect}",
97947	//   "httpMethod": "GET",
97948	//   "id": "compute.interconnects.get",
97949	//   "parameterOrder": [
97950	//     "project",
97951	//     "interconnect"
97952	//   ],
97953	//   "parameters": {
97954	//     "interconnect": {
97955	//       "description": "Name of the interconnect to return.",
97956	//       "location": "path",
97957	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97958	//       "required": true,
97959	//       "type": "string"
97960	//     },
97961	//     "project": {
97962	//       "description": "Project ID for this request.",
97963	//       "location": "path",
97964	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97965	//       "required": true,
97966	//       "type": "string"
97967	//     }
97968	//   },
97969	//   "path": "projects/{project}/global/interconnects/{interconnect}",
97970	//   "response": {
97971	//     "$ref": "Interconnect"
97972	//   },
97973	//   "scopes": [
97974	//     "https://www.googleapis.com/auth/cloud-platform",
97975	//     "https://www.googleapis.com/auth/compute",
97976	//     "https://www.googleapis.com/auth/compute.readonly"
97977	//   ]
97978	// }
97979
97980}
97981
97982// method id "compute.interconnects.getDiagnostics":
97983
97984type InterconnectsGetDiagnosticsCall struct {
97985	s            *Service
97986	project      string
97987	interconnect string
97988	urlParams_   gensupport.URLParams
97989	ifNoneMatch_ string
97990	ctx_         context.Context
97991	header_      http.Header
97992}
97993
97994// GetDiagnostics: Returns the interconnectDiagnostics for the specified
97995// interconnect.
97996//
97997// - interconnect: Name of the interconnect resource to query.
97998// - project: Project ID for this request.
97999func (r *InterconnectsService) GetDiagnostics(project string, interconnect string) *InterconnectsGetDiagnosticsCall {
98000	c := &InterconnectsGetDiagnosticsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98001	c.project = project
98002	c.interconnect = interconnect
98003	return c
98004}
98005
98006// Fields allows partial responses to be retrieved. See
98007// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98008// for more information.
98009func (c *InterconnectsGetDiagnosticsCall) Fields(s ...googleapi.Field) *InterconnectsGetDiagnosticsCall {
98010	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98011	return c
98012}
98013
98014// IfNoneMatch sets the optional parameter which makes the operation
98015// fail if the object's ETag matches the given value. This is useful for
98016// getting updates only after the object has changed since the last
98017// request. Use googleapi.IsNotModified to check whether the response
98018// error from Do is the result of In-None-Match.
98019func (c *InterconnectsGetDiagnosticsCall) IfNoneMatch(entityTag string) *InterconnectsGetDiagnosticsCall {
98020	c.ifNoneMatch_ = entityTag
98021	return c
98022}
98023
98024// Context sets the context to be used in this call's Do method. Any
98025// pending HTTP request will be aborted if the provided context is
98026// canceled.
98027func (c *InterconnectsGetDiagnosticsCall) Context(ctx context.Context) *InterconnectsGetDiagnosticsCall {
98028	c.ctx_ = ctx
98029	return c
98030}
98031
98032// Header returns an http.Header that can be modified by the caller to
98033// add HTTP headers to the request.
98034func (c *InterconnectsGetDiagnosticsCall) Header() http.Header {
98035	if c.header_ == nil {
98036		c.header_ = make(http.Header)
98037	}
98038	return c.header_
98039}
98040
98041func (c *InterconnectsGetDiagnosticsCall) doRequest(alt string) (*http.Response, error) {
98042	reqHeaders := make(http.Header)
98043	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
98044	for k, v := range c.header_ {
98045		reqHeaders[k] = v
98046	}
98047	reqHeaders.Set("User-Agent", c.s.userAgent())
98048	if c.ifNoneMatch_ != "" {
98049		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
98050	}
98051	var body io.Reader = nil
98052	c.urlParams_.Set("alt", alt)
98053	c.urlParams_.Set("prettyPrint", "false")
98054	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}/getDiagnostics")
98055	urls += "?" + c.urlParams_.Encode()
98056	req, err := http.NewRequest("GET", urls, body)
98057	if err != nil {
98058		return nil, err
98059	}
98060	req.Header = reqHeaders
98061	googleapi.Expand(req.URL, map[string]string{
98062		"project":      c.project,
98063		"interconnect": c.interconnect,
98064	})
98065	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98066}
98067
98068// Do executes the "compute.interconnects.getDiagnostics" call.
98069// Exactly one of *InterconnectsGetDiagnosticsResponse or error will be
98070// non-nil. Any non-2xx status code is an error. Response headers are in
98071// either *InterconnectsGetDiagnosticsResponse.ServerResponse.Header or
98072// (if a response was returned at all) in
98073// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
98074// whether the returned error was because http.StatusNotModified was
98075// returned.
98076func (c *InterconnectsGetDiagnosticsCall) Do(opts ...googleapi.CallOption) (*InterconnectsGetDiagnosticsResponse, error) {
98077	gensupport.SetOptions(c.urlParams_, opts...)
98078	res, err := c.doRequest("json")
98079	if res != nil && res.StatusCode == http.StatusNotModified {
98080		if res.Body != nil {
98081			res.Body.Close()
98082		}
98083		return nil, &googleapi.Error{
98084			Code:   res.StatusCode,
98085			Header: res.Header,
98086		}
98087	}
98088	if err != nil {
98089		return nil, err
98090	}
98091	defer googleapi.CloseBody(res)
98092	if err := googleapi.CheckResponse(res); err != nil {
98093		return nil, err
98094	}
98095	ret := &InterconnectsGetDiagnosticsResponse{
98096		ServerResponse: googleapi.ServerResponse{
98097			Header:         res.Header,
98098			HTTPStatusCode: res.StatusCode,
98099		},
98100	}
98101	target := &ret
98102	if err := gensupport.DecodeResponse(target, res); err != nil {
98103		return nil, err
98104	}
98105	return ret, nil
98106	// {
98107	//   "description": "Returns the interconnectDiagnostics for the specified interconnect.",
98108	//   "flatPath": "projects/{project}/global/interconnects/{interconnect}/getDiagnostics",
98109	//   "httpMethod": "GET",
98110	//   "id": "compute.interconnects.getDiagnostics",
98111	//   "parameterOrder": [
98112	//     "project",
98113	//     "interconnect"
98114	//   ],
98115	//   "parameters": {
98116	//     "interconnect": {
98117	//       "description": "Name of the interconnect resource to query.",
98118	//       "location": "path",
98119	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98120	//       "required": true,
98121	//       "type": "string"
98122	//     },
98123	//     "project": {
98124	//       "description": "Project ID for this request.",
98125	//       "location": "path",
98126	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98127	//       "required": true,
98128	//       "type": "string"
98129	//     }
98130	//   },
98131	//   "path": "projects/{project}/global/interconnects/{interconnect}/getDiagnostics",
98132	//   "response": {
98133	//     "$ref": "InterconnectsGetDiagnosticsResponse"
98134	//   },
98135	//   "scopes": [
98136	//     "https://www.googleapis.com/auth/cloud-platform",
98137	//     "https://www.googleapis.com/auth/compute",
98138	//     "https://www.googleapis.com/auth/compute.readonly"
98139	//   ]
98140	// }
98141
98142}
98143
98144// method id "compute.interconnects.insert":
98145
98146type InterconnectsInsertCall struct {
98147	s            *Service
98148	project      string
98149	interconnect *Interconnect
98150	urlParams_   gensupport.URLParams
98151	ctx_         context.Context
98152	header_      http.Header
98153}
98154
98155// Insert: Creates a Interconnect in the specified project using the
98156// data included in the request.
98157//
98158// - project: Project ID for this request.
98159func (r *InterconnectsService) Insert(project string, interconnect *Interconnect) *InterconnectsInsertCall {
98160	c := &InterconnectsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98161	c.project = project
98162	c.interconnect = interconnect
98163	return c
98164}
98165
98166// RequestId sets the optional parameter "requestId": An optional
98167// request ID to identify requests. Specify a unique request ID so that
98168// if you must retry your request, the server will know to ignore the
98169// request if it has already been completed. For example, consider a
98170// situation where you make an initial request and the request times
98171// out. If you make the request again with the same request ID, the
98172// server can check if original operation with the same request ID was
98173// received, and if so, will ignore the second request. This prevents
98174// clients from accidentally creating duplicate commitments. The request
98175// ID must be a valid UUID with the exception that zero UUID is not
98176// supported ( 00000000-0000-0000-0000-000000000000).
98177func (c *InterconnectsInsertCall) RequestId(requestId string) *InterconnectsInsertCall {
98178	c.urlParams_.Set("requestId", requestId)
98179	return c
98180}
98181
98182// Fields allows partial responses to be retrieved. See
98183// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98184// for more information.
98185func (c *InterconnectsInsertCall) Fields(s ...googleapi.Field) *InterconnectsInsertCall {
98186	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98187	return c
98188}
98189
98190// Context sets the context to be used in this call's Do method. Any
98191// pending HTTP request will be aborted if the provided context is
98192// canceled.
98193func (c *InterconnectsInsertCall) Context(ctx context.Context) *InterconnectsInsertCall {
98194	c.ctx_ = ctx
98195	return c
98196}
98197
98198// Header returns an http.Header that can be modified by the caller to
98199// add HTTP headers to the request.
98200func (c *InterconnectsInsertCall) Header() http.Header {
98201	if c.header_ == nil {
98202		c.header_ = make(http.Header)
98203	}
98204	return c.header_
98205}
98206
98207func (c *InterconnectsInsertCall) doRequest(alt string) (*http.Response, error) {
98208	reqHeaders := make(http.Header)
98209	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
98210	for k, v := range c.header_ {
98211		reqHeaders[k] = v
98212	}
98213	reqHeaders.Set("User-Agent", c.s.userAgent())
98214	var body io.Reader = nil
98215	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect)
98216	if err != nil {
98217		return nil, err
98218	}
98219	reqHeaders.Set("Content-Type", "application/json")
98220	c.urlParams_.Set("alt", alt)
98221	c.urlParams_.Set("prettyPrint", "false")
98222	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects")
98223	urls += "?" + c.urlParams_.Encode()
98224	req, err := http.NewRequest("POST", urls, body)
98225	if err != nil {
98226		return nil, err
98227	}
98228	req.Header = reqHeaders
98229	googleapi.Expand(req.URL, map[string]string{
98230		"project": c.project,
98231	})
98232	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98233}
98234
98235// Do executes the "compute.interconnects.insert" call.
98236// Exactly one of *Operation or error will be non-nil. Any non-2xx
98237// status code is an error. Response headers are in either
98238// *Operation.ServerResponse.Header or (if a response was returned at
98239// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98240// to check whether the returned error was because
98241// http.StatusNotModified was returned.
98242func (c *InterconnectsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98243	gensupport.SetOptions(c.urlParams_, opts...)
98244	res, err := c.doRequest("json")
98245	if res != nil && res.StatusCode == http.StatusNotModified {
98246		if res.Body != nil {
98247			res.Body.Close()
98248		}
98249		return nil, &googleapi.Error{
98250			Code:   res.StatusCode,
98251			Header: res.Header,
98252		}
98253	}
98254	if err != nil {
98255		return nil, err
98256	}
98257	defer googleapi.CloseBody(res)
98258	if err := googleapi.CheckResponse(res); err != nil {
98259		return nil, err
98260	}
98261	ret := &Operation{
98262		ServerResponse: googleapi.ServerResponse{
98263			Header:         res.Header,
98264			HTTPStatusCode: res.StatusCode,
98265		},
98266	}
98267	target := &ret
98268	if err := gensupport.DecodeResponse(target, res); err != nil {
98269		return nil, err
98270	}
98271	return ret, nil
98272	// {
98273	//   "description": "Creates a Interconnect in the specified project using the data included in the request.",
98274	//   "flatPath": "projects/{project}/global/interconnects",
98275	//   "httpMethod": "POST",
98276	//   "id": "compute.interconnects.insert",
98277	//   "parameterOrder": [
98278	//     "project"
98279	//   ],
98280	//   "parameters": {
98281	//     "project": {
98282	//       "description": "Project ID for this request.",
98283	//       "location": "path",
98284	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98285	//       "required": true,
98286	//       "type": "string"
98287	//     },
98288	//     "requestId": {
98289	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
98290	//       "location": "query",
98291	//       "type": "string"
98292	//     }
98293	//   },
98294	//   "path": "projects/{project}/global/interconnects",
98295	//   "request": {
98296	//     "$ref": "Interconnect"
98297	//   },
98298	//   "response": {
98299	//     "$ref": "Operation"
98300	//   },
98301	//   "scopes": [
98302	//     "https://www.googleapis.com/auth/cloud-platform",
98303	//     "https://www.googleapis.com/auth/compute"
98304	//   ]
98305	// }
98306
98307}
98308
98309// method id "compute.interconnects.list":
98310
98311type InterconnectsListCall struct {
98312	s            *Service
98313	project      string
98314	urlParams_   gensupport.URLParams
98315	ifNoneMatch_ string
98316	ctx_         context.Context
98317	header_      http.Header
98318}
98319
98320// List: Retrieves the list of interconnect available to the specified
98321// project.
98322//
98323// - project: Project ID for this request.
98324func (r *InterconnectsService) List(project string) *InterconnectsListCall {
98325	c := &InterconnectsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98326	c.project = project
98327	return c
98328}
98329
98330// Filter sets the optional parameter "filter": A filter expression that
98331// filters resources listed in the response. The expression must specify
98332// the field name, a comparison operator, and the value that you want to
98333// use for filtering. The value must be a string, a number, or a
98334// boolean. The comparison operator must be either `=`, `!=`, `>`, or
98335// `<`. For example, if you are filtering Compute Engine instances, you
98336// can exclude instances named `example-instance` by specifying `name !=
98337// example-instance`. You can also filter nested fields. For example,
98338// you could specify `scheduling.automaticRestart = false` to include
98339// instances only if they are not scheduled for automatic restarts. You
98340// can use filtering on nested fields to filter based on resource
98341// labels. To filter on multiple expressions, provide each separate
98342// expression within parentheses. For example: ```
98343// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
98344// ``` By default, each expression is an `AND` expression. However, you
98345// can include `AND` and `OR` expressions explicitly. For example: ```
98346// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
98347// AND (scheduling.automaticRestart = true) ```
98348func (c *InterconnectsListCall) Filter(filter string) *InterconnectsListCall {
98349	c.urlParams_.Set("filter", filter)
98350	return c
98351}
98352
98353// MaxResults sets the optional parameter "maxResults": The maximum
98354// number of results per page that should be returned. If the number of
98355// available results is larger than `maxResults`, Compute Engine returns
98356// a `nextPageToken` that can be used to get the next page of results in
98357// subsequent list requests. Acceptable values are `0` to `500`,
98358// inclusive. (Default: `500`)
98359func (c *InterconnectsListCall) MaxResults(maxResults int64) *InterconnectsListCall {
98360	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
98361	return c
98362}
98363
98364// OrderBy sets the optional parameter "orderBy": Sorts list results by
98365// a certain order. By default, results are returned in alphanumerical
98366// order based on the resource name. You can also sort results in
98367// descending order based on the creation timestamp using
98368// `orderBy="creationTimestamp desc". This sorts results based on the
98369// `creationTimestamp` field in reverse chronological order (newest
98370// result first). Use this to sort resources like operations so that the
98371// newest operation is returned first. Currently, only sorting by `name`
98372// or `creationTimestamp desc` is supported.
98373func (c *InterconnectsListCall) OrderBy(orderBy string) *InterconnectsListCall {
98374	c.urlParams_.Set("orderBy", orderBy)
98375	return c
98376}
98377
98378// PageToken sets the optional parameter "pageToken": Specifies a page
98379// token to use. Set `pageToken` to the `nextPageToken` returned by a
98380// previous list request to get the next page of results.
98381func (c *InterconnectsListCall) PageToken(pageToken string) *InterconnectsListCall {
98382	c.urlParams_.Set("pageToken", pageToken)
98383	return c
98384}
98385
98386// ReturnPartialSuccess sets the optional parameter
98387// "returnPartialSuccess": Opt-in for partial success behavior which
98388// provides partial results in case of failure. The default value is
98389// false.
98390func (c *InterconnectsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectsListCall {
98391	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
98392	return c
98393}
98394
98395// Fields allows partial responses to be retrieved. See
98396// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98397// for more information.
98398func (c *InterconnectsListCall) Fields(s ...googleapi.Field) *InterconnectsListCall {
98399	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98400	return c
98401}
98402
98403// IfNoneMatch sets the optional parameter which makes the operation
98404// fail if the object's ETag matches the given value. This is useful for
98405// getting updates only after the object has changed since the last
98406// request. Use googleapi.IsNotModified to check whether the response
98407// error from Do is the result of In-None-Match.
98408func (c *InterconnectsListCall) IfNoneMatch(entityTag string) *InterconnectsListCall {
98409	c.ifNoneMatch_ = entityTag
98410	return c
98411}
98412
98413// Context sets the context to be used in this call's Do method. Any
98414// pending HTTP request will be aborted if the provided context is
98415// canceled.
98416func (c *InterconnectsListCall) Context(ctx context.Context) *InterconnectsListCall {
98417	c.ctx_ = ctx
98418	return c
98419}
98420
98421// Header returns an http.Header that can be modified by the caller to
98422// add HTTP headers to the request.
98423func (c *InterconnectsListCall) Header() http.Header {
98424	if c.header_ == nil {
98425		c.header_ = make(http.Header)
98426	}
98427	return c.header_
98428}
98429
98430func (c *InterconnectsListCall) doRequest(alt string) (*http.Response, error) {
98431	reqHeaders := make(http.Header)
98432	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
98433	for k, v := range c.header_ {
98434		reqHeaders[k] = v
98435	}
98436	reqHeaders.Set("User-Agent", c.s.userAgent())
98437	if c.ifNoneMatch_ != "" {
98438		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
98439	}
98440	var body io.Reader = nil
98441	c.urlParams_.Set("alt", alt)
98442	c.urlParams_.Set("prettyPrint", "false")
98443	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects")
98444	urls += "?" + c.urlParams_.Encode()
98445	req, err := http.NewRequest("GET", urls, body)
98446	if err != nil {
98447		return nil, err
98448	}
98449	req.Header = reqHeaders
98450	googleapi.Expand(req.URL, map[string]string{
98451		"project": c.project,
98452	})
98453	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98454}
98455
98456// Do executes the "compute.interconnects.list" call.
98457// Exactly one of *InterconnectList or error will be non-nil. Any
98458// non-2xx status code is an error. Response headers are in either
98459// *InterconnectList.ServerResponse.Header or (if a response was
98460// returned at all) in error.(*googleapi.Error).Header. Use
98461// googleapi.IsNotModified to check whether the returned error was
98462// because http.StatusNotModified was returned.
98463func (c *InterconnectsListCall) Do(opts ...googleapi.CallOption) (*InterconnectList, error) {
98464	gensupport.SetOptions(c.urlParams_, opts...)
98465	res, err := c.doRequest("json")
98466	if res != nil && res.StatusCode == http.StatusNotModified {
98467		if res.Body != nil {
98468			res.Body.Close()
98469		}
98470		return nil, &googleapi.Error{
98471			Code:   res.StatusCode,
98472			Header: res.Header,
98473		}
98474	}
98475	if err != nil {
98476		return nil, err
98477	}
98478	defer googleapi.CloseBody(res)
98479	if err := googleapi.CheckResponse(res); err != nil {
98480		return nil, err
98481	}
98482	ret := &InterconnectList{
98483		ServerResponse: googleapi.ServerResponse{
98484			Header:         res.Header,
98485			HTTPStatusCode: res.StatusCode,
98486		},
98487	}
98488	target := &ret
98489	if err := gensupport.DecodeResponse(target, res); err != nil {
98490		return nil, err
98491	}
98492	return ret, nil
98493	// {
98494	//   "description": "Retrieves the list of interconnect available to the specified project.",
98495	//   "flatPath": "projects/{project}/global/interconnects",
98496	//   "httpMethod": "GET",
98497	//   "id": "compute.interconnects.list",
98498	//   "parameterOrder": [
98499	//     "project"
98500	//   ],
98501	//   "parameters": {
98502	//     "filter": {
98503	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
98504	//       "location": "query",
98505	//       "type": "string"
98506	//     },
98507	//     "maxResults": {
98508	//       "default": "500",
98509	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
98510	//       "format": "uint32",
98511	//       "location": "query",
98512	//       "minimum": "0",
98513	//       "type": "integer"
98514	//     },
98515	//     "orderBy": {
98516	//       "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.",
98517	//       "location": "query",
98518	//       "type": "string"
98519	//     },
98520	//     "pageToken": {
98521	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
98522	//       "location": "query",
98523	//       "type": "string"
98524	//     },
98525	//     "project": {
98526	//       "description": "Project ID for this request.",
98527	//       "location": "path",
98528	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98529	//       "required": true,
98530	//       "type": "string"
98531	//     },
98532	//     "returnPartialSuccess": {
98533	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
98534	//       "location": "query",
98535	//       "type": "boolean"
98536	//     }
98537	//   },
98538	//   "path": "projects/{project}/global/interconnects",
98539	//   "response": {
98540	//     "$ref": "InterconnectList"
98541	//   },
98542	//   "scopes": [
98543	//     "https://www.googleapis.com/auth/cloud-platform",
98544	//     "https://www.googleapis.com/auth/compute",
98545	//     "https://www.googleapis.com/auth/compute.readonly"
98546	//   ]
98547	// }
98548
98549}
98550
98551// Pages invokes f for each page of results.
98552// A non-nil error returned from f will halt the iteration.
98553// The provided context supersedes any context provided to the Context method.
98554func (c *InterconnectsListCall) Pages(ctx context.Context, f func(*InterconnectList) error) error {
98555	c.ctx_ = ctx
98556	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
98557	for {
98558		x, err := c.Do()
98559		if err != nil {
98560			return err
98561		}
98562		if err := f(x); err != nil {
98563			return err
98564		}
98565		if x.NextPageToken == "" {
98566			return nil
98567		}
98568		c.PageToken(x.NextPageToken)
98569	}
98570}
98571
98572// method id "compute.interconnects.patch":
98573
98574type InterconnectsPatchCall struct {
98575	s             *Service
98576	project       string
98577	interconnect  string
98578	interconnect2 *Interconnect
98579	urlParams_    gensupport.URLParams
98580	ctx_          context.Context
98581	header_       http.Header
98582}
98583
98584// Patch: Updates the specified interconnect with the data included in
98585// the request. This method supports PATCH semantics and uses the JSON
98586// merge patch format and processing rules.
98587//
98588// - interconnect: Name of the interconnect to update.
98589// - project: Project ID for this request.
98590func (r *InterconnectsService) Patch(project string, interconnect string, interconnect2 *Interconnect) *InterconnectsPatchCall {
98591	c := &InterconnectsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98592	c.project = project
98593	c.interconnect = interconnect
98594	c.interconnect2 = interconnect2
98595	return c
98596}
98597
98598// RequestId sets the optional parameter "requestId": An optional
98599// request ID to identify requests. Specify a unique request ID so that
98600// if you must retry your request, the server will know to ignore the
98601// request if it has already been completed. For example, consider a
98602// situation where you make an initial request and the request times
98603// out. If you make the request again with the same request ID, the
98604// server can check if original operation with the same request ID was
98605// received, and if so, will ignore the second request. This prevents
98606// clients from accidentally creating duplicate commitments. The request
98607// ID must be a valid UUID with the exception that zero UUID is not
98608// supported ( 00000000-0000-0000-0000-000000000000).
98609func (c *InterconnectsPatchCall) RequestId(requestId string) *InterconnectsPatchCall {
98610	c.urlParams_.Set("requestId", requestId)
98611	return c
98612}
98613
98614// Fields allows partial responses to be retrieved. See
98615// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98616// for more information.
98617func (c *InterconnectsPatchCall) Fields(s ...googleapi.Field) *InterconnectsPatchCall {
98618	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98619	return c
98620}
98621
98622// Context sets the context to be used in this call's Do method. Any
98623// pending HTTP request will be aborted if the provided context is
98624// canceled.
98625func (c *InterconnectsPatchCall) Context(ctx context.Context) *InterconnectsPatchCall {
98626	c.ctx_ = ctx
98627	return c
98628}
98629
98630// Header returns an http.Header that can be modified by the caller to
98631// add HTTP headers to the request.
98632func (c *InterconnectsPatchCall) Header() http.Header {
98633	if c.header_ == nil {
98634		c.header_ = make(http.Header)
98635	}
98636	return c.header_
98637}
98638
98639func (c *InterconnectsPatchCall) doRequest(alt string) (*http.Response, error) {
98640	reqHeaders := make(http.Header)
98641	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
98642	for k, v := range c.header_ {
98643		reqHeaders[k] = v
98644	}
98645	reqHeaders.Set("User-Agent", c.s.userAgent())
98646	var body io.Reader = nil
98647	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect2)
98648	if err != nil {
98649		return nil, err
98650	}
98651	reqHeaders.Set("Content-Type", "application/json")
98652	c.urlParams_.Set("alt", alt)
98653	c.urlParams_.Set("prettyPrint", "false")
98654	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}")
98655	urls += "?" + c.urlParams_.Encode()
98656	req, err := http.NewRequest("PATCH", urls, body)
98657	if err != nil {
98658		return nil, err
98659	}
98660	req.Header = reqHeaders
98661	googleapi.Expand(req.URL, map[string]string{
98662		"project":      c.project,
98663		"interconnect": c.interconnect,
98664	})
98665	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98666}
98667
98668// Do executes the "compute.interconnects.patch" call.
98669// Exactly one of *Operation or error will be non-nil. Any non-2xx
98670// status code is an error. Response headers are in either
98671// *Operation.ServerResponse.Header or (if a response was returned at
98672// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98673// to check whether the returned error was because
98674// http.StatusNotModified was returned.
98675func (c *InterconnectsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98676	gensupport.SetOptions(c.urlParams_, opts...)
98677	res, err := c.doRequest("json")
98678	if res != nil && res.StatusCode == http.StatusNotModified {
98679		if res.Body != nil {
98680			res.Body.Close()
98681		}
98682		return nil, &googleapi.Error{
98683			Code:   res.StatusCode,
98684			Header: res.Header,
98685		}
98686	}
98687	if err != nil {
98688		return nil, err
98689	}
98690	defer googleapi.CloseBody(res)
98691	if err := googleapi.CheckResponse(res); err != nil {
98692		return nil, err
98693	}
98694	ret := &Operation{
98695		ServerResponse: googleapi.ServerResponse{
98696			Header:         res.Header,
98697			HTTPStatusCode: res.StatusCode,
98698		},
98699	}
98700	target := &ret
98701	if err := gensupport.DecodeResponse(target, res); err != nil {
98702		return nil, err
98703	}
98704	return ret, nil
98705	// {
98706	//   "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.",
98707	//   "flatPath": "projects/{project}/global/interconnects/{interconnect}",
98708	//   "httpMethod": "PATCH",
98709	//   "id": "compute.interconnects.patch",
98710	//   "parameterOrder": [
98711	//     "project",
98712	//     "interconnect"
98713	//   ],
98714	//   "parameters": {
98715	//     "interconnect": {
98716	//       "description": "Name of the interconnect to update.",
98717	//       "location": "path",
98718	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98719	//       "required": true,
98720	//       "type": "string"
98721	//     },
98722	//     "project": {
98723	//       "description": "Project ID for this request.",
98724	//       "location": "path",
98725	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98726	//       "required": true,
98727	//       "type": "string"
98728	//     },
98729	//     "requestId": {
98730	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
98731	//       "location": "query",
98732	//       "type": "string"
98733	//     }
98734	//   },
98735	//   "path": "projects/{project}/global/interconnects/{interconnect}",
98736	//   "request": {
98737	//     "$ref": "Interconnect"
98738	//   },
98739	//   "response": {
98740	//     "$ref": "Operation"
98741	//   },
98742	//   "scopes": [
98743	//     "https://www.googleapis.com/auth/cloud-platform",
98744	//     "https://www.googleapis.com/auth/compute"
98745	//   ]
98746	// }
98747
98748}
98749
98750// method id "compute.licenseCodes.get":
98751
98752type LicenseCodesGetCall struct {
98753	s            *Service
98754	project      string
98755	licenseCode  string
98756	urlParams_   gensupport.URLParams
98757	ifNoneMatch_ string
98758	ctx_         context.Context
98759	header_      http.Header
98760}
98761
98762// Get: Return a specified license code. License codes are mirrored
98763// across all projects that have permissions to read the License Code.
98764// *Caution* This resource is intended for use only by third-party
98765// partners who are creating Cloud Marketplace images.
98766//
98767// - licenseCode: Number corresponding to the License code resource to
98768//   return.
98769// - project: Project ID for this request.
98770func (r *LicenseCodesService) Get(project string, licenseCode string) *LicenseCodesGetCall {
98771	c := &LicenseCodesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98772	c.project = project
98773	c.licenseCode = licenseCode
98774	return c
98775}
98776
98777// Fields allows partial responses to be retrieved. See
98778// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98779// for more information.
98780func (c *LicenseCodesGetCall) Fields(s ...googleapi.Field) *LicenseCodesGetCall {
98781	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98782	return c
98783}
98784
98785// IfNoneMatch sets the optional parameter which makes the operation
98786// fail if the object's ETag matches the given value. This is useful for
98787// getting updates only after the object has changed since the last
98788// request. Use googleapi.IsNotModified to check whether the response
98789// error from Do is the result of In-None-Match.
98790func (c *LicenseCodesGetCall) IfNoneMatch(entityTag string) *LicenseCodesGetCall {
98791	c.ifNoneMatch_ = entityTag
98792	return c
98793}
98794
98795// Context sets the context to be used in this call's Do method. Any
98796// pending HTTP request will be aborted if the provided context is
98797// canceled.
98798func (c *LicenseCodesGetCall) Context(ctx context.Context) *LicenseCodesGetCall {
98799	c.ctx_ = ctx
98800	return c
98801}
98802
98803// Header returns an http.Header that can be modified by the caller to
98804// add HTTP headers to the request.
98805func (c *LicenseCodesGetCall) Header() http.Header {
98806	if c.header_ == nil {
98807		c.header_ = make(http.Header)
98808	}
98809	return c.header_
98810}
98811
98812func (c *LicenseCodesGetCall) doRequest(alt string) (*http.Response, error) {
98813	reqHeaders := make(http.Header)
98814	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
98815	for k, v := range c.header_ {
98816		reqHeaders[k] = v
98817	}
98818	reqHeaders.Set("User-Agent", c.s.userAgent())
98819	if c.ifNoneMatch_ != "" {
98820		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
98821	}
98822	var body io.Reader = nil
98823	c.urlParams_.Set("alt", alt)
98824	c.urlParams_.Set("prettyPrint", "false")
98825	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenseCodes/{licenseCode}")
98826	urls += "?" + c.urlParams_.Encode()
98827	req, err := http.NewRequest("GET", urls, body)
98828	if err != nil {
98829		return nil, err
98830	}
98831	req.Header = reqHeaders
98832	googleapi.Expand(req.URL, map[string]string{
98833		"project":     c.project,
98834		"licenseCode": c.licenseCode,
98835	})
98836	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98837}
98838
98839// Do executes the "compute.licenseCodes.get" call.
98840// Exactly one of *LicenseCode or error will be non-nil. Any non-2xx
98841// status code is an error. Response headers are in either
98842// *LicenseCode.ServerResponse.Header or (if a response was returned at
98843// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98844// to check whether the returned error was because
98845// http.StatusNotModified was returned.
98846func (c *LicenseCodesGetCall) Do(opts ...googleapi.CallOption) (*LicenseCode, error) {
98847	gensupport.SetOptions(c.urlParams_, opts...)
98848	res, err := c.doRequest("json")
98849	if res != nil && res.StatusCode == http.StatusNotModified {
98850		if res.Body != nil {
98851			res.Body.Close()
98852		}
98853		return nil, &googleapi.Error{
98854			Code:   res.StatusCode,
98855			Header: res.Header,
98856		}
98857	}
98858	if err != nil {
98859		return nil, err
98860	}
98861	defer googleapi.CloseBody(res)
98862	if err := googleapi.CheckResponse(res); err != nil {
98863		return nil, err
98864	}
98865	ret := &LicenseCode{
98866		ServerResponse: googleapi.ServerResponse{
98867			Header:         res.Header,
98868			HTTPStatusCode: res.StatusCode,
98869		},
98870	}
98871	target := &ret
98872	if err := gensupport.DecodeResponse(target, res); err != nil {
98873		return nil, err
98874	}
98875	return ret, nil
98876	// {
98877	//   "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. ",
98878	//   "flatPath": "projects/{project}/global/licenseCodes/{licenseCode}",
98879	//   "httpMethod": "GET",
98880	//   "id": "compute.licenseCodes.get",
98881	//   "parameterOrder": [
98882	//     "project",
98883	//     "licenseCode"
98884	//   ],
98885	//   "parameters": {
98886	//     "licenseCode": {
98887	//       "description": "Number corresponding to the License code resource to return.",
98888	//       "location": "path",
98889	//       "pattern": "[0-9]{0,61}?",
98890	//       "required": true,
98891	//       "type": "string"
98892	//     },
98893	//     "project": {
98894	//       "description": "Project ID for this request.",
98895	//       "location": "path",
98896	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98897	//       "required": true,
98898	//       "type": "string"
98899	//     }
98900	//   },
98901	//   "path": "projects/{project}/global/licenseCodes/{licenseCode}",
98902	//   "response": {
98903	//     "$ref": "LicenseCode"
98904	//   },
98905	//   "scopes": [
98906	//     "https://www.googleapis.com/auth/cloud-platform",
98907	//     "https://www.googleapis.com/auth/compute",
98908	//     "https://www.googleapis.com/auth/compute.readonly"
98909	//   ]
98910	// }
98911
98912}
98913
98914// method id "compute.licenseCodes.testIamPermissions":
98915
98916type LicenseCodesTestIamPermissionsCall struct {
98917	s                      *Service
98918	project                string
98919	resource               string
98920	testpermissionsrequest *TestPermissionsRequest
98921	urlParams_             gensupport.URLParams
98922	ctx_                   context.Context
98923	header_                http.Header
98924}
98925
98926// TestIamPermissions: Returns permissions that a caller has on the
98927// specified resource. *Caution* This resource is intended for use only
98928// by third-party partners who are creating Cloud Marketplace images.
98929//
98930// - project: Project ID for this request.
98931// - resource: Name or id of the resource for this request.
98932func (r *LicenseCodesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *LicenseCodesTestIamPermissionsCall {
98933	c := &LicenseCodesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98934	c.project = project
98935	c.resource = resource
98936	c.testpermissionsrequest = testpermissionsrequest
98937	return c
98938}
98939
98940// Fields allows partial responses to be retrieved. See
98941// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98942// for more information.
98943func (c *LicenseCodesTestIamPermissionsCall) Fields(s ...googleapi.Field) *LicenseCodesTestIamPermissionsCall {
98944	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98945	return c
98946}
98947
98948// Context sets the context to be used in this call's Do method. Any
98949// pending HTTP request will be aborted if the provided context is
98950// canceled.
98951func (c *LicenseCodesTestIamPermissionsCall) Context(ctx context.Context) *LicenseCodesTestIamPermissionsCall {
98952	c.ctx_ = ctx
98953	return c
98954}
98955
98956// Header returns an http.Header that can be modified by the caller to
98957// add HTTP headers to the request.
98958func (c *LicenseCodesTestIamPermissionsCall) Header() http.Header {
98959	if c.header_ == nil {
98960		c.header_ = make(http.Header)
98961	}
98962	return c.header_
98963}
98964
98965func (c *LicenseCodesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
98966	reqHeaders := make(http.Header)
98967	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
98968	for k, v := range c.header_ {
98969		reqHeaders[k] = v
98970	}
98971	reqHeaders.Set("User-Agent", c.s.userAgent())
98972	var body io.Reader = nil
98973	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
98974	if err != nil {
98975		return nil, err
98976	}
98977	reqHeaders.Set("Content-Type", "application/json")
98978	c.urlParams_.Set("alt", alt)
98979	c.urlParams_.Set("prettyPrint", "false")
98980	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenseCodes/{resource}/testIamPermissions")
98981	urls += "?" + c.urlParams_.Encode()
98982	req, err := http.NewRequest("POST", urls, body)
98983	if err != nil {
98984		return nil, err
98985	}
98986	req.Header = reqHeaders
98987	googleapi.Expand(req.URL, map[string]string{
98988		"project":  c.project,
98989		"resource": c.resource,
98990	})
98991	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98992}
98993
98994// Do executes the "compute.licenseCodes.testIamPermissions" call.
98995// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
98996// non-2xx status code is an error. Response headers are in either
98997// *TestPermissionsResponse.ServerResponse.Header or (if a response was
98998// returned at all) in error.(*googleapi.Error).Header. Use
98999// googleapi.IsNotModified to check whether the returned error was
99000// because http.StatusNotModified was returned.
99001func (c *LicenseCodesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
99002	gensupport.SetOptions(c.urlParams_, opts...)
99003	res, err := c.doRequest("json")
99004	if res != nil && res.StatusCode == http.StatusNotModified {
99005		if res.Body != nil {
99006			res.Body.Close()
99007		}
99008		return nil, &googleapi.Error{
99009			Code:   res.StatusCode,
99010			Header: res.Header,
99011		}
99012	}
99013	if err != nil {
99014		return nil, err
99015	}
99016	defer googleapi.CloseBody(res)
99017	if err := googleapi.CheckResponse(res); err != nil {
99018		return nil, err
99019	}
99020	ret := &TestPermissionsResponse{
99021		ServerResponse: googleapi.ServerResponse{
99022			Header:         res.Header,
99023			HTTPStatusCode: res.StatusCode,
99024		},
99025	}
99026	target := &ret
99027	if err := gensupport.DecodeResponse(target, res); err != nil {
99028		return nil, err
99029	}
99030	return ret, nil
99031	// {
99032	//   "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. ",
99033	//   "flatPath": "projects/{project}/global/licenseCodes/{resource}/testIamPermissions",
99034	//   "httpMethod": "POST",
99035	//   "id": "compute.licenseCodes.testIamPermissions",
99036	//   "parameterOrder": [
99037	//     "project",
99038	//     "resource"
99039	//   ],
99040	//   "parameters": {
99041	//     "project": {
99042	//       "description": "Project ID for this request.",
99043	//       "location": "path",
99044	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99045	//       "required": true,
99046	//       "type": "string"
99047	//     },
99048	//     "resource": {
99049	//       "description": "Name or id of the resource for this request.",
99050	//       "location": "path",
99051	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99052	//       "required": true,
99053	//       "type": "string"
99054	//     }
99055	//   },
99056	//   "path": "projects/{project}/global/licenseCodes/{resource}/testIamPermissions",
99057	//   "request": {
99058	//     "$ref": "TestPermissionsRequest"
99059	//   },
99060	//   "response": {
99061	//     "$ref": "TestPermissionsResponse"
99062	//   },
99063	//   "scopes": [
99064	//     "https://www.googleapis.com/auth/cloud-platform",
99065	//     "https://www.googleapis.com/auth/compute",
99066	//     "https://www.googleapis.com/auth/compute.readonly"
99067	//   ]
99068	// }
99069
99070}
99071
99072// method id "compute.licenses.delete":
99073
99074type LicensesDeleteCall struct {
99075	s          *Service
99076	project    string
99077	license    string
99078	urlParams_ gensupport.URLParams
99079	ctx_       context.Context
99080	header_    http.Header
99081}
99082
99083// Delete: Deletes the specified license. *Caution* This resource is
99084// intended for use only by third-party partners who are creating Cloud
99085// Marketplace images.
99086//
99087// - license: Name of the license resource to delete.
99088// - project: Project ID for this request.
99089func (r *LicensesService) Delete(project string, license string) *LicensesDeleteCall {
99090	c := &LicensesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99091	c.project = project
99092	c.license = license
99093	return c
99094}
99095
99096// RequestId sets the optional parameter "requestId": An optional
99097// request ID to identify requests. Specify a unique request ID so that
99098// if you must retry your request, the server will know to ignore the
99099// request if it has already been completed. For example, consider a
99100// situation where you make an initial request and the request times
99101// out. If you make the request again with the same request ID, the
99102// server can check if original operation with the same request ID was
99103// received, and if so, will ignore the second request. This prevents
99104// clients from accidentally creating duplicate commitments. The request
99105// ID must be a valid UUID with the exception that zero UUID is not
99106// supported ( 00000000-0000-0000-0000-000000000000).
99107func (c *LicensesDeleteCall) RequestId(requestId string) *LicensesDeleteCall {
99108	c.urlParams_.Set("requestId", requestId)
99109	return c
99110}
99111
99112// Fields allows partial responses to be retrieved. See
99113// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99114// for more information.
99115func (c *LicensesDeleteCall) Fields(s ...googleapi.Field) *LicensesDeleteCall {
99116	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99117	return c
99118}
99119
99120// Context sets the context to be used in this call's Do method. Any
99121// pending HTTP request will be aborted if the provided context is
99122// canceled.
99123func (c *LicensesDeleteCall) Context(ctx context.Context) *LicensesDeleteCall {
99124	c.ctx_ = ctx
99125	return c
99126}
99127
99128// Header returns an http.Header that can be modified by the caller to
99129// add HTTP headers to the request.
99130func (c *LicensesDeleteCall) Header() http.Header {
99131	if c.header_ == nil {
99132		c.header_ = make(http.Header)
99133	}
99134	return c.header_
99135}
99136
99137func (c *LicensesDeleteCall) doRequest(alt string) (*http.Response, error) {
99138	reqHeaders := make(http.Header)
99139	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
99140	for k, v := range c.header_ {
99141		reqHeaders[k] = v
99142	}
99143	reqHeaders.Set("User-Agent", c.s.userAgent())
99144	var body io.Reader = nil
99145	c.urlParams_.Set("alt", alt)
99146	c.urlParams_.Set("prettyPrint", "false")
99147	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{license}")
99148	urls += "?" + c.urlParams_.Encode()
99149	req, err := http.NewRequest("DELETE", urls, body)
99150	if err != nil {
99151		return nil, err
99152	}
99153	req.Header = reqHeaders
99154	googleapi.Expand(req.URL, map[string]string{
99155		"project": c.project,
99156		"license": c.license,
99157	})
99158	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99159}
99160
99161// Do executes the "compute.licenses.delete" call.
99162// Exactly one of *Operation or error will be non-nil. Any non-2xx
99163// status code is an error. Response headers are in either
99164// *Operation.ServerResponse.Header or (if a response was returned at
99165// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
99166// to check whether the returned error was because
99167// http.StatusNotModified was returned.
99168func (c *LicensesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
99169	gensupport.SetOptions(c.urlParams_, opts...)
99170	res, err := c.doRequest("json")
99171	if res != nil && res.StatusCode == http.StatusNotModified {
99172		if res.Body != nil {
99173			res.Body.Close()
99174		}
99175		return nil, &googleapi.Error{
99176			Code:   res.StatusCode,
99177			Header: res.Header,
99178		}
99179	}
99180	if err != nil {
99181		return nil, err
99182	}
99183	defer googleapi.CloseBody(res)
99184	if err := googleapi.CheckResponse(res); err != nil {
99185		return nil, err
99186	}
99187	ret := &Operation{
99188		ServerResponse: googleapi.ServerResponse{
99189			Header:         res.Header,
99190			HTTPStatusCode: res.StatusCode,
99191		},
99192	}
99193	target := &ret
99194	if err := gensupport.DecodeResponse(target, res); err != nil {
99195		return nil, err
99196	}
99197	return ret, nil
99198	// {
99199	//   "description": "Deletes the specified license. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. ",
99200	//   "flatPath": "projects/{project}/global/licenses/{license}",
99201	//   "httpMethod": "DELETE",
99202	//   "id": "compute.licenses.delete",
99203	//   "parameterOrder": [
99204	//     "project",
99205	//     "license"
99206	//   ],
99207	//   "parameters": {
99208	//     "license": {
99209	//       "description": "Name of the license resource to delete.",
99210	//       "location": "path",
99211	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99212	//       "required": true,
99213	//       "type": "string"
99214	//     },
99215	//     "project": {
99216	//       "description": "Project ID for this request.",
99217	//       "location": "path",
99218	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99219	//       "required": true,
99220	//       "type": "string"
99221	//     },
99222	//     "requestId": {
99223	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
99224	//       "location": "query",
99225	//       "type": "string"
99226	//     }
99227	//   },
99228	//   "path": "projects/{project}/global/licenses/{license}",
99229	//   "response": {
99230	//     "$ref": "Operation"
99231	//   },
99232	//   "scopes": [
99233	//     "https://www.googleapis.com/auth/cloud-platform",
99234	//     "https://www.googleapis.com/auth/compute"
99235	//   ]
99236	// }
99237
99238}
99239
99240// method id "compute.licenses.get":
99241
99242type LicensesGetCall struct {
99243	s            *Service
99244	project      string
99245	license      string
99246	urlParams_   gensupport.URLParams
99247	ifNoneMatch_ string
99248	ctx_         context.Context
99249	header_      http.Header
99250}
99251
99252// Get: Returns the specified License resource. *Caution* This resource
99253// is intended for use only by third-party partners who are creating
99254// Cloud Marketplace images.
99255//
99256// - license: Name of the License resource to return.
99257// - project: Project ID for this request.
99258func (r *LicensesService) Get(project string, license string) *LicensesGetCall {
99259	c := &LicensesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99260	c.project = project
99261	c.license = license
99262	return c
99263}
99264
99265// Fields allows partial responses to be retrieved. See
99266// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99267// for more information.
99268func (c *LicensesGetCall) Fields(s ...googleapi.Field) *LicensesGetCall {
99269	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99270	return c
99271}
99272
99273// IfNoneMatch sets the optional parameter which makes the operation
99274// fail if the object's ETag matches the given value. This is useful for
99275// getting updates only after the object has changed since the last
99276// request. Use googleapi.IsNotModified to check whether the response
99277// error from Do is the result of In-None-Match.
99278func (c *LicensesGetCall) IfNoneMatch(entityTag string) *LicensesGetCall {
99279	c.ifNoneMatch_ = entityTag
99280	return c
99281}
99282
99283// Context sets the context to be used in this call's Do method. Any
99284// pending HTTP request will be aborted if the provided context is
99285// canceled.
99286func (c *LicensesGetCall) Context(ctx context.Context) *LicensesGetCall {
99287	c.ctx_ = ctx
99288	return c
99289}
99290
99291// Header returns an http.Header that can be modified by the caller to
99292// add HTTP headers to the request.
99293func (c *LicensesGetCall) Header() http.Header {
99294	if c.header_ == nil {
99295		c.header_ = make(http.Header)
99296	}
99297	return c.header_
99298}
99299
99300func (c *LicensesGetCall) doRequest(alt string) (*http.Response, error) {
99301	reqHeaders := make(http.Header)
99302	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
99303	for k, v := range c.header_ {
99304		reqHeaders[k] = v
99305	}
99306	reqHeaders.Set("User-Agent", c.s.userAgent())
99307	if c.ifNoneMatch_ != "" {
99308		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
99309	}
99310	var body io.Reader = nil
99311	c.urlParams_.Set("alt", alt)
99312	c.urlParams_.Set("prettyPrint", "false")
99313	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{license}")
99314	urls += "?" + c.urlParams_.Encode()
99315	req, err := http.NewRequest("GET", urls, body)
99316	if err != nil {
99317		return nil, err
99318	}
99319	req.Header = reqHeaders
99320	googleapi.Expand(req.URL, map[string]string{
99321		"project": c.project,
99322		"license": c.license,
99323	})
99324	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99325}
99326
99327// Do executes the "compute.licenses.get" call.
99328// Exactly one of *License or error will be non-nil. Any non-2xx status
99329// code is an error. Response headers are in either
99330// *License.ServerResponse.Header or (if a response was returned at all)
99331// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
99332// check whether the returned error was because http.StatusNotModified
99333// was returned.
99334func (c *LicensesGetCall) Do(opts ...googleapi.CallOption) (*License, error) {
99335	gensupport.SetOptions(c.urlParams_, opts...)
99336	res, err := c.doRequest("json")
99337	if res != nil && res.StatusCode == http.StatusNotModified {
99338		if res.Body != nil {
99339			res.Body.Close()
99340		}
99341		return nil, &googleapi.Error{
99342			Code:   res.StatusCode,
99343			Header: res.Header,
99344		}
99345	}
99346	if err != nil {
99347		return nil, err
99348	}
99349	defer googleapi.CloseBody(res)
99350	if err := googleapi.CheckResponse(res); err != nil {
99351		return nil, err
99352	}
99353	ret := &License{
99354		ServerResponse: googleapi.ServerResponse{
99355			Header:         res.Header,
99356			HTTPStatusCode: res.StatusCode,
99357		},
99358	}
99359	target := &ret
99360	if err := gensupport.DecodeResponse(target, res); err != nil {
99361		return nil, err
99362	}
99363	return ret, nil
99364	// {
99365	//   "description": "Returns the specified License resource. *Caution* This resource is intended for use only by third-party partners who are creating Cloud Marketplace images. ",
99366	//   "flatPath": "projects/{project}/global/licenses/{license}",
99367	//   "httpMethod": "GET",
99368	//   "id": "compute.licenses.get",
99369	//   "parameterOrder": [
99370	//     "project",
99371	//     "license"
99372	//   ],
99373	//   "parameters": {
99374	//     "license": {
99375	//       "description": "Name of the License resource to return.",
99376	//       "location": "path",
99377	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99378	//       "required": true,
99379	//       "type": "string"
99380	//     },
99381	//     "project": {
99382	//       "description": "Project ID for this request.",
99383	//       "location": "path",
99384	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99385	//       "required": true,
99386	//       "type": "string"
99387	//     }
99388	//   },
99389	//   "path": "projects/{project}/global/licenses/{license}",
99390	//   "response": {
99391	//     "$ref": "License"
99392	//   },
99393	//   "scopes": [
99394	//     "https://www.googleapis.com/auth/cloud-platform",
99395	//     "https://www.googleapis.com/auth/compute",
99396	//     "https://www.googleapis.com/auth/compute.readonly"
99397	//   ]
99398	// }
99399
99400}
99401
99402// method id "compute.licenses.getIamPolicy":
99403
99404type LicensesGetIamPolicyCall struct {
99405	s            *Service
99406	project      string
99407	resource     string
99408	urlParams_   gensupport.URLParams
99409	ifNoneMatch_ string
99410	ctx_         context.Context
99411	header_      http.Header
99412}
99413
99414// GetIamPolicy: Gets the access control policy for a resource. May be
99415// empty if no such policy or resource exists. *Caution* This resource
99416// is intended for use only by third-party partners who are creating
99417// Cloud Marketplace images.
99418//
99419// - project: Project ID for this request.
99420// - resource: Name or id of the resource for this request.
99421func (r *LicensesService) GetIamPolicy(project string, resource string) *LicensesGetIamPolicyCall {
99422	c := &LicensesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99423	c.project = project
99424	c.resource = resource
99425	return c
99426}
99427
99428// OptionsRequestedPolicyVersion sets the optional parameter
99429// "optionsRequestedPolicyVersion": Requested IAM Policy version.
99430func (c *LicensesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *LicensesGetIamPolicyCall {
99431	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
99432	return c
99433}
99434
99435// Fields allows partial responses to be retrieved. See
99436// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99437// for more information.
99438func (c *LicensesGetIamPolicyCall) Fields(s ...googleapi.Field) *LicensesGetIamPolicyCall {
99439	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99440	return c
99441}
99442
99443// IfNoneMatch sets the optional parameter which makes the operation
99444// fail if the object's ETag matches the given value. This is useful for
99445// getting updates only after the object has changed since the last
99446// request. Use googleapi.IsNotModified to check whether the response
99447// error from Do is the result of In-None-Match.
99448func (c *LicensesGetIamPolicyCall) IfNoneMatch(entityTag string) *LicensesGetIamPolicyCall {
99449	c.ifNoneMatch_ = entityTag
99450	return c
99451}
99452
99453// Context sets the context to be used in this call's Do method. Any
99454// pending HTTP request will be aborted if the provided context is
99455// canceled.
99456func (c *LicensesGetIamPolicyCall) Context(ctx context.Context) *LicensesGetIamPolicyCall {
99457	c.ctx_ = ctx
99458	return c
99459}
99460
99461// Header returns an http.Header that can be modified by the caller to
99462// add HTTP headers to the request.
99463func (c *LicensesGetIamPolicyCall) Header() http.Header {
99464	if c.header_ == nil {
99465		c.header_ = make(http.Header)
99466	}
99467	return c.header_
99468}
99469
99470func (c *LicensesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
99471	reqHeaders := make(http.Header)
99472	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
99473	for k, v := range c.header_ {
99474		reqHeaders[k] = v
99475	}
99476	reqHeaders.Set("User-Agent", c.s.userAgent())
99477	if c.ifNoneMatch_ != "" {
99478		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
99479	}
99480	var body io.Reader = nil
99481	c.urlParams_.Set("alt", alt)
99482	c.urlParams_.Set("prettyPrint", "false")
99483	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{resource}/getIamPolicy")
99484	urls += "?" + c.urlParams_.Encode()
99485	req, err := http.NewRequest("GET", urls, body)
99486	if err != nil {
99487		return nil, err
99488	}
99489	req.Header = reqHeaders
99490	googleapi.Expand(req.URL, map[string]string{
99491		"project":  c.project,
99492		"resource": c.resource,
99493	})
99494	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99495}
99496
99497// Do executes the "compute.licenses.getIamPolicy" call.
99498// Exactly one of *Policy or error will be non-nil. Any non-2xx status
99499// code is an error. Response headers are in either
99500// *Policy.ServerResponse.Header or (if a response was returned at all)
99501// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
99502// check whether the returned error was because http.StatusNotModified
99503// was returned.
99504func (c *LicensesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
99505	gensupport.SetOptions(c.urlParams_, opts...)
99506	res, err := c.doRequest("json")
99507	if res != nil && res.StatusCode == http.StatusNotModified {
99508		if res.Body != nil {
99509			res.Body.Close()
99510		}
99511		return nil, &googleapi.Error{
99512			Code:   res.StatusCode,
99513			Header: res.Header,
99514		}
99515	}
99516	if err != nil {
99517		return nil, err
99518	}
99519	defer googleapi.CloseBody(res)
99520	if err := googleapi.CheckResponse(res); err != nil {
99521		return nil, err
99522	}
99523	ret := &Policy{
99524		ServerResponse: googleapi.ServerResponse{
99525			Header:         res.Header,
99526			HTTPStatusCode: res.StatusCode,
99527		},
99528	}
99529	target := &ret
99530	if err := gensupport.DecodeResponse(target, res); err != nil {
99531		return nil, err
99532	}
99533	return ret, nil
99534	// {
99535	//   "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. ",
99536	//   "flatPath": "projects/{project}/global/licenses/{resource}/getIamPolicy",
99537	//   "httpMethod": "GET",
99538	//   "id": "compute.licenses.getIamPolicy",
99539	//   "parameterOrder": [
99540	//     "project",
99541	//     "resource"
99542	//   ],
99543	//   "parameters": {
99544	//     "optionsRequestedPolicyVersion": {
99545	//       "description": "Requested IAM Policy version.",
99546	//       "format": "int32",
99547	//       "location": "query",
99548	//       "type": "integer"
99549	//     },
99550	//     "project": {
99551	//       "description": "Project ID for this request.",
99552	//       "location": "path",
99553	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99554	//       "required": true,
99555	//       "type": "string"
99556	//     },
99557	//     "resource": {
99558	//       "description": "Name or id of the resource for this request.",
99559	//       "location": "path",
99560	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99561	//       "required": true,
99562	//       "type": "string"
99563	//     }
99564	//   },
99565	//   "path": "projects/{project}/global/licenses/{resource}/getIamPolicy",
99566	//   "response": {
99567	//     "$ref": "Policy"
99568	//   },
99569	//   "scopes": [
99570	//     "https://www.googleapis.com/auth/cloud-platform",
99571	//     "https://www.googleapis.com/auth/compute",
99572	//     "https://www.googleapis.com/auth/compute.readonly"
99573	//   ]
99574	// }
99575
99576}
99577
99578// method id "compute.licenses.insert":
99579
99580type LicensesInsertCall struct {
99581	s          *Service
99582	project    string
99583	license    *License
99584	urlParams_ gensupport.URLParams
99585	ctx_       context.Context
99586	header_    http.Header
99587}
99588
99589// Insert: Create a License resource in the specified project. *Caution*
99590// This resource is intended for use only by third-party partners who
99591// are creating Cloud Marketplace images.
99592//
99593// - project: Project ID for this request.
99594func (r *LicensesService) Insert(project string, license *License) *LicensesInsertCall {
99595	c := &LicensesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99596	c.project = project
99597	c.license = license
99598	return c
99599}
99600
99601// RequestId sets the optional parameter "requestId": An optional
99602// request ID to identify requests. Specify a unique request ID so that
99603// if you must retry your request, the server will know to ignore the
99604// request if it has already been completed. For example, consider a
99605// situation where you make an initial request and the request times
99606// out. If you make the request again with the same request ID, the
99607// server can check if original operation with the same request ID was
99608// received, and if so, will ignore the second request. This prevents
99609// clients from accidentally creating duplicate commitments. The request
99610// ID must be a valid UUID with the exception that zero UUID is not
99611// supported ( 00000000-0000-0000-0000-000000000000).
99612func (c *LicensesInsertCall) RequestId(requestId string) *LicensesInsertCall {
99613	c.urlParams_.Set("requestId", requestId)
99614	return c
99615}
99616
99617// Fields allows partial responses to be retrieved. See
99618// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99619// for more information.
99620func (c *LicensesInsertCall) Fields(s ...googleapi.Field) *LicensesInsertCall {
99621	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99622	return c
99623}
99624
99625// Context sets the context to be used in this call's Do method. Any
99626// pending HTTP request will be aborted if the provided context is
99627// canceled.
99628func (c *LicensesInsertCall) Context(ctx context.Context) *LicensesInsertCall {
99629	c.ctx_ = ctx
99630	return c
99631}
99632
99633// Header returns an http.Header that can be modified by the caller to
99634// add HTTP headers to the request.
99635func (c *LicensesInsertCall) Header() http.Header {
99636	if c.header_ == nil {
99637		c.header_ = make(http.Header)
99638	}
99639	return c.header_
99640}
99641
99642func (c *LicensesInsertCall) doRequest(alt string) (*http.Response, error) {
99643	reqHeaders := make(http.Header)
99644	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
99645	for k, v := range c.header_ {
99646		reqHeaders[k] = v
99647	}
99648	reqHeaders.Set("User-Agent", c.s.userAgent())
99649	var body io.Reader = nil
99650	body, err := googleapi.WithoutDataWrapper.JSONReader(c.license)
99651	if err != nil {
99652		return nil, err
99653	}
99654	reqHeaders.Set("Content-Type", "application/json")
99655	c.urlParams_.Set("alt", alt)
99656	c.urlParams_.Set("prettyPrint", "false")
99657	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses")
99658	urls += "?" + c.urlParams_.Encode()
99659	req, err := http.NewRequest("POST", urls, body)
99660	if err != nil {
99661		return nil, err
99662	}
99663	req.Header = reqHeaders
99664	googleapi.Expand(req.URL, map[string]string{
99665		"project": c.project,
99666	})
99667	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99668}
99669
99670// Do executes the "compute.licenses.insert" call.
99671// Exactly one of *Operation or error will be non-nil. Any non-2xx
99672// status code is an error. Response headers are in either
99673// *Operation.ServerResponse.Header or (if a response was returned at
99674// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
99675// to check whether the returned error was because
99676// http.StatusNotModified was returned.
99677func (c *LicensesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
99678	gensupport.SetOptions(c.urlParams_, opts...)
99679	res, err := c.doRequest("json")
99680	if res != nil && res.StatusCode == http.StatusNotModified {
99681		if res.Body != nil {
99682			res.Body.Close()
99683		}
99684		return nil, &googleapi.Error{
99685			Code:   res.StatusCode,
99686			Header: res.Header,
99687		}
99688	}
99689	if err != nil {
99690		return nil, err
99691	}
99692	defer googleapi.CloseBody(res)
99693	if err := googleapi.CheckResponse(res); err != nil {
99694		return nil, err
99695	}
99696	ret := &Operation{
99697		ServerResponse: googleapi.ServerResponse{
99698			Header:         res.Header,
99699			HTTPStatusCode: res.StatusCode,
99700		},
99701	}
99702	target := &ret
99703	if err := gensupport.DecodeResponse(target, res); err != nil {
99704		return nil, err
99705	}
99706	return ret, nil
99707	// {
99708	//   "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. ",
99709	//   "flatPath": "projects/{project}/global/licenses",
99710	//   "httpMethod": "POST",
99711	//   "id": "compute.licenses.insert",
99712	//   "parameterOrder": [
99713	//     "project"
99714	//   ],
99715	//   "parameters": {
99716	//     "project": {
99717	//       "description": "Project ID for this request.",
99718	//       "location": "path",
99719	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99720	//       "required": true,
99721	//       "type": "string"
99722	//     },
99723	//     "requestId": {
99724	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
99725	//       "location": "query",
99726	//       "type": "string"
99727	//     }
99728	//   },
99729	//   "path": "projects/{project}/global/licenses",
99730	//   "request": {
99731	//     "$ref": "License"
99732	//   },
99733	//   "response": {
99734	//     "$ref": "Operation"
99735	//   },
99736	//   "scopes": [
99737	//     "https://www.googleapis.com/auth/cloud-platform",
99738	//     "https://www.googleapis.com/auth/compute",
99739	//     "https://www.googleapis.com/auth/devstorage.full_control",
99740	//     "https://www.googleapis.com/auth/devstorage.read_only",
99741	//     "https://www.googleapis.com/auth/devstorage.read_write"
99742	//   ]
99743	// }
99744
99745}
99746
99747// method id "compute.licenses.list":
99748
99749type LicensesListCall struct {
99750	s            *Service
99751	project      string
99752	urlParams_   gensupport.URLParams
99753	ifNoneMatch_ string
99754	ctx_         context.Context
99755	header_      http.Header
99756}
99757
99758// List: Retrieves the list of licenses available in the specified
99759// project. This method does not get any licenses that belong to other
99760// projects, including licenses attached to publicly-available images,
99761// like Debian 9. If you want to get a list of publicly-available
99762// licenses, use this method to make a request to the respective image
99763// project, such as debian-cloud or windows-cloud. *Caution* This
99764// resource is intended for use only by third-party partners who are
99765// creating Cloud Marketplace images.
99766//
99767// - project: Project ID for this request.
99768func (r *LicensesService) List(project string) *LicensesListCall {
99769	c := &LicensesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99770	c.project = project
99771	return c
99772}
99773
99774// Filter sets the optional parameter "filter": A filter expression that
99775// filters resources listed in the response. The expression must specify
99776// the field name, a comparison operator, and the value that you want to
99777// use for filtering. The value must be a string, a number, or a
99778// boolean. The comparison operator must be either `=`, `!=`, `>`, or
99779// `<`. For example, if you are filtering Compute Engine instances, you
99780// can exclude instances named `example-instance` by specifying `name !=
99781// example-instance`. You can also filter nested fields. For example,
99782// you could specify `scheduling.automaticRestart = false` to include
99783// instances only if they are not scheduled for automatic restarts. You
99784// can use filtering on nested fields to filter based on resource
99785// labels. To filter on multiple expressions, provide each separate
99786// expression within parentheses. For example: ```
99787// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
99788// ``` By default, each expression is an `AND` expression. However, you
99789// can include `AND` and `OR` expressions explicitly. For example: ```
99790// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
99791// AND (scheduling.automaticRestart = true) ```
99792func (c *LicensesListCall) Filter(filter string) *LicensesListCall {
99793	c.urlParams_.Set("filter", filter)
99794	return c
99795}
99796
99797// MaxResults sets the optional parameter "maxResults": The maximum
99798// number of results per page that should be returned. If the number of
99799// available results is larger than `maxResults`, Compute Engine returns
99800// a `nextPageToken` that can be used to get the next page of results in
99801// subsequent list requests. Acceptable values are `0` to `500`,
99802// inclusive. (Default: `500`)
99803func (c *LicensesListCall) MaxResults(maxResults int64) *LicensesListCall {
99804	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
99805	return c
99806}
99807
99808// OrderBy sets the optional parameter "orderBy": Sorts list results by
99809// a certain order. By default, results are returned in alphanumerical
99810// order based on the resource name. You can also sort results in
99811// descending order based on the creation timestamp using
99812// `orderBy="creationTimestamp desc". This sorts results based on the
99813// `creationTimestamp` field in reverse chronological order (newest
99814// result first). Use this to sort resources like operations so that the
99815// newest operation is returned first. Currently, only sorting by `name`
99816// or `creationTimestamp desc` is supported.
99817func (c *LicensesListCall) OrderBy(orderBy string) *LicensesListCall {
99818	c.urlParams_.Set("orderBy", orderBy)
99819	return c
99820}
99821
99822// PageToken sets the optional parameter "pageToken": Specifies a page
99823// token to use. Set `pageToken` to the `nextPageToken` returned by a
99824// previous list request to get the next page of results.
99825func (c *LicensesListCall) PageToken(pageToken string) *LicensesListCall {
99826	c.urlParams_.Set("pageToken", pageToken)
99827	return c
99828}
99829
99830// ReturnPartialSuccess sets the optional parameter
99831// "returnPartialSuccess": Opt-in for partial success behavior which
99832// provides partial results in case of failure. The default value is
99833// false.
99834func (c *LicensesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *LicensesListCall {
99835	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
99836	return c
99837}
99838
99839// Fields allows partial responses to be retrieved. See
99840// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99841// for more information.
99842func (c *LicensesListCall) Fields(s ...googleapi.Field) *LicensesListCall {
99843	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99844	return c
99845}
99846
99847// IfNoneMatch sets the optional parameter which makes the operation
99848// fail if the object's ETag matches the given value. This is useful for
99849// getting updates only after the object has changed since the last
99850// request. Use googleapi.IsNotModified to check whether the response
99851// error from Do is the result of In-None-Match.
99852func (c *LicensesListCall) IfNoneMatch(entityTag string) *LicensesListCall {
99853	c.ifNoneMatch_ = entityTag
99854	return c
99855}
99856
99857// Context sets the context to be used in this call's Do method. Any
99858// pending HTTP request will be aborted if the provided context is
99859// canceled.
99860func (c *LicensesListCall) Context(ctx context.Context) *LicensesListCall {
99861	c.ctx_ = ctx
99862	return c
99863}
99864
99865// Header returns an http.Header that can be modified by the caller to
99866// add HTTP headers to the request.
99867func (c *LicensesListCall) Header() http.Header {
99868	if c.header_ == nil {
99869		c.header_ = make(http.Header)
99870	}
99871	return c.header_
99872}
99873
99874func (c *LicensesListCall) doRequest(alt string) (*http.Response, error) {
99875	reqHeaders := make(http.Header)
99876	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
99877	for k, v := range c.header_ {
99878		reqHeaders[k] = v
99879	}
99880	reqHeaders.Set("User-Agent", c.s.userAgent())
99881	if c.ifNoneMatch_ != "" {
99882		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
99883	}
99884	var body io.Reader = nil
99885	c.urlParams_.Set("alt", alt)
99886	c.urlParams_.Set("prettyPrint", "false")
99887	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses")
99888	urls += "?" + c.urlParams_.Encode()
99889	req, err := http.NewRequest("GET", urls, body)
99890	if err != nil {
99891		return nil, err
99892	}
99893	req.Header = reqHeaders
99894	googleapi.Expand(req.URL, map[string]string{
99895		"project": c.project,
99896	})
99897	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99898}
99899
99900// Do executes the "compute.licenses.list" call.
99901// Exactly one of *LicensesListResponse or error will be non-nil. Any
99902// non-2xx status code is an error. Response headers are in either
99903// *LicensesListResponse.ServerResponse.Header or (if a response was
99904// returned at all) in error.(*googleapi.Error).Header. Use
99905// googleapi.IsNotModified to check whether the returned error was
99906// because http.StatusNotModified was returned.
99907func (c *LicensesListCall) Do(opts ...googleapi.CallOption) (*LicensesListResponse, error) {
99908	gensupport.SetOptions(c.urlParams_, opts...)
99909	res, err := c.doRequest("json")
99910	if res != nil && res.StatusCode == http.StatusNotModified {
99911		if res.Body != nil {
99912			res.Body.Close()
99913		}
99914		return nil, &googleapi.Error{
99915			Code:   res.StatusCode,
99916			Header: res.Header,
99917		}
99918	}
99919	if err != nil {
99920		return nil, err
99921	}
99922	defer googleapi.CloseBody(res)
99923	if err := googleapi.CheckResponse(res); err != nil {
99924		return nil, err
99925	}
99926	ret := &LicensesListResponse{
99927		ServerResponse: googleapi.ServerResponse{
99928			Header:         res.Header,
99929			HTTPStatusCode: res.StatusCode,
99930		},
99931	}
99932	target := &ret
99933	if err := gensupport.DecodeResponse(target, res); err != nil {
99934		return nil, err
99935	}
99936	return ret, nil
99937	// {
99938	//   "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. ",
99939	//   "flatPath": "projects/{project}/global/licenses",
99940	//   "httpMethod": "GET",
99941	//   "id": "compute.licenses.list",
99942	//   "parameterOrder": [
99943	//     "project"
99944	//   ],
99945	//   "parameters": {
99946	//     "filter": {
99947	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
99948	//       "location": "query",
99949	//       "type": "string"
99950	//     },
99951	//     "maxResults": {
99952	//       "default": "500",
99953	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
99954	//       "format": "uint32",
99955	//       "location": "query",
99956	//       "minimum": "0",
99957	//       "type": "integer"
99958	//     },
99959	//     "orderBy": {
99960	//       "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.",
99961	//       "location": "query",
99962	//       "type": "string"
99963	//     },
99964	//     "pageToken": {
99965	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
99966	//       "location": "query",
99967	//       "type": "string"
99968	//     },
99969	//     "project": {
99970	//       "description": "Project ID for this request.",
99971	//       "location": "path",
99972	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99973	//       "required": true,
99974	//       "type": "string"
99975	//     },
99976	//     "returnPartialSuccess": {
99977	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
99978	//       "location": "query",
99979	//       "type": "boolean"
99980	//     }
99981	//   },
99982	//   "path": "projects/{project}/global/licenses",
99983	//   "response": {
99984	//     "$ref": "LicensesListResponse"
99985	//   },
99986	//   "scopes": [
99987	//     "https://www.googleapis.com/auth/cloud-platform",
99988	//     "https://www.googleapis.com/auth/compute",
99989	//     "https://www.googleapis.com/auth/compute.readonly"
99990	//   ]
99991	// }
99992
99993}
99994
99995// Pages invokes f for each page of results.
99996// A non-nil error returned from f will halt the iteration.
99997// The provided context supersedes any context provided to the Context method.
99998func (c *LicensesListCall) Pages(ctx context.Context, f func(*LicensesListResponse) error) error {
99999	c.ctx_ = ctx
100000	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
100001	for {
100002		x, err := c.Do()
100003		if err != nil {
100004			return err
100005		}
100006		if err := f(x); err != nil {
100007			return err
100008		}
100009		if x.NextPageToken == "" {
100010			return nil
100011		}
100012		c.PageToken(x.NextPageToken)
100013	}
100014}
100015
100016// method id "compute.licenses.setIamPolicy":
100017
100018type LicensesSetIamPolicyCall struct {
100019	s                      *Service
100020	project                string
100021	resource               string
100022	globalsetpolicyrequest *GlobalSetPolicyRequest
100023	urlParams_             gensupport.URLParams
100024	ctx_                   context.Context
100025	header_                http.Header
100026}
100027
100028// SetIamPolicy: Sets the access control policy on the specified
100029// resource. Replaces any existing policy. *Caution* This resource is
100030// intended for use only by third-party partners who are creating Cloud
100031// Marketplace images.
100032//
100033// - project: Project ID for this request.
100034// - resource: Name or id of the resource for this request.
100035func (r *LicensesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *LicensesSetIamPolicyCall {
100036	c := &LicensesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100037	c.project = project
100038	c.resource = resource
100039	c.globalsetpolicyrequest = globalsetpolicyrequest
100040	return c
100041}
100042
100043// Fields allows partial responses to be retrieved. See
100044// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100045// for more information.
100046func (c *LicensesSetIamPolicyCall) Fields(s ...googleapi.Field) *LicensesSetIamPolicyCall {
100047	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100048	return c
100049}
100050
100051// Context sets the context to be used in this call's Do method. Any
100052// pending HTTP request will be aborted if the provided context is
100053// canceled.
100054func (c *LicensesSetIamPolicyCall) Context(ctx context.Context) *LicensesSetIamPolicyCall {
100055	c.ctx_ = ctx
100056	return c
100057}
100058
100059// Header returns an http.Header that can be modified by the caller to
100060// add HTTP headers to the request.
100061func (c *LicensesSetIamPolicyCall) Header() http.Header {
100062	if c.header_ == nil {
100063		c.header_ = make(http.Header)
100064	}
100065	return c.header_
100066}
100067
100068func (c *LicensesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
100069	reqHeaders := make(http.Header)
100070	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
100071	for k, v := range c.header_ {
100072		reqHeaders[k] = v
100073	}
100074	reqHeaders.Set("User-Agent", c.s.userAgent())
100075	var body io.Reader = nil
100076	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
100077	if err != nil {
100078		return nil, err
100079	}
100080	reqHeaders.Set("Content-Type", "application/json")
100081	c.urlParams_.Set("alt", alt)
100082	c.urlParams_.Set("prettyPrint", "false")
100083	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{resource}/setIamPolicy")
100084	urls += "?" + c.urlParams_.Encode()
100085	req, err := http.NewRequest("POST", urls, body)
100086	if err != nil {
100087		return nil, err
100088	}
100089	req.Header = reqHeaders
100090	googleapi.Expand(req.URL, map[string]string{
100091		"project":  c.project,
100092		"resource": c.resource,
100093	})
100094	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100095}
100096
100097// Do executes the "compute.licenses.setIamPolicy" call.
100098// Exactly one of *Policy or error will be non-nil. Any non-2xx status
100099// code is an error. Response headers are in either
100100// *Policy.ServerResponse.Header or (if a response was returned at all)
100101// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
100102// check whether the returned error was because http.StatusNotModified
100103// was returned.
100104func (c *LicensesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
100105	gensupport.SetOptions(c.urlParams_, opts...)
100106	res, err := c.doRequest("json")
100107	if res != nil && res.StatusCode == http.StatusNotModified {
100108		if res.Body != nil {
100109			res.Body.Close()
100110		}
100111		return nil, &googleapi.Error{
100112			Code:   res.StatusCode,
100113			Header: res.Header,
100114		}
100115	}
100116	if err != nil {
100117		return nil, err
100118	}
100119	defer googleapi.CloseBody(res)
100120	if err := googleapi.CheckResponse(res); err != nil {
100121		return nil, err
100122	}
100123	ret := &Policy{
100124		ServerResponse: googleapi.ServerResponse{
100125			Header:         res.Header,
100126			HTTPStatusCode: res.StatusCode,
100127		},
100128	}
100129	target := &ret
100130	if err := gensupport.DecodeResponse(target, res); err != nil {
100131		return nil, err
100132	}
100133	return ret, nil
100134	// {
100135	//   "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. ",
100136	//   "flatPath": "projects/{project}/global/licenses/{resource}/setIamPolicy",
100137	//   "httpMethod": "POST",
100138	//   "id": "compute.licenses.setIamPolicy",
100139	//   "parameterOrder": [
100140	//     "project",
100141	//     "resource"
100142	//   ],
100143	//   "parameters": {
100144	//     "project": {
100145	//       "description": "Project ID for this request.",
100146	//       "location": "path",
100147	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100148	//       "required": true,
100149	//       "type": "string"
100150	//     },
100151	//     "resource": {
100152	//       "description": "Name or id of the resource for this request.",
100153	//       "location": "path",
100154	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100155	//       "required": true,
100156	//       "type": "string"
100157	//     }
100158	//   },
100159	//   "path": "projects/{project}/global/licenses/{resource}/setIamPolicy",
100160	//   "request": {
100161	//     "$ref": "GlobalSetPolicyRequest"
100162	//   },
100163	//   "response": {
100164	//     "$ref": "Policy"
100165	//   },
100166	//   "scopes": [
100167	//     "https://www.googleapis.com/auth/cloud-platform",
100168	//     "https://www.googleapis.com/auth/compute"
100169	//   ]
100170	// }
100171
100172}
100173
100174// method id "compute.licenses.testIamPermissions":
100175
100176type LicensesTestIamPermissionsCall struct {
100177	s                      *Service
100178	project                string
100179	resource               string
100180	testpermissionsrequest *TestPermissionsRequest
100181	urlParams_             gensupport.URLParams
100182	ctx_                   context.Context
100183	header_                http.Header
100184}
100185
100186// TestIamPermissions: Returns permissions that a caller has on the
100187// specified resource. *Caution* This resource is intended for use only
100188// by third-party partners who are creating Cloud Marketplace images.
100189//
100190// - project: Project ID for this request.
100191// - resource: Name or id of the resource for this request.
100192func (r *LicensesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *LicensesTestIamPermissionsCall {
100193	c := &LicensesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100194	c.project = project
100195	c.resource = resource
100196	c.testpermissionsrequest = testpermissionsrequest
100197	return c
100198}
100199
100200// Fields allows partial responses to be retrieved. See
100201// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100202// for more information.
100203func (c *LicensesTestIamPermissionsCall) Fields(s ...googleapi.Field) *LicensesTestIamPermissionsCall {
100204	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100205	return c
100206}
100207
100208// Context sets the context to be used in this call's Do method. Any
100209// pending HTTP request will be aborted if the provided context is
100210// canceled.
100211func (c *LicensesTestIamPermissionsCall) Context(ctx context.Context) *LicensesTestIamPermissionsCall {
100212	c.ctx_ = ctx
100213	return c
100214}
100215
100216// Header returns an http.Header that can be modified by the caller to
100217// add HTTP headers to the request.
100218func (c *LicensesTestIamPermissionsCall) Header() http.Header {
100219	if c.header_ == nil {
100220		c.header_ = make(http.Header)
100221	}
100222	return c.header_
100223}
100224
100225func (c *LicensesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
100226	reqHeaders := make(http.Header)
100227	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
100228	for k, v := range c.header_ {
100229		reqHeaders[k] = v
100230	}
100231	reqHeaders.Set("User-Agent", c.s.userAgent())
100232	var body io.Reader = nil
100233	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
100234	if err != nil {
100235		return nil, err
100236	}
100237	reqHeaders.Set("Content-Type", "application/json")
100238	c.urlParams_.Set("alt", alt)
100239	c.urlParams_.Set("prettyPrint", "false")
100240	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{resource}/testIamPermissions")
100241	urls += "?" + c.urlParams_.Encode()
100242	req, err := http.NewRequest("POST", urls, body)
100243	if err != nil {
100244		return nil, err
100245	}
100246	req.Header = reqHeaders
100247	googleapi.Expand(req.URL, map[string]string{
100248		"project":  c.project,
100249		"resource": c.resource,
100250	})
100251	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100252}
100253
100254// Do executes the "compute.licenses.testIamPermissions" call.
100255// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
100256// non-2xx status code is an error. Response headers are in either
100257// *TestPermissionsResponse.ServerResponse.Header or (if a response was
100258// returned at all) in error.(*googleapi.Error).Header. Use
100259// googleapi.IsNotModified to check whether the returned error was
100260// because http.StatusNotModified was returned.
100261func (c *LicensesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
100262	gensupport.SetOptions(c.urlParams_, opts...)
100263	res, err := c.doRequest("json")
100264	if res != nil && res.StatusCode == http.StatusNotModified {
100265		if res.Body != nil {
100266			res.Body.Close()
100267		}
100268		return nil, &googleapi.Error{
100269			Code:   res.StatusCode,
100270			Header: res.Header,
100271		}
100272	}
100273	if err != nil {
100274		return nil, err
100275	}
100276	defer googleapi.CloseBody(res)
100277	if err := googleapi.CheckResponse(res); err != nil {
100278		return nil, err
100279	}
100280	ret := &TestPermissionsResponse{
100281		ServerResponse: googleapi.ServerResponse{
100282			Header:         res.Header,
100283			HTTPStatusCode: res.StatusCode,
100284		},
100285	}
100286	target := &ret
100287	if err := gensupport.DecodeResponse(target, res); err != nil {
100288		return nil, err
100289	}
100290	return ret, nil
100291	// {
100292	//   "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. ",
100293	//   "flatPath": "projects/{project}/global/licenses/{resource}/testIamPermissions",
100294	//   "httpMethod": "POST",
100295	//   "id": "compute.licenses.testIamPermissions",
100296	//   "parameterOrder": [
100297	//     "project",
100298	//     "resource"
100299	//   ],
100300	//   "parameters": {
100301	//     "project": {
100302	//       "description": "Project ID for this request.",
100303	//       "location": "path",
100304	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100305	//       "required": true,
100306	//       "type": "string"
100307	//     },
100308	//     "resource": {
100309	//       "description": "Name or id of the resource for this request.",
100310	//       "location": "path",
100311	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100312	//       "required": true,
100313	//       "type": "string"
100314	//     }
100315	//   },
100316	//   "path": "projects/{project}/global/licenses/{resource}/testIamPermissions",
100317	//   "request": {
100318	//     "$ref": "TestPermissionsRequest"
100319	//   },
100320	//   "response": {
100321	//     "$ref": "TestPermissionsResponse"
100322	//   },
100323	//   "scopes": [
100324	//     "https://www.googleapis.com/auth/cloud-platform",
100325	//     "https://www.googleapis.com/auth/compute",
100326	//     "https://www.googleapis.com/auth/compute.readonly"
100327	//   ]
100328	// }
100329
100330}
100331
100332// method id "compute.machineTypes.aggregatedList":
100333
100334type MachineTypesAggregatedListCall struct {
100335	s            *Service
100336	project      string
100337	urlParams_   gensupport.URLParams
100338	ifNoneMatch_ string
100339	ctx_         context.Context
100340	header_      http.Header
100341}
100342
100343// AggregatedList: Retrieves an aggregated list of machine types.
100344//
100345// - project: Project ID for this request.
100346func (r *MachineTypesService) AggregatedList(project string) *MachineTypesAggregatedListCall {
100347	c := &MachineTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100348	c.project = project
100349	return c
100350}
100351
100352// Filter sets the optional parameter "filter": A filter expression that
100353// filters resources listed in the response. The expression must specify
100354// the field name, a comparison operator, and the value that you want to
100355// use for filtering. The value must be a string, a number, or a
100356// boolean. The comparison operator must be either `=`, `!=`, `>`, or
100357// `<`. For example, if you are filtering Compute Engine instances, you
100358// can exclude instances named `example-instance` by specifying `name !=
100359// example-instance`. You can also filter nested fields. For example,
100360// you could specify `scheduling.automaticRestart = false` to include
100361// instances only if they are not scheduled for automatic restarts. You
100362// can use filtering on nested fields to filter based on resource
100363// labels. To filter on multiple expressions, provide each separate
100364// expression within parentheses. For example: ```
100365// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
100366// ``` By default, each expression is an `AND` expression. However, you
100367// can include `AND` and `OR` expressions explicitly. For example: ```
100368// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
100369// AND (scheduling.automaticRestart = true) ```
100370func (c *MachineTypesAggregatedListCall) Filter(filter string) *MachineTypesAggregatedListCall {
100371	c.urlParams_.Set("filter", filter)
100372	return c
100373}
100374
100375// IncludeAllScopes sets the optional parameter "includeAllScopes":
100376// Indicates whether every visible scope for each scope type (zone,
100377// region, global) should be included in the response. For new resource
100378// types added after this field, the flag has no effect as new resource
100379// types will always include every visible scope for each scope type in
100380// response. For resource types which predate this field, if this flag
100381// is omitted or false, only scopes of the scope types where the
100382// resource type is expected to be found will be included.
100383func (c *MachineTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *MachineTypesAggregatedListCall {
100384	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
100385	return c
100386}
100387
100388// MaxResults sets the optional parameter "maxResults": The maximum
100389// number of results per page that should be returned. If the number of
100390// available results is larger than `maxResults`, Compute Engine returns
100391// a `nextPageToken` that can be used to get the next page of results in
100392// subsequent list requests. Acceptable values are `0` to `500`,
100393// inclusive. (Default: `500`)
100394func (c *MachineTypesAggregatedListCall) MaxResults(maxResults int64) *MachineTypesAggregatedListCall {
100395	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
100396	return c
100397}
100398
100399// OrderBy sets the optional parameter "orderBy": Sorts list results by
100400// a certain order. By default, results are returned in alphanumerical
100401// order based on the resource name. You can also sort results in
100402// descending order based on the creation timestamp using
100403// `orderBy="creationTimestamp desc". This sorts results based on the
100404// `creationTimestamp` field in reverse chronological order (newest
100405// result first). Use this to sort resources like operations so that the
100406// newest operation is returned first. Currently, only sorting by `name`
100407// or `creationTimestamp desc` is supported.
100408func (c *MachineTypesAggregatedListCall) OrderBy(orderBy string) *MachineTypesAggregatedListCall {
100409	c.urlParams_.Set("orderBy", orderBy)
100410	return c
100411}
100412
100413// PageToken sets the optional parameter "pageToken": Specifies a page
100414// token to use. Set `pageToken` to the `nextPageToken` returned by a
100415// previous list request to get the next page of results.
100416func (c *MachineTypesAggregatedListCall) PageToken(pageToken string) *MachineTypesAggregatedListCall {
100417	c.urlParams_.Set("pageToken", pageToken)
100418	return c
100419}
100420
100421// ReturnPartialSuccess sets the optional parameter
100422// "returnPartialSuccess": Opt-in for partial success behavior which
100423// provides partial results in case of failure. The default value is
100424// false.
100425func (c *MachineTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *MachineTypesAggregatedListCall {
100426	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
100427	return c
100428}
100429
100430// Fields allows partial responses to be retrieved. See
100431// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100432// for more information.
100433func (c *MachineTypesAggregatedListCall) Fields(s ...googleapi.Field) *MachineTypesAggregatedListCall {
100434	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100435	return c
100436}
100437
100438// IfNoneMatch sets the optional parameter which makes the operation
100439// fail if the object's ETag matches the given value. This is useful for
100440// getting updates only after the object has changed since the last
100441// request. Use googleapi.IsNotModified to check whether the response
100442// error from Do is the result of In-None-Match.
100443func (c *MachineTypesAggregatedListCall) IfNoneMatch(entityTag string) *MachineTypesAggregatedListCall {
100444	c.ifNoneMatch_ = entityTag
100445	return c
100446}
100447
100448// Context sets the context to be used in this call's Do method. Any
100449// pending HTTP request will be aborted if the provided context is
100450// canceled.
100451func (c *MachineTypesAggregatedListCall) Context(ctx context.Context) *MachineTypesAggregatedListCall {
100452	c.ctx_ = ctx
100453	return c
100454}
100455
100456// Header returns an http.Header that can be modified by the caller to
100457// add HTTP headers to the request.
100458func (c *MachineTypesAggregatedListCall) Header() http.Header {
100459	if c.header_ == nil {
100460		c.header_ = make(http.Header)
100461	}
100462	return c.header_
100463}
100464
100465func (c *MachineTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
100466	reqHeaders := make(http.Header)
100467	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
100468	for k, v := range c.header_ {
100469		reqHeaders[k] = v
100470	}
100471	reqHeaders.Set("User-Agent", c.s.userAgent())
100472	if c.ifNoneMatch_ != "" {
100473		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100474	}
100475	var body io.Reader = nil
100476	c.urlParams_.Set("alt", alt)
100477	c.urlParams_.Set("prettyPrint", "false")
100478	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/machineTypes")
100479	urls += "?" + c.urlParams_.Encode()
100480	req, err := http.NewRequest("GET", urls, body)
100481	if err != nil {
100482		return nil, err
100483	}
100484	req.Header = reqHeaders
100485	googleapi.Expand(req.URL, map[string]string{
100486		"project": c.project,
100487	})
100488	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100489}
100490
100491// Do executes the "compute.machineTypes.aggregatedList" call.
100492// Exactly one of *MachineTypeAggregatedList or error will be non-nil.
100493// Any non-2xx status code is an error. Response headers are in either
100494// *MachineTypeAggregatedList.ServerResponse.Header or (if a response
100495// was returned at all) in error.(*googleapi.Error).Header. Use
100496// googleapi.IsNotModified to check whether the returned error was
100497// because http.StatusNotModified was returned.
100498func (c *MachineTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*MachineTypeAggregatedList, error) {
100499	gensupport.SetOptions(c.urlParams_, opts...)
100500	res, err := c.doRequest("json")
100501	if res != nil && res.StatusCode == http.StatusNotModified {
100502		if res.Body != nil {
100503			res.Body.Close()
100504		}
100505		return nil, &googleapi.Error{
100506			Code:   res.StatusCode,
100507			Header: res.Header,
100508		}
100509	}
100510	if err != nil {
100511		return nil, err
100512	}
100513	defer googleapi.CloseBody(res)
100514	if err := googleapi.CheckResponse(res); err != nil {
100515		return nil, err
100516	}
100517	ret := &MachineTypeAggregatedList{
100518		ServerResponse: googleapi.ServerResponse{
100519			Header:         res.Header,
100520			HTTPStatusCode: res.StatusCode,
100521		},
100522	}
100523	target := &ret
100524	if err := gensupport.DecodeResponse(target, res); err != nil {
100525		return nil, err
100526	}
100527	return ret, nil
100528	// {
100529	//   "description": "Retrieves an aggregated list of machine types.",
100530	//   "flatPath": "projects/{project}/aggregated/machineTypes",
100531	//   "httpMethod": "GET",
100532	//   "id": "compute.machineTypes.aggregatedList",
100533	//   "parameterOrder": [
100534	//     "project"
100535	//   ],
100536	//   "parameters": {
100537	//     "filter": {
100538	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
100539	//       "location": "query",
100540	//       "type": "string"
100541	//     },
100542	//     "includeAllScopes": {
100543	//       "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.",
100544	//       "location": "query",
100545	//       "type": "boolean"
100546	//     },
100547	//     "maxResults": {
100548	//       "default": "500",
100549	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
100550	//       "format": "uint32",
100551	//       "location": "query",
100552	//       "minimum": "0",
100553	//       "type": "integer"
100554	//     },
100555	//     "orderBy": {
100556	//       "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.",
100557	//       "location": "query",
100558	//       "type": "string"
100559	//     },
100560	//     "pageToken": {
100561	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
100562	//       "location": "query",
100563	//       "type": "string"
100564	//     },
100565	//     "project": {
100566	//       "description": "Project ID for this request.",
100567	//       "location": "path",
100568	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100569	//       "required": true,
100570	//       "type": "string"
100571	//     },
100572	//     "returnPartialSuccess": {
100573	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
100574	//       "location": "query",
100575	//       "type": "boolean"
100576	//     }
100577	//   },
100578	//   "path": "projects/{project}/aggregated/machineTypes",
100579	//   "response": {
100580	//     "$ref": "MachineTypeAggregatedList"
100581	//   },
100582	//   "scopes": [
100583	//     "https://www.googleapis.com/auth/cloud-platform",
100584	//     "https://www.googleapis.com/auth/compute",
100585	//     "https://www.googleapis.com/auth/compute.readonly"
100586	//   ]
100587	// }
100588
100589}
100590
100591// Pages invokes f for each page of results.
100592// A non-nil error returned from f will halt the iteration.
100593// The provided context supersedes any context provided to the Context method.
100594func (c *MachineTypesAggregatedListCall) Pages(ctx context.Context, f func(*MachineTypeAggregatedList) error) error {
100595	c.ctx_ = ctx
100596	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
100597	for {
100598		x, err := c.Do()
100599		if err != nil {
100600			return err
100601		}
100602		if err := f(x); err != nil {
100603			return err
100604		}
100605		if x.NextPageToken == "" {
100606			return nil
100607		}
100608		c.PageToken(x.NextPageToken)
100609	}
100610}
100611
100612// method id "compute.machineTypes.get":
100613
100614type MachineTypesGetCall struct {
100615	s            *Service
100616	project      string
100617	zone         string
100618	machineType  string
100619	urlParams_   gensupport.URLParams
100620	ifNoneMatch_ string
100621	ctx_         context.Context
100622	header_      http.Header
100623}
100624
100625// Get: Returns the specified machine type. Gets a list of available
100626// machine types by making a list() request.
100627//
100628// - machineType: Name of the machine type to return.
100629// - project: Project ID for this request.
100630// - zone: The name of the zone for this request.
100631func (r *MachineTypesService) Get(project string, zone string, machineType string) *MachineTypesGetCall {
100632	c := &MachineTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100633	c.project = project
100634	c.zone = zone
100635	c.machineType = machineType
100636	return c
100637}
100638
100639// Fields allows partial responses to be retrieved. See
100640// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100641// for more information.
100642func (c *MachineTypesGetCall) Fields(s ...googleapi.Field) *MachineTypesGetCall {
100643	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100644	return c
100645}
100646
100647// IfNoneMatch sets the optional parameter which makes the operation
100648// fail if the object's ETag matches the given value. This is useful for
100649// getting updates only after the object has changed since the last
100650// request. Use googleapi.IsNotModified to check whether the response
100651// error from Do is the result of In-None-Match.
100652func (c *MachineTypesGetCall) IfNoneMatch(entityTag string) *MachineTypesGetCall {
100653	c.ifNoneMatch_ = entityTag
100654	return c
100655}
100656
100657// Context sets the context to be used in this call's Do method. Any
100658// pending HTTP request will be aborted if the provided context is
100659// canceled.
100660func (c *MachineTypesGetCall) Context(ctx context.Context) *MachineTypesGetCall {
100661	c.ctx_ = ctx
100662	return c
100663}
100664
100665// Header returns an http.Header that can be modified by the caller to
100666// add HTTP headers to the request.
100667func (c *MachineTypesGetCall) Header() http.Header {
100668	if c.header_ == nil {
100669		c.header_ = make(http.Header)
100670	}
100671	return c.header_
100672}
100673
100674func (c *MachineTypesGetCall) doRequest(alt string) (*http.Response, error) {
100675	reqHeaders := make(http.Header)
100676	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
100677	for k, v := range c.header_ {
100678		reqHeaders[k] = v
100679	}
100680	reqHeaders.Set("User-Agent", c.s.userAgent())
100681	if c.ifNoneMatch_ != "" {
100682		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100683	}
100684	var body io.Reader = nil
100685	c.urlParams_.Set("alt", alt)
100686	c.urlParams_.Set("prettyPrint", "false")
100687	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/machineTypes/{machineType}")
100688	urls += "?" + c.urlParams_.Encode()
100689	req, err := http.NewRequest("GET", urls, body)
100690	if err != nil {
100691		return nil, err
100692	}
100693	req.Header = reqHeaders
100694	googleapi.Expand(req.URL, map[string]string{
100695		"project":     c.project,
100696		"zone":        c.zone,
100697		"machineType": c.machineType,
100698	})
100699	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100700}
100701
100702// Do executes the "compute.machineTypes.get" call.
100703// Exactly one of *MachineType or error will be non-nil. Any non-2xx
100704// status code is an error. Response headers are in either
100705// *MachineType.ServerResponse.Header or (if a response was returned at
100706// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100707// to check whether the returned error was because
100708// http.StatusNotModified was returned.
100709func (c *MachineTypesGetCall) Do(opts ...googleapi.CallOption) (*MachineType, error) {
100710	gensupport.SetOptions(c.urlParams_, opts...)
100711	res, err := c.doRequest("json")
100712	if res != nil && res.StatusCode == http.StatusNotModified {
100713		if res.Body != nil {
100714			res.Body.Close()
100715		}
100716		return nil, &googleapi.Error{
100717			Code:   res.StatusCode,
100718			Header: res.Header,
100719		}
100720	}
100721	if err != nil {
100722		return nil, err
100723	}
100724	defer googleapi.CloseBody(res)
100725	if err := googleapi.CheckResponse(res); err != nil {
100726		return nil, err
100727	}
100728	ret := &MachineType{
100729		ServerResponse: googleapi.ServerResponse{
100730			Header:         res.Header,
100731			HTTPStatusCode: res.StatusCode,
100732		},
100733	}
100734	target := &ret
100735	if err := gensupport.DecodeResponse(target, res); err != nil {
100736		return nil, err
100737	}
100738	return ret, nil
100739	// {
100740	//   "description": "Returns the specified machine type. Gets a list of available machine types by making a list() request.",
100741	//   "flatPath": "projects/{project}/zones/{zone}/machineTypes/{machineType}",
100742	//   "httpMethod": "GET",
100743	//   "id": "compute.machineTypes.get",
100744	//   "parameterOrder": [
100745	//     "project",
100746	//     "zone",
100747	//     "machineType"
100748	//   ],
100749	//   "parameters": {
100750	//     "machineType": {
100751	//       "description": "Name of the machine type to return.",
100752	//       "location": "path",
100753	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100754	//       "required": true,
100755	//       "type": "string"
100756	//     },
100757	//     "project": {
100758	//       "description": "Project ID for this request.",
100759	//       "location": "path",
100760	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100761	//       "required": true,
100762	//       "type": "string"
100763	//     },
100764	//     "zone": {
100765	//       "description": "The name of the zone for this request.",
100766	//       "location": "path",
100767	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
100768	//       "required": true,
100769	//       "type": "string"
100770	//     }
100771	//   },
100772	//   "path": "projects/{project}/zones/{zone}/machineTypes/{machineType}",
100773	//   "response": {
100774	//     "$ref": "MachineType"
100775	//   },
100776	//   "scopes": [
100777	//     "https://www.googleapis.com/auth/cloud-platform",
100778	//     "https://www.googleapis.com/auth/compute",
100779	//     "https://www.googleapis.com/auth/compute.readonly"
100780	//   ]
100781	// }
100782
100783}
100784
100785// method id "compute.machineTypes.list":
100786
100787type MachineTypesListCall struct {
100788	s            *Service
100789	project      string
100790	zone         string
100791	urlParams_   gensupport.URLParams
100792	ifNoneMatch_ string
100793	ctx_         context.Context
100794	header_      http.Header
100795}
100796
100797// List: Retrieves a list of machine types available to the specified
100798// project.
100799//
100800// - project: Project ID for this request.
100801// - zone: The name of the zone for this request.
100802func (r *MachineTypesService) List(project string, zone string) *MachineTypesListCall {
100803	c := &MachineTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100804	c.project = project
100805	c.zone = zone
100806	return c
100807}
100808
100809// Filter sets the optional parameter "filter": A filter expression that
100810// filters resources listed in the response. The expression must specify
100811// the field name, a comparison operator, and the value that you want to
100812// use for filtering. The value must be a string, a number, or a
100813// boolean. The comparison operator must be either `=`, `!=`, `>`, or
100814// `<`. For example, if you are filtering Compute Engine instances, you
100815// can exclude instances named `example-instance` by specifying `name !=
100816// example-instance`. You can also filter nested fields. For example,
100817// you could specify `scheduling.automaticRestart = false` to include
100818// instances only if they are not scheduled for automatic restarts. You
100819// can use filtering on nested fields to filter based on resource
100820// labels. To filter on multiple expressions, provide each separate
100821// expression within parentheses. For example: ```
100822// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
100823// ``` By default, each expression is an `AND` expression. However, you
100824// can include `AND` and `OR` expressions explicitly. For example: ```
100825// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
100826// AND (scheduling.automaticRestart = true) ```
100827func (c *MachineTypesListCall) Filter(filter string) *MachineTypesListCall {
100828	c.urlParams_.Set("filter", filter)
100829	return c
100830}
100831
100832// MaxResults sets the optional parameter "maxResults": The maximum
100833// number of results per page that should be returned. If the number of
100834// available results is larger than `maxResults`, Compute Engine returns
100835// a `nextPageToken` that can be used to get the next page of results in
100836// subsequent list requests. Acceptable values are `0` to `500`,
100837// inclusive. (Default: `500`)
100838func (c *MachineTypesListCall) MaxResults(maxResults int64) *MachineTypesListCall {
100839	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
100840	return c
100841}
100842
100843// OrderBy sets the optional parameter "orderBy": Sorts list results by
100844// a certain order. By default, results are returned in alphanumerical
100845// order based on the resource name. You can also sort results in
100846// descending order based on the creation timestamp using
100847// `orderBy="creationTimestamp desc". This sorts results based on the
100848// `creationTimestamp` field in reverse chronological order (newest
100849// result first). Use this to sort resources like operations so that the
100850// newest operation is returned first. Currently, only sorting by `name`
100851// or `creationTimestamp desc` is supported.
100852func (c *MachineTypesListCall) OrderBy(orderBy string) *MachineTypesListCall {
100853	c.urlParams_.Set("orderBy", orderBy)
100854	return c
100855}
100856
100857// PageToken sets the optional parameter "pageToken": Specifies a page
100858// token to use. Set `pageToken` to the `nextPageToken` returned by a
100859// previous list request to get the next page of results.
100860func (c *MachineTypesListCall) PageToken(pageToken string) *MachineTypesListCall {
100861	c.urlParams_.Set("pageToken", pageToken)
100862	return c
100863}
100864
100865// ReturnPartialSuccess sets the optional parameter
100866// "returnPartialSuccess": Opt-in for partial success behavior which
100867// provides partial results in case of failure. The default value is
100868// false.
100869func (c *MachineTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *MachineTypesListCall {
100870	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
100871	return c
100872}
100873
100874// Fields allows partial responses to be retrieved. See
100875// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100876// for more information.
100877func (c *MachineTypesListCall) Fields(s ...googleapi.Field) *MachineTypesListCall {
100878	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100879	return c
100880}
100881
100882// IfNoneMatch sets the optional parameter which makes the operation
100883// fail if the object's ETag matches the given value. This is useful for
100884// getting updates only after the object has changed since the last
100885// request. Use googleapi.IsNotModified to check whether the response
100886// error from Do is the result of In-None-Match.
100887func (c *MachineTypesListCall) IfNoneMatch(entityTag string) *MachineTypesListCall {
100888	c.ifNoneMatch_ = entityTag
100889	return c
100890}
100891
100892// Context sets the context to be used in this call's Do method. Any
100893// pending HTTP request will be aborted if the provided context is
100894// canceled.
100895func (c *MachineTypesListCall) Context(ctx context.Context) *MachineTypesListCall {
100896	c.ctx_ = ctx
100897	return c
100898}
100899
100900// Header returns an http.Header that can be modified by the caller to
100901// add HTTP headers to the request.
100902func (c *MachineTypesListCall) Header() http.Header {
100903	if c.header_ == nil {
100904		c.header_ = make(http.Header)
100905	}
100906	return c.header_
100907}
100908
100909func (c *MachineTypesListCall) doRequest(alt string) (*http.Response, error) {
100910	reqHeaders := make(http.Header)
100911	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
100912	for k, v := range c.header_ {
100913		reqHeaders[k] = v
100914	}
100915	reqHeaders.Set("User-Agent", c.s.userAgent())
100916	if c.ifNoneMatch_ != "" {
100917		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100918	}
100919	var body io.Reader = nil
100920	c.urlParams_.Set("alt", alt)
100921	c.urlParams_.Set("prettyPrint", "false")
100922	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/machineTypes")
100923	urls += "?" + c.urlParams_.Encode()
100924	req, err := http.NewRequest("GET", urls, body)
100925	if err != nil {
100926		return nil, err
100927	}
100928	req.Header = reqHeaders
100929	googleapi.Expand(req.URL, map[string]string{
100930		"project": c.project,
100931		"zone":    c.zone,
100932	})
100933	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100934}
100935
100936// Do executes the "compute.machineTypes.list" call.
100937// Exactly one of *MachineTypeList or error will be non-nil. Any non-2xx
100938// status code is an error. Response headers are in either
100939// *MachineTypeList.ServerResponse.Header or (if a response was returned
100940// at all) in error.(*googleapi.Error).Header. Use
100941// googleapi.IsNotModified to check whether the returned error was
100942// because http.StatusNotModified was returned.
100943func (c *MachineTypesListCall) Do(opts ...googleapi.CallOption) (*MachineTypeList, error) {
100944	gensupport.SetOptions(c.urlParams_, opts...)
100945	res, err := c.doRequest("json")
100946	if res != nil && res.StatusCode == http.StatusNotModified {
100947		if res.Body != nil {
100948			res.Body.Close()
100949		}
100950		return nil, &googleapi.Error{
100951			Code:   res.StatusCode,
100952			Header: res.Header,
100953		}
100954	}
100955	if err != nil {
100956		return nil, err
100957	}
100958	defer googleapi.CloseBody(res)
100959	if err := googleapi.CheckResponse(res); err != nil {
100960		return nil, err
100961	}
100962	ret := &MachineTypeList{
100963		ServerResponse: googleapi.ServerResponse{
100964			Header:         res.Header,
100965			HTTPStatusCode: res.StatusCode,
100966		},
100967	}
100968	target := &ret
100969	if err := gensupport.DecodeResponse(target, res); err != nil {
100970		return nil, err
100971	}
100972	return ret, nil
100973	// {
100974	//   "description": "Retrieves a list of machine types available to the specified project.",
100975	//   "flatPath": "projects/{project}/zones/{zone}/machineTypes",
100976	//   "httpMethod": "GET",
100977	//   "id": "compute.machineTypes.list",
100978	//   "parameterOrder": [
100979	//     "project",
100980	//     "zone"
100981	//   ],
100982	//   "parameters": {
100983	//     "filter": {
100984	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
100985	//       "location": "query",
100986	//       "type": "string"
100987	//     },
100988	//     "maxResults": {
100989	//       "default": "500",
100990	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
100991	//       "format": "uint32",
100992	//       "location": "query",
100993	//       "minimum": "0",
100994	//       "type": "integer"
100995	//     },
100996	//     "orderBy": {
100997	//       "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.",
100998	//       "location": "query",
100999	//       "type": "string"
101000	//     },
101001	//     "pageToken": {
101002	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
101003	//       "location": "query",
101004	//       "type": "string"
101005	//     },
101006	//     "project": {
101007	//       "description": "Project ID for this request.",
101008	//       "location": "path",
101009	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101010	//       "required": true,
101011	//       "type": "string"
101012	//     },
101013	//     "returnPartialSuccess": {
101014	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
101015	//       "location": "query",
101016	//       "type": "boolean"
101017	//     },
101018	//     "zone": {
101019	//       "description": "The name of the zone for this request.",
101020	//       "location": "path",
101021	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
101022	//       "required": true,
101023	//       "type": "string"
101024	//     }
101025	//   },
101026	//   "path": "projects/{project}/zones/{zone}/machineTypes",
101027	//   "response": {
101028	//     "$ref": "MachineTypeList"
101029	//   },
101030	//   "scopes": [
101031	//     "https://www.googleapis.com/auth/cloud-platform",
101032	//     "https://www.googleapis.com/auth/compute",
101033	//     "https://www.googleapis.com/auth/compute.readonly"
101034	//   ]
101035	// }
101036
101037}
101038
101039// Pages invokes f for each page of results.
101040// A non-nil error returned from f will halt the iteration.
101041// The provided context supersedes any context provided to the Context method.
101042func (c *MachineTypesListCall) Pages(ctx context.Context, f func(*MachineTypeList) error) error {
101043	c.ctx_ = ctx
101044	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
101045	for {
101046		x, err := c.Do()
101047		if err != nil {
101048			return err
101049		}
101050		if err := f(x); err != nil {
101051			return err
101052		}
101053		if x.NextPageToken == "" {
101054			return nil
101055		}
101056		c.PageToken(x.NextPageToken)
101057	}
101058}
101059
101060// method id "compute.networkEndpointGroups.aggregatedList":
101061
101062type NetworkEndpointGroupsAggregatedListCall struct {
101063	s            *Service
101064	project      string
101065	urlParams_   gensupport.URLParams
101066	ifNoneMatch_ string
101067	ctx_         context.Context
101068	header_      http.Header
101069}
101070
101071// AggregatedList: Retrieves the list of network endpoint groups and
101072// sorts them by zone.
101073//
101074// - project: Project ID for this request.
101075func (r *NetworkEndpointGroupsService) AggregatedList(project string) *NetworkEndpointGroupsAggregatedListCall {
101076	c := &NetworkEndpointGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101077	c.project = project
101078	return c
101079}
101080
101081// Filter sets the optional parameter "filter": A filter expression that
101082// filters resources listed in the response. The expression must specify
101083// the field name, a comparison operator, and the value that you want to
101084// use for filtering. The value must be a string, a number, or a
101085// boolean. The comparison operator must be either `=`, `!=`, `>`, or
101086// `<`. For example, if you are filtering Compute Engine instances, you
101087// can exclude instances named `example-instance` by specifying `name !=
101088// example-instance`. You can also filter nested fields. For example,
101089// you could specify `scheduling.automaticRestart = false` to include
101090// instances only if they are not scheduled for automatic restarts. You
101091// can use filtering on nested fields to filter based on resource
101092// labels. To filter on multiple expressions, provide each separate
101093// expression within parentheses. For example: ```
101094// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
101095// ``` By default, each expression is an `AND` expression. However, you
101096// can include `AND` and `OR` expressions explicitly. For example: ```
101097// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
101098// AND (scheduling.automaticRestart = true) ```
101099func (c *NetworkEndpointGroupsAggregatedListCall) Filter(filter string) *NetworkEndpointGroupsAggregatedListCall {
101100	c.urlParams_.Set("filter", filter)
101101	return c
101102}
101103
101104// IncludeAllScopes sets the optional parameter "includeAllScopes":
101105// Indicates whether every visible scope for each scope type (zone,
101106// region, global) should be included in the response. For new resource
101107// types added after this field, the flag has no effect as new resource
101108// types will always include every visible scope for each scope type in
101109// response. For resource types which predate this field, if this flag
101110// is omitted or false, only scopes of the scope types where the
101111// resource type is expected to be found will be included.
101112func (c *NetworkEndpointGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NetworkEndpointGroupsAggregatedListCall {
101113	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
101114	return c
101115}
101116
101117// MaxResults sets the optional parameter "maxResults": The maximum
101118// number of results per page that should be returned. If the number of
101119// available results is larger than `maxResults`, Compute Engine returns
101120// a `nextPageToken` that can be used to get the next page of results in
101121// subsequent list requests. Acceptable values are `0` to `500`,
101122// inclusive. (Default: `500`)
101123func (c *NetworkEndpointGroupsAggregatedListCall) MaxResults(maxResults int64) *NetworkEndpointGroupsAggregatedListCall {
101124	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
101125	return c
101126}
101127
101128// OrderBy sets the optional parameter "orderBy": Sorts list results by
101129// a certain order. By default, results are returned in alphanumerical
101130// order based on the resource name. You can also sort results in
101131// descending order based on the creation timestamp using
101132// `orderBy="creationTimestamp desc". This sorts results based on the
101133// `creationTimestamp` field in reverse chronological order (newest
101134// result first). Use this to sort resources like operations so that the
101135// newest operation is returned first. Currently, only sorting by `name`
101136// or `creationTimestamp desc` is supported.
101137func (c *NetworkEndpointGroupsAggregatedListCall) OrderBy(orderBy string) *NetworkEndpointGroupsAggregatedListCall {
101138	c.urlParams_.Set("orderBy", orderBy)
101139	return c
101140}
101141
101142// PageToken sets the optional parameter "pageToken": Specifies a page
101143// token to use. Set `pageToken` to the `nextPageToken` returned by a
101144// previous list request to get the next page of results.
101145func (c *NetworkEndpointGroupsAggregatedListCall) PageToken(pageToken string) *NetworkEndpointGroupsAggregatedListCall {
101146	c.urlParams_.Set("pageToken", pageToken)
101147	return c
101148}
101149
101150// ReturnPartialSuccess sets the optional parameter
101151// "returnPartialSuccess": Opt-in for partial success behavior which
101152// provides partial results in case of failure. The default value is
101153// false.
101154func (c *NetworkEndpointGroupsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkEndpointGroupsAggregatedListCall {
101155	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
101156	return c
101157}
101158
101159// Fields allows partial responses to be retrieved. See
101160// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101161// for more information.
101162func (c *NetworkEndpointGroupsAggregatedListCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsAggregatedListCall {
101163	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101164	return c
101165}
101166
101167// IfNoneMatch sets the optional parameter which makes the operation
101168// fail if the object's ETag matches the given value. This is useful for
101169// getting updates only after the object has changed since the last
101170// request. Use googleapi.IsNotModified to check whether the response
101171// error from Do is the result of In-None-Match.
101172func (c *NetworkEndpointGroupsAggregatedListCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsAggregatedListCall {
101173	c.ifNoneMatch_ = entityTag
101174	return c
101175}
101176
101177// Context sets the context to be used in this call's Do method. Any
101178// pending HTTP request will be aborted if the provided context is
101179// canceled.
101180func (c *NetworkEndpointGroupsAggregatedListCall) Context(ctx context.Context) *NetworkEndpointGroupsAggregatedListCall {
101181	c.ctx_ = ctx
101182	return c
101183}
101184
101185// Header returns an http.Header that can be modified by the caller to
101186// add HTTP headers to the request.
101187func (c *NetworkEndpointGroupsAggregatedListCall) Header() http.Header {
101188	if c.header_ == nil {
101189		c.header_ = make(http.Header)
101190	}
101191	return c.header_
101192}
101193
101194func (c *NetworkEndpointGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
101195	reqHeaders := make(http.Header)
101196	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
101197	for k, v := range c.header_ {
101198		reqHeaders[k] = v
101199	}
101200	reqHeaders.Set("User-Agent", c.s.userAgent())
101201	if c.ifNoneMatch_ != "" {
101202		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
101203	}
101204	var body io.Reader = nil
101205	c.urlParams_.Set("alt", alt)
101206	c.urlParams_.Set("prettyPrint", "false")
101207	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/networkEndpointGroups")
101208	urls += "?" + c.urlParams_.Encode()
101209	req, err := http.NewRequest("GET", urls, body)
101210	if err != nil {
101211		return nil, err
101212	}
101213	req.Header = reqHeaders
101214	googleapi.Expand(req.URL, map[string]string{
101215		"project": c.project,
101216	})
101217	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101218}
101219
101220// Do executes the "compute.networkEndpointGroups.aggregatedList" call.
101221// Exactly one of *NetworkEndpointGroupAggregatedList or error will be
101222// non-nil. Any non-2xx status code is an error. Response headers are in
101223// either *NetworkEndpointGroupAggregatedList.ServerResponse.Header or
101224// (if a response was returned at all) in
101225// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
101226// whether the returned error was because http.StatusNotModified was
101227// returned.
101228func (c *NetworkEndpointGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupAggregatedList, error) {
101229	gensupport.SetOptions(c.urlParams_, opts...)
101230	res, err := c.doRequest("json")
101231	if res != nil && res.StatusCode == http.StatusNotModified {
101232		if res.Body != nil {
101233			res.Body.Close()
101234		}
101235		return nil, &googleapi.Error{
101236			Code:   res.StatusCode,
101237			Header: res.Header,
101238		}
101239	}
101240	if err != nil {
101241		return nil, err
101242	}
101243	defer googleapi.CloseBody(res)
101244	if err := googleapi.CheckResponse(res); err != nil {
101245		return nil, err
101246	}
101247	ret := &NetworkEndpointGroupAggregatedList{
101248		ServerResponse: googleapi.ServerResponse{
101249			Header:         res.Header,
101250			HTTPStatusCode: res.StatusCode,
101251		},
101252	}
101253	target := &ret
101254	if err := gensupport.DecodeResponse(target, res); err != nil {
101255		return nil, err
101256	}
101257	return ret, nil
101258	// {
101259	//   "description": "Retrieves the list of network endpoint groups and sorts them by zone.",
101260	//   "flatPath": "projects/{project}/aggregated/networkEndpointGroups",
101261	//   "httpMethod": "GET",
101262	//   "id": "compute.networkEndpointGroups.aggregatedList",
101263	//   "parameterOrder": [
101264	//     "project"
101265	//   ],
101266	//   "parameters": {
101267	//     "filter": {
101268	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
101269	//       "location": "query",
101270	//       "type": "string"
101271	//     },
101272	//     "includeAllScopes": {
101273	//       "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.",
101274	//       "location": "query",
101275	//       "type": "boolean"
101276	//     },
101277	//     "maxResults": {
101278	//       "default": "500",
101279	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
101280	//       "format": "uint32",
101281	//       "location": "query",
101282	//       "minimum": "0",
101283	//       "type": "integer"
101284	//     },
101285	//     "orderBy": {
101286	//       "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.",
101287	//       "location": "query",
101288	//       "type": "string"
101289	//     },
101290	//     "pageToken": {
101291	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
101292	//       "location": "query",
101293	//       "type": "string"
101294	//     },
101295	//     "project": {
101296	//       "description": "Project ID for this request.",
101297	//       "location": "path",
101298	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101299	//       "required": true,
101300	//       "type": "string"
101301	//     },
101302	//     "returnPartialSuccess": {
101303	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
101304	//       "location": "query",
101305	//       "type": "boolean"
101306	//     }
101307	//   },
101308	//   "path": "projects/{project}/aggregated/networkEndpointGroups",
101309	//   "response": {
101310	//     "$ref": "NetworkEndpointGroupAggregatedList"
101311	//   },
101312	//   "scopes": [
101313	//     "https://www.googleapis.com/auth/cloud-platform",
101314	//     "https://www.googleapis.com/auth/compute",
101315	//     "https://www.googleapis.com/auth/compute.readonly"
101316	//   ]
101317	// }
101318
101319}
101320
101321// Pages invokes f for each page of results.
101322// A non-nil error returned from f will halt the iteration.
101323// The provided context supersedes any context provided to the Context method.
101324func (c *NetworkEndpointGroupsAggregatedListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupAggregatedList) error) error {
101325	c.ctx_ = ctx
101326	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
101327	for {
101328		x, err := c.Do()
101329		if err != nil {
101330			return err
101331		}
101332		if err := f(x); err != nil {
101333			return err
101334		}
101335		if x.NextPageToken == "" {
101336			return nil
101337		}
101338		c.PageToken(x.NextPageToken)
101339	}
101340}
101341
101342// method id "compute.networkEndpointGroups.attachNetworkEndpoints":
101343
101344type NetworkEndpointGroupsAttachNetworkEndpointsCall struct {
101345	s                                           *Service
101346	project                                     string
101347	zone                                        string
101348	networkEndpointGroup                        string
101349	networkendpointgroupsattachendpointsrequest *NetworkEndpointGroupsAttachEndpointsRequest
101350	urlParams_                                  gensupport.URLParams
101351	ctx_                                        context.Context
101352	header_                                     http.Header
101353}
101354
101355// AttachNetworkEndpoints: Attach a list of network endpoints to the
101356// specified network endpoint group.
101357//
101358// - networkEndpointGroup: The name of the network endpoint group where
101359//   you are attaching network endpoints to. It should comply with
101360//   RFC1035.
101361// - project: Project ID for this request.
101362// - zone: The name of the zone where the network endpoint group is
101363//   located. It should comply with RFC1035.
101364func (r *NetworkEndpointGroupsService) AttachNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupsattachendpointsrequest *NetworkEndpointGroupsAttachEndpointsRequest) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
101365	c := &NetworkEndpointGroupsAttachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101366	c.project = project
101367	c.zone = zone
101368	c.networkEndpointGroup = networkEndpointGroup
101369	c.networkendpointgroupsattachendpointsrequest = networkendpointgroupsattachendpointsrequest
101370	return c
101371}
101372
101373// RequestId sets the optional parameter "requestId": An optional
101374// request ID to identify requests. Specify a unique request ID so that
101375// if you must retry your request, the server will know to ignore the
101376// request if it has already been completed. For example, consider a
101377// situation where you make an initial request and the request times
101378// out. If you make the request again with the same request ID, the
101379// server can check if original operation with the same request ID was
101380// received, and if so, will ignore the second request. This prevents
101381// clients from accidentally creating duplicate commitments. The request
101382// ID must be a valid UUID with the exception that zero UUID is not
101383// supported ( 00000000-0000-0000-0000-000000000000).
101384func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId string) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
101385	c.urlParams_.Set("requestId", requestId)
101386	return c
101387}
101388
101389// Fields allows partial responses to be retrieved. See
101390// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101391// for more information.
101392func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
101393	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101394	return c
101395}
101396
101397// Context sets the context to be used in this call's Do method. Any
101398// pending HTTP request will be aborted if the provided context is
101399// canceled.
101400func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
101401	c.ctx_ = ctx
101402	return c
101403}
101404
101405// Header returns an http.Header that can be modified by the caller to
101406// add HTTP headers to the request.
101407func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Header() http.Header {
101408	if c.header_ == nil {
101409		c.header_ = make(http.Header)
101410	}
101411	return c.header_
101412}
101413
101414func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
101415	reqHeaders := make(http.Header)
101416	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
101417	for k, v := range c.header_ {
101418		reqHeaders[k] = v
101419	}
101420	reqHeaders.Set("User-Agent", c.s.userAgent())
101421	var body io.Reader = nil
101422	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupsattachendpointsrequest)
101423	if err != nil {
101424		return nil, err
101425	}
101426	reqHeaders.Set("Content-Type", "application/json")
101427	c.urlParams_.Set("alt", alt)
101428	c.urlParams_.Set("prettyPrint", "false")
101429	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints")
101430	urls += "?" + c.urlParams_.Encode()
101431	req, err := http.NewRequest("POST", urls, body)
101432	if err != nil {
101433		return nil, err
101434	}
101435	req.Header = reqHeaders
101436	googleapi.Expand(req.URL, map[string]string{
101437		"project":              c.project,
101438		"zone":                 c.zone,
101439		"networkEndpointGroup": c.networkEndpointGroup,
101440	})
101441	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101442}
101443
101444// Do executes the "compute.networkEndpointGroups.attachNetworkEndpoints" call.
101445// Exactly one of *Operation or error will be non-nil. Any non-2xx
101446// status code is an error. Response headers are in either
101447// *Operation.ServerResponse.Header or (if a response was returned at
101448// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101449// to check whether the returned error was because
101450// http.StatusNotModified was returned.
101451func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101452	gensupport.SetOptions(c.urlParams_, opts...)
101453	res, err := c.doRequest("json")
101454	if res != nil && res.StatusCode == http.StatusNotModified {
101455		if res.Body != nil {
101456			res.Body.Close()
101457		}
101458		return nil, &googleapi.Error{
101459			Code:   res.StatusCode,
101460			Header: res.Header,
101461		}
101462	}
101463	if err != nil {
101464		return nil, err
101465	}
101466	defer googleapi.CloseBody(res)
101467	if err := googleapi.CheckResponse(res); err != nil {
101468		return nil, err
101469	}
101470	ret := &Operation{
101471		ServerResponse: googleapi.ServerResponse{
101472			Header:         res.Header,
101473			HTTPStatusCode: res.StatusCode,
101474		},
101475	}
101476	target := &ret
101477	if err := gensupport.DecodeResponse(target, res); err != nil {
101478		return nil, err
101479	}
101480	return ret, nil
101481	// {
101482	//   "description": "Attach a list of network endpoints to the specified network endpoint group.",
101483	//   "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
101484	//   "httpMethod": "POST",
101485	//   "id": "compute.networkEndpointGroups.attachNetworkEndpoints",
101486	//   "parameterOrder": [
101487	//     "project",
101488	//     "zone",
101489	//     "networkEndpointGroup"
101490	//   ],
101491	//   "parameters": {
101492	//     "networkEndpointGroup": {
101493	//       "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.",
101494	//       "location": "path",
101495	//       "required": true,
101496	//       "type": "string"
101497	//     },
101498	//     "project": {
101499	//       "description": "Project ID for this request.",
101500	//       "location": "path",
101501	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101502	//       "required": true,
101503	//       "type": "string"
101504	//     },
101505	//     "requestId": {
101506	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
101507	//       "location": "query",
101508	//       "type": "string"
101509	//     },
101510	//     "zone": {
101511	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
101512	//       "location": "path",
101513	//       "required": true,
101514	//       "type": "string"
101515	//     }
101516	//   },
101517	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
101518	//   "request": {
101519	//     "$ref": "NetworkEndpointGroupsAttachEndpointsRequest"
101520	//   },
101521	//   "response": {
101522	//     "$ref": "Operation"
101523	//   },
101524	//   "scopes": [
101525	//     "https://www.googleapis.com/auth/cloud-platform",
101526	//     "https://www.googleapis.com/auth/compute"
101527	//   ]
101528	// }
101529
101530}
101531
101532// method id "compute.networkEndpointGroups.delete":
101533
101534type NetworkEndpointGroupsDeleteCall struct {
101535	s                    *Service
101536	project              string
101537	zone                 string
101538	networkEndpointGroup string
101539	urlParams_           gensupport.URLParams
101540	ctx_                 context.Context
101541	header_              http.Header
101542}
101543
101544// Delete: Deletes the specified network endpoint group. The network
101545// endpoints in the NEG and the VM instances they belong to are not
101546// terminated when the NEG is deleted. Note that the NEG cannot be
101547// deleted if there are backend services referencing it.
101548//
101549// - networkEndpointGroup: The name of the network endpoint group to
101550//   delete. It should comply with RFC1035.
101551// - project: Project ID for this request.
101552// - zone: The name of the zone where the network endpoint group is
101553//   located. It should comply with RFC1035.
101554func (r *NetworkEndpointGroupsService) Delete(project string, zone string, networkEndpointGroup string) *NetworkEndpointGroupsDeleteCall {
101555	c := &NetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101556	c.project = project
101557	c.zone = zone
101558	c.networkEndpointGroup = networkEndpointGroup
101559	return c
101560}
101561
101562// RequestId sets the optional parameter "requestId": An optional
101563// request ID to identify requests. Specify a unique request ID so that
101564// if you must retry your request, the server will know to ignore the
101565// request if it has already been completed. For example, consider a
101566// situation where you make an initial request and the request times
101567// out. If you make the request again with the same request ID, the
101568// server can check if original operation with the same request ID was
101569// received, and if so, will ignore the second request. This prevents
101570// clients from accidentally creating duplicate commitments. The request
101571// ID must be a valid UUID with the exception that zero UUID is not
101572// supported ( 00000000-0000-0000-0000-000000000000).
101573func (c *NetworkEndpointGroupsDeleteCall) RequestId(requestId string) *NetworkEndpointGroupsDeleteCall {
101574	c.urlParams_.Set("requestId", requestId)
101575	return c
101576}
101577
101578// Fields allows partial responses to be retrieved. See
101579// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101580// for more information.
101581func (c *NetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsDeleteCall {
101582	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101583	return c
101584}
101585
101586// Context sets the context to be used in this call's Do method. Any
101587// pending HTTP request will be aborted if the provided context is
101588// canceled.
101589func (c *NetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *NetworkEndpointGroupsDeleteCall {
101590	c.ctx_ = ctx
101591	return c
101592}
101593
101594// Header returns an http.Header that can be modified by the caller to
101595// add HTTP headers to the request.
101596func (c *NetworkEndpointGroupsDeleteCall) Header() http.Header {
101597	if c.header_ == nil {
101598		c.header_ = make(http.Header)
101599	}
101600	return c.header_
101601}
101602
101603func (c *NetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
101604	reqHeaders := make(http.Header)
101605	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
101606	for k, v := range c.header_ {
101607		reqHeaders[k] = v
101608	}
101609	reqHeaders.Set("User-Agent", c.s.userAgent())
101610	var body io.Reader = nil
101611	c.urlParams_.Set("alt", alt)
101612	c.urlParams_.Set("prettyPrint", "false")
101613	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}")
101614	urls += "?" + c.urlParams_.Encode()
101615	req, err := http.NewRequest("DELETE", urls, body)
101616	if err != nil {
101617		return nil, err
101618	}
101619	req.Header = reqHeaders
101620	googleapi.Expand(req.URL, map[string]string{
101621		"project":              c.project,
101622		"zone":                 c.zone,
101623		"networkEndpointGroup": c.networkEndpointGroup,
101624	})
101625	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101626}
101627
101628// Do executes the "compute.networkEndpointGroups.delete" call.
101629// Exactly one of *Operation or error will be non-nil. Any non-2xx
101630// status code is an error. Response headers are in either
101631// *Operation.ServerResponse.Header or (if a response was returned at
101632// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101633// to check whether the returned error was because
101634// http.StatusNotModified was returned.
101635func (c *NetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101636	gensupport.SetOptions(c.urlParams_, opts...)
101637	res, err := c.doRequest("json")
101638	if res != nil && res.StatusCode == http.StatusNotModified {
101639		if res.Body != nil {
101640			res.Body.Close()
101641		}
101642		return nil, &googleapi.Error{
101643			Code:   res.StatusCode,
101644			Header: res.Header,
101645		}
101646	}
101647	if err != nil {
101648		return nil, err
101649	}
101650	defer googleapi.CloseBody(res)
101651	if err := googleapi.CheckResponse(res); err != nil {
101652		return nil, err
101653	}
101654	ret := &Operation{
101655		ServerResponse: googleapi.ServerResponse{
101656			Header:         res.Header,
101657			HTTPStatusCode: res.StatusCode,
101658		},
101659	}
101660	target := &ret
101661	if err := gensupport.DecodeResponse(target, res); err != nil {
101662		return nil, err
101663	}
101664	return ret, nil
101665	// {
101666	//   "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.",
101667	//   "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
101668	//   "httpMethod": "DELETE",
101669	//   "id": "compute.networkEndpointGroups.delete",
101670	//   "parameterOrder": [
101671	//     "project",
101672	//     "zone",
101673	//     "networkEndpointGroup"
101674	//   ],
101675	//   "parameters": {
101676	//     "networkEndpointGroup": {
101677	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
101678	//       "location": "path",
101679	//       "required": true,
101680	//       "type": "string"
101681	//     },
101682	//     "project": {
101683	//       "description": "Project ID for this request.",
101684	//       "location": "path",
101685	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101686	//       "required": true,
101687	//       "type": "string"
101688	//     },
101689	//     "requestId": {
101690	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
101691	//       "location": "query",
101692	//       "type": "string"
101693	//     },
101694	//     "zone": {
101695	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
101696	//       "location": "path",
101697	//       "required": true,
101698	//       "type": "string"
101699	//     }
101700	//   },
101701	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
101702	//   "response": {
101703	//     "$ref": "Operation"
101704	//   },
101705	//   "scopes": [
101706	//     "https://www.googleapis.com/auth/cloud-platform",
101707	//     "https://www.googleapis.com/auth/compute"
101708	//   ]
101709	// }
101710
101711}
101712
101713// method id "compute.networkEndpointGroups.detachNetworkEndpoints":
101714
101715type NetworkEndpointGroupsDetachNetworkEndpointsCall struct {
101716	s                                           *Service
101717	project                                     string
101718	zone                                        string
101719	networkEndpointGroup                        string
101720	networkendpointgroupsdetachendpointsrequest *NetworkEndpointGroupsDetachEndpointsRequest
101721	urlParams_                                  gensupport.URLParams
101722	ctx_                                        context.Context
101723	header_                                     http.Header
101724}
101725
101726// DetachNetworkEndpoints: Detach a list of network endpoints from the
101727// specified network endpoint group.
101728//
101729// - networkEndpointGroup: The name of the network endpoint group where
101730//   you are removing network endpoints. It should comply with RFC1035.
101731// - project: Project ID for this request.
101732// - zone: The name of the zone where the network endpoint group is
101733//   located. It should comply with RFC1035.
101734func (r *NetworkEndpointGroupsService) DetachNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupsdetachendpointsrequest *NetworkEndpointGroupsDetachEndpointsRequest) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
101735	c := &NetworkEndpointGroupsDetachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101736	c.project = project
101737	c.zone = zone
101738	c.networkEndpointGroup = networkEndpointGroup
101739	c.networkendpointgroupsdetachendpointsrequest = networkendpointgroupsdetachendpointsrequest
101740	return c
101741}
101742
101743// RequestId sets the optional parameter "requestId": An optional
101744// request ID to identify requests. Specify a unique request ID so that
101745// if you must retry your request, the server will know to ignore the
101746// request if it has already been completed. For example, consider a
101747// situation where you make an initial request and the request times
101748// out. If you make the request again with the same request ID, the
101749// server can check if original operation with the same request ID was
101750// received, and if so, will ignore the second request. This prevents
101751// clients from accidentally creating duplicate commitments. The request
101752// ID must be a valid UUID with the exception that zero UUID is not
101753// supported ( 00000000-0000-0000-0000-000000000000).
101754func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(requestId string) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
101755	c.urlParams_.Set("requestId", requestId)
101756	return c
101757}
101758
101759// Fields allows partial responses to be retrieved. See
101760// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101761// for more information.
101762func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
101763	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101764	return c
101765}
101766
101767// Context sets the context to be used in this call's Do method. Any
101768// pending HTTP request will be aborted if the provided context is
101769// canceled.
101770func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
101771	c.ctx_ = ctx
101772	return c
101773}
101774
101775// Header returns an http.Header that can be modified by the caller to
101776// add HTTP headers to the request.
101777func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Header() http.Header {
101778	if c.header_ == nil {
101779		c.header_ = make(http.Header)
101780	}
101781	return c.header_
101782}
101783
101784func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
101785	reqHeaders := make(http.Header)
101786	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
101787	for k, v := range c.header_ {
101788		reqHeaders[k] = v
101789	}
101790	reqHeaders.Set("User-Agent", c.s.userAgent())
101791	var body io.Reader = nil
101792	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupsdetachendpointsrequest)
101793	if err != nil {
101794		return nil, err
101795	}
101796	reqHeaders.Set("Content-Type", "application/json")
101797	c.urlParams_.Set("alt", alt)
101798	c.urlParams_.Set("prettyPrint", "false")
101799	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints")
101800	urls += "?" + c.urlParams_.Encode()
101801	req, err := http.NewRequest("POST", urls, body)
101802	if err != nil {
101803		return nil, err
101804	}
101805	req.Header = reqHeaders
101806	googleapi.Expand(req.URL, map[string]string{
101807		"project":              c.project,
101808		"zone":                 c.zone,
101809		"networkEndpointGroup": c.networkEndpointGroup,
101810	})
101811	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101812}
101813
101814// Do executes the "compute.networkEndpointGroups.detachNetworkEndpoints" call.
101815// Exactly one of *Operation or error will be non-nil. Any non-2xx
101816// status code is an error. Response headers are in either
101817// *Operation.ServerResponse.Header or (if a response was returned at
101818// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101819// to check whether the returned error was because
101820// http.StatusNotModified was returned.
101821func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101822	gensupport.SetOptions(c.urlParams_, opts...)
101823	res, err := c.doRequest("json")
101824	if res != nil && res.StatusCode == http.StatusNotModified {
101825		if res.Body != nil {
101826			res.Body.Close()
101827		}
101828		return nil, &googleapi.Error{
101829			Code:   res.StatusCode,
101830			Header: res.Header,
101831		}
101832	}
101833	if err != nil {
101834		return nil, err
101835	}
101836	defer googleapi.CloseBody(res)
101837	if err := googleapi.CheckResponse(res); err != nil {
101838		return nil, err
101839	}
101840	ret := &Operation{
101841		ServerResponse: googleapi.ServerResponse{
101842			Header:         res.Header,
101843			HTTPStatusCode: res.StatusCode,
101844		},
101845	}
101846	target := &ret
101847	if err := gensupport.DecodeResponse(target, res); err != nil {
101848		return nil, err
101849	}
101850	return ret, nil
101851	// {
101852	//   "description": "Detach a list of network endpoints from the specified network endpoint group.",
101853	//   "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
101854	//   "httpMethod": "POST",
101855	//   "id": "compute.networkEndpointGroups.detachNetworkEndpoints",
101856	//   "parameterOrder": [
101857	//     "project",
101858	//     "zone",
101859	//     "networkEndpointGroup"
101860	//   ],
101861	//   "parameters": {
101862	//     "networkEndpointGroup": {
101863	//       "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.",
101864	//       "location": "path",
101865	//       "required": true,
101866	//       "type": "string"
101867	//     },
101868	//     "project": {
101869	//       "description": "Project ID for this request.",
101870	//       "location": "path",
101871	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101872	//       "required": true,
101873	//       "type": "string"
101874	//     },
101875	//     "requestId": {
101876	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
101877	//       "location": "query",
101878	//       "type": "string"
101879	//     },
101880	//     "zone": {
101881	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
101882	//       "location": "path",
101883	//       "required": true,
101884	//       "type": "string"
101885	//     }
101886	//   },
101887	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
101888	//   "request": {
101889	//     "$ref": "NetworkEndpointGroupsDetachEndpointsRequest"
101890	//   },
101891	//   "response": {
101892	//     "$ref": "Operation"
101893	//   },
101894	//   "scopes": [
101895	//     "https://www.googleapis.com/auth/cloud-platform",
101896	//     "https://www.googleapis.com/auth/compute"
101897	//   ]
101898	// }
101899
101900}
101901
101902// method id "compute.networkEndpointGroups.get":
101903
101904type NetworkEndpointGroupsGetCall struct {
101905	s                    *Service
101906	project              string
101907	zone                 string
101908	networkEndpointGroup string
101909	urlParams_           gensupport.URLParams
101910	ifNoneMatch_         string
101911	ctx_                 context.Context
101912	header_              http.Header
101913}
101914
101915// Get: Returns the specified network endpoint group. Gets a list of
101916// available network endpoint groups by making a list() request.
101917//
101918// - networkEndpointGroup: The name of the network endpoint group. It
101919//   should comply with RFC1035.
101920// - project: Project ID for this request.
101921// - zone: The name of the zone where the network endpoint group is
101922//   located. It should comply with RFC1035.
101923func (r *NetworkEndpointGroupsService) Get(project string, zone string, networkEndpointGroup string) *NetworkEndpointGroupsGetCall {
101924	c := &NetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101925	c.project = project
101926	c.zone = zone
101927	c.networkEndpointGroup = networkEndpointGroup
101928	return c
101929}
101930
101931// Fields allows partial responses to be retrieved. See
101932// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101933// for more information.
101934func (c *NetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsGetCall {
101935	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101936	return c
101937}
101938
101939// IfNoneMatch sets the optional parameter which makes the operation
101940// fail if the object's ETag matches the given value. This is useful for
101941// getting updates only after the object has changed since the last
101942// request. Use googleapi.IsNotModified to check whether the response
101943// error from Do is the result of In-None-Match.
101944func (c *NetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsGetCall {
101945	c.ifNoneMatch_ = entityTag
101946	return c
101947}
101948
101949// Context sets the context to be used in this call's Do method. Any
101950// pending HTTP request will be aborted if the provided context is
101951// canceled.
101952func (c *NetworkEndpointGroupsGetCall) Context(ctx context.Context) *NetworkEndpointGroupsGetCall {
101953	c.ctx_ = ctx
101954	return c
101955}
101956
101957// Header returns an http.Header that can be modified by the caller to
101958// add HTTP headers to the request.
101959func (c *NetworkEndpointGroupsGetCall) Header() http.Header {
101960	if c.header_ == nil {
101961		c.header_ = make(http.Header)
101962	}
101963	return c.header_
101964}
101965
101966func (c *NetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
101967	reqHeaders := make(http.Header)
101968	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
101969	for k, v := range c.header_ {
101970		reqHeaders[k] = v
101971	}
101972	reqHeaders.Set("User-Agent", c.s.userAgent())
101973	if c.ifNoneMatch_ != "" {
101974		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
101975	}
101976	var body io.Reader = nil
101977	c.urlParams_.Set("alt", alt)
101978	c.urlParams_.Set("prettyPrint", "false")
101979	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}")
101980	urls += "?" + c.urlParams_.Encode()
101981	req, err := http.NewRequest("GET", urls, body)
101982	if err != nil {
101983		return nil, err
101984	}
101985	req.Header = reqHeaders
101986	googleapi.Expand(req.URL, map[string]string{
101987		"project":              c.project,
101988		"zone":                 c.zone,
101989		"networkEndpointGroup": c.networkEndpointGroup,
101990	})
101991	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101992}
101993
101994// Do executes the "compute.networkEndpointGroups.get" call.
101995// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
101996// non-2xx status code is an error. Response headers are in either
101997// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
101998// returned at all) in error.(*googleapi.Error).Header. Use
101999// googleapi.IsNotModified to check whether the returned error was
102000// because http.StatusNotModified was returned.
102001func (c *NetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
102002	gensupport.SetOptions(c.urlParams_, opts...)
102003	res, err := c.doRequest("json")
102004	if res != nil && res.StatusCode == http.StatusNotModified {
102005		if res.Body != nil {
102006			res.Body.Close()
102007		}
102008		return nil, &googleapi.Error{
102009			Code:   res.StatusCode,
102010			Header: res.Header,
102011		}
102012	}
102013	if err != nil {
102014		return nil, err
102015	}
102016	defer googleapi.CloseBody(res)
102017	if err := googleapi.CheckResponse(res); err != nil {
102018		return nil, err
102019	}
102020	ret := &NetworkEndpointGroup{
102021		ServerResponse: googleapi.ServerResponse{
102022			Header:         res.Header,
102023			HTTPStatusCode: res.StatusCode,
102024		},
102025	}
102026	target := &ret
102027	if err := gensupport.DecodeResponse(target, res); err != nil {
102028		return nil, err
102029	}
102030	return ret, nil
102031	// {
102032	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.",
102033	//   "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
102034	//   "httpMethod": "GET",
102035	//   "id": "compute.networkEndpointGroups.get",
102036	//   "parameterOrder": [
102037	//     "project",
102038	//     "zone",
102039	//     "networkEndpointGroup"
102040	//   ],
102041	//   "parameters": {
102042	//     "networkEndpointGroup": {
102043	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
102044	//       "location": "path",
102045	//       "required": true,
102046	//       "type": "string"
102047	//     },
102048	//     "project": {
102049	//       "description": "Project ID for this request.",
102050	//       "location": "path",
102051	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102052	//       "required": true,
102053	//       "type": "string"
102054	//     },
102055	//     "zone": {
102056	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
102057	//       "location": "path",
102058	//       "required": true,
102059	//       "type": "string"
102060	//     }
102061	//   },
102062	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
102063	//   "response": {
102064	//     "$ref": "NetworkEndpointGroup"
102065	//   },
102066	//   "scopes": [
102067	//     "https://www.googleapis.com/auth/cloud-platform",
102068	//     "https://www.googleapis.com/auth/compute",
102069	//     "https://www.googleapis.com/auth/compute.readonly"
102070	//   ]
102071	// }
102072
102073}
102074
102075// method id "compute.networkEndpointGroups.insert":
102076
102077type NetworkEndpointGroupsInsertCall struct {
102078	s                    *Service
102079	project              string
102080	zone                 string
102081	networkendpointgroup *NetworkEndpointGroup
102082	urlParams_           gensupport.URLParams
102083	ctx_                 context.Context
102084	header_              http.Header
102085}
102086
102087// Insert: Creates a network endpoint group in the specified project
102088// using the parameters that are included in the request.
102089//
102090// - project: Project ID for this request.
102091// - zone: The name of the zone where you want to create the network
102092//   endpoint group. It should comply with RFC1035.
102093func (r *NetworkEndpointGroupsService) Insert(project string, zone string, networkendpointgroup *NetworkEndpointGroup) *NetworkEndpointGroupsInsertCall {
102094	c := &NetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102095	c.project = project
102096	c.zone = zone
102097	c.networkendpointgroup = networkendpointgroup
102098	return c
102099}
102100
102101// RequestId sets the optional parameter "requestId": An optional
102102// request ID to identify requests. Specify a unique request ID so that
102103// if you must retry your request, the server will know to ignore the
102104// request if it has already been completed. For example, consider a
102105// situation where you make an initial request and the request times
102106// out. If you make the request again with the same request ID, the
102107// server can check if original operation with the same request ID was
102108// received, and if so, will ignore the second request. This prevents
102109// clients from accidentally creating duplicate commitments. The request
102110// ID must be a valid UUID with the exception that zero UUID is not
102111// supported ( 00000000-0000-0000-0000-000000000000).
102112func (c *NetworkEndpointGroupsInsertCall) RequestId(requestId string) *NetworkEndpointGroupsInsertCall {
102113	c.urlParams_.Set("requestId", requestId)
102114	return c
102115}
102116
102117// Fields allows partial responses to be retrieved. See
102118// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102119// for more information.
102120func (c *NetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsInsertCall {
102121	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102122	return c
102123}
102124
102125// Context sets the context to be used in this call's Do method. Any
102126// pending HTTP request will be aborted if the provided context is
102127// canceled.
102128func (c *NetworkEndpointGroupsInsertCall) Context(ctx context.Context) *NetworkEndpointGroupsInsertCall {
102129	c.ctx_ = ctx
102130	return c
102131}
102132
102133// Header returns an http.Header that can be modified by the caller to
102134// add HTTP headers to the request.
102135func (c *NetworkEndpointGroupsInsertCall) Header() http.Header {
102136	if c.header_ == nil {
102137		c.header_ = make(http.Header)
102138	}
102139	return c.header_
102140}
102141
102142func (c *NetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
102143	reqHeaders := make(http.Header)
102144	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
102145	for k, v := range c.header_ {
102146		reqHeaders[k] = v
102147	}
102148	reqHeaders.Set("User-Agent", c.s.userAgent())
102149	var body io.Reader = nil
102150	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
102151	if err != nil {
102152		return nil, err
102153	}
102154	reqHeaders.Set("Content-Type", "application/json")
102155	c.urlParams_.Set("alt", alt)
102156	c.urlParams_.Set("prettyPrint", "false")
102157	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups")
102158	urls += "?" + c.urlParams_.Encode()
102159	req, err := http.NewRequest("POST", urls, body)
102160	if err != nil {
102161		return nil, err
102162	}
102163	req.Header = reqHeaders
102164	googleapi.Expand(req.URL, map[string]string{
102165		"project": c.project,
102166		"zone":    c.zone,
102167	})
102168	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102169}
102170
102171// Do executes the "compute.networkEndpointGroups.insert" call.
102172// Exactly one of *Operation or error will be non-nil. Any non-2xx
102173// status code is an error. Response headers are in either
102174// *Operation.ServerResponse.Header or (if a response was returned at
102175// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
102176// to check whether the returned error was because
102177// http.StatusNotModified was returned.
102178func (c *NetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
102179	gensupport.SetOptions(c.urlParams_, opts...)
102180	res, err := c.doRequest("json")
102181	if res != nil && res.StatusCode == http.StatusNotModified {
102182		if res.Body != nil {
102183			res.Body.Close()
102184		}
102185		return nil, &googleapi.Error{
102186			Code:   res.StatusCode,
102187			Header: res.Header,
102188		}
102189	}
102190	if err != nil {
102191		return nil, err
102192	}
102193	defer googleapi.CloseBody(res)
102194	if err := googleapi.CheckResponse(res); err != nil {
102195		return nil, err
102196	}
102197	ret := &Operation{
102198		ServerResponse: googleapi.ServerResponse{
102199			Header:         res.Header,
102200			HTTPStatusCode: res.StatusCode,
102201		},
102202	}
102203	target := &ret
102204	if err := gensupport.DecodeResponse(target, res); err != nil {
102205		return nil, err
102206	}
102207	return ret, nil
102208	// {
102209	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.",
102210	//   "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups",
102211	//   "httpMethod": "POST",
102212	//   "id": "compute.networkEndpointGroups.insert",
102213	//   "parameterOrder": [
102214	//     "project",
102215	//     "zone"
102216	//   ],
102217	//   "parameters": {
102218	//     "project": {
102219	//       "description": "Project ID for this request.",
102220	//       "location": "path",
102221	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102222	//       "required": true,
102223	//       "type": "string"
102224	//     },
102225	//     "requestId": {
102226	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
102227	//       "location": "query",
102228	//       "type": "string"
102229	//     },
102230	//     "zone": {
102231	//       "description": "The name of the zone where you want to create the network endpoint group. It should comply with RFC1035.",
102232	//       "location": "path",
102233	//       "required": true,
102234	//       "type": "string"
102235	//     }
102236	//   },
102237	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups",
102238	//   "request": {
102239	//     "$ref": "NetworkEndpointGroup"
102240	//   },
102241	//   "response": {
102242	//     "$ref": "Operation"
102243	//   },
102244	//   "scopes": [
102245	//     "https://www.googleapis.com/auth/cloud-platform",
102246	//     "https://www.googleapis.com/auth/compute"
102247	//   ]
102248	// }
102249
102250}
102251
102252// method id "compute.networkEndpointGroups.list":
102253
102254type NetworkEndpointGroupsListCall struct {
102255	s            *Service
102256	project      string
102257	zone         string
102258	urlParams_   gensupport.URLParams
102259	ifNoneMatch_ string
102260	ctx_         context.Context
102261	header_      http.Header
102262}
102263
102264// List: Retrieves the list of network endpoint groups that are located
102265// in the specified project and zone.
102266//
102267// - project: Project ID for this request.
102268// - zone: The name of the zone where the network endpoint group is
102269//   located. It should comply with RFC1035.
102270func (r *NetworkEndpointGroupsService) List(project string, zone string) *NetworkEndpointGroupsListCall {
102271	c := &NetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102272	c.project = project
102273	c.zone = zone
102274	return c
102275}
102276
102277// Filter sets the optional parameter "filter": A filter expression that
102278// filters resources listed in the response. The expression must specify
102279// the field name, a comparison operator, and the value that you want to
102280// use for filtering. The value must be a string, a number, or a
102281// boolean. The comparison operator must be either `=`, `!=`, `>`, or
102282// `<`. For example, if you are filtering Compute Engine instances, you
102283// can exclude instances named `example-instance` by specifying `name !=
102284// example-instance`. You can also filter nested fields. For example,
102285// you could specify `scheduling.automaticRestart = false` to include
102286// instances only if they are not scheduled for automatic restarts. You
102287// can use filtering on nested fields to filter based on resource
102288// labels. To filter on multiple expressions, provide each separate
102289// expression within parentheses. For example: ```
102290// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
102291// ``` By default, each expression is an `AND` expression. However, you
102292// can include `AND` and `OR` expressions explicitly. For example: ```
102293// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
102294// AND (scheduling.automaticRestart = true) ```
102295func (c *NetworkEndpointGroupsListCall) Filter(filter string) *NetworkEndpointGroupsListCall {
102296	c.urlParams_.Set("filter", filter)
102297	return c
102298}
102299
102300// MaxResults sets the optional parameter "maxResults": The maximum
102301// number of results per page that should be returned. If the number of
102302// available results is larger than `maxResults`, Compute Engine returns
102303// a `nextPageToken` that can be used to get the next page of results in
102304// subsequent list requests. Acceptable values are `0` to `500`,
102305// inclusive. (Default: `500`)
102306func (c *NetworkEndpointGroupsListCall) MaxResults(maxResults int64) *NetworkEndpointGroupsListCall {
102307	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
102308	return c
102309}
102310
102311// OrderBy sets the optional parameter "orderBy": Sorts list results by
102312// a certain order. By default, results are returned in alphanumerical
102313// order based on the resource name. You can also sort results in
102314// descending order based on the creation timestamp using
102315// `orderBy="creationTimestamp desc". This sorts results based on the
102316// `creationTimestamp` field in reverse chronological order (newest
102317// result first). Use this to sort resources like operations so that the
102318// newest operation is returned first. Currently, only sorting by `name`
102319// or `creationTimestamp desc` is supported.
102320func (c *NetworkEndpointGroupsListCall) OrderBy(orderBy string) *NetworkEndpointGroupsListCall {
102321	c.urlParams_.Set("orderBy", orderBy)
102322	return c
102323}
102324
102325// PageToken sets the optional parameter "pageToken": Specifies a page
102326// token to use. Set `pageToken` to the `nextPageToken` returned by a
102327// previous list request to get the next page of results.
102328func (c *NetworkEndpointGroupsListCall) PageToken(pageToken string) *NetworkEndpointGroupsListCall {
102329	c.urlParams_.Set("pageToken", pageToken)
102330	return c
102331}
102332
102333// ReturnPartialSuccess sets the optional parameter
102334// "returnPartialSuccess": Opt-in for partial success behavior which
102335// provides partial results in case of failure. The default value is
102336// false.
102337func (c *NetworkEndpointGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkEndpointGroupsListCall {
102338	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
102339	return c
102340}
102341
102342// Fields allows partial responses to be retrieved. See
102343// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102344// for more information.
102345func (c *NetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsListCall {
102346	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102347	return c
102348}
102349
102350// IfNoneMatch sets the optional parameter which makes the operation
102351// fail if the object's ETag matches the given value. This is useful for
102352// getting updates only after the object has changed since the last
102353// request. Use googleapi.IsNotModified to check whether the response
102354// error from Do is the result of In-None-Match.
102355func (c *NetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsListCall {
102356	c.ifNoneMatch_ = entityTag
102357	return c
102358}
102359
102360// Context sets the context to be used in this call's Do method. Any
102361// pending HTTP request will be aborted if the provided context is
102362// canceled.
102363func (c *NetworkEndpointGroupsListCall) Context(ctx context.Context) *NetworkEndpointGroupsListCall {
102364	c.ctx_ = ctx
102365	return c
102366}
102367
102368// Header returns an http.Header that can be modified by the caller to
102369// add HTTP headers to the request.
102370func (c *NetworkEndpointGroupsListCall) Header() http.Header {
102371	if c.header_ == nil {
102372		c.header_ = make(http.Header)
102373	}
102374	return c.header_
102375}
102376
102377func (c *NetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
102378	reqHeaders := make(http.Header)
102379	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
102380	for k, v := range c.header_ {
102381		reqHeaders[k] = v
102382	}
102383	reqHeaders.Set("User-Agent", c.s.userAgent())
102384	if c.ifNoneMatch_ != "" {
102385		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
102386	}
102387	var body io.Reader = nil
102388	c.urlParams_.Set("alt", alt)
102389	c.urlParams_.Set("prettyPrint", "false")
102390	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups")
102391	urls += "?" + c.urlParams_.Encode()
102392	req, err := http.NewRequest("GET", urls, body)
102393	if err != nil {
102394		return nil, err
102395	}
102396	req.Header = reqHeaders
102397	googleapi.Expand(req.URL, map[string]string{
102398		"project": c.project,
102399		"zone":    c.zone,
102400	})
102401	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102402}
102403
102404// Do executes the "compute.networkEndpointGroups.list" call.
102405// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
102406// Any non-2xx status code is an error. Response headers are in either
102407// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
102408// returned at all) in error.(*googleapi.Error).Header. Use
102409// googleapi.IsNotModified to check whether the returned error was
102410// because http.StatusNotModified was returned.
102411func (c *NetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
102412	gensupport.SetOptions(c.urlParams_, opts...)
102413	res, err := c.doRequest("json")
102414	if res != nil && res.StatusCode == http.StatusNotModified {
102415		if res.Body != nil {
102416			res.Body.Close()
102417		}
102418		return nil, &googleapi.Error{
102419			Code:   res.StatusCode,
102420			Header: res.Header,
102421		}
102422	}
102423	if err != nil {
102424		return nil, err
102425	}
102426	defer googleapi.CloseBody(res)
102427	if err := googleapi.CheckResponse(res); err != nil {
102428		return nil, err
102429	}
102430	ret := &NetworkEndpointGroupList{
102431		ServerResponse: googleapi.ServerResponse{
102432			Header:         res.Header,
102433			HTTPStatusCode: res.StatusCode,
102434		},
102435	}
102436	target := &ret
102437	if err := gensupport.DecodeResponse(target, res); err != nil {
102438		return nil, err
102439	}
102440	return ret, nil
102441	// {
102442	//   "description": "Retrieves the list of network endpoint groups that are located in the specified project and zone.",
102443	//   "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups",
102444	//   "httpMethod": "GET",
102445	//   "id": "compute.networkEndpointGroups.list",
102446	//   "parameterOrder": [
102447	//     "project",
102448	//     "zone"
102449	//   ],
102450	//   "parameters": {
102451	//     "filter": {
102452	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
102453	//       "location": "query",
102454	//       "type": "string"
102455	//     },
102456	//     "maxResults": {
102457	//       "default": "500",
102458	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
102459	//       "format": "uint32",
102460	//       "location": "query",
102461	//       "minimum": "0",
102462	//       "type": "integer"
102463	//     },
102464	//     "orderBy": {
102465	//       "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.",
102466	//       "location": "query",
102467	//       "type": "string"
102468	//     },
102469	//     "pageToken": {
102470	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
102471	//       "location": "query",
102472	//       "type": "string"
102473	//     },
102474	//     "project": {
102475	//       "description": "Project ID for this request.",
102476	//       "location": "path",
102477	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102478	//       "required": true,
102479	//       "type": "string"
102480	//     },
102481	//     "returnPartialSuccess": {
102482	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
102483	//       "location": "query",
102484	//       "type": "boolean"
102485	//     },
102486	//     "zone": {
102487	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
102488	//       "location": "path",
102489	//       "required": true,
102490	//       "type": "string"
102491	//     }
102492	//   },
102493	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups",
102494	//   "response": {
102495	//     "$ref": "NetworkEndpointGroupList"
102496	//   },
102497	//   "scopes": [
102498	//     "https://www.googleapis.com/auth/cloud-platform",
102499	//     "https://www.googleapis.com/auth/compute",
102500	//     "https://www.googleapis.com/auth/compute.readonly"
102501	//   ]
102502	// }
102503
102504}
102505
102506// Pages invokes f for each page of results.
102507// A non-nil error returned from f will halt the iteration.
102508// The provided context supersedes any context provided to the Context method.
102509func (c *NetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
102510	c.ctx_ = ctx
102511	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
102512	for {
102513		x, err := c.Do()
102514		if err != nil {
102515			return err
102516		}
102517		if err := f(x); err != nil {
102518			return err
102519		}
102520		if x.NextPageToken == "" {
102521			return nil
102522		}
102523		c.PageToken(x.NextPageToken)
102524	}
102525}
102526
102527// method id "compute.networkEndpointGroups.listNetworkEndpoints":
102528
102529type NetworkEndpointGroupsListNetworkEndpointsCall struct {
102530	s                                         *Service
102531	project                                   string
102532	zone                                      string
102533	networkEndpointGroup                      string
102534	networkendpointgroupslistendpointsrequest *NetworkEndpointGroupsListEndpointsRequest
102535	urlParams_                                gensupport.URLParams
102536	ctx_                                      context.Context
102537	header_                                   http.Header
102538}
102539
102540// ListNetworkEndpoints: Lists the network endpoints in the specified
102541// network endpoint group.
102542//
102543// - networkEndpointGroup: The name of the network endpoint group from
102544//   which you want to generate a list of included network endpoints. It
102545//   should comply with RFC1035.
102546// - project: Project ID for this request.
102547// - zone: The name of the zone where the network endpoint group is
102548//   located. It should comply with RFC1035.
102549func (r *NetworkEndpointGroupsService) ListNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupslistendpointsrequest *NetworkEndpointGroupsListEndpointsRequest) *NetworkEndpointGroupsListNetworkEndpointsCall {
102550	c := &NetworkEndpointGroupsListNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102551	c.project = project
102552	c.zone = zone
102553	c.networkEndpointGroup = networkEndpointGroup
102554	c.networkendpointgroupslistendpointsrequest = networkendpointgroupslistendpointsrequest
102555	return c
102556}
102557
102558// Filter sets the optional parameter "filter": A filter expression that
102559// filters resources listed in the response. The expression must specify
102560// the field name, a comparison operator, and the value that you want to
102561// use for filtering. The value must be a string, a number, or a
102562// boolean. The comparison operator must be either `=`, `!=`, `>`, or
102563// `<`. For example, if you are filtering Compute Engine instances, you
102564// can exclude instances named `example-instance` by specifying `name !=
102565// example-instance`. You can also filter nested fields. For example,
102566// you could specify `scheduling.automaticRestart = false` to include
102567// instances only if they are not scheduled for automatic restarts. You
102568// can use filtering on nested fields to filter based on resource
102569// labels. To filter on multiple expressions, provide each separate
102570// expression within parentheses. For example: ```
102571// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
102572// ``` By default, each expression is an `AND` expression. However, you
102573// can include `AND` and `OR` expressions explicitly. For example: ```
102574// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
102575// AND (scheduling.automaticRestart = true) ```
102576func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Filter(filter string) *NetworkEndpointGroupsListNetworkEndpointsCall {
102577	c.urlParams_.Set("filter", filter)
102578	return c
102579}
102580
102581// MaxResults sets the optional parameter "maxResults": The maximum
102582// number of results per page that should be returned. If the number of
102583// available results is larger than `maxResults`, Compute Engine returns
102584// a `nextPageToken` that can be used to get the next page of results in
102585// subsequent list requests. Acceptable values are `0` to `500`,
102586// inclusive. (Default: `500`)
102587func (c *NetworkEndpointGroupsListNetworkEndpointsCall) MaxResults(maxResults int64) *NetworkEndpointGroupsListNetworkEndpointsCall {
102588	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
102589	return c
102590}
102591
102592// OrderBy sets the optional parameter "orderBy": Sorts list results by
102593// a certain order. By default, results are returned in alphanumerical
102594// order based on the resource name. You can also sort results in
102595// descending order based on the creation timestamp using
102596// `orderBy="creationTimestamp desc". This sorts results based on the
102597// `creationTimestamp` field in reverse chronological order (newest
102598// result first). Use this to sort resources like operations so that the
102599// newest operation is returned first. Currently, only sorting by `name`
102600// or `creationTimestamp desc` is supported.
102601func (c *NetworkEndpointGroupsListNetworkEndpointsCall) OrderBy(orderBy string) *NetworkEndpointGroupsListNetworkEndpointsCall {
102602	c.urlParams_.Set("orderBy", orderBy)
102603	return c
102604}
102605
102606// PageToken sets the optional parameter "pageToken": Specifies a page
102607// token to use. Set `pageToken` to the `nextPageToken` returned by a
102608// previous list request to get the next page of results.
102609func (c *NetworkEndpointGroupsListNetworkEndpointsCall) PageToken(pageToken string) *NetworkEndpointGroupsListNetworkEndpointsCall {
102610	c.urlParams_.Set("pageToken", pageToken)
102611	return c
102612}
102613
102614// ReturnPartialSuccess sets the optional parameter
102615// "returnPartialSuccess": Opt-in for partial success behavior which
102616// provides partial results in case of failure. The default value is
102617// false.
102618func (c *NetworkEndpointGroupsListNetworkEndpointsCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkEndpointGroupsListNetworkEndpointsCall {
102619	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
102620	return c
102621}
102622
102623// Fields allows partial responses to be retrieved. See
102624// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102625// for more information.
102626func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsListNetworkEndpointsCall {
102627	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102628	return c
102629}
102630
102631// Context sets the context to be used in this call's Do method. Any
102632// pending HTTP request will be aborted if the provided context is
102633// canceled.
102634func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsListNetworkEndpointsCall {
102635	c.ctx_ = ctx
102636	return c
102637}
102638
102639// Header returns an http.Header that can be modified by the caller to
102640// add HTTP headers to the request.
102641func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Header() http.Header {
102642	if c.header_ == nil {
102643		c.header_ = make(http.Header)
102644	}
102645	return c.header_
102646}
102647
102648func (c *NetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
102649	reqHeaders := make(http.Header)
102650	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
102651	for k, v := range c.header_ {
102652		reqHeaders[k] = v
102653	}
102654	reqHeaders.Set("User-Agent", c.s.userAgent())
102655	var body io.Reader = nil
102656	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupslistendpointsrequest)
102657	if err != nil {
102658		return nil, err
102659	}
102660	reqHeaders.Set("Content-Type", "application/json")
102661	c.urlParams_.Set("alt", alt)
102662	c.urlParams_.Set("prettyPrint", "false")
102663	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints")
102664	urls += "?" + c.urlParams_.Encode()
102665	req, err := http.NewRequest("POST", urls, body)
102666	if err != nil {
102667		return nil, err
102668	}
102669	req.Header = reqHeaders
102670	googleapi.Expand(req.URL, map[string]string{
102671		"project":              c.project,
102672		"zone":                 c.zone,
102673		"networkEndpointGroup": c.networkEndpointGroup,
102674	})
102675	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102676}
102677
102678// Do executes the "compute.networkEndpointGroups.listNetworkEndpoints" call.
102679// Exactly one of *NetworkEndpointGroupsListNetworkEndpoints or error
102680// will be non-nil. Any non-2xx status code is an error. Response
102681// headers are in either
102682// *NetworkEndpointGroupsListNetworkEndpoints.ServerResponse.Header or
102683// (if a response was returned at all) in
102684// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
102685// whether the returned error was because http.StatusNotModified was
102686// returned.
102687func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupsListNetworkEndpoints, error) {
102688	gensupport.SetOptions(c.urlParams_, opts...)
102689	res, err := c.doRequest("json")
102690	if res != nil && res.StatusCode == http.StatusNotModified {
102691		if res.Body != nil {
102692			res.Body.Close()
102693		}
102694		return nil, &googleapi.Error{
102695			Code:   res.StatusCode,
102696			Header: res.Header,
102697		}
102698	}
102699	if err != nil {
102700		return nil, err
102701	}
102702	defer googleapi.CloseBody(res)
102703	if err := googleapi.CheckResponse(res); err != nil {
102704		return nil, err
102705	}
102706	ret := &NetworkEndpointGroupsListNetworkEndpoints{
102707		ServerResponse: googleapi.ServerResponse{
102708			Header:         res.Header,
102709			HTTPStatusCode: res.StatusCode,
102710		},
102711	}
102712	target := &ret
102713	if err := gensupport.DecodeResponse(target, res); err != nil {
102714		return nil, err
102715	}
102716	return ret, nil
102717	// {
102718	//   "description": "Lists the network endpoints in the specified network endpoint group.",
102719	//   "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
102720	//   "httpMethod": "POST",
102721	//   "id": "compute.networkEndpointGroups.listNetworkEndpoints",
102722	//   "parameterOrder": [
102723	//     "project",
102724	//     "zone",
102725	//     "networkEndpointGroup"
102726	//   ],
102727	//   "parameters": {
102728	//     "filter": {
102729	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
102730	//       "location": "query",
102731	//       "type": "string"
102732	//     },
102733	//     "maxResults": {
102734	//       "default": "500",
102735	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
102736	//       "format": "uint32",
102737	//       "location": "query",
102738	//       "minimum": "0",
102739	//       "type": "integer"
102740	//     },
102741	//     "networkEndpointGroup": {
102742	//       "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.",
102743	//       "location": "path",
102744	//       "required": true,
102745	//       "type": "string"
102746	//     },
102747	//     "orderBy": {
102748	//       "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.",
102749	//       "location": "query",
102750	//       "type": "string"
102751	//     },
102752	//     "pageToken": {
102753	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
102754	//       "location": "query",
102755	//       "type": "string"
102756	//     },
102757	//     "project": {
102758	//       "description": "Project ID for this request.",
102759	//       "location": "path",
102760	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102761	//       "required": true,
102762	//       "type": "string"
102763	//     },
102764	//     "returnPartialSuccess": {
102765	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
102766	//       "location": "query",
102767	//       "type": "boolean"
102768	//     },
102769	//     "zone": {
102770	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
102771	//       "location": "path",
102772	//       "required": true,
102773	//       "type": "string"
102774	//     }
102775	//   },
102776	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
102777	//   "request": {
102778	//     "$ref": "NetworkEndpointGroupsListEndpointsRequest"
102779	//   },
102780	//   "response": {
102781	//     "$ref": "NetworkEndpointGroupsListNetworkEndpoints"
102782	//   },
102783	//   "scopes": [
102784	//     "https://www.googleapis.com/auth/cloud-platform",
102785	//     "https://www.googleapis.com/auth/compute",
102786	//     "https://www.googleapis.com/auth/compute.readonly"
102787	//   ]
102788	// }
102789
102790}
102791
102792// Pages invokes f for each page of results.
102793// A non-nil error returned from f will halt the iteration.
102794// The provided context supersedes any context provided to the Context method.
102795func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupsListNetworkEndpoints) error) error {
102796	c.ctx_ = ctx
102797	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
102798	for {
102799		x, err := c.Do()
102800		if err != nil {
102801			return err
102802		}
102803		if err := f(x); err != nil {
102804			return err
102805		}
102806		if x.NextPageToken == "" {
102807			return nil
102808		}
102809		c.PageToken(x.NextPageToken)
102810	}
102811}
102812
102813// method id "compute.networkEndpointGroups.testIamPermissions":
102814
102815type NetworkEndpointGroupsTestIamPermissionsCall struct {
102816	s                      *Service
102817	project                string
102818	zone                   string
102819	resource               string
102820	testpermissionsrequest *TestPermissionsRequest
102821	urlParams_             gensupport.URLParams
102822	ctx_                   context.Context
102823	header_                http.Header
102824}
102825
102826// TestIamPermissions: Returns permissions that a caller has on the
102827// specified resource.
102828//
102829// - project: Project ID for this request.
102830// - resource: Name or id of the resource for this request.
102831// - zone: The name of the zone for this request.
102832func (r *NetworkEndpointGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *NetworkEndpointGroupsTestIamPermissionsCall {
102833	c := &NetworkEndpointGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102834	c.project = project
102835	c.zone = zone
102836	c.resource = resource
102837	c.testpermissionsrequest = testpermissionsrequest
102838	return c
102839}
102840
102841// Fields allows partial responses to be retrieved. See
102842// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102843// for more information.
102844func (c *NetworkEndpointGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsTestIamPermissionsCall {
102845	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102846	return c
102847}
102848
102849// Context sets the context to be used in this call's Do method. Any
102850// pending HTTP request will be aborted if the provided context is
102851// canceled.
102852func (c *NetworkEndpointGroupsTestIamPermissionsCall) Context(ctx context.Context) *NetworkEndpointGroupsTestIamPermissionsCall {
102853	c.ctx_ = ctx
102854	return c
102855}
102856
102857// Header returns an http.Header that can be modified by the caller to
102858// add HTTP headers to the request.
102859func (c *NetworkEndpointGroupsTestIamPermissionsCall) Header() http.Header {
102860	if c.header_ == nil {
102861		c.header_ = make(http.Header)
102862	}
102863	return c.header_
102864}
102865
102866func (c *NetworkEndpointGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
102867	reqHeaders := make(http.Header)
102868	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
102869	for k, v := range c.header_ {
102870		reqHeaders[k] = v
102871	}
102872	reqHeaders.Set("User-Agent", c.s.userAgent())
102873	var body io.Reader = nil
102874	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
102875	if err != nil {
102876		return nil, err
102877	}
102878	reqHeaders.Set("Content-Type", "application/json")
102879	c.urlParams_.Set("alt", alt)
102880	c.urlParams_.Set("prettyPrint", "false")
102881	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions")
102882	urls += "?" + c.urlParams_.Encode()
102883	req, err := http.NewRequest("POST", urls, body)
102884	if err != nil {
102885		return nil, err
102886	}
102887	req.Header = reqHeaders
102888	googleapi.Expand(req.URL, map[string]string{
102889		"project":  c.project,
102890		"zone":     c.zone,
102891		"resource": c.resource,
102892	})
102893	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102894}
102895
102896// Do executes the "compute.networkEndpointGroups.testIamPermissions" call.
102897// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
102898// non-2xx status code is an error. Response headers are in either
102899// *TestPermissionsResponse.ServerResponse.Header or (if a response was
102900// returned at all) in error.(*googleapi.Error).Header. Use
102901// googleapi.IsNotModified to check whether the returned error was
102902// because http.StatusNotModified was returned.
102903func (c *NetworkEndpointGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
102904	gensupport.SetOptions(c.urlParams_, opts...)
102905	res, err := c.doRequest("json")
102906	if res != nil && res.StatusCode == http.StatusNotModified {
102907		if res.Body != nil {
102908			res.Body.Close()
102909		}
102910		return nil, &googleapi.Error{
102911			Code:   res.StatusCode,
102912			Header: res.Header,
102913		}
102914	}
102915	if err != nil {
102916		return nil, err
102917	}
102918	defer googleapi.CloseBody(res)
102919	if err := googleapi.CheckResponse(res); err != nil {
102920		return nil, err
102921	}
102922	ret := &TestPermissionsResponse{
102923		ServerResponse: googleapi.ServerResponse{
102924			Header:         res.Header,
102925			HTTPStatusCode: res.StatusCode,
102926		},
102927	}
102928	target := &ret
102929	if err := gensupport.DecodeResponse(target, res); err != nil {
102930		return nil, err
102931	}
102932	return ret, nil
102933	// {
102934	//   "description": "Returns permissions that a caller has on the specified resource.",
102935	//   "flatPath": "projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions",
102936	//   "httpMethod": "POST",
102937	//   "id": "compute.networkEndpointGroups.testIamPermissions",
102938	//   "parameterOrder": [
102939	//     "project",
102940	//     "zone",
102941	//     "resource"
102942	//   ],
102943	//   "parameters": {
102944	//     "project": {
102945	//       "description": "Project ID for this request.",
102946	//       "location": "path",
102947	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102948	//       "required": true,
102949	//       "type": "string"
102950	//     },
102951	//     "resource": {
102952	//       "description": "Name or id of the resource for this request.",
102953	//       "location": "path",
102954	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102955	//       "required": true,
102956	//       "type": "string"
102957	//     },
102958	//     "zone": {
102959	//       "description": "The name of the zone for this request.",
102960	//       "location": "path",
102961	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
102962	//       "required": true,
102963	//       "type": "string"
102964	//     }
102965	//   },
102966	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions",
102967	//   "request": {
102968	//     "$ref": "TestPermissionsRequest"
102969	//   },
102970	//   "response": {
102971	//     "$ref": "TestPermissionsResponse"
102972	//   },
102973	//   "scopes": [
102974	//     "https://www.googleapis.com/auth/cloud-platform",
102975	//     "https://www.googleapis.com/auth/compute",
102976	//     "https://www.googleapis.com/auth/compute.readonly"
102977	//   ]
102978	// }
102979
102980}
102981
102982// method id "compute.networks.addPeering":
102983
102984type NetworksAddPeeringCall struct {
102985	s                         *Service
102986	project                   string
102987	network                   string
102988	networksaddpeeringrequest *NetworksAddPeeringRequest
102989	urlParams_                gensupport.URLParams
102990	ctx_                      context.Context
102991	header_                   http.Header
102992}
102993
102994// AddPeering: Adds a peering to the specified network.
102995//
102996// - network: Name of the network resource to add peering to.
102997// - project: Project ID for this request.
102998func (r *NetworksService) AddPeering(project string, network string, networksaddpeeringrequest *NetworksAddPeeringRequest) *NetworksAddPeeringCall {
102999	c := &NetworksAddPeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103000	c.project = project
103001	c.network = network
103002	c.networksaddpeeringrequest = networksaddpeeringrequest
103003	return c
103004}
103005
103006// RequestId sets the optional parameter "requestId": An optional
103007// request ID to identify requests. Specify a unique request ID so that
103008// if you must retry your request, the server will know to ignore the
103009// request if it has already been completed. For example, consider a
103010// situation where you make an initial request and the request times
103011// out. If you make the request again with the same request ID, the
103012// server can check if original operation with the same request ID was
103013// received, and if so, will ignore the second request. This prevents
103014// clients from accidentally creating duplicate commitments. The request
103015// ID must be a valid UUID with the exception that zero UUID is not
103016// supported ( 00000000-0000-0000-0000-000000000000).
103017func (c *NetworksAddPeeringCall) RequestId(requestId string) *NetworksAddPeeringCall {
103018	c.urlParams_.Set("requestId", requestId)
103019	return c
103020}
103021
103022// Fields allows partial responses to be retrieved. See
103023// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103024// for more information.
103025func (c *NetworksAddPeeringCall) Fields(s ...googleapi.Field) *NetworksAddPeeringCall {
103026	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103027	return c
103028}
103029
103030// Context sets the context to be used in this call's Do method. Any
103031// pending HTTP request will be aborted if the provided context is
103032// canceled.
103033func (c *NetworksAddPeeringCall) Context(ctx context.Context) *NetworksAddPeeringCall {
103034	c.ctx_ = ctx
103035	return c
103036}
103037
103038// Header returns an http.Header that can be modified by the caller to
103039// add HTTP headers to the request.
103040func (c *NetworksAddPeeringCall) Header() http.Header {
103041	if c.header_ == nil {
103042		c.header_ = make(http.Header)
103043	}
103044	return c.header_
103045}
103046
103047func (c *NetworksAddPeeringCall) doRequest(alt string) (*http.Response, error) {
103048	reqHeaders := make(http.Header)
103049	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
103050	for k, v := range c.header_ {
103051		reqHeaders[k] = v
103052	}
103053	reqHeaders.Set("User-Agent", c.s.userAgent())
103054	var body io.Reader = nil
103055	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksaddpeeringrequest)
103056	if err != nil {
103057		return nil, err
103058	}
103059	reqHeaders.Set("Content-Type", "application/json")
103060	c.urlParams_.Set("alt", alt)
103061	c.urlParams_.Set("prettyPrint", "false")
103062	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/addPeering")
103063	urls += "?" + c.urlParams_.Encode()
103064	req, err := http.NewRequest("POST", urls, body)
103065	if err != nil {
103066		return nil, err
103067	}
103068	req.Header = reqHeaders
103069	googleapi.Expand(req.URL, map[string]string{
103070		"project": c.project,
103071		"network": c.network,
103072	})
103073	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103074}
103075
103076// Do executes the "compute.networks.addPeering" call.
103077// Exactly one of *Operation or error will be non-nil. Any non-2xx
103078// status code is an error. Response headers are in either
103079// *Operation.ServerResponse.Header or (if a response was returned at
103080// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103081// to check whether the returned error was because
103082// http.StatusNotModified was returned.
103083func (c *NetworksAddPeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103084	gensupport.SetOptions(c.urlParams_, opts...)
103085	res, err := c.doRequest("json")
103086	if res != nil && res.StatusCode == http.StatusNotModified {
103087		if res.Body != nil {
103088			res.Body.Close()
103089		}
103090		return nil, &googleapi.Error{
103091			Code:   res.StatusCode,
103092			Header: res.Header,
103093		}
103094	}
103095	if err != nil {
103096		return nil, err
103097	}
103098	defer googleapi.CloseBody(res)
103099	if err := googleapi.CheckResponse(res); err != nil {
103100		return nil, err
103101	}
103102	ret := &Operation{
103103		ServerResponse: googleapi.ServerResponse{
103104			Header:         res.Header,
103105			HTTPStatusCode: res.StatusCode,
103106		},
103107	}
103108	target := &ret
103109	if err := gensupport.DecodeResponse(target, res); err != nil {
103110		return nil, err
103111	}
103112	return ret, nil
103113	// {
103114	//   "description": "Adds a peering to the specified network.",
103115	//   "flatPath": "projects/{project}/global/networks/{network}/addPeering",
103116	//   "httpMethod": "POST",
103117	//   "id": "compute.networks.addPeering",
103118	//   "parameterOrder": [
103119	//     "project",
103120	//     "network"
103121	//   ],
103122	//   "parameters": {
103123	//     "network": {
103124	//       "description": "Name of the network resource to add peering to.",
103125	//       "location": "path",
103126	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
103127	//       "required": true,
103128	//       "type": "string"
103129	//     },
103130	//     "project": {
103131	//       "description": "Project ID for this request.",
103132	//       "location": "path",
103133	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103134	//       "required": true,
103135	//       "type": "string"
103136	//     },
103137	//     "requestId": {
103138	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
103139	//       "location": "query",
103140	//       "type": "string"
103141	//     }
103142	//   },
103143	//   "path": "projects/{project}/global/networks/{network}/addPeering",
103144	//   "request": {
103145	//     "$ref": "NetworksAddPeeringRequest"
103146	//   },
103147	//   "response": {
103148	//     "$ref": "Operation"
103149	//   },
103150	//   "scopes": [
103151	//     "https://www.googleapis.com/auth/cloud-platform",
103152	//     "https://www.googleapis.com/auth/compute"
103153	//   ]
103154	// }
103155
103156}
103157
103158// method id "compute.networks.delete":
103159
103160type NetworksDeleteCall struct {
103161	s          *Service
103162	project    string
103163	network    string
103164	urlParams_ gensupport.URLParams
103165	ctx_       context.Context
103166	header_    http.Header
103167}
103168
103169// Delete: Deletes the specified network.
103170//
103171// - network: Name of the network to delete.
103172// - project: Project ID for this request.
103173func (r *NetworksService) Delete(project string, network string) *NetworksDeleteCall {
103174	c := &NetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103175	c.project = project
103176	c.network = network
103177	return c
103178}
103179
103180// RequestId sets the optional parameter "requestId": An optional
103181// request ID to identify requests. Specify a unique request ID so that
103182// if you must retry your request, the server will know to ignore the
103183// request if it has already been completed. For example, consider a
103184// situation where you make an initial request and the request times
103185// out. If you make the request again with the same request ID, the
103186// server can check if original operation with the same request ID was
103187// received, and if so, will ignore the second request. This prevents
103188// clients from accidentally creating duplicate commitments. The request
103189// ID must be a valid UUID with the exception that zero UUID is not
103190// supported ( 00000000-0000-0000-0000-000000000000).
103191func (c *NetworksDeleteCall) RequestId(requestId string) *NetworksDeleteCall {
103192	c.urlParams_.Set("requestId", requestId)
103193	return c
103194}
103195
103196// Fields allows partial responses to be retrieved. See
103197// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103198// for more information.
103199func (c *NetworksDeleteCall) Fields(s ...googleapi.Field) *NetworksDeleteCall {
103200	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103201	return c
103202}
103203
103204// Context sets the context to be used in this call's Do method. Any
103205// pending HTTP request will be aborted if the provided context is
103206// canceled.
103207func (c *NetworksDeleteCall) Context(ctx context.Context) *NetworksDeleteCall {
103208	c.ctx_ = ctx
103209	return c
103210}
103211
103212// Header returns an http.Header that can be modified by the caller to
103213// add HTTP headers to the request.
103214func (c *NetworksDeleteCall) Header() http.Header {
103215	if c.header_ == nil {
103216		c.header_ = make(http.Header)
103217	}
103218	return c.header_
103219}
103220
103221func (c *NetworksDeleteCall) doRequest(alt string) (*http.Response, error) {
103222	reqHeaders := make(http.Header)
103223	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
103224	for k, v := range c.header_ {
103225		reqHeaders[k] = v
103226	}
103227	reqHeaders.Set("User-Agent", c.s.userAgent())
103228	var body io.Reader = nil
103229	c.urlParams_.Set("alt", alt)
103230	c.urlParams_.Set("prettyPrint", "false")
103231	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}")
103232	urls += "?" + c.urlParams_.Encode()
103233	req, err := http.NewRequest("DELETE", urls, body)
103234	if err != nil {
103235		return nil, err
103236	}
103237	req.Header = reqHeaders
103238	googleapi.Expand(req.URL, map[string]string{
103239		"project": c.project,
103240		"network": c.network,
103241	})
103242	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103243}
103244
103245// Do executes the "compute.networks.delete" call.
103246// Exactly one of *Operation or error will be non-nil. Any non-2xx
103247// status code is an error. Response headers are in either
103248// *Operation.ServerResponse.Header or (if a response was returned at
103249// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103250// to check whether the returned error was because
103251// http.StatusNotModified was returned.
103252func (c *NetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103253	gensupport.SetOptions(c.urlParams_, opts...)
103254	res, err := c.doRequest("json")
103255	if res != nil && res.StatusCode == http.StatusNotModified {
103256		if res.Body != nil {
103257			res.Body.Close()
103258		}
103259		return nil, &googleapi.Error{
103260			Code:   res.StatusCode,
103261			Header: res.Header,
103262		}
103263	}
103264	if err != nil {
103265		return nil, err
103266	}
103267	defer googleapi.CloseBody(res)
103268	if err := googleapi.CheckResponse(res); err != nil {
103269		return nil, err
103270	}
103271	ret := &Operation{
103272		ServerResponse: googleapi.ServerResponse{
103273			Header:         res.Header,
103274			HTTPStatusCode: res.StatusCode,
103275		},
103276	}
103277	target := &ret
103278	if err := gensupport.DecodeResponse(target, res); err != nil {
103279		return nil, err
103280	}
103281	return ret, nil
103282	// {
103283	//   "description": "Deletes the specified network.",
103284	//   "flatPath": "projects/{project}/global/networks/{network}",
103285	//   "httpMethod": "DELETE",
103286	//   "id": "compute.networks.delete",
103287	//   "parameterOrder": [
103288	//     "project",
103289	//     "network"
103290	//   ],
103291	//   "parameters": {
103292	//     "network": {
103293	//       "description": "Name of the network to delete.",
103294	//       "location": "path",
103295	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
103296	//       "required": true,
103297	//       "type": "string"
103298	//     },
103299	//     "project": {
103300	//       "description": "Project ID for this request.",
103301	//       "location": "path",
103302	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103303	//       "required": true,
103304	//       "type": "string"
103305	//     },
103306	//     "requestId": {
103307	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
103308	//       "location": "query",
103309	//       "type": "string"
103310	//     }
103311	//   },
103312	//   "path": "projects/{project}/global/networks/{network}",
103313	//   "response": {
103314	//     "$ref": "Operation"
103315	//   },
103316	//   "scopes": [
103317	//     "https://www.googleapis.com/auth/cloud-platform",
103318	//     "https://www.googleapis.com/auth/compute"
103319	//   ]
103320	// }
103321
103322}
103323
103324// method id "compute.networks.get":
103325
103326type NetworksGetCall struct {
103327	s            *Service
103328	project      string
103329	network      string
103330	urlParams_   gensupport.URLParams
103331	ifNoneMatch_ string
103332	ctx_         context.Context
103333	header_      http.Header
103334}
103335
103336// Get: Returns the specified network. Gets a list of available networks
103337// by making a list() request.
103338//
103339// - network: Name of the network to return.
103340// - project: Project ID for this request.
103341func (r *NetworksService) Get(project string, network string) *NetworksGetCall {
103342	c := &NetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103343	c.project = project
103344	c.network = network
103345	return c
103346}
103347
103348// Fields allows partial responses to be retrieved. See
103349// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103350// for more information.
103351func (c *NetworksGetCall) Fields(s ...googleapi.Field) *NetworksGetCall {
103352	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103353	return c
103354}
103355
103356// IfNoneMatch sets the optional parameter which makes the operation
103357// fail if the object's ETag matches the given value. This is useful for
103358// getting updates only after the object has changed since the last
103359// request. Use googleapi.IsNotModified to check whether the response
103360// error from Do is the result of In-None-Match.
103361func (c *NetworksGetCall) IfNoneMatch(entityTag string) *NetworksGetCall {
103362	c.ifNoneMatch_ = entityTag
103363	return c
103364}
103365
103366// Context sets the context to be used in this call's Do method. Any
103367// pending HTTP request will be aborted if the provided context is
103368// canceled.
103369func (c *NetworksGetCall) Context(ctx context.Context) *NetworksGetCall {
103370	c.ctx_ = ctx
103371	return c
103372}
103373
103374// Header returns an http.Header that can be modified by the caller to
103375// add HTTP headers to the request.
103376func (c *NetworksGetCall) Header() http.Header {
103377	if c.header_ == nil {
103378		c.header_ = make(http.Header)
103379	}
103380	return c.header_
103381}
103382
103383func (c *NetworksGetCall) doRequest(alt string) (*http.Response, error) {
103384	reqHeaders := make(http.Header)
103385	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
103386	for k, v := range c.header_ {
103387		reqHeaders[k] = v
103388	}
103389	reqHeaders.Set("User-Agent", c.s.userAgent())
103390	if c.ifNoneMatch_ != "" {
103391		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
103392	}
103393	var body io.Reader = nil
103394	c.urlParams_.Set("alt", alt)
103395	c.urlParams_.Set("prettyPrint", "false")
103396	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}")
103397	urls += "?" + c.urlParams_.Encode()
103398	req, err := http.NewRequest("GET", urls, body)
103399	if err != nil {
103400		return nil, err
103401	}
103402	req.Header = reqHeaders
103403	googleapi.Expand(req.URL, map[string]string{
103404		"project": c.project,
103405		"network": c.network,
103406	})
103407	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103408}
103409
103410// Do executes the "compute.networks.get" call.
103411// Exactly one of *Network or error will be non-nil. Any non-2xx status
103412// code is an error. Response headers are in either
103413// *Network.ServerResponse.Header or (if a response was returned at all)
103414// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
103415// check whether the returned error was because http.StatusNotModified
103416// was returned.
103417func (c *NetworksGetCall) Do(opts ...googleapi.CallOption) (*Network, error) {
103418	gensupport.SetOptions(c.urlParams_, opts...)
103419	res, err := c.doRequest("json")
103420	if res != nil && res.StatusCode == http.StatusNotModified {
103421		if res.Body != nil {
103422			res.Body.Close()
103423		}
103424		return nil, &googleapi.Error{
103425			Code:   res.StatusCode,
103426			Header: res.Header,
103427		}
103428	}
103429	if err != nil {
103430		return nil, err
103431	}
103432	defer googleapi.CloseBody(res)
103433	if err := googleapi.CheckResponse(res); err != nil {
103434		return nil, err
103435	}
103436	ret := &Network{
103437		ServerResponse: googleapi.ServerResponse{
103438			Header:         res.Header,
103439			HTTPStatusCode: res.StatusCode,
103440		},
103441	}
103442	target := &ret
103443	if err := gensupport.DecodeResponse(target, res); err != nil {
103444		return nil, err
103445	}
103446	return ret, nil
103447	// {
103448	//   "description": "Returns the specified network. Gets a list of available networks by making a list() request.",
103449	//   "flatPath": "projects/{project}/global/networks/{network}",
103450	//   "httpMethod": "GET",
103451	//   "id": "compute.networks.get",
103452	//   "parameterOrder": [
103453	//     "project",
103454	//     "network"
103455	//   ],
103456	//   "parameters": {
103457	//     "network": {
103458	//       "description": "Name of the network to return.",
103459	//       "location": "path",
103460	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
103461	//       "required": true,
103462	//       "type": "string"
103463	//     },
103464	//     "project": {
103465	//       "description": "Project ID for this request.",
103466	//       "location": "path",
103467	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103468	//       "required": true,
103469	//       "type": "string"
103470	//     }
103471	//   },
103472	//   "path": "projects/{project}/global/networks/{network}",
103473	//   "response": {
103474	//     "$ref": "Network"
103475	//   },
103476	//   "scopes": [
103477	//     "https://www.googleapis.com/auth/cloud-platform",
103478	//     "https://www.googleapis.com/auth/compute",
103479	//     "https://www.googleapis.com/auth/compute.readonly"
103480	//   ]
103481	// }
103482
103483}
103484
103485// method id "compute.networks.getEffectiveFirewalls":
103486
103487type NetworksGetEffectiveFirewallsCall struct {
103488	s            *Service
103489	project      string
103490	network      string
103491	urlParams_   gensupport.URLParams
103492	ifNoneMatch_ string
103493	ctx_         context.Context
103494	header_      http.Header
103495}
103496
103497// GetEffectiveFirewalls: Returns the effective firewalls on a given
103498// network.
103499//
103500// - network: Name of the network for this request.
103501// - project: Project ID for this request.
103502func (r *NetworksService) GetEffectiveFirewalls(project string, network string) *NetworksGetEffectiveFirewallsCall {
103503	c := &NetworksGetEffectiveFirewallsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103504	c.project = project
103505	c.network = network
103506	return c
103507}
103508
103509// Fields allows partial responses to be retrieved. See
103510// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103511// for more information.
103512func (c *NetworksGetEffectiveFirewallsCall) Fields(s ...googleapi.Field) *NetworksGetEffectiveFirewallsCall {
103513	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103514	return c
103515}
103516
103517// IfNoneMatch sets the optional parameter which makes the operation
103518// fail if the object's ETag matches the given value. This is useful for
103519// getting updates only after the object has changed since the last
103520// request. Use googleapi.IsNotModified to check whether the response
103521// error from Do is the result of In-None-Match.
103522func (c *NetworksGetEffectiveFirewallsCall) IfNoneMatch(entityTag string) *NetworksGetEffectiveFirewallsCall {
103523	c.ifNoneMatch_ = entityTag
103524	return c
103525}
103526
103527// Context sets the context to be used in this call's Do method. Any
103528// pending HTTP request will be aborted if the provided context is
103529// canceled.
103530func (c *NetworksGetEffectiveFirewallsCall) Context(ctx context.Context) *NetworksGetEffectiveFirewallsCall {
103531	c.ctx_ = ctx
103532	return c
103533}
103534
103535// Header returns an http.Header that can be modified by the caller to
103536// add HTTP headers to the request.
103537func (c *NetworksGetEffectiveFirewallsCall) Header() http.Header {
103538	if c.header_ == nil {
103539		c.header_ = make(http.Header)
103540	}
103541	return c.header_
103542}
103543
103544func (c *NetworksGetEffectiveFirewallsCall) doRequest(alt string) (*http.Response, error) {
103545	reqHeaders := make(http.Header)
103546	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
103547	for k, v := range c.header_ {
103548		reqHeaders[k] = v
103549	}
103550	reqHeaders.Set("User-Agent", c.s.userAgent())
103551	if c.ifNoneMatch_ != "" {
103552		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
103553	}
103554	var body io.Reader = nil
103555	c.urlParams_.Set("alt", alt)
103556	c.urlParams_.Set("prettyPrint", "false")
103557	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/getEffectiveFirewalls")
103558	urls += "?" + c.urlParams_.Encode()
103559	req, err := http.NewRequest("GET", urls, body)
103560	if err != nil {
103561		return nil, err
103562	}
103563	req.Header = reqHeaders
103564	googleapi.Expand(req.URL, map[string]string{
103565		"project": c.project,
103566		"network": c.network,
103567	})
103568	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103569}
103570
103571// Do executes the "compute.networks.getEffectiveFirewalls" call.
103572// Exactly one of *NetworksGetEffectiveFirewallsResponse or error will
103573// be non-nil. Any non-2xx status code is an error. Response headers are
103574// in either
103575// *NetworksGetEffectiveFirewallsResponse.ServerResponse.Header or (if a
103576// response was returned at all) in error.(*googleapi.Error).Header. Use
103577// googleapi.IsNotModified to check whether the returned error was
103578// because http.StatusNotModified was returned.
103579func (c *NetworksGetEffectiveFirewallsCall) Do(opts ...googleapi.CallOption) (*NetworksGetEffectiveFirewallsResponse, error) {
103580	gensupport.SetOptions(c.urlParams_, opts...)
103581	res, err := c.doRequest("json")
103582	if res != nil && res.StatusCode == http.StatusNotModified {
103583		if res.Body != nil {
103584			res.Body.Close()
103585		}
103586		return nil, &googleapi.Error{
103587			Code:   res.StatusCode,
103588			Header: res.Header,
103589		}
103590	}
103591	if err != nil {
103592		return nil, err
103593	}
103594	defer googleapi.CloseBody(res)
103595	if err := googleapi.CheckResponse(res); err != nil {
103596		return nil, err
103597	}
103598	ret := &NetworksGetEffectiveFirewallsResponse{
103599		ServerResponse: googleapi.ServerResponse{
103600			Header:         res.Header,
103601			HTTPStatusCode: res.StatusCode,
103602		},
103603	}
103604	target := &ret
103605	if err := gensupport.DecodeResponse(target, res); err != nil {
103606		return nil, err
103607	}
103608	return ret, nil
103609	// {
103610	//   "description": "Returns the effective firewalls on a given network.",
103611	//   "flatPath": "projects/{project}/global/networks/{network}/getEffectiveFirewalls",
103612	//   "httpMethod": "GET",
103613	//   "id": "compute.networks.getEffectiveFirewalls",
103614	//   "parameterOrder": [
103615	//     "project",
103616	//     "network"
103617	//   ],
103618	//   "parameters": {
103619	//     "network": {
103620	//       "description": "Name of the network for this request.",
103621	//       "location": "path",
103622	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
103623	//       "required": true,
103624	//       "type": "string"
103625	//     },
103626	//     "project": {
103627	//       "description": "Project ID for this request.",
103628	//       "location": "path",
103629	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103630	//       "required": true,
103631	//       "type": "string"
103632	//     }
103633	//   },
103634	//   "path": "projects/{project}/global/networks/{network}/getEffectiveFirewalls",
103635	//   "response": {
103636	//     "$ref": "NetworksGetEffectiveFirewallsResponse"
103637	//   },
103638	//   "scopes": [
103639	//     "https://www.googleapis.com/auth/cloud-platform",
103640	//     "https://www.googleapis.com/auth/compute",
103641	//     "https://www.googleapis.com/auth/compute.readonly"
103642	//   ]
103643	// }
103644
103645}
103646
103647// method id "compute.networks.insert":
103648
103649type NetworksInsertCall struct {
103650	s          *Service
103651	project    string
103652	network    *Network
103653	urlParams_ gensupport.URLParams
103654	ctx_       context.Context
103655	header_    http.Header
103656}
103657
103658// Insert: Creates a network in the specified project using the data
103659// included in the request.
103660//
103661// - project: Project ID for this request.
103662func (r *NetworksService) Insert(project string, network *Network) *NetworksInsertCall {
103663	c := &NetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103664	c.project = project
103665	c.network = network
103666	return c
103667}
103668
103669// RequestId sets the optional parameter "requestId": An optional
103670// request ID to identify requests. Specify a unique request ID so that
103671// if you must retry your request, the server will know to ignore the
103672// request if it has already been completed. For example, consider a
103673// situation where you make an initial request and the request times
103674// out. If you make the request again with the same request ID, the
103675// server can check if original operation with the same request ID was
103676// received, and if so, will ignore the second request. This prevents
103677// clients from accidentally creating duplicate commitments. The request
103678// ID must be a valid UUID with the exception that zero UUID is not
103679// supported ( 00000000-0000-0000-0000-000000000000).
103680func (c *NetworksInsertCall) RequestId(requestId string) *NetworksInsertCall {
103681	c.urlParams_.Set("requestId", requestId)
103682	return c
103683}
103684
103685// Fields allows partial responses to be retrieved. See
103686// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103687// for more information.
103688func (c *NetworksInsertCall) Fields(s ...googleapi.Field) *NetworksInsertCall {
103689	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103690	return c
103691}
103692
103693// Context sets the context to be used in this call's Do method. Any
103694// pending HTTP request will be aborted if the provided context is
103695// canceled.
103696func (c *NetworksInsertCall) Context(ctx context.Context) *NetworksInsertCall {
103697	c.ctx_ = ctx
103698	return c
103699}
103700
103701// Header returns an http.Header that can be modified by the caller to
103702// add HTTP headers to the request.
103703func (c *NetworksInsertCall) Header() http.Header {
103704	if c.header_ == nil {
103705		c.header_ = make(http.Header)
103706	}
103707	return c.header_
103708}
103709
103710func (c *NetworksInsertCall) doRequest(alt string) (*http.Response, error) {
103711	reqHeaders := make(http.Header)
103712	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
103713	for k, v := range c.header_ {
103714		reqHeaders[k] = v
103715	}
103716	reqHeaders.Set("User-Agent", c.s.userAgent())
103717	var body io.Reader = nil
103718	body, err := googleapi.WithoutDataWrapper.JSONReader(c.network)
103719	if err != nil {
103720		return nil, err
103721	}
103722	reqHeaders.Set("Content-Type", "application/json")
103723	c.urlParams_.Set("alt", alt)
103724	c.urlParams_.Set("prettyPrint", "false")
103725	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks")
103726	urls += "?" + c.urlParams_.Encode()
103727	req, err := http.NewRequest("POST", urls, body)
103728	if err != nil {
103729		return nil, err
103730	}
103731	req.Header = reqHeaders
103732	googleapi.Expand(req.URL, map[string]string{
103733		"project": c.project,
103734	})
103735	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103736}
103737
103738// Do executes the "compute.networks.insert" call.
103739// Exactly one of *Operation or error will be non-nil. Any non-2xx
103740// status code is an error. Response headers are in either
103741// *Operation.ServerResponse.Header or (if a response was returned at
103742// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103743// to check whether the returned error was because
103744// http.StatusNotModified was returned.
103745func (c *NetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103746	gensupport.SetOptions(c.urlParams_, opts...)
103747	res, err := c.doRequest("json")
103748	if res != nil && res.StatusCode == http.StatusNotModified {
103749		if res.Body != nil {
103750			res.Body.Close()
103751		}
103752		return nil, &googleapi.Error{
103753			Code:   res.StatusCode,
103754			Header: res.Header,
103755		}
103756	}
103757	if err != nil {
103758		return nil, err
103759	}
103760	defer googleapi.CloseBody(res)
103761	if err := googleapi.CheckResponse(res); err != nil {
103762		return nil, err
103763	}
103764	ret := &Operation{
103765		ServerResponse: googleapi.ServerResponse{
103766			Header:         res.Header,
103767			HTTPStatusCode: res.StatusCode,
103768		},
103769	}
103770	target := &ret
103771	if err := gensupport.DecodeResponse(target, res); err != nil {
103772		return nil, err
103773	}
103774	return ret, nil
103775	// {
103776	//   "description": "Creates a network in the specified project using the data included in the request.",
103777	//   "flatPath": "projects/{project}/global/networks",
103778	//   "httpMethod": "POST",
103779	//   "id": "compute.networks.insert",
103780	//   "parameterOrder": [
103781	//     "project"
103782	//   ],
103783	//   "parameters": {
103784	//     "project": {
103785	//       "description": "Project ID for this request.",
103786	//       "location": "path",
103787	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103788	//       "required": true,
103789	//       "type": "string"
103790	//     },
103791	//     "requestId": {
103792	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
103793	//       "location": "query",
103794	//       "type": "string"
103795	//     }
103796	//   },
103797	//   "path": "projects/{project}/global/networks",
103798	//   "request": {
103799	//     "$ref": "Network"
103800	//   },
103801	//   "response": {
103802	//     "$ref": "Operation"
103803	//   },
103804	//   "scopes": [
103805	//     "https://www.googleapis.com/auth/cloud-platform",
103806	//     "https://www.googleapis.com/auth/compute"
103807	//   ]
103808	// }
103809
103810}
103811
103812// method id "compute.networks.list":
103813
103814type NetworksListCall struct {
103815	s            *Service
103816	project      string
103817	urlParams_   gensupport.URLParams
103818	ifNoneMatch_ string
103819	ctx_         context.Context
103820	header_      http.Header
103821}
103822
103823// List: Retrieves the list of networks available to the specified
103824// project.
103825//
103826// - project: Project ID for this request.
103827func (r *NetworksService) List(project string) *NetworksListCall {
103828	c := &NetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103829	c.project = project
103830	return c
103831}
103832
103833// Filter sets the optional parameter "filter": A filter expression that
103834// filters resources listed in the response. The expression must specify
103835// the field name, a comparison operator, and the value that you want to
103836// use for filtering. The value must be a string, a number, or a
103837// boolean. The comparison operator must be either `=`, `!=`, `>`, or
103838// `<`. For example, if you are filtering Compute Engine instances, you
103839// can exclude instances named `example-instance` by specifying `name !=
103840// example-instance`. You can also filter nested fields. For example,
103841// you could specify `scheduling.automaticRestart = false` to include
103842// instances only if they are not scheduled for automatic restarts. You
103843// can use filtering on nested fields to filter based on resource
103844// labels. To filter on multiple expressions, provide each separate
103845// expression within parentheses. For example: ```
103846// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
103847// ``` By default, each expression is an `AND` expression. However, you
103848// can include `AND` and `OR` expressions explicitly. For example: ```
103849// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
103850// AND (scheduling.automaticRestart = true) ```
103851func (c *NetworksListCall) Filter(filter string) *NetworksListCall {
103852	c.urlParams_.Set("filter", filter)
103853	return c
103854}
103855
103856// MaxResults sets the optional parameter "maxResults": The maximum
103857// number of results per page that should be returned. If the number of
103858// available results is larger than `maxResults`, Compute Engine returns
103859// a `nextPageToken` that can be used to get the next page of results in
103860// subsequent list requests. Acceptable values are `0` to `500`,
103861// inclusive. (Default: `500`)
103862func (c *NetworksListCall) MaxResults(maxResults int64) *NetworksListCall {
103863	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
103864	return c
103865}
103866
103867// OrderBy sets the optional parameter "orderBy": Sorts list results by
103868// a certain order. By default, results are returned in alphanumerical
103869// order based on the resource name. You can also sort results in
103870// descending order based on the creation timestamp using
103871// `orderBy="creationTimestamp desc". This sorts results based on the
103872// `creationTimestamp` field in reverse chronological order (newest
103873// result first). Use this to sort resources like operations so that the
103874// newest operation is returned first. Currently, only sorting by `name`
103875// or `creationTimestamp desc` is supported.
103876func (c *NetworksListCall) OrderBy(orderBy string) *NetworksListCall {
103877	c.urlParams_.Set("orderBy", orderBy)
103878	return c
103879}
103880
103881// PageToken sets the optional parameter "pageToken": Specifies a page
103882// token to use. Set `pageToken` to the `nextPageToken` returned by a
103883// previous list request to get the next page of results.
103884func (c *NetworksListCall) PageToken(pageToken string) *NetworksListCall {
103885	c.urlParams_.Set("pageToken", pageToken)
103886	return c
103887}
103888
103889// ReturnPartialSuccess sets the optional parameter
103890// "returnPartialSuccess": Opt-in for partial success behavior which
103891// provides partial results in case of failure. The default value is
103892// false.
103893func (c *NetworksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworksListCall {
103894	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
103895	return c
103896}
103897
103898// Fields allows partial responses to be retrieved. See
103899// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103900// for more information.
103901func (c *NetworksListCall) Fields(s ...googleapi.Field) *NetworksListCall {
103902	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103903	return c
103904}
103905
103906// IfNoneMatch sets the optional parameter which makes the operation
103907// fail if the object's ETag matches the given value. This is useful for
103908// getting updates only after the object has changed since the last
103909// request. Use googleapi.IsNotModified to check whether the response
103910// error from Do is the result of In-None-Match.
103911func (c *NetworksListCall) IfNoneMatch(entityTag string) *NetworksListCall {
103912	c.ifNoneMatch_ = entityTag
103913	return c
103914}
103915
103916// Context sets the context to be used in this call's Do method. Any
103917// pending HTTP request will be aborted if the provided context is
103918// canceled.
103919func (c *NetworksListCall) Context(ctx context.Context) *NetworksListCall {
103920	c.ctx_ = ctx
103921	return c
103922}
103923
103924// Header returns an http.Header that can be modified by the caller to
103925// add HTTP headers to the request.
103926func (c *NetworksListCall) Header() http.Header {
103927	if c.header_ == nil {
103928		c.header_ = make(http.Header)
103929	}
103930	return c.header_
103931}
103932
103933func (c *NetworksListCall) doRequest(alt string) (*http.Response, error) {
103934	reqHeaders := make(http.Header)
103935	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
103936	for k, v := range c.header_ {
103937		reqHeaders[k] = v
103938	}
103939	reqHeaders.Set("User-Agent", c.s.userAgent())
103940	if c.ifNoneMatch_ != "" {
103941		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
103942	}
103943	var body io.Reader = nil
103944	c.urlParams_.Set("alt", alt)
103945	c.urlParams_.Set("prettyPrint", "false")
103946	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks")
103947	urls += "?" + c.urlParams_.Encode()
103948	req, err := http.NewRequest("GET", urls, body)
103949	if err != nil {
103950		return nil, err
103951	}
103952	req.Header = reqHeaders
103953	googleapi.Expand(req.URL, map[string]string{
103954		"project": c.project,
103955	})
103956	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103957}
103958
103959// Do executes the "compute.networks.list" call.
103960// Exactly one of *NetworkList or error will be non-nil. Any non-2xx
103961// status code is an error. Response headers are in either
103962// *NetworkList.ServerResponse.Header or (if a response was returned at
103963// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103964// to check whether the returned error was because
103965// http.StatusNotModified was returned.
103966func (c *NetworksListCall) Do(opts ...googleapi.CallOption) (*NetworkList, error) {
103967	gensupport.SetOptions(c.urlParams_, opts...)
103968	res, err := c.doRequest("json")
103969	if res != nil && res.StatusCode == http.StatusNotModified {
103970		if res.Body != nil {
103971			res.Body.Close()
103972		}
103973		return nil, &googleapi.Error{
103974			Code:   res.StatusCode,
103975			Header: res.Header,
103976		}
103977	}
103978	if err != nil {
103979		return nil, err
103980	}
103981	defer googleapi.CloseBody(res)
103982	if err := googleapi.CheckResponse(res); err != nil {
103983		return nil, err
103984	}
103985	ret := &NetworkList{
103986		ServerResponse: googleapi.ServerResponse{
103987			Header:         res.Header,
103988			HTTPStatusCode: res.StatusCode,
103989		},
103990	}
103991	target := &ret
103992	if err := gensupport.DecodeResponse(target, res); err != nil {
103993		return nil, err
103994	}
103995	return ret, nil
103996	// {
103997	//   "description": "Retrieves the list of networks available to the specified project.",
103998	//   "flatPath": "projects/{project}/global/networks",
103999	//   "httpMethod": "GET",
104000	//   "id": "compute.networks.list",
104001	//   "parameterOrder": [
104002	//     "project"
104003	//   ],
104004	//   "parameters": {
104005	//     "filter": {
104006	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
104007	//       "location": "query",
104008	//       "type": "string"
104009	//     },
104010	//     "maxResults": {
104011	//       "default": "500",
104012	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
104013	//       "format": "uint32",
104014	//       "location": "query",
104015	//       "minimum": "0",
104016	//       "type": "integer"
104017	//     },
104018	//     "orderBy": {
104019	//       "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.",
104020	//       "location": "query",
104021	//       "type": "string"
104022	//     },
104023	//     "pageToken": {
104024	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
104025	//       "location": "query",
104026	//       "type": "string"
104027	//     },
104028	//     "project": {
104029	//       "description": "Project ID for this request.",
104030	//       "location": "path",
104031	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104032	//       "required": true,
104033	//       "type": "string"
104034	//     },
104035	//     "returnPartialSuccess": {
104036	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
104037	//       "location": "query",
104038	//       "type": "boolean"
104039	//     }
104040	//   },
104041	//   "path": "projects/{project}/global/networks",
104042	//   "response": {
104043	//     "$ref": "NetworkList"
104044	//   },
104045	//   "scopes": [
104046	//     "https://www.googleapis.com/auth/cloud-platform",
104047	//     "https://www.googleapis.com/auth/compute",
104048	//     "https://www.googleapis.com/auth/compute.readonly"
104049	//   ]
104050	// }
104051
104052}
104053
104054// Pages invokes f for each page of results.
104055// A non-nil error returned from f will halt the iteration.
104056// The provided context supersedes any context provided to the Context method.
104057func (c *NetworksListCall) Pages(ctx context.Context, f func(*NetworkList) error) error {
104058	c.ctx_ = ctx
104059	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
104060	for {
104061		x, err := c.Do()
104062		if err != nil {
104063			return err
104064		}
104065		if err := f(x); err != nil {
104066			return err
104067		}
104068		if x.NextPageToken == "" {
104069			return nil
104070		}
104071		c.PageToken(x.NextPageToken)
104072	}
104073}
104074
104075// method id "compute.networks.listPeeringRoutes":
104076
104077type NetworksListPeeringRoutesCall struct {
104078	s            *Service
104079	project      string
104080	network      string
104081	urlParams_   gensupport.URLParams
104082	ifNoneMatch_ string
104083	ctx_         context.Context
104084	header_      http.Header
104085}
104086
104087// ListPeeringRoutes: Lists the peering routes exchanged over peering
104088// connection.
104089//
104090// - network: Name of the network for this request.
104091// - project: Project ID for this request.
104092func (r *NetworksService) ListPeeringRoutes(project string, network string) *NetworksListPeeringRoutesCall {
104093	c := &NetworksListPeeringRoutesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104094	c.project = project
104095	c.network = network
104096	return c
104097}
104098
104099// Direction sets the optional parameter "direction": The direction of
104100// the exchanged routes.
104101//
104102// Possible values:
104103//   "INCOMING" - For routes exported from peer network.
104104//   "OUTGOING" - For routes exported from local network.
104105func (c *NetworksListPeeringRoutesCall) Direction(direction string) *NetworksListPeeringRoutesCall {
104106	c.urlParams_.Set("direction", direction)
104107	return c
104108}
104109
104110// Filter sets the optional parameter "filter": A filter expression that
104111// filters resources listed in the response. The expression must specify
104112// the field name, a comparison operator, and the value that you want to
104113// use for filtering. The value must be a string, a number, or a
104114// boolean. The comparison operator must be either `=`, `!=`, `>`, or
104115// `<`. For example, if you are filtering Compute Engine instances, you
104116// can exclude instances named `example-instance` by specifying `name !=
104117// example-instance`. You can also filter nested fields. For example,
104118// you could specify `scheduling.automaticRestart = false` to include
104119// instances only if they are not scheduled for automatic restarts. You
104120// can use filtering on nested fields to filter based on resource
104121// labels. To filter on multiple expressions, provide each separate
104122// expression within parentheses. For example: ```
104123// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
104124// ``` By default, each expression is an `AND` expression. However, you
104125// can include `AND` and `OR` expressions explicitly. For example: ```
104126// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
104127// AND (scheduling.automaticRestart = true) ```
104128func (c *NetworksListPeeringRoutesCall) Filter(filter string) *NetworksListPeeringRoutesCall {
104129	c.urlParams_.Set("filter", filter)
104130	return c
104131}
104132
104133// MaxResults sets the optional parameter "maxResults": The maximum
104134// number of results per page that should be returned. If the number of
104135// available results is larger than `maxResults`, Compute Engine returns
104136// a `nextPageToken` that can be used to get the next page of results in
104137// subsequent list requests. Acceptable values are `0` to `500`,
104138// inclusive. (Default: `500`)
104139func (c *NetworksListPeeringRoutesCall) MaxResults(maxResults int64) *NetworksListPeeringRoutesCall {
104140	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
104141	return c
104142}
104143
104144// OrderBy sets the optional parameter "orderBy": Sorts list results by
104145// a certain order. By default, results are returned in alphanumerical
104146// order based on the resource name. You can also sort results in
104147// descending order based on the creation timestamp using
104148// `orderBy="creationTimestamp desc". This sorts results based on the
104149// `creationTimestamp` field in reverse chronological order (newest
104150// result first). Use this to sort resources like operations so that the
104151// newest operation is returned first. Currently, only sorting by `name`
104152// or `creationTimestamp desc` is supported.
104153func (c *NetworksListPeeringRoutesCall) OrderBy(orderBy string) *NetworksListPeeringRoutesCall {
104154	c.urlParams_.Set("orderBy", orderBy)
104155	return c
104156}
104157
104158// PageToken sets the optional parameter "pageToken": Specifies a page
104159// token to use. Set `pageToken` to the `nextPageToken` returned by a
104160// previous list request to get the next page of results.
104161func (c *NetworksListPeeringRoutesCall) PageToken(pageToken string) *NetworksListPeeringRoutesCall {
104162	c.urlParams_.Set("pageToken", pageToken)
104163	return c
104164}
104165
104166// PeeringName sets the optional parameter "peeringName": The response
104167// will show routes exchanged over the given peering connection.
104168func (c *NetworksListPeeringRoutesCall) PeeringName(peeringName string) *NetworksListPeeringRoutesCall {
104169	c.urlParams_.Set("peeringName", peeringName)
104170	return c
104171}
104172
104173// Region sets the optional parameter "region": The region of the
104174// request. The response will include all subnet routes, static routes
104175// and dynamic routes in the region.
104176func (c *NetworksListPeeringRoutesCall) Region(region string) *NetworksListPeeringRoutesCall {
104177	c.urlParams_.Set("region", region)
104178	return c
104179}
104180
104181// ReturnPartialSuccess sets the optional parameter
104182// "returnPartialSuccess": Opt-in for partial success behavior which
104183// provides partial results in case of failure. The default value is
104184// false.
104185func (c *NetworksListPeeringRoutesCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworksListPeeringRoutesCall {
104186	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
104187	return c
104188}
104189
104190// Fields allows partial responses to be retrieved. See
104191// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104192// for more information.
104193func (c *NetworksListPeeringRoutesCall) Fields(s ...googleapi.Field) *NetworksListPeeringRoutesCall {
104194	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104195	return c
104196}
104197
104198// IfNoneMatch sets the optional parameter which makes the operation
104199// fail if the object's ETag matches the given value. This is useful for
104200// getting updates only after the object has changed since the last
104201// request. Use googleapi.IsNotModified to check whether the response
104202// error from Do is the result of In-None-Match.
104203func (c *NetworksListPeeringRoutesCall) IfNoneMatch(entityTag string) *NetworksListPeeringRoutesCall {
104204	c.ifNoneMatch_ = entityTag
104205	return c
104206}
104207
104208// Context sets the context to be used in this call's Do method. Any
104209// pending HTTP request will be aborted if the provided context is
104210// canceled.
104211func (c *NetworksListPeeringRoutesCall) Context(ctx context.Context) *NetworksListPeeringRoutesCall {
104212	c.ctx_ = ctx
104213	return c
104214}
104215
104216// Header returns an http.Header that can be modified by the caller to
104217// add HTTP headers to the request.
104218func (c *NetworksListPeeringRoutesCall) Header() http.Header {
104219	if c.header_ == nil {
104220		c.header_ = make(http.Header)
104221	}
104222	return c.header_
104223}
104224
104225func (c *NetworksListPeeringRoutesCall) doRequest(alt string) (*http.Response, error) {
104226	reqHeaders := make(http.Header)
104227	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
104228	for k, v := range c.header_ {
104229		reqHeaders[k] = v
104230	}
104231	reqHeaders.Set("User-Agent", c.s.userAgent())
104232	if c.ifNoneMatch_ != "" {
104233		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
104234	}
104235	var body io.Reader = nil
104236	c.urlParams_.Set("alt", alt)
104237	c.urlParams_.Set("prettyPrint", "false")
104238	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/listPeeringRoutes")
104239	urls += "?" + c.urlParams_.Encode()
104240	req, err := http.NewRequest("GET", urls, body)
104241	if err != nil {
104242		return nil, err
104243	}
104244	req.Header = reqHeaders
104245	googleapi.Expand(req.URL, map[string]string{
104246		"project": c.project,
104247		"network": c.network,
104248	})
104249	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104250}
104251
104252// Do executes the "compute.networks.listPeeringRoutes" call.
104253// Exactly one of *ExchangedPeeringRoutesList or error will be non-nil.
104254// Any non-2xx status code is an error. Response headers are in either
104255// *ExchangedPeeringRoutesList.ServerResponse.Header or (if a response
104256// was returned at all) in error.(*googleapi.Error).Header. Use
104257// googleapi.IsNotModified to check whether the returned error was
104258// because http.StatusNotModified was returned.
104259func (c *NetworksListPeeringRoutesCall) Do(opts ...googleapi.CallOption) (*ExchangedPeeringRoutesList, error) {
104260	gensupport.SetOptions(c.urlParams_, opts...)
104261	res, err := c.doRequest("json")
104262	if res != nil && res.StatusCode == http.StatusNotModified {
104263		if res.Body != nil {
104264			res.Body.Close()
104265		}
104266		return nil, &googleapi.Error{
104267			Code:   res.StatusCode,
104268			Header: res.Header,
104269		}
104270	}
104271	if err != nil {
104272		return nil, err
104273	}
104274	defer googleapi.CloseBody(res)
104275	if err := googleapi.CheckResponse(res); err != nil {
104276		return nil, err
104277	}
104278	ret := &ExchangedPeeringRoutesList{
104279		ServerResponse: googleapi.ServerResponse{
104280			Header:         res.Header,
104281			HTTPStatusCode: res.StatusCode,
104282		},
104283	}
104284	target := &ret
104285	if err := gensupport.DecodeResponse(target, res); err != nil {
104286		return nil, err
104287	}
104288	return ret, nil
104289	// {
104290	//   "description": "Lists the peering routes exchanged over peering connection.",
104291	//   "flatPath": "projects/{project}/global/networks/{network}/listPeeringRoutes",
104292	//   "httpMethod": "GET",
104293	//   "id": "compute.networks.listPeeringRoutes",
104294	//   "parameterOrder": [
104295	//     "project",
104296	//     "network"
104297	//   ],
104298	//   "parameters": {
104299	//     "direction": {
104300	//       "description": "The direction of the exchanged routes.",
104301	//       "enum": [
104302	//         "INCOMING",
104303	//         "OUTGOING"
104304	//       ],
104305	//       "enumDescriptions": [
104306	//         "For routes exported from peer network.",
104307	//         "For routes exported from local network."
104308	//       ],
104309	//       "location": "query",
104310	//       "type": "string"
104311	//     },
104312	//     "filter": {
104313	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
104314	//       "location": "query",
104315	//       "type": "string"
104316	//     },
104317	//     "maxResults": {
104318	//       "default": "500",
104319	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
104320	//       "format": "uint32",
104321	//       "location": "query",
104322	//       "minimum": "0",
104323	//       "type": "integer"
104324	//     },
104325	//     "network": {
104326	//       "description": "Name of the network for this request.",
104327	//       "location": "path",
104328	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
104329	//       "required": true,
104330	//       "type": "string"
104331	//     },
104332	//     "orderBy": {
104333	//       "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.",
104334	//       "location": "query",
104335	//       "type": "string"
104336	//     },
104337	//     "pageToken": {
104338	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
104339	//       "location": "query",
104340	//       "type": "string"
104341	//     },
104342	//     "peeringName": {
104343	//       "description": "The response will show routes exchanged over the given peering connection.",
104344	//       "location": "query",
104345	//       "type": "string"
104346	//     },
104347	//     "project": {
104348	//       "description": "Project ID for this request.",
104349	//       "location": "path",
104350	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104351	//       "required": true,
104352	//       "type": "string"
104353	//     },
104354	//     "region": {
104355	//       "description": "The region of the request. The response will include all subnet routes, static routes and dynamic routes in the region.",
104356	//       "location": "query",
104357	//       "type": "string"
104358	//     },
104359	//     "returnPartialSuccess": {
104360	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
104361	//       "location": "query",
104362	//       "type": "boolean"
104363	//     }
104364	//   },
104365	//   "path": "projects/{project}/global/networks/{network}/listPeeringRoutes",
104366	//   "response": {
104367	//     "$ref": "ExchangedPeeringRoutesList"
104368	//   },
104369	//   "scopes": [
104370	//     "https://www.googleapis.com/auth/cloud-platform",
104371	//     "https://www.googleapis.com/auth/compute",
104372	//     "https://www.googleapis.com/auth/compute.readonly"
104373	//   ]
104374	// }
104375
104376}
104377
104378// Pages invokes f for each page of results.
104379// A non-nil error returned from f will halt the iteration.
104380// The provided context supersedes any context provided to the Context method.
104381func (c *NetworksListPeeringRoutesCall) Pages(ctx context.Context, f func(*ExchangedPeeringRoutesList) error) error {
104382	c.ctx_ = ctx
104383	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
104384	for {
104385		x, err := c.Do()
104386		if err != nil {
104387			return err
104388		}
104389		if err := f(x); err != nil {
104390			return err
104391		}
104392		if x.NextPageToken == "" {
104393			return nil
104394		}
104395		c.PageToken(x.NextPageToken)
104396	}
104397}
104398
104399// method id "compute.networks.patch":
104400
104401type NetworksPatchCall struct {
104402	s          *Service
104403	project    string
104404	network    string
104405	network2   *Network
104406	urlParams_ gensupport.URLParams
104407	ctx_       context.Context
104408	header_    http.Header
104409}
104410
104411// Patch: Patches the specified network with the data included in the
104412// request. Only the following fields can be modified:
104413// routingConfig.routingMode.
104414//
104415// - network: Name of the network to update.
104416// - project: Project ID for this request.
104417func (r *NetworksService) Patch(project string, network string, network2 *Network) *NetworksPatchCall {
104418	c := &NetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104419	c.project = project
104420	c.network = network
104421	c.network2 = network2
104422	return c
104423}
104424
104425// RequestId sets the optional parameter "requestId": An optional
104426// request ID to identify requests. Specify a unique request ID so that
104427// if you must retry your request, the server will know to ignore the
104428// request if it has already been completed. For example, consider a
104429// situation where you make an initial request and the request times
104430// out. If you make the request again with the same request ID, the
104431// server can check if original operation with the same request ID was
104432// received, and if so, will ignore the second request. This prevents
104433// clients from accidentally creating duplicate commitments. The request
104434// ID must be a valid UUID with the exception that zero UUID is not
104435// supported ( 00000000-0000-0000-0000-000000000000).
104436func (c *NetworksPatchCall) RequestId(requestId string) *NetworksPatchCall {
104437	c.urlParams_.Set("requestId", requestId)
104438	return c
104439}
104440
104441// Fields allows partial responses to be retrieved. See
104442// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104443// for more information.
104444func (c *NetworksPatchCall) Fields(s ...googleapi.Field) *NetworksPatchCall {
104445	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104446	return c
104447}
104448
104449// Context sets the context to be used in this call's Do method. Any
104450// pending HTTP request will be aborted if the provided context is
104451// canceled.
104452func (c *NetworksPatchCall) Context(ctx context.Context) *NetworksPatchCall {
104453	c.ctx_ = ctx
104454	return c
104455}
104456
104457// Header returns an http.Header that can be modified by the caller to
104458// add HTTP headers to the request.
104459func (c *NetworksPatchCall) Header() http.Header {
104460	if c.header_ == nil {
104461		c.header_ = make(http.Header)
104462	}
104463	return c.header_
104464}
104465
104466func (c *NetworksPatchCall) doRequest(alt string) (*http.Response, error) {
104467	reqHeaders := make(http.Header)
104468	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
104469	for k, v := range c.header_ {
104470		reqHeaders[k] = v
104471	}
104472	reqHeaders.Set("User-Agent", c.s.userAgent())
104473	var body io.Reader = nil
104474	body, err := googleapi.WithoutDataWrapper.JSONReader(c.network2)
104475	if err != nil {
104476		return nil, err
104477	}
104478	reqHeaders.Set("Content-Type", "application/json")
104479	c.urlParams_.Set("alt", alt)
104480	c.urlParams_.Set("prettyPrint", "false")
104481	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}")
104482	urls += "?" + c.urlParams_.Encode()
104483	req, err := http.NewRequest("PATCH", urls, body)
104484	if err != nil {
104485		return nil, err
104486	}
104487	req.Header = reqHeaders
104488	googleapi.Expand(req.URL, map[string]string{
104489		"project": c.project,
104490		"network": c.network,
104491	})
104492	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104493}
104494
104495// Do executes the "compute.networks.patch" call.
104496// Exactly one of *Operation or error will be non-nil. Any non-2xx
104497// status code is an error. Response headers are in either
104498// *Operation.ServerResponse.Header or (if a response was returned at
104499// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104500// to check whether the returned error was because
104501// http.StatusNotModified was returned.
104502func (c *NetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104503	gensupport.SetOptions(c.urlParams_, opts...)
104504	res, err := c.doRequest("json")
104505	if res != nil && res.StatusCode == http.StatusNotModified {
104506		if res.Body != nil {
104507			res.Body.Close()
104508		}
104509		return nil, &googleapi.Error{
104510			Code:   res.StatusCode,
104511			Header: res.Header,
104512		}
104513	}
104514	if err != nil {
104515		return nil, err
104516	}
104517	defer googleapi.CloseBody(res)
104518	if err := googleapi.CheckResponse(res); err != nil {
104519		return nil, err
104520	}
104521	ret := &Operation{
104522		ServerResponse: googleapi.ServerResponse{
104523			Header:         res.Header,
104524			HTTPStatusCode: res.StatusCode,
104525		},
104526	}
104527	target := &ret
104528	if err := gensupport.DecodeResponse(target, res); err != nil {
104529		return nil, err
104530	}
104531	return ret, nil
104532	// {
104533	//   "description": "Patches the specified network with the data included in the request. Only the following fields can be modified: routingConfig.routingMode.",
104534	//   "flatPath": "projects/{project}/global/networks/{network}",
104535	//   "httpMethod": "PATCH",
104536	//   "id": "compute.networks.patch",
104537	//   "parameterOrder": [
104538	//     "project",
104539	//     "network"
104540	//   ],
104541	//   "parameters": {
104542	//     "network": {
104543	//       "description": "Name of the network to update.",
104544	//       "location": "path",
104545	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104546	//       "required": true,
104547	//       "type": "string"
104548	//     },
104549	//     "project": {
104550	//       "description": "Project ID for this request.",
104551	//       "location": "path",
104552	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104553	//       "required": true,
104554	//       "type": "string"
104555	//     },
104556	//     "requestId": {
104557	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
104558	//       "location": "query",
104559	//       "type": "string"
104560	//     }
104561	//   },
104562	//   "path": "projects/{project}/global/networks/{network}",
104563	//   "request": {
104564	//     "$ref": "Network"
104565	//   },
104566	//   "response": {
104567	//     "$ref": "Operation"
104568	//   },
104569	//   "scopes": [
104570	//     "https://www.googleapis.com/auth/cloud-platform",
104571	//     "https://www.googleapis.com/auth/compute"
104572	//   ]
104573	// }
104574
104575}
104576
104577// method id "compute.networks.removePeering":
104578
104579type NetworksRemovePeeringCall struct {
104580	s                            *Service
104581	project                      string
104582	network                      string
104583	networksremovepeeringrequest *NetworksRemovePeeringRequest
104584	urlParams_                   gensupport.URLParams
104585	ctx_                         context.Context
104586	header_                      http.Header
104587}
104588
104589// RemovePeering: Removes a peering from the specified network.
104590//
104591// - network: Name of the network resource to remove peering from.
104592// - project: Project ID for this request.
104593func (r *NetworksService) RemovePeering(project string, network string, networksremovepeeringrequest *NetworksRemovePeeringRequest) *NetworksRemovePeeringCall {
104594	c := &NetworksRemovePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104595	c.project = project
104596	c.network = network
104597	c.networksremovepeeringrequest = networksremovepeeringrequest
104598	return c
104599}
104600
104601// RequestId sets the optional parameter "requestId": An optional
104602// request ID to identify requests. Specify a unique request ID so that
104603// if you must retry your request, the server will know to ignore the
104604// request if it has already been completed. For example, consider a
104605// situation where you make an initial request and the request times
104606// out. If you make the request again with the same request ID, the
104607// server can check if original operation with the same request ID was
104608// received, and if so, will ignore the second request. This prevents
104609// clients from accidentally creating duplicate commitments. The request
104610// ID must be a valid UUID with the exception that zero UUID is not
104611// supported ( 00000000-0000-0000-0000-000000000000).
104612func (c *NetworksRemovePeeringCall) RequestId(requestId string) *NetworksRemovePeeringCall {
104613	c.urlParams_.Set("requestId", requestId)
104614	return c
104615}
104616
104617// Fields allows partial responses to be retrieved. See
104618// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104619// for more information.
104620func (c *NetworksRemovePeeringCall) Fields(s ...googleapi.Field) *NetworksRemovePeeringCall {
104621	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104622	return c
104623}
104624
104625// Context sets the context to be used in this call's Do method. Any
104626// pending HTTP request will be aborted if the provided context is
104627// canceled.
104628func (c *NetworksRemovePeeringCall) Context(ctx context.Context) *NetworksRemovePeeringCall {
104629	c.ctx_ = ctx
104630	return c
104631}
104632
104633// Header returns an http.Header that can be modified by the caller to
104634// add HTTP headers to the request.
104635func (c *NetworksRemovePeeringCall) Header() http.Header {
104636	if c.header_ == nil {
104637		c.header_ = make(http.Header)
104638	}
104639	return c.header_
104640}
104641
104642func (c *NetworksRemovePeeringCall) doRequest(alt string) (*http.Response, error) {
104643	reqHeaders := make(http.Header)
104644	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
104645	for k, v := range c.header_ {
104646		reqHeaders[k] = v
104647	}
104648	reqHeaders.Set("User-Agent", c.s.userAgent())
104649	var body io.Reader = nil
104650	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksremovepeeringrequest)
104651	if err != nil {
104652		return nil, err
104653	}
104654	reqHeaders.Set("Content-Type", "application/json")
104655	c.urlParams_.Set("alt", alt)
104656	c.urlParams_.Set("prettyPrint", "false")
104657	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/removePeering")
104658	urls += "?" + c.urlParams_.Encode()
104659	req, err := http.NewRequest("POST", urls, body)
104660	if err != nil {
104661		return nil, err
104662	}
104663	req.Header = reqHeaders
104664	googleapi.Expand(req.URL, map[string]string{
104665		"project": c.project,
104666		"network": c.network,
104667	})
104668	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104669}
104670
104671// Do executes the "compute.networks.removePeering" call.
104672// Exactly one of *Operation or error will be non-nil. Any non-2xx
104673// status code is an error. Response headers are in either
104674// *Operation.ServerResponse.Header or (if a response was returned at
104675// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104676// to check whether the returned error was because
104677// http.StatusNotModified was returned.
104678func (c *NetworksRemovePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104679	gensupport.SetOptions(c.urlParams_, opts...)
104680	res, err := c.doRequest("json")
104681	if res != nil && res.StatusCode == http.StatusNotModified {
104682		if res.Body != nil {
104683			res.Body.Close()
104684		}
104685		return nil, &googleapi.Error{
104686			Code:   res.StatusCode,
104687			Header: res.Header,
104688		}
104689	}
104690	if err != nil {
104691		return nil, err
104692	}
104693	defer googleapi.CloseBody(res)
104694	if err := googleapi.CheckResponse(res); err != nil {
104695		return nil, err
104696	}
104697	ret := &Operation{
104698		ServerResponse: googleapi.ServerResponse{
104699			Header:         res.Header,
104700			HTTPStatusCode: res.StatusCode,
104701		},
104702	}
104703	target := &ret
104704	if err := gensupport.DecodeResponse(target, res); err != nil {
104705		return nil, err
104706	}
104707	return ret, nil
104708	// {
104709	//   "description": "Removes a peering from the specified network.",
104710	//   "flatPath": "projects/{project}/global/networks/{network}/removePeering",
104711	//   "httpMethod": "POST",
104712	//   "id": "compute.networks.removePeering",
104713	//   "parameterOrder": [
104714	//     "project",
104715	//     "network"
104716	//   ],
104717	//   "parameters": {
104718	//     "network": {
104719	//       "description": "Name of the network resource to remove peering from.",
104720	//       "location": "path",
104721	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104722	//       "required": true,
104723	//       "type": "string"
104724	//     },
104725	//     "project": {
104726	//       "description": "Project ID for this request.",
104727	//       "location": "path",
104728	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104729	//       "required": true,
104730	//       "type": "string"
104731	//     },
104732	//     "requestId": {
104733	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
104734	//       "location": "query",
104735	//       "type": "string"
104736	//     }
104737	//   },
104738	//   "path": "projects/{project}/global/networks/{network}/removePeering",
104739	//   "request": {
104740	//     "$ref": "NetworksRemovePeeringRequest"
104741	//   },
104742	//   "response": {
104743	//     "$ref": "Operation"
104744	//   },
104745	//   "scopes": [
104746	//     "https://www.googleapis.com/auth/cloud-platform",
104747	//     "https://www.googleapis.com/auth/compute"
104748	//   ]
104749	// }
104750
104751}
104752
104753// method id "compute.networks.switchToCustomMode":
104754
104755type NetworksSwitchToCustomModeCall struct {
104756	s          *Service
104757	project    string
104758	network    string
104759	urlParams_ gensupport.URLParams
104760	ctx_       context.Context
104761	header_    http.Header
104762}
104763
104764// SwitchToCustomMode: Switches the network mode from auto subnet mode
104765// to custom subnet mode.
104766//
104767// - network: Name of the network to be updated.
104768// - project: Project ID for this request.
104769func (r *NetworksService) SwitchToCustomMode(project string, network string) *NetworksSwitchToCustomModeCall {
104770	c := &NetworksSwitchToCustomModeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104771	c.project = project
104772	c.network = network
104773	return c
104774}
104775
104776// RequestId sets the optional parameter "requestId": An optional
104777// request ID to identify requests. Specify a unique request ID so that
104778// if you must retry your request, the server will know to ignore the
104779// request if it has already been completed. For example, consider a
104780// situation where you make an initial request and the request times
104781// out. If you make the request again with the same request ID, the
104782// server can check if original operation with the same request ID was
104783// received, and if so, will ignore the second request. This prevents
104784// clients from accidentally creating duplicate commitments. The request
104785// ID must be a valid UUID with the exception that zero UUID is not
104786// supported ( 00000000-0000-0000-0000-000000000000).
104787func (c *NetworksSwitchToCustomModeCall) RequestId(requestId string) *NetworksSwitchToCustomModeCall {
104788	c.urlParams_.Set("requestId", requestId)
104789	return c
104790}
104791
104792// Fields allows partial responses to be retrieved. See
104793// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104794// for more information.
104795func (c *NetworksSwitchToCustomModeCall) Fields(s ...googleapi.Field) *NetworksSwitchToCustomModeCall {
104796	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104797	return c
104798}
104799
104800// Context sets the context to be used in this call's Do method. Any
104801// pending HTTP request will be aborted if the provided context is
104802// canceled.
104803func (c *NetworksSwitchToCustomModeCall) Context(ctx context.Context) *NetworksSwitchToCustomModeCall {
104804	c.ctx_ = ctx
104805	return c
104806}
104807
104808// Header returns an http.Header that can be modified by the caller to
104809// add HTTP headers to the request.
104810func (c *NetworksSwitchToCustomModeCall) Header() http.Header {
104811	if c.header_ == nil {
104812		c.header_ = make(http.Header)
104813	}
104814	return c.header_
104815}
104816
104817func (c *NetworksSwitchToCustomModeCall) doRequest(alt string) (*http.Response, error) {
104818	reqHeaders := make(http.Header)
104819	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
104820	for k, v := range c.header_ {
104821		reqHeaders[k] = v
104822	}
104823	reqHeaders.Set("User-Agent", c.s.userAgent())
104824	var body io.Reader = nil
104825	c.urlParams_.Set("alt", alt)
104826	c.urlParams_.Set("prettyPrint", "false")
104827	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/switchToCustomMode")
104828	urls += "?" + c.urlParams_.Encode()
104829	req, err := http.NewRequest("POST", urls, body)
104830	if err != nil {
104831		return nil, err
104832	}
104833	req.Header = reqHeaders
104834	googleapi.Expand(req.URL, map[string]string{
104835		"project": c.project,
104836		"network": c.network,
104837	})
104838	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104839}
104840
104841// Do executes the "compute.networks.switchToCustomMode" call.
104842// Exactly one of *Operation or error will be non-nil. Any non-2xx
104843// status code is an error. Response headers are in either
104844// *Operation.ServerResponse.Header or (if a response was returned at
104845// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104846// to check whether the returned error was because
104847// http.StatusNotModified was returned.
104848func (c *NetworksSwitchToCustomModeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104849	gensupport.SetOptions(c.urlParams_, opts...)
104850	res, err := c.doRequest("json")
104851	if res != nil && res.StatusCode == http.StatusNotModified {
104852		if res.Body != nil {
104853			res.Body.Close()
104854		}
104855		return nil, &googleapi.Error{
104856			Code:   res.StatusCode,
104857			Header: res.Header,
104858		}
104859	}
104860	if err != nil {
104861		return nil, err
104862	}
104863	defer googleapi.CloseBody(res)
104864	if err := googleapi.CheckResponse(res); err != nil {
104865		return nil, err
104866	}
104867	ret := &Operation{
104868		ServerResponse: googleapi.ServerResponse{
104869			Header:         res.Header,
104870			HTTPStatusCode: res.StatusCode,
104871		},
104872	}
104873	target := &ret
104874	if err := gensupport.DecodeResponse(target, res); err != nil {
104875		return nil, err
104876	}
104877	return ret, nil
104878	// {
104879	//   "description": "Switches the network mode from auto subnet mode to custom subnet mode.",
104880	//   "flatPath": "projects/{project}/global/networks/{network}/switchToCustomMode",
104881	//   "httpMethod": "POST",
104882	//   "id": "compute.networks.switchToCustomMode",
104883	//   "parameterOrder": [
104884	//     "project",
104885	//     "network"
104886	//   ],
104887	//   "parameters": {
104888	//     "network": {
104889	//       "description": "Name of the network to be updated.",
104890	//       "location": "path",
104891	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104892	//       "required": true,
104893	//       "type": "string"
104894	//     },
104895	//     "project": {
104896	//       "description": "Project ID for this request.",
104897	//       "location": "path",
104898	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104899	//       "required": true,
104900	//       "type": "string"
104901	//     },
104902	//     "requestId": {
104903	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
104904	//       "location": "query",
104905	//       "type": "string"
104906	//     }
104907	//   },
104908	//   "path": "projects/{project}/global/networks/{network}/switchToCustomMode",
104909	//   "response": {
104910	//     "$ref": "Operation"
104911	//   },
104912	//   "scopes": [
104913	//     "https://www.googleapis.com/auth/cloud-platform",
104914	//     "https://www.googleapis.com/auth/compute"
104915	//   ]
104916	// }
104917
104918}
104919
104920// method id "compute.networks.updatePeering":
104921
104922type NetworksUpdatePeeringCall struct {
104923	s                            *Service
104924	project                      string
104925	network                      string
104926	networksupdatepeeringrequest *NetworksUpdatePeeringRequest
104927	urlParams_                   gensupport.URLParams
104928	ctx_                         context.Context
104929	header_                      http.Header
104930}
104931
104932// UpdatePeering: Updates the specified network peering with the data
104933// included in the request. You can only modify the
104934// NetworkPeering.export_custom_routes field and the
104935// NetworkPeering.import_custom_routes field.
104936//
104937// - network: Name of the network resource which the updated peering is
104938//   belonging to.
104939// - project: Project ID for this request.
104940func (r *NetworksService) UpdatePeering(project string, network string, networksupdatepeeringrequest *NetworksUpdatePeeringRequest) *NetworksUpdatePeeringCall {
104941	c := &NetworksUpdatePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104942	c.project = project
104943	c.network = network
104944	c.networksupdatepeeringrequest = networksupdatepeeringrequest
104945	return c
104946}
104947
104948// RequestId sets the optional parameter "requestId": An optional
104949// request ID to identify requests. Specify a unique request ID so that
104950// if you must retry your request, the server will know to ignore the
104951// request if it has already been completed. For example, consider a
104952// situation where you make an initial request and the request times
104953// out. If you make the request again with the same request ID, the
104954// server can check if original operation with the same request ID was
104955// received, and if so, will ignore the second request. This prevents
104956// clients from accidentally creating duplicate commitments. The request
104957// ID must be a valid UUID with the exception that zero UUID is not
104958// supported ( 00000000-0000-0000-0000-000000000000).
104959func (c *NetworksUpdatePeeringCall) RequestId(requestId string) *NetworksUpdatePeeringCall {
104960	c.urlParams_.Set("requestId", requestId)
104961	return c
104962}
104963
104964// Fields allows partial responses to be retrieved. See
104965// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104966// for more information.
104967func (c *NetworksUpdatePeeringCall) Fields(s ...googleapi.Field) *NetworksUpdatePeeringCall {
104968	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104969	return c
104970}
104971
104972// Context sets the context to be used in this call's Do method. Any
104973// pending HTTP request will be aborted if the provided context is
104974// canceled.
104975func (c *NetworksUpdatePeeringCall) Context(ctx context.Context) *NetworksUpdatePeeringCall {
104976	c.ctx_ = ctx
104977	return c
104978}
104979
104980// Header returns an http.Header that can be modified by the caller to
104981// add HTTP headers to the request.
104982func (c *NetworksUpdatePeeringCall) Header() http.Header {
104983	if c.header_ == nil {
104984		c.header_ = make(http.Header)
104985	}
104986	return c.header_
104987}
104988
104989func (c *NetworksUpdatePeeringCall) doRequest(alt string) (*http.Response, error) {
104990	reqHeaders := make(http.Header)
104991	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
104992	for k, v := range c.header_ {
104993		reqHeaders[k] = v
104994	}
104995	reqHeaders.Set("User-Agent", c.s.userAgent())
104996	var body io.Reader = nil
104997	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksupdatepeeringrequest)
104998	if err != nil {
104999		return nil, err
105000	}
105001	reqHeaders.Set("Content-Type", "application/json")
105002	c.urlParams_.Set("alt", alt)
105003	c.urlParams_.Set("prettyPrint", "false")
105004	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/updatePeering")
105005	urls += "?" + c.urlParams_.Encode()
105006	req, err := http.NewRequest("PATCH", urls, body)
105007	if err != nil {
105008		return nil, err
105009	}
105010	req.Header = reqHeaders
105011	googleapi.Expand(req.URL, map[string]string{
105012		"project": c.project,
105013		"network": c.network,
105014	})
105015	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105016}
105017
105018// Do executes the "compute.networks.updatePeering" call.
105019// Exactly one of *Operation or error will be non-nil. Any non-2xx
105020// status code is an error. Response headers are in either
105021// *Operation.ServerResponse.Header or (if a response was returned at
105022// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105023// to check whether the returned error was because
105024// http.StatusNotModified was returned.
105025func (c *NetworksUpdatePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105026	gensupport.SetOptions(c.urlParams_, opts...)
105027	res, err := c.doRequest("json")
105028	if res != nil && res.StatusCode == http.StatusNotModified {
105029		if res.Body != nil {
105030			res.Body.Close()
105031		}
105032		return nil, &googleapi.Error{
105033			Code:   res.StatusCode,
105034			Header: res.Header,
105035		}
105036	}
105037	if err != nil {
105038		return nil, err
105039	}
105040	defer googleapi.CloseBody(res)
105041	if err := googleapi.CheckResponse(res); err != nil {
105042		return nil, err
105043	}
105044	ret := &Operation{
105045		ServerResponse: googleapi.ServerResponse{
105046			Header:         res.Header,
105047			HTTPStatusCode: res.StatusCode,
105048		},
105049	}
105050	target := &ret
105051	if err := gensupport.DecodeResponse(target, res); err != nil {
105052		return nil, err
105053	}
105054	return ret, nil
105055	// {
105056	//   "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.",
105057	//   "flatPath": "projects/{project}/global/networks/{network}/updatePeering",
105058	//   "httpMethod": "PATCH",
105059	//   "id": "compute.networks.updatePeering",
105060	//   "parameterOrder": [
105061	//     "project",
105062	//     "network"
105063	//   ],
105064	//   "parameters": {
105065	//     "network": {
105066	//       "description": "Name of the network resource which the updated peering is belonging to.",
105067	//       "location": "path",
105068	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105069	//       "required": true,
105070	//       "type": "string"
105071	//     },
105072	//     "project": {
105073	//       "description": "Project ID for this request.",
105074	//       "location": "path",
105075	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105076	//       "required": true,
105077	//       "type": "string"
105078	//     },
105079	//     "requestId": {
105080	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
105081	//       "location": "query",
105082	//       "type": "string"
105083	//     }
105084	//   },
105085	//   "path": "projects/{project}/global/networks/{network}/updatePeering",
105086	//   "request": {
105087	//     "$ref": "NetworksUpdatePeeringRequest"
105088	//   },
105089	//   "response": {
105090	//     "$ref": "Operation"
105091	//   },
105092	//   "scopes": [
105093	//     "https://www.googleapis.com/auth/cloud-platform",
105094	//     "https://www.googleapis.com/auth/compute"
105095	//   ]
105096	// }
105097
105098}
105099
105100// method id "compute.nodeGroups.addNodes":
105101
105102type NodeGroupsAddNodesCall struct {
105103	s                         *Service
105104	project                   string
105105	zone                      string
105106	nodeGroup                 string
105107	nodegroupsaddnodesrequest *NodeGroupsAddNodesRequest
105108	urlParams_                gensupport.URLParams
105109	ctx_                      context.Context
105110	header_                   http.Header
105111}
105112
105113// AddNodes: Adds specified number of nodes to the node group.
105114//
105115// - nodeGroup: Name of the NodeGroup resource.
105116// - project: Project ID for this request.
105117// - zone: The name of the zone for this request.
105118func (r *NodeGroupsService) AddNodes(project string, zone string, nodeGroup string, nodegroupsaddnodesrequest *NodeGroupsAddNodesRequest) *NodeGroupsAddNodesCall {
105119	c := &NodeGroupsAddNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105120	c.project = project
105121	c.zone = zone
105122	c.nodeGroup = nodeGroup
105123	c.nodegroupsaddnodesrequest = nodegroupsaddnodesrequest
105124	return c
105125}
105126
105127// RequestId sets the optional parameter "requestId": An optional
105128// request ID to identify requests. Specify a unique request ID so that
105129// if you must retry your request, the server will know to ignore the
105130// request if it has already been completed. For example, consider a
105131// situation where you make an initial request and the request times
105132// out. If you make the request again with the same request ID, the
105133// server can check if original operation with the same request ID was
105134// received, and if so, will ignore the second request. This prevents
105135// clients from accidentally creating duplicate commitments. The request
105136// ID must be a valid UUID with the exception that zero UUID is not
105137// supported ( 00000000-0000-0000-0000-000000000000).
105138func (c *NodeGroupsAddNodesCall) RequestId(requestId string) *NodeGroupsAddNodesCall {
105139	c.urlParams_.Set("requestId", requestId)
105140	return c
105141}
105142
105143// Fields allows partial responses to be retrieved. See
105144// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105145// for more information.
105146func (c *NodeGroupsAddNodesCall) Fields(s ...googleapi.Field) *NodeGroupsAddNodesCall {
105147	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105148	return c
105149}
105150
105151// Context sets the context to be used in this call's Do method. Any
105152// pending HTTP request will be aborted if the provided context is
105153// canceled.
105154func (c *NodeGroupsAddNodesCall) Context(ctx context.Context) *NodeGroupsAddNodesCall {
105155	c.ctx_ = ctx
105156	return c
105157}
105158
105159// Header returns an http.Header that can be modified by the caller to
105160// add HTTP headers to the request.
105161func (c *NodeGroupsAddNodesCall) Header() http.Header {
105162	if c.header_ == nil {
105163		c.header_ = make(http.Header)
105164	}
105165	return c.header_
105166}
105167
105168func (c *NodeGroupsAddNodesCall) doRequest(alt string) (*http.Response, error) {
105169	reqHeaders := make(http.Header)
105170	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
105171	for k, v := range c.header_ {
105172		reqHeaders[k] = v
105173	}
105174	reqHeaders.Set("User-Agent", c.s.userAgent())
105175	var body io.Reader = nil
105176	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupsaddnodesrequest)
105177	if err != nil {
105178		return nil, err
105179	}
105180	reqHeaders.Set("Content-Type", "application/json")
105181	c.urlParams_.Set("alt", alt)
105182	c.urlParams_.Set("prettyPrint", "false")
105183	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes")
105184	urls += "?" + c.urlParams_.Encode()
105185	req, err := http.NewRequest("POST", urls, body)
105186	if err != nil {
105187		return nil, err
105188	}
105189	req.Header = reqHeaders
105190	googleapi.Expand(req.URL, map[string]string{
105191		"project":   c.project,
105192		"zone":      c.zone,
105193		"nodeGroup": c.nodeGroup,
105194	})
105195	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105196}
105197
105198// Do executes the "compute.nodeGroups.addNodes" call.
105199// Exactly one of *Operation or error will be non-nil. Any non-2xx
105200// status code is an error. Response headers are in either
105201// *Operation.ServerResponse.Header or (if a response was returned at
105202// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105203// to check whether the returned error was because
105204// http.StatusNotModified was returned.
105205func (c *NodeGroupsAddNodesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105206	gensupport.SetOptions(c.urlParams_, opts...)
105207	res, err := c.doRequest("json")
105208	if res != nil && res.StatusCode == http.StatusNotModified {
105209		if res.Body != nil {
105210			res.Body.Close()
105211		}
105212		return nil, &googleapi.Error{
105213			Code:   res.StatusCode,
105214			Header: res.Header,
105215		}
105216	}
105217	if err != nil {
105218		return nil, err
105219	}
105220	defer googleapi.CloseBody(res)
105221	if err := googleapi.CheckResponse(res); err != nil {
105222		return nil, err
105223	}
105224	ret := &Operation{
105225		ServerResponse: googleapi.ServerResponse{
105226			Header:         res.Header,
105227			HTTPStatusCode: res.StatusCode,
105228		},
105229	}
105230	target := &ret
105231	if err := gensupport.DecodeResponse(target, res); err != nil {
105232		return nil, err
105233	}
105234	return ret, nil
105235	// {
105236	//   "description": "Adds specified number of nodes to the node group.",
105237	//   "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes",
105238	//   "httpMethod": "POST",
105239	//   "id": "compute.nodeGroups.addNodes",
105240	//   "parameterOrder": [
105241	//     "project",
105242	//     "zone",
105243	//     "nodeGroup"
105244	//   ],
105245	//   "parameters": {
105246	//     "nodeGroup": {
105247	//       "description": "Name of the NodeGroup resource.",
105248	//       "location": "path",
105249	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105250	//       "required": true,
105251	//       "type": "string"
105252	//     },
105253	//     "project": {
105254	//       "description": "Project ID for this request.",
105255	//       "location": "path",
105256	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105257	//       "required": true,
105258	//       "type": "string"
105259	//     },
105260	//     "requestId": {
105261	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
105262	//       "location": "query",
105263	//       "type": "string"
105264	//     },
105265	//     "zone": {
105266	//       "description": "The name of the zone for this request.",
105267	//       "location": "path",
105268	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105269	//       "required": true,
105270	//       "type": "string"
105271	//     }
105272	//   },
105273	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes",
105274	//   "request": {
105275	//     "$ref": "NodeGroupsAddNodesRequest"
105276	//   },
105277	//   "response": {
105278	//     "$ref": "Operation"
105279	//   },
105280	//   "scopes": [
105281	//     "https://www.googleapis.com/auth/cloud-platform",
105282	//     "https://www.googleapis.com/auth/compute"
105283	//   ]
105284	// }
105285
105286}
105287
105288// method id "compute.nodeGroups.aggregatedList":
105289
105290type NodeGroupsAggregatedListCall struct {
105291	s            *Service
105292	project      string
105293	urlParams_   gensupport.URLParams
105294	ifNoneMatch_ string
105295	ctx_         context.Context
105296	header_      http.Header
105297}
105298
105299// AggregatedList: Retrieves an aggregated list of node groups. Note:
105300// use nodeGroups.listNodes for more details about each group.
105301//
105302// - project: Project ID for this request.
105303func (r *NodeGroupsService) AggregatedList(project string) *NodeGroupsAggregatedListCall {
105304	c := &NodeGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105305	c.project = project
105306	return c
105307}
105308
105309// Filter sets the optional parameter "filter": A filter expression that
105310// filters resources listed in the response. The expression must specify
105311// the field name, a comparison operator, and the value that you want to
105312// use for filtering. The value must be a string, a number, or a
105313// boolean. The comparison operator must be either `=`, `!=`, `>`, or
105314// `<`. For example, if you are filtering Compute Engine instances, you
105315// can exclude instances named `example-instance` by specifying `name !=
105316// example-instance`. You can also filter nested fields. For example,
105317// you could specify `scheduling.automaticRestart = false` to include
105318// instances only if they are not scheduled for automatic restarts. You
105319// can use filtering on nested fields to filter based on resource
105320// labels. To filter on multiple expressions, provide each separate
105321// expression within parentheses. For example: ```
105322// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
105323// ``` By default, each expression is an `AND` expression. However, you
105324// can include `AND` and `OR` expressions explicitly. For example: ```
105325// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
105326// AND (scheduling.automaticRestart = true) ```
105327func (c *NodeGroupsAggregatedListCall) Filter(filter string) *NodeGroupsAggregatedListCall {
105328	c.urlParams_.Set("filter", filter)
105329	return c
105330}
105331
105332// IncludeAllScopes sets the optional parameter "includeAllScopes":
105333// Indicates whether every visible scope for each scope type (zone,
105334// region, global) should be included in the response. For new resource
105335// types added after this field, the flag has no effect as new resource
105336// types will always include every visible scope for each scope type in
105337// response. For resource types which predate this field, if this flag
105338// is omitted or false, only scopes of the scope types where the
105339// resource type is expected to be found will be included.
105340func (c *NodeGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeGroupsAggregatedListCall {
105341	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
105342	return c
105343}
105344
105345// MaxResults sets the optional parameter "maxResults": The maximum
105346// number of results per page that should be returned. If the number of
105347// available results is larger than `maxResults`, Compute Engine returns
105348// a `nextPageToken` that can be used to get the next page of results in
105349// subsequent list requests. Acceptable values are `0` to `500`,
105350// inclusive. (Default: `500`)
105351func (c *NodeGroupsAggregatedListCall) MaxResults(maxResults int64) *NodeGroupsAggregatedListCall {
105352	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
105353	return c
105354}
105355
105356// OrderBy sets the optional parameter "orderBy": Sorts list results by
105357// a certain order. By default, results are returned in alphanumerical
105358// order based on the resource name. You can also sort results in
105359// descending order based on the creation timestamp using
105360// `orderBy="creationTimestamp desc". This sorts results based on the
105361// `creationTimestamp` field in reverse chronological order (newest
105362// result first). Use this to sort resources like operations so that the
105363// newest operation is returned first. Currently, only sorting by `name`
105364// or `creationTimestamp desc` is supported.
105365func (c *NodeGroupsAggregatedListCall) OrderBy(orderBy string) *NodeGroupsAggregatedListCall {
105366	c.urlParams_.Set("orderBy", orderBy)
105367	return c
105368}
105369
105370// PageToken sets the optional parameter "pageToken": Specifies a page
105371// token to use. Set `pageToken` to the `nextPageToken` returned by a
105372// previous list request to get the next page of results.
105373func (c *NodeGroupsAggregatedListCall) PageToken(pageToken string) *NodeGroupsAggregatedListCall {
105374	c.urlParams_.Set("pageToken", pageToken)
105375	return c
105376}
105377
105378// ReturnPartialSuccess sets the optional parameter
105379// "returnPartialSuccess": Opt-in for partial success behavior which
105380// provides partial results in case of failure. The default value is
105381// false.
105382func (c *NodeGroupsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeGroupsAggregatedListCall {
105383	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
105384	return c
105385}
105386
105387// Fields allows partial responses to be retrieved. See
105388// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105389// for more information.
105390func (c *NodeGroupsAggregatedListCall) Fields(s ...googleapi.Field) *NodeGroupsAggregatedListCall {
105391	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105392	return c
105393}
105394
105395// IfNoneMatch sets the optional parameter which makes the operation
105396// fail if the object's ETag matches the given value. This is useful for
105397// getting updates only after the object has changed since the last
105398// request. Use googleapi.IsNotModified to check whether the response
105399// error from Do is the result of In-None-Match.
105400func (c *NodeGroupsAggregatedListCall) IfNoneMatch(entityTag string) *NodeGroupsAggregatedListCall {
105401	c.ifNoneMatch_ = entityTag
105402	return c
105403}
105404
105405// Context sets the context to be used in this call's Do method. Any
105406// pending HTTP request will be aborted if the provided context is
105407// canceled.
105408func (c *NodeGroupsAggregatedListCall) Context(ctx context.Context) *NodeGroupsAggregatedListCall {
105409	c.ctx_ = ctx
105410	return c
105411}
105412
105413// Header returns an http.Header that can be modified by the caller to
105414// add HTTP headers to the request.
105415func (c *NodeGroupsAggregatedListCall) Header() http.Header {
105416	if c.header_ == nil {
105417		c.header_ = make(http.Header)
105418	}
105419	return c.header_
105420}
105421
105422func (c *NodeGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
105423	reqHeaders := make(http.Header)
105424	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
105425	for k, v := range c.header_ {
105426		reqHeaders[k] = v
105427	}
105428	reqHeaders.Set("User-Agent", c.s.userAgent())
105429	if c.ifNoneMatch_ != "" {
105430		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
105431	}
105432	var body io.Reader = nil
105433	c.urlParams_.Set("alt", alt)
105434	c.urlParams_.Set("prettyPrint", "false")
105435	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/nodeGroups")
105436	urls += "?" + c.urlParams_.Encode()
105437	req, err := http.NewRequest("GET", urls, body)
105438	if err != nil {
105439		return nil, err
105440	}
105441	req.Header = reqHeaders
105442	googleapi.Expand(req.URL, map[string]string{
105443		"project": c.project,
105444	})
105445	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105446}
105447
105448// Do executes the "compute.nodeGroups.aggregatedList" call.
105449// Exactly one of *NodeGroupAggregatedList or error will be non-nil. Any
105450// non-2xx status code is an error. Response headers are in either
105451// *NodeGroupAggregatedList.ServerResponse.Header or (if a response was
105452// returned at all) in error.(*googleapi.Error).Header. Use
105453// googleapi.IsNotModified to check whether the returned error was
105454// because http.StatusNotModified was returned.
105455func (c *NodeGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeGroupAggregatedList, error) {
105456	gensupport.SetOptions(c.urlParams_, opts...)
105457	res, err := c.doRequest("json")
105458	if res != nil && res.StatusCode == http.StatusNotModified {
105459		if res.Body != nil {
105460			res.Body.Close()
105461		}
105462		return nil, &googleapi.Error{
105463			Code:   res.StatusCode,
105464			Header: res.Header,
105465		}
105466	}
105467	if err != nil {
105468		return nil, err
105469	}
105470	defer googleapi.CloseBody(res)
105471	if err := googleapi.CheckResponse(res); err != nil {
105472		return nil, err
105473	}
105474	ret := &NodeGroupAggregatedList{
105475		ServerResponse: googleapi.ServerResponse{
105476			Header:         res.Header,
105477			HTTPStatusCode: res.StatusCode,
105478		},
105479	}
105480	target := &ret
105481	if err := gensupport.DecodeResponse(target, res); err != nil {
105482		return nil, err
105483	}
105484	return ret, nil
105485	// {
105486	//   "description": "Retrieves an aggregated list of node groups. Note: use nodeGroups.listNodes for more details about each group.",
105487	//   "flatPath": "projects/{project}/aggregated/nodeGroups",
105488	//   "httpMethod": "GET",
105489	//   "id": "compute.nodeGroups.aggregatedList",
105490	//   "parameterOrder": [
105491	//     "project"
105492	//   ],
105493	//   "parameters": {
105494	//     "filter": {
105495	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
105496	//       "location": "query",
105497	//       "type": "string"
105498	//     },
105499	//     "includeAllScopes": {
105500	//       "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.",
105501	//       "location": "query",
105502	//       "type": "boolean"
105503	//     },
105504	//     "maxResults": {
105505	//       "default": "500",
105506	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
105507	//       "format": "uint32",
105508	//       "location": "query",
105509	//       "minimum": "0",
105510	//       "type": "integer"
105511	//     },
105512	//     "orderBy": {
105513	//       "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.",
105514	//       "location": "query",
105515	//       "type": "string"
105516	//     },
105517	//     "pageToken": {
105518	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
105519	//       "location": "query",
105520	//       "type": "string"
105521	//     },
105522	//     "project": {
105523	//       "description": "Project ID for this request.",
105524	//       "location": "path",
105525	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105526	//       "required": true,
105527	//       "type": "string"
105528	//     },
105529	//     "returnPartialSuccess": {
105530	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
105531	//       "location": "query",
105532	//       "type": "boolean"
105533	//     }
105534	//   },
105535	//   "path": "projects/{project}/aggregated/nodeGroups",
105536	//   "response": {
105537	//     "$ref": "NodeGroupAggregatedList"
105538	//   },
105539	//   "scopes": [
105540	//     "https://www.googleapis.com/auth/cloud-platform",
105541	//     "https://www.googleapis.com/auth/compute",
105542	//     "https://www.googleapis.com/auth/compute.readonly"
105543	//   ]
105544	// }
105545
105546}
105547
105548// Pages invokes f for each page of results.
105549// A non-nil error returned from f will halt the iteration.
105550// The provided context supersedes any context provided to the Context method.
105551func (c *NodeGroupsAggregatedListCall) Pages(ctx context.Context, f func(*NodeGroupAggregatedList) error) error {
105552	c.ctx_ = ctx
105553	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
105554	for {
105555		x, err := c.Do()
105556		if err != nil {
105557			return err
105558		}
105559		if err := f(x); err != nil {
105560			return err
105561		}
105562		if x.NextPageToken == "" {
105563			return nil
105564		}
105565		c.PageToken(x.NextPageToken)
105566	}
105567}
105568
105569// method id "compute.nodeGroups.delete":
105570
105571type NodeGroupsDeleteCall struct {
105572	s          *Service
105573	project    string
105574	zone       string
105575	nodeGroup  string
105576	urlParams_ gensupport.URLParams
105577	ctx_       context.Context
105578	header_    http.Header
105579}
105580
105581// Delete: Deletes the specified NodeGroup resource.
105582//
105583// - nodeGroup: Name of the NodeGroup resource to delete.
105584// - project: Project ID for this request.
105585// - zone: The name of the zone for this request.
105586func (r *NodeGroupsService) Delete(project string, zone string, nodeGroup string) *NodeGroupsDeleteCall {
105587	c := &NodeGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105588	c.project = project
105589	c.zone = zone
105590	c.nodeGroup = nodeGroup
105591	return c
105592}
105593
105594// RequestId sets the optional parameter "requestId": An optional
105595// request ID to identify requests. Specify a unique request ID so that
105596// if you must retry your request, the server will know to ignore the
105597// request if it has already been completed. For example, consider a
105598// situation where you make an initial request and the request times
105599// out. If you make the request again with the same request ID, the
105600// server can check if original operation with the same request ID was
105601// received, and if so, will ignore the second request. This prevents
105602// clients from accidentally creating duplicate commitments. The request
105603// ID must be a valid UUID with the exception that zero UUID is not
105604// supported ( 00000000-0000-0000-0000-000000000000).
105605func (c *NodeGroupsDeleteCall) RequestId(requestId string) *NodeGroupsDeleteCall {
105606	c.urlParams_.Set("requestId", requestId)
105607	return c
105608}
105609
105610// Fields allows partial responses to be retrieved. See
105611// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105612// for more information.
105613func (c *NodeGroupsDeleteCall) Fields(s ...googleapi.Field) *NodeGroupsDeleteCall {
105614	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105615	return c
105616}
105617
105618// Context sets the context to be used in this call's Do method. Any
105619// pending HTTP request will be aborted if the provided context is
105620// canceled.
105621func (c *NodeGroupsDeleteCall) Context(ctx context.Context) *NodeGroupsDeleteCall {
105622	c.ctx_ = ctx
105623	return c
105624}
105625
105626// Header returns an http.Header that can be modified by the caller to
105627// add HTTP headers to the request.
105628func (c *NodeGroupsDeleteCall) Header() http.Header {
105629	if c.header_ == nil {
105630		c.header_ = make(http.Header)
105631	}
105632	return c.header_
105633}
105634
105635func (c *NodeGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
105636	reqHeaders := make(http.Header)
105637	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
105638	for k, v := range c.header_ {
105639		reqHeaders[k] = v
105640	}
105641	reqHeaders.Set("User-Agent", c.s.userAgent())
105642	var body io.Reader = nil
105643	c.urlParams_.Set("alt", alt)
105644	c.urlParams_.Set("prettyPrint", "false")
105645	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}")
105646	urls += "?" + c.urlParams_.Encode()
105647	req, err := http.NewRequest("DELETE", urls, body)
105648	if err != nil {
105649		return nil, err
105650	}
105651	req.Header = reqHeaders
105652	googleapi.Expand(req.URL, map[string]string{
105653		"project":   c.project,
105654		"zone":      c.zone,
105655		"nodeGroup": c.nodeGroup,
105656	})
105657	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105658}
105659
105660// Do executes the "compute.nodeGroups.delete" call.
105661// Exactly one of *Operation or error will be non-nil. Any non-2xx
105662// status code is an error. Response headers are in either
105663// *Operation.ServerResponse.Header or (if a response was returned at
105664// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105665// to check whether the returned error was because
105666// http.StatusNotModified was returned.
105667func (c *NodeGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105668	gensupport.SetOptions(c.urlParams_, opts...)
105669	res, err := c.doRequest("json")
105670	if res != nil && res.StatusCode == http.StatusNotModified {
105671		if res.Body != nil {
105672			res.Body.Close()
105673		}
105674		return nil, &googleapi.Error{
105675			Code:   res.StatusCode,
105676			Header: res.Header,
105677		}
105678	}
105679	if err != nil {
105680		return nil, err
105681	}
105682	defer googleapi.CloseBody(res)
105683	if err := googleapi.CheckResponse(res); err != nil {
105684		return nil, err
105685	}
105686	ret := &Operation{
105687		ServerResponse: googleapi.ServerResponse{
105688			Header:         res.Header,
105689			HTTPStatusCode: res.StatusCode,
105690		},
105691	}
105692	target := &ret
105693	if err := gensupport.DecodeResponse(target, res); err != nil {
105694		return nil, err
105695	}
105696	return ret, nil
105697	// {
105698	//   "description": "Deletes the specified NodeGroup resource.",
105699	//   "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}",
105700	//   "httpMethod": "DELETE",
105701	//   "id": "compute.nodeGroups.delete",
105702	//   "parameterOrder": [
105703	//     "project",
105704	//     "zone",
105705	//     "nodeGroup"
105706	//   ],
105707	//   "parameters": {
105708	//     "nodeGroup": {
105709	//       "description": "Name of the NodeGroup resource to delete.",
105710	//       "location": "path",
105711	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105712	//       "required": true,
105713	//       "type": "string"
105714	//     },
105715	//     "project": {
105716	//       "description": "Project ID for this request.",
105717	//       "location": "path",
105718	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105719	//       "required": true,
105720	//       "type": "string"
105721	//     },
105722	//     "requestId": {
105723	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
105724	//       "location": "query",
105725	//       "type": "string"
105726	//     },
105727	//     "zone": {
105728	//       "description": "The name of the zone for this request.",
105729	//       "location": "path",
105730	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105731	//       "required": true,
105732	//       "type": "string"
105733	//     }
105734	//   },
105735	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}",
105736	//   "response": {
105737	//     "$ref": "Operation"
105738	//   },
105739	//   "scopes": [
105740	//     "https://www.googleapis.com/auth/cloud-platform",
105741	//     "https://www.googleapis.com/auth/compute"
105742	//   ]
105743	// }
105744
105745}
105746
105747// method id "compute.nodeGroups.deleteNodes":
105748
105749type NodeGroupsDeleteNodesCall struct {
105750	s                            *Service
105751	project                      string
105752	zone                         string
105753	nodeGroup                    string
105754	nodegroupsdeletenodesrequest *NodeGroupsDeleteNodesRequest
105755	urlParams_                   gensupport.URLParams
105756	ctx_                         context.Context
105757	header_                      http.Header
105758}
105759
105760// DeleteNodes: Deletes specified nodes from the node group.
105761//
105762// - nodeGroup: Name of the NodeGroup resource whose nodes will be
105763//   deleted.
105764// - project: Project ID for this request.
105765// - zone: The name of the zone for this request.
105766func (r *NodeGroupsService) DeleteNodes(project string, zone string, nodeGroup string, nodegroupsdeletenodesrequest *NodeGroupsDeleteNodesRequest) *NodeGroupsDeleteNodesCall {
105767	c := &NodeGroupsDeleteNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105768	c.project = project
105769	c.zone = zone
105770	c.nodeGroup = nodeGroup
105771	c.nodegroupsdeletenodesrequest = nodegroupsdeletenodesrequest
105772	return c
105773}
105774
105775// RequestId sets the optional parameter "requestId": An optional
105776// request ID to identify requests. Specify a unique request ID so that
105777// if you must retry your request, the server will know to ignore the
105778// request if it has already been completed. For example, consider a
105779// situation where you make an initial request and the request times
105780// out. If you make the request again with the same request ID, the
105781// server can check if original operation with the same request ID was
105782// received, and if so, will ignore the second request. This prevents
105783// clients from accidentally creating duplicate commitments. The request
105784// ID must be a valid UUID with the exception that zero UUID is not
105785// supported ( 00000000-0000-0000-0000-000000000000).
105786func (c *NodeGroupsDeleteNodesCall) RequestId(requestId string) *NodeGroupsDeleteNodesCall {
105787	c.urlParams_.Set("requestId", requestId)
105788	return c
105789}
105790
105791// Fields allows partial responses to be retrieved. See
105792// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105793// for more information.
105794func (c *NodeGroupsDeleteNodesCall) Fields(s ...googleapi.Field) *NodeGroupsDeleteNodesCall {
105795	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105796	return c
105797}
105798
105799// Context sets the context to be used in this call's Do method. Any
105800// pending HTTP request will be aborted if the provided context is
105801// canceled.
105802func (c *NodeGroupsDeleteNodesCall) Context(ctx context.Context) *NodeGroupsDeleteNodesCall {
105803	c.ctx_ = ctx
105804	return c
105805}
105806
105807// Header returns an http.Header that can be modified by the caller to
105808// add HTTP headers to the request.
105809func (c *NodeGroupsDeleteNodesCall) Header() http.Header {
105810	if c.header_ == nil {
105811		c.header_ = make(http.Header)
105812	}
105813	return c.header_
105814}
105815
105816func (c *NodeGroupsDeleteNodesCall) doRequest(alt string) (*http.Response, error) {
105817	reqHeaders := make(http.Header)
105818	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
105819	for k, v := range c.header_ {
105820		reqHeaders[k] = v
105821	}
105822	reqHeaders.Set("User-Agent", c.s.userAgent())
105823	var body io.Reader = nil
105824	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupsdeletenodesrequest)
105825	if err != nil {
105826		return nil, err
105827	}
105828	reqHeaders.Set("Content-Type", "application/json")
105829	c.urlParams_.Set("alt", alt)
105830	c.urlParams_.Set("prettyPrint", "false")
105831	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes")
105832	urls += "?" + c.urlParams_.Encode()
105833	req, err := http.NewRequest("POST", urls, body)
105834	if err != nil {
105835		return nil, err
105836	}
105837	req.Header = reqHeaders
105838	googleapi.Expand(req.URL, map[string]string{
105839		"project":   c.project,
105840		"zone":      c.zone,
105841		"nodeGroup": c.nodeGroup,
105842	})
105843	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105844}
105845
105846// Do executes the "compute.nodeGroups.deleteNodes" call.
105847// Exactly one of *Operation or error will be non-nil. Any non-2xx
105848// status code is an error. Response headers are in either
105849// *Operation.ServerResponse.Header or (if a response was returned at
105850// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105851// to check whether the returned error was because
105852// http.StatusNotModified was returned.
105853func (c *NodeGroupsDeleteNodesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105854	gensupport.SetOptions(c.urlParams_, opts...)
105855	res, err := c.doRequest("json")
105856	if res != nil && res.StatusCode == http.StatusNotModified {
105857		if res.Body != nil {
105858			res.Body.Close()
105859		}
105860		return nil, &googleapi.Error{
105861			Code:   res.StatusCode,
105862			Header: res.Header,
105863		}
105864	}
105865	if err != nil {
105866		return nil, err
105867	}
105868	defer googleapi.CloseBody(res)
105869	if err := googleapi.CheckResponse(res); err != nil {
105870		return nil, err
105871	}
105872	ret := &Operation{
105873		ServerResponse: googleapi.ServerResponse{
105874			Header:         res.Header,
105875			HTTPStatusCode: res.StatusCode,
105876		},
105877	}
105878	target := &ret
105879	if err := gensupport.DecodeResponse(target, res); err != nil {
105880		return nil, err
105881	}
105882	return ret, nil
105883	// {
105884	//   "description": "Deletes specified nodes from the node group.",
105885	//   "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes",
105886	//   "httpMethod": "POST",
105887	//   "id": "compute.nodeGroups.deleteNodes",
105888	//   "parameterOrder": [
105889	//     "project",
105890	//     "zone",
105891	//     "nodeGroup"
105892	//   ],
105893	//   "parameters": {
105894	//     "nodeGroup": {
105895	//       "description": "Name of the NodeGroup resource whose nodes will be deleted.",
105896	//       "location": "path",
105897	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105898	//       "required": true,
105899	//       "type": "string"
105900	//     },
105901	//     "project": {
105902	//       "description": "Project ID for this request.",
105903	//       "location": "path",
105904	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105905	//       "required": true,
105906	//       "type": "string"
105907	//     },
105908	//     "requestId": {
105909	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
105910	//       "location": "query",
105911	//       "type": "string"
105912	//     },
105913	//     "zone": {
105914	//       "description": "The name of the zone for this request.",
105915	//       "location": "path",
105916	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105917	//       "required": true,
105918	//       "type": "string"
105919	//     }
105920	//   },
105921	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes",
105922	//   "request": {
105923	//     "$ref": "NodeGroupsDeleteNodesRequest"
105924	//   },
105925	//   "response": {
105926	//     "$ref": "Operation"
105927	//   },
105928	//   "scopes": [
105929	//     "https://www.googleapis.com/auth/cloud-platform",
105930	//     "https://www.googleapis.com/auth/compute"
105931	//   ]
105932	// }
105933
105934}
105935
105936// method id "compute.nodeGroups.get":
105937
105938type NodeGroupsGetCall struct {
105939	s            *Service
105940	project      string
105941	zone         string
105942	nodeGroup    string
105943	urlParams_   gensupport.URLParams
105944	ifNoneMatch_ string
105945	ctx_         context.Context
105946	header_      http.Header
105947}
105948
105949// Get: Returns the specified NodeGroup. Get a list of available
105950// NodeGroups by making a list() request. Note: the "nodes" field should
105951// not be used. Use nodeGroups.listNodes instead.
105952//
105953// - nodeGroup: Name of the node group to return.
105954// - project: Project ID for this request.
105955// - zone: The name of the zone for this request.
105956func (r *NodeGroupsService) Get(project string, zone string, nodeGroup string) *NodeGroupsGetCall {
105957	c := &NodeGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105958	c.project = project
105959	c.zone = zone
105960	c.nodeGroup = nodeGroup
105961	return c
105962}
105963
105964// Fields allows partial responses to be retrieved. See
105965// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105966// for more information.
105967func (c *NodeGroupsGetCall) Fields(s ...googleapi.Field) *NodeGroupsGetCall {
105968	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105969	return c
105970}
105971
105972// IfNoneMatch sets the optional parameter which makes the operation
105973// fail if the object's ETag matches the given value. This is useful for
105974// getting updates only after the object has changed since the last
105975// request. Use googleapi.IsNotModified to check whether the response
105976// error from Do is the result of In-None-Match.
105977func (c *NodeGroupsGetCall) IfNoneMatch(entityTag string) *NodeGroupsGetCall {
105978	c.ifNoneMatch_ = entityTag
105979	return c
105980}
105981
105982// Context sets the context to be used in this call's Do method. Any
105983// pending HTTP request will be aborted if the provided context is
105984// canceled.
105985func (c *NodeGroupsGetCall) Context(ctx context.Context) *NodeGroupsGetCall {
105986	c.ctx_ = ctx
105987	return c
105988}
105989
105990// Header returns an http.Header that can be modified by the caller to
105991// add HTTP headers to the request.
105992func (c *NodeGroupsGetCall) Header() http.Header {
105993	if c.header_ == nil {
105994		c.header_ = make(http.Header)
105995	}
105996	return c.header_
105997}
105998
105999func (c *NodeGroupsGetCall) doRequest(alt string) (*http.Response, error) {
106000	reqHeaders := make(http.Header)
106001	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
106002	for k, v := range c.header_ {
106003		reqHeaders[k] = v
106004	}
106005	reqHeaders.Set("User-Agent", c.s.userAgent())
106006	if c.ifNoneMatch_ != "" {
106007		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
106008	}
106009	var body io.Reader = nil
106010	c.urlParams_.Set("alt", alt)
106011	c.urlParams_.Set("prettyPrint", "false")
106012	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}")
106013	urls += "?" + c.urlParams_.Encode()
106014	req, err := http.NewRequest("GET", urls, body)
106015	if err != nil {
106016		return nil, err
106017	}
106018	req.Header = reqHeaders
106019	googleapi.Expand(req.URL, map[string]string{
106020		"project":   c.project,
106021		"zone":      c.zone,
106022		"nodeGroup": c.nodeGroup,
106023	})
106024	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106025}
106026
106027// Do executes the "compute.nodeGroups.get" call.
106028// Exactly one of *NodeGroup or error will be non-nil. Any non-2xx
106029// status code is an error. Response headers are in either
106030// *NodeGroup.ServerResponse.Header or (if a response was returned at
106031// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
106032// to check whether the returned error was because
106033// http.StatusNotModified was returned.
106034func (c *NodeGroupsGetCall) Do(opts ...googleapi.CallOption) (*NodeGroup, error) {
106035	gensupport.SetOptions(c.urlParams_, opts...)
106036	res, err := c.doRequest("json")
106037	if res != nil && res.StatusCode == http.StatusNotModified {
106038		if res.Body != nil {
106039			res.Body.Close()
106040		}
106041		return nil, &googleapi.Error{
106042			Code:   res.StatusCode,
106043			Header: res.Header,
106044		}
106045	}
106046	if err != nil {
106047		return nil, err
106048	}
106049	defer googleapi.CloseBody(res)
106050	if err := googleapi.CheckResponse(res); err != nil {
106051		return nil, err
106052	}
106053	ret := &NodeGroup{
106054		ServerResponse: googleapi.ServerResponse{
106055			Header:         res.Header,
106056			HTTPStatusCode: res.StatusCode,
106057		},
106058	}
106059	target := &ret
106060	if err := gensupport.DecodeResponse(target, res); err != nil {
106061		return nil, err
106062	}
106063	return ret, nil
106064	// {
106065	//   "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.",
106066	//   "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}",
106067	//   "httpMethod": "GET",
106068	//   "id": "compute.nodeGroups.get",
106069	//   "parameterOrder": [
106070	//     "project",
106071	//     "zone",
106072	//     "nodeGroup"
106073	//   ],
106074	//   "parameters": {
106075	//     "nodeGroup": {
106076	//       "description": "Name of the node group to return.",
106077	//       "location": "path",
106078	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
106079	//       "required": true,
106080	//       "type": "string"
106081	//     },
106082	//     "project": {
106083	//       "description": "Project ID for this request.",
106084	//       "location": "path",
106085	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106086	//       "required": true,
106087	//       "type": "string"
106088	//     },
106089	//     "zone": {
106090	//       "description": "The name of the zone for this request.",
106091	//       "location": "path",
106092	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106093	//       "required": true,
106094	//       "type": "string"
106095	//     }
106096	//   },
106097	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}",
106098	//   "response": {
106099	//     "$ref": "NodeGroup"
106100	//   },
106101	//   "scopes": [
106102	//     "https://www.googleapis.com/auth/cloud-platform",
106103	//     "https://www.googleapis.com/auth/compute",
106104	//     "https://www.googleapis.com/auth/compute.readonly"
106105	//   ]
106106	// }
106107
106108}
106109
106110// method id "compute.nodeGroups.getIamPolicy":
106111
106112type NodeGroupsGetIamPolicyCall struct {
106113	s            *Service
106114	project      string
106115	zone         string
106116	resource     string
106117	urlParams_   gensupport.URLParams
106118	ifNoneMatch_ string
106119	ctx_         context.Context
106120	header_      http.Header
106121}
106122
106123// GetIamPolicy: Gets the access control policy for a resource. May be
106124// empty if no such policy or resource exists.
106125//
106126// - project: Project ID for this request.
106127// - resource: Name or id of the resource for this request.
106128// - zone: The name of the zone for this request.
106129func (r *NodeGroupsService) GetIamPolicy(project string, zone string, resource string) *NodeGroupsGetIamPolicyCall {
106130	c := &NodeGroupsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106131	c.project = project
106132	c.zone = zone
106133	c.resource = resource
106134	return c
106135}
106136
106137// OptionsRequestedPolicyVersion sets the optional parameter
106138// "optionsRequestedPolicyVersion": Requested IAM Policy version.
106139func (c *NodeGroupsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *NodeGroupsGetIamPolicyCall {
106140	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
106141	return c
106142}
106143
106144// Fields allows partial responses to be retrieved. See
106145// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106146// for more information.
106147func (c *NodeGroupsGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsGetIamPolicyCall {
106148	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106149	return c
106150}
106151
106152// IfNoneMatch sets the optional parameter which makes the operation
106153// fail if the object's ETag matches the given value. This is useful for
106154// getting updates only after the object has changed since the last
106155// request. Use googleapi.IsNotModified to check whether the response
106156// error from Do is the result of In-None-Match.
106157func (c *NodeGroupsGetIamPolicyCall) IfNoneMatch(entityTag string) *NodeGroupsGetIamPolicyCall {
106158	c.ifNoneMatch_ = entityTag
106159	return c
106160}
106161
106162// Context sets the context to be used in this call's Do method. Any
106163// pending HTTP request will be aborted if the provided context is
106164// canceled.
106165func (c *NodeGroupsGetIamPolicyCall) Context(ctx context.Context) *NodeGroupsGetIamPolicyCall {
106166	c.ctx_ = ctx
106167	return c
106168}
106169
106170// Header returns an http.Header that can be modified by the caller to
106171// add HTTP headers to the request.
106172func (c *NodeGroupsGetIamPolicyCall) Header() http.Header {
106173	if c.header_ == nil {
106174		c.header_ = make(http.Header)
106175	}
106176	return c.header_
106177}
106178
106179func (c *NodeGroupsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
106180	reqHeaders := make(http.Header)
106181	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
106182	for k, v := range c.header_ {
106183		reqHeaders[k] = v
106184	}
106185	reqHeaders.Set("User-Agent", c.s.userAgent())
106186	if c.ifNoneMatch_ != "" {
106187		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
106188	}
106189	var body io.Reader = nil
106190	c.urlParams_.Set("alt", alt)
106191	c.urlParams_.Set("prettyPrint", "false")
106192	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy")
106193	urls += "?" + c.urlParams_.Encode()
106194	req, err := http.NewRequest("GET", urls, body)
106195	if err != nil {
106196		return nil, err
106197	}
106198	req.Header = reqHeaders
106199	googleapi.Expand(req.URL, map[string]string{
106200		"project":  c.project,
106201		"zone":     c.zone,
106202		"resource": c.resource,
106203	})
106204	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106205}
106206
106207// Do executes the "compute.nodeGroups.getIamPolicy" call.
106208// Exactly one of *Policy or error will be non-nil. Any non-2xx status
106209// code is an error. Response headers are in either
106210// *Policy.ServerResponse.Header or (if a response was returned at all)
106211// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
106212// check whether the returned error was because http.StatusNotModified
106213// was returned.
106214func (c *NodeGroupsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
106215	gensupport.SetOptions(c.urlParams_, opts...)
106216	res, err := c.doRequest("json")
106217	if res != nil && res.StatusCode == http.StatusNotModified {
106218		if res.Body != nil {
106219			res.Body.Close()
106220		}
106221		return nil, &googleapi.Error{
106222			Code:   res.StatusCode,
106223			Header: res.Header,
106224		}
106225	}
106226	if err != nil {
106227		return nil, err
106228	}
106229	defer googleapi.CloseBody(res)
106230	if err := googleapi.CheckResponse(res); err != nil {
106231		return nil, err
106232	}
106233	ret := &Policy{
106234		ServerResponse: googleapi.ServerResponse{
106235			Header:         res.Header,
106236			HTTPStatusCode: res.StatusCode,
106237		},
106238	}
106239	target := &ret
106240	if err := gensupport.DecodeResponse(target, res); err != nil {
106241		return nil, err
106242	}
106243	return ret, nil
106244	// {
106245	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
106246	//   "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy",
106247	//   "httpMethod": "GET",
106248	//   "id": "compute.nodeGroups.getIamPolicy",
106249	//   "parameterOrder": [
106250	//     "project",
106251	//     "zone",
106252	//     "resource"
106253	//   ],
106254	//   "parameters": {
106255	//     "optionsRequestedPolicyVersion": {
106256	//       "description": "Requested IAM Policy version.",
106257	//       "format": "int32",
106258	//       "location": "query",
106259	//       "type": "integer"
106260	//     },
106261	//     "project": {
106262	//       "description": "Project ID for this request.",
106263	//       "location": "path",
106264	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106265	//       "required": true,
106266	//       "type": "string"
106267	//     },
106268	//     "resource": {
106269	//       "description": "Name or id of the resource for this request.",
106270	//       "location": "path",
106271	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
106272	//       "required": true,
106273	//       "type": "string"
106274	//     },
106275	//     "zone": {
106276	//       "description": "The name of the zone for this request.",
106277	//       "location": "path",
106278	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106279	//       "required": true,
106280	//       "type": "string"
106281	//     }
106282	//   },
106283	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy",
106284	//   "response": {
106285	//     "$ref": "Policy"
106286	//   },
106287	//   "scopes": [
106288	//     "https://www.googleapis.com/auth/cloud-platform",
106289	//     "https://www.googleapis.com/auth/compute",
106290	//     "https://www.googleapis.com/auth/compute.readonly"
106291	//   ]
106292	// }
106293
106294}
106295
106296// method id "compute.nodeGroups.insert":
106297
106298type NodeGroupsInsertCall struct {
106299	s          *Service
106300	project    string
106301	zone       string
106302	nodegroup  *NodeGroup
106303	urlParams_ gensupport.URLParams
106304	ctx_       context.Context
106305	header_    http.Header
106306}
106307
106308// Insert: Creates a NodeGroup resource in the specified project using
106309// the data included in the request.
106310//
106311// - initialNodeCount: Initial count of nodes in the node group.
106312// - project: Project ID for this request.
106313// - zone: The name of the zone for this request.
106314func (r *NodeGroupsService) Insert(project string, zone string, initialNodeCount int64, nodegroup *NodeGroup) *NodeGroupsInsertCall {
106315	c := &NodeGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106316	c.project = project
106317	c.zone = zone
106318	c.urlParams_.Set("initialNodeCount", fmt.Sprint(initialNodeCount))
106319	c.nodegroup = nodegroup
106320	return c
106321}
106322
106323// RequestId sets the optional parameter "requestId": An optional
106324// request ID to identify requests. Specify a unique request ID so that
106325// if you must retry your request, the server will know to ignore the
106326// request if it has already been completed. For example, consider a
106327// situation where you make an initial request and the request times
106328// out. If you make the request again with the same request ID, the
106329// server can check if original operation with the same request ID was
106330// received, and if so, will ignore the second request. This prevents
106331// clients from accidentally creating duplicate commitments. The request
106332// ID must be a valid UUID with the exception that zero UUID is not
106333// supported ( 00000000-0000-0000-0000-000000000000).
106334func (c *NodeGroupsInsertCall) RequestId(requestId string) *NodeGroupsInsertCall {
106335	c.urlParams_.Set("requestId", requestId)
106336	return c
106337}
106338
106339// Fields allows partial responses to be retrieved. See
106340// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106341// for more information.
106342func (c *NodeGroupsInsertCall) Fields(s ...googleapi.Field) *NodeGroupsInsertCall {
106343	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106344	return c
106345}
106346
106347// Context sets the context to be used in this call's Do method. Any
106348// pending HTTP request will be aborted if the provided context is
106349// canceled.
106350func (c *NodeGroupsInsertCall) Context(ctx context.Context) *NodeGroupsInsertCall {
106351	c.ctx_ = ctx
106352	return c
106353}
106354
106355// Header returns an http.Header that can be modified by the caller to
106356// add HTTP headers to the request.
106357func (c *NodeGroupsInsertCall) Header() http.Header {
106358	if c.header_ == nil {
106359		c.header_ = make(http.Header)
106360	}
106361	return c.header_
106362}
106363
106364func (c *NodeGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
106365	reqHeaders := make(http.Header)
106366	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
106367	for k, v := range c.header_ {
106368		reqHeaders[k] = v
106369	}
106370	reqHeaders.Set("User-Agent", c.s.userAgent())
106371	var body io.Reader = nil
106372	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroup)
106373	if err != nil {
106374		return nil, err
106375	}
106376	reqHeaders.Set("Content-Type", "application/json")
106377	c.urlParams_.Set("alt", alt)
106378	c.urlParams_.Set("prettyPrint", "false")
106379	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups")
106380	urls += "?" + c.urlParams_.Encode()
106381	req, err := http.NewRequest("POST", urls, body)
106382	if err != nil {
106383		return nil, err
106384	}
106385	req.Header = reqHeaders
106386	googleapi.Expand(req.URL, map[string]string{
106387		"project": c.project,
106388		"zone":    c.zone,
106389	})
106390	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106391}
106392
106393// Do executes the "compute.nodeGroups.insert" call.
106394// Exactly one of *Operation or error will be non-nil. Any non-2xx
106395// status code is an error. Response headers are in either
106396// *Operation.ServerResponse.Header or (if a response was returned at
106397// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
106398// to check whether the returned error was because
106399// http.StatusNotModified was returned.
106400func (c *NodeGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
106401	gensupport.SetOptions(c.urlParams_, opts...)
106402	res, err := c.doRequest("json")
106403	if res != nil && res.StatusCode == http.StatusNotModified {
106404		if res.Body != nil {
106405			res.Body.Close()
106406		}
106407		return nil, &googleapi.Error{
106408			Code:   res.StatusCode,
106409			Header: res.Header,
106410		}
106411	}
106412	if err != nil {
106413		return nil, err
106414	}
106415	defer googleapi.CloseBody(res)
106416	if err := googleapi.CheckResponse(res); err != nil {
106417		return nil, err
106418	}
106419	ret := &Operation{
106420		ServerResponse: googleapi.ServerResponse{
106421			Header:         res.Header,
106422			HTTPStatusCode: res.StatusCode,
106423		},
106424	}
106425	target := &ret
106426	if err := gensupport.DecodeResponse(target, res); err != nil {
106427		return nil, err
106428	}
106429	return ret, nil
106430	// {
106431	//   "description": "Creates a NodeGroup resource in the specified project using the data included in the request.",
106432	//   "flatPath": "projects/{project}/zones/{zone}/nodeGroups",
106433	//   "httpMethod": "POST",
106434	//   "id": "compute.nodeGroups.insert",
106435	//   "parameterOrder": [
106436	//     "project",
106437	//     "zone",
106438	//     "initialNodeCount"
106439	//   ],
106440	//   "parameters": {
106441	//     "initialNodeCount": {
106442	//       "description": "Initial count of nodes in the node group.",
106443	//       "format": "int32",
106444	//       "location": "query",
106445	//       "required": true,
106446	//       "type": "integer"
106447	//     },
106448	//     "project": {
106449	//       "description": "Project ID for this request.",
106450	//       "location": "path",
106451	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106452	//       "required": true,
106453	//       "type": "string"
106454	//     },
106455	//     "requestId": {
106456	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
106457	//       "location": "query",
106458	//       "type": "string"
106459	//     },
106460	//     "zone": {
106461	//       "description": "The name of the zone for this request.",
106462	//       "location": "path",
106463	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106464	//       "required": true,
106465	//       "type": "string"
106466	//     }
106467	//   },
106468	//   "path": "projects/{project}/zones/{zone}/nodeGroups",
106469	//   "request": {
106470	//     "$ref": "NodeGroup"
106471	//   },
106472	//   "response": {
106473	//     "$ref": "Operation"
106474	//   },
106475	//   "scopes": [
106476	//     "https://www.googleapis.com/auth/cloud-platform",
106477	//     "https://www.googleapis.com/auth/compute"
106478	//   ]
106479	// }
106480
106481}
106482
106483// method id "compute.nodeGroups.list":
106484
106485type NodeGroupsListCall struct {
106486	s            *Service
106487	project      string
106488	zone         string
106489	urlParams_   gensupport.URLParams
106490	ifNoneMatch_ string
106491	ctx_         context.Context
106492	header_      http.Header
106493}
106494
106495// List: Retrieves a list of node groups available to the specified
106496// project. Note: use nodeGroups.listNodes for more details about each
106497// group.
106498//
106499// - project: Project ID for this request.
106500// - zone: The name of the zone for this request.
106501func (r *NodeGroupsService) List(project string, zone string) *NodeGroupsListCall {
106502	c := &NodeGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106503	c.project = project
106504	c.zone = zone
106505	return c
106506}
106507
106508// Filter sets the optional parameter "filter": A filter expression that
106509// filters resources listed in the response. The expression must specify
106510// the field name, a comparison operator, and the value that you want to
106511// use for filtering. The value must be a string, a number, or a
106512// boolean. The comparison operator must be either `=`, `!=`, `>`, or
106513// `<`. For example, if you are filtering Compute Engine instances, you
106514// can exclude instances named `example-instance` by specifying `name !=
106515// example-instance`. You can also filter nested fields. For example,
106516// you could specify `scheduling.automaticRestart = false` to include
106517// instances only if they are not scheduled for automatic restarts. You
106518// can use filtering on nested fields to filter based on resource
106519// labels. To filter on multiple expressions, provide each separate
106520// expression within parentheses. For example: ```
106521// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
106522// ``` By default, each expression is an `AND` expression. However, you
106523// can include `AND` and `OR` expressions explicitly. For example: ```
106524// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
106525// AND (scheduling.automaticRestart = true) ```
106526func (c *NodeGroupsListCall) Filter(filter string) *NodeGroupsListCall {
106527	c.urlParams_.Set("filter", filter)
106528	return c
106529}
106530
106531// MaxResults sets the optional parameter "maxResults": The maximum
106532// number of results per page that should be returned. If the number of
106533// available results is larger than `maxResults`, Compute Engine returns
106534// a `nextPageToken` that can be used to get the next page of results in
106535// subsequent list requests. Acceptable values are `0` to `500`,
106536// inclusive. (Default: `500`)
106537func (c *NodeGroupsListCall) MaxResults(maxResults int64) *NodeGroupsListCall {
106538	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
106539	return c
106540}
106541
106542// OrderBy sets the optional parameter "orderBy": Sorts list results by
106543// a certain order. By default, results are returned in alphanumerical
106544// order based on the resource name. You can also sort results in
106545// descending order based on the creation timestamp using
106546// `orderBy="creationTimestamp desc". This sorts results based on the
106547// `creationTimestamp` field in reverse chronological order (newest
106548// result first). Use this to sort resources like operations so that the
106549// newest operation is returned first. Currently, only sorting by `name`
106550// or `creationTimestamp desc` is supported.
106551func (c *NodeGroupsListCall) OrderBy(orderBy string) *NodeGroupsListCall {
106552	c.urlParams_.Set("orderBy", orderBy)
106553	return c
106554}
106555
106556// PageToken sets the optional parameter "pageToken": Specifies a page
106557// token to use. Set `pageToken` to the `nextPageToken` returned by a
106558// previous list request to get the next page of results.
106559func (c *NodeGroupsListCall) PageToken(pageToken string) *NodeGroupsListCall {
106560	c.urlParams_.Set("pageToken", pageToken)
106561	return c
106562}
106563
106564// ReturnPartialSuccess sets the optional parameter
106565// "returnPartialSuccess": Opt-in for partial success behavior which
106566// provides partial results in case of failure. The default value is
106567// false.
106568func (c *NodeGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeGroupsListCall {
106569	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
106570	return c
106571}
106572
106573// Fields allows partial responses to be retrieved. See
106574// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106575// for more information.
106576func (c *NodeGroupsListCall) Fields(s ...googleapi.Field) *NodeGroupsListCall {
106577	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106578	return c
106579}
106580
106581// IfNoneMatch sets the optional parameter which makes the operation
106582// fail if the object's ETag matches the given value. This is useful for
106583// getting updates only after the object has changed since the last
106584// request. Use googleapi.IsNotModified to check whether the response
106585// error from Do is the result of In-None-Match.
106586func (c *NodeGroupsListCall) IfNoneMatch(entityTag string) *NodeGroupsListCall {
106587	c.ifNoneMatch_ = entityTag
106588	return c
106589}
106590
106591// Context sets the context to be used in this call's Do method. Any
106592// pending HTTP request will be aborted if the provided context is
106593// canceled.
106594func (c *NodeGroupsListCall) Context(ctx context.Context) *NodeGroupsListCall {
106595	c.ctx_ = ctx
106596	return c
106597}
106598
106599// Header returns an http.Header that can be modified by the caller to
106600// add HTTP headers to the request.
106601func (c *NodeGroupsListCall) Header() http.Header {
106602	if c.header_ == nil {
106603		c.header_ = make(http.Header)
106604	}
106605	return c.header_
106606}
106607
106608func (c *NodeGroupsListCall) doRequest(alt string) (*http.Response, error) {
106609	reqHeaders := make(http.Header)
106610	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
106611	for k, v := range c.header_ {
106612		reqHeaders[k] = v
106613	}
106614	reqHeaders.Set("User-Agent", c.s.userAgent())
106615	if c.ifNoneMatch_ != "" {
106616		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
106617	}
106618	var body io.Reader = nil
106619	c.urlParams_.Set("alt", alt)
106620	c.urlParams_.Set("prettyPrint", "false")
106621	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups")
106622	urls += "?" + c.urlParams_.Encode()
106623	req, err := http.NewRequest("GET", urls, body)
106624	if err != nil {
106625		return nil, err
106626	}
106627	req.Header = reqHeaders
106628	googleapi.Expand(req.URL, map[string]string{
106629		"project": c.project,
106630		"zone":    c.zone,
106631	})
106632	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106633}
106634
106635// Do executes the "compute.nodeGroups.list" call.
106636// Exactly one of *NodeGroupList or error will be non-nil. Any non-2xx
106637// status code is an error. Response headers are in either
106638// *NodeGroupList.ServerResponse.Header or (if a response was returned
106639// at all) in error.(*googleapi.Error).Header. Use
106640// googleapi.IsNotModified to check whether the returned error was
106641// because http.StatusNotModified was returned.
106642func (c *NodeGroupsListCall) Do(opts ...googleapi.CallOption) (*NodeGroupList, error) {
106643	gensupport.SetOptions(c.urlParams_, opts...)
106644	res, err := c.doRequest("json")
106645	if res != nil && res.StatusCode == http.StatusNotModified {
106646		if res.Body != nil {
106647			res.Body.Close()
106648		}
106649		return nil, &googleapi.Error{
106650			Code:   res.StatusCode,
106651			Header: res.Header,
106652		}
106653	}
106654	if err != nil {
106655		return nil, err
106656	}
106657	defer googleapi.CloseBody(res)
106658	if err := googleapi.CheckResponse(res); err != nil {
106659		return nil, err
106660	}
106661	ret := &NodeGroupList{
106662		ServerResponse: googleapi.ServerResponse{
106663			Header:         res.Header,
106664			HTTPStatusCode: res.StatusCode,
106665		},
106666	}
106667	target := &ret
106668	if err := gensupport.DecodeResponse(target, res); err != nil {
106669		return nil, err
106670	}
106671	return ret, nil
106672	// {
106673	//   "description": "Retrieves a list of node groups available to the specified project. Note: use nodeGroups.listNodes for more details about each group.",
106674	//   "flatPath": "projects/{project}/zones/{zone}/nodeGroups",
106675	//   "httpMethod": "GET",
106676	//   "id": "compute.nodeGroups.list",
106677	//   "parameterOrder": [
106678	//     "project",
106679	//     "zone"
106680	//   ],
106681	//   "parameters": {
106682	//     "filter": {
106683	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
106684	//       "location": "query",
106685	//       "type": "string"
106686	//     },
106687	//     "maxResults": {
106688	//       "default": "500",
106689	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
106690	//       "format": "uint32",
106691	//       "location": "query",
106692	//       "minimum": "0",
106693	//       "type": "integer"
106694	//     },
106695	//     "orderBy": {
106696	//       "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.",
106697	//       "location": "query",
106698	//       "type": "string"
106699	//     },
106700	//     "pageToken": {
106701	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
106702	//       "location": "query",
106703	//       "type": "string"
106704	//     },
106705	//     "project": {
106706	//       "description": "Project ID for this request.",
106707	//       "location": "path",
106708	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106709	//       "required": true,
106710	//       "type": "string"
106711	//     },
106712	//     "returnPartialSuccess": {
106713	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
106714	//       "location": "query",
106715	//       "type": "boolean"
106716	//     },
106717	//     "zone": {
106718	//       "description": "The name of the zone for this request.",
106719	//       "location": "path",
106720	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106721	//       "required": true,
106722	//       "type": "string"
106723	//     }
106724	//   },
106725	//   "path": "projects/{project}/zones/{zone}/nodeGroups",
106726	//   "response": {
106727	//     "$ref": "NodeGroupList"
106728	//   },
106729	//   "scopes": [
106730	//     "https://www.googleapis.com/auth/cloud-platform",
106731	//     "https://www.googleapis.com/auth/compute",
106732	//     "https://www.googleapis.com/auth/compute.readonly"
106733	//   ]
106734	// }
106735
106736}
106737
106738// Pages invokes f for each page of results.
106739// A non-nil error returned from f will halt the iteration.
106740// The provided context supersedes any context provided to the Context method.
106741func (c *NodeGroupsListCall) Pages(ctx context.Context, f func(*NodeGroupList) error) error {
106742	c.ctx_ = ctx
106743	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
106744	for {
106745		x, err := c.Do()
106746		if err != nil {
106747			return err
106748		}
106749		if err := f(x); err != nil {
106750			return err
106751		}
106752		if x.NextPageToken == "" {
106753			return nil
106754		}
106755		c.PageToken(x.NextPageToken)
106756	}
106757}
106758
106759// method id "compute.nodeGroups.listNodes":
106760
106761type NodeGroupsListNodesCall struct {
106762	s          *Service
106763	project    string
106764	zone       string
106765	nodeGroup  string
106766	urlParams_ gensupport.URLParams
106767	ctx_       context.Context
106768	header_    http.Header
106769}
106770
106771// ListNodes: Lists nodes in the node group.
106772//
106773// - nodeGroup: Name of the NodeGroup resource whose nodes you want to
106774//   list.
106775// - project: Project ID for this request.
106776// - zone: The name of the zone for this request.
106777func (r *NodeGroupsService) ListNodes(project string, zone string, nodeGroup string) *NodeGroupsListNodesCall {
106778	c := &NodeGroupsListNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106779	c.project = project
106780	c.zone = zone
106781	c.nodeGroup = nodeGroup
106782	return c
106783}
106784
106785// Filter sets the optional parameter "filter": A filter expression that
106786// filters resources listed in the response. The expression must specify
106787// the field name, a comparison operator, and the value that you want to
106788// use for filtering. The value must be a string, a number, or a
106789// boolean. The comparison operator must be either `=`, `!=`, `>`, or
106790// `<`. For example, if you are filtering Compute Engine instances, you
106791// can exclude instances named `example-instance` by specifying `name !=
106792// example-instance`. You can also filter nested fields. For example,
106793// you could specify `scheduling.automaticRestart = false` to include
106794// instances only if they are not scheduled for automatic restarts. You
106795// can use filtering on nested fields to filter based on resource
106796// labels. To filter on multiple expressions, provide each separate
106797// expression within parentheses. For example: ```
106798// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
106799// ``` By default, each expression is an `AND` expression. However, you
106800// can include `AND` and `OR` expressions explicitly. For example: ```
106801// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
106802// AND (scheduling.automaticRestart = true) ```
106803func (c *NodeGroupsListNodesCall) Filter(filter string) *NodeGroupsListNodesCall {
106804	c.urlParams_.Set("filter", filter)
106805	return c
106806}
106807
106808// MaxResults sets the optional parameter "maxResults": The maximum
106809// number of results per page that should be returned. If the number of
106810// available results is larger than `maxResults`, Compute Engine returns
106811// a `nextPageToken` that can be used to get the next page of results in
106812// subsequent list requests. Acceptable values are `0` to `500`,
106813// inclusive. (Default: `500`)
106814func (c *NodeGroupsListNodesCall) MaxResults(maxResults int64) *NodeGroupsListNodesCall {
106815	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
106816	return c
106817}
106818
106819// OrderBy sets the optional parameter "orderBy": Sorts list results by
106820// a certain order. By default, results are returned in alphanumerical
106821// order based on the resource name. You can also sort results in
106822// descending order based on the creation timestamp using
106823// `orderBy="creationTimestamp desc". This sorts results based on the
106824// `creationTimestamp` field in reverse chronological order (newest
106825// result first). Use this to sort resources like operations so that the
106826// newest operation is returned first. Currently, only sorting by `name`
106827// or `creationTimestamp desc` is supported.
106828func (c *NodeGroupsListNodesCall) OrderBy(orderBy string) *NodeGroupsListNodesCall {
106829	c.urlParams_.Set("orderBy", orderBy)
106830	return c
106831}
106832
106833// PageToken sets the optional parameter "pageToken": Specifies a page
106834// token to use. Set `pageToken` to the `nextPageToken` returned by a
106835// previous list request to get the next page of results.
106836func (c *NodeGroupsListNodesCall) PageToken(pageToken string) *NodeGroupsListNodesCall {
106837	c.urlParams_.Set("pageToken", pageToken)
106838	return c
106839}
106840
106841// ReturnPartialSuccess sets the optional parameter
106842// "returnPartialSuccess": Opt-in for partial success behavior which
106843// provides partial results in case of failure. The default value is
106844// false.
106845func (c *NodeGroupsListNodesCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeGroupsListNodesCall {
106846	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
106847	return c
106848}
106849
106850// Fields allows partial responses to be retrieved. See
106851// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106852// for more information.
106853func (c *NodeGroupsListNodesCall) Fields(s ...googleapi.Field) *NodeGroupsListNodesCall {
106854	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106855	return c
106856}
106857
106858// Context sets the context to be used in this call's Do method. Any
106859// pending HTTP request will be aborted if the provided context is
106860// canceled.
106861func (c *NodeGroupsListNodesCall) Context(ctx context.Context) *NodeGroupsListNodesCall {
106862	c.ctx_ = ctx
106863	return c
106864}
106865
106866// Header returns an http.Header that can be modified by the caller to
106867// add HTTP headers to the request.
106868func (c *NodeGroupsListNodesCall) Header() http.Header {
106869	if c.header_ == nil {
106870		c.header_ = make(http.Header)
106871	}
106872	return c.header_
106873}
106874
106875func (c *NodeGroupsListNodesCall) doRequest(alt string) (*http.Response, error) {
106876	reqHeaders := make(http.Header)
106877	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
106878	for k, v := range c.header_ {
106879		reqHeaders[k] = v
106880	}
106881	reqHeaders.Set("User-Agent", c.s.userAgent())
106882	var body io.Reader = nil
106883	c.urlParams_.Set("alt", alt)
106884	c.urlParams_.Set("prettyPrint", "false")
106885	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes")
106886	urls += "?" + c.urlParams_.Encode()
106887	req, err := http.NewRequest("POST", urls, body)
106888	if err != nil {
106889		return nil, err
106890	}
106891	req.Header = reqHeaders
106892	googleapi.Expand(req.URL, map[string]string{
106893		"project":   c.project,
106894		"zone":      c.zone,
106895		"nodeGroup": c.nodeGroup,
106896	})
106897	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106898}
106899
106900// Do executes the "compute.nodeGroups.listNodes" call.
106901// Exactly one of *NodeGroupsListNodes or error will be non-nil. Any
106902// non-2xx status code is an error. Response headers are in either
106903// *NodeGroupsListNodes.ServerResponse.Header or (if a response was
106904// returned at all) in error.(*googleapi.Error).Header. Use
106905// googleapi.IsNotModified to check whether the returned error was
106906// because http.StatusNotModified was returned.
106907func (c *NodeGroupsListNodesCall) Do(opts ...googleapi.CallOption) (*NodeGroupsListNodes, error) {
106908	gensupport.SetOptions(c.urlParams_, opts...)
106909	res, err := c.doRequest("json")
106910	if res != nil && res.StatusCode == http.StatusNotModified {
106911		if res.Body != nil {
106912			res.Body.Close()
106913		}
106914		return nil, &googleapi.Error{
106915			Code:   res.StatusCode,
106916			Header: res.Header,
106917		}
106918	}
106919	if err != nil {
106920		return nil, err
106921	}
106922	defer googleapi.CloseBody(res)
106923	if err := googleapi.CheckResponse(res); err != nil {
106924		return nil, err
106925	}
106926	ret := &NodeGroupsListNodes{
106927		ServerResponse: googleapi.ServerResponse{
106928			Header:         res.Header,
106929			HTTPStatusCode: res.StatusCode,
106930		},
106931	}
106932	target := &ret
106933	if err := gensupport.DecodeResponse(target, res); err != nil {
106934		return nil, err
106935	}
106936	return ret, nil
106937	// {
106938	//   "description": "Lists nodes in the node group.",
106939	//   "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes",
106940	//   "httpMethod": "POST",
106941	//   "id": "compute.nodeGroups.listNodes",
106942	//   "parameterOrder": [
106943	//     "project",
106944	//     "zone",
106945	//     "nodeGroup"
106946	//   ],
106947	//   "parameters": {
106948	//     "filter": {
106949	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
106950	//       "location": "query",
106951	//       "type": "string"
106952	//     },
106953	//     "maxResults": {
106954	//       "default": "500",
106955	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
106956	//       "format": "uint32",
106957	//       "location": "query",
106958	//       "minimum": "0",
106959	//       "type": "integer"
106960	//     },
106961	//     "nodeGroup": {
106962	//       "description": "Name of the NodeGroup resource whose nodes you want to list.",
106963	//       "location": "path",
106964	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
106965	//       "required": true,
106966	//       "type": "string"
106967	//     },
106968	//     "orderBy": {
106969	//       "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.",
106970	//       "location": "query",
106971	//       "type": "string"
106972	//     },
106973	//     "pageToken": {
106974	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
106975	//       "location": "query",
106976	//       "type": "string"
106977	//     },
106978	//     "project": {
106979	//       "description": "Project ID for this request.",
106980	//       "location": "path",
106981	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106982	//       "required": true,
106983	//       "type": "string"
106984	//     },
106985	//     "returnPartialSuccess": {
106986	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
106987	//       "location": "query",
106988	//       "type": "boolean"
106989	//     },
106990	//     "zone": {
106991	//       "description": "The name of the zone for this request.",
106992	//       "location": "path",
106993	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106994	//       "required": true,
106995	//       "type": "string"
106996	//     }
106997	//   },
106998	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes",
106999	//   "response": {
107000	//     "$ref": "NodeGroupsListNodes"
107001	//   },
107002	//   "scopes": [
107003	//     "https://www.googleapis.com/auth/cloud-platform",
107004	//     "https://www.googleapis.com/auth/compute",
107005	//     "https://www.googleapis.com/auth/compute.readonly"
107006	//   ]
107007	// }
107008
107009}
107010
107011// Pages invokes f for each page of results.
107012// A non-nil error returned from f will halt the iteration.
107013// The provided context supersedes any context provided to the Context method.
107014func (c *NodeGroupsListNodesCall) Pages(ctx context.Context, f func(*NodeGroupsListNodes) error) error {
107015	c.ctx_ = ctx
107016	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
107017	for {
107018		x, err := c.Do()
107019		if err != nil {
107020			return err
107021		}
107022		if err := f(x); err != nil {
107023			return err
107024		}
107025		if x.NextPageToken == "" {
107026			return nil
107027		}
107028		c.PageToken(x.NextPageToken)
107029	}
107030}
107031
107032// method id "compute.nodeGroups.patch":
107033
107034type NodeGroupsPatchCall struct {
107035	s          *Service
107036	project    string
107037	zone       string
107038	nodeGroup  string
107039	nodegroup  *NodeGroup
107040	urlParams_ gensupport.URLParams
107041	ctx_       context.Context
107042	header_    http.Header
107043}
107044
107045// Patch: Updates the specified node group.
107046//
107047// - nodeGroup: Name of the NodeGroup resource to update.
107048// - project: Project ID for this request.
107049// - zone: The name of the zone for this request.
107050func (r *NodeGroupsService) Patch(project string, zone string, nodeGroup string, nodegroup *NodeGroup) *NodeGroupsPatchCall {
107051	c := &NodeGroupsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107052	c.project = project
107053	c.zone = zone
107054	c.nodeGroup = nodeGroup
107055	c.nodegroup = nodegroup
107056	return c
107057}
107058
107059// RequestId sets the optional parameter "requestId": An optional
107060// request ID to identify requests. Specify a unique request ID so that
107061// if you must retry your request, the server will know to ignore the
107062// request if it has already been completed. For example, consider a
107063// situation where you make an initial request and the request times
107064// out. If you make the request again with the same request ID, the
107065// server can check if original operation with the same request ID was
107066// received, and if so, will ignore the second request. This prevents
107067// clients from accidentally creating duplicate commitments. The request
107068// ID must be a valid UUID with the exception that zero UUID is not
107069// supported ( 00000000-0000-0000-0000-000000000000).
107070func (c *NodeGroupsPatchCall) RequestId(requestId string) *NodeGroupsPatchCall {
107071	c.urlParams_.Set("requestId", requestId)
107072	return c
107073}
107074
107075// Fields allows partial responses to be retrieved. See
107076// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107077// for more information.
107078func (c *NodeGroupsPatchCall) Fields(s ...googleapi.Field) *NodeGroupsPatchCall {
107079	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107080	return c
107081}
107082
107083// Context sets the context to be used in this call's Do method. Any
107084// pending HTTP request will be aborted if the provided context is
107085// canceled.
107086func (c *NodeGroupsPatchCall) Context(ctx context.Context) *NodeGroupsPatchCall {
107087	c.ctx_ = ctx
107088	return c
107089}
107090
107091// Header returns an http.Header that can be modified by the caller to
107092// add HTTP headers to the request.
107093func (c *NodeGroupsPatchCall) Header() http.Header {
107094	if c.header_ == nil {
107095		c.header_ = make(http.Header)
107096	}
107097	return c.header_
107098}
107099
107100func (c *NodeGroupsPatchCall) doRequest(alt string) (*http.Response, error) {
107101	reqHeaders := make(http.Header)
107102	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
107103	for k, v := range c.header_ {
107104		reqHeaders[k] = v
107105	}
107106	reqHeaders.Set("User-Agent", c.s.userAgent())
107107	var body io.Reader = nil
107108	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroup)
107109	if err != nil {
107110		return nil, err
107111	}
107112	reqHeaders.Set("Content-Type", "application/json")
107113	c.urlParams_.Set("alt", alt)
107114	c.urlParams_.Set("prettyPrint", "false")
107115	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}")
107116	urls += "?" + c.urlParams_.Encode()
107117	req, err := http.NewRequest("PATCH", urls, body)
107118	if err != nil {
107119		return nil, err
107120	}
107121	req.Header = reqHeaders
107122	googleapi.Expand(req.URL, map[string]string{
107123		"project":   c.project,
107124		"zone":      c.zone,
107125		"nodeGroup": c.nodeGroup,
107126	})
107127	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107128}
107129
107130// Do executes the "compute.nodeGroups.patch" call.
107131// Exactly one of *Operation or error will be non-nil. Any non-2xx
107132// status code is an error. Response headers are in either
107133// *Operation.ServerResponse.Header or (if a response was returned at
107134// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107135// to check whether the returned error was because
107136// http.StatusNotModified was returned.
107137func (c *NodeGroupsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107138	gensupport.SetOptions(c.urlParams_, opts...)
107139	res, err := c.doRequest("json")
107140	if res != nil && res.StatusCode == http.StatusNotModified {
107141		if res.Body != nil {
107142			res.Body.Close()
107143		}
107144		return nil, &googleapi.Error{
107145			Code:   res.StatusCode,
107146			Header: res.Header,
107147		}
107148	}
107149	if err != nil {
107150		return nil, err
107151	}
107152	defer googleapi.CloseBody(res)
107153	if err := googleapi.CheckResponse(res); err != nil {
107154		return nil, err
107155	}
107156	ret := &Operation{
107157		ServerResponse: googleapi.ServerResponse{
107158			Header:         res.Header,
107159			HTTPStatusCode: res.StatusCode,
107160		},
107161	}
107162	target := &ret
107163	if err := gensupport.DecodeResponse(target, res); err != nil {
107164		return nil, err
107165	}
107166	return ret, nil
107167	// {
107168	//   "description": "Updates the specified node group.",
107169	//   "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}",
107170	//   "httpMethod": "PATCH",
107171	//   "id": "compute.nodeGroups.patch",
107172	//   "parameterOrder": [
107173	//     "project",
107174	//     "zone",
107175	//     "nodeGroup"
107176	//   ],
107177	//   "parameters": {
107178	//     "nodeGroup": {
107179	//       "description": "Name of the NodeGroup resource to update.",
107180	//       "location": "path",
107181	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107182	//       "required": true,
107183	//       "type": "string"
107184	//     },
107185	//     "project": {
107186	//       "description": "Project ID for this request.",
107187	//       "location": "path",
107188	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107189	//       "required": true,
107190	//       "type": "string"
107191	//     },
107192	//     "requestId": {
107193	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
107194	//       "location": "query",
107195	//       "type": "string"
107196	//     },
107197	//     "zone": {
107198	//       "description": "The name of the zone for this request.",
107199	//       "location": "path",
107200	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107201	//       "required": true,
107202	//       "type": "string"
107203	//     }
107204	//   },
107205	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}",
107206	//   "request": {
107207	//     "$ref": "NodeGroup"
107208	//   },
107209	//   "response": {
107210	//     "$ref": "Operation"
107211	//   },
107212	//   "scopes": [
107213	//     "https://www.googleapis.com/auth/cloud-platform",
107214	//     "https://www.googleapis.com/auth/compute"
107215	//   ]
107216	// }
107217
107218}
107219
107220// method id "compute.nodeGroups.setIamPolicy":
107221
107222type NodeGroupsSetIamPolicyCall struct {
107223	s                    *Service
107224	project              string
107225	zone                 string
107226	resource             string
107227	zonesetpolicyrequest *ZoneSetPolicyRequest
107228	urlParams_           gensupport.URLParams
107229	ctx_                 context.Context
107230	header_              http.Header
107231}
107232
107233// SetIamPolicy: Sets the access control policy on the specified
107234// resource. Replaces any existing policy.
107235//
107236// - project: Project ID for this request.
107237// - resource: Name or id of the resource for this request.
107238// - zone: The name of the zone for this request.
107239func (r *NodeGroupsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *NodeGroupsSetIamPolicyCall {
107240	c := &NodeGroupsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107241	c.project = project
107242	c.zone = zone
107243	c.resource = resource
107244	c.zonesetpolicyrequest = zonesetpolicyrequest
107245	return c
107246}
107247
107248// Fields allows partial responses to be retrieved. See
107249// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107250// for more information.
107251func (c *NodeGroupsSetIamPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsSetIamPolicyCall {
107252	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107253	return c
107254}
107255
107256// Context sets the context to be used in this call's Do method. Any
107257// pending HTTP request will be aborted if the provided context is
107258// canceled.
107259func (c *NodeGroupsSetIamPolicyCall) Context(ctx context.Context) *NodeGroupsSetIamPolicyCall {
107260	c.ctx_ = ctx
107261	return c
107262}
107263
107264// Header returns an http.Header that can be modified by the caller to
107265// add HTTP headers to the request.
107266func (c *NodeGroupsSetIamPolicyCall) Header() http.Header {
107267	if c.header_ == nil {
107268		c.header_ = make(http.Header)
107269	}
107270	return c.header_
107271}
107272
107273func (c *NodeGroupsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
107274	reqHeaders := make(http.Header)
107275	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
107276	for k, v := range c.header_ {
107277		reqHeaders[k] = v
107278	}
107279	reqHeaders.Set("User-Agent", c.s.userAgent())
107280	var body io.Reader = nil
107281	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
107282	if err != nil {
107283		return nil, err
107284	}
107285	reqHeaders.Set("Content-Type", "application/json")
107286	c.urlParams_.Set("alt", alt)
107287	c.urlParams_.Set("prettyPrint", "false")
107288	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy")
107289	urls += "?" + c.urlParams_.Encode()
107290	req, err := http.NewRequest("POST", urls, body)
107291	if err != nil {
107292		return nil, err
107293	}
107294	req.Header = reqHeaders
107295	googleapi.Expand(req.URL, map[string]string{
107296		"project":  c.project,
107297		"zone":     c.zone,
107298		"resource": c.resource,
107299	})
107300	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107301}
107302
107303// Do executes the "compute.nodeGroups.setIamPolicy" call.
107304// Exactly one of *Policy or error will be non-nil. Any non-2xx status
107305// code is an error. Response headers are in either
107306// *Policy.ServerResponse.Header or (if a response was returned at all)
107307// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
107308// check whether the returned error was because http.StatusNotModified
107309// was returned.
107310func (c *NodeGroupsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
107311	gensupport.SetOptions(c.urlParams_, opts...)
107312	res, err := c.doRequest("json")
107313	if res != nil && res.StatusCode == http.StatusNotModified {
107314		if res.Body != nil {
107315			res.Body.Close()
107316		}
107317		return nil, &googleapi.Error{
107318			Code:   res.StatusCode,
107319			Header: res.Header,
107320		}
107321	}
107322	if err != nil {
107323		return nil, err
107324	}
107325	defer googleapi.CloseBody(res)
107326	if err := googleapi.CheckResponse(res); err != nil {
107327		return nil, err
107328	}
107329	ret := &Policy{
107330		ServerResponse: googleapi.ServerResponse{
107331			Header:         res.Header,
107332			HTTPStatusCode: res.StatusCode,
107333		},
107334	}
107335	target := &ret
107336	if err := gensupport.DecodeResponse(target, res); err != nil {
107337		return nil, err
107338	}
107339	return ret, nil
107340	// {
107341	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
107342	//   "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy",
107343	//   "httpMethod": "POST",
107344	//   "id": "compute.nodeGroups.setIamPolicy",
107345	//   "parameterOrder": [
107346	//     "project",
107347	//     "zone",
107348	//     "resource"
107349	//   ],
107350	//   "parameters": {
107351	//     "project": {
107352	//       "description": "Project ID for this request.",
107353	//       "location": "path",
107354	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107355	//       "required": true,
107356	//       "type": "string"
107357	//     },
107358	//     "resource": {
107359	//       "description": "Name or id of the resource for this request.",
107360	//       "location": "path",
107361	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107362	//       "required": true,
107363	//       "type": "string"
107364	//     },
107365	//     "zone": {
107366	//       "description": "The name of the zone for this request.",
107367	//       "location": "path",
107368	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107369	//       "required": true,
107370	//       "type": "string"
107371	//     }
107372	//   },
107373	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy",
107374	//   "request": {
107375	//     "$ref": "ZoneSetPolicyRequest"
107376	//   },
107377	//   "response": {
107378	//     "$ref": "Policy"
107379	//   },
107380	//   "scopes": [
107381	//     "https://www.googleapis.com/auth/cloud-platform",
107382	//     "https://www.googleapis.com/auth/compute"
107383	//   ]
107384	// }
107385
107386}
107387
107388// method id "compute.nodeGroups.setNodeTemplate":
107389
107390type NodeGroupsSetNodeTemplateCall struct {
107391	s                                *Service
107392	project                          string
107393	zone                             string
107394	nodeGroup                        string
107395	nodegroupssetnodetemplaterequest *NodeGroupsSetNodeTemplateRequest
107396	urlParams_                       gensupport.URLParams
107397	ctx_                             context.Context
107398	header_                          http.Header
107399}
107400
107401// SetNodeTemplate: Updates the node template of the node group.
107402//
107403// - nodeGroup: Name of the NodeGroup resource to update.
107404// - project: Project ID for this request.
107405// - zone: The name of the zone for this request.
107406func (r *NodeGroupsService) SetNodeTemplate(project string, zone string, nodeGroup string, nodegroupssetnodetemplaterequest *NodeGroupsSetNodeTemplateRequest) *NodeGroupsSetNodeTemplateCall {
107407	c := &NodeGroupsSetNodeTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107408	c.project = project
107409	c.zone = zone
107410	c.nodeGroup = nodeGroup
107411	c.nodegroupssetnodetemplaterequest = nodegroupssetnodetemplaterequest
107412	return c
107413}
107414
107415// RequestId sets the optional parameter "requestId": An optional
107416// request ID to identify requests. Specify a unique request ID so that
107417// if you must retry your request, the server will know to ignore the
107418// request if it has already been completed. For example, consider a
107419// situation where you make an initial request and the request times
107420// out. If you make the request again with the same request ID, the
107421// server can check if original operation with the same request ID was
107422// received, and if so, will ignore the second request. This prevents
107423// clients from accidentally creating duplicate commitments. The request
107424// ID must be a valid UUID with the exception that zero UUID is not
107425// supported ( 00000000-0000-0000-0000-000000000000).
107426func (c *NodeGroupsSetNodeTemplateCall) RequestId(requestId string) *NodeGroupsSetNodeTemplateCall {
107427	c.urlParams_.Set("requestId", requestId)
107428	return c
107429}
107430
107431// Fields allows partial responses to be retrieved. See
107432// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107433// for more information.
107434func (c *NodeGroupsSetNodeTemplateCall) Fields(s ...googleapi.Field) *NodeGroupsSetNodeTemplateCall {
107435	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107436	return c
107437}
107438
107439// Context sets the context to be used in this call's Do method. Any
107440// pending HTTP request will be aborted if the provided context is
107441// canceled.
107442func (c *NodeGroupsSetNodeTemplateCall) Context(ctx context.Context) *NodeGroupsSetNodeTemplateCall {
107443	c.ctx_ = ctx
107444	return c
107445}
107446
107447// Header returns an http.Header that can be modified by the caller to
107448// add HTTP headers to the request.
107449func (c *NodeGroupsSetNodeTemplateCall) Header() http.Header {
107450	if c.header_ == nil {
107451		c.header_ = make(http.Header)
107452	}
107453	return c.header_
107454}
107455
107456func (c *NodeGroupsSetNodeTemplateCall) doRequest(alt string) (*http.Response, error) {
107457	reqHeaders := make(http.Header)
107458	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
107459	for k, v := range c.header_ {
107460		reqHeaders[k] = v
107461	}
107462	reqHeaders.Set("User-Agent", c.s.userAgent())
107463	var body io.Reader = nil
107464	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupssetnodetemplaterequest)
107465	if err != nil {
107466		return nil, err
107467	}
107468	reqHeaders.Set("Content-Type", "application/json")
107469	c.urlParams_.Set("alt", alt)
107470	c.urlParams_.Set("prettyPrint", "false")
107471	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate")
107472	urls += "?" + c.urlParams_.Encode()
107473	req, err := http.NewRequest("POST", urls, body)
107474	if err != nil {
107475		return nil, err
107476	}
107477	req.Header = reqHeaders
107478	googleapi.Expand(req.URL, map[string]string{
107479		"project":   c.project,
107480		"zone":      c.zone,
107481		"nodeGroup": c.nodeGroup,
107482	})
107483	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107484}
107485
107486// Do executes the "compute.nodeGroups.setNodeTemplate" call.
107487// Exactly one of *Operation or error will be non-nil. Any non-2xx
107488// status code is an error. Response headers are in either
107489// *Operation.ServerResponse.Header or (if a response was returned at
107490// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107491// to check whether the returned error was because
107492// http.StatusNotModified was returned.
107493func (c *NodeGroupsSetNodeTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107494	gensupport.SetOptions(c.urlParams_, opts...)
107495	res, err := c.doRequest("json")
107496	if res != nil && res.StatusCode == http.StatusNotModified {
107497		if res.Body != nil {
107498			res.Body.Close()
107499		}
107500		return nil, &googleapi.Error{
107501			Code:   res.StatusCode,
107502			Header: res.Header,
107503		}
107504	}
107505	if err != nil {
107506		return nil, err
107507	}
107508	defer googleapi.CloseBody(res)
107509	if err := googleapi.CheckResponse(res); err != nil {
107510		return nil, err
107511	}
107512	ret := &Operation{
107513		ServerResponse: googleapi.ServerResponse{
107514			Header:         res.Header,
107515			HTTPStatusCode: res.StatusCode,
107516		},
107517	}
107518	target := &ret
107519	if err := gensupport.DecodeResponse(target, res); err != nil {
107520		return nil, err
107521	}
107522	return ret, nil
107523	// {
107524	//   "description": "Updates the node template of the node group.",
107525	//   "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate",
107526	//   "httpMethod": "POST",
107527	//   "id": "compute.nodeGroups.setNodeTemplate",
107528	//   "parameterOrder": [
107529	//     "project",
107530	//     "zone",
107531	//     "nodeGroup"
107532	//   ],
107533	//   "parameters": {
107534	//     "nodeGroup": {
107535	//       "description": "Name of the NodeGroup resource to update.",
107536	//       "location": "path",
107537	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107538	//       "required": true,
107539	//       "type": "string"
107540	//     },
107541	//     "project": {
107542	//       "description": "Project ID for this request.",
107543	//       "location": "path",
107544	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107545	//       "required": true,
107546	//       "type": "string"
107547	//     },
107548	//     "requestId": {
107549	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
107550	//       "location": "query",
107551	//       "type": "string"
107552	//     },
107553	//     "zone": {
107554	//       "description": "The name of the zone for this request.",
107555	//       "location": "path",
107556	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107557	//       "required": true,
107558	//       "type": "string"
107559	//     }
107560	//   },
107561	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate",
107562	//   "request": {
107563	//     "$ref": "NodeGroupsSetNodeTemplateRequest"
107564	//   },
107565	//   "response": {
107566	//     "$ref": "Operation"
107567	//   },
107568	//   "scopes": [
107569	//     "https://www.googleapis.com/auth/cloud-platform",
107570	//     "https://www.googleapis.com/auth/compute"
107571	//   ]
107572	// }
107573
107574}
107575
107576// method id "compute.nodeGroups.testIamPermissions":
107577
107578type NodeGroupsTestIamPermissionsCall struct {
107579	s                      *Service
107580	project                string
107581	zone                   string
107582	resource               string
107583	testpermissionsrequest *TestPermissionsRequest
107584	urlParams_             gensupport.URLParams
107585	ctx_                   context.Context
107586	header_                http.Header
107587}
107588
107589// TestIamPermissions: Returns permissions that a caller has on the
107590// specified resource.
107591//
107592// - project: Project ID for this request.
107593// - resource: Name or id of the resource for this request.
107594// - zone: The name of the zone for this request.
107595func (r *NodeGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *NodeGroupsTestIamPermissionsCall {
107596	c := &NodeGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107597	c.project = project
107598	c.zone = zone
107599	c.resource = resource
107600	c.testpermissionsrequest = testpermissionsrequest
107601	return c
107602}
107603
107604// Fields allows partial responses to be retrieved. See
107605// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107606// for more information.
107607func (c *NodeGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NodeGroupsTestIamPermissionsCall {
107608	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107609	return c
107610}
107611
107612// Context sets the context to be used in this call's Do method. Any
107613// pending HTTP request will be aborted if the provided context is
107614// canceled.
107615func (c *NodeGroupsTestIamPermissionsCall) Context(ctx context.Context) *NodeGroupsTestIamPermissionsCall {
107616	c.ctx_ = ctx
107617	return c
107618}
107619
107620// Header returns an http.Header that can be modified by the caller to
107621// add HTTP headers to the request.
107622func (c *NodeGroupsTestIamPermissionsCall) Header() http.Header {
107623	if c.header_ == nil {
107624		c.header_ = make(http.Header)
107625	}
107626	return c.header_
107627}
107628
107629func (c *NodeGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
107630	reqHeaders := make(http.Header)
107631	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
107632	for k, v := range c.header_ {
107633		reqHeaders[k] = v
107634	}
107635	reqHeaders.Set("User-Agent", c.s.userAgent())
107636	var body io.Reader = nil
107637	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
107638	if err != nil {
107639		return nil, err
107640	}
107641	reqHeaders.Set("Content-Type", "application/json")
107642	c.urlParams_.Set("alt", alt)
107643	c.urlParams_.Set("prettyPrint", "false")
107644	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions")
107645	urls += "?" + c.urlParams_.Encode()
107646	req, err := http.NewRequest("POST", urls, body)
107647	if err != nil {
107648		return nil, err
107649	}
107650	req.Header = reqHeaders
107651	googleapi.Expand(req.URL, map[string]string{
107652		"project":  c.project,
107653		"zone":     c.zone,
107654		"resource": c.resource,
107655	})
107656	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107657}
107658
107659// Do executes the "compute.nodeGroups.testIamPermissions" call.
107660// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
107661// non-2xx status code is an error. Response headers are in either
107662// *TestPermissionsResponse.ServerResponse.Header or (if a response was
107663// returned at all) in error.(*googleapi.Error).Header. Use
107664// googleapi.IsNotModified to check whether the returned error was
107665// because http.StatusNotModified was returned.
107666func (c *NodeGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
107667	gensupport.SetOptions(c.urlParams_, opts...)
107668	res, err := c.doRequest("json")
107669	if res != nil && res.StatusCode == http.StatusNotModified {
107670		if res.Body != nil {
107671			res.Body.Close()
107672		}
107673		return nil, &googleapi.Error{
107674			Code:   res.StatusCode,
107675			Header: res.Header,
107676		}
107677	}
107678	if err != nil {
107679		return nil, err
107680	}
107681	defer googleapi.CloseBody(res)
107682	if err := googleapi.CheckResponse(res); err != nil {
107683		return nil, err
107684	}
107685	ret := &TestPermissionsResponse{
107686		ServerResponse: googleapi.ServerResponse{
107687			Header:         res.Header,
107688			HTTPStatusCode: res.StatusCode,
107689		},
107690	}
107691	target := &ret
107692	if err := gensupport.DecodeResponse(target, res); err != nil {
107693		return nil, err
107694	}
107695	return ret, nil
107696	// {
107697	//   "description": "Returns permissions that a caller has on the specified resource.",
107698	//   "flatPath": "projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions",
107699	//   "httpMethod": "POST",
107700	//   "id": "compute.nodeGroups.testIamPermissions",
107701	//   "parameterOrder": [
107702	//     "project",
107703	//     "zone",
107704	//     "resource"
107705	//   ],
107706	//   "parameters": {
107707	//     "project": {
107708	//       "description": "Project ID for this request.",
107709	//       "location": "path",
107710	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107711	//       "required": true,
107712	//       "type": "string"
107713	//     },
107714	//     "resource": {
107715	//       "description": "Name or id of the resource for this request.",
107716	//       "location": "path",
107717	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107718	//       "required": true,
107719	//       "type": "string"
107720	//     },
107721	//     "zone": {
107722	//       "description": "The name of the zone for this request.",
107723	//       "location": "path",
107724	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107725	//       "required": true,
107726	//       "type": "string"
107727	//     }
107728	//   },
107729	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions",
107730	//   "request": {
107731	//     "$ref": "TestPermissionsRequest"
107732	//   },
107733	//   "response": {
107734	//     "$ref": "TestPermissionsResponse"
107735	//   },
107736	//   "scopes": [
107737	//     "https://www.googleapis.com/auth/cloud-platform",
107738	//     "https://www.googleapis.com/auth/compute",
107739	//     "https://www.googleapis.com/auth/compute.readonly"
107740	//   ]
107741	// }
107742
107743}
107744
107745// method id "compute.nodeTemplates.aggregatedList":
107746
107747type NodeTemplatesAggregatedListCall struct {
107748	s            *Service
107749	project      string
107750	urlParams_   gensupport.URLParams
107751	ifNoneMatch_ string
107752	ctx_         context.Context
107753	header_      http.Header
107754}
107755
107756// AggregatedList: Retrieves an aggregated list of node templates.
107757//
107758// - project: Project ID for this request.
107759func (r *NodeTemplatesService) AggregatedList(project string) *NodeTemplatesAggregatedListCall {
107760	c := &NodeTemplatesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107761	c.project = project
107762	return c
107763}
107764
107765// Filter sets the optional parameter "filter": A filter expression that
107766// filters resources listed in the response. The expression must specify
107767// the field name, a comparison operator, and the value that you want to
107768// use for filtering. The value must be a string, a number, or a
107769// boolean. The comparison operator must be either `=`, `!=`, `>`, or
107770// `<`. For example, if you are filtering Compute Engine instances, you
107771// can exclude instances named `example-instance` by specifying `name !=
107772// example-instance`. You can also filter nested fields. For example,
107773// you could specify `scheduling.automaticRestart = false` to include
107774// instances only if they are not scheduled for automatic restarts. You
107775// can use filtering on nested fields to filter based on resource
107776// labels. To filter on multiple expressions, provide each separate
107777// expression within parentheses. For example: ```
107778// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
107779// ``` By default, each expression is an `AND` expression. However, you
107780// can include `AND` and `OR` expressions explicitly. For example: ```
107781// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
107782// AND (scheduling.automaticRestart = true) ```
107783func (c *NodeTemplatesAggregatedListCall) Filter(filter string) *NodeTemplatesAggregatedListCall {
107784	c.urlParams_.Set("filter", filter)
107785	return c
107786}
107787
107788// IncludeAllScopes sets the optional parameter "includeAllScopes":
107789// Indicates whether every visible scope for each scope type (zone,
107790// region, global) should be included in the response. For new resource
107791// types added after this field, the flag has no effect as new resource
107792// types will always include every visible scope for each scope type in
107793// response. For resource types which predate this field, if this flag
107794// is omitted or false, only scopes of the scope types where the
107795// resource type is expected to be found will be included.
107796func (c *NodeTemplatesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeTemplatesAggregatedListCall {
107797	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
107798	return c
107799}
107800
107801// MaxResults sets the optional parameter "maxResults": The maximum
107802// number of results per page that should be returned. If the number of
107803// available results is larger than `maxResults`, Compute Engine returns
107804// a `nextPageToken` that can be used to get the next page of results in
107805// subsequent list requests. Acceptable values are `0` to `500`,
107806// inclusive. (Default: `500`)
107807func (c *NodeTemplatesAggregatedListCall) MaxResults(maxResults int64) *NodeTemplatesAggregatedListCall {
107808	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
107809	return c
107810}
107811
107812// OrderBy sets the optional parameter "orderBy": Sorts list results by
107813// a certain order. By default, results are returned in alphanumerical
107814// order based on the resource name. You can also sort results in
107815// descending order based on the creation timestamp using
107816// `orderBy="creationTimestamp desc". This sorts results based on the
107817// `creationTimestamp` field in reverse chronological order (newest
107818// result first). Use this to sort resources like operations so that the
107819// newest operation is returned first. Currently, only sorting by `name`
107820// or `creationTimestamp desc` is supported.
107821func (c *NodeTemplatesAggregatedListCall) OrderBy(orderBy string) *NodeTemplatesAggregatedListCall {
107822	c.urlParams_.Set("orderBy", orderBy)
107823	return c
107824}
107825
107826// PageToken sets the optional parameter "pageToken": Specifies a page
107827// token to use. Set `pageToken` to the `nextPageToken` returned by a
107828// previous list request to get the next page of results.
107829func (c *NodeTemplatesAggregatedListCall) PageToken(pageToken string) *NodeTemplatesAggregatedListCall {
107830	c.urlParams_.Set("pageToken", pageToken)
107831	return c
107832}
107833
107834// ReturnPartialSuccess sets the optional parameter
107835// "returnPartialSuccess": Opt-in for partial success behavior which
107836// provides partial results in case of failure. The default value is
107837// false.
107838func (c *NodeTemplatesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTemplatesAggregatedListCall {
107839	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
107840	return c
107841}
107842
107843// Fields allows partial responses to be retrieved. See
107844// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107845// for more information.
107846func (c *NodeTemplatesAggregatedListCall) Fields(s ...googleapi.Field) *NodeTemplatesAggregatedListCall {
107847	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107848	return c
107849}
107850
107851// IfNoneMatch sets the optional parameter which makes the operation
107852// fail if the object's ETag matches the given value. This is useful for
107853// getting updates only after the object has changed since the last
107854// request. Use googleapi.IsNotModified to check whether the response
107855// error from Do is the result of In-None-Match.
107856func (c *NodeTemplatesAggregatedListCall) IfNoneMatch(entityTag string) *NodeTemplatesAggregatedListCall {
107857	c.ifNoneMatch_ = entityTag
107858	return c
107859}
107860
107861// Context sets the context to be used in this call's Do method. Any
107862// pending HTTP request will be aborted if the provided context is
107863// canceled.
107864func (c *NodeTemplatesAggregatedListCall) Context(ctx context.Context) *NodeTemplatesAggregatedListCall {
107865	c.ctx_ = ctx
107866	return c
107867}
107868
107869// Header returns an http.Header that can be modified by the caller to
107870// add HTTP headers to the request.
107871func (c *NodeTemplatesAggregatedListCall) Header() http.Header {
107872	if c.header_ == nil {
107873		c.header_ = make(http.Header)
107874	}
107875	return c.header_
107876}
107877
107878func (c *NodeTemplatesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
107879	reqHeaders := make(http.Header)
107880	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
107881	for k, v := range c.header_ {
107882		reqHeaders[k] = v
107883	}
107884	reqHeaders.Set("User-Agent", c.s.userAgent())
107885	if c.ifNoneMatch_ != "" {
107886		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
107887	}
107888	var body io.Reader = nil
107889	c.urlParams_.Set("alt", alt)
107890	c.urlParams_.Set("prettyPrint", "false")
107891	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/nodeTemplates")
107892	urls += "?" + c.urlParams_.Encode()
107893	req, err := http.NewRequest("GET", urls, body)
107894	if err != nil {
107895		return nil, err
107896	}
107897	req.Header = reqHeaders
107898	googleapi.Expand(req.URL, map[string]string{
107899		"project": c.project,
107900	})
107901	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107902}
107903
107904// Do executes the "compute.nodeTemplates.aggregatedList" call.
107905// Exactly one of *NodeTemplateAggregatedList or error will be non-nil.
107906// Any non-2xx status code is an error. Response headers are in either
107907// *NodeTemplateAggregatedList.ServerResponse.Header or (if a response
107908// was returned at all) in error.(*googleapi.Error).Header. Use
107909// googleapi.IsNotModified to check whether the returned error was
107910// because http.StatusNotModified was returned.
107911func (c *NodeTemplatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeTemplateAggregatedList, error) {
107912	gensupport.SetOptions(c.urlParams_, opts...)
107913	res, err := c.doRequest("json")
107914	if res != nil && res.StatusCode == http.StatusNotModified {
107915		if res.Body != nil {
107916			res.Body.Close()
107917		}
107918		return nil, &googleapi.Error{
107919			Code:   res.StatusCode,
107920			Header: res.Header,
107921		}
107922	}
107923	if err != nil {
107924		return nil, err
107925	}
107926	defer googleapi.CloseBody(res)
107927	if err := googleapi.CheckResponse(res); err != nil {
107928		return nil, err
107929	}
107930	ret := &NodeTemplateAggregatedList{
107931		ServerResponse: googleapi.ServerResponse{
107932			Header:         res.Header,
107933			HTTPStatusCode: res.StatusCode,
107934		},
107935	}
107936	target := &ret
107937	if err := gensupport.DecodeResponse(target, res); err != nil {
107938		return nil, err
107939	}
107940	return ret, nil
107941	// {
107942	//   "description": "Retrieves an aggregated list of node templates.",
107943	//   "flatPath": "projects/{project}/aggregated/nodeTemplates",
107944	//   "httpMethod": "GET",
107945	//   "id": "compute.nodeTemplates.aggregatedList",
107946	//   "parameterOrder": [
107947	//     "project"
107948	//   ],
107949	//   "parameters": {
107950	//     "filter": {
107951	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
107952	//       "location": "query",
107953	//       "type": "string"
107954	//     },
107955	//     "includeAllScopes": {
107956	//       "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.",
107957	//       "location": "query",
107958	//       "type": "boolean"
107959	//     },
107960	//     "maxResults": {
107961	//       "default": "500",
107962	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
107963	//       "format": "uint32",
107964	//       "location": "query",
107965	//       "minimum": "0",
107966	//       "type": "integer"
107967	//     },
107968	//     "orderBy": {
107969	//       "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.",
107970	//       "location": "query",
107971	//       "type": "string"
107972	//     },
107973	//     "pageToken": {
107974	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
107975	//       "location": "query",
107976	//       "type": "string"
107977	//     },
107978	//     "project": {
107979	//       "description": "Project ID for this request.",
107980	//       "location": "path",
107981	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107982	//       "required": true,
107983	//       "type": "string"
107984	//     },
107985	//     "returnPartialSuccess": {
107986	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
107987	//       "location": "query",
107988	//       "type": "boolean"
107989	//     }
107990	//   },
107991	//   "path": "projects/{project}/aggregated/nodeTemplates",
107992	//   "response": {
107993	//     "$ref": "NodeTemplateAggregatedList"
107994	//   },
107995	//   "scopes": [
107996	//     "https://www.googleapis.com/auth/cloud-platform",
107997	//     "https://www.googleapis.com/auth/compute",
107998	//     "https://www.googleapis.com/auth/compute.readonly"
107999	//   ]
108000	// }
108001
108002}
108003
108004// Pages invokes f for each page of results.
108005// A non-nil error returned from f will halt the iteration.
108006// The provided context supersedes any context provided to the Context method.
108007func (c *NodeTemplatesAggregatedListCall) Pages(ctx context.Context, f func(*NodeTemplateAggregatedList) error) error {
108008	c.ctx_ = ctx
108009	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
108010	for {
108011		x, err := c.Do()
108012		if err != nil {
108013			return err
108014		}
108015		if err := f(x); err != nil {
108016			return err
108017		}
108018		if x.NextPageToken == "" {
108019			return nil
108020		}
108021		c.PageToken(x.NextPageToken)
108022	}
108023}
108024
108025// method id "compute.nodeTemplates.delete":
108026
108027type NodeTemplatesDeleteCall struct {
108028	s            *Service
108029	project      string
108030	region       string
108031	nodeTemplate string
108032	urlParams_   gensupport.URLParams
108033	ctx_         context.Context
108034	header_      http.Header
108035}
108036
108037// Delete: Deletes the specified NodeTemplate resource.
108038//
108039// - nodeTemplate: Name of the NodeTemplate resource to delete.
108040// - project: Project ID for this request.
108041// - region: The name of the region for this request.
108042func (r *NodeTemplatesService) Delete(project string, region string, nodeTemplate string) *NodeTemplatesDeleteCall {
108043	c := &NodeTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108044	c.project = project
108045	c.region = region
108046	c.nodeTemplate = nodeTemplate
108047	return c
108048}
108049
108050// RequestId sets the optional parameter "requestId": An optional
108051// request ID to identify requests. Specify a unique request ID so that
108052// if you must retry your request, the server will know to ignore the
108053// request if it has already been completed. For example, consider a
108054// situation where you make an initial request and the request times
108055// out. If you make the request again with the same request ID, the
108056// server can check if original operation with the same request ID was
108057// received, and if so, will ignore the second request. This prevents
108058// clients from accidentally creating duplicate commitments. The request
108059// ID must be a valid UUID with the exception that zero UUID is not
108060// supported ( 00000000-0000-0000-0000-000000000000).
108061func (c *NodeTemplatesDeleteCall) RequestId(requestId string) *NodeTemplatesDeleteCall {
108062	c.urlParams_.Set("requestId", requestId)
108063	return c
108064}
108065
108066// Fields allows partial responses to be retrieved. See
108067// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108068// for more information.
108069func (c *NodeTemplatesDeleteCall) Fields(s ...googleapi.Field) *NodeTemplatesDeleteCall {
108070	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108071	return c
108072}
108073
108074// Context sets the context to be used in this call's Do method. Any
108075// pending HTTP request will be aborted if the provided context is
108076// canceled.
108077func (c *NodeTemplatesDeleteCall) Context(ctx context.Context) *NodeTemplatesDeleteCall {
108078	c.ctx_ = ctx
108079	return c
108080}
108081
108082// Header returns an http.Header that can be modified by the caller to
108083// add HTTP headers to the request.
108084func (c *NodeTemplatesDeleteCall) Header() http.Header {
108085	if c.header_ == nil {
108086		c.header_ = make(http.Header)
108087	}
108088	return c.header_
108089}
108090
108091func (c *NodeTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) {
108092	reqHeaders := make(http.Header)
108093	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
108094	for k, v := range c.header_ {
108095		reqHeaders[k] = v
108096	}
108097	reqHeaders.Set("User-Agent", c.s.userAgent())
108098	var body io.Reader = nil
108099	c.urlParams_.Set("alt", alt)
108100	c.urlParams_.Set("prettyPrint", "false")
108101	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}")
108102	urls += "?" + c.urlParams_.Encode()
108103	req, err := http.NewRequest("DELETE", urls, body)
108104	if err != nil {
108105		return nil, err
108106	}
108107	req.Header = reqHeaders
108108	googleapi.Expand(req.URL, map[string]string{
108109		"project":      c.project,
108110		"region":       c.region,
108111		"nodeTemplate": c.nodeTemplate,
108112	})
108113	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108114}
108115
108116// Do executes the "compute.nodeTemplates.delete" call.
108117// Exactly one of *Operation or error will be non-nil. Any non-2xx
108118// status code is an error. Response headers are in either
108119// *Operation.ServerResponse.Header or (if a response was returned at
108120// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108121// to check whether the returned error was because
108122// http.StatusNotModified was returned.
108123func (c *NodeTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
108124	gensupport.SetOptions(c.urlParams_, opts...)
108125	res, err := c.doRequest("json")
108126	if res != nil && res.StatusCode == http.StatusNotModified {
108127		if res.Body != nil {
108128			res.Body.Close()
108129		}
108130		return nil, &googleapi.Error{
108131			Code:   res.StatusCode,
108132			Header: res.Header,
108133		}
108134	}
108135	if err != nil {
108136		return nil, err
108137	}
108138	defer googleapi.CloseBody(res)
108139	if err := googleapi.CheckResponse(res); err != nil {
108140		return nil, err
108141	}
108142	ret := &Operation{
108143		ServerResponse: googleapi.ServerResponse{
108144			Header:         res.Header,
108145			HTTPStatusCode: res.StatusCode,
108146		},
108147	}
108148	target := &ret
108149	if err := gensupport.DecodeResponse(target, res); err != nil {
108150		return nil, err
108151	}
108152	return ret, nil
108153	// {
108154	//   "description": "Deletes the specified NodeTemplate resource.",
108155	//   "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
108156	//   "httpMethod": "DELETE",
108157	//   "id": "compute.nodeTemplates.delete",
108158	//   "parameterOrder": [
108159	//     "project",
108160	//     "region",
108161	//     "nodeTemplate"
108162	//   ],
108163	//   "parameters": {
108164	//     "nodeTemplate": {
108165	//       "description": "Name of the NodeTemplate resource to delete.",
108166	//       "location": "path",
108167	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
108168	//       "required": true,
108169	//       "type": "string"
108170	//     },
108171	//     "project": {
108172	//       "description": "Project ID for this request.",
108173	//       "location": "path",
108174	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108175	//       "required": true,
108176	//       "type": "string"
108177	//     },
108178	//     "region": {
108179	//       "description": "The name of the region for this request.",
108180	//       "location": "path",
108181	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108182	//       "required": true,
108183	//       "type": "string"
108184	//     },
108185	//     "requestId": {
108186	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
108187	//       "location": "query",
108188	//       "type": "string"
108189	//     }
108190	//   },
108191	//   "path": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
108192	//   "response": {
108193	//     "$ref": "Operation"
108194	//   },
108195	//   "scopes": [
108196	//     "https://www.googleapis.com/auth/cloud-platform",
108197	//     "https://www.googleapis.com/auth/compute"
108198	//   ]
108199	// }
108200
108201}
108202
108203// method id "compute.nodeTemplates.get":
108204
108205type NodeTemplatesGetCall struct {
108206	s            *Service
108207	project      string
108208	region       string
108209	nodeTemplate string
108210	urlParams_   gensupport.URLParams
108211	ifNoneMatch_ string
108212	ctx_         context.Context
108213	header_      http.Header
108214}
108215
108216// Get: Returns the specified node template. Gets a list of available
108217// node templates by making a list() request.
108218//
108219// - nodeTemplate: Name of the node template to return.
108220// - project: Project ID for this request.
108221// - region: The name of the region for this request.
108222func (r *NodeTemplatesService) Get(project string, region string, nodeTemplate string) *NodeTemplatesGetCall {
108223	c := &NodeTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108224	c.project = project
108225	c.region = region
108226	c.nodeTemplate = nodeTemplate
108227	return c
108228}
108229
108230// Fields allows partial responses to be retrieved. See
108231// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108232// for more information.
108233func (c *NodeTemplatesGetCall) Fields(s ...googleapi.Field) *NodeTemplatesGetCall {
108234	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108235	return c
108236}
108237
108238// IfNoneMatch sets the optional parameter which makes the operation
108239// fail if the object's ETag matches the given value. This is useful for
108240// getting updates only after the object has changed since the last
108241// request. Use googleapi.IsNotModified to check whether the response
108242// error from Do is the result of In-None-Match.
108243func (c *NodeTemplatesGetCall) IfNoneMatch(entityTag string) *NodeTemplatesGetCall {
108244	c.ifNoneMatch_ = entityTag
108245	return c
108246}
108247
108248// Context sets the context to be used in this call's Do method. Any
108249// pending HTTP request will be aborted if the provided context is
108250// canceled.
108251func (c *NodeTemplatesGetCall) Context(ctx context.Context) *NodeTemplatesGetCall {
108252	c.ctx_ = ctx
108253	return c
108254}
108255
108256// Header returns an http.Header that can be modified by the caller to
108257// add HTTP headers to the request.
108258func (c *NodeTemplatesGetCall) Header() http.Header {
108259	if c.header_ == nil {
108260		c.header_ = make(http.Header)
108261	}
108262	return c.header_
108263}
108264
108265func (c *NodeTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
108266	reqHeaders := make(http.Header)
108267	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
108268	for k, v := range c.header_ {
108269		reqHeaders[k] = v
108270	}
108271	reqHeaders.Set("User-Agent", c.s.userAgent())
108272	if c.ifNoneMatch_ != "" {
108273		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108274	}
108275	var body io.Reader = nil
108276	c.urlParams_.Set("alt", alt)
108277	c.urlParams_.Set("prettyPrint", "false")
108278	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}")
108279	urls += "?" + c.urlParams_.Encode()
108280	req, err := http.NewRequest("GET", urls, body)
108281	if err != nil {
108282		return nil, err
108283	}
108284	req.Header = reqHeaders
108285	googleapi.Expand(req.URL, map[string]string{
108286		"project":      c.project,
108287		"region":       c.region,
108288		"nodeTemplate": c.nodeTemplate,
108289	})
108290	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108291}
108292
108293// Do executes the "compute.nodeTemplates.get" call.
108294// Exactly one of *NodeTemplate or error will be non-nil. Any non-2xx
108295// status code is an error. Response headers are in either
108296// *NodeTemplate.ServerResponse.Header or (if a response was returned at
108297// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108298// to check whether the returned error was because
108299// http.StatusNotModified was returned.
108300func (c *NodeTemplatesGetCall) Do(opts ...googleapi.CallOption) (*NodeTemplate, error) {
108301	gensupport.SetOptions(c.urlParams_, opts...)
108302	res, err := c.doRequest("json")
108303	if res != nil && res.StatusCode == http.StatusNotModified {
108304		if res.Body != nil {
108305			res.Body.Close()
108306		}
108307		return nil, &googleapi.Error{
108308			Code:   res.StatusCode,
108309			Header: res.Header,
108310		}
108311	}
108312	if err != nil {
108313		return nil, err
108314	}
108315	defer googleapi.CloseBody(res)
108316	if err := googleapi.CheckResponse(res); err != nil {
108317		return nil, err
108318	}
108319	ret := &NodeTemplate{
108320		ServerResponse: googleapi.ServerResponse{
108321			Header:         res.Header,
108322			HTTPStatusCode: res.StatusCode,
108323		},
108324	}
108325	target := &ret
108326	if err := gensupport.DecodeResponse(target, res); err != nil {
108327		return nil, err
108328	}
108329	return ret, nil
108330	// {
108331	//   "description": "Returns the specified node template. Gets a list of available node templates by making a list() request.",
108332	//   "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
108333	//   "httpMethod": "GET",
108334	//   "id": "compute.nodeTemplates.get",
108335	//   "parameterOrder": [
108336	//     "project",
108337	//     "region",
108338	//     "nodeTemplate"
108339	//   ],
108340	//   "parameters": {
108341	//     "nodeTemplate": {
108342	//       "description": "Name of the node template to return.",
108343	//       "location": "path",
108344	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
108345	//       "required": true,
108346	//       "type": "string"
108347	//     },
108348	//     "project": {
108349	//       "description": "Project ID for this request.",
108350	//       "location": "path",
108351	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108352	//       "required": true,
108353	//       "type": "string"
108354	//     },
108355	//     "region": {
108356	//       "description": "The name of the region for this request.",
108357	//       "location": "path",
108358	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108359	//       "required": true,
108360	//       "type": "string"
108361	//     }
108362	//   },
108363	//   "path": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
108364	//   "response": {
108365	//     "$ref": "NodeTemplate"
108366	//   },
108367	//   "scopes": [
108368	//     "https://www.googleapis.com/auth/cloud-platform",
108369	//     "https://www.googleapis.com/auth/compute",
108370	//     "https://www.googleapis.com/auth/compute.readonly"
108371	//   ]
108372	// }
108373
108374}
108375
108376// method id "compute.nodeTemplates.getIamPolicy":
108377
108378type NodeTemplatesGetIamPolicyCall struct {
108379	s            *Service
108380	project      string
108381	region       string
108382	resource     string
108383	urlParams_   gensupport.URLParams
108384	ifNoneMatch_ string
108385	ctx_         context.Context
108386	header_      http.Header
108387}
108388
108389// GetIamPolicy: Gets the access control policy for a resource. May be
108390// empty if no such policy or resource exists.
108391//
108392// - project: Project ID for this request.
108393// - region: The name of the region for this request.
108394// - resource: Name or id of the resource for this request.
108395func (r *NodeTemplatesService) GetIamPolicy(project string, region string, resource string) *NodeTemplatesGetIamPolicyCall {
108396	c := &NodeTemplatesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108397	c.project = project
108398	c.region = region
108399	c.resource = resource
108400	return c
108401}
108402
108403// OptionsRequestedPolicyVersion sets the optional parameter
108404// "optionsRequestedPolicyVersion": Requested IAM Policy version.
108405func (c *NodeTemplatesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *NodeTemplatesGetIamPolicyCall {
108406	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
108407	return c
108408}
108409
108410// Fields allows partial responses to be retrieved. See
108411// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108412// for more information.
108413func (c *NodeTemplatesGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeTemplatesGetIamPolicyCall {
108414	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108415	return c
108416}
108417
108418// IfNoneMatch sets the optional parameter which makes the operation
108419// fail if the object's ETag matches the given value. This is useful for
108420// getting updates only after the object has changed since the last
108421// request. Use googleapi.IsNotModified to check whether the response
108422// error from Do is the result of In-None-Match.
108423func (c *NodeTemplatesGetIamPolicyCall) IfNoneMatch(entityTag string) *NodeTemplatesGetIamPolicyCall {
108424	c.ifNoneMatch_ = entityTag
108425	return c
108426}
108427
108428// Context sets the context to be used in this call's Do method. Any
108429// pending HTTP request will be aborted if the provided context is
108430// canceled.
108431func (c *NodeTemplatesGetIamPolicyCall) Context(ctx context.Context) *NodeTemplatesGetIamPolicyCall {
108432	c.ctx_ = ctx
108433	return c
108434}
108435
108436// Header returns an http.Header that can be modified by the caller to
108437// add HTTP headers to the request.
108438func (c *NodeTemplatesGetIamPolicyCall) Header() http.Header {
108439	if c.header_ == nil {
108440		c.header_ = make(http.Header)
108441	}
108442	return c.header_
108443}
108444
108445func (c *NodeTemplatesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
108446	reqHeaders := make(http.Header)
108447	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
108448	for k, v := range c.header_ {
108449		reqHeaders[k] = v
108450	}
108451	reqHeaders.Set("User-Agent", c.s.userAgent())
108452	if c.ifNoneMatch_ != "" {
108453		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108454	}
108455	var body io.Reader = nil
108456	c.urlParams_.Set("alt", alt)
108457	c.urlParams_.Set("prettyPrint", "false")
108458	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy")
108459	urls += "?" + c.urlParams_.Encode()
108460	req, err := http.NewRequest("GET", urls, body)
108461	if err != nil {
108462		return nil, err
108463	}
108464	req.Header = reqHeaders
108465	googleapi.Expand(req.URL, map[string]string{
108466		"project":  c.project,
108467		"region":   c.region,
108468		"resource": c.resource,
108469	})
108470	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108471}
108472
108473// Do executes the "compute.nodeTemplates.getIamPolicy" call.
108474// Exactly one of *Policy or error will be non-nil. Any non-2xx status
108475// code is an error. Response headers are in either
108476// *Policy.ServerResponse.Header or (if a response was returned at all)
108477// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
108478// check whether the returned error was because http.StatusNotModified
108479// was returned.
108480func (c *NodeTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
108481	gensupport.SetOptions(c.urlParams_, opts...)
108482	res, err := c.doRequest("json")
108483	if res != nil && res.StatusCode == http.StatusNotModified {
108484		if res.Body != nil {
108485			res.Body.Close()
108486		}
108487		return nil, &googleapi.Error{
108488			Code:   res.StatusCode,
108489			Header: res.Header,
108490		}
108491	}
108492	if err != nil {
108493		return nil, err
108494	}
108495	defer googleapi.CloseBody(res)
108496	if err := googleapi.CheckResponse(res); err != nil {
108497		return nil, err
108498	}
108499	ret := &Policy{
108500		ServerResponse: googleapi.ServerResponse{
108501			Header:         res.Header,
108502			HTTPStatusCode: res.StatusCode,
108503		},
108504	}
108505	target := &ret
108506	if err := gensupport.DecodeResponse(target, res); err != nil {
108507		return nil, err
108508	}
108509	return ret, nil
108510	// {
108511	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
108512	//   "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy",
108513	//   "httpMethod": "GET",
108514	//   "id": "compute.nodeTemplates.getIamPolicy",
108515	//   "parameterOrder": [
108516	//     "project",
108517	//     "region",
108518	//     "resource"
108519	//   ],
108520	//   "parameters": {
108521	//     "optionsRequestedPolicyVersion": {
108522	//       "description": "Requested IAM Policy version.",
108523	//       "format": "int32",
108524	//       "location": "query",
108525	//       "type": "integer"
108526	//     },
108527	//     "project": {
108528	//       "description": "Project ID for this request.",
108529	//       "location": "path",
108530	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108531	//       "required": true,
108532	//       "type": "string"
108533	//     },
108534	//     "region": {
108535	//       "description": "The name of the region for this request.",
108536	//       "location": "path",
108537	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108538	//       "required": true,
108539	//       "type": "string"
108540	//     },
108541	//     "resource": {
108542	//       "description": "Name or id of the resource for this request.",
108543	//       "location": "path",
108544	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
108545	//       "required": true,
108546	//       "type": "string"
108547	//     }
108548	//   },
108549	//   "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy",
108550	//   "response": {
108551	//     "$ref": "Policy"
108552	//   },
108553	//   "scopes": [
108554	//     "https://www.googleapis.com/auth/cloud-platform",
108555	//     "https://www.googleapis.com/auth/compute",
108556	//     "https://www.googleapis.com/auth/compute.readonly"
108557	//   ]
108558	// }
108559
108560}
108561
108562// method id "compute.nodeTemplates.insert":
108563
108564type NodeTemplatesInsertCall struct {
108565	s            *Service
108566	project      string
108567	region       string
108568	nodetemplate *NodeTemplate
108569	urlParams_   gensupport.URLParams
108570	ctx_         context.Context
108571	header_      http.Header
108572}
108573
108574// Insert: Creates a NodeTemplate resource in the specified project
108575// using the data included in the request.
108576//
108577// - project: Project ID for this request.
108578// - region: The name of the region for this request.
108579func (r *NodeTemplatesService) Insert(project string, region string, nodetemplate *NodeTemplate) *NodeTemplatesInsertCall {
108580	c := &NodeTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108581	c.project = project
108582	c.region = region
108583	c.nodetemplate = nodetemplate
108584	return c
108585}
108586
108587// RequestId sets the optional parameter "requestId": An optional
108588// request ID to identify requests. Specify a unique request ID so that
108589// if you must retry your request, the server will know to ignore the
108590// request if it has already been completed. For example, consider a
108591// situation where you make an initial request and the request times
108592// out. If you make the request again with the same request ID, the
108593// server can check if original operation with the same request ID was
108594// received, and if so, will ignore the second request. This prevents
108595// clients from accidentally creating duplicate commitments. The request
108596// ID must be a valid UUID with the exception that zero UUID is not
108597// supported ( 00000000-0000-0000-0000-000000000000).
108598func (c *NodeTemplatesInsertCall) RequestId(requestId string) *NodeTemplatesInsertCall {
108599	c.urlParams_.Set("requestId", requestId)
108600	return c
108601}
108602
108603// Fields allows partial responses to be retrieved. See
108604// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108605// for more information.
108606func (c *NodeTemplatesInsertCall) Fields(s ...googleapi.Field) *NodeTemplatesInsertCall {
108607	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108608	return c
108609}
108610
108611// Context sets the context to be used in this call's Do method. Any
108612// pending HTTP request will be aborted if the provided context is
108613// canceled.
108614func (c *NodeTemplatesInsertCall) Context(ctx context.Context) *NodeTemplatesInsertCall {
108615	c.ctx_ = ctx
108616	return c
108617}
108618
108619// Header returns an http.Header that can be modified by the caller to
108620// add HTTP headers to the request.
108621func (c *NodeTemplatesInsertCall) Header() http.Header {
108622	if c.header_ == nil {
108623		c.header_ = make(http.Header)
108624	}
108625	return c.header_
108626}
108627
108628func (c *NodeTemplatesInsertCall) doRequest(alt string) (*http.Response, error) {
108629	reqHeaders := make(http.Header)
108630	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
108631	for k, v := range c.header_ {
108632		reqHeaders[k] = v
108633	}
108634	reqHeaders.Set("User-Agent", c.s.userAgent())
108635	var body io.Reader = nil
108636	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodetemplate)
108637	if err != nil {
108638		return nil, err
108639	}
108640	reqHeaders.Set("Content-Type", "application/json")
108641	c.urlParams_.Set("alt", alt)
108642	c.urlParams_.Set("prettyPrint", "false")
108643	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates")
108644	urls += "?" + c.urlParams_.Encode()
108645	req, err := http.NewRequest("POST", urls, body)
108646	if err != nil {
108647		return nil, err
108648	}
108649	req.Header = reqHeaders
108650	googleapi.Expand(req.URL, map[string]string{
108651		"project": c.project,
108652		"region":  c.region,
108653	})
108654	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108655}
108656
108657// Do executes the "compute.nodeTemplates.insert" call.
108658// Exactly one of *Operation or error will be non-nil. Any non-2xx
108659// status code is an error. Response headers are in either
108660// *Operation.ServerResponse.Header or (if a response was returned at
108661// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108662// to check whether the returned error was because
108663// http.StatusNotModified was returned.
108664func (c *NodeTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
108665	gensupport.SetOptions(c.urlParams_, opts...)
108666	res, err := c.doRequest("json")
108667	if res != nil && res.StatusCode == http.StatusNotModified {
108668		if res.Body != nil {
108669			res.Body.Close()
108670		}
108671		return nil, &googleapi.Error{
108672			Code:   res.StatusCode,
108673			Header: res.Header,
108674		}
108675	}
108676	if err != nil {
108677		return nil, err
108678	}
108679	defer googleapi.CloseBody(res)
108680	if err := googleapi.CheckResponse(res); err != nil {
108681		return nil, err
108682	}
108683	ret := &Operation{
108684		ServerResponse: googleapi.ServerResponse{
108685			Header:         res.Header,
108686			HTTPStatusCode: res.StatusCode,
108687		},
108688	}
108689	target := &ret
108690	if err := gensupport.DecodeResponse(target, res); err != nil {
108691		return nil, err
108692	}
108693	return ret, nil
108694	// {
108695	//   "description": "Creates a NodeTemplate resource in the specified project using the data included in the request.",
108696	//   "flatPath": "projects/{project}/regions/{region}/nodeTemplates",
108697	//   "httpMethod": "POST",
108698	//   "id": "compute.nodeTemplates.insert",
108699	//   "parameterOrder": [
108700	//     "project",
108701	//     "region"
108702	//   ],
108703	//   "parameters": {
108704	//     "project": {
108705	//       "description": "Project ID for this request.",
108706	//       "location": "path",
108707	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108708	//       "required": true,
108709	//       "type": "string"
108710	//     },
108711	//     "region": {
108712	//       "description": "The name of the region for this request.",
108713	//       "location": "path",
108714	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108715	//       "required": true,
108716	//       "type": "string"
108717	//     },
108718	//     "requestId": {
108719	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
108720	//       "location": "query",
108721	//       "type": "string"
108722	//     }
108723	//   },
108724	//   "path": "projects/{project}/regions/{region}/nodeTemplates",
108725	//   "request": {
108726	//     "$ref": "NodeTemplate"
108727	//   },
108728	//   "response": {
108729	//     "$ref": "Operation"
108730	//   },
108731	//   "scopes": [
108732	//     "https://www.googleapis.com/auth/cloud-platform",
108733	//     "https://www.googleapis.com/auth/compute"
108734	//   ]
108735	// }
108736
108737}
108738
108739// method id "compute.nodeTemplates.list":
108740
108741type NodeTemplatesListCall struct {
108742	s            *Service
108743	project      string
108744	region       string
108745	urlParams_   gensupport.URLParams
108746	ifNoneMatch_ string
108747	ctx_         context.Context
108748	header_      http.Header
108749}
108750
108751// List: Retrieves a list of node templates available to the specified
108752// project.
108753//
108754// - project: Project ID for this request.
108755// - region: The name of the region for this request.
108756func (r *NodeTemplatesService) List(project string, region string) *NodeTemplatesListCall {
108757	c := &NodeTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108758	c.project = project
108759	c.region = region
108760	return c
108761}
108762
108763// Filter sets the optional parameter "filter": A filter expression that
108764// filters resources listed in the response. The expression must specify
108765// the field name, a comparison operator, and the value that you want to
108766// use for filtering. The value must be a string, a number, or a
108767// boolean. The comparison operator must be either `=`, `!=`, `>`, or
108768// `<`. For example, if you are filtering Compute Engine instances, you
108769// can exclude instances named `example-instance` by specifying `name !=
108770// example-instance`. You can also filter nested fields. For example,
108771// you could specify `scheduling.automaticRestart = false` to include
108772// instances only if they are not scheduled for automatic restarts. You
108773// can use filtering on nested fields to filter based on resource
108774// labels. To filter on multiple expressions, provide each separate
108775// expression within parentheses. For example: ```
108776// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
108777// ``` By default, each expression is an `AND` expression. However, you
108778// can include `AND` and `OR` expressions explicitly. For example: ```
108779// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
108780// AND (scheduling.automaticRestart = true) ```
108781func (c *NodeTemplatesListCall) Filter(filter string) *NodeTemplatesListCall {
108782	c.urlParams_.Set("filter", filter)
108783	return c
108784}
108785
108786// MaxResults sets the optional parameter "maxResults": The maximum
108787// number of results per page that should be returned. If the number of
108788// available results is larger than `maxResults`, Compute Engine returns
108789// a `nextPageToken` that can be used to get the next page of results in
108790// subsequent list requests. Acceptable values are `0` to `500`,
108791// inclusive. (Default: `500`)
108792func (c *NodeTemplatesListCall) MaxResults(maxResults int64) *NodeTemplatesListCall {
108793	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
108794	return c
108795}
108796
108797// OrderBy sets the optional parameter "orderBy": Sorts list results by
108798// a certain order. By default, results are returned in alphanumerical
108799// order based on the resource name. You can also sort results in
108800// descending order based on the creation timestamp using
108801// `orderBy="creationTimestamp desc". This sorts results based on the
108802// `creationTimestamp` field in reverse chronological order (newest
108803// result first). Use this to sort resources like operations so that the
108804// newest operation is returned first. Currently, only sorting by `name`
108805// or `creationTimestamp desc` is supported.
108806func (c *NodeTemplatesListCall) OrderBy(orderBy string) *NodeTemplatesListCall {
108807	c.urlParams_.Set("orderBy", orderBy)
108808	return c
108809}
108810
108811// PageToken sets the optional parameter "pageToken": Specifies a page
108812// token to use. Set `pageToken` to the `nextPageToken` returned by a
108813// previous list request to get the next page of results.
108814func (c *NodeTemplatesListCall) PageToken(pageToken string) *NodeTemplatesListCall {
108815	c.urlParams_.Set("pageToken", pageToken)
108816	return c
108817}
108818
108819// ReturnPartialSuccess sets the optional parameter
108820// "returnPartialSuccess": Opt-in for partial success behavior which
108821// provides partial results in case of failure. The default value is
108822// false.
108823func (c *NodeTemplatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTemplatesListCall {
108824	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
108825	return c
108826}
108827
108828// Fields allows partial responses to be retrieved. See
108829// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108830// for more information.
108831func (c *NodeTemplatesListCall) Fields(s ...googleapi.Field) *NodeTemplatesListCall {
108832	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108833	return c
108834}
108835
108836// IfNoneMatch sets the optional parameter which makes the operation
108837// fail if the object's ETag matches the given value. This is useful for
108838// getting updates only after the object has changed since the last
108839// request. Use googleapi.IsNotModified to check whether the response
108840// error from Do is the result of In-None-Match.
108841func (c *NodeTemplatesListCall) IfNoneMatch(entityTag string) *NodeTemplatesListCall {
108842	c.ifNoneMatch_ = entityTag
108843	return c
108844}
108845
108846// Context sets the context to be used in this call's Do method. Any
108847// pending HTTP request will be aborted if the provided context is
108848// canceled.
108849func (c *NodeTemplatesListCall) Context(ctx context.Context) *NodeTemplatesListCall {
108850	c.ctx_ = ctx
108851	return c
108852}
108853
108854// Header returns an http.Header that can be modified by the caller to
108855// add HTTP headers to the request.
108856func (c *NodeTemplatesListCall) Header() http.Header {
108857	if c.header_ == nil {
108858		c.header_ = make(http.Header)
108859	}
108860	return c.header_
108861}
108862
108863func (c *NodeTemplatesListCall) doRequest(alt string) (*http.Response, error) {
108864	reqHeaders := make(http.Header)
108865	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
108866	for k, v := range c.header_ {
108867		reqHeaders[k] = v
108868	}
108869	reqHeaders.Set("User-Agent", c.s.userAgent())
108870	if c.ifNoneMatch_ != "" {
108871		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108872	}
108873	var body io.Reader = nil
108874	c.urlParams_.Set("alt", alt)
108875	c.urlParams_.Set("prettyPrint", "false")
108876	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates")
108877	urls += "?" + c.urlParams_.Encode()
108878	req, err := http.NewRequest("GET", urls, body)
108879	if err != nil {
108880		return nil, err
108881	}
108882	req.Header = reqHeaders
108883	googleapi.Expand(req.URL, map[string]string{
108884		"project": c.project,
108885		"region":  c.region,
108886	})
108887	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108888}
108889
108890// Do executes the "compute.nodeTemplates.list" call.
108891// Exactly one of *NodeTemplateList or error will be non-nil. Any
108892// non-2xx status code is an error. Response headers are in either
108893// *NodeTemplateList.ServerResponse.Header or (if a response was
108894// returned at all) in error.(*googleapi.Error).Header. Use
108895// googleapi.IsNotModified to check whether the returned error was
108896// because http.StatusNotModified was returned.
108897func (c *NodeTemplatesListCall) Do(opts ...googleapi.CallOption) (*NodeTemplateList, error) {
108898	gensupport.SetOptions(c.urlParams_, opts...)
108899	res, err := c.doRequest("json")
108900	if res != nil && res.StatusCode == http.StatusNotModified {
108901		if res.Body != nil {
108902			res.Body.Close()
108903		}
108904		return nil, &googleapi.Error{
108905			Code:   res.StatusCode,
108906			Header: res.Header,
108907		}
108908	}
108909	if err != nil {
108910		return nil, err
108911	}
108912	defer googleapi.CloseBody(res)
108913	if err := googleapi.CheckResponse(res); err != nil {
108914		return nil, err
108915	}
108916	ret := &NodeTemplateList{
108917		ServerResponse: googleapi.ServerResponse{
108918			Header:         res.Header,
108919			HTTPStatusCode: res.StatusCode,
108920		},
108921	}
108922	target := &ret
108923	if err := gensupport.DecodeResponse(target, res); err != nil {
108924		return nil, err
108925	}
108926	return ret, nil
108927	// {
108928	//   "description": "Retrieves a list of node templates available to the specified project.",
108929	//   "flatPath": "projects/{project}/regions/{region}/nodeTemplates",
108930	//   "httpMethod": "GET",
108931	//   "id": "compute.nodeTemplates.list",
108932	//   "parameterOrder": [
108933	//     "project",
108934	//     "region"
108935	//   ],
108936	//   "parameters": {
108937	//     "filter": {
108938	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
108939	//       "location": "query",
108940	//       "type": "string"
108941	//     },
108942	//     "maxResults": {
108943	//       "default": "500",
108944	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
108945	//       "format": "uint32",
108946	//       "location": "query",
108947	//       "minimum": "0",
108948	//       "type": "integer"
108949	//     },
108950	//     "orderBy": {
108951	//       "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.",
108952	//       "location": "query",
108953	//       "type": "string"
108954	//     },
108955	//     "pageToken": {
108956	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
108957	//       "location": "query",
108958	//       "type": "string"
108959	//     },
108960	//     "project": {
108961	//       "description": "Project ID for this request.",
108962	//       "location": "path",
108963	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108964	//       "required": true,
108965	//       "type": "string"
108966	//     },
108967	//     "region": {
108968	//       "description": "The name of the region for this request.",
108969	//       "location": "path",
108970	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108971	//       "required": true,
108972	//       "type": "string"
108973	//     },
108974	//     "returnPartialSuccess": {
108975	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
108976	//       "location": "query",
108977	//       "type": "boolean"
108978	//     }
108979	//   },
108980	//   "path": "projects/{project}/regions/{region}/nodeTemplates",
108981	//   "response": {
108982	//     "$ref": "NodeTemplateList"
108983	//   },
108984	//   "scopes": [
108985	//     "https://www.googleapis.com/auth/cloud-platform",
108986	//     "https://www.googleapis.com/auth/compute",
108987	//     "https://www.googleapis.com/auth/compute.readonly"
108988	//   ]
108989	// }
108990
108991}
108992
108993// Pages invokes f for each page of results.
108994// A non-nil error returned from f will halt the iteration.
108995// The provided context supersedes any context provided to the Context method.
108996func (c *NodeTemplatesListCall) Pages(ctx context.Context, f func(*NodeTemplateList) error) error {
108997	c.ctx_ = ctx
108998	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
108999	for {
109000		x, err := c.Do()
109001		if err != nil {
109002			return err
109003		}
109004		if err := f(x); err != nil {
109005			return err
109006		}
109007		if x.NextPageToken == "" {
109008			return nil
109009		}
109010		c.PageToken(x.NextPageToken)
109011	}
109012}
109013
109014// method id "compute.nodeTemplates.setIamPolicy":
109015
109016type NodeTemplatesSetIamPolicyCall struct {
109017	s                      *Service
109018	project                string
109019	region                 string
109020	resource               string
109021	regionsetpolicyrequest *RegionSetPolicyRequest
109022	urlParams_             gensupport.URLParams
109023	ctx_                   context.Context
109024	header_                http.Header
109025}
109026
109027// SetIamPolicy: Sets the access control policy on the specified
109028// resource. Replaces any existing policy.
109029//
109030// - project: Project ID for this request.
109031// - region: The name of the region for this request.
109032// - resource: Name or id of the resource for this request.
109033func (r *NodeTemplatesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *NodeTemplatesSetIamPolicyCall {
109034	c := &NodeTemplatesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109035	c.project = project
109036	c.region = region
109037	c.resource = resource
109038	c.regionsetpolicyrequest = regionsetpolicyrequest
109039	return c
109040}
109041
109042// Fields allows partial responses to be retrieved. See
109043// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109044// for more information.
109045func (c *NodeTemplatesSetIamPolicyCall) Fields(s ...googleapi.Field) *NodeTemplatesSetIamPolicyCall {
109046	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109047	return c
109048}
109049
109050// Context sets the context to be used in this call's Do method. Any
109051// pending HTTP request will be aborted if the provided context is
109052// canceled.
109053func (c *NodeTemplatesSetIamPolicyCall) Context(ctx context.Context) *NodeTemplatesSetIamPolicyCall {
109054	c.ctx_ = ctx
109055	return c
109056}
109057
109058// Header returns an http.Header that can be modified by the caller to
109059// add HTTP headers to the request.
109060func (c *NodeTemplatesSetIamPolicyCall) Header() http.Header {
109061	if c.header_ == nil {
109062		c.header_ = make(http.Header)
109063	}
109064	return c.header_
109065}
109066
109067func (c *NodeTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
109068	reqHeaders := make(http.Header)
109069	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
109070	for k, v := range c.header_ {
109071		reqHeaders[k] = v
109072	}
109073	reqHeaders.Set("User-Agent", c.s.userAgent())
109074	var body io.Reader = nil
109075	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
109076	if err != nil {
109077		return nil, err
109078	}
109079	reqHeaders.Set("Content-Type", "application/json")
109080	c.urlParams_.Set("alt", alt)
109081	c.urlParams_.Set("prettyPrint", "false")
109082	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy")
109083	urls += "?" + c.urlParams_.Encode()
109084	req, err := http.NewRequest("POST", urls, body)
109085	if err != nil {
109086		return nil, err
109087	}
109088	req.Header = reqHeaders
109089	googleapi.Expand(req.URL, map[string]string{
109090		"project":  c.project,
109091		"region":   c.region,
109092		"resource": c.resource,
109093	})
109094	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109095}
109096
109097// Do executes the "compute.nodeTemplates.setIamPolicy" call.
109098// Exactly one of *Policy or error will be non-nil. Any non-2xx status
109099// code is an error. Response headers are in either
109100// *Policy.ServerResponse.Header or (if a response was returned at all)
109101// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
109102// check whether the returned error was because http.StatusNotModified
109103// was returned.
109104func (c *NodeTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
109105	gensupport.SetOptions(c.urlParams_, opts...)
109106	res, err := c.doRequest("json")
109107	if res != nil && res.StatusCode == http.StatusNotModified {
109108		if res.Body != nil {
109109			res.Body.Close()
109110		}
109111		return nil, &googleapi.Error{
109112			Code:   res.StatusCode,
109113			Header: res.Header,
109114		}
109115	}
109116	if err != nil {
109117		return nil, err
109118	}
109119	defer googleapi.CloseBody(res)
109120	if err := googleapi.CheckResponse(res); err != nil {
109121		return nil, err
109122	}
109123	ret := &Policy{
109124		ServerResponse: googleapi.ServerResponse{
109125			Header:         res.Header,
109126			HTTPStatusCode: res.StatusCode,
109127		},
109128	}
109129	target := &ret
109130	if err := gensupport.DecodeResponse(target, res); err != nil {
109131		return nil, err
109132	}
109133	return ret, nil
109134	// {
109135	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
109136	//   "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy",
109137	//   "httpMethod": "POST",
109138	//   "id": "compute.nodeTemplates.setIamPolicy",
109139	//   "parameterOrder": [
109140	//     "project",
109141	//     "region",
109142	//     "resource"
109143	//   ],
109144	//   "parameters": {
109145	//     "project": {
109146	//       "description": "Project ID for this request.",
109147	//       "location": "path",
109148	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109149	//       "required": true,
109150	//       "type": "string"
109151	//     },
109152	//     "region": {
109153	//       "description": "The name of the region for this request.",
109154	//       "location": "path",
109155	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109156	//       "required": true,
109157	//       "type": "string"
109158	//     },
109159	//     "resource": {
109160	//       "description": "Name or id of the resource for this request.",
109161	//       "location": "path",
109162	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
109163	//       "required": true,
109164	//       "type": "string"
109165	//     }
109166	//   },
109167	//   "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy",
109168	//   "request": {
109169	//     "$ref": "RegionSetPolicyRequest"
109170	//   },
109171	//   "response": {
109172	//     "$ref": "Policy"
109173	//   },
109174	//   "scopes": [
109175	//     "https://www.googleapis.com/auth/cloud-platform",
109176	//     "https://www.googleapis.com/auth/compute"
109177	//   ]
109178	// }
109179
109180}
109181
109182// method id "compute.nodeTemplates.testIamPermissions":
109183
109184type NodeTemplatesTestIamPermissionsCall struct {
109185	s                      *Service
109186	project                string
109187	region                 string
109188	resource               string
109189	testpermissionsrequest *TestPermissionsRequest
109190	urlParams_             gensupport.URLParams
109191	ctx_                   context.Context
109192	header_                http.Header
109193}
109194
109195// TestIamPermissions: Returns permissions that a caller has on the
109196// specified resource.
109197//
109198// - project: Project ID for this request.
109199// - region: The name of the region for this request.
109200// - resource: Name or id of the resource for this request.
109201func (r *NodeTemplatesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *NodeTemplatesTestIamPermissionsCall {
109202	c := &NodeTemplatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109203	c.project = project
109204	c.region = region
109205	c.resource = resource
109206	c.testpermissionsrequest = testpermissionsrequest
109207	return c
109208}
109209
109210// Fields allows partial responses to be retrieved. See
109211// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109212// for more information.
109213func (c *NodeTemplatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *NodeTemplatesTestIamPermissionsCall {
109214	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109215	return c
109216}
109217
109218// Context sets the context to be used in this call's Do method. Any
109219// pending HTTP request will be aborted if the provided context is
109220// canceled.
109221func (c *NodeTemplatesTestIamPermissionsCall) Context(ctx context.Context) *NodeTemplatesTestIamPermissionsCall {
109222	c.ctx_ = ctx
109223	return c
109224}
109225
109226// Header returns an http.Header that can be modified by the caller to
109227// add HTTP headers to the request.
109228func (c *NodeTemplatesTestIamPermissionsCall) Header() http.Header {
109229	if c.header_ == nil {
109230		c.header_ = make(http.Header)
109231	}
109232	return c.header_
109233}
109234
109235func (c *NodeTemplatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
109236	reqHeaders := make(http.Header)
109237	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
109238	for k, v := range c.header_ {
109239		reqHeaders[k] = v
109240	}
109241	reqHeaders.Set("User-Agent", c.s.userAgent())
109242	var body io.Reader = nil
109243	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
109244	if err != nil {
109245		return nil, err
109246	}
109247	reqHeaders.Set("Content-Type", "application/json")
109248	c.urlParams_.Set("alt", alt)
109249	c.urlParams_.Set("prettyPrint", "false")
109250	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions")
109251	urls += "?" + c.urlParams_.Encode()
109252	req, err := http.NewRequest("POST", urls, body)
109253	if err != nil {
109254		return nil, err
109255	}
109256	req.Header = reqHeaders
109257	googleapi.Expand(req.URL, map[string]string{
109258		"project":  c.project,
109259		"region":   c.region,
109260		"resource": c.resource,
109261	})
109262	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109263}
109264
109265// Do executes the "compute.nodeTemplates.testIamPermissions" call.
109266// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
109267// non-2xx status code is an error. Response headers are in either
109268// *TestPermissionsResponse.ServerResponse.Header or (if a response was
109269// returned at all) in error.(*googleapi.Error).Header. Use
109270// googleapi.IsNotModified to check whether the returned error was
109271// because http.StatusNotModified was returned.
109272func (c *NodeTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
109273	gensupport.SetOptions(c.urlParams_, opts...)
109274	res, err := c.doRequest("json")
109275	if res != nil && res.StatusCode == http.StatusNotModified {
109276		if res.Body != nil {
109277			res.Body.Close()
109278		}
109279		return nil, &googleapi.Error{
109280			Code:   res.StatusCode,
109281			Header: res.Header,
109282		}
109283	}
109284	if err != nil {
109285		return nil, err
109286	}
109287	defer googleapi.CloseBody(res)
109288	if err := googleapi.CheckResponse(res); err != nil {
109289		return nil, err
109290	}
109291	ret := &TestPermissionsResponse{
109292		ServerResponse: googleapi.ServerResponse{
109293			Header:         res.Header,
109294			HTTPStatusCode: res.StatusCode,
109295		},
109296	}
109297	target := &ret
109298	if err := gensupport.DecodeResponse(target, res); err != nil {
109299		return nil, err
109300	}
109301	return ret, nil
109302	// {
109303	//   "description": "Returns permissions that a caller has on the specified resource.",
109304	//   "flatPath": "projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions",
109305	//   "httpMethod": "POST",
109306	//   "id": "compute.nodeTemplates.testIamPermissions",
109307	//   "parameterOrder": [
109308	//     "project",
109309	//     "region",
109310	//     "resource"
109311	//   ],
109312	//   "parameters": {
109313	//     "project": {
109314	//       "description": "Project ID for this request.",
109315	//       "location": "path",
109316	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109317	//       "required": true,
109318	//       "type": "string"
109319	//     },
109320	//     "region": {
109321	//       "description": "The name of the region for this request.",
109322	//       "location": "path",
109323	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109324	//       "required": true,
109325	//       "type": "string"
109326	//     },
109327	//     "resource": {
109328	//       "description": "Name or id of the resource for this request.",
109329	//       "location": "path",
109330	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
109331	//       "required": true,
109332	//       "type": "string"
109333	//     }
109334	//   },
109335	//   "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions",
109336	//   "request": {
109337	//     "$ref": "TestPermissionsRequest"
109338	//   },
109339	//   "response": {
109340	//     "$ref": "TestPermissionsResponse"
109341	//   },
109342	//   "scopes": [
109343	//     "https://www.googleapis.com/auth/cloud-platform",
109344	//     "https://www.googleapis.com/auth/compute",
109345	//     "https://www.googleapis.com/auth/compute.readonly"
109346	//   ]
109347	// }
109348
109349}
109350
109351// method id "compute.nodeTypes.aggregatedList":
109352
109353type NodeTypesAggregatedListCall struct {
109354	s            *Service
109355	project      string
109356	urlParams_   gensupport.URLParams
109357	ifNoneMatch_ string
109358	ctx_         context.Context
109359	header_      http.Header
109360}
109361
109362// AggregatedList: Retrieves an aggregated list of node types.
109363//
109364// - project: Project ID for this request.
109365func (r *NodeTypesService) AggregatedList(project string) *NodeTypesAggregatedListCall {
109366	c := &NodeTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109367	c.project = project
109368	return c
109369}
109370
109371// Filter sets the optional parameter "filter": A filter expression that
109372// filters resources listed in the response. The expression must specify
109373// the field name, a comparison operator, and the value that you want to
109374// use for filtering. The value must be a string, a number, or a
109375// boolean. The comparison operator must be either `=`, `!=`, `>`, or
109376// `<`. For example, if you are filtering Compute Engine instances, you
109377// can exclude instances named `example-instance` by specifying `name !=
109378// example-instance`. You can also filter nested fields. For example,
109379// you could specify `scheduling.automaticRestart = false` to include
109380// instances only if they are not scheduled for automatic restarts. You
109381// can use filtering on nested fields to filter based on resource
109382// labels. To filter on multiple expressions, provide each separate
109383// expression within parentheses. For example: ```
109384// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
109385// ``` By default, each expression is an `AND` expression. However, you
109386// can include `AND` and `OR` expressions explicitly. For example: ```
109387// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
109388// AND (scheduling.automaticRestart = true) ```
109389func (c *NodeTypesAggregatedListCall) Filter(filter string) *NodeTypesAggregatedListCall {
109390	c.urlParams_.Set("filter", filter)
109391	return c
109392}
109393
109394// IncludeAllScopes sets the optional parameter "includeAllScopes":
109395// Indicates whether every visible scope for each scope type (zone,
109396// region, global) should be included in the response. For new resource
109397// types added after this field, the flag has no effect as new resource
109398// types will always include every visible scope for each scope type in
109399// response. For resource types which predate this field, if this flag
109400// is omitted or false, only scopes of the scope types where the
109401// resource type is expected to be found will be included.
109402func (c *NodeTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeTypesAggregatedListCall {
109403	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
109404	return c
109405}
109406
109407// MaxResults sets the optional parameter "maxResults": The maximum
109408// number of results per page that should be returned. If the number of
109409// available results is larger than `maxResults`, Compute Engine returns
109410// a `nextPageToken` that can be used to get the next page of results in
109411// subsequent list requests. Acceptable values are `0` to `500`,
109412// inclusive. (Default: `500`)
109413func (c *NodeTypesAggregatedListCall) MaxResults(maxResults int64) *NodeTypesAggregatedListCall {
109414	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
109415	return c
109416}
109417
109418// OrderBy sets the optional parameter "orderBy": Sorts list results by
109419// a certain order. By default, results are returned in alphanumerical
109420// order based on the resource name. You can also sort results in
109421// descending order based on the creation timestamp using
109422// `orderBy="creationTimestamp desc". This sorts results based on the
109423// `creationTimestamp` field in reverse chronological order (newest
109424// result first). Use this to sort resources like operations so that the
109425// newest operation is returned first. Currently, only sorting by `name`
109426// or `creationTimestamp desc` is supported.
109427func (c *NodeTypesAggregatedListCall) OrderBy(orderBy string) *NodeTypesAggregatedListCall {
109428	c.urlParams_.Set("orderBy", orderBy)
109429	return c
109430}
109431
109432// PageToken sets the optional parameter "pageToken": Specifies a page
109433// token to use. Set `pageToken` to the `nextPageToken` returned by a
109434// previous list request to get the next page of results.
109435func (c *NodeTypesAggregatedListCall) PageToken(pageToken string) *NodeTypesAggregatedListCall {
109436	c.urlParams_.Set("pageToken", pageToken)
109437	return c
109438}
109439
109440// ReturnPartialSuccess sets the optional parameter
109441// "returnPartialSuccess": Opt-in for partial success behavior which
109442// provides partial results in case of failure. The default value is
109443// false.
109444func (c *NodeTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTypesAggregatedListCall {
109445	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
109446	return c
109447}
109448
109449// Fields allows partial responses to be retrieved. See
109450// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109451// for more information.
109452func (c *NodeTypesAggregatedListCall) Fields(s ...googleapi.Field) *NodeTypesAggregatedListCall {
109453	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109454	return c
109455}
109456
109457// IfNoneMatch sets the optional parameter which makes the operation
109458// fail if the object's ETag matches the given value. This is useful for
109459// getting updates only after the object has changed since the last
109460// request. Use googleapi.IsNotModified to check whether the response
109461// error from Do is the result of In-None-Match.
109462func (c *NodeTypesAggregatedListCall) IfNoneMatch(entityTag string) *NodeTypesAggregatedListCall {
109463	c.ifNoneMatch_ = entityTag
109464	return c
109465}
109466
109467// Context sets the context to be used in this call's Do method. Any
109468// pending HTTP request will be aborted if the provided context is
109469// canceled.
109470func (c *NodeTypesAggregatedListCall) Context(ctx context.Context) *NodeTypesAggregatedListCall {
109471	c.ctx_ = ctx
109472	return c
109473}
109474
109475// Header returns an http.Header that can be modified by the caller to
109476// add HTTP headers to the request.
109477func (c *NodeTypesAggregatedListCall) Header() http.Header {
109478	if c.header_ == nil {
109479		c.header_ = make(http.Header)
109480	}
109481	return c.header_
109482}
109483
109484func (c *NodeTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
109485	reqHeaders := make(http.Header)
109486	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
109487	for k, v := range c.header_ {
109488		reqHeaders[k] = v
109489	}
109490	reqHeaders.Set("User-Agent", c.s.userAgent())
109491	if c.ifNoneMatch_ != "" {
109492		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
109493	}
109494	var body io.Reader = nil
109495	c.urlParams_.Set("alt", alt)
109496	c.urlParams_.Set("prettyPrint", "false")
109497	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/nodeTypes")
109498	urls += "?" + c.urlParams_.Encode()
109499	req, err := http.NewRequest("GET", urls, body)
109500	if err != nil {
109501		return nil, err
109502	}
109503	req.Header = reqHeaders
109504	googleapi.Expand(req.URL, map[string]string{
109505		"project": c.project,
109506	})
109507	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109508}
109509
109510// Do executes the "compute.nodeTypes.aggregatedList" call.
109511// Exactly one of *NodeTypeAggregatedList or error will be non-nil. Any
109512// non-2xx status code is an error. Response headers are in either
109513// *NodeTypeAggregatedList.ServerResponse.Header or (if a response was
109514// returned at all) in error.(*googleapi.Error).Header. Use
109515// googleapi.IsNotModified to check whether the returned error was
109516// because http.StatusNotModified was returned.
109517func (c *NodeTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeTypeAggregatedList, error) {
109518	gensupport.SetOptions(c.urlParams_, opts...)
109519	res, err := c.doRequest("json")
109520	if res != nil && res.StatusCode == http.StatusNotModified {
109521		if res.Body != nil {
109522			res.Body.Close()
109523		}
109524		return nil, &googleapi.Error{
109525			Code:   res.StatusCode,
109526			Header: res.Header,
109527		}
109528	}
109529	if err != nil {
109530		return nil, err
109531	}
109532	defer googleapi.CloseBody(res)
109533	if err := googleapi.CheckResponse(res); err != nil {
109534		return nil, err
109535	}
109536	ret := &NodeTypeAggregatedList{
109537		ServerResponse: googleapi.ServerResponse{
109538			Header:         res.Header,
109539			HTTPStatusCode: res.StatusCode,
109540		},
109541	}
109542	target := &ret
109543	if err := gensupport.DecodeResponse(target, res); err != nil {
109544		return nil, err
109545	}
109546	return ret, nil
109547	// {
109548	//   "description": "Retrieves an aggregated list of node types.",
109549	//   "flatPath": "projects/{project}/aggregated/nodeTypes",
109550	//   "httpMethod": "GET",
109551	//   "id": "compute.nodeTypes.aggregatedList",
109552	//   "parameterOrder": [
109553	//     "project"
109554	//   ],
109555	//   "parameters": {
109556	//     "filter": {
109557	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
109558	//       "location": "query",
109559	//       "type": "string"
109560	//     },
109561	//     "includeAllScopes": {
109562	//       "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.",
109563	//       "location": "query",
109564	//       "type": "boolean"
109565	//     },
109566	//     "maxResults": {
109567	//       "default": "500",
109568	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
109569	//       "format": "uint32",
109570	//       "location": "query",
109571	//       "minimum": "0",
109572	//       "type": "integer"
109573	//     },
109574	//     "orderBy": {
109575	//       "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.",
109576	//       "location": "query",
109577	//       "type": "string"
109578	//     },
109579	//     "pageToken": {
109580	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
109581	//       "location": "query",
109582	//       "type": "string"
109583	//     },
109584	//     "project": {
109585	//       "description": "Project ID for this request.",
109586	//       "location": "path",
109587	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109588	//       "required": true,
109589	//       "type": "string"
109590	//     },
109591	//     "returnPartialSuccess": {
109592	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
109593	//       "location": "query",
109594	//       "type": "boolean"
109595	//     }
109596	//   },
109597	//   "path": "projects/{project}/aggregated/nodeTypes",
109598	//   "response": {
109599	//     "$ref": "NodeTypeAggregatedList"
109600	//   },
109601	//   "scopes": [
109602	//     "https://www.googleapis.com/auth/cloud-platform",
109603	//     "https://www.googleapis.com/auth/compute",
109604	//     "https://www.googleapis.com/auth/compute.readonly"
109605	//   ]
109606	// }
109607
109608}
109609
109610// Pages invokes f for each page of results.
109611// A non-nil error returned from f will halt the iteration.
109612// The provided context supersedes any context provided to the Context method.
109613func (c *NodeTypesAggregatedListCall) Pages(ctx context.Context, f func(*NodeTypeAggregatedList) error) error {
109614	c.ctx_ = ctx
109615	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
109616	for {
109617		x, err := c.Do()
109618		if err != nil {
109619			return err
109620		}
109621		if err := f(x); err != nil {
109622			return err
109623		}
109624		if x.NextPageToken == "" {
109625			return nil
109626		}
109627		c.PageToken(x.NextPageToken)
109628	}
109629}
109630
109631// method id "compute.nodeTypes.get":
109632
109633type NodeTypesGetCall struct {
109634	s            *Service
109635	project      string
109636	zone         string
109637	nodeType     string
109638	urlParams_   gensupport.URLParams
109639	ifNoneMatch_ string
109640	ctx_         context.Context
109641	header_      http.Header
109642}
109643
109644// Get: Returns the specified node type. Gets a list of available node
109645// types by making a list() request.
109646//
109647// - nodeType: Name of the node type to return.
109648// - project: Project ID for this request.
109649// - zone: The name of the zone for this request.
109650func (r *NodeTypesService) Get(project string, zone string, nodeType string) *NodeTypesGetCall {
109651	c := &NodeTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109652	c.project = project
109653	c.zone = zone
109654	c.nodeType = nodeType
109655	return c
109656}
109657
109658// Fields allows partial responses to be retrieved. See
109659// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109660// for more information.
109661func (c *NodeTypesGetCall) Fields(s ...googleapi.Field) *NodeTypesGetCall {
109662	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109663	return c
109664}
109665
109666// IfNoneMatch sets the optional parameter which makes the operation
109667// fail if the object's ETag matches the given value. This is useful for
109668// getting updates only after the object has changed since the last
109669// request. Use googleapi.IsNotModified to check whether the response
109670// error from Do is the result of In-None-Match.
109671func (c *NodeTypesGetCall) IfNoneMatch(entityTag string) *NodeTypesGetCall {
109672	c.ifNoneMatch_ = entityTag
109673	return c
109674}
109675
109676// Context sets the context to be used in this call's Do method. Any
109677// pending HTTP request will be aborted if the provided context is
109678// canceled.
109679func (c *NodeTypesGetCall) Context(ctx context.Context) *NodeTypesGetCall {
109680	c.ctx_ = ctx
109681	return c
109682}
109683
109684// Header returns an http.Header that can be modified by the caller to
109685// add HTTP headers to the request.
109686func (c *NodeTypesGetCall) Header() http.Header {
109687	if c.header_ == nil {
109688		c.header_ = make(http.Header)
109689	}
109690	return c.header_
109691}
109692
109693func (c *NodeTypesGetCall) doRequest(alt string) (*http.Response, error) {
109694	reqHeaders := make(http.Header)
109695	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
109696	for k, v := range c.header_ {
109697		reqHeaders[k] = v
109698	}
109699	reqHeaders.Set("User-Agent", c.s.userAgent())
109700	if c.ifNoneMatch_ != "" {
109701		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
109702	}
109703	var body io.Reader = nil
109704	c.urlParams_.Set("alt", alt)
109705	c.urlParams_.Set("prettyPrint", "false")
109706	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeTypes/{nodeType}")
109707	urls += "?" + c.urlParams_.Encode()
109708	req, err := http.NewRequest("GET", urls, body)
109709	if err != nil {
109710		return nil, err
109711	}
109712	req.Header = reqHeaders
109713	googleapi.Expand(req.URL, map[string]string{
109714		"project":  c.project,
109715		"zone":     c.zone,
109716		"nodeType": c.nodeType,
109717	})
109718	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109719}
109720
109721// Do executes the "compute.nodeTypes.get" call.
109722// Exactly one of *NodeType or error will be non-nil. Any non-2xx status
109723// code is an error. Response headers are in either
109724// *NodeType.ServerResponse.Header or (if a response was returned at
109725// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109726// to check whether the returned error was because
109727// http.StatusNotModified was returned.
109728func (c *NodeTypesGetCall) Do(opts ...googleapi.CallOption) (*NodeType, error) {
109729	gensupport.SetOptions(c.urlParams_, opts...)
109730	res, err := c.doRequest("json")
109731	if res != nil && res.StatusCode == http.StatusNotModified {
109732		if res.Body != nil {
109733			res.Body.Close()
109734		}
109735		return nil, &googleapi.Error{
109736			Code:   res.StatusCode,
109737			Header: res.Header,
109738		}
109739	}
109740	if err != nil {
109741		return nil, err
109742	}
109743	defer googleapi.CloseBody(res)
109744	if err := googleapi.CheckResponse(res); err != nil {
109745		return nil, err
109746	}
109747	ret := &NodeType{
109748		ServerResponse: googleapi.ServerResponse{
109749			Header:         res.Header,
109750			HTTPStatusCode: res.StatusCode,
109751		},
109752	}
109753	target := &ret
109754	if err := gensupport.DecodeResponse(target, res); err != nil {
109755		return nil, err
109756	}
109757	return ret, nil
109758	// {
109759	//   "description": "Returns the specified node type. Gets a list of available node types by making a list() request.",
109760	//   "flatPath": "projects/{project}/zones/{zone}/nodeTypes/{nodeType}",
109761	//   "httpMethod": "GET",
109762	//   "id": "compute.nodeTypes.get",
109763	//   "parameterOrder": [
109764	//     "project",
109765	//     "zone",
109766	//     "nodeType"
109767	//   ],
109768	//   "parameters": {
109769	//     "nodeType": {
109770	//       "description": "Name of the node type to return.",
109771	//       "location": "path",
109772	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
109773	//       "required": true,
109774	//       "type": "string"
109775	//     },
109776	//     "project": {
109777	//       "description": "Project ID for this request.",
109778	//       "location": "path",
109779	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109780	//       "required": true,
109781	//       "type": "string"
109782	//     },
109783	//     "zone": {
109784	//       "description": "The name of the zone for this request.",
109785	//       "location": "path",
109786	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109787	//       "required": true,
109788	//       "type": "string"
109789	//     }
109790	//   },
109791	//   "path": "projects/{project}/zones/{zone}/nodeTypes/{nodeType}",
109792	//   "response": {
109793	//     "$ref": "NodeType"
109794	//   },
109795	//   "scopes": [
109796	//     "https://www.googleapis.com/auth/cloud-platform",
109797	//     "https://www.googleapis.com/auth/compute",
109798	//     "https://www.googleapis.com/auth/compute.readonly"
109799	//   ]
109800	// }
109801
109802}
109803
109804// method id "compute.nodeTypes.list":
109805
109806type NodeTypesListCall struct {
109807	s            *Service
109808	project      string
109809	zone         string
109810	urlParams_   gensupport.URLParams
109811	ifNoneMatch_ string
109812	ctx_         context.Context
109813	header_      http.Header
109814}
109815
109816// List: Retrieves a list of node types available to the specified
109817// project.
109818//
109819// - project: Project ID for this request.
109820// - zone: The name of the zone for this request.
109821func (r *NodeTypesService) List(project string, zone string) *NodeTypesListCall {
109822	c := &NodeTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109823	c.project = project
109824	c.zone = zone
109825	return c
109826}
109827
109828// Filter sets the optional parameter "filter": A filter expression that
109829// filters resources listed in the response. The expression must specify
109830// the field name, a comparison operator, and the value that you want to
109831// use for filtering. The value must be a string, a number, or a
109832// boolean. The comparison operator must be either `=`, `!=`, `>`, or
109833// `<`. For example, if you are filtering Compute Engine instances, you
109834// can exclude instances named `example-instance` by specifying `name !=
109835// example-instance`. You can also filter nested fields. For example,
109836// you could specify `scheduling.automaticRestart = false` to include
109837// instances only if they are not scheduled for automatic restarts. You
109838// can use filtering on nested fields to filter based on resource
109839// labels. To filter on multiple expressions, provide each separate
109840// expression within parentheses. For example: ```
109841// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
109842// ``` By default, each expression is an `AND` expression. However, you
109843// can include `AND` and `OR` expressions explicitly. For example: ```
109844// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
109845// AND (scheduling.automaticRestart = true) ```
109846func (c *NodeTypesListCall) Filter(filter string) *NodeTypesListCall {
109847	c.urlParams_.Set("filter", filter)
109848	return c
109849}
109850
109851// MaxResults sets the optional parameter "maxResults": The maximum
109852// number of results per page that should be returned. If the number of
109853// available results is larger than `maxResults`, Compute Engine returns
109854// a `nextPageToken` that can be used to get the next page of results in
109855// subsequent list requests. Acceptable values are `0` to `500`,
109856// inclusive. (Default: `500`)
109857func (c *NodeTypesListCall) MaxResults(maxResults int64) *NodeTypesListCall {
109858	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
109859	return c
109860}
109861
109862// OrderBy sets the optional parameter "orderBy": Sorts list results by
109863// a certain order. By default, results are returned in alphanumerical
109864// order based on the resource name. You can also sort results in
109865// descending order based on the creation timestamp using
109866// `orderBy="creationTimestamp desc". This sorts results based on the
109867// `creationTimestamp` field in reverse chronological order (newest
109868// result first). Use this to sort resources like operations so that the
109869// newest operation is returned first. Currently, only sorting by `name`
109870// or `creationTimestamp desc` is supported.
109871func (c *NodeTypesListCall) OrderBy(orderBy string) *NodeTypesListCall {
109872	c.urlParams_.Set("orderBy", orderBy)
109873	return c
109874}
109875
109876// PageToken sets the optional parameter "pageToken": Specifies a page
109877// token to use. Set `pageToken` to the `nextPageToken` returned by a
109878// previous list request to get the next page of results.
109879func (c *NodeTypesListCall) PageToken(pageToken string) *NodeTypesListCall {
109880	c.urlParams_.Set("pageToken", pageToken)
109881	return c
109882}
109883
109884// ReturnPartialSuccess sets the optional parameter
109885// "returnPartialSuccess": Opt-in for partial success behavior which
109886// provides partial results in case of failure. The default value is
109887// false.
109888func (c *NodeTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTypesListCall {
109889	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
109890	return c
109891}
109892
109893// Fields allows partial responses to be retrieved. See
109894// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109895// for more information.
109896func (c *NodeTypesListCall) Fields(s ...googleapi.Field) *NodeTypesListCall {
109897	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109898	return c
109899}
109900
109901// IfNoneMatch sets the optional parameter which makes the operation
109902// fail if the object's ETag matches the given value. This is useful for
109903// getting updates only after the object has changed since the last
109904// request. Use googleapi.IsNotModified to check whether the response
109905// error from Do is the result of In-None-Match.
109906func (c *NodeTypesListCall) IfNoneMatch(entityTag string) *NodeTypesListCall {
109907	c.ifNoneMatch_ = entityTag
109908	return c
109909}
109910
109911// Context sets the context to be used in this call's Do method. Any
109912// pending HTTP request will be aborted if the provided context is
109913// canceled.
109914func (c *NodeTypesListCall) Context(ctx context.Context) *NodeTypesListCall {
109915	c.ctx_ = ctx
109916	return c
109917}
109918
109919// Header returns an http.Header that can be modified by the caller to
109920// add HTTP headers to the request.
109921func (c *NodeTypesListCall) Header() http.Header {
109922	if c.header_ == nil {
109923		c.header_ = make(http.Header)
109924	}
109925	return c.header_
109926}
109927
109928func (c *NodeTypesListCall) doRequest(alt string) (*http.Response, error) {
109929	reqHeaders := make(http.Header)
109930	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
109931	for k, v := range c.header_ {
109932		reqHeaders[k] = v
109933	}
109934	reqHeaders.Set("User-Agent", c.s.userAgent())
109935	if c.ifNoneMatch_ != "" {
109936		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
109937	}
109938	var body io.Reader = nil
109939	c.urlParams_.Set("alt", alt)
109940	c.urlParams_.Set("prettyPrint", "false")
109941	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeTypes")
109942	urls += "?" + c.urlParams_.Encode()
109943	req, err := http.NewRequest("GET", urls, body)
109944	if err != nil {
109945		return nil, err
109946	}
109947	req.Header = reqHeaders
109948	googleapi.Expand(req.URL, map[string]string{
109949		"project": c.project,
109950		"zone":    c.zone,
109951	})
109952	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109953}
109954
109955// Do executes the "compute.nodeTypes.list" call.
109956// Exactly one of *NodeTypeList or error will be non-nil. Any non-2xx
109957// status code is an error. Response headers are in either
109958// *NodeTypeList.ServerResponse.Header or (if a response was returned at
109959// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109960// to check whether the returned error was because
109961// http.StatusNotModified was returned.
109962func (c *NodeTypesListCall) Do(opts ...googleapi.CallOption) (*NodeTypeList, error) {
109963	gensupport.SetOptions(c.urlParams_, opts...)
109964	res, err := c.doRequest("json")
109965	if res != nil && res.StatusCode == http.StatusNotModified {
109966		if res.Body != nil {
109967			res.Body.Close()
109968		}
109969		return nil, &googleapi.Error{
109970			Code:   res.StatusCode,
109971			Header: res.Header,
109972		}
109973	}
109974	if err != nil {
109975		return nil, err
109976	}
109977	defer googleapi.CloseBody(res)
109978	if err := googleapi.CheckResponse(res); err != nil {
109979		return nil, err
109980	}
109981	ret := &NodeTypeList{
109982		ServerResponse: googleapi.ServerResponse{
109983			Header:         res.Header,
109984			HTTPStatusCode: res.StatusCode,
109985		},
109986	}
109987	target := &ret
109988	if err := gensupport.DecodeResponse(target, res); err != nil {
109989		return nil, err
109990	}
109991	return ret, nil
109992	// {
109993	//   "description": "Retrieves a list of node types available to the specified project.",
109994	//   "flatPath": "projects/{project}/zones/{zone}/nodeTypes",
109995	//   "httpMethod": "GET",
109996	//   "id": "compute.nodeTypes.list",
109997	//   "parameterOrder": [
109998	//     "project",
109999	//     "zone"
110000	//   ],
110001	//   "parameters": {
110002	//     "filter": {
110003	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
110004	//       "location": "query",
110005	//       "type": "string"
110006	//     },
110007	//     "maxResults": {
110008	//       "default": "500",
110009	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
110010	//       "format": "uint32",
110011	//       "location": "query",
110012	//       "minimum": "0",
110013	//       "type": "integer"
110014	//     },
110015	//     "orderBy": {
110016	//       "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.",
110017	//       "location": "query",
110018	//       "type": "string"
110019	//     },
110020	//     "pageToken": {
110021	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
110022	//       "location": "query",
110023	//       "type": "string"
110024	//     },
110025	//     "project": {
110026	//       "description": "Project ID for this request.",
110027	//       "location": "path",
110028	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110029	//       "required": true,
110030	//       "type": "string"
110031	//     },
110032	//     "returnPartialSuccess": {
110033	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
110034	//       "location": "query",
110035	//       "type": "boolean"
110036	//     },
110037	//     "zone": {
110038	//       "description": "The name of the zone for this request.",
110039	//       "location": "path",
110040	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110041	//       "required": true,
110042	//       "type": "string"
110043	//     }
110044	//   },
110045	//   "path": "projects/{project}/zones/{zone}/nodeTypes",
110046	//   "response": {
110047	//     "$ref": "NodeTypeList"
110048	//   },
110049	//   "scopes": [
110050	//     "https://www.googleapis.com/auth/cloud-platform",
110051	//     "https://www.googleapis.com/auth/compute",
110052	//     "https://www.googleapis.com/auth/compute.readonly"
110053	//   ]
110054	// }
110055
110056}
110057
110058// Pages invokes f for each page of results.
110059// A non-nil error returned from f will halt the iteration.
110060// The provided context supersedes any context provided to the Context method.
110061func (c *NodeTypesListCall) Pages(ctx context.Context, f func(*NodeTypeList) error) error {
110062	c.ctx_ = ctx
110063	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
110064	for {
110065		x, err := c.Do()
110066		if err != nil {
110067			return err
110068		}
110069		if err := f(x); err != nil {
110070			return err
110071		}
110072		if x.NextPageToken == "" {
110073			return nil
110074		}
110075		c.PageToken(x.NextPageToken)
110076	}
110077}
110078
110079// method id "compute.packetMirrorings.aggregatedList":
110080
110081type PacketMirroringsAggregatedListCall struct {
110082	s            *Service
110083	project      string
110084	urlParams_   gensupport.URLParams
110085	ifNoneMatch_ string
110086	ctx_         context.Context
110087	header_      http.Header
110088}
110089
110090// AggregatedList: Retrieves an aggregated list of packetMirrorings.
110091//
110092// - project: Project ID for this request.
110093func (r *PacketMirroringsService) AggregatedList(project string) *PacketMirroringsAggregatedListCall {
110094	c := &PacketMirroringsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110095	c.project = project
110096	return c
110097}
110098
110099// Filter sets the optional parameter "filter": A filter expression that
110100// filters resources listed in the response. The expression must specify
110101// the field name, a comparison operator, and the value that you want to
110102// use for filtering. The value must be a string, a number, or a
110103// boolean. The comparison operator must be either `=`, `!=`, `>`, or
110104// `<`. For example, if you are filtering Compute Engine instances, you
110105// can exclude instances named `example-instance` by specifying `name !=
110106// example-instance`. You can also filter nested fields. For example,
110107// you could specify `scheduling.automaticRestart = false` to include
110108// instances only if they are not scheduled for automatic restarts. You
110109// can use filtering on nested fields to filter based on resource
110110// labels. To filter on multiple expressions, provide each separate
110111// expression within parentheses. For example: ```
110112// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
110113// ``` By default, each expression is an `AND` expression. However, you
110114// can include `AND` and `OR` expressions explicitly. For example: ```
110115// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
110116// AND (scheduling.automaticRestart = true) ```
110117func (c *PacketMirroringsAggregatedListCall) Filter(filter string) *PacketMirroringsAggregatedListCall {
110118	c.urlParams_.Set("filter", filter)
110119	return c
110120}
110121
110122// IncludeAllScopes sets the optional parameter "includeAllScopes":
110123// Indicates whether every visible scope for each scope type (zone,
110124// region, global) should be included in the response. For new resource
110125// types added after this field, the flag has no effect as new resource
110126// types will always include every visible scope for each scope type in
110127// response. For resource types which predate this field, if this flag
110128// is omitted or false, only scopes of the scope types where the
110129// resource type is expected to be found will be included.
110130func (c *PacketMirroringsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *PacketMirroringsAggregatedListCall {
110131	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
110132	return c
110133}
110134
110135// MaxResults sets the optional parameter "maxResults": The maximum
110136// number of results per page that should be returned. If the number of
110137// available results is larger than `maxResults`, Compute Engine returns
110138// a `nextPageToken` that can be used to get the next page of results in
110139// subsequent list requests. Acceptable values are `0` to `500`,
110140// inclusive. (Default: `500`)
110141func (c *PacketMirroringsAggregatedListCall) MaxResults(maxResults int64) *PacketMirroringsAggregatedListCall {
110142	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
110143	return c
110144}
110145
110146// OrderBy sets the optional parameter "orderBy": Sorts list results by
110147// a certain order. By default, results are returned in alphanumerical
110148// order based on the resource name. You can also sort results in
110149// descending order based on the creation timestamp using
110150// `orderBy="creationTimestamp desc". This sorts results based on the
110151// `creationTimestamp` field in reverse chronological order (newest
110152// result first). Use this to sort resources like operations so that the
110153// newest operation is returned first. Currently, only sorting by `name`
110154// or `creationTimestamp desc` is supported.
110155func (c *PacketMirroringsAggregatedListCall) OrderBy(orderBy string) *PacketMirroringsAggregatedListCall {
110156	c.urlParams_.Set("orderBy", orderBy)
110157	return c
110158}
110159
110160// PageToken sets the optional parameter "pageToken": Specifies a page
110161// token to use. Set `pageToken` to the `nextPageToken` returned by a
110162// previous list request to get the next page of results.
110163func (c *PacketMirroringsAggregatedListCall) PageToken(pageToken string) *PacketMirroringsAggregatedListCall {
110164	c.urlParams_.Set("pageToken", pageToken)
110165	return c
110166}
110167
110168// ReturnPartialSuccess sets the optional parameter
110169// "returnPartialSuccess": Opt-in for partial success behavior which
110170// provides partial results in case of failure. The default value is
110171// false.
110172func (c *PacketMirroringsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PacketMirroringsAggregatedListCall {
110173	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
110174	return c
110175}
110176
110177// Fields allows partial responses to be retrieved. See
110178// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110179// for more information.
110180func (c *PacketMirroringsAggregatedListCall) Fields(s ...googleapi.Field) *PacketMirroringsAggregatedListCall {
110181	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110182	return c
110183}
110184
110185// IfNoneMatch sets the optional parameter which makes the operation
110186// fail if the object's ETag matches the given value. This is useful for
110187// getting updates only after the object has changed since the last
110188// request. Use googleapi.IsNotModified to check whether the response
110189// error from Do is the result of In-None-Match.
110190func (c *PacketMirroringsAggregatedListCall) IfNoneMatch(entityTag string) *PacketMirroringsAggregatedListCall {
110191	c.ifNoneMatch_ = entityTag
110192	return c
110193}
110194
110195// Context sets the context to be used in this call's Do method. Any
110196// pending HTTP request will be aborted if the provided context is
110197// canceled.
110198func (c *PacketMirroringsAggregatedListCall) Context(ctx context.Context) *PacketMirroringsAggregatedListCall {
110199	c.ctx_ = ctx
110200	return c
110201}
110202
110203// Header returns an http.Header that can be modified by the caller to
110204// add HTTP headers to the request.
110205func (c *PacketMirroringsAggregatedListCall) Header() http.Header {
110206	if c.header_ == nil {
110207		c.header_ = make(http.Header)
110208	}
110209	return c.header_
110210}
110211
110212func (c *PacketMirroringsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
110213	reqHeaders := make(http.Header)
110214	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
110215	for k, v := range c.header_ {
110216		reqHeaders[k] = v
110217	}
110218	reqHeaders.Set("User-Agent", c.s.userAgent())
110219	if c.ifNoneMatch_ != "" {
110220		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
110221	}
110222	var body io.Reader = nil
110223	c.urlParams_.Set("alt", alt)
110224	c.urlParams_.Set("prettyPrint", "false")
110225	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/packetMirrorings")
110226	urls += "?" + c.urlParams_.Encode()
110227	req, err := http.NewRequest("GET", urls, body)
110228	if err != nil {
110229		return nil, err
110230	}
110231	req.Header = reqHeaders
110232	googleapi.Expand(req.URL, map[string]string{
110233		"project": c.project,
110234	})
110235	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110236}
110237
110238// Do executes the "compute.packetMirrorings.aggregatedList" call.
110239// Exactly one of *PacketMirroringAggregatedList or error will be
110240// non-nil. Any non-2xx status code is an error. Response headers are in
110241// either *PacketMirroringAggregatedList.ServerResponse.Header or (if a
110242// response was returned at all) in error.(*googleapi.Error).Header. Use
110243// googleapi.IsNotModified to check whether the returned error was
110244// because http.StatusNotModified was returned.
110245func (c *PacketMirroringsAggregatedListCall) Do(opts ...googleapi.CallOption) (*PacketMirroringAggregatedList, error) {
110246	gensupport.SetOptions(c.urlParams_, opts...)
110247	res, err := c.doRequest("json")
110248	if res != nil && res.StatusCode == http.StatusNotModified {
110249		if res.Body != nil {
110250			res.Body.Close()
110251		}
110252		return nil, &googleapi.Error{
110253			Code:   res.StatusCode,
110254			Header: res.Header,
110255		}
110256	}
110257	if err != nil {
110258		return nil, err
110259	}
110260	defer googleapi.CloseBody(res)
110261	if err := googleapi.CheckResponse(res); err != nil {
110262		return nil, err
110263	}
110264	ret := &PacketMirroringAggregatedList{
110265		ServerResponse: googleapi.ServerResponse{
110266			Header:         res.Header,
110267			HTTPStatusCode: res.StatusCode,
110268		},
110269	}
110270	target := &ret
110271	if err := gensupport.DecodeResponse(target, res); err != nil {
110272		return nil, err
110273	}
110274	return ret, nil
110275	// {
110276	//   "description": "Retrieves an aggregated list of packetMirrorings.",
110277	//   "flatPath": "projects/{project}/aggregated/packetMirrorings",
110278	//   "httpMethod": "GET",
110279	//   "id": "compute.packetMirrorings.aggregatedList",
110280	//   "parameterOrder": [
110281	//     "project"
110282	//   ],
110283	//   "parameters": {
110284	//     "filter": {
110285	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
110286	//       "location": "query",
110287	//       "type": "string"
110288	//     },
110289	//     "includeAllScopes": {
110290	//       "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.",
110291	//       "location": "query",
110292	//       "type": "boolean"
110293	//     },
110294	//     "maxResults": {
110295	//       "default": "500",
110296	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
110297	//       "format": "uint32",
110298	//       "location": "query",
110299	//       "minimum": "0",
110300	//       "type": "integer"
110301	//     },
110302	//     "orderBy": {
110303	//       "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.",
110304	//       "location": "query",
110305	//       "type": "string"
110306	//     },
110307	//     "pageToken": {
110308	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
110309	//       "location": "query",
110310	//       "type": "string"
110311	//     },
110312	//     "project": {
110313	//       "description": "Project ID for this request.",
110314	//       "location": "path",
110315	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110316	//       "required": true,
110317	//       "type": "string"
110318	//     },
110319	//     "returnPartialSuccess": {
110320	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
110321	//       "location": "query",
110322	//       "type": "boolean"
110323	//     }
110324	//   },
110325	//   "path": "projects/{project}/aggregated/packetMirrorings",
110326	//   "response": {
110327	//     "$ref": "PacketMirroringAggregatedList"
110328	//   },
110329	//   "scopes": [
110330	//     "https://www.googleapis.com/auth/cloud-platform",
110331	//     "https://www.googleapis.com/auth/compute",
110332	//     "https://www.googleapis.com/auth/compute.readonly"
110333	//   ]
110334	// }
110335
110336}
110337
110338// Pages invokes f for each page of results.
110339// A non-nil error returned from f will halt the iteration.
110340// The provided context supersedes any context provided to the Context method.
110341func (c *PacketMirroringsAggregatedListCall) Pages(ctx context.Context, f func(*PacketMirroringAggregatedList) error) error {
110342	c.ctx_ = ctx
110343	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
110344	for {
110345		x, err := c.Do()
110346		if err != nil {
110347			return err
110348		}
110349		if err := f(x); err != nil {
110350			return err
110351		}
110352		if x.NextPageToken == "" {
110353			return nil
110354		}
110355		c.PageToken(x.NextPageToken)
110356	}
110357}
110358
110359// method id "compute.packetMirrorings.delete":
110360
110361type PacketMirroringsDeleteCall struct {
110362	s               *Service
110363	project         string
110364	region          string
110365	packetMirroring string
110366	urlParams_      gensupport.URLParams
110367	ctx_            context.Context
110368	header_         http.Header
110369}
110370
110371// Delete: Deletes the specified PacketMirroring resource.
110372//
110373// - packetMirroring: Name of the PacketMirroring resource to delete.
110374// - project: Project ID for this request.
110375// - region: Name of the region for this request.
110376func (r *PacketMirroringsService) Delete(project string, region string, packetMirroring string) *PacketMirroringsDeleteCall {
110377	c := &PacketMirroringsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110378	c.project = project
110379	c.region = region
110380	c.packetMirroring = packetMirroring
110381	return c
110382}
110383
110384// RequestId sets the optional parameter "requestId": An optional
110385// request ID to identify requests. Specify a unique request ID so that
110386// if you must retry your request, the server will know to ignore the
110387// request if it has already been completed. For example, consider a
110388// situation where you make an initial request and the request times
110389// out. If you make the request again with the same request ID, the
110390// server can check if original operation with the same request ID was
110391// received, and if so, will ignore the second request. This prevents
110392// clients from accidentally creating duplicate commitments. The request
110393// ID must be a valid UUID with the exception that zero UUID is not
110394// supported ( 00000000-0000-0000-0000-000000000000).
110395func (c *PacketMirroringsDeleteCall) RequestId(requestId string) *PacketMirroringsDeleteCall {
110396	c.urlParams_.Set("requestId", requestId)
110397	return c
110398}
110399
110400// Fields allows partial responses to be retrieved. See
110401// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110402// for more information.
110403func (c *PacketMirroringsDeleteCall) Fields(s ...googleapi.Field) *PacketMirroringsDeleteCall {
110404	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110405	return c
110406}
110407
110408// Context sets the context to be used in this call's Do method. Any
110409// pending HTTP request will be aborted if the provided context is
110410// canceled.
110411func (c *PacketMirroringsDeleteCall) Context(ctx context.Context) *PacketMirroringsDeleteCall {
110412	c.ctx_ = ctx
110413	return c
110414}
110415
110416// Header returns an http.Header that can be modified by the caller to
110417// add HTTP headers to the request.
110418func (c *PacketMirroringsDeleteCall) Header() http.Header {
110419	if c.header_ == nil {
110420		c.header_ = make(http.Header)
110421	}
110422	return c.header_
110423}
110424
110425func (c *PacketMirroringsDeleteCall) doRequest(alt string) (*http.Response, error) {
110426	reqHeaders := make(http.Header)
110427	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
110428	for k, v := range c.header_ {
110429		reqHeaders[k] = v
110430	}
110431	reqHeaders.Set("User-Agent", c.s.userAgent())
110432	var body io.Reader = nil
110433	c.urlParams_.Set("alt", alt)
110434	c.urlParams_.Set("prettyPrint", "false")
110435	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}")
110436	urls += "?" + c.urlParams_.Encode()
110437	req, err := http.NewRequest("DELETE", urls, body)
110438	if err != nil {
110439		return nil, err
110440	}
110441	req.Header = reqHeaders
110442	googleapi.Expand(req.URL, map[string]string{
110443		"project":         c.project,
110444		"region":          c.region,
110445		"packetMirroring": c.packetMirroring,
110446	})
110447	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110448}
110449
110450// Do executes the "compute.packetMirrorings.delete" call.
110451// Exactly one of *Operation or error will be non-nil. Any non-2xx
110452// status code is an error. Response headers are in either
110453// *Operation.ServerResponse.Header or (if a response was returned at
110454// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
110455// to check whether the returned error was because
110456// http.StatusNotModified was returned.
110457func (c *PacketMirroringsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
110458	gensupport.SetOptions(c.urlParams_, opts...)
110459	res, err := c.doRequest("json")
110460	if res != nil && res.StatusCode == http.StatusNotModified {
110461		if res.Body != nil {
110462			res.Body.Close()
110463		}
110464		return nil, &googleapi.Error{
110465			Code:   res.StatusCode,
110466			Header: res.Header,
110467		}
110468	}
110469	if err != nil {
110470		return nil, err
110471	}
110472	defer googleapi.CloseBody(res)
110473	if err := googleapi.CheckResponse(res); err != nil {
110474		return nil, err
110475	}
110476	ret := &Operation{
110477		ServerResponse: googleapi.ServerResponse{
110478			Header:         res.Header,
110479			HTTPStatusCode: res.StatusCode,
110480		},
110481	}
110482	target := &ret
110483	if err := gensupport.DecodeResponse(target, res); err != nil {
110484		return nil, err
110485	}
110486	return ret, nil
110487	// {
110488	//   "description": "Deletes the specified PacketMirroring resource.",
110489	//   "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}",
110490	//   "httpMethod": "DELETE",
110491	//   "id": "compute.packetMirrorings.delete",
110492	//   "parameterOrder": [
110493	//     "project",
110494	//     "region",
110495	//     "packetMirroring"
110496	//   ],
110497	//   "parameters": {
110498	//     "packetMirroring": {
110499	//       "description": "Name of the PacketMirroring resource to delete.",
110500	//       "location": "path",
110501	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
110502	//       "required": true,
110503	//       "type": "string"
110504	//     },
110505	//     "project": {
110506	//       "description": "Project ID for this request.",
110507	//       "location": "path",
110508	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110509	//       "required": true,
110510	//       "type": "string"
110511	//     },
110512	//     "region": {
110513	//       "description": "Name of the region for this request.",
110514	//       "location": "path",
110515	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110516	//       "required": true,
110517	//       "type": "string"
110518	//     },
110519	//     "requestId": {
110520	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
110521	//       "location": "query",
110522	//       "type": "string"
110523	//     }
110524	//   },
110525	//   "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}",
110526	//   "response": {
110527	//     "$ref": "Operation"
110528	//   },
110529	//   "scopes": [
110530	//     "https://www.googleapis.com/auth/cloud-platform",
110531	//     "https://www.googleapis.com/auth/compute"
110532	//   ]
110533	// }
110534
110535}
110536
110537// method id "compute.packetMirrorings.get":
110538
110539type PacketMirroringsGetCall struct {
110540	s               *Service
110541	project         string
110542	region          string
110543	packetMirroring string
110544	urlParams_      gensupport.URLParams
110545	ifNoneMatch_    string
110546	ctx_            context.Context
110547	header_         http.Header
110548}
110549
110550// Get: Returns the specified PacketMirroring resource.
110551//
110552// - packetMirroring: Name of the PacketMirroring resource to return.
110553// - project: Project ID for this request.
110554// - region: Name of the region for this request.
110555func (r *PacketMirroringsService) Get(project string, region string, packetMirroring string) *PacketMirroringsGetCall {
110556	c := &PacketMirroringsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110557	c.project = project
110558	c.region = region
110559	c.packetMirroring = packetMirroring
110560	return c
110561}
110562
110563// Fields allows partial responses to be retrieved. See
110564// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110565// for more information.
110566func (c *PacketMirroringsGetCall) Fields(s ...googleapi.Field) *PacketMirroringsGetCall {
110567	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110568	return c
110569}
110570
110571// IfNoneMatch sets the optional parameter which makes the operation
110572// fail if the object's ETag matches the given value. This is useful for
110573// getting updates only after the object has changed since the last
110574// request. Use googleapi.IsNotModified to check whether the response
110575// error from Do is the result of In-None-Match.
110576func (c *PacketMirroringsGetCall) IfNoneMatch(entityTag string) *PacketMirroringsGetCall {
110577	c.ifNoneMatch_ = entityTag
110578	return c
110579}
110580
110581// Context sets the context to be used in this call's Do method. Any
110582// pending HTTP request will be aborted if the provided context is
110583// canceled.
110584func (c *PacketMirroringsGetCall) Context(ctx context.Context) *PacketMirroringsGetCall {
110585	c.ctx_ = ctx
110586	return c
110587}
110588
110589// Header returns an http.Header that can be modified by the caller to
110590// add HTTP headers to the request.
110591func (c *PacketMirroringsGetCall) Header() http.Header {
110592	if c.header_ == nil {
110593		c.header_ = make(http.Header)
110594	}
110595	return c.header_
110596}
110597
110598func (c *PacketMirroringsGetCall) doRequest(alt string) (*http.Response, error) {
110599	reqHeaders := make(http.Header)
110600	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
110601	for k, v := range c.header_ {
110602		reqHeaders[k] = v
110603	}
110604	reqHeaders.Set("User-Agent", c.s.userAgent())
110605	if c.ifNoneMatch_ != "" {
110606		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
110607	}
110608	var body io.Reader = nil
110609	c.urlParams_.Set("alt", alt)
110610	c.urlParams_.Set("prettyPrint", "false")
110611	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}")
110612	urls += "?" + c.urlParams_.Encode()
110613	req, err := http.NewRequest("GET", urls, body)
110614	if err != nil {
110615		return nil, err
110616	}
110617	req.Header = reqHeaders
110618	googleapi.Expand(req.URL, map[string]string{
110619		"project":         c.project,
110620		"region":          c.region,
110621		"packetMirroring": c.packetMirroring,
110622	})
110623	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110624}
110625
110626// Do executes the "compute.packetMirrorings.get" call.
110627// Exactly one of *PacketMirroring or error will be non-nil. Any non-2xx
110628// status code is an error. Response headers are in either
110629// *PacketMirroring.ServerResponse.Header or (if a response was returned
110630// at all) in error.(*googleapi.Error).Header. Use
110631// googleapi.IsNotModified to check whether the returned error was
110632// because http.StatusNotModified was returned.
110633func (c *PacketMirroringsGetCall) Do(opts ...googleapi.CallOption) (*PacketMirroring, error) {
110634	gensupport.SetOptions(c.urlParams_, opts...)
110635	res, err := c.doRequest("json")
110636	if res != nil && res.StatusCode == http.StatusNotModified {
110637		if res.Body != nil {
110638			res.Body.Close()
110639		}
110640		return nil, &googleapi.Error{
110641			Code:   res.StatusCode,
110642			Header: res.Header,
110643		}
110644	}
110645	if err != nil {
110646		return nil, err
110647	}
110648	defer googleapi.CloseBody(res)
110649	if err := googleapi.CheckResponse(res); err != nil {
110650		return nil, err
110651	}
110652	ret := &PacketMirroring{
110653		ServerResponse: googleapi.ServerResponse{
110654			Header:         res.Header,
110655			HTTPStatusCode: res.StatusCode,
110656		},
110657	}
110658	target := &ret
110659	if err := gensupport.DecodeResponse(target, res); err != nil {
110660		return nil, err
110661	}
110662	return ret, nil
110663	// {
110664	//   "description": "Returns the specified PacketMirroring resource.",
110665	//   "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}",
110666	//   "httpMethod": "GET",
110667	//   "id": "compute.packetMirrorings.get",
110668	//   "parameterOrder": [
110669	//     "project",
110670	//     "region",
110671	//     "packetMirroring"
110672	//   ],
110673	//   "parameters": {
110674	//     "packetMirroring": {
110675	//       "description": "Name of the PacketMirroring resource to return.",
110676	//       "location": "path",
110677	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
110678	//       "required": true,
110679	//       "type": "string"
110680	//     },
110681	//     "project": {
110682	//       "description": "Project ID for this request.",
110683	//       "location": "path",
110684	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110685	//       "required": true,
110686	//       "type": "string"
110687	//     },
110688	//     "region": {
110689	//       "description": "Name of the region for this request.",
110690	//       "location": "path",
110691	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110692	//       "required": true,
110693	//       "type": "string"
110694	//     }
110695	//   },
110696	//   "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}",
110697	//   "response": {
110698	//     "$ref": "PacketMirroring"
110699	//   },
110700	//   "scopes": [
110701	//     "https://www.googleapis.com/auth/cloud-platform",
110702	//     "https://www.googleapis.com/auth/compute",
110703	//     "https://www.googleapis.com/auth/compute.readonly"
110704	//   ]
110705	// }
110706
110707}
110708
110709// method id "compute.packetMirrorings.insert":
110710
110711type PacketMirroringsInsertCall struct {
110712	s               *Service
110713	project         string
110714	region          string
110715	packetmirroring *PacketMirroring
110716	urlParams_      gensupport.URLParams
110717	ctx_            context.Context
110718	header_         http.Header
110719}
110720
110721// Insert: Creates a PacketMirroring resource in the specified project
110722// and region using the data included in the request.
110723//
110724// - project: Project ID for this request.
110725// - region: Name of the region for this request.
110726func (r *PacketMirroringsService) Insert(project string, region string, packetmirroring *PacketMirroring) *PacketMirroringsInsertCall {
110727	c := &PacketMirroringsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110728	c.project = project
110729	c.region = region
110730	c.packetmirroring = packetmirroring
110731	return c
110732}
110733
110734// RequestId sets the optional parameter "requestId": An optional
110735// request ID to identify requests. Specify a unique request ID so that
110736// if you must retry your request, the server will know to ignore the
110737// request if it has already been completed. For example, consider a
110738// situation where you make an initial request and the request times
110739// out. If you make the request again with the same request ID, the
110740// server can check if original operation with the same request ID was
110741// received, and if so, will ignore the second request. This prevents
110742// clients from accidentally creating duplicate commitments. The request
110743// ID must be a valid UUID with the exception that zero UUID is not
110744// supported ( 00000000-0000-0000-0000-000000000000).
110745func (c *PacketMirroringsInsertCall) RequestId(requestId string) *PacketMirroringsInsertCall {
110746	c.urlParams_.Set("requestId", requestId)
110747	return c
110748}
110749
110750// Fields allows partial responses to be retrieved. See
110751// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110752// for more information.
110753func (c *PacketMirroringsInsertCall) Fields(s ...googleapi.Field) *PacketMirroringsInsertCall {
110754	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110755	return c
110756}
110757
110758// Context sets the context to be used in this call's Do method. Any
110759// pending HTTP request will be aborted if the provided context is
110760// canceled.
110761func (c *PacketMirroringsInsertCall) Context(ctx context.Context) *PacketMirroringsInsertCall {
110762	c.ctx_ = ctx
110763	return c
110764}
110765
110766// Header returns an http.Header that can be modified by the caller to
110767// add HTTP headers to the request.
110768func (c *PacketMirroringsInsertCall) Header() http.Header {
110769	if c.header_ == nil {
110770		c.header_ = make(http.Header)
110771	}
110772	return c.header_
110773}
110774
110775func (c *PacketMirroringsInsertCall) doRequest(alt string) (*http.Response, error) {
110776	reqHeaders := make(http.Header)
110777	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
110778	for k, v := range c.header_ {
110779		reqHeaders[k] = v
110780	}
110781	reqHeaders.Set("User-Agent", c.s.userAgent())
110782	var body io.Reader = nil
110783	body, err := googleapi.WithoutDataWrapper.JSONReader(c.packetmirroring)
110784	if err != nil {
110785		return nil, err
110786	}
110787	reqHeaders.Set("Content-Type", "application/json")
110788	c.urlParams_.Set("alt", alt)
110789	c.urlParams_.Set("prettyPrint", "false")
110790	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings")
110791	urls += "?" + c.urlParams_.Encode()
110792	req, err := http.NewRequest("POST", urls, body)
110793	if err != nil {
110794		return nil, err
110795	}
110796	req.Header = reqHeaders
110797	googleapi.Expand(req.URL, map[string]string{
110798		"project": c.project,
110799		"region":  c.region,
110800	})
110801	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110802}
110803
110804// Do executes the "compute.packetMirrorings.insert" call.
110805// Exactly one of *Operation or error will be non-nil. Any non-2xx
110806// status code is an error. Response headers are in either
110807// *Operation.ServerResponse.Header or (if a response was returned at
110808// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
110809// to check whether the returned error was because
110810// http.StatusNotModified was returned.
110811func (c *PacketMirroringsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
110812	gensupport.SetOptions(c.urlParams_, opts...)
110813	res, err := c.doRequest("json")
110814	if res != nil && res.StatusCode == http.StatusNotModified {
110815		if res.Body != nil {
110816			res.Body.Close()
110817		}
110818		return nil, &googleapi.Error{
110819			Code:   res.StatusCode,
110820			Header: res.Header,
110821		}
110822	}
110823	if err != nil {
110824		return nil, err
110825	}
110826	defer googleapi.CloseBody(res)
110827	if err := googleapi.CheckResponse(res); err != nil {
110828		return nil, err
110829	}
110830	ret := &Operation{
110831		ServerResponse: googleapi.ServerResponse{
110832			Header:         res.Header,
110833			HTTPStatusCode: res.StatusCode,
110834		},
110835	}
110836	target := &ret
110837	if err := gensupport.DecodeResponse(target, res); err != nil {
110838		return nil, err
110839	}
110840	return ret, nil
110841	// {
110842	//   "description": "Creates a PacketMirroring resource in the specified project and region using the data included in the request.",
110843	//   "flatPath": "projects/{project}/regions/{region}/packetMirrorings",
110844	//   "httpMethod": "POST",
110845	//   "id": "compute.packetMirrorings.insert",
110846	//   "parameterOrder": [
110847	//     "project",
110848	//     "region"
110849	//   ],
110850	//   "parameters": {
110851	//     "project": {
110852	//       "description": "Project ID for this request.",
110853	//       "location": "path",
110854	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110855	//       "required": true,
110856	//       "type": "string"
110857	//     },
110858	//     "region": {
110859	//       "description": "Name of the region for this request.",
110860	//       "location": "path",
110861	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110862	//       "required": true,
110863	//       "type": "string"
110864	//     },
110865	//     "requestId": {
110866	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
110867	//       "location": "query",
110868	//       "type": "string"
110869	//     }
110870	//   },
110871	//   "path": "projects/{project}/regions/{region}/packetMirrorings",
110872	//   "request": {
110873	//     "$ref": "PacketMirroring"
110874	//   },
110875	//   "response": {
110876	//     "$ref": "Operation"
110877	//   },
110878	//   "scopes": [
110879	//     "https://www.googleapis.com/auth/cloud-platform",
110880	//     "https://www.googleapis.com/auth/compute"
110881	//   ]
110882	// }
110883
110884}
110885
110886// method id "compute.packetMirrorings.list":
110887
110888type PacketMirroringsListCall struct {
110889	s            *Service
110890	project      string
110891	region       string
110892	urlParams_   gensupport.URLParams
110893	ifNoneMatch_ string
110894	ctx_         context.Context
110895	header_      http.Header
110896}
110897
110898// List: Retrieves a list of PacketMirroring resources available to the
110899// specified project and region.
110900//
110901// - project: Project ID for this request.
110902// - region: Name of the region for this request.
110903func (r *PacketMirroringsService) List(project string, region string) *PacketMirroringsListCall {
110904	c := &PacketMirroringsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110905	c.project = project
110906	c.region = region
110907	return c
110908}
110909
110910// Filter sets the optional parameter "filter": A filter expression that
110911// filters resources listed in the response. The expression must specify
110912// the field name, a comparison operator, and the value that you want to
110913// use for filtering. The value must be a string, a number, or a
110914// boolean. The comparison operator must be either `=`, `!=`, `>`, or
110915// `<`. For example, if you are filtering Compute Engine instances, you
110916// can exclude instances named `example-instance` by specifying `name !=
110917// example-instance`. You can also filter nested fields. For example,
110918// you could specify `scheduling.automaticRestart = false` to include
110919// instances only if they are not scheduled for automatic restarts. You
110920// can use filtering on nested fields to filter based on resource
110921// labels. To filter on multiple expressions, provide each separate
110922// expression within parentheses. For example: ```
110923// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
110924// ``` By default, each expression is an `AND` expression. However, you
110925// can include `AND` and `OR` expressions explicitly. For example: ```
110926// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
110927// AND (scheduling.automaticRestart = true) ```
110928func (c *PacketMirroringsListCall) Filter(filter string) *PacketMirroringsListCall {
110929	c.urlParams_.Set("filter", filter)
110930	return c
110931}
110932
110933// MaxResults sets the optional parameter "maxResults": The maximum
110934// number of results per page that should be returned. If the number of
110935// available results is larger than `maxResults`, Compute Engine returns
110936// a `nextPageToken` that can be used to get the next page of results in
110937// subsequent list requests. Acceptable values are `0` to `500`,
110938// inclusive. (Default: `500`)
110939func (c *PacketMirroringsListCall) MaxResults(maxResults int64) *PacketMirroringsListCall {
110940	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
110941	return c
110942}
110943
110944// OrderBy sets the optional parameter "orderBy": Sorts list results by
110945// a certain order. By default, results are returned in alphanumerical
110946// order based on the resource name. You can also sort results in
110947// descending order based on the creation timestamp using
110948// `orderBy="creationTimestamp desc". This sorts results based on the
110949// `creationTimestamp` field in reverse chronological order (newest
110950// result first). Use this to sort resources like operations so that the
110951// newest operation is returned first. Currently, only sorting by `name`
110952// or `creationTimestamp desc` is supported.
110953func (c *PacketMirroringsListCall) OrderBy(orderBy string) *PacketMirroringsListCall {
110954	c.urlParams_.Set("orderBy", orderBy)
110955	return c
110956}
110957
110958// PageToken sets the optional parameter "pageToken": Specifies a page
110959// token to use. Set `pageToken` to the `nextPageToken` returned by a
110960// previous list request to get the next page of results.
110961func (c *PacketMirroringsListCall) PageToken(pageToken string) *PacketMirroringsListCall {
110962	c.urlParams_.Set("pageToken", pageToken)
110963	return c
110964}
110965
110966// ReturnPartialSuccess sets the optional parameter
110967// "returnPartialSuccess": Opt-in for partial success behavior which
110968// provides partial results in case of failure. The default value is
110969// false.
110970func (c *PacketMirroringsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PacketMirroringsListCall {
110971	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
110972	return c
110973}
110974
110975// Fields allows partial responses to be retrieved. See
110976// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110977// for more information.
110978func (c *PacketMirroringsListCall) Fields(s ...googleapi.Field) *PacketMirroringsListCall {
110979	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110980	return c
110981}
110982
110983// IfNoneMatch sets the optional parameter which makes the operation
110984// fail if the object's ETag matches the given value. This is useful for
110985// getting updates only after the object has changed since the last
110986// request. Use googleapi.IsNotModified to check whether the response
110987// error from Do is the result of In-None-Match.
110988func (c *PacketMirroringsListCall) IfNoneMatch(entityTag string) *PacketMirroringsListCall {
110989	c.ifNoneMatch_ = entityTag
110990	return c
110991}
110992
110993// Context sets the context to be used in this call's Do method. Any
110994// pending HTTP request will be aborted if the provided context is
110995// canceled.
110996func (c *PacketMirroringsListCall) Context(ctx context.Context) *PacketMirroringsListCall {
110997	c.ctx_ = ctx
110998	return c
110999}
111000
111001// Header returns an http.Header that can be modified by the caller to
111002// add HTTP headers to the request.
111003func (c *PacketMirroringsListCall) Header() http.Header {
111004	if c.header_ == nil {
111005		c.header_ = make(http.Header)
111006	}
111007	return c.header_
111008}
111009
111010func (c *PacketMirroringsListCall) doRequest(alt string) (*http.Response, error) {
111011	reqHeaders := make(http.Header)
111012	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
111013	for k, v := range c.header_ {
111014		reqHeaders[k] = v
111015	}
111016	reqHeaders.Set("User-Agent", c.s.userAgent())
111017	if c.ifNoneMatch_ != "" {
111018		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
111019	}
111020	var body io.Reader = nil
111021	c.urlParams_.Set("alt", alt)
111022	c.urlParams_.Set("prettyPrint", "false")
111023	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings")
111024	urls += "?" + c.urlParams_.Encode()
111025	req, err := http.NewRequest("GET", urls, body)
111026	if err != nil {
111027		return nil, err
111028	}
111029	req.Header = reqHeaders
111030	googleapi.Expand(req.URL, map[string]string{
111031		"project": c.project,
111032		"region":  c.region,
111033	})
111034	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111035}
111036
111037// Do executes the "compute.packetMirrorings.list" call.
111038// Exactly one of *PacketMirroringList or error will be non-nil. Any
111039// non-2xx status code is an error. Response headers are in either
111040// *PacketMirroringList.ServerResponse.Header or (if a response was
111041// returned at all) in error.(*googleapi.Error).Header. Use
111042// googleapi.IsNotModified to check whether the returned error was
111043// because http.StatusNotModified was returned.
111044func (c *PacketMirroringsListCall) Do(opts ...googleapi.CallOption) (*PacketMirroringList, error) {
111045	gensupport.SetOptions(c.urlParams_, opts...)
111046	res, err := c.doRequest("json")
111047	if res != nil && res.StatusCode == http.StatusNotModified {
111048		if res.Body != nil {
111049			res.Body.Close()
111050		}
111051		return nil, &googleapi.Error{
111052			Code:   res.StatusCode,
111053			Header: res.Header,
111054		}
111055	}
111056	if err != nil {
111057		return nil, err
111058	}
111059	defer googleapi.CloseBody(res)
111060	if err := googleapi.CheckResponse(res); err != nil {
111061		return nil, err
111062	}
111063	ret := &PacketMirroringList{
111064		ServerResponse: googleapi.ServerResponse{
111065			Header:         res.Header,
111066			HTTPStatusCode: res.StatusCode,
111067		},
111068	}
111069	target := &ret
111070	if err := gensupport.DecodeResponse(target, res); err != nil {
111071		return nil, err
111072	}
111073	return ret, nil
111074	// {
111075	//   "description": "Retrieves a list of PacketMirroring resources available to the specified project and region.",
111076	//   "flatPath": "projects/{project}/regions/{region}/packetMirrorings",
111077	//   "httpMethod": "GET",
111078	//   "id": "compute.packetMirrorings.list",
111079	//   "parameterOrder": [
111080	//     "project",
111081	//     "region"
111082	//   ],
111083	//   "parameters": {
111084	//     "filter": {
111085	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
111086	//       "location": "query",
111087	//       "type": "string"
111088	//     },
111089	//     "maxResults": {
111090	//       "default": "500",
111091	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
111092	//       "format": "uint32",
111093	//       "location": "query",
111094	//       "minimum": "0",
111095	//       "type": "integer"
111096	//     },
111097	//     "orderBy": {
111098	//       "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.",
111099	//       "location": "query",
111100	//       "type": "string"
111101	//     },
111102	//     "pageToken": {
111103	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
111104	//       "location": "query",
111105	//       "type": "string"
111106	//     },
111107	//     "project": {
111108	//       "description": "Project ID for this request.",
111109	//       "location": "path",
111110	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111111	//       "required": true,
111112	//       "type": "string"
111113	//     },
111114	//     "region": {
111115	//       "description": "Name of the region for this request.",
111116	//       "location": "path",
111117	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111118	//       "required": true,
111119	//       "type": "string"
111120	//     },
111121	//     "returnPartialSuccess": {
111122	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
111123	//       "location": "query",
111124	//       "type": "boolean"
111125	//     }
111126	//   },
111127	//   "path": "projects/{project}/regions/{region}/packetMirrorings",
111128	//   "response": {
111129	//     "$ref": "PacketMirroringList"
111130	//   },
111131	//   "scopes": [
111132	//     "https://www.googleapis.com/auth/cloud-platform",
111133	//     "https://www.googleapis.com/auth/compute",
111134	//     "https://www.googleapis.com/auth/compute.readonly"
111135	//   ]
111136	// }
111137
111138}
111139
111140// Pages invokes f for each page of results.
111141// A non-nil error returned from f will halt the iteration.
111142// The provided context supersedes any context provided to the Context method.
111143func (c *PacketMirroringsListCall) Pages(ctx context.Context, f func(*PacketMirroringList) error) error {
111144	c.ctx_ = ctx
111145	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
111146	for {
111147		x, err := c.Do()
111148		if err != nil {
111149			return err
111150		}
111151		if err := f(x); err != nil {
111152			return err
111153		}
111154		if x.NextPageToken == "" {
111155			return nil
111156		}
111157		c.PageToken(x.NextPageToken)
111158	}
111159}
111160
111161// method id "compute.packetMirrorings.patch":
111162
111163type PacketMirroringsPatchCall struct {
111164	s               *Service
111165	project         string
111166	region          string
111167	packetMirroring string
111168	packetmirroring *PacketMirroring
111169	urlParams_      gensupport.URLParams
111170	ctx_            context.Context
111171	header_         http.Header
111172}
111173
111174// Patch: Patches the specified PacketMirroring resource with the data
111175// included in the request. This method supports PATCH semantics and
111176// uses JSON merge patch format and processing rules.
111177//
111178// - packetMirroring: Name of the PacketMirroring resource to patch.
111179// - project: Project ID for this request.
111180// - region: Name of the region for this request.
111181func (r *PacketMirroringsService) Patch(project string, region string, packetMirroring string, packetmirroring *PacketMirroring) *PacketMirroringsPatchCall {
111182	c := &PacketMirroringsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111183	c.project = project
111184	c.region = region
111185	c.packetMirroring = packetMirroring
111186	c.packetmirroring = packetmirroring
111187	return c
111188}
111189
111190// RequestId sets the optional parameter "requestId": An optional
111191// request ID to identify requests. Specify a unique request ID so that
111192// if you must retry your request, the server will know to ignore the
111193// request if it has already been completed. For example, consider a
111194// situation where you make an initial request and the request times
111195// out. If you make the request again with the same request ID, the
111196// server can check if original operation with the same request ID was
111197// received, and if so, will ignore the second request. This prevents
111198// clients from accidentally creating duplicate commitments. The request
111199// ID must be a valid UUID with the exception that zero UUID is not
111200// supported ( 00000000-0000-0000-0000-000000000000).
111201func (c *PacketMirroringsPatchCall) RequestId(requestId string) *PacketMirroringsPatchCall {
111202	c.urlParams_.Set("requestId", requestId)
111203	return c
111204}
111205
111206// Fields allows partial responses to be retrieved. See
111207// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111208// for more information.
111209func (c *PacketMirroringsPatchCall) Fields(s ...googleapi.Field) *PacketMirroringsPatchCall {
111210	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111211	return c
111212}
111213
111214// Context sets the context to be used in this call's Do method. Any
111215// pending HTTP request will be aborted if the provided context is
111216// canceled.
111217func (c *PacketMirroringsPatchCall) Context(ctx context.Context) *PacketMirroringsPatchCall {
111218	c.ctx_ = ctx
111219	return c
111220}
111221
111222// Header returns an http.Header that can be modified by the caller to
111223// add HTTP headers to the request.
111224func (c *PacketMirroringsPatchCall) Header() http.Header {
111225	if c.header_ == nil {
111226		c.header_ = make(http.Header)
111227	}
111228	return c.header_
111229}
111230
111231func (c *PacketMirroringsPatchCall) doRequest(alt string) (*http.Response, error) {
111232	reqHeaders := make(http.Header)
111233	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
111234	for k, v := range c.header_ {
111235		reqHeaders[k] = v
111236	}
111237	reqHeaders.Set("User-Agent", c.s.userAgent())
111238	var body io.Reader = nil
111239	body, err := googleapi.WithoutDataWrapper.JSONReader(c.packetmirroring)
111240	if err != nil {
111241		return nil, err
111242	}
111243	reqHeaders.Set("Content-Type", "application/json")
111244	c.urlParams_.Set("alt", alt)
111245	c.urlParams_.Set("prettyPrint", "false")
111246	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}")
111247	urls += "?" + c.urlParams_.Encode()
111248	req, err := http.NewRequest("PATCH", urls, body)
111249	if err != nil {
111250		return nil, err
111251	}
111252	req.Header = reqHeaders
111253	googleapi.Expand(req.URL, map[string]string{
111254		"project":         c.project,
111255		"region":          c.region,
111256		"packetMirroring": c.packetMirroring,
111257	})
111258	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111259}
111260
111261// Do executes the "compute.packetMirrorings.patch" call.
111262// Exactly one of *Operation or error will be non-nil. Any non-2xx
111263// status code is an error. Response headers are in either
111264// *Operation.ServerResponse.Header or (if a response was returned at
111265// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111266// to check whether the returned error was because
111267// http.StatusNotModified was returned.
111268func (c *PacketMirroringsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111269	gensupport.SetOptions(c.urlParams_, opts...)
111270	res, err := c.doRequest("json")
111271	if res != nil && res.StatusCode == http.StatusNotModified {
111272		if res.Body != nil {
111273			res.Body.Close()
111274		}
111275		return nil, &googleapi.Error{
111276			Code:   res.StatusCode,
111277			Header: res.Header,
111278		}
111279	}
111280	if err != nil {
111281		return nil, err
111282	}
111283	defer googleapi.CloseBody(res)
111284	if err := googleapi.CheckResponse(res); err != nil {
111285		return nil, err
111286	}
111287	ret := &Operation{
111288		ServerResponse: googleapi.ServerResponse{
111289			Header:         res.Header,
111290			HTTPStatusCode: res.StatusCode,
111291		},
111292	}
111293	target := &ret
111294	if err := gensupport.DecodeResponse(target, res); err != nil {
111295		return nil, err
111296	}
111297	return ret, nil
111298	// {
111299	//   "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.",
111300	//   "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}",
111301	//   "httpMethod": "PATCH",
111302	//   "id": "compute.packetMirrorings.patch",
111303	//   "parameterOrder": [
111304	//     "project",
111305	//     "region",
111306	//     "packetMirroring"
111307	//   ],
111308	//   "parameters": {
111309	//     "packetMirroring": {
111310	//       "description": "Name of the PacketMirroring resource to patch.",
111311	//       "location": "path",
111312	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
111313	//       "required": true,
111314	//       "type": "string"
111315	//     },
111316	//     "project": {
111317	//       "description": "Project ID for this request.",
111318	//       "location": "path",
111319	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111320	//       "required": true,
111321	//       "type": "string"
111322	//     },
111323	//     "region": {
111324	//       "description": "Name of the region for this request.",
111325	//       "location": "path",
111326	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111327	//       "required": true,
111328	//       "type": "string"
111329	//     },
111330	//     "requestId": {
111331	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
111332	//       "location": "query",
111333	//       "type": "string"
111334	//     }
111335	//   },
111336	//   "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}",
111337	//   "request": {
111338	//     "$ref": "PacketMirroring"
111339	//   },
111340	//   "response": {
111341	//     "$ref": "Operation"
111342	//   },
111343	//   "scopes": [
111344	//     "https://www.googleapis.com/auth/cloud-platform",
111345	//     "https://www.googleapis.com/auth/compute"
111346	//   ]
111347	// }
111348
111349}
111350
111351// method id "compute.packetMirrorings.testIamPermissions":
111352
111353type PacketMirroringsTestIamPermissionsCall struct {
111354	s                      *Service
111355	project                string
111356	region                 string
111357	resource               string
111358	testpermissionsrequest *TestPermissionsRequest
111359	urlParams_             gensupport.URLParams
111360	ctx_                   context.Context
111361	header_                http.Header
111362}
111363
111364// TestIamPermissions: Returns permissions that a caller has on the
111365// specified resource.
111366//
111367// - project: Project ID for this request.
111368// - region: The name of the region for this request.
111369// - resource: Name or id of the resource for this request.
111370func (r *PacketMirroringsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *PacketMirroringsTestIamPermissionsCall {
111371	c := &PacketMirroringsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111372	c.project = project
111373	c.region = region
111374	c.resource = resource
111375	c.testpermissionsrequest = testpermissionsrequest
111376	return c
111377}
111378
111379// Fields allows partial responses to be retrieved. See
111380// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111381// for more information.
111382func (c *PacketMirroringsTestIamPermissionsCall) Fields(s ...googleapi.Field) *PacketMirroringsTestIamPermissionsCall {
111383	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111384	return c
111385}
111386
111387// Context sets the context to be used in this call's Do method. Any
111388// pending HTTP request will be aborted if the provided context is
111389// canceled.
111390func (c *PacketMirroringsTestIamPermissionsCall) Context(ctx context.Context) *PacketMirroringsTestIamPermissionsCall {
111391	c.ctx_ = ctx
111392	return c
111393}
111394
111395// Header returns an http.Header that can be modified by the caller to
111396// add HTTP headers to the request.
111397func (c *PacketMirroringsTestIamPermissionsCall) Header() http.Header {
111398	if c.header_ == nil {
111399		c.header_ = make(http.Header)
111400	}
111401	return c.header_
111402}
111403
111404func (c *PacketMirroringsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
111405	reqHeaders := make(http.Header)
111406	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
111407	for k, v := range c.header_ {
111408		reqHeaders[k] = v
111409	}
111410	reqHeaders.Set("User-Agent", c.s.userAgent())
111411	var body io.Reader = nil
111412	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
111413	if err != nil {
111414		return nil, err
111415	}
111416	reqHeaders.Set("Content-Type", "application/json")
111417	c.urlParams_.Set("alt", alt)
111418	c.urlParams_.Set("prettyPrint", "false")
111419	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions")
111420	urls += "?" + c.urlParams_.Encode()
111421	req, err := http.NewRequest("POST", urls, body)
111422	if err != nil {
111423		return nil, err
111424	}
111425	req.Header = reqHeaders
111426	googleapi.Expand(req.URL, map[string]string{
111427		"project":  c.project,
111428		"region":   c.region,
111429		"resource": c.resource,
111430	})
111431	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111432}
111433
111434// Do executes the "compute.packetMirrorings.testIamPermissions" call.
111435// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
111436// non-2xx status code is an error. Response headers are in either
111437// *TestPermissionsResponse.ServerResponse.Header or (if a response was
111438// returned at all) in error.(*googleapi.Error).Header. Use
111439// googleapi.IsNotModified to check whether the returned error was
111440// because http.StatusNotModified was returned.
111441func (c *PacketMirroringsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
111442	gensupport.SetOptions(c.urlParams_, opts...)
111443	res, err := c.doRequest("json")
111444	if res != nil && res.StatusCode == http.StatusNotModified {
111445		if res.Body != nil {
111446			res.Body.Close()
111447		}
111448		return nil, &googleapi.Error{
111449			Code:   res.StatusCode,
111450			Header: res.Header,
111451		}
111452	}
111453	if err != nil {
111454		return nil, err
111455	}
111456	defer googleapi.CloseBody(res)
111457	if err := googleapi.CheckResponse(res); err != nil {
111458		return nil, err
111459	}
111460	ret := &TestPermissionsResponse{
111461		ServerResponse: googleapi.ServerResponse{
111462			Header:         res.Header,
111463			HTTPStatusCode: res.StatusCode,
111464		},
111465	}
111466	target := &ret
111467	if err := gensupport.DecodeResponse(target, res); err != nil {
111468		return nil, err
111469	}
111470	return ret, nil
111471	// {
111472	//   "description": "Returns permissions that a caller has on the specified resource.",
111473	//   "flatPath": "projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions",
111474	//   "httpMethod": "POST",
111475	//   "id": "compute.packetMirrorings.testIamPermissions",
111476	//   "parameterOrder": [
111477	//     "project",
111478	//     "region",
111479	//     "resource"
111480	//   ],
111481	//   "parameters": {
111482	//     "project": {
111483	//       "description": "Project ID for this request.",
111484	//       "location": "path",
111485	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111486	//       "required": true,
111487	//       "type": "string"
111488	//     },
111489	//     "region": {
111490	//       "description": "The name of the region for this request.",
111491	//       "location": "path",
111492	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111493	//       "required": true,
111494	//       "type": "string"
111495	//     },
111496	//     "resource": {
111497	//       "description": "Name or id of the resource for this request.",
111498	//       "location": "path",
111499	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
111500	//       "required": true,
111501	//       "type": "string"
111502	//     }
111503	//   },
111504	//   "path": "projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions",
111505	//   "request": {
111506	//     "$ref": "TestPermissionsRequest"
111507	//   },
111508	//   "response": {
111509	//     "$ref": "TestPermissionsResponse"
111510	//   },
111511	//   "scopes": [
111512	//     "https://www.googleapis.com/auth/cloud-platform",
111513	//     "https://www.googleapis.com/auth/compute",
111514	//     "https://www.googleapis.com/auth/compute.readonly"
111515	//   ]
111516	// }
111517
111518}
111519
111520// method id "compute.projects.disableXpnHost":
111521
111522type ProjectsDisableXpnHostCall struct {
111523	s          *Service
111524	project    string
111525	urlParams_ gensupport.URLParams
111526	ctx_       context.Context
111527	header_    http.Header
111528}
111529
111530// DisableXpnHost: Disable this project as a shared VPC host project.
111531//
111532// - project: Project ID for this request.
111533func (r *ProjectsService) DisableXpnHost(project string) *ProjectsDisableXpnHostCall {
111534	c := &ProjectsDisableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111535	c.project = project
111536	return c
111537}
111538
111539// RequestId sets the optional parameter "requestId": An optional
111540// request ID to identify requests. Specify a unique request ID so that
111541// if you must retry your request, the server will know to ignore the
111542// request if it has already been completed. For example, consider a
111543// situation where you make an initial request and the request times
111544// out. If you make the request again with the same request ID, the
111545// server can check if original operation with the same request ID was
111546// received, and if so, will ignore the second request. This prevents
111547// clients from accidentally creating duplicate commitments. The request
111548// ID must be a valid UUID with the exception that zero UUID is not
111549// supported ( 00000000-0000-0000-0000-000000000000).
111550func (c *ProjectsDisableXpnHostCall) RequestId(requestId string) *ProjectsDisableXpnHostCall {
111551	c.urlParams_.Set("requestId", requestId)
111552	return c
111553}
111554
111555// Fields allows partial responses to be retrieved. See
111556// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111557// for more information.
111558func (c *ProjectsDisableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnHostCall {
111559	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111560	return c
111561}
111562
111563// Context sets the context to be used in this call's Do method. Any
111564// pending HTTP request will be aborted if the provided context is
111565// canceled.
111566func (c *ProjectsDisableXpnHostCall) Context(ctx context.Context) *ProjectsDisableXpnHostCall {
111567	c.ctx_ = ctx
111568	return c
111569}
111570
111571// Header returns an http.Header that can be modified by the caller to
111572// add HTTP headers to the request.
111573func (c *ProjectsDisableXpnHostCall) Header() http.Header {
111574	if c.header_ == nil {
111575		c.header_ = make(http.Header)
111576	}
111577	return c.header_
111578}
111579
111580func (c *ProjectsDisableXpnHostCall) doRequest(alt string) (*http.Response, error) {
111581	reqHeaders := make(http.Header)
111582	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
111583	for k, v := range c.header_ {
111584		reqHeaders[k] = v
111585	}
111586	reqHeaders.Set("User-Agent", c.s.userAgent())
111587	var body io.Reader = nil
111588	c.urlParams_.Set("alt", alt)
111589	c.urlParams_.Set("prettyPrint", "false")
111590	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/disableXpnHost")
111591	urls += "?" + c.urlParams_.Encode()
111592	req, err := http.NewRequest("POST", urls, body)
111593	if err != nil {
111594		return nil, err
111595	}
111596	req.Header = reqHeaders
111597	googleapi.Expand(req.URL, map[string]string{
111598		"project": c.project,
111599	})
111600	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111601}
111602
111603// Do executes the "compute.projects.disableXpnHost" call.
111604// Exactly one of *Operation or error will be non-nil. Any non-2xx
111605// status code is an error. Response headers are in either
111606// *Operation.ServerResponse.Header or (if a response was returned at
111607// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111608// to check whether the returned error was because
111609// http.StatusNotModified was returned.
111610func (c *ProjectsDisableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111611	gensupport.SetOptions(c.urlParams_, opts...)
111612	res, err := c.doRequest("json")
111613	if res != nil && res.StatusCode == http.StatusNotModified {
111614		if res.Body != nil {
111615			res.Body.Close()
111616		}
111617		return nil, &googleapi.Error{
111618			Code:   res.StatusCode,
111619			Header: res.Header,
111620		}
111621	}
111622	if err != nil {
111623		return nil, err
111624	}
111625	defer googleapi.CloseBody(res)
111626	if err := googleapi.CheckResponse(res); err != nil {
111627		return nil, err
111628	}
111629	ret := &Operation{
111630		ServerResponse: googleapi.ServerResponse{
111631			Header:         res.Header,
111632			HTTPStatusCode: res.StatusCode,
111633		},
111634	}
111635	target := &ret
111636	if err := gensupport.DecodeResponse(target, res); err != nil {
111637		return nil, err
111638	}
111639	return ret, nil
111640	// {
111641	//   "description": "Disable this project as a shared VPC host project.",
111642	//   "flatPath": "projects/{project}/disableXpnHost",
111643	//   "httpMethod": "POST",
111644	//   "id": "compute.projects.disableXpnHost",
111645	//   "parameterOrder": [
111646	//     "project"
111647	//   ],
111648	//   "parameters": {
111649	//     "project": {
111650	//       "description": "Project ID for this request.",
111651	//       "location": "path",
111652	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111653	//       "required": true,
111654	//       "type": "string"
111655	//     },
111656	//     "requestId": {
111657	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
111658	//       "location": "query",
111659	//       "type": "string"
111660	//     }
111661	//   },
111662	//   "path": "projects/{project}/disableXpnHost",
111663	//   "response": {
111664	//     "$ref": "Operation"
111665	//   },
111666	//   "scopes": [
111667	//     "https://www.googleapis.com/auth/cloud-platform",
111668	//     "https://www.googleapis.com/auth/compute"
111669	//   ]
111670	// }
111671
111672}
111673
111674// method id "compute.projects.disableXpnResource":
111675
111676type ProjectsDisableXpnResourceCall struct {
111677	s                                 *Service
111678	project                           string
111679	projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest
111680	urlParams_                        gensupport.URLParams
111681	ctx_                              context.Context
111682	header_                           http.Header
111683}
111684
111685// DisableXpnResource: Disable a service resource (also known as service
111686// project) associated with this host project.
111687//
111688// - project: Project ID for this request.
111689func (r *ProjectsService) DisableXpnResource(project string, projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest) *ProjectsDisableXpnResourceCall {
111690	c := &ProjectsDisableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111691	c.project = project
111692	c.projectsdisablexpnresourcerequest = projectsdisablexpnresourcerequest
111693	return c
111694}
111695
111696// RequestId sets the optional parameter "requestId": An optional
111697// request ID to identify requests. Specify a unique request ID so that
111698// if you must retry your request, the server will know to ignore the
111699// request if it has already been completed. For example, consider a
111700// situation where you make an initial request and the request times
111701// out. If you make the request again with the same request ID, the
111702// server can check if original operation with the same request ID was
111703// received, and if so, will ignore the second request. This prevents
111704// clients from accidentally creating duplicate commitments. The request
111705// ID must be a valid UUID with the exception that zero UUID is not
111706// supported ( 00000000-0000-0000-0000-000000000000).
111707func (c *ProjectsDisableXpnResourceCall) RequestId(requestId string) *ProjectsDisableXpnResourceCall {
111708	c.urlParams_.Set("requestId", requestId)
111709	return c
111710}
111711
111712// Fields allows partial responses to be retrieved. See
111713// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111714// for more information.
111715func (c *ProjectsDisableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnResourceCall {
111716	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111717	return c
111718}
111719
111720// Context sets the context to be used in this call's Do method. Any
111721// pending HTTP request will be aborted if the provided context is
111722// canceled.
111723func (c *ProjectsDisableXpnResourceCall) Context(ctx context.Context) *ProjectsDisableXpnResourceCall {
111724	c.ctx_ = ctx
111725	return c
111726}
111727
111728// Header returns an http.Header that can be modified by the caller to
111729// add HTTP headers to the request.
111730func (c *ProjectsDisableXpnResourceCall) Header() http.Header {
111731	if c.header_ == nil {
111732		c.header_ = make(http.Header)
111733	}
111734	return c.header_
111735}
111736
111737func (c *ProjectsDisableXpnResourceCall) doRequest(alt string) (*http.Response, error) {
111738	reqHeaders := make(http.Header)
111739	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
111740	for k, v := range c.header_ {
111741		reqHeaders[k] = v
111742	}
111743	reqHeaders.Set("User-Agent", c.s.userAgent())
111744	var body io.Reader = nil
111745	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsdisablexpnresourcerequest)
111746	if err != nil {
111747		return nil, err
111748	}
111749	reqHeaders.Set("Content-Type", "application/json")
111750	c.urlParams_.Set("alt", alt)
111751	c.urlParams_.Set("prettyPrint", "false")
111752	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/disableXpnResource")
111753	urls += "?" + c.urlParams_.Encode()
111754	req, err := http.NewRequest("POST", urls, body)
111755	if err != nil {
111756		return nil, err
111757	}
111758	req.Header = reqHeaders
111759	googleapi.Expand(req.URL, map[string]string{
111760		"project": c.project,
111761	})
111762	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111763}
111764
111765// Do executes the "compute.projects.disableXpnResource" call.
111766// Exactly one of *Operation or error will be non-nil. Any non-2xx
111767// status code is an error. Response headers are in either
111768// *Operation.ServerResponse.Header or (if a response was returned at
111769// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111770// to check whether the returned error was because
111771// http.StatusNotModified was returned.
111772func (c *ProjectsDisableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111773	gensupport.SetOptions(c.urlParams_, opts...)
111774	res, err := c.doRequest("json")
111775	if res != nil && res.StatusCode == http.StatusNotModified {
111776		if res.Body != nil {
111777			res.Body.Close()
111778		}
111779		return nil, &googleapi.Error{
111780			Code:   res.StatusCode,
111781			Header: res.Header,
111782		}
111783	}
111784	if err != nil {
111785		return nil, err
111786	}
111787	defer googleapi.CloseBody(res)
111788	if err := googleapi.CheckResponse(res); err != nil {
111789		return nil, err
111790	}
111791	ret := &Operation{
111792		ServerResponse: googleapi.ServerResponse{
111793			Header:         res.Header,
111794			HTTPStatusCode: res.StatusCode,
111795		},
111796	}
111797	target := &ret
111798	if err := gensupport.DecodeResponse(target, res); err != nil {
111799		return nil, err
111800	}
111801	return ret, nil
111802	// {
111803	//   "description": "Disable a service resource (also known as service project) associated with this host project.",
111804	//   "flatPath": "projects/{project}/disableXpnResource",
111805	//   "httpMethod": "POST",
111806	//   "id": "compute.projects.disableXpnResource",
111807	//   "parameterOrder": [
111808	//     "project"
111809	//   ],
111810	//   "parameters": {
111811	//     "project": {
111812	//       "description": "Project ID for this request.",
111813	//       "location": "path",
111814	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111815	//       "required": true,
111816	//       "type": "string"
111817	//     },
111818	//     "requestId": {
111819	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
111820	//       "location": "query",
111821	//       "type": "string"
111822	//     }
111823	//   },
111824	//   "path": "projects/{project}/disableXpnResource",
111825	//   "request": {
111826	//     "$ref": "ProjectsDisableXpnResourceRequest"
111827	//   },
111828	//   "response": {
111829	//     "$ref": "Operation"
111830	//   },
111831	//   "scopes": [
111832	//     "https://www.googleapis.com/auth/cloud-platform",
111833	//     "https://www.googleapis.com/auth/compute"
111834	//   ]
111835	// }
111836
111837}
111838
111839// method id "compute.projects.enableXpnHost":
111840
111841type ProjectsEnableXpnHostCall struct {
111842	s          *Service
111843	project    string
111844	urlParams_ gensupport.URLParams
111845	ctx_       context.Context
111846	header_    http.Header
111847}
111848
111849// EnableXpnHost: Enable this project as a shared VPC host project.
111850//
111851// - project: Project ID for this request.
111852func (r *ProjectsService) EnableXpnHost(project string) *ProjectsEnableXpnHostCall {
111853	c := &ProjectsEnableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111854	c.project = project
111855	return c
111856}
111857
111858// RequestId sets the optional parameter "requestId": An optional
111859// request ID to identify requests. Specify a unique request ID so that
111860// if you must retry your request, the server will know to ignore the
111861// request if it has already been completed. For example, consider a
111862// situation where you make an initial request and the request times
111863// out. If you make the request again with the same request ID, the
111864// server can check if original operation with the same request ID was
111865// received, and if so, will ignore the second request. This prevents
111866// clients from accidentally creating duplicate commitments. The request
111867// ID must be a valid UUID with the exception that zero UUID is not
111868// supported ( 00000000-0000-0000-0000-000000000000).
111869func (c *ProjectsEnableXpnHostCall) RequestId(requestId string) *ProjectsEnableXpnHostCall {
111870	c.urlParams_.Set("requestId", requestId)
111871	return c
111872}
111873
111874// Fields allows partial responses to be retrieved. See
111875// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111876// for more information.
111877func (c *ProjectsEnableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnHostCall {
111878	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111879	return c
111880}
111881
111882// Context sets the context to be used in this call's Do method. Any
111883// pending HTTP request will be aborted if the provided context is
111884// canceled.
111885func (c *ProjectsEnableXpnHostCall) Context(ctx context.Context) *ProjectsEnableXpnHostCall {
111886	c.ctx_ = ctx
111887	return c
111888}
111889
111890// Header returns an http.Header that can be modified by the caller to
111891// add HTTP headers to the request.
111892func (c *ProjectsEnableXpnHostCall) Header() http.Header {
111893	if c.header_ == nil {
111894		c.header_ = make(http.Header)
111895	}
111896	return c.header_
111897}
111898
111899func (c *ProjectsEnableXpnHostCall) doRequest(alt string) (*http.Response, error) {
111900	reqHeaders := make(http.Header)
111901	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
111902	for k, v := range c.header_ {
111903		reqHeaders[k] = v
111904	}
111905	reqHeaders.Set("User-Agent", c.s.userAgent())
111906	var body io.Reader = nil
111907	c.urlParams_.Set("alt", alt)
111908	c.urlParams_.Set("prettyPrint", "false")
111909	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/enableXpnHost")
111910	urls += "?" + c.urlParams_.Encode()
111911	req, err := http.NewRequest("POST", urls, body)
111912	if err != nil {
111913		return nil, err
111914	}
111915	req.Header = reqHeaders
111916	googleapi.Expand(req.URL, map[string]string{
111917		"project": c.project,
111918	})
111919	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111920}
111921
111922// Do executes the "compute.projects.enableXpnHost" call.
111923// Exactly one of *Operation or error will be non-nil. Any non-2xx
111924// status code is an error. Response headers are in either
111925// *Operation.ServerResponse.Header or (if a response was returned at
111926// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111927// to check whether the returned error was because
111928// http.StatusNotModified was returned.
111929func (c *ProjectsEnableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111930	gensupport.SetOptions(c.urlParams_, opts...)
111931	res, err := c.doRequest("json")
111932	if res != nil && res.StatusCode == http.StatusNotModified {
111933		if res.Body != nil {
111934			res.Body.Close()
111935		}
111936		return nil, &googleapi.Error{
111937			Code:   res.StatusCode,
111938			Header: res.Header,
111939		}
111940	}
111941	if err != nil {
111942		return nil, err
111943	}
111944	defer googleapi.CloseBody(res)
111945	if err := googleapi.CheckResponse(res); err != nil {
111946		return nil, err
111947	}
111948	ret := &Operation{
111949		ServerResponse: googleapi.ServerResponse{
111950			Header:         res.Header,
111951			HTTPStatusCode: res.StatusCode,
111952		},
111953	}
111954	target := &ret
111955	if err := gensupport.DecodeResponse(target, res); err != nil {
111956		return nil, err
111957	}
111958	return ret, nil
111959	// {
111960	//   "description": "Enable this project as a shared VPC host project.",
111961	//   "flatPath": "projects/{project}/enableXpnHost",
111962	//   "httpMethod": "POST",
111963	//   "id": "compute.projects.enableXpnHost",
111964	//   "parameterOrder": [
111965	//     "project"
111966	//   ],
111967	//   "parameters": {
111968	//     "project": {
111969	//       "description": "Project ID for this request.",
111970	//       "location": "path",
111971	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111972	//       "required": true,
111973	//       "type": "string"
111974	//     },
111975	//     "requestId": {
111976	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
111977	//       "location": "query",
111978	//       "type": "string"
111979	//     }
111980	//   },
111981	//   "path": "projects/{project}/enableXpnHost",
111982	//   "response": {
111983	//     "$ref": "Operation"
111984	//   },
111985	//   "scopes": [
111986	//     "https://www.googleapis.com/auth/cloud-platform",
111987	//     "https://www.googleapis.com/auth/compute"
111988	//   ]
111989	// }
111990
111991}
111992
111993// method id "compute.projects.enableXpnResource":
111994
111995type ProjectsEnableXpnResourceCall struct {
111996	s                                *Service
111997	project                          string
111998	projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest
111999	urlParams_                       gensupport.URLParams
112000	ctx_                             context.Context
112001	header_                          http.Header
112002}
112003
112004// EnableXpnResource: Enable service resource (a.k.a service project)
112005// for a host project, so that subnets in the host project can be used
112006// by instances in the service project.
112007//
112008// - project: Project ID for this request.
112009func (r *ProjectsService) EnableXpnResource(project string, projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest) *ProjectsEnableXpnResourceCall {
112010	c := &ProjectsEnableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112011	c.project = project
112012	c.projectsenablexpnresourcerequest = projectsenablexpnresourcerequest
112013	return c
112014}
112015
112016// RequestId sets the optional parameter "requestId": An optional
112017// request ID to identify requests. Specify a unique request ID so that
112018// if you must retry your request, the server will know to ignore the
112019// request if it has already been completed. For example, consider a
112020// situation where you make an initial request and the request times
112021// out. If you make the request again with the same request ID, the
112022// server can check if original operation with the same request ID was
112023// received, and if so, will ignore the second request. This prevents
112024// clients from accidentally creating duplicate commitments. The request
112025// ID must be a valid UUID with the exception that zero UUID is not
112026// supported ( 00000000-0000-0000-0000-000000000000).
112027func (c *ProjectsEnableXpnResourceCall) RequestId(requestId string) *ProjectsEnableXpnResourceCall {
112028	c.urlParams_.Set("requestId", requestId)
112029	return c
112030}
112031
112032// Fields allows partial responses to be retrieved. See
112033// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112034// for more information.
112035func (c *ProjectsEnableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnResourceCall {
112036	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112037	return c
112038}
112039
112040// Context sets the context to be used in this call's Do method. Any
112041// pending HTTP request will be aborted if the provided context is
112042// canceled.
112043func (c *ProjectsEnableXpnResourceCall) Context(ctx context.Context) *ProjectsEnableXpnResourceCall {
112044	c.ctx_ = ctx
112045	return c
112046}
112047
112048// Header returns an http.Header that can be modified by the caller to
112049// add HTTP headers to the request.
112050func (c *ProjectsEnableXpnResourceCall) Header() http.Header {
112051	if c.header_ == nil {
112052		c.header_ = make(http.Header)
112053	}
112054	return c.header_
112055}
112056
112057func (c *ProjectsEnableXpnResourceCall) doRequest(alt string) (*http.Response, error) {
112058	reqHeaders := make(http.Header)
112059	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
112060	for k, v := range c.header_ {
112061		reqHeaders[k] = v
112062	}
112063	reqHeaders.Set("User-Agent", c.s.userAgent())
112064	var body io.Reader = nil
112065	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsenablexpnresourcerequest)
112066	if err != nil {
112067		return nil, err
112068	}
112069	reqHeaders.Set("Content-Type", "application/json")
112070	c.urlParams_.Set("alt", alt)
112071	c.urlParams_.Set("prettyPrint", "false")
112072	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/enableXpnResource")
112073	urls += "?" + c.urlParams_.Encode()
112074	req, err := http.NewRequest("POST", urls, body)
112075	if err != nil {
112076		return nil, err
112077	}
112078	req.Header = reqHeaders
112079	googleapi.Expand(req.URL, map[string]string{
112080		"project": c.project,
112081	})
112082	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112083}
112084
112085// Do executes the "compute.projects.enableXpnResource" call.
112086// Exactly one of *Operation or error will be non-nil. Any non-2xx
112087// status code is an error. Response headers are in either
112088// *Operation.ServerResponse.Header or (if a response was returned at
112089// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112090// to check whether the returned error was because
112091// http.StatusNotModified was returned.
112092func (c *ProjectsEnableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
112093	gensupport.SetOptions(c.urlParams_, opts...)
112094	res, err := c.doRequest("json")
112095	if res != nil && res.StatusCode == http.StatusNotModified {
112096		if res.Body != nil {
112097			res.Body.Close()
112098		}
112099		return nil, &googleapi.Error{
112100			Code:   res.StatusCode,
112101			Header: res.Header,
112102		}
112103	}
112104	if err != nil {
112105		return nil, err
112106	}
112107	defer googleapi.CloseBody(res)
112108	if err := googleapi.CheckResponse(res); err != nil {
112109		return nil, err
112110	}
112111	ret := &Operation{
112112		ServerResponse: googleapi.ServerResponse{
112113			Header:         res.Header,
112114			HTTPStatusCode: res.StatusCode,
112115		},
112116	}
112117	target := &ret
112118	if err := gensupport.DecodeResponse(target, res); err != nil {
112119		return nil, err
112120	}
112121	return ret, nil
112122	// {
112123	//   "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.",
112124	//   "flatPath": "projects/{project}/enableXpnResource",
112125	//   "httpMethod": "POST",
112126	//   "id": "compute.projects.enableXpnResource",
112127	//   "parameterOrder": [
112128	//     "project"
112129	//   ],
112130	//   "parameters": {
112131	//     "project": {
112132	//       "description": "Project ID for this request.",
112133	//       "location": "path",
112134	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112135	//       "required": true,
112136	//       "type": "string"
112137	//     },
112138	//     "requestId": {
112139	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
112140	//       "location": "query",
112141	//       "type": "string"
112142	//     }
112143	//   },
112144	//   "path": "projects/{project}/enableXpnResource",
112145	//   "request": {
112146	//     "$ref": "ProjectsEnableXpnResourceRequest"
112147	//   },
112148	//   "response": {
112149	//     "$ref": "Operation"
112150	//   },
112151	//   "scopes": [
112152	//     "https://www.googleapis.com/auth/cloud-platform",
112153	//     "https://www.googleapis.com/auth/compute"
112154	//   ]
112155	// }
112156
112157}
112158
112159// method id "compute.projects.get":
112160
112161type ProjectsGetCall struct {
112162	s            *Service
112163	project      string
112164	urlParams_   gensupport.URLParams
112165	ifNoneMatch_ string
112166	ctx_         context.Context
112167	header_      http.Header
112168}
112169
112170// Get: Returns the specified Project resource.
112171//
112172// - project: Project ID for this request.
112173func (r *ProjectsService) Get(project string) *ProjectsGetCall {
112174	c := &ProjectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112175	c.project = project
112176	return c
112177}
112178
112179// Fields allows partial responses to be retrieved. See
112180// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112181// for more information.
112182func (c *ProjectsGetCall) Fields(s ...googleapi.Field) *ProjectsGetCall {
112183	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112184	return c
112185}
112186
112187// IfNoneMatch sets the optional parameter which makes the operation
112188// fail if the object's ETag matches the given value. This is useful for
112189// getting updates only after the object has changed since the last
112190// request. Use googleapi.IsNotModified to check whether the response
112191// error from Do is the result of In-None-Match.
112192func (c *ProjectsGetCall) IfNoneMatch(entityTag string) *ProjectsGetCall {
112193	c.ifNoneMatch_ = entityTag
112194	return c
112195}
112196
112197// Context sets the context to be used in this call's Do method. Any
112198// pending HTTP request will be aborted if the provided context is
112199// canceled.
112200func (c *ProjectsGetCall) Context(ctx context.Context) *ProjectsGetCall {
112201	c.ctx_ = ctx
112202	return c
112203}
112204
112205// Header returns an http.Header that can be modified by the caller to
112206// add HTTP headers to the request.
112207func (c *ProjectsGetCall) Header() http.Header {
112208	if c.header_ == nil {
112209		c.header_ = make(http.Header)
112210	}
112211	return c.header_
112212}
112213
112214func (c *ProjectsGetCall) doRequest(alt string) (*http.Response, error) {
112215	reqHeaders := make(http.Header)
112216	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
112217	for k, v := range c.header_ {
112218		reqHeaders[k] = v
112219	}
112220	reqHeaders.Set("User-Agent", c.s.userAgent())
112221	if c.ifNoneMatch_ != "" {
112222		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
112223	}
112224	var body io.Reader = nil
112225	c.urlParams_.Set("alt", alt)
112226	c.urlParams_.Set("prettyPrint", "false")
112227	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}")
112228	urls += "?" + c.urlParams_.Encode()
112229	req, err := http.NewRequest("GET", urls, body)
112230	if err != nil {
112231		return nil, err
112232	}
112233	req.Header = reqHeaders
112234	googleapi.Expand(req.URL, map[string]string{
112235		"project": c.project,
112236	})
112237	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112238}
112239
112240// Do executes the "compute.projects.get" call.
112241// Exactly one of *Project or error will be non-nil. Any non-2xx status
112242// code is an error. Response headers are in either
112243// *Project.ServerResponse.Header or (if a response was returned at all)
112244// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
112245// check whether the returned error was because http.StatusNotModified
112246// was returned.
112247func (c *ProjectsGetCall) Do(opts ...googleapi.CallOption) (*Project, error) {
112248	gensupport.SetOptions(c.urlParams_, opts...)
112249	res, err := c.doRequest("json")
112250	if res != nil && res.StatusCode == http.StatusNotModified {
112251		if res.Body != nil {
112252			res.Body.Close()
112253		}
112254		return nil, &googleapi.Error{
112255			Code:   res.StatusCode,
112256			Header: res.Header,
112257		}
112258	}
112259	if err != nil {
112260		return nil, err
112261	}
112262	defer googleapi.CloseBody(res)
112263	if err := googleapi.CheckResponse(res); err != nil {
112264		return nil, err
112265	}
112266	ret := &Project{
112267		ServerResponse: googleapi.ServerResponse{
112268			Header:         res.Header,
112269			HTTPStatusCode: res.StatusCode,
112270		},
112271	}
112272	target := &ret
112273	if err := gensupport.DecodeResponse(target, res); err != nil {
112274		return nil, err
112275	}
112276	return ret, nil
112277	// {
112278	//   "description": "Returns the specified Project resource.",
112279	//   "flatPath": "projects/{project}",
112280	//   "httpMethod": "GET",
112281	//   "id": "compute.projects.get",
112282	//   "parameterOrder": [
112283	//     "project"
112284	//   ],
112285	//   "parameters": {
112286	//     "project": {
112287	//       "description": "Project ID for this request.",
112288	//       "location": "path",
112289	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112290	//       "required": true,
112291	//       "type": "string"
112292	//     }
112293	//   },
112294	//   "path": "projects/{project}",
112295	//   "response": {
112296	//     "$ref": "Project"
112297	//   },
112298	//   "scopes": [
112299	//     "https://www.googleapis.com/auth/cloud-platform",
112300	//     "https://www.googleapis.com/auth/compute",
112301	//     "https://www.googleapis.com/auth/compute.readonly"
112302	//   ]
112303	// }
112304
112305}
112306
112307// method id "compute.projects.getXpnHost":
112308
112309type ProjectsGetXpnHostCall struct {
112310	s            *Service
112311	project      string
112312	urlParams_   gensupport.URLParams
112313	ifNoneMatch_ string
112314	ctx_         context.Context
112315	header_      http.Header
112316}
112317
112318// GetXpnHost: Gets the shared VPC host project that this project links
112319// to. May be empty if no link exists.
112320//
112321// - project: Project ID for this request.
112322func (r *ProjectsService) GetXpnHost(project string) *ProjectsGetXpnHostCall {
112323	c := &ProjectsGetXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112324	c.project = project
112325	return c
112326}
112327
112328// Fields allows partial responses to be retrieved. See
112329// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112330// for more information.
112331func (c *ProjectsGetXpnHostCall) Fields(s ...googleapi.Field) *ProjectsGetXpnHostCall {
112332	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112333	return c
112334}
112335
112336// IfNoneMatch sets the optional parameter which makes the operation
112337// fail if the object's ETag matches the given value. This is useful for
112338// getting updates only after the object has changed since the last
112339// request. Use googleapi.IsNotModified to check whether the response
112340// error from Do is the result of In-None-Match.
112341func (c *ProjectsGetXpnHostCall) IfNoneMatch(entityTag string) *ProjectsGetXpnHostCall {
112342	c.ifNoneMatch_ = entityTag
112343	return c
112344}
112345
112346// Context sets the context to be used in this call's Do method. Any
112347// pending HTTP request will be aborted if the provided context is
112348// canceled.
112349func (c *ProjectsGetXpnHostCall) Context(ctx context.Context) *ProjectsGetXpnHostCall {
112350	c.ctx_ = ctx
112351	return c
112352}
112353
112354// Header returns an http.Header that can be modified by the caller to
112355// add HTTP headers to the request.
112356func (c *ProjectsGetXpnHostCall) Header() http.Header {
112357	if c.header_ == nil {
112358		c.header_ = make(http.Header)
112359	}
112360	return c.header_
112361}
112362
112363func (c *ProjectsGetXpnHostCall) doRequest(alt string) (*http.Response, error) {
112364	reqHeaders := make(http.Header)
112365	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
112366	for k, v := range c.header_ {
112367		reqHeaders[k] = v
112368	}
112369	reqHeaders.Set("User-Agent", c.s.userAgent())
112370	if c.ifNoneMatch_ != "" {
112371		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
112372	}
112373	var body io.Reader = nil
112374	c.urlParams_.Set("alt", alt)
112375	c.urlParams_.Set("prettyPrint", "false")
112376	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/getXpnHost")
112377	urls += "?" + c.urlParams_.Encode()
112378	req, err := http.NewRequest("GET", urls, body)
112379	if err != nil {
112380		return nil, err
112381	}
112382	req.Header = reqHeaders
112383	googleapi.Expand(req.URL, map[string]string{
112384		"project": c.project,
112385	})
112386	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112387}
112388
112389// Do executes the "compute.projects.getXpnHost" call.
112390// Exactly one of *Project or error will be non-nil. Any non-2xx status
112391// code is an error. Response headers are in either
112392// *Project.ServerResponse.Header or (if a response was returned at all)
112393// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
112394// check whether the returned error was because http.StatusNotModified
112395// was returned.
112396func (c *ProjectsGetXpnHostCall) Do(opts ...googleapi.CallOption) (*Project, error) {
112397	gensupport.SetOptions(c.urlParams_, opts...)
112398	res, err := c.doRequest("json")
112399	if res != nil && res.StatusCode == http.StatusNotModified {
112400		if res.Body != nil {
112401			res.Body.Close()
112402		}
112403		return nil, &googleapi.Error{
112404			Code:   res.StatusCode,
112405			Header: res.Header,
112406		}
112407	}
112408	if err != nil {
112409		return nil, err
112410	}
112411	defer googleapi.CloseBody(res)
112412	if err := googleapi.CheckResponse(res); err != nil {
112413		return nil, err
112414	}
112415	ret := &Project{
112416		ServerResponse: googleapi.ServerResponse{
112417			Header:         res.Header,
112418			HTTPStatusCode: res.StatusCode,
112419		},
112420	}
112421	target := &ret
112422	if err := gensupport.DecodeResponse(target, res); err != nil {
112423		return nil, err
112424	}
112425	return ret, nil
112426	// {
112427	//   "description": "Gets the shared VPC host project that this project links to. May be empty if no link exists.",
112428	//   "flatPath": "projects/{project}/getXpnHost",
112429	//   "httpMethod": "GET",
112430	//   "id": "compute.projects.getXpnHost",
112431	//   "parameterOrder": [
112432	//     "project"
112433	//   ],
112434	//   "parameters": {
112435	//     "project": {
112436	//       "description": "Project ID for this request.",
112437	//       "location": "path",
112438	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112439	//       "required": true,
112440	//       "type": "string"
112441	//     }
112442	//   },
112443	//   "path": "projects/{project}/getXpnHost",
112444	//   "response": {
112445	//     "$ref": "Project"
112446	//   },
112447	//   "scopes": [
112448	//     "https://www.googleapis.com/auth/cloud-platform",
112449	//     "https://www.googleapis.com/auth/compute"
112450	//   ]
112451	// }
112452
112453}
112454
112455// method id "compute.projects.getXpnResources":
112456
112457type ProjectsGetXpnResourcesCall struct {
112458	s            *Service
112459	project      string
112460	urlParams_   gensupport.URLParams
112461	ifNoneMatch_ string
112462	ctx_         context.Context
112463	header_      http.Header
112464}
112465
112466// GetXpnResources: Gets service resources (a.k.a service project)
112467// associated with this host project.
112468//
112469// - project: Project ID for this request.
112470func (r *ProjectsService) GetXpnResources(project string) *ProjectsGetXpnResourcesCall {
112471	c := &ProjectsGetXpnResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112472	c.project = project
112473	return c
112474}
112475
112476// Filter sets the optional parameter "filter": A filter expression that
112477// filters resources listed in the response. The expression must specify
112478// the field name, a comparison operator, and the value that you want to
112479// use for filtering. The value must be a string, a number, or a
112480// boolean. The comparison operator must be either `=`, `!=`, `>`, or
112481// `<`. For example, if you are filtering Compute Engine instances, you
112482// can exclude instances named `example-instance` by specifying `name !=
112483// example-instance`. You can also filter nested fields. For example,
112484// you could specify `scheduling.automaticRestart = false` to include
112485// instances only if they are not scheduled for automatic restarts. You
112486// can use filtering on nested fields to filter based on resource
112487// labels. To filter on multiple expressions, provide each separate
112488// expression within parentheses. For example: ```
112489// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
112490// ``` By default, each expression is an `AND` expression. However, you
112491// can include `AND` and `OR` expressions explicitly. For example: ```
112492// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
112493// AND (scheduling.automaticRestart = true) ```
112494func (c *ProjectsGetXpnResourcesCall) Filter(filter string) *ProjectsGetXpnResourcesCall {
112495	c.urlParams_.Set("filter", filter)
112496	return c
112497}
112498
112499// MaxResults sets the optional parameter "maxResults": The maximum
112500// number of results per page that should be returned. If the number of
112501// available results is larger than `maxResults`, Compute Engine returns
112502// a `nextPageToken` that can be used to get the next page of results in
112503// subsequent list requests. Acceptable values are `0` to `500`,
112504// inclusive. (Default: `500`)
112505func (c *ProjectsGetXpnResourcesCall) MaxResults(maxResults int64) *ProjectsGetXpnResourcesCall {
112506	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
112507	return c
112508}
112509
112510// OrderBy sets the optional parameter "orderBy": Sorts list results by
112511// a certain order. By default, results are returned in alphanumerical
112512// order based on the resource name. You can also sort results in
112513// descending order based on the creation timestamp using
112514// `orderBy="creationTimestamp desc". This sorts results based on the
112515// `creationTimestamp` field in reverse chronological order (newest
112516// result first). Use this to sort resources like operations so that the
112517// newest operation is returned first. Currently, only sorting by `name`
112518// or `creationTimestamp desc` is supported.
112519func (c *ProjectsGetXpnResourcesCall) OrderBy(orderBy string) *ProjectsGetXpnResourcesCall {
112520	c.urlParams_.Set("orderBy", orderBy)
112521	return c
112522}
112523
112524// PageToken sets the optional parameter "pageToken": Specifies a page
112525// token to use. Set `pageToken` to the `nextPageToken` returned by a
112526// previous list request to get the next page of results.
112527func (c *ProjectsGetXpnResourcesCall) PageToken(pageToken string) *ProjectsGetXpnResourcesCall {
112528	c.urlParams_.Set("pageToken", pageToken)
112529	return c
112530}
112531
112532// ReturnPartialSuccess sets the optional parameter
112533// "returnPartialSuccess": Opt-in for partial success behavior which
112534// provides partial results in case of failure. The default value is
112535// false.
112536func (c *ProjectsGetXpnResourcesCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsGetXpnResourcesCall {
112537	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
112538	return c
112539}
112540
112541// Fields allows partial responses to be retrieved. See
112542// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112543// for more information.
112544func (c *ProjectsGetXpnResourcesCall) Fields(s ...googleapi.Field) *ProjectsGetXpnResourcesCall {
112545	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112546	return c
112547}
112548
112549// IfNoneMatch sets the optional parameter which makes the operation
112550// fail if the object's ETag matches the given value. This is useful for
112551// getting updates only after the object has changed since the last
112552// request. Use googleapi.IsNotModified to check whether the response
112553// error from Do is the result of In-None-Match.
112554func (c *ProjectsGetXpnResourcesCall) IfNoneMatch(entityTag string) *ProjectsGetXpnResourcesCall {
112555	c.ifNoneMatch_ = entityTag
112556	return c
112557}
112558
112559// Context sets the context to be used in this call's Do method. Any
112560// pending HTTP request will be aborted if the provided context is
112561// canceled.
112562func (c *ProjectsGetXpnResourcesCall) Context(ctx context.Context) *ProjectsGetXpnResourcesCall {
112563	c.ctx_ = ctx
112564	return c
112565}
112566
112567// Header returns an http.Header that can be modified by the caller to
112568// add HTTP headers to the request.
112569func (c *ProjectsGetXpnResourcesCall) Header() http.Header {
112570	if c.header_ == nil {
112571		c.header_ = make(http.Header)
112572	}
112573	return c.header_
112574}
112575
112576func (c *ProjectsGetXpnResourcesCall) doRequest(alt string) (*http.Response, error) {
112577	reqHeaders := make(http.Header)
112578	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
112579	for k, v := range c.header_ {
112580		reqHeaders[k] = v
112581	}
112582	reqHeaders.Set("User-Agent", c.s.userAgent())
112583	if c.ifNoneMatch_ != "" {
112584		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
112585	}
112586	var body io.Reader = nil
112587	c.urlParams_.Set("alt", alt)
112588	c.urlParams_.Set("prettyPrint", "false")
112589	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/getXpnResources")
112590	urls += "?" + c.urlParams_.Encode()
112591	req, err := http.NewRequest("GET", urls, body)
112592	if err != nil {
112593		return nil, err
112594	}
112595	req.Header = reqHeaders
112596	googleapi.Expand(req.URL, map[string]string{
112597		"project": c.project,
112598	})
112599	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112600}
112601
112602// Do executes the "compute.projects.getXpnResources" call.
112603// Exactly one of *ProjectsGetXpnResources or error will be non-nil. Any
112604// non-2xx status code is an error. Response headers are in either
112605// *ProjectsGetXpnResources.ServerResponse.Header or (if a response was
112606// returned at all) in error.(*googleapi.Error).Header. Use
112607// googleapi.IsNotModified to check whether the returned error was
112608// because http.StatusNotModified was returned.
112609func (c *ProjectsGetXpnResourcesCall) Do(opts ...googleapi.CallOption) (*ProjectsGetXpnResources, error) {
112610	gensupport.SetOptions(c.urlParams_, opts...)
112611	res, err := c.doRequest("json")
112612	if res != nil && res.StatusCode == http.StatusNotModified {
112613		if res.Body != nil {
112614			res.Body.Close()
112615		}
112616		return nil, &googleapi.Error{
112617			Code:   res.StatusCode,
112618			Header: res.Header,
112619		}
112620	}
112621	if err != nil {
112622		return nil, err
112623	}
112624	defer googleapi.CloseBody(res)
112625	if err := googleapi.CheckResponse(res); err != nil {
112626		return nil, err
112627	}
112628	ret := &ProjectsGetXpnResources{
112629		ServerResponse: googleapi.ServerResponse{
112630			Header:         res.Header,
112631			HTTPStatusCode: res.StatusCode,
112632		},
112633	}
112634	target := &ret
112635	if err := gensupport.DecodeResponse(target, res); err != nil {
112636		return nil, err
112637	}
112638	return ret, nil
112639	// {
112640	//   "description": "Gets service resources (a.k.a service project) associated with this host project.",
112641	//   "flatPath": "projects/{project}/getXpnResources",
112642	//   "httpMethod": "GET",
112643	//   "id": "compute.projects.getXpnResources",
112644	//   "parameterOrder": [
112645	//     "project"
112646	//   ],
112647	//   "parameters": {
112648	//     "filter": {
112649	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
112650	//       "location": "query",
112651	//       "type": "string"
112652	//     },
112653	//     "maxResults": {
112654	//       "default": "500",
112655	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
112656	//       "format": "uint32",
112657	//       "location": "query",
112658	//       "minimum": "0",
112659	//       "type": "integer"
112660	//     },
112661	//     "orderBy": {
112662	//       "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.",
112663	//       "location": "query",
112664	//       "type": "string"
112665	//     },
112666	//     "pageToken": {
112667	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
112668	//       "location": "query",
112669	//       "type": "string"
112670	//     },
112671	//     "project": {
112672	//       "description": "Project ID for this request.",
112673	//       "location": "path",
112674	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112675	//       "required": true,
112676	//       "type": "string"
112677	//     },
112678	//     "returnPartialSuccess": {
112679	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
112680	//       "location": "query",
112681	//       "type": "boolean"
112682	//     }
112683	//   },
112684	//   "path": "projects/{project}/getXpnResources",
112685	//   "response": {
112686	//     "$ref": "ProjectsGetXpnResources"
112687	//   },
112688	//   "scopes": [
112689	//     "https://www.googleapis.com/auth/cloud-platform",
112690	//     "https://www.googleapis.com/auth/compute"
112691	//   ]
112692	// }
112693
112694}
112695
112696// Pages invokes f for each page of results.
112697// A non-nil error returned from f will halt the iteration.
112698// The provided context supersedes any context provided to the Context method.
112699func (c *ProjectsGetXpnResourcesCall) Pages(ctx context.Context, f func(*ProjectsGetXpnResources) error) error {
112700	c.ctx_ = ctx
112701	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
112702	for {
112703		x, err := c.Do()
112704		if err != nil {
112705			return err
112706		}
112707		if err := f(x); err != nil {
112708			return err
112709		}
112710		if x.NextPageToken == "" {
112711			return nil
112712		}
112713		c.PageToken(x.NextPageToken)
112714	}
112715}
112716
112717// method id "compute.projects.listXpnHosts":
112718
112719type ProjectsListXpnHostsCall struct {
112720	s                           *Service
112721	project                     string
112722	projectslistxpnhostsrequest *ProjectsListXpnHostsRequest
112723	urlParams_                  gensupport.URLParams
112724	ctx_                        context.Context
112725	header_                     http.Header
112726}
112727
112728// ListXpnHosts: Lists all shared VPC host projects visible to the user
112729// in an organization.
112730//
112731// - project: Project ID for this request.
112732func (r *ProjectsService) ListXpnHosts(project string, projectslistxpnhostsrequest *ProjectsListXpnHostsRequest) *ProjectsListXpnHostsCall {
112733	c := &ProjectsListXpnHostsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112734	c.project = project
112735	c.projectslistxpnhostsrequest = projectslistxpnhostsrequest
112736	return c
112737}
112738
112739// Filter sets the optional parameter "filter": A filter expression that
112740// filters resources listed in the response. The expression must specify
112741// the field name, a comparison operator, and the value that you want to
112742// use for filtering. The value must be a string, a number, or a
112743// boolean. The comparison operator must be either `=`, `!=`, `>`, or
112744// `<`. For example, if you are filtering Compute Engine instances, you
112745// can exclude instances named `example-instance` by specifying `name !=
112746// example-instance`. You can also filter nested fields. For example,
112747// you could specify `scheduling.automaticRestart = false` to include
112748// instances only if they are not scheduled for automatic restarts. You
112749// can use filtering on nested fields to filter based on resource
112750// labels. To filter on multiple expressions, provide each separate
112751// expression within parentheses. For example: ```
112752// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
112753// ``` By default, each expression is an `AND` expression. However, you
112754// can include `AND` and `OR` expressions explicitly. For example: ```
112755// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
112756// AND (scheduling.automaticRestart = true) ```
112757func (c *ProjectsListXpnHostsCall) Filter(filter string) *ProjectsListXpnHostsCall {
112758	c.urlParams_.Set("filter", filter)
112759	return c
112760}
112761
112762// MaxResults sets the optional parameter "maxResults": The maximum
112763// number of results per page that should be returned. If the number of
112764// available results is larger than `maxResults`, Compute Engine returns
112765// a `nextPageToken` that can be used to get the next page of results in
112766// subsequent list requests. Acceptable values are `0` to `500`,
112767// inclusive. (Default: `500`)
112768func (c *ProjectsListXpnHostsCall) MaxResults(maxResults int64) *ProjectsListXpnHostsCall {
112769	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
112770	return c
112771}
112772
112773// OrderBy sets the optional parameter "orderBy": Sorts list results by
112774// a certain order. By default, results are returned in alphanumerical
112775// order based on the resource name. You can also sort results in
112776// descending order based on the creation timestamp using
112777// `orderBy="creationTimestamp desc". This sorts results based on the
112778// `creationTimestamp` field in reverse chronological order (newest
112779// result first). Use this to sort resources like operations so that the
112780// newest operation is returned first. Currently, only sorting by `name`
112781// or `creationTimestamp desc` is supported.
112782func (c *ProjectsListXpnHostsCall) OrderBy(orderBy string) *ProjectsListXpnHostsCall {
112783	c.urlParams_.Set("orderBy", orderBy)
112784	return c
112785}
112786
112787// PageToken sets the optional parameter "pageToken": Specifies a page
112788// token to use. Set `pageToken` to the `nextPageToken` returned by a
112789// previous list request to get the next page of results.
112790func (c *ProjectsListXpnHostsCall) PageToken(pageToken string) *ProjectsListXpnHostsCall {
112791	c.urlParams_.Set("pageToken", pageToken)
112792	return c
112793}
112794
112795// ReturnPartialSuccess sets the optional parameter
112796// "returnPartialSuccess": Opt-in for partial success behavior which
112797// provides partial results in case of failure. The default value is
112798// false.
112799func (c *ProjectsListXpnHostsCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsListXpnHostsCall {
112800	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
112801	return c
112802}
112803
112804// Fields allows partial responses to be retrieved. See
112805// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112806// for more information.
112807func (c *ProjectsListXpnHostsCall) Fields(s ...googleapi.Field) *ProjectsListXpnHostsCall {
112808	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112809	return c
112810}
112811
112812// Context sets the context to be used in this call's Do method. Any
112813// pending HTTP request will be aborted if the provided context is
112814// canceled.
112815func (c *ProjectsListXpnHostsCall) Context(ctx context.Context) *ProjectsListXpnHostsCall {
112816	c.ctx_ = ctx
112817	return c
112818}
112819
112820// Header returns an http.Header that can be modified by the caller to
112821// add HTTP headers to the request.
112822func (c *ProjectsListXpnHostsCall) Header() http.Header {
112823	if c.header_ == nil {
112824		c.header_ = make(http.Header)
112825	}
112826	return c.header_
112827}
112828
112829func (c *ProjectsListXpnHostsCall) doRequest(alt string) (*http.Response, error) {
112830	reqHeaders := make(http.Header)
112831	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
112832	for k, v := range c.header_ {
112833		reqHeaders[k] = v
112834	}
112835	reqHeaders.Set("User-Agent", c.s.userAgent())
112836	var body io.Reader = nil
112837	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectslistxpnhostsrequest)
112838	if err != nil {
112839		return nil, err
112840	}
112841	reqHeaders.Set("Content-Type", "application/json")
112842	c.urlParams_.Set("alt", alt)
112843	c.urlParams_.Set("prettyPrint", "false")
112844	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/listXpnHosts")
112845	urls += "?" + c.urlParams_.Encode()
112846	req, err := http.NewRequest("POST", urls, body)
112847	if err != nil {
112848		return nil, err
112849	}
112850	req.Header = reqHeaders
112851	googleapi.Expand(req.URL, map[string]string{
112852		"project": c.project,
112853	})
112854	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112855}
112856
112857// Do executes the "compute.projects.listXpnHosts" call.
112858// Exactly one of *XpnHostList or error will be non-nil. Any non-2xx
112859// status code is an error. Response headers are in either
112860// *XpnHostList.ServerResponse.Header or (if a response was returned at
112861// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112862// to check whether the returned error was because
112863// http.StatusNotModified was returned.
112864func (c *ProjectsListXpnHostsCall) Do(opts ...googleapi.CallOption) (*XpnHostList, error) {
112865	gensupport.SetOptions(c.urlParams_, opts...)
112866	res, err := c.doRequest("json")
112867	if res != nil && res.StatusCode == http.StatusNotModified {
112868		if res.Body != nil {
112869			res.Body.Close()
112870		}
112871		return nil, &googleapi.Error{
112872			Code:   res.StatusCode,
112873			Header: res.Header,
112874		}
112875	}
112876	if err != nil {
112877		return nil, err
112878	}
112879	defer googleapi.CloseBody(res)
112880	if err := googleapi.CheckResponse(res); err != nil {
112881		return nil, err
112882	}
112883	ret := &XpnHostList{
112884		ServerResponse: googleapi.ServerResponse{
112885			Header:         res.Header,
112886			HTTPStatusCode: res.StatusCode,
112887		},
112888	}
112889	target := &ret
112890	if err := gensupport.DecodeResponse(target, res); err != nil {
112891		return nil, err
112892	}
112893	return ret, nil
112894	// {
112895	//   "description": "Lists all shared VPC host projects visible to the user in an organization.",
112896	//   "flatPath": "projects/{project}/listXpnHosts",
112897	//   "httpMethod": "POST",
112898	//   "id": "compute.projects.listXpnHosts",
112899	//   "parameterOrder": [
112900	//     "project"
112901	//   ],
112902	//   "parameters": {
112903	//     "filter": {
112904	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
112905	//       "location": "query",
112906	//       "type": "string"
112907	//     },
112908	//     "maxResults": {
112909	//       "default": "500",
112910	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
112911	//       "format": "uint32",
112912	//       "location": "query",
112913	//       "minimum": "0",
112914	//       "type": "integer"
112915	//     },
112916	//     "orderBy": {
112917	//       "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.",
112918	//       "location": "query",
112919	//       "type": "string"
112920	//     },
112921	//     "pageToken": {
112922	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
112923	//       "location": "query",
112924	//       "type": "string"
112925	//     },
112926	//     "project": {
112927	//       "description": "Project ID for this request.",
112928	//       "location": "path",
112929	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112930	//       "required": true,
112931	//       "type": "string"
112932	//     },
112933	//     "returnPartialSuccess": {
112934	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
112935	//       "location": "query",
112936	//       "type": "boolean"
112937	//     }
112938	//   },
112939	//   "path": "projects/{project}/listXpnHosts",
112940	//   "request": {
112941	//     "$ref": "ProjectsListXpnHostsRequest"
112942	//   },
112943	//   "response": {
112944	//     "$ref": "XpnHostList"
112945	//   },
112946	//   "scopes": [
112947	//     "https://www.googleapis.com/auth/cloud-platform",
112948	//     "https://www.googleapis.com/auth/compute"
112949	//   ]
112950	// }
112951
112952}
112953
112954// Pages invokes f for each page of results.
112955// A non-nil error returned from f will halt the iteration.
112956// The provided context supersedes any context provided to the Context method.
112957func (c *ProjectsListXpnHostsCall) Pages(ctx context.Context, f func(*XpnHostList) error) error {
112958	c.ctx_ = ctx
112959	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
112960	for {
112961		x, err := c.Do()
112962		if err != nil {
112963			return err
112964		}
112965		if err := f(x); err != nil {
112966			return err
112967		}
112968		if x.NextPageToken == "" {
112969			return nil
112970		}
112971		c.PageToken(x.NextPageToken)
112972	}
112973}
112974
112975// method id "compute.projects.moveDisk":
112976
112977type ProjectsMoveDiskCall struct {
112978	s               *Service
112979	project         string
112980	diskmoverequest *DiskMoveRequest
112981	urlParams_      gensupport.URLParams
112982	ctx_            context.Context
112983	header_         http.Header
112984}
112985
112986// MoveDisk: Moves a persistent disk from one zone to another.
112987//
112988// - project: Project ID for this request.
112989func (r *ProjectsService) MoveDisk(project string, diskmoverequest *DiskMoveRequest) *ProjectsMoveDiskCall {
112990	c := &ProjectsMoveDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112991	c.project = project
112992	c.diskmoverequest = diskmoverequest
112993	return c
112994}
112995
112996// RequestId sets the optional parameter "requestId": An optional
112997// request ID to identify requests. Specify a unique request ID so that
112998// if you must retry your request, the server will know to ignore the
112999// request if it has already been completed. For example, consider a
113000// situation where you make an initial request and the request times
113001// out. If you make the request again with the same request ID, the
113002// server can check if original operation with the same request ID was
113003// received, and if so, will ignore the second request. This prevents
113004// clients from accidentally creating duplicate commitments. The request
113005// ID must be a valid UUID with the exception that zero UUID is not
113006// supported ( 00000000-0000-0000-0000-000000000000).
113007func (c *ProjectsMoveDiskCall) RequestId(requestId string) *ProjectsMoveDiskCall {
113008	c.urlParams_.Set("requestId", requestId)
113009	return c
113010}
113011
113012// Fields allows partial responses to be retrieved. See
113013// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113014// for more information.
113015func (c *ProjectsMoveDiskCall) Fields(s ...googleapi.Field) *ProjectsMoveDiskCall {
113016	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113017	return c
113018}
113019
113020// Context sets the context to be used in this call's Do method. Any
113021// pending HTTP request will be aborted if the provided context is
113022// canceled.
113023func (c *ProjectsMoveDiskCall) Context(ctx context.Context) *ProjectsMoveDiskCall {
113024	c.ctx_ = ctx
113025	return c
113026}
113027
113028// Header returns an http.Header that can be modified by the caller to
113029// add HTTP headers to the request.
113030func (c *ProjectsMoveDiskCall) Header() http.Header {
113031	if c.header_ == nil {
113032		c.header_ = make(http.Header)
113033	}
113034	return c.header_
113035}
113036
113037func (c *ProjectsMoveDiskCall) doRequest(alt string) (*http.Response, error) {
113038	reqHeaders := make(http.Header)
113039	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
113040	for k, v := range c.header_ {
113041		reqHeaders[k] = v
113042	}
113043	reqHeaders.Set("User-Agent", c.s.userAgent())
113044	var body io.Reader = nil
113045	body, err := googleapi.WithoutDataWrapper.JSONReader(c.diskmoverequest)
113046	if err != nil {
113047		return nil, err
113048	}
113049	reqHeaders.Set("Content-Type", "application/json")
113050	c.urlParams_.Set("alt", alt)
113051	c.urlParams_.Set("prettyPrint", "false")
113052	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/moveDisk")
113053	urls += "?" + c.urlParams_.Encode()
113054	req, err := http.NewRequest("POST", urls, body)
113055	if err != nil {
113056		return nil, err
113057	}
113058	req.Header = reqHeaders
113059	googleapi.Expand(req.URL, map[string]string{
113060		"project": c.project,
113061	})
113062	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113063}
113064
113065// Do executes the "compute.projects.moveDisk" call.
113066// Exactly one of *Operation or error will be non-nil. Any non-2xx
113067// status code is an error. Response headers are in either
113068// *Operation.ServerResponse.Header or (if a response was returned at
113069// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113070// to check whether the returned error was because
113071// http.StatusNotModified was returned.
113072func (c *ProjectsMoveDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113073	gensupport.SetOptions(c.urlParams_, opts...)
113074	res, err := c.doRequest("json")
113075	if res != nil && res.StatusCode == http.StatusNotModified {
113076		if res.Body != nil {
113077			res.Body.Close()
113078		}
113079		return nil, &googleapi.Error{
113080			Code:   res.StatusCode,
113081			Header: res.Header,
113082		}
113083	}
113084	if err != nil {
113085		return nil, err
113086	}
113087	defer googleapi.CloseBody(res)
113088	if err := googleapi.CheckResponse(res); err != nil {
113089		return nil, err
113090	}
113091	ret := &Operation{
113092		ServerResponse: googleapi.ServerResponse{
113093			Header:         res.Header,
113094			HTTPStatusCode: res.StatusCode,
113095		},
113096	}
113097	target := &ret
113098	if err := gensupport.DecodeResponse(target, res); err != nil {
113099		return nil, err
113100	}
113101	return ret, nil
113102	// {
113103	//   "description": "Moves a persistent disk from one zone to another.",
113104	//   "flatPath": "projects/{project}/moveDisk",
113105	//   "httpMethod": "POST",
113106	//   "id": "compute.projects.moveDisk",
113107	//   "parameterOrder": [
113108	//     "project"
113109	//   ],
113110	//   "parameters": {
113111	//     "project": {
113112	//       "description": "Project ID for this request.",
113113	//       "location": "path",
113114	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113115	//       "required": true,
113116	//       "type": "string"
113117	//     },
113118	//     "requestId": {
113119	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
113120	//       "location": "query",
113121	//       "type": "string"
113122	//     }
113123	//   },
113124	//   "path": "projects/{project}/moveDisk",
113125	//   "request": {
113126	//     "$ref": "DiskMoveRequest"
113127	//   },
113128	//   "response": {
113129	//     "$ref": "Operation"
113130	//   },
113131	//   "scopes": [
113132	//     "https://www.googleapis.com/auth/cloud-platform",
113133	//     "https://www.googleapis.com/auth/compute"
113134	//   ]
113135	// }
113136
113137}
113138
113139// method id "compute.projects.moveInstance":
113140
113141type ProjectsMoveInstanceCall struct {
113142	s                   *Service
113143	project             string
113144	instancemoverequest *InstanceMoveRequest
113145	urlParams_          gensupport.URLParams
113146	ctx_                context.Context
113147	header_             http.Header
113148}
113149
113150// MoveInstance: Moves an instance and its attached persistent disks
113151// from one zone to another.
113152//
113153// - project: Project ID for this request.
113154func (r *ProjectsService) MoveInstance(project string, instancemoverequest *InstanceMoveRequest) *ProjectsMoveInstanceCall {
113155	c := &ProjectsMoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113156	c.project = project
113157	c.instancemoverequest = instancemoverequest
113158	return c
113159}
113160
113161// RequestId sets the optional parameter "requestId": An optional
113162// request ID to identify requests. Specify a unique request ID so that
113163// if you must retry your request, the server will know to ignore the
113164// request if it has already been completed. For example, consider a
113165// situation where you make an initial request and the request times
113166// out. If you make the request again with the same request ID, the
113167// server can check if original operation with the same request ID was
113168// received, and if so, will ignore the second request. This prevents
113169// clients from accidentally creating duplicate commitments. The request
113170// ID must be a valid UUID with the exception that zero UUID is not
113171// supported ( 00000000-0000-0000-0000-000000000000).
113172func (c *ProjectsMoveInstanceCall) RequestId(requestId string) *ProjectsMoveInstanceCall {
113173	c.urlParams_.Set("requestId", requestId)
113174	return c
113175}
113176
113177// Fields allows partial responses to be retrieved. See
113178// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113179// for more information.
113180func (c *ProjectsMoveInstanceCall) Fields(s ...googleapi.Field) *ProjectsMoveInstanceCall {
113181	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113182	return c
113183}
113184
113185// Context sets the context to be used in this call's Do method. Any
113186// pending HTTP request will be aborted if the provided context is
113187// canceled.
113188func (c *ProjectsMoveInstanceCall) Context(ctx context.Context) *ProjectsMoveInstanceCall {
113189	c.ctx_ = ctx
113190	return c
113191}
113192
113193// Header returns an http.Header that can be modified by the caller to
113194// add HTTP headers to the request.
113195func (c *ProjectsMoveInstanceCall) Header() http.Header {
113196	if c.header_ == nil {
113197		c.header_ = make(http.Header)
113198	}
113199	return c.header_
113200}
113201
113202func (c *ProjectsMoveInstanceCall) doRequest(alt string) (*http.Response, error) {
113203	reqHeaders := make(http.Header)
113204	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
113205	for k, v := range c.header_ {
113206		reqHeaders[k] = v
113207	}
113208	reqHeaders.Set("User-Agent", c.s.userAgent())
113209	var body io.Reader = nil
113210	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancemoverequest)
113211	if err != nil {
113212		return nil, err
113213	}
113214	reqHeaders.Set("Content-Type", "application/json")
113215	c.urlParams_.Set("alt", alt)
113216	c.urlParams_.Set("prettyPrint", "false")
113217	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/moveInstance")
113218	urls += "?" + c.urlParams_.Encode()
113219	req, err := http.NewRequest("POST", urls, body)
113220	if err != nil {
113221		return nil, err
113222	}
113223	req.Header = reqHeaders
113224	googleapi.Expand(req.URL, map[string]string{
113225		"project": c.project,
113226	})
113227	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113228}
113229
113230// Do executes the "compute.projects.moveInstance" call.
113231// Exactly one of *Operation or error will be non-nil. Any non-2xx
113232// status code is an error. Response headers are in either
113233// *Operation.ServerResponse.Header or (if a response was returned at
113234// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113235// to check whether the returned error was because
113236// http.StatusNotModified was returned.
113237func (c *ProjectsMoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113238	gensupport.SetOptions(c.urlParams_, opts...)
113239	res, err := c.doRequest("json")
113240	if res != nil && res.StatusCode == http.StatusNotModified {
113241		if res.Body != nil {
113242			res.Body.Close()
113243		}
113244		return nil, &googleapi.Error{
113245			Code:   res.StatusCode,
113246			Header: res.Header,
113247		}
113248	}
113249	if err != nil {
113250		return nil, err
113251	}
113252	defer googleapi.CloseBody(res)
113253	if err := googleapi.CheckResponse(res); err != nil {
113254		return nil, err
113255	}
113256	ret := &Operation{
113257		ServerResponse: googleapi.ServerResponse{
113258			Header:         res.Header,
113259			HTTPStatusCode: res.StatusCode,
113260		},
113261	}
113262	target := &ret
113263	if err := gensupport.DecodeResponse(target, res); err != nil {
113264		return nil, err
113265	}
113266	return ret, nil
113267	// {
113268	//   "description": "Moves an instance and its attached persistent disks from one zone to another.",
113269	//   "flatPath": "projects/{project}/moveInstance",
113270	//   "httpMethod": "POST",
113271	//   "id": "compute.projects.moveInstance",
113272	//   "parameterOrder": [
113273	//     "project"
113274	//   ],
113275	//   "parameters": {
113276	//     "project": {
113277	//       "description": "Project ID for this request.",
113278	//       "location": "path",
113279	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113280	//       "required": true,
113281	//       "type": "string"
113282	//     },
113283	//     "requestId": {
113284	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
113285	//       "location": "query",
113286	//       "type": "string"
113287	//     }
113288	//   },
113289	//   "path": "projects/{project}/moveInstance",
113290	//   "request": {
113291	//     "$ref": "InstanceMoveRequest"
113292	//   },
113293	//   "response": {
113294	//     "$ref": "Operation"
113295	//   },
113296	//   "scopes": [
113297	//     "https://www.googleapis.com/auth/cloud-platform",
113298	//     "https://www.googleapis.com/auth/compute"
113299	//   ]
113300	// }
113301
113302}
113303
113304// method id "compute.projects.setCommonInstanceMetadata":
113305
113306type ProjectsSetCommonInstanceMetadataCall struct {
113307	s          *Service
113308	project    string
113309	metadata   *Metadata
113310	urlParams_ gensupport.URLParams
113311	ctx_       context.Context
113312	header_    http.Header
113313}
113314
113315// SetCommonInstanceMetadata: Sets metadata common to all instances
113316// within the specified project using the data included in the request.
113317//
113318// - project: Project ID for this request.
113319func (r *ProjectsService) SetCommonInstanceMetadata(project string, metadata *Metadata) *ProjectsSetCommonInstanceMetadataCall {
113320	c := &ProjectsSetCommonInstanceMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113321	c.project = project
113322	c.metadata = metadata
113323	return c
113324}
113325
113326// RequestId sets the optional parameter "requestId": An optional
113327// request ID to identify requests. Specify a unique request ID so that
113328// if you must retry your request, the server will know to ignore the
113329// request if it has already been completed. For example, consider a
113330// situation where you make an initial request and the request times
113331// out. If you make the request again with the same request ID, the
113332// server can check if original operation with the same request ID was
113333// received, and if so, will ignore the second request. This prevents
113334// clients from accidentally creating duplicate commitments. The request
113335// ID must be a valid UUID with the exception that zero UUID is not
113336// supported ( 00000000-0000-0000-0000-000000000000).
113337func (c *ProjectsSetCommonInstanceMetadataCall) RequestId(requestId string) *ProjectsSetCommonInstanceMetadataCall {
113338	c.urlParams_.Set("requestId", requestId)
113339	return c
113340}
113341
113342// Fields allows partial responses to be retrieved. See
113343// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113344// for more information.
113345func (c *ProjectsSetCommonInstanceMetadataCall) Fields(s ...googleapi.Field) *ProjectsSetCommonInstanceMetadataCall {
113346	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113347	return c
113348}
113349
113350// Context sets the context to be used in this call's Do method. Any
113351// pending HTTP request will be aborted if the provided context is
113352// canceled.
113353func (c *ProjectsSetCommonInstanceMetadataCall) Context(ctx context.Context) *ProjectsSetCommonInstanceMetadataCall {
113354	c.ctx_ = ctx
113355	return c
113356}
113357
113358// Header returns an http.Header that can be modified by the caller to
113359// add HTTP headers to the request.
113360func (c *ProjectsSetCommonInstanceMetadataCall) Header() http.Header {
113361	if c.header_ == nil {
113362		c.header_ = make(http.Header)
113363	}
113364	return c.header_
113365}
113366
113367func (c *ProjectsSetCommonInstanceMetadataCall) doRequest(alt string) (*http.Response, error) {
113368	reqHeaders := make(http.Header)
113369	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
113370	for k, v := range c.header_ {
113371		reqHeaders[k] = v
113372	}
113373	reqHeaders.Set("User-Agent", c.s.userAgent())
113374	var body io.Reader = nil
113375	body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata)
113376	if err != nil {
113377		return nil, err
113378	}
113379	reqHeaders.Set("Content-Type", "application/json")
113380	c.urlParams_.Set("alt", alt)
113381	c.urlParams_.Set("prettyPrint", "false")
113382	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/setCommonInstanceMetadata")
113383	urls += "?" + c.urlParams_.Encode()
113384	req, err := http.NewRequest("POST", urls, body)
113385	if err != nil {
113386		return nil, err
113387	}
113388	req.Header = reqHeaders
113389	googleapi.Expand(req.URL, map[string]string{
113390		"project": c.project,
113391	})
113392	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113393}
113394
113395// Do executes the "compute.projects.setCommonInstanceMetadata" call.
113396// Exactly one of *Operation or error will be non-nil. Any non-2xx
113397// status code is an error. Response headers are in either
113398// *Operation.ServerResponse.Header or (if a response was returned at
113399// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113400// to check whether the returned error was because
113401// http.StatusNotModified was returned.
113402func (c *ProjectsSetCommonInstanceMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113403	gensupport.SetOptions(c.urlParams_, opts...)
113404	res, err := c.doRequest("json")
113405	if res != nil && res.StatusCode == http.StatusNotModified {
113406		if res.Body != nil {
113407			res.Body.Close()
113408		}
113409		return nil, &googleapi.Error{
113410			Code:   res.StatusCode,
113411			Header: res.Header,
113412		}
113413	}
113414	if err != nil {
113415		return nil, err
113416	}
113417	defer googleapi.CloseBody(res)
113418	if err := googleapi.CheckResponse(res); err != nil {
113419		return nil, err
113420	}
113421	ret := &Operation{
113422		ServerResponse: googleapi.ServerResponse{
113423			Header:         res.Header,
113424			HTTPStatusCode: res.StatusCode,
113425		},
113426	}
113427	target := &ret
113428	if err := gensupport.DecodeResponse(target, res); err != nil {
113429		return nil, err
113430	}
113431	return ret, nil
113432	// {
113433	//   "description": "Sets metadata common to all instances within the specified project using the data included in the request.",
113434	//   "flatPath": "projects/{project}/setCommonInstanceMetadata",
113435	//   "httpMethod": "POST",
113436	//   "id": "compute.projects.setCommonInstanceMetadata",
113437	//   "parameterOrder": [
113438	//     "project"
113439	//   ],
113440	//   "parameters": {
113441	//     "project": {
113442	//       "description": "Project ID for this request.",
113443	//       "location": "path",
113444	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113445	//       "required": true,
113446	//       "type": "string"
113447	//     },
113448	//     "requestId": {
113449	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
113450	//       "location": "query",
113451	//       "type": "string"
113452	//     }
113453	//   },
113454	//   "path": "projects/{project}/setCommonInstanceMetadata",
113455	//   "request": {
113456	//     "$ref": "Metadata"
113457	//   },
113458	//   "response": {
113459	//     "$ref": "Operation"
113460	//   },
113461	//   "scopes": [
113462	//     "https://www.googleapis.com/auth/cloud-platform",
113463	//     "https://www.googleapis.com/auth/compute"
113464	//   ]
113465	// }
113466
113467}
113468
113469// method id "compute.projects.setDefaultNetworkTier":
113470
113471type ProjectsSetDefaultNetworkTierCall struct {
113472	s                                    *Service
113473	project                              string
113474	projectssetdefaultnetworktierrequest *ProjectsSetDefaultNetworkTierRequest
113475	urlParams_                           gensupport.URLParams
113476	ctx_                                 context.Context
113477	header_                              http.Header
113478}
113479
113480// SetDefaultNetworkTier: Sets the default network tier of the project.
113481// The default network tier is used when an
113482// address/forwardingRule/instance is created without specifying the
113483// network tier field.
113484//
113485// - project: Project ID for this request.
113486func (r *ProjectsService) SetDefaultNetworkTier(project string, projectssetdefaultnetworktierrequest *ProjectsSetDefaultNetworkTierRequest) *ProjectsSetDefaultNetworkTierCall {
113487	c := &ProjectsSetDefaultNetworkTierCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113488	c.project = project
113489	c.projectssetdefaultnetworktierrequest = projectssetdefaultnetworktierrequest
113490	return c
113491}
113492
113493// RequestId sets the optional parameter "requestId": An optional
113494// request ID to identify requests. Specify a unique request ID so that
113495// if you must retry your request, the server will know to ignore the
113496// request if it has already been completed. For example, consider a
113497// situation where you make an initial request and the request times
113498// out. If you make the request again with the same request ID, the
113499// server can check if original operation with the same request ID was
113500// received, and if so, will ignore the second request. This prevents
113501// clients from accidentally creating duplicate commitments. The request
113502// ID must be a valid UUID with the exception that zero UUID is not
113503// supported ( 00000000-0000-0000-0000-000000000000).
113504func (c *ProjectsSetDefaultNetworkTierCall) RequestId(requestId string) *ProjectsSetDefaultNetworkTierCall {
113505	c.urlParams_.Set("requestId", requestId)
113506	return c
113507}
113508
113509// Fields allows partial responses to be retrieved. See
113510// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113511// for more information.
113512func (c *ProjectsSetDefaultNetworkTierCall) Fields(s ...googleapi.Field) *ProjectsSetDefaultNetworkTierCall {
113513	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113514	return c
113515}
113516
113517// Context sets the context to be used in this call's Do method. Any
113518// pending HTTP request will be aborted if the provided context is
113519// canceled.
113520func (c *ProjectsSetDefaultNetworkTierCall) Context(ctx context.Context) *ProjectsSetDefaultNetworkTierCall {
113521	c.ctx_ = ctx
113522	return c
113523}
113524
113525// Header returns an http.Header that can be modified by the caller to
113526// add HTTP headers to the request.
113527func (c *ProjectsSetDefaultNetworkTierCall) Header() http.Header {
113528	if c.header_ == nil {
113529		c.header_ = make(http.Header)
113530	}
113531	return c.header_
113532}
113533
113534func (c *ProjectsSetDefaultNetworkTierCall) doRequest(alt string) (*http.Response, error) {
113535	reqHeaders := make(http.Header)
113536	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
113537	for k, v := range c.header_ {
113538		reqHeaders[k] = v
113539	}
113540	reqHeaders.Set("User-Agent", c.s.userAgent())
113541	var body io.Reader = nil
113542	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectssetdefaultnetworktierrequest)
113543	if err != nil {
113544		return nil, err
113545	}
113546	reqHeaders.Set("Content-Type", "application/json")
113547	c.urlParams_.Set("alt", alt)
113548	c.urlParams_.Set("prettyPrint", "false")
113549	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/setDefaultNetworkTier")
113550	urls += "?" + c.urlParams_.Encode()
113551	req, err := http.NewRequest("POST", urls, body)
113552	if err != nil {
113553		return nil, err
113554	}
113555	req.Header = reqHeaders
113556	googleapi.Expand(req.URL, map[string]string{
113557		"project": c.project,
113558	})
113559	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113560}
113561
113562// Do executes the "compute.projects.setDefaultNetworkTier" call.
113563// Exactly one of *Operation or error will be non-nil. Any non-2xx
113564// status code is an error. Response headers are in either
113565// *Operation.ServerResponse.Header or (if a response was returned at
113566// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113567// to check whether the returned error was because
113568// http.StatusNotModified was returned.
113569func (c *ProjectsSetDefaultNetworkTierCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113570	gensupport.SetOptions(c.urlParams_, opts...)
113571	res, err := c.doRequest("json")
113572	if res != nil && res.StatusCode == http.StatusNotModified {
113573		if res.Body != nil {
113574			res.Body.Close()
113575		}
113576		return nil, &googleapi.Error{
113577			Code:   res.StatusCode,
113578			Header: res.Header,
113579		}
113580	}
113581	if err != nil {
113582		return nil, err
113583	}
113584	defer googleapi.CloseBody(res)
113585	if err := googleapi.CheckResponse(res); err != nil {
113586		return nil, err
113587	}
113588	ret := &Operation{
113589		ServerResponse: googleapi.ServerResponse{
113590			Header:         res.Header,
113591			HTTPStatusCode: res.StatusCode,
113592		},
113593	}
113594	target := &ret
113595	if err := gensupport.DecodeResponse(target, res); err != nil {
113596		return nil, err
113597	}
113598	return ret, nil
113599	// {
113600	//   "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.",
113601	//   "flatPath": "projects/{project}/setDefaultNetworkTier",
113602	//   "httpMethod": "POST",
113603	//   "id": "compute.projects.setDefaultNetworkTier",
113604	//   "parameterOrder": [
113605	//     "project"
113606	//   ],
113607	//   "parameters": {
113608	//     "project": {
113609	//       "description": "Project ID for this request.",
113610	//       "location": "path",
113611	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113612	//       "required": true,
113613	//       "type": "string"
113614	//     },
113615	//     "requestId": {
113616	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
113617	//       "location": "query",
113618	//       "type": "string"
113619	//     }
113620	//   },
113621	//   "path": "projects/{project}/setDefaultNetworkTier",
113622	//   "request": {
113623	//     "$ref": "ProjectsSetDefaultNetworkTierRequest"
113624	//   },
113625	//   "response": {
113626	//     "$ref": "Operation"
113627	//   },
113628	//   "scopes": [
113629	//     "https://www.googleapis.com/auth/cloud-platform",
113630	//     "https://www.googleapis.com/auth/compute"
113631	//   ]
113632	// }
113633
113634}
113635
113636// method id "compute.projects.setUsageExportBucket":
113637
113638type ProjectsSetUsageExportBucketCall struct {
113639	s                   *Service
113640	project             string
113641	usageexportlocation *UsageExportLocation
113642	urlParams_          gensupport.URLParams
113643	ctx_                context.Context
113644	header_             http.Header
113645}
113646
113647// SetUsageExportBucket: Enables the usage export feature and sets the
113648// usage export bucket where reports are stored. If you provide an empty
113649// request body using this method, the usage export feature will be
113650// disabled.
113651//
113652// - project: Project ID for this request.
113653func (r *ProjectsService) SetUsageExportBucket(project string, usageexportlocation *UsageExportLocation) *ProjectsSetUsageExportBucketCall {
113654	c := &ProjectsSetUsageExportBucketCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113655	c.project = project
113656	c.usageexportlocation = usageexportlocation
113657	return c
113658}
113659
113660// RequestId sets the optional parameter "requestId": An optional
113661// request ID to identify requests. Specify a unique request ID so that
113662// if you must retry your request, the server will know to ignore the
113663// request if it has already been completed. For example, consider a
113664// situation where you make an initial request and the request times
113665// out. If you make the request again with the same request ID, the
113666// server can check if original operation with the same request ID was
113667// received, and if so, will ignore the second request. This prevents
113668// clients from accidentally creating duplicate commitments. The request
113669// ID must be a valid UUID with the exception that zero UUID is not
113670// supported ( 00000000-0000-0000-0000-000000000000).
113671func (c *ProjectsSetUsageExportBucketCall) RequestId(requestId string) *ProjectsSetUsageExportBucketCall {
113672	c.urlParams_.Set("requestId", requestId)
113673	return c
113674}
113675
113676// Fields allows partial responses to be retrieved. See
113677// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113678// for more information.
113679func (c *ProjectsSetUsageExportBucketCall) Fields(s ...googleapi.Field) *ProjectsSetUsageExportBucketCall {
113680	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113681	return c
113682}
113683
113684// Context sets the context to be used in this call's Do method. Any
113685// pending HTTP request will be aborted if the provided context is
113686// canceled.
113687func (c *ProjectsSetUsageExportBucketCall) Context(ctx context.Context) *ProjectsSetUsageExportBucketCall {
113688	c.ctx_ = ctx
113689	return c
113690}
113691
113692// Header returns an http.Header that can be modified by the caller to
113693// add HTTP headers to the request.
113694func (c *ProjectsSetUsageExportBucketCall) Header() http.Header {
113695	if c.header_ == nil {
113696		c.header_ = make(http.Header)
113697	}
113698	return c.header_
113699}
113700
113701func (c *ProjectsSetUsageExportBucketCall) doRequest(alt string) (*http.Response, error) {
113702	reqHeaders := make(http.Header)
113703	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
113704	for k, v := range c.header_ {
113705		reqHeaders[k] = v
113706	}
113707	reqHeaders.Set("User-Agent", c.s.userAgent())
113708	var body io.Reader = nil
113709	body, err := googleapi.WithoutDataWrapper.JSONReader(c.usageexportlocation)
113710	if err != nil {
113711		return nil, err
113712	}
113713	reqHeaders.Set("Content-Type", "application/json")
113714	c.urlParams_.Set("alt", alt)
113715	c.urlParams_.Set("prettyPrint", "false")
113716	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/setUsageExportBucket")
113717	urls += "?" + c.urlParams_.Encode()
113718	req, err := http.NewRequest("POST", urls, body)
113719	if err != nil {
113720		return nil, err
113721	}
113722	req.Header = reqHeaders
113723	googleapi.Expand(req.URL, map[string]string{
113724		"project": c.project,
113725	})
113726	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113727}
113728
113729// Do executes the "compute.projects.setUsageExportBucket" call.
113730// Exactly one of *Operation or error will be non-nil. Any non-2xx
113731// status code is an error. Response headers are in either
113732// *Operation.ServerResponse.Header or (if a response was returned at
113733// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113734// to check whether the returned error was because
113735// http.StatusNotModified was returned.
113736func (c *ProjectsSetUsageExportBucketCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113737	gensupport.SetOptions(c.urlParams_, opts...)
113738	res, err := c.doRequest("json")
113739	if res != nil && res.StatusCode == http.StatusNotModified {
113740		if res.Body != nil {
113741			res.Body.Close()
113742		}
113743		return nil, &googleapi.Error{
113744			Code:   res.StatusCode,
113745			Header: res.Header,
113746		}
113747	}
113748	if err != nil {
113749		return nil, err
113750	}
113751	defer googleapi.CloseBody(res)
113752	if err := googleapi.CheckResponse(res); err != nil {
113753		return nil, err
113754	}
113755	ret := &Operation{
113756		ServerResponse: googleapi.ServerResponse{
113757			Header:         res.Header,
113758			HTTPStatusCode: res.StatusCode,
113759		},
113760	}
113761	target := &ret
113762	if err := gensupport.DecodeResponse(target, res); err != nil {
113763		return nil, err
113764	}
113765	return ret, nil
113766	// {
113767	//   "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.",
113768	//   "flatPath": "projects/{project}/setUsageExportBucket",
113769	//   "httpMethod": "POST",
113770	//   "id": "compute.projects.setUsageExportBucket",
113771	//   "parameterOrder": [
113772	//     "project"
113773	//   ],
113774	//   "parameters": {
113775	//     "project": {
113776	//       "description": "Project ID for this request.",
113777	//       "location": "path",
113778	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113779	//       "required": true,
113780	//       "type": "string"
113781	//     },
113782	//     "requestId": {
113783	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
113784	//       "location": "query",
113785	//       "type": "string"
113786	//     }
113787	//   },
113788	//   "path": "projects/{project}/setUsageExportBucket",
113789	//   "request": {
113790	//     "$ref": "UsageExportLocation"
113791	//   },
113792	//   "response": {
113793	//     "$ref": "Operation"
113794	//   },
113795	//   "scopes": [
113796	//     "https://www.googleapis.com/auth/cloud-platform",
113797	//     "https://www.googleapis.com/auth/compute",
113798	//     "https://www.googleapis.com/auth/devstorage.full_control",
113799	//     "https://www.googleapis.com/auth/devstorage.read_only",
113800	//     "https://www.googleapis.com/auth/devstorage.read_write"
113801	//   ]
113802	// }
113803
113804}
113805
113806// method id "compute.publicAdvertisedPrefixes.delete":
113807
113808type PublicAdvertisedPrefixesDeleteCall struct {
113809	s                      *Service
113810	project                string
113811	publicAdvertisedPrefix string
113812	urlParams_             gensupport.URLParams
113813	ctx_                   context.Context
113814	header_                http.Header
113815}
113816
113817// Delete: Deletes the specified PublicAdvertisedPrefix
113818//
113819// - project: Project ID for this request.
113820// - publicAdvertisedPrefix: Name of the PublicAdvertisedPrefix resource
113821//   to delete.
113822func (r *PublicAdvertisedPrefixesService) Delete(project string, publicAdvertisedPrefix string) *PublicAdvertisedPrefixesDeleteCall {
113823	c := &PublicAdvertisedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113824	c.project = project
113825	c.publicAdvertisedPrefix = publicAdvertisedPrefix
113826	return c
113827}
113828
113829// RequestId sets the optional parameter "requestId": An optional
113830// request ID to identify requests. Specify a unique request ID so that
113831// if you must retry your request, the server will know to ignore the
113832// request if it has already been completed. For example, consider a
113833// situation where you make an initial request and the request times
113834// out. If you make the request again with the same request ID, the
113835// server can check if original operation with the same request ID was
113836// received, and if so, will ignore the second request. This prevents
113837// clients from accidentally creating duplicate commitments. The request
113838// ID must be a valid UUID with the exception that zero UUID is not
113839// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
113840// MixerMutationRequestBuilder
113841func (c *PublicAdvertisedPrefixesDeleteCall) RequestId(requestId string) *PublicAdvertisedPrefixesDeleteCall {
113842	c.urlParams_.Set("requestId", requestId)
113843	return c
113844}
113845
113846// Fields allows partial responses to be retrieved. See
113847// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113848// for more information.
113849func (c *PublicAdvertisedPrefixesDeleteCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesDeleteCall {
113850	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113851	return c
113852}
113853
113854// Context sets the context to be used in this call's Do method. Any
113855// pending HTTP request will be aborted if the provided context is
113856// canceled.
113857func (c *PublicAdvertisedPrefixesDeleteCall) Context(ctx context.Context) *PublicAdvertisedPrefixesDeleteCall {
113858	c.ctx_ = ctx
113859	return c
113860}
113861
113862// Header returns an http.Header that can be modified by the caller to
113863// add HTTP headers to the request.
113864func (c *PublicAdvertisedPrefixesDeleteCall) Header() http.Header {
113865	if c.header_ == nil {
113866		c.header_ = make(http.Header)
113867	}
113868	return c.header_
113869}
113870
113871func (c *PublicAdvertisedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) {
113872	reqHeaders := make(http.Header)
113873	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
113874	for k, v := range c.header_ {
113875		reqHeaders[k] = v
113876	}
113877	reqHeaders.Set("User-Agent", c.s.userAgent())
113878	var body io.Reader = nil
113879	c.urlParams_.Set("alt", alt)
113880	c.urlParams_.Set("prettyPrint", "false")
113881	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}")
113882	urls += "?" + c.urlParams_.Encode()
113883	req, err := http.NewRequest("DELETE", urls, body)
113884	if err != nil {
113885		return nil, err
113886	}
113887	req.Header = reqHeaders
113888	googleapi.Expand(req.URL, map[string]string{
113889		"project":                c.project,
113890		"publicAdvertisedPrefix": c.publicAdvertisedPrefix,
113891	})
113892	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113893}
113894
113895// Do executes the "compute.publicAdvertisedPrefixes.delete" call.
113896// Exactly one of *Operation or error will be non-nil. Any non-2xx
113897// status code is an error. Response headers are in either
113898// *Operation.ServerResponse.Header or (if a response was returned at
113899// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113900// to check whether the returned error was because
113901// http.StatusNotModified was returned.
113902func (c *PublicAdvertisedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113903	gensupport.SetOptions(c.urlParams_, opts...)
113904	res, err := c.doRequest("json")
113905	if res != nil && res.StatusCode == http.StatusNotModified {
113906		if res.Body != nil {
113907			res.Body.Close()
113908		}
113909		return nil, &googleapi.Error{
113910			Code:   res.StatusCode,
113911			Header: res.Header,
113912		}
113913	}
113914	if err != nil {
113915		return nil, err
113916	}
113917	defer googleapi.CloseBody(res)
113918	if err := googleapi.CheckResponse(res); err != nil {
113919		return nil, err
113920	}
113921	ret := &Operation{
113922		ServerResponse: googleapi.ServerResponse{
113923			Header:         res.Header,
113924			HTTPStatusCode: res.StatusCode,
113925		},
113926	}
113927	target := &ret
113928	if err := gensupport.DecodeResponse(target, res); err != nil {
113929		return nil, err
113930	}
113931	return ret, nil
113932	// {
113933	//   "description": "Deletes the specified PublicAdvertisedPrefix",
113934	//   "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
113935	//   "httpMethod": "DELETE",
113936	//   "id": "compute.publicAdvertisedPrefixes.delete",
113937	//   "parameterOrder": [
113938	//     "project",
113939	//     "publicAdvertisedPrefix"
113940	//   ],
113941	//   "parameters": {
113942	//     "project": {
113943	//       "description": "Project ID for this request.",
113944	//       "location": "path",
113945	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113946	//       "required": true,
113947	//       "type": "string"
113948	//     },
113949	//     "publicAdvertisedPrefix": {
113950	//       "description": "Name of the PublicAdvertisedPrefix resource to delete.",
113951	//       "location": "path",
113952	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
113953	//       "required": true,
113954	//       "type": "string"
113955	//     },
113956	//     "requestId": {
113957	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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",
113958	//       "location": "query",
113959	//       "type": "string"
113960	//     }
113961	//   },
113962	//   "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
113963	//   "response": {
113964	//     "$ref": "Operation"
113965	//   },
113966	//   "scopes": [
113967	//     "https://www.googleapis.com/auth/cloud-platform",
113968	//     "https://www.googleapis.com/auth/compute"
113969	//   ]
113970	// }
113971
113972}
113973
113974// method id "compute.publicAdvertisedPrefixes.get":
113975
113976type PublicAdvertisedPrefixesGetCall struct {
113977	s                      *Service
113978	project                string
113979	publicAdvertisedPrefix string
113980	urlParams_             gensupport.URLParams
113981	ifNoneMatch_           string
113982	ctx_                   context.Context
113983	header_                http.Header
113984}
113985
113986// Get: Returns the specified PublicAdvertisedPrefix resource.
113987//
113988// - project: Project ID for this request.
113989// - publicAdvertisedPrefix: Name of the PublicAdvertisedPrefix resource
113990//   to return.
113991func (r *PublicAdvertisedPrefixesService) Get(project string, publicAdvertisedPrefix string) *PublicAdvertisedPrefixesGetCall {
113992	c := &PublicAdvertisedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113993	c.project = project
113994	c.publicAdvertisedPrefix = publicAdvertisedPrefix
113995	return c
113996}
113997
113998// Fields allows partial responses to be retrieved. See
113999// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114000// for more information.
114001func (c *PublicAdvertisedPrefixesGetCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesGetCall {
114002	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114003	return c
114004}
114005
114006// IfNoneMatch sets the optional parameter which makes the operation
114007// fail if the object's ETag matches the given value. This is useful for
114008// getting updates only after the object has changed since the last
114009// request. Use googleapi.IsNotModified to check whether the response
114010// error from Do is the result of In-None-Match.
114011func (c *PublicAdvertisedPrefixesGetCall) IfNoneMatch(entityTag string) *PublicAdvertisedPrefixesGetCall {
114012	c.ifNoneMatch_ = entityTag
114013	return c
114014}
114015
114016// Context sets the context to be used in this call's Do method. Any
114017// pending HTTP request will be aborted if the provided context is
114018// canceled.
114019func (c *PublicAdvertisedPrefixesGetCall) Context(ctx context.Context) *PublicAdvertisedPrefixesGetCall {
114020	c.ctx_ = ctx
114021	return c
114022}
114023
114024// Header returns an http.Header that can be modified by the caller to
114025// add HTTP headers to the request.
114026func (c *PublicAdvertisedPrefixesGetCall) Header() http.Header {
114027	if c.header_ == nil {
114028		c.header_ = make(http.Header)
114029	}
114030	return c.header_
114031}
114032
114033func (c *PublicAdvertisedPrefixesGetCall) doRequest(alt string) (*http.Response, error) {
114034	reqHeaders := make(http.Header)
114035	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
114036	for k, v := range c.header_ {
114037		reqHeaders[k] = v
114038	}
114039	reqHeaders.Set("User-Agent", c.s.userAgent())
114040	if c.ifNoneMatch_ != "" {
114041		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
114042	}
114043	var body io.Reader = nil
114044	c.urlParams_.Set("alt", alt)
114045	c.urlParams_.Set("prettyPrint", "false")
114046	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}")
114047	urls += "?" + c.urlParams_.Encode()
114048	req, err := http.NewRequest("GET", urls, body)
114049	if err != nil {
114050		return nil, err
114051	}
114052	req.Header = reqHeaders
114053	googleapi.Expand(req.URL, map[string]string{
114054		"project":                c.project,
114055		"publicAdvertisedPrefix": c.publicAdvertisedPrefix,
114056	})
114057	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114058}
114059
114060// Do executes the "compute.publicAdvertisedPrefixes.get" call.
114061// Exactly one of *PublicAdvertisedPrefix or error will be non-nil. Any
114062// non-2xx status code is an error. Response headers are in either
114063// *PublicAdvertisedPrefix.ServerResponse.Header or (if a response was
114064// returned at all) in error.(*googleapi.Error).Header. Use
114065// googleapi.IsNotModified to check whether the returned error was
114066// because http.StatusNotModified was returned.
114067func (c *PublicAdvertisedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicAdvertisedPrefix, error) {
114068	gensupport.SetOptions(c.urlParams_, opts...)
114069	res, err := c.doRequest("json")
114070	if res != nil && res.StatusCode == http.StatusNotModified {
114071		if res.Body != nil {
114072			res.Body.Close()
114073		}
114074		return nil, &googleapi.Error{
114075			Code:   res.StatusCode,
114076			Header: res.Header,
114077		}
114078	}
114079	if err != nil {
114080		return nil, err
114081	}
114082	defer googleapi.CloseBody(res)
114083	if err := googleapi.CheckResponse(res); err != nil {
114084		return nil, err
114085	}
114086	ret := &PublicAdvertisedPrefix{
114087		ServerResponse: googleapi.ServerResponse{
114088			Header:         res.Header,
114089			HTTPStatusCode: res.StatusCode,
114090		},
114091	}
114092	target := &ret
114093	if err := gensupport.DecodeResponse(target, res); err != nil {
114094		return nil, err
114095	}
114096	return ret, nil
114097	// {
114098	//   "description": "Returns the specified PublicAdvertisedPrefix resource.",
114099	//   "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
114100	//   "httpMethod": "GET",
114101	//   "id": "compute.publicAdvertisedPrefixes.get",
114102	//   "parameterOrder": [
114103	//     "project",
114104	//     "publicAdvertisedPrefix"
114105	//   ],
114106	//   "parameters": {
114107	//     "project": {
114108	//       "description": "Project ID for this request.",
114109	//       "location": "path",
114110	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114111	//       "required": true,
114112	//       "type": "string"
114113	//     },
114114	//     "publicAdvertisedPrefix": {
114115	//       "description": "Name of the PublicAdvertisedPrefix resource to return.",
114116	//       "location": "path",
114117	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
114118	//       "required": true,
114119	//       "type": "string"
114120	//     }
114121	//   },
114122	//   "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
114123	//   "response": {
114124	//     "$ref": "PublicAdvertisedPrefix"
114125	//   },
114126	//   "scopes": [
114127	//     "https://www.googleapis.com/auth/cloud-platform",
114128	//     "https://www.googleapis.com/auth/compute",
114129	//     "https://www.googleapis.com/auth/compute.readonly"
114130	//   ]
114131	// }
114132
114133}
114134
114135// method id "compute.publicAdvertisedPrefixes.insert":
114136
114137type PublicAdvertisedPrefixesInsertCall struct {
114138	s                      *Service
114139	project                string
114140	publicadvertisedprefix *PublicAdvertisedPrefix
114141	urlParams_             gensupport.URLParams
114142	ctx_                   context.Context
114143	header_                http.Header
114144}
114145
114146// Insert: Creates a PublicAdvertisedPrefix in the specified project
114147// using the parameters that are included in the request.
114148//
114149// - project: Project ID for this request.
114150func (r *PublicAdvertisedPrefixesService) Insert(project string, publicadvertisedprefix *PublicAdvertisedPrefix) *PublicAdvertisedPrefixesInsertCall {
114151	c := &PublicAdvertisedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114152	c.project = project
114153	c.publicadvertisedprefix = publicadvertisedprefix
114154	return c
114155}
114156
114157// RequestId sets the optional parameter "requestId": An optional
114158// request ID to identify requests. Specify a unique request ID so that
114159// if you must retry your request, the server will know to ignore the
114160// request if it has already been completed. For example, consider a
114161// situation where you make an initial request and the request times
114162// out. If you make the request again with the same request ID, the
114163// server can check if original operation with the same request ID was
114164// received, and if so, will ignore the second request. This prevents
114165// clients from accidentally creating duplicate commitments. The request
114166// ID must be a valid UUID with the exception that zero UUID is not
114167// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
114168// MixerMutationRequestBuilder
114169func (c *PublicAdvertisedPrefixesInsertCall) RequestId(requestId string) *PublicAdvertisedPrefixesInsertCall {
114170	c.urlParams_.Set("requestId", requestId)
114171	return c
114172}
114173
114174// Fields allows partial responses to be retrieved. See
114175// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114176// for more information.
114177func (c *PublicAdvertisedPrefixesInsertCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesInsertCall {
114178	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114179	return c
114180}
114181
114182// Context sets the context to be used in this call's Do method. Any
114183// pending HTTP request will be aborted if the provided context is
114184// canceled.
114185func (c *PublicAdvertisedPrefixesInsertCall) Context(ctx context.Context) *PublicAdvertisedPrefixesInsertCall {
114186	c.ctx_ = ctx
114187	return c
114188}
114189
114190// Header returns an http.Header that can be modified by the caller to
114191// add HTTP headers to the request.
114192func (c *PublicAdvertisedPrefixesInsertCall) Header() http.Header {
114193	if c.header_ == nil {
114194		c.header_ = make(http.Header)
114195	}
114196	return c.header_
114197}
114198
114199func (c *PublicAdvertisedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) {
114200	reqHeaders := make(http.Header)
114201	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
114202	for k, v := range c.header_ {
114203		reqHeaders[k] = v
114204	}
114205	reqHeaders.Set("User-Agent", c.s.userAgent())
114206	var body io.Reader = nil
114207	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicadvertisedprefix)
114208	if err != nil {
114209		return nil, err
114210	}
114211	reqHeaders.Set("Content-Type", "application/json")
114212	c.urlParams_.Set("alt", alt)
114213	c.urlParams_.Set("prettyPrint", "false")
114214	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes")
114215	urls += "?" + c.urlParams_.Encode()
114216	req, err := http.NewRequest("POST", urls, body)
114217	if err != nil {
114218		return nil, err
114219	}
114220	req.Header = reqHeaders
114221	googleapi.Expand(req.URL, map[string]string{
114222		"project": c.project,
114223	})
114224	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114225}
114226
114227// Do executes the "compute.publicAdvertisedPrefixes.insert" call.
114228// Exactly one of *Operation or error will be non-nil. Any non-2xx
114229// status code is an error. Response headers are in either
114230// *Operation.ServerResponse.Header or (if a response was returned at
114231// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114232// to check whether the returned error was because
114233// http.StatusNotModified was returned.
114234func (c *PublicAdvertisedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
114235	gensupport.SetOptions(c.urlParams_, opts...)
114236	res, err := c.doRequest("json")
114237	if res != nil && res.StatusCode == http.StatusNotModified {
114238		if res.Body != nil {
114239			res.Body.Close()
114240		}
114241		return nil, &googleapi.Error{
114242			Code:   res.StatusCode,
114243			Header: res.Header,
114244		}
114245	}
114246	if err != nil {
114247		return nil, err
114248	}
114249	defer googleapi.CloseBody(res)
114250	if err := googleapi.CheckResponse(res); err != nil {
114251		return nil, err
114252	}
114253	ret := &Operation{
114254		ServerResponse: googleapi.ServerResponse{
114255			Header:         res.Header,
114256			HTTPStatusCode: res.StatusCode,
114257		},
114258	}
114259	target := &ret
114260	if err := gensupport.DecodeResponse(target, res); err != nil {
114261		return nil, err
114262	}
114263	return ret, nil
114264	// {
114265	//   "description": "Creates a PublicAdvertisedPrefix in the specified project using the parameters that are included in the request.",
114266	//   "flatPath": "projects/{project}/global/publicAdvertisedPrefixes",
114267	//   "httpMethod": "POST",
114268	//   "id": "compute.publicAdvertisedPrefixes.insert",
114269	//   "parameterOrder": [
114270	//     "project"
114271	//   ],
114272	//   "parameters": {
114273	//     "project": {
114274	//       "description": "Project ID for this request.",
114275	//       "location": "path",
114276	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114277	//       "required": true,
114278	//       "type": "string"
114279	//     },
114280	//     "requestId": {
114281	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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",
114282	//       "location": "query",
114283	//       "type": "string"
114284	//     }
114285	//   },
114286	//   "path": "projects/{project}/global/publicAdvertisedPrefixes",
114287	//   "request": {
114288	//     "$ref": "PublicAdvertisedPrefix"
114289	//   },
114290	//   "response": {
114291	//     "$ref": "Operation"
114292	//   },
114293	//   "scopes": [
114294	//     "https://www.googleapis.com/auth/cloud-platform",
114295	//     "https://www.googleapis.com/auth/compute"
114296	//   ]
114297	// }
114298
114299}
114300
114301// method id "compute.publicAdvertisedPrefixes.list":
114302
114303type PublicAdvertisedPrefixesListCall struct {
114304	s            *Service
114305	project      string
114306	urlParams_   gensupport.URLParams
114307	ifNoneMatch_ string
114308	ctx_         context.Context
114309	header_      http.Header
114310}
114311
114312// List: Lists the PublicAdvertisedPrefixes for a project.
114313//
114314// - project: Project ID for this request.
114315func (r *PublicAdvertisedPrefixesService) List(project string) *PublicAdvertisedPrefixesListCall {
114316	c := &PublicAdvertisedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114317	c.project = project
114318	return c
114319}
114320
114321// Filter sets the optional parameter "filter": A filter expression that
114322// filters resources listed in the response. The expression must specify
114323// the field name, a comparison operator, and the value that you want to
114324// use for filtering. The value must be a string, a number, or a
114325// boolean. The comparison operator must be either `=`, `!=`, `>`, or
114326// `<`. For example, if you are filtering Compute Engine instances, you
114327// can exclude instances named `example-instance` by specifying `name !=
114328// example-instance`. You can also filter nested fields. For example,
114329// you could specify `scheduling.automaticRestart = false` to include
114330// instances only if they are not scheduled for automatic restarts. You
114331// can use filtering on nested fields to filter based on resource
114332// labels. To filter on multiple expressions, provide each separate
114333// expression within parentheses. For example: ```
114334// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
114335// ``` By default, each expression is an `AND` expression. However, you
114336// can include `AND` and `OR` expressions explicitly. For example: ```
114337// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
114338// AND (scheduling.automaticRestart = true) ```
114339func (c *PublicAdvertisedPrefixesListCall) Filter(filter string) *PublicAdvertisedPrefixesListCall {
114340	c.urlParams_.Set("filter", filter)
114341	return c
114342}
114343
114344// MaxResults sets the optional parameter "maxResults": The maximum
114345// number of results per page that should be returned. If the number of
114346// available results is larger than `maxResults`, Compute Engine returns
114347// a `nextPageToken` that can be used to get the next page of results in
114348// subsequent list requests. Acceptable values are `0` to `500`,
114349// inclusive. (Default: `500`)
114350func (c *PublicAdvertisedPrefixesListCall) MaxResults(maxResults int64) *PublicAdvertisedPrefixesListCall {
114351	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
114352	return c
114353}
114354
114355// OrderBy sets the optional parameter "orderBy": Sorts list results by
114356// a certain order. By default, results are returned in alphanumerical
114357// order based on the resource name. You can also sort results in
114358// descending order based on the creation timestamp using
114359// `orderBy="creationTimestamp desc". This sorts results based on the
114360// `creationTimestamp` field in reverse chronological order (newest
114361// result first). Use this to sort resources like operations so that the
114362// newest operation is returned first. Currently, only sorting by `name`
114363// or `creationTimestamp desc` is supported.
114364func (c *PublicAdvertisedPrefixesListCall) OrderBy(orderBy string) *PublicAdvertisedPrefixesListCall {
114365	c.urlParams_.Set("orderBy", orderBy)
114366	return c
114367}
114368
114369// PageToken sets the optional parameter "pageToken": Specifies a page
114370// token to use. Set `pageToken` to the `nextPageToken` returned by a
114371// previous list request to get the next page of results.
114372func (c *PublicAdvertisedPrefixesListCall) PageToken(pageToken string) *PublicAdvertisedPrefixesListCall {
114373	c.urlParams_.Set("pageToken", pageToken)
114374	return c
114375}
114376
114377// ReturnPartialSuccess sets the optional parameter
114378// "returnPartialSuccess": Opt-in for partial success behavior which
114379// provides partial results in case of failure. The default value is
114380// false.
114381func (c *PublicAdvertisedPrefixesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PublicAdvertisedPrefixesListCall {
114382	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
114383	return c
114384}
114385
114386// Fields allows partial responses to be retrieved. See
114387// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114388// for more information.
114389func (c *PublicAdvertisedPrefixesListCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesListCall {
114390	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114391	return c
114392}
114393
114394// IfNoneMatch sets the optional parameter which makes the operation
114395// fail if the object's ETag matches the given value. This is useful for
114396// getting updates only after the object has changed since the last
114397// request. Use googleapi.IsNotModified to check whether the response
114398// error from Do is the result of In-None-Match.
114399func (c *PublicAdvertisedPrefixesListCall) IfNoneMatch(entityTag string) *PublicAdvertisedPrefixesListCall {
114400	c.ifNoneMatch_ = entityTag
114401	return c
114402}
114403
114404// Context sets the context to be used in this call's Do method. Any
114405// pending HTTP request will be aborted if the provided context is
114406// canceled.
114407func (c *PublicAdvertisedPrefixesListCall) Context(ctx context.Context) *PublicAdvertisedPrefixesListCall {
114408	c.ctx_ = ctx
114409	return c
114410}
114411
114412// Header returns an http.Header that can be modified by the caller to
114413// add HTTP headers to the request.
114414func (c *PublicAdvertisedPrefixesListCall) Header() http.Header {
114415	if c.header_ == nil {
114416		c.header_ = make(http.Header)
114417	}
114418	return c.header_
114419}
114420
114421func (c *PublicAdvertisedPrefixesListCall) doRequest(alt string) (*http.Response, error) {
114422	reqHeaders := make(http.Header)
114423	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
114424	for k, v := range c.header_ {
114425		reqHeaders[k] = v
114426	}
114427	reqHeaders.Set("User-Agent", c.s.userAgent())
114428	if c.ifNoneMatch_ != "" {
114429		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
114430	}
114431	var body io.Reader = nil
114432	c.urlParams_.Set("alt", alt)
114433	c.urlParams_.Set("prettyPrint", "false")
114434	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes")
114435	urls += "?" + c.urlParams_.Encode()
114436	req, err := http.NewRequest("GET", urls, body)
114437	if err != nil {
114438		return nil, err
114439	}
114440	req.Header = reqHeaders
114441	googleapi.Expand(req.URL, map[string]string{
114442		"project": c.project,
114443	})
114444	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114445}
114446
114447// Do executes the "compute.publicAdvertisedPrefixes.list" call.
114448// Exactly one of *PublicAdvertisedPrefixList or error will be non-nil.
114449// Any non-2xx status code is an error. Response headers are in either
114450// *PublicAdvertisedPrefixList.ServerResponse.Header or (if a response
114451// was returned at all) in error.(*googleapi.Error).Header. Use
114452// googleapi.IsNotModified to check whether the returned error was
114453// because http.StatusNotModified was returned.
114454func (c *PublicAdvertisedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicAdvertisedPrefixList, error) {
114455	gensupport.SetOptions(c.urlParams_, opts...)
114456	res, err := c.doRequest("json")
114457	if res != nil && res.StatusCode == http.StatusNotModified {
114458		if res.Body != nil {
114459			res.Body.Close()
114460		}
114461		return nil, &googleapi.Error{
114462			Code:   res.StatusCode,
114463			Header: res.Header,
114464		}
114465	}
114466	if err != nil {
114467		return nil, err
114468	}
114469	defer googleapi.CloseBody(res)
114470	if err := googleapi.CheckResponse(res); err != nil {
114471		return nil, err
114472	}
114473	ret := &PublicAdvertisedPrefixList{
114474		ServerResponse: googleapi.ServerResponse{
114475			Header:         res.Header,
114476			HTTPStatusCode: res.StatusCode,
114477		},
114478	}
114479	target := &ret
114480	if err := gensupport.DecodeResponse(target, res); err != nil {
114481		return nil, err
114482	}
114483	return ret, nil
114484	// {
114485	//   "description": "Lists the PublicAdvertisedPrefixes for a project.",
114486	//   "flatPath": "projects/{project}/global/publicAdvertisedPrefixes",
114487	//   "httpMethod": "GET",
114488	//   "id": "compute.publicAdvertisedPrefixes.list",
114489	//   "parameterOrder": [
114490	//     "project"
114491	//   ],
114492	//   "parameters": {
114493	//     "filter": {
114494	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
114495	//       "location": "query",
114496	//       "type": "string"
114497	//     },
114498	//     "maxResults": {
114499	//       "default": "500",
114500	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
114501	//       "format": "uint32",
114502	//       "location": "query",
114503	//       "minimum": "0",
114504	//       "type": "integer"
114505	//     },
114506	//     "orderBy": {
114507	//       "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.",
114508	//       "location": "query",
114509	//       "type": "string"
114510	//     },
114511	//     "pageToken": {
114512	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
114513	//       "location": "query",
114514	//       "type": "string"
114515	//     },
114516	//     "project": {
114517	//       "description": "Project ID for this request.",
114518	//       "location": "path",
114519	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114520	//       "required": true,
114521	//       "type": "string"
114522	//     },
114523	//     "returnPartialSuccess": {
114524	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
114525	//       "location": "query",
114526	//       "type": "boolean"
114527	//     }
114528	//   },
114529	//   "path": "projects/{project}/global/publicAdvertisedPrefixes",
114530	//   "response": {
114531	//     "$ref": "PublicAdvertisedPrefixList"
114532	//   },
114533	//   "scopes": [
114534	//     "https://www.googleapis.com/auth/cloud-platform",
114535	//     "https://www.googleapis.com/auth/compute",
114536	//     "https://www.googleapis.com/auth/compute.readonly"
114537	//   ]
114538	// }
114539
114540}
114541
114542// Pages invokes f for each page of results.
114543// A non-nil error returned from f will halt the iteration.
114544// The provided context supersedes any context provided to the Context method.
114545func (c *PublicAdvertisedPrefixesListCall) Pages(ctx context.Context, f func(*PublicAdvertisedPrefixList) error) error {
114546	c.ctx_ = ctx
114547	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
114548	for {
114549		x, err := c.Do()
114550		if err != nil {
114551			return err
114552		}
114553		if err := f(x); err != nil {
114554			return err
114555		}
114556		if x.NextPageToken == "" {
114557			return nil
114558		}
114559		c.PageToken(x.NextPageToken)
114560	}
114561}
114562
114563// method id "compute.publicAdvertisedPrefixes.patch":
114564
114565type PublicAdvertisedPrefixesPatchCall struct {
114566	s                      *Service
114567	project                string
114568	publicAdvertisedPrefix string
114569	publicadvertisedprefix *PublicAdvertisedPrefix
114570	urlParams_             gensupport.URLParams
114571	ctx_                   context.Context
114572	header_                http.Header
114573}
114574
114575// Patch: Patches the specified Router resource with the data included
114576// in the request. This method supports PATCH semantics and uses JSON
114577// merge patch format and processing rules.
114578//
114579// - project: Project ID for this request.
114580// - publicAdvertisedPrefix: Name of the PublicAdvertisedPrefix resource
114581//   to patch.
114582func (r *PublicAdvertisedPrefixesService) Patch(project string, publicAdvertisedPrefix string, publicadvertisedprefix *PublicAdvertisedPrefix) *PublicAdvertisedPrefixesPatchCall {
114583	c := &PublicAdvertisedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114584	c.project = project
114585	c.publicAdvertisedPrefix = publicAdvertisedPrefix
114586	c.publicadvertisedprefix = publicadvertisedprefix
114587	return c
114588}
114589
114590// RequestId sets the optional parameter "requestId": An optional
114591// request ID to identify requests. Specify a unique request ID so that
114592// if you must retry your request, the server will know to ignore the
114593// request if it has already been completed. For example, consider a
114594// situation where you make an initial request and the request times
114595// out. If you make the request again with the same request ID, the
114596// server can check if original operation with the same request ID was
114597// received, and if so, will ignore the second request. This prevents
114598// clients from accidentally creating duplicate commitments. The request
114599// ID must be a valid UUID with the exception that zero UUID is not
114600// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
114601// MixerMutationRequestBuilder
114602func (c *PublicAdvertisedPrefixesPatchCall) RequestId(requestId string) *PublicAdvertisedPrefixesPatchCall {
114603	c.urlParams_.Set("requestId", requestId)
114604	return c
114605}
114606
114607// Fields allows partial responses to be retrieved. See
114608// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114609// for more information.
114610func (c *PublicAdvertisedPrefixesPatchCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesPatchCall {
114611	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114612	return c
114613}
114614
114615// Context sets the context to be used in this call's Do method. Any
114616// pending HTTP request will be aborted if the provided context is
114617// canceled.
114618func (c *PublicAdvertisedPrefixesPatchCall) Context(ctx context.Context) *PublicAdvertisedPrefixesPatchCall {
114619	c.ctx_ = ctx
114620	return c
114621}
114622
114623// Header returns an http.Header that can be modified by the caller to
114624// add HTTP headers to the request.
114625func (c *PublicAdvertisedPrefixesPatchCall) Header() http.Header {
114626	if c.header_ == nil {
114627		c.header_ = make(http.Header)
114628	}
114629	return c.header_
114630}
114631
114632func (c *PublicAdvertisedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) {
114633	reqHeaders := make(http.Header)
114634	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
114635	for k, v := range c.header_ {
114636		reqHeaders[k] = v
114637	}
114638	reqHeaders.Set("User-Agent", c.s.userAgent())
114639	var body io.Reader = nil
114640	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicadvertisedprefix)
114641	if err != nil {
114642		return nil, err
114643	}
114644	reqHeaders.Set("Content-Type", "application/json")
114645	c.urlParams_.Set("alt", alt)
114646	c.urlParams_.Set("prettyPrint", "false")
114647	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}")
114648	urls += "?" + c.urlParams_.Encode()
114649	req, err := http.NewRequest("PATCH", urls, body)
114650	if err != nil {
114651		return nil, err
114652	}
114653	req.Header = reqHeaders
114654	googleapi.Expand(req.URL, map[string]string{
114655		"project":                c.project,
114656		"publicAdvertisedPrefix": c.publicAdvertisedPrefix,
114657	})
114658	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114659}
114660
114661// Do executes the "compute.publicAdvertisedPrefixes.patch" call.
114662// Exactly one of *Operation or error will be non-nil. Any non-2xx
114663// status code is an error. Response headers are in either
114664// *Operation.ServerResponse.Header or (if a response was returned at
114665// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114666// to check whether the returned error was because
114667// http.StatusNotModified was returned.
114668func (c *PublicAdvertisedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
114669	gensupport.SetOptions(c.urlParams_, opts...)
114670	res, err := c.doRequest("json")
114671	if res != nil && res.StatusCode == http.StatusNotModified {
114672		if res.Body != nil {
114673			res.Body.Close()
114674		}
114675		return nil, &googleapi.Error{
114676			Code:   res.StatusCode,
114677			Header: res.Header,
114678		}
114679	}
114680	if err != nil {
114681		return nil, err
114682	}
114683	defer googleapi.CloseBody(res)
114684	if err := googleapi.CheckResponse(res); err != nil {
114685		return nil, err
114686	}
114687	ret := &Operation{
114688		ServerResponse: googleapi.ServerResponse{
114689			Header:         res.Header,
114690			HTTPStatusCode: res.StatusCode,
114691		},
114692	}
114693	target := &ret
114694	if err := gensupport.DecodeResponse(target, res); err != nil {
114695		return nil, err
114696	}
114697	return ret, nil
114698	// {
114699	//   "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.",
114700	//   "flatPath": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
114701	//   "httpMethod": "PATCH",
114702	//   "id": "compute.publicAdvertisedPrefixes.patch",
114703	//   "parameterOrder": [
114704	//     "project",
114705	//     "publicAdvertisedPrefix"
114706	//   ],
114707	//   "parameters": {
114708	//     "project": {
114709	//       "description": "Project ID for this request.",
114710	//       "location": "path",
114711	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114712	//       "required": true,
114713	//       "type": "string"
114714	//     },
114715	//     "publicAdvertisedPrefix": {
114716	//       "description": "Name of the PublicAdvertisedPrefix resource to patch.",
114717	//       "location": "path",
114718	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
114719	//       "required": true,
114720	//       "type": "string"
114721	//     },
114722	//     "requestId": {
114723	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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",
114724	//       "location": "query",
114725	//       "type": "string"
114726	//     }
114727	//   },
114728	//   "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
114729	//   "request": {
114730	//     "$ref": "PublicAdvertisedPrefix"
114731	//   },
114732	//   "response": {
114733	//     "$ref": "Operation"
114734	//   },
114735	//   "scopes": [
114736	//     "https://www.googleapis.com/auth/cloud-platform",
114737	//     "https://www.googleapis.com/auth/compute"
114738	//   ]
114739	// }
114740
114741}
114742
114743// method id "compute.publicDelegatedPrefixes.aggregatedList":
114744
114745type PublicDelegatedPrefixesAggregatedListCall struct {
114746	s            *Service
114747	project      string
114748	urlParams_   gensupport.URLParams
114749	ifNoneMatch_ string
114750	ctx_         context.Context
114751	header_      http.Header
114752}
114753
114754// AggregatedList: Lists all PublicDelegatedPrefix resources owned by
114755// the specific project across all scopes.
114756//
114757// - project: Name of the project scoping this request.
114758func (r *PublicDelegatedPrefixesService) AggregatedList(project string) *PublicDelegatedPrefixesAggregatedListCall {
114759	c := &PublicDelegatedPrefixesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114760	c.project = project
114761	return c
114762}
114763
114764// Filter sets the optional parameter "filter": A filter expression that
114765// filters resources listed in the response. The expression must specify
114766// the field name, a comparison operator, and the value that you want to
114767// use for filtering. The value must be a string, a number, or a
114768// boolean. The comparison operator must be either `=`, `!=`, `>`, or
114769// `<`. For example, if you are filtering Compute Engine instances, you
114770// can exclude instances named `example-instance` by specifying `name !=
114771// example-instance`. You can also filter nested fields. For example,
114772// you could specify `scheduling.automaticRestart = false` to include
114773// instances only if they are not scheduled for automatic restarts. You
114774// can use filtering on nested fields to filter based on resource
114775// labels. To filter on multiple expressions, provide each separate
114776// expression within parentheses. For example: ```
114777// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
114778// ``` By default, each expression is an `AND` expression. However, you
114779// can include `AND` and `OR` expressions explicitly. For example: ```
114780// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
114781// AND (scheduling.automaticRestart = true) ```
114782func (c *PublicDelegatedPrefixesAggregatedListCall) Filter(filter string) *PublicDelegatedPrefixesAggregatedListCall {
114783	c.urlParams_.Set("filter", filter)
114784	return c
114785}
114786
114787// IncludeAllScopes sets the optional parameter "includeAllScopes":
114788// Indicates whether every visible scope for each scope type (zone,
114789// region, global) should be included in the response. For new resource
114790// types added after this field, the flag has no effect as new resource
114791// types will always include every visible scope for each scope type in
114792// response. For resource types which predate this field, if this flag
114793// is omitted or false, only scopes of the scope types where the
114794// resource type is expected to be found will be included.
114795func (c *PublicDelegatedPrefixesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *PublicDelegatedPrefixesAggregatedListCall {
114796	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
114797	return c
114798}
114799
114800// MaxResults sets the optional parameter "maxResults": The maximum
114801// number of results per page that should be returned. If the number of
114802// available results is larger than `maxResults`, Compute Engine returns
114803// a `nextPageToken` that can be used to get the next page of results in
114804// subsequent list requests. Acceptable values are `0` to `500`,
114805// inclusive. (Default: `500`)
114806func (c *PublicDelegatedPrefixesAggregatedListCall) MaxResults(maxResults int64) *PublicDelegatedPrefixesAggregatedListCall {
114807	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
114808	return c
114809}
114810
114811// OrderBy sets the optional parameter "orderBy": Sorts list results by
114812// a certain order. By default, results are returned in alphanumerical
114813// order based on the resource name. You can also sort results in
114814// descending order based on the creation timestamp using
114815// `orderBy="creationTimestamp desc". This sorts results based on the
114816// `creationTimestamp` field in reverse chronological order (newest
114817// result first). Use this to sort resources like operations so that the
114818// newest operation is returned first. Currently, only sorting by `name`
114819// or `creationTimestamp desc` is supported.
114820func (c *PublicDelegatedPrefixesAggregatedListCall) OrderBy(orderBy string) *PublicDelegatedPrefixesAggregatedListCall {
114821	c.urlParams_.Set("orderBy", orderBy)
114822	return c
114823}
114824
114825// PageToken sets the optional parameter "pageToken": Specifies a page
114826// token to use. Set `pageToken` to the `nextPageToken` returned by a
114827// previous list request to get the next page of results.
114828func (c *PublicDelegatedPrefixesAggregatedListCall) PageToken(pageToken string) *PublicDelegatedPrefixesAggregatedListCall {
114829	c.urlParams_.Set("pageToken", pageToken)
114830	return c
114831}
114832
114833// ReturnPartialSuccess sets the optional parameter
114834// "returnPartialSuccess": Opt-in for partial success behavior which
114835// provides partial results in case of failure. The default value is
114836// false.
114837func (c *PublicDelegatedPrefixesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PublicDelegatedPrefixesAggregatedListCall {
114838	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
114839	return c
114840}
114841
114842// Fields allows partial responses to be retrieved. See
114843// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114844// for more information.
114845func (c *PublicDelegatedPrefixesAggregatedListCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesAggregatedListCall {
114846	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114847	return c
114848}
114849
114850// IfNoneMatch sets the optional parameter which makes the operation
114851// fail if the object's ETag matches the given value. This is useful for
114852// getting updates only after the object has changed since the last
114853// request. Use googleapi.IsNotModified to check whether the response
114854// error from Do is the result of In-None-Match.
114855func (c *PublicDelegatedPrefixesAggregatedListCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesAggregatedListCall {
114856	c.ifNoneMatch_ = entityTag
114857	return c
114858}
114859
114860// Context sets the context to be used in this call's Do method. Any
114861// pending HTTP request will be aborted if the provided context is
114862// canceled.
114863func (c *PublicDelegatedPrefixesAggregatedListCall) Context(ctx context.Context) *PublicDelegatedPrefixesAggregatedListCall {
114864	c.ctx_ = ctx
114865	return c
114866}
114867
114868// Header returns an http.Header that can be modified by the caller to
114869// add HTTP headers to the request.
114870func (c *PublicDelegatedPrefixesAggregatedListCall) Header() http.Header {
114871	if c.header_ == nil {
114872		c.header_ = make(http.Header)
114873	}
114874	return c.header_
114875}
114876
114877func (c *PublicDelegatedPrefixesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
114878	reqHeaders := make(http.Header)
114879	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
114880	for k, v := range c.header_ {
114881		reqHeaders[k] = v
114882	}
114883	reqHeaders.Set("User-Agent", c.s.userAgent())
114884	if c.ifNoneMatch_ != "" {
114885		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
114886	}
114887	var body io.Reader = nil
114888	c.urlParams_.Set("alt", alt)
114889	c.urlParams_.Set("prettyPrint", "false")
114890	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/publicDelegatedPrefixes")
114891	urls += "?" + c.urlParams_.Encode()
114892	req, err := http.NewRequest("GET", urls, body)
114893	if err != nil {
114894		return nil, err
114895	}
114896	req.Header = reqHeaders
114897	googleapi.Expand(req.URL, map[string]string{
114898		"project": c.project,
114899	})
114900	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114901}
114902
114903// Do executes the "compute.publicDelegatedPrefixes.aggregatedList" call.
114904// Exactly one of *PublicDelegatedPrefixAggregatedList or error will be
114905// non-nil. Any non-2xx status code is an error. Response headers are in
114906// either *PublicDelegatedPrefixAggregatedList.ServerResponse.Header or
114907// (if a response was returned at all) in
114908// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
114909// whether the returned error was because http.StatusNotModified was
114910// returned.
114911func (c *PublicDelegatedPrefixesAggregatedListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixAggregatedList, error) {
114912	gensupport.SetOptions(c.urlParams_, opts...)
114913	res, err := c.doRequest("json")
114914	if res != nil && res.StatusCode == http.StatusNotModified {
114915		if res.Body != nil {
114916			res.Body.Close()
114917		}
114918		return nil, &googleapi.Error{
114919			Code:   res.StatusCode,
114920			Header: res.Header,
114921		}
114922	}
114923	if err != nil {
114924		return nil, err
114925	}
114926	defer googleapi.CloseBody(res)
114927	if err := googleapi.CheckResponse(res); err != nil {
114928		return nil, err
114929	}
114930	ret := &PublicDelegatedPrefixAggregatedList{
114931		ServerResponse: googleapi.ServerResponse{
114932			Header:         res.Header,
114933			HTTPStatusCode: res.StatusCode,
114934		},
114935	}
114936	target := &ret
114937	if err := gensupport.DecodeResponse(target, res); err != nil {
114938		return nil, err
114939	}
114940	return ret, nil
114941	// {
114942	//   "description": "Lists all PublicDelegatedPrefix resources owned by the specific project across all scopes.",
114943	//   "flatPath": "projects/{project}/aggregated/publicDelegatedPrefixes",
114944	//   "httpMethod": "GET",
114945	//   "id": "compute.publicDelegatedPrefixes.aggregatedList",
114946	//   "parameterOrder": [
114947	//     "project"
114948	//   ],
114949	//   "parameters": {
114950	//     "filter": {
114951	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
114952	//       "location": "query",
114953	//       "type": "string"
114954	//     },
114955	//     "includeAllScopes": {
114956	//       "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.",
114957	//       "location": "query",
114958	//       "type": "boolean"
114959	//     },
114960	//     "maxResults": {
114961	//       "default": "500",
114962	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
114963	//       "format": "uint32",
114964	//       "location": "query",
114965	//       "minimum": "0",
114966	//       "type": "integer"
114967	//     },
114968	//     "orderBy": {
114969	//       "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.",
114970	//       "location": "query",
114971	//       "type": "string"
114972	//     },
114973	//     "pageToken": {
114974	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
114975	//       "location": "query",
114976	//       "type": "string"
114977	//     },
114978	//     "project": {
114979	//       "description": "Name of the project scoping this request.",
114980	//       "location": "path",
114981	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114982	//       "required": true,
114983	//       "type": "string"
114984	//     },
114985	//     "returnPartialSuccess": {
114986	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
114987	//       "location": "query",
114988	//       "type": "boolean"
114989	//     }
114990	//   },
114991	//   "path": "projects/{project}/aggregated/publicDelegatedPrefixes",
114992	//   "response": {
114993	//     "$ref": "PublicDelegatedPrefixAggregatedList"
114994	//   },
114995	//   "scopes": [
114996	//     "https://www.googleapis.com/auth/cloud-platform",
114997	//     "https://www.googleapis.com/auth/compute",
114998	//     "https://www.googleapis.com/auth/compute.readonly"
114999	//   ]
115000	// }
115001
115002}
115003
115004// Pages invokes f for each page of results.
115005// A non-nil error returned from f will halt the iteration.
115006// The provided context supersedes any context provided to the Context method.
115007func (c *PublicDelegatedPrefixesAggregatedListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixAggregatedList) error) error {
115008	c.ctx_ = ctx
115009	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
115010	for {
115011		x, err := c.Do()
115012		if err != nil {
115013			return err
115014		}
115015		if err := f(x); err != nil {
115016			return err
115017		}
115018		if x.NextPageToken == "" {
115019			return nil
115020		}
115021		c.PageToken(x.NextPageToken)
115022	}
115023}
115024
115025// method id "compute.publicDelegatedPrefixes.delete":
115026
115027type PublicDelegatedPrefixesDeleteCall struct {
115028	s                     *Service
115029	project               string
115030	region                string
115031	publicDelegatedPrefix string
115032	urlParams_            gensupport.URLParams
115033	ctx_                  context.Context
115034	header_               http.Header
115035}
115036
115037// Delete: Deletes the specified PublicDelegatedPrefix in the given
115038// region.
115039//
115040// - project: Project ID for this request.
115041// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource
115042//   to delete.
115043// - region: Name of the region of this request.
115044func (r *PublicDelegatedPrefixesService) Delete(project string, region string, publicDelegatedPrefix string) *PublicDelegatedPrefixesDeleteCall {
115045	c := &PublicDelegatedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115046	c.project = project
115047	c.region = region
115048	c.publicDelegatedPrefix = publicDelegatedPrefix
115049	return c
115050}
115051
115052// RequestId sets the optional parameter "requestId": An optional
115053// request ID to identify requests. Specify a unique request ID so that
115054// if you must retry your request, the server will know to ignore the
115055// request if it has already been completed. For example, consider a
115056// situation where you make an initial request and the request times
115057// out. If you make the request again with the same request ID, the
115058// server can check if original operation with the same request ID was
115059// received, and if so, will ignore the second request. This prevents
115060// clients from accidentally creating duplicate commitments. The request
115061// ID must be a valid UUID with the exception that zero UUID is not
115062// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
115063// MixerMutationRequestBuilder
115064func (c *PublicDelegatedPrefixesDeleteCall) RequestId(requestId string) *PublicDelegatedPrefixesDeleteCall {
115065	c.urlParams_.Set("requestId", requestId)
115066	return c
115067}
115068
115069// Fields allows partial responses to be retrieved. See
115070// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115071// for more information.
115072func (c *PublicDelegatedPrefixesDeleteCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesDeleteCall {
115073	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115074	return c
115075}
115076
115077// Context sets the context to be used in this call's Do method. Any
115078// pending HTTP request will be aborted if the provided context is
115079// canceled.
115080func (c *PublicDelegatedPrefixesDeleteCall) Context(ctx context.Context) *PublicDelegatedPrefixesDeleteCall {
115081	c.ctx_ = ctx
115082	return c
115083}
115084
115085// Header returns an http.Header that can be modified by the caller to
115086// add HTTP headers to the request.
115087func (c *PublicDelegatedPrefixesDeleteCall) Header() http.Header {
115088	if c.header_ == nil {
115089		c.header_ = make(http.Header)
115090	}
115091	return c.header_
115092}
115093
115094func (c *PublicDelegatedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) {
115095	reqHeaders := make(http.Header)
115096	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
115097	for k, v := range c.header_ {
115098		reqHeaders[k] = v
115099	}
115100	reqHeaders.Set("User-Agent", c.s.userAgent())
115101	var body io.Reader = nil
115102	c.urlParams_.Set("alt", alt)
115103	c.urlParams_.Set("prettyPrint", "false")
115104	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}")
115105	urls += "?" + c.urlParams_.Encode()
115106	req, err := http.NewRequest("DELETE", urls, body)
115107	if err != nil {
115108		return nil, err
115109	}
115110	req.Header = reqHeaders
115111	googleapi.Expand(req.URL, map[string]string{
115112		"project":               c.project,
115113		"region":                c.region,
115114		"publicDelegatedPrefix": c.publicDelegatedPrefix,
115115	})
115116	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115117}
115118
115119// Do executes the "compute.publicDelegatedPrefixes.delete" call.
115120// Exactly one of *Operation or error will be non-nil. Any non-2xx
115121// status code is an error. Response headers are in either
115122// *Operation.ServerResponse.Header or (if a response was returned at
115123// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115124// to check whether the returned error was because
115125// http.StatusNotModified was returned.
115126func (c *PublicDelegatedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115127	gensupport.SetOptions(c.urlParams_, opts...)
115128	res, err := c.doRequest("json")
115129	if res != nil && res.StatusCode == http.StatusNotModified {
115130		if res.Body != nil {
115131			res.Body.Close()
115132		}
115133		return nil, &googleapi.Error{
115134			Code:   res.StatusCode,
115135			Header: res.Header,
115136		}
115137	}
115138	if err != nil {
115139		return nil, err
115140	}
115141	defer googleapi.CloseBody(res)
115142	if err := googleapi.CheckResponse(res); err != nil {
115143		return nil, err
115144	}
115145	ret := &Operation{
115146		ServerResponse: googleapi.ServerResponse{
115147			Header:         res.Header,
115148			HTTPStatusCode: res.StatusCode,
115149		},
115150	}
115151	target := &ret
115152	if err := gensupport.DecodeResponse(target, res); err != nil {
115153		return nil, err
115154	}
115155	return ret, nil
115156	// {
115157	//   "description": "Deletes the specified PublicDelegatedPrefix in the given region.",
115158	//   "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
115159	//   "httpMethod": "DELETE",
115160	//   "id": "compute.publicDelegatedPrefixes.delete",
115161	//   "parameterOrder": [
115162	//     "project",
115163	//     "region",
115164	//     "publicDelegatedPrefix"
115165	//   ],
115166	//   "parameters": {
115167	//     "project": {
115168	//       "description": "Project ID for this request.",
115169	//       "location": "path",
115170	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115171	//       "required": true,
115172	//       "type": "string"
115173	//     },
115174	//     "publicDelegatedPrefix": {
115175	//       "description": "Name of the PublicDelegatedPrefix resource to delete.",
115176	//       "location": "path",
115177	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
115178	//       "required": true,
115179	//       "type": "string"
115180	//     },
115181	//     "region": {
115182	//       "description": "Name of the region of this request.",
115183	//       "location": "path",
115184	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
115185	//       "required": true,
115186	//       "type": "string"
115187	//     },
115188	//     "requestId": {
115189	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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",
115190	//       "location": "query",
115191	//       "type": "string"
115192	//     }
115193	//   },
115194	//   "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
115195	//   "response": {
115196	//     "$ref": "Operation"
115197	//   },
115198	//   "scopes": [
115199	//     "https://www.googleapis.com/auth/cloud-platform",
115200	//     "https://www.googleapis.com/auth/compute"
115201	//   ]
115202	// }
115203
115204}
115205
115206// method id "compute.publicDelegatedPrefixes.get":
115207
115208type PublicDelegatedPrefixesGetCall struct {
115209	s                     *Service
115210	project               string
115211	region                string
115212	publicDelegatedPrefix string
115213	urlParams_            gensupport.URLParams
115214	ifNoneMatch_          string
115215	ctx_                  context.Context
115216	header_               http.Header
115217}
115218
115219// Get: Returns the specified PublicDelegatedPrefix resource in the
115220// given region.
115221//
115222// - project: Project ID for this request.
115223// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource
115224//   to return.
115225// - region: Name of the region of this request.
115226func (r *PublicDelegatedPrefixesService) Get(project string, region string, publicDelegatedPrefix string) *PublicDelegatedPrefixesGetCall {
115227	c := &PublicDelegatedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115228	c.project = project
115229	c.region = region
115230	c.publicDelegatedPrefix = publicDelegatedPrefix
115231	return c
115232}
115233
115234// Fields allows partial responses to be retrieved. See
115235// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115236// for more information.
115237func (c *PublicDelegatedPrefixesGetCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesGetCall {
115238	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115239	return c
115240}
115241
115242// IfNoneMatch sets the optional parameter which makes the operation
115243// fail if the object's ETag matches the given value. This is useful for
115244// getting updates only after the object has changed since the last
115245// request. Use googleapi.IsNotModified to check whether the response
115246// error from Do is the result of In-None-Match.
115247func (c *PublicDelegatedPrefixesGetCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesGetCall {
115248	c.ifNoneMatch_ = entityTag
115249	return c
115250}
115251
115252// Context sets the context to be used in this call's Do method. Any
115253// pending HTTP request will be aborted if the provided context is
115254// canceled.
115255func (c *PublicDelegatedPrefixesGetCall) Context(ctx context.Context) *PublicDelegatedPrefixesGetCall {
115256	c.ctx_ = ctx
115257	return c
115258}
115259
115260// Header returns an http.Header that can be modified by the caller to
115261// add HTTP headers to the request.
115262func (c *PublicDelegatedPrefixesGetCall) Header() http.Header {
115263	if c.header_ == nil {
115264		c.header_ = make(http.Header)
115265	}
115266	return c.header_
115267}
115268
115269func (c *PublicDelegatedPrefixesGetCall) doRequest(alt string) (*http.Response, error) {
115270	reqHeaders := make(http.Header)
115271	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
115272	for k, v := range c.header_ {
115273		reqHeaders[k] = v
115274	}
115275	reqHeaders.Set("User-Agent", c.s.userAgent())
115276	if c.ifNoneMatch_ != "" {
115277		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
115278	}
115279	var body io.Reader = nil
115280	c.urlParams_.Set("alt", alt)
115281	c.urlParams_.Set("prettyPrint", "false")
115282	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}")
115283	urls += "?" + c.urlParams_.Encode()
115284	req, err := http.NewRequest("GET", urls, body)
115285	if err != nil {
115286		return nil, err
115287	}
115288	req.Header = reqHeaders
115289	googleapi.Expand(req.URL, map[string]string{
115290		"project":               c.project,
115291		"region":                c.region,
115292		"publicDelegatedPrefix": c.publicDelegatedPrefix,
115293	})
115294	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115295}
115296
115297// Do executes the "compute.publicDelegatedPrefixes.get" call.
115298// Exactly one of *PublicDelegatedPrefix or error will be non-nil. Any
115299// non-2xx status code is an error. Response headers are in either
115300// *PublicDelegatedPrefix.ServerResponse.Header or (if a response was
115301// returned at all) in error.(*googleapi.Error).Header. Use
115302// googleapi.IsNotModified to check whether the returned error was
115303// because http.StatusNotModified was returned.
115304func (c *PublicDelegatedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefix, error) {
115305	gensupport.SetOptions(c.urlParams_, opts...)
115306	res, err := c.doRequest("json")
115307	if res != nil && res.StatusCode == http.StatusNotModified {
115308		if res.Body != nil {
115309			res.Body.Close()
115310		}
115311		return nil, &googleapi.Error{
115312			Code:   res.StatusCode,
115313			Header: res.Header,
115314		}
115315	}
115316	if err != nil {
115317		return nil, err
115318	}
115319	defer googleapi.CloseBody(res)
115320	if err := googleapi.CheckResponse(res); err != nil {
115321		return nil, err
115322	}
115323	ret := &PublicDelegatedPrefix{
115324		ServerResponse: googleapi.ServerResponse{
115325			Header:         res.Header,
115326			HTTPStatusCode: res.StatusCode,
115327		},
115328	}
115329	target := &ret
115330	if err := gensupport.DecodeResponse(target, res); err != nil {
115331		return nil, err
115332	}
115333	return ret, nil
115334	// {
115335	//   "description": "Returns the specified PublicDelegatedPrefix resource in the given region.",
115336	//   "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
115337	//   "httpMethod": "GET",
115338	//   "id": "compute.publicDelegatedPrefixes.get",
115339	//   "parameterOrder": [
115340	//     "project",
115341	//     "region",
115342	//     "publicDelegatedPrefix"
115343	//   ],
115344	//   "parameters": {
115345	//     "project": {
115346	//       "description": "Project ID for this request.",
115347	//       "location": "path",
115348	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115349	//       "required": true,
115350	//       "type": "string"
115351	//     },
115352	//     "publicDelegatedPrefix": {
115353	//       "description": "Name of the PublicDelegatedPrefix resource to return.",
115354	//       "location": "path",
115355	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
115356	//       "required": true,
115357	//       "type": "string"
115358	//     },
115359	//     "region": {
115360	//       "description": "Name of the region of this request.",
115361	//       "location": "path",
115362	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
115363	//       "required": true,
115364	//       "type": "string"
115365	//     }
115366	//   },
115367	//   "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
115368	//   "response": {
115369	//     "$ref": "PublicDelegatedPrefix"
115370	//   },
115371	//   "scopes": [
115372	//     "https://www.googleapis.com/auth/cloud-platform",
115373	//     "https://www.googleapis.com/auth/compute",
115374	//     "https://www.googleapis.com/auth/compute.readonly"
115375	//   ]
115376	// }
115377
115378}
115379
115380// method id "compute.publicDelegatedPrefixes.insert":
115381
115382type PublicDelegatedPrefixesInsertCall struct {
115383	s                     *Service
115384	project               string
115385	region                string
115386	publicdelegatedprefix *PublicDelegatedPrefix
115387	urlParams_            gensupport.URLParams
115388	ctx_                  context.Context
115389	header_               http.Header
115390}
115391
115392// Insert: Creates a PublicDelegatedPrefix in the specified project in
115393// the given region using the parameters that are included in the
115394// request.
115395//
115396// - project: Project ID for this request.
115397// - region: Name of the region of this request.
115398func (r *PublicDelegatedPrefixesService) Insert(project string, region string, publicdelegatedprefix *PublicDelegatedPrefix) *PublicDelegatedPrefixesInsertCall {
115399	c := &PublicDelegatedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115400	c.project = project
115401	c.region = region
115402	c.publicdelegatedprefix = publicdelegatedprefix
115403	return c
115404}
115405
115406// RequestId sets the optional parameter "requestId": An optional
115407// request ID to identify requests. Specify a unique request ID so that
115408// if you must retry your request, the server will know to ignore the
115409// request if it has already been completed. For example, consider a
115410// situation where you make an initial request and the request times
115411// out. If you make the request again with the same request ID, the
115412// server can check if original operation with the same request ID was
115413// received, and if so, will ignore the second request. This prevents
115414// clients from accidentally creating duplicate commitments. The request
115415// ID must be a valid UUID with the exception that zero UUID is not
115416// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
115417// MixerMutationRequestBuilder
115418func (c *PublicDelegatedPrefixesInsertCall) RequestId(requestId string) *PublicDelegatedPrefixesInsertCall {
115419	c.urlParams_.Set("requestId", requestId)
115420	return c
115421}
115422
115423// Fields allows partial responses to be retrieved. See
115424// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115425// for more information.
115426func (c *PublicDelegatedPrefixesInsertCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesInsertCall {
115427	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115428	return c
115429}
115430
115431// Context sets the context to be used in this call's Do method. Any
115432// pending HTTP request will be aborted if the provided context is
115433// canceled.
115434func (c *PublicDelegatedPrefixesInsertCall) Context(ctx context.Context) *PublicDelegatedPrefixesInsertCall {
115435	c.ctx_ = ctx
115436	return c
115437}
115438
115439// Header returns an http.Header that can be modified by the caller to
115440// add HTTP headers to the request.
115441func (c *PublicDelegatedPrefixesInsertCall) Header() http.Header {
115442	if c.header_ == nil {
115443		c.header_ = make(http.Header)
115444	}
115445	return c.header_
115446}
115447
115448func (c *PublicDelegatedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) {
115449	reqHeaders := make(http.Header)
115450	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
115451	for k, v := range c.header_ {
115452		reqHeaders[k] = v
115453	}
115454	reqHeaders.Set("User-Agent", c.s.userAgent())
115455	var body io.Reader = nil
115456	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
115457	if err != nil {
115458		return nil, err
115459	}
115460	reqHeaders.Set("Content-Type", "application/json")
115461	c.urlParams_.Set("alt", alt)
115462	c.urlParams_.Set("prettyPrint", "false")
115463	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes")
115464	urls += "?" + c.urlParams_.Encode()
115465	req, err := http.NewRequest("POST", urls, body)
115466	if err != nil {
115467		return nil, err
115468	}
115469	req.Header = reqHeaders
115470	googleapi.Expand(req.URL, map[string]string{
115471		"project": c.project,
115472		"region":  c.region,
115473	})
115474	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115475}
115476
115477// Do executes the "compute.publicDelegatedPrefixes.insert" call.
115478// Exactly one of *Operation or error will be non-nil. Any non-2xx
115479// status code is an error. Response headers are in either
115480// *Operation.ServerResponse.Header or (if a response was returned at
115481// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115482// to check whether the returned error was because
115483// http.StatusNotModified was returned.
115484func (c *PublicDelegatedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115485	gensupport.SetOptions(c.urlParams_, opts...)
115486	res, err := c.doRequest("json")
115487	if res != nil && res.StatusCode == http.StatusNotModified {
115488		if res.Body != nil {
115489			res.Body.Close()
115490		}
115491		return nil, &googleapi.Error{
115492			Code:   res.StatusCode,
115493			Header: res.Header,
115494		}
115495	}
115496	if err != nil {
115497		return nil, err
115498	}
115499	defer googleapi.CloseBody(res)
115500	if err := googleapi.CheckResponse(res); err != nil {
115501		return nil, err
115502	}
115503	ret := &Operation{
115504		ServerResponse: googleapi.ServerResponse{
115505			Header:         res.Header,
115506			HTTPStatusCode: res.StatusCode,
115507		},
115508	}
115509	target := &ret
115510	if err := gensupport.DecodeResponse(target, res); err != nil {
115511		return nil, err
115512	}
115513	return ret, nil
115514	// {
115515	//   "description": "Creates a PublicDelegatedPrefix in the specified project in the given region using the parameters that are included in the request.",
115516	//   "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes",
115517	//   "httpMethod": "POST",
115518	//   "id": "compute.publicDelegatedPrefixes.insert",
115519	//   "parameterOrder": [
115520	//     "project",
115521	//     "region"
115522	//   ],
115523	//   "parameters": {
115524	//     "project": {
115525	//       "description": "Project ID for this request.",
115526	//       "location": "path",
115527	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115528	//       "required": true,
115529	//       "type": "string"
115530	//     },
115531	//     "region": {
115532	//       "description": "Name of the region of this request.",
115533	//       "location": "path",
115534	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
115535	//       "required": true,
115536	//       "type": "string"
115537	//     },
115538	//     "requestId": {
115539	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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",
115540	//       "location": "query",
115541	//       "type": "string"
115542	//     }
115543	//   },
115544	//   "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes",
115545	//   "request": {
115546	//     "$ref": "PublicDelegatedPrefix"
115547	//   },
115548	//   "response": {
115549	//     "$ref": "Operation"
115550	//   },
115551	//   "scopes": [
115552	//     "https://www.googleapis.com/auth/cloud-platform",
115553	//     "https://www.googleapis.com/auth/compute"
115554	//   ]
115555	// }
115556
115557}
115558
115559// method id "compute.publicDelegatedPrefixes.list":
115560
115561type PublicDelegatedPrefixesListCall struct {
115562	s            *Service
115563	project      string
115564	region       string
115565	urlParams_   gensupport.URLParams
115566	ifNoneMatch_ string
115567	ctx_         context.Context
115568	header_      http.Header
115569}
115570
115571// List: Lists the PublicDelegatedPrefixes for a project in the given
115572// region.
115573//
115574// - project: Project ID for this request.
115575// - region: Name of the region of this request.
115576func (r *PublicDelegatedPrefixesService) List(project string, region string) *PublicDelegatedPrefixesListCall {
115577	c := &PublicDelegatedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115578	c.project = project
115579	c.region = region
115580	return c
115581}
115582
115583// Filter sets the optional parameter "filter": A filter expression that
115584// filters resources listed in the response. The expression must specify
115585// the field name, a comparison operator, and the value that you want to
115586// use for filtering. The value must be a string, a number, or a
115587// boolean. The comparison operator must be either `=`, `!=`, `>`, or
115588// `<`. For example, if you are filtering Compute Engine instances, you
115589// can exclude instances named `example-instance` by specifying `name !=
115590// example-instance`. You can also filter nested fields. For example,
115591// you could specify `scheduling.automaticRestart = false` to include
115592// instances only if they are not scheduled for automatic restarts. You
115593// can use filtering on nested fields to filter based on resource
115594// labels. To filter on multiple expressions, provide each separate
115595// expression within parentheses. For example: ```
115596// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
115597// ``` By default, each expression is an `AND` expression. However, you
115598// can include `AND` and `OR` expressions explicitly. For example: ```
115599// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
115600// AND (scheduling.automaticRestart = true) ```
115601func (c *PublicDelegatedPrefixesListCall) Filter(filter string) *PublicDelegatedPrefixesListCall {
115602	c.urlParams_.Set("filter", filter)
115603	return c
115604}
115605
115606// MaxResults sets the optional parameter "maxResults": The maximum
115607// number of results per page that should be returned. If the number of
115608// available results is larger than `maxResults`, Compute Engine returns
115609// a `nextPageToken` that can be used to get the next page of results in
115610// subsequent list requests. Acceptable values are `0` to `500`,
115611// inclusive. (Default: `500`)
115612func (c *PublicDelegatedPrefixesListCall) MaxResults(maxResults int64) *PublicDelegatedPrefixesListCall {
115613	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
115614	return c
115615}
115616
115617// OrderBy sets the optional parameter "orderBy": Sorts list results by
115618// a certain order. By default, results are returned in alphanumerical
115619// order based on the resource name. You can also sort results in
115620// descending order based on the creation timestamp using
115621// `orderBy="creationTimestamp desc". This sorts results based on the
115622// `creationTimestamp` field in reverse chronological order (newest
115623// result first). Use this to sort resources like operations so that the
115624// newest operation is returned first. Currently, only sorting by `name`
115625// or `creationTimestamp desc` is supported.
115626func (c *PublicDelegatedPrefixesListCall) OrderBy(orderBy string) *PublicDelegatedPrefixesListCall {
115627	c.urlParams_.Set("orderBy", orderBy)
115628	return c
115629}
115630
115631// PageToken sets the optional parameter "pageToken": Specifies a page
115632// token to use. Set `pageToken` to the `nextPageToken` returned by a
115633// previous list request to get the next page of results.
115634func (c *PublicDelegatedPrefixesListCall) PageToken(pageToken string) *PublicDelegatedPrefixesListCall {
115635	c.urlParams_.Set("pageToken", pageToken)
115636	return c
115637}
115638
115639// ReturnPartialSuccess sets the optional parameter
115640// "returnPartialSuccess": Opt-in for partial success behavior which
115641// provides partial results in case of failure. The default value is
115642// false.
115643func (c *PublicDelegatedPrefixesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PublicDelegatedPrefixesListCall {
115644	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
115645	return c
115646}
115647
115648// Fields allows partial responses to be retrieved. See
115649// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115650// for more information.
115651func (c *PublicDelegatedPrefixesListCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesListCall {
115652	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115653	return c
115654}
115655
115656// IfNoneMatch sets the optional parameter which makes the operation
115657// fail if the object's ETag matches the given value. This is useful for
115658// getting updates only after the object has changed since the last
115659// request. Use googleapi.IsNotModified to check whether the response
115660// error from Do is the result of In-None-Match.
115661func (c *PublicDelegatedPrefixesListCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesListCall {
115662	c.ifNoneMatch_ = entityTag
115663	return c
115664}
115665
115666// Context sets the context to be used in this call's Do method. Any
115667// pending HTTP request will be aborted if the provided context is
115668// canceled.
115669func (c *PublicDelegatedPrefixesListCall) Context(ctx context.Context) *PublicDelegatedPrefixesListCall {
115670	c.ctx_ = ctx
115671	return c
115672}
115673
115674// Header returns an http.Header that can be modified by the caller to
115675// add HTTP headers to the request.
115676func (c *PublicDelegatedPrefixesListCall) Header() http.Header {
115677	if c.header_ == nil {
115678		c.header_ = make(http.Header)
115679	}
115680	return c.header_
115681}
115682
115683func (c *PublicDelegatedPrefixesListCall) doRequest(alt string) (*http.Response, error) {
115684	reqHeaders := make(http.Header)
115685	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
115686	for k, v := range c.header_ {
115687		reqHeaders[k] = v
115688	}
115689	reqHeaders.Set("User-Agent", c.s.userAgent())
115690	if c.ifNoneMatch_ != "" {
115691		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
115692	}
115693	var body io.Reader = nil
115694	c.urlParams_.Set("alt", alt)
115695	c.urlParams_.Set("prettyPrint", "false")
115696	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes")
115697	urls += "?" + c.urlParams_.Encode()
115698	req, err := http.NewRequest("GET", urls, body)
115699	if err != nil {
115700		return nil, err
115701	}
115702	req.Header = reqHeaders
115703	googleapi.Expand(req.URL, map[string]string{
115704		"project": c.project,
115705		"region":  c.region,
115706	})
115707	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115708}
115709
115710// Do executes the "compute.publicDelegatedPrefixes.list" call.
115711// Exactly one of *PublicDelegatedPrefixList or error will be non-nil.
115712// Any non-2xx status code is an error. Response headers are in either
115713// *PublicDelegatedPrefixList.ServerResponse.Header or (if a response
115714// was returned at all) in error.(*googleapi.Error).Header. Use
115715// googleapi.IsNotModified to check whether the returned error was
115716// because http.StatusNotModified was returned.
115717func (c *PublicDelegatedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixList, error) {
115718	gensupport.SetOptions(c.urlParams_, opts...)
115719	res, err := c.doRequest("json")
115720	if res != nil && res.StatusCode == http.StatusNotModified {
115721		if res.Body != nil {
115722			res.Body.Close()
115723		}
115724		return nil, &googleapi.Error{
115725			Code:   res.StatusCode,
115726			Header: res.Header,
115727		}
115728	}
115729	if err != nil {
115730		return nil, err
115731	}
115732	defer googleapi.CloseBody(res)
115733	if err := googleapi.CheckResponse(res); err != nil {
115734		return nil, err
115735	}
115736	ret := &PublicDelegatedPrefixList{
115737		ServerResponse: googleapi.ServerResponse{
115738			Header:         res.Header,
115739			HTTPStatusCode: res.StatusCode,
115740		},
115741	}
115742	target := &ret
115743	if err := gensupport.DecodeResponse(target, res); err != nil {
115744		return nil, err
115745	}
115746	return ret, nil
115747	// {
115748	//   "description": "Lists the PublicDelegatedPrefixes for a project in the given region.",
115749	//   "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes",
115750	//   "httpMethod": "GET",
115751	//   "id": "compute.publicDelegatedPrefixes.list",
115752	//   "parameterOrder": [
115753	//     "project",
115754	//     "region"
115755	//   ],
115756	//   "parameters": {
115757	//     "filter": {
115758	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
115759	//       "location": "query",
115760	//       "type": "string"
115761	//     },
115762	//     "maxResults": {
115763	//       "default": "500",
115764	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
115765	//       "format": "uint32",
115766	//       "location": "query",
115767	//       "minimum": "0",
115768	//       "type": "integer"
115769	//     },
115770	//     "orderBy": {
115771	//       "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.",
115772	//       "location": "query",
115773	//       "type": "string"
115774	//     },
115775	//     "pageToken": {
115776	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
115777	//       "location": "query",
115778	//       "type": "string"
115779	//     },
115780	//     "project": {
115781	//       "description": "Project ID for this request.",
115782	//       "location": "path",
115783	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115784	//       "required": true,
115785	//       "type": "string"
115786	//     },
115787	//     "region": {
115788	//       "description": "Name of the region of this request.",
115789	//       "location": "path",
115790	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
115791	//       "required": true,
115792	//       "type": "string"
115793	//     },
115794	//     "returnPartialSuccess": {
115795	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
115796	//       "location": "query",
115797	//       "type": "boolean"
115798	//     }
115799	//   },
115800	//   "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes",
115801	//   "response": {
115802	//     "$ref": "PublicDelegatedPrefixList"
115803	//   },
115804	//   "scopes": [
115805	//     "https://www.googleapis.com/auth/cloud-platform",
115806	//     "https://www.googleapis.com/auth/compute",
115807	//     "https://www.googleapis.com/auth/compute.readonly"
115808	//   ]
115809	// }
115810
115811}
115812
115813// Pages invokes f for each page of results.
115814// A non-nil error returned from f will halt the iteration.
115815// The provided context supersedes any context provided to the Context method.
115816func (c *PublicDelegatedPrefixesListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixList) error) error {
115817	c.ctx_ = ctx
115818	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
115819	for {
115820		x, err := c.Do()
115821		if err != nil {
115822			return err
115823		}
115824		if err := f(x); err != nil {
115825			return err
115826		}
115827		if x.NextPageToken == "" {
115828			return nil
115829		}
115830		c.PageToken(x.NextPageToken)
115831	}
115832}
115833
115834// method id "compute.publicDelegatedPrefixes.patch":
115835
115836type PublicDelegatedPrefixesPatchCall struct {
115837	s                     *Service
115838	project               string
115839	region                string
115840	publicDelegatedPrefix string
115841	publicdelegatedprefix *PublicDelegatedPrefix
115842	urlParams_            gensupport.URLParams
115843	ctx_                  context.Context
115844	header_               http.Header
115845}
115846
115847// Patch: Patches the specified PublicDelegatedPrefix resource with the
115848// data included in the request. This method supports PATCH semantics
115849// and uses JSON merge patch format and processing rules.
115850//
115851// - project: Project ID for this request.
115852// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource
115853//   to patch.
115854// - region: Name of the region for this request.
115855func (r *PublicDelegatedPrefixesService) Patch(project string, region string, publicDelegatedPrefix string, publicdelegatedprefix *PublicDelegatedPrefix) *PublicDelegatedPrefixesPatchCall {
115856	c := &PublicDelegatedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115857	c.project = project
115858	c.region = region
115859	c.publicDelegatedPrefix = publicDelegatedPrefix
115860	c.publicdelegatedprefix = publicdelegatedprefix
115861	return c
115862}
115863
115864// RequestId sets the optional parameter "requestId": An optional
115865// request ID to identify requests. Specify a unique request ID so that
115866// if you must retry your request, the server will know to ignore the
115867// request if it has already been completed. For example, consider a
115868// situation where you make an initial request and the request times
115869// out. If you make the request again with the same request ID, the
115870// server can check if original operation with the same request ID was
115871// received, and if so, will ignore the second request. This prevents
115872// clients from accidentally creating duplicate commitments. The request
115873// ID must be a valid UUID with the exception that zero UUID is not
115874// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
115875// MixerMutationRequestBuilder
115876func (c *PublicDelegatedPrefixesPatchCall) RequestId(requestId string) *PublicDelegatedPrefixesPatchCall {
115877	c.urlParams_.Set("requestId", requestId)
115878	return c
115879}
115880
115881// Fields allows partial responses to be retrieved. See
115882// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115883// for more information.
115884func (c *PublicDelegatedPrefixesPatchCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesPatchCall {
115885	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115886	return c
115887}
115888
115889// Context sets the context to be used in this call's Do method. Any
115890// pending HTTP request will be aborted if the provided context is
115891// canceled.
115892func (c *PublicDelegatedPrefixesPatchCall) Context(ctx context.Context) *PublicDelegatedPrefixesPatchCall {
115893	c.ctx_ = ctx
115894	return c
115895}
115896
115897// Header returns an http.Header that can be modified by the caller to
115898// add HTTP headers to the request.
115899func (c *PublicDelegatedPrefixesPatchCall) Header() http.Header {
115900	if c.header_ == nil {
115901		c.header_ = make(http.Header)
115902	}
115903	return c.header_
115904}
115905
115906func (c *PublicDelegatedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) {
115907	reqHeaders := make(http.Header)
115908	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
115909	for k, v := range c.header_ {
115910		reqHeaders[k] = v
115911	}
115912	reqHeaders.Set("User-Agent", c.s.userAgent())
115913	var body io.Reader = nil
115914	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
115915	if err != nil {
115916		return nil, err
115917	}
115918	reqHeaders.Set("Content-Type", "application/json")
115919	c.urlParams_.Set("alt", alt)
115920	c.urlParams_.Set("prettyPrint", "false")
115921	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}")
115922	urls += "?" + c.urlParams_.Encode()
115923	req, err := http.NewRequest("PATCH", urls, body)
115924	if err != nil {
115925		return nil, err
115926	}
115927	req.Header = reqHeaders
115928	googleapi.Expand(req.URL, map[string]string{
115929		"project":               c.project,
115930		"region":                c.region,
115931		"publicDelegatedPrefix": c.publicDelegatedPrefix,
115932	})
115933	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115934}
115935
115936// Do executes the "compute.publicDelegatedPrefixes.patch" call.
115937// Exactly one of *Operation or error will be non-nil. Any non-2xx
115938// status code is an error. Response headers are in either
115939// *Operation.ServerResponse.Header or (if a response was returned at
115940// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115941// to check whether the returned error was because
115942// http.StatusNotModified was returned.
115943func (c *PublicDelegatedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115944	gensupport.SetOptions(c.urlParams_, opts...)
115945	res, err := c.doRequest("json")
115946	if res != nil && res.StatusCode == http.StatusNotModified {
115947		if res.Body != nil {
115948			res.Body.Close()
115949		}
115950		return nil, &googleapi.Error{
115951			Code:   res.StatusCode,
115952			Header: res.Header,
115953		}
115954	}
115955	if err != nil {
115956		return nil, err
115957	}
115958	defer googleapi.CloseBody(res)
115959	if err := googleapi.CheckResponse(res); err != nil {
115960		return nil, err
115961	}
115962	ret := &Operation{
115963		ServerResponse: googleapi.ServerResponse{
115964			Header:         res.Header,
115965			HTTPStatusCode: res.StatusCode,
115966		},
115967	}
115968	target := &ret
115969	if err := gensupport.DecodeResponse(target, res); err != nil {
115970		return nil, err
115971	}
115972	return ret, nil
115973	// {
115974	//   "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.",
115975	//   "flatPath": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
115976	//   "httpMethod": "PATCH",
115977	//   "id": "compute.publicDelegatedPrefixes.patch",
115978	//   "parameterOrder": [
115979	//     "project",
115980	//     "region",
115981	//     "publicDelegatedPrefix"
115982	//   ],
115983	//   "parameters": {
115984	//     "project": {
115985	//       "description": "Project ID for this request.",
115986	//       "location": "path",
115987	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115988	//       "required": true,
115989	//       "type": "string"
115990	//     },
115991	//     "publicDelegatedPrefix": {
115992	//       "description": "Name of the PublicDelegatedPrefix resource to patch.",
115993	//       "location": "path",
115994	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
115995	//       "required": true,
115996	//       "type": "string"
115997	//     },
115998	//     "region": {
115999	//       "description": "Name of the region for this request.",
116000	//       "location": "path",
116001	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116002	//       "required": true,
116003	//       "type": "string"
116004	//     },
116005	//     "requestId": {
116006	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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",
116007	//       "location": "query",
116008	//       "type": "string"
116009	//     }
116010	//   },
116011	//   "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
116012	//   "request": {
116013	//     "$ref": "PublicDelegatedPrefix"
116014	//   },
116015	//   "response": {
116016	//     "$ref": "Operation"
116017	//   },
116018	//   "scopes": [
116019	//     "https://www.googleapis.com/auth/cloud-platform",
116020	//     "https://www.googleapis.com/auth/compute"
116021	//   ]
116022	// }
116023
116024}
116025
116026// method id "compute.regionAutoscalers.delete":
116027
116028type RegionAutoscalersDeleteCall struct {
116029	s          *Service
116030	project    string
116031	region     string
116032	autoscaler string
116033	urlParams_ gensupport.URLParams
116034	ctx_       context.Context
116035	header_    http.Header
116036}
116037
116038// Delete: Deletes the specified autoscaler.
116039//
116040// - autoscaler: Name of the autoscaler to delete.
116041// - project: Project ID for this request.
116042// - region: Name of the region scoping this request.
116043func (r *RegionAutoscalersService) Delete(project string, region string, autoscaler string) *RegionAutoscalersDeleteCall {
116044	c := &RegionAutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116045	c.project = project
116046	c.region = region
116047	c.autoscaler = autoscaler
116048	return c
116049}
116050
116051// RequestId sets the optional parameter "requestId": An optional
116052// request ID to identify requests. Specify a unique request ID so that
116053// if you must retry your request, the server will know to ignore the
116054// request if it has already been completed. For example, consider a
116055// situation where you make an initial request and the request times
116056// out. If you make the request again with the same request ID, the
116057// server can check if original operation with the same request ID was
116058// received, and if so, will ignore the second request. This prevents
116059// clients from accidentally creating duplicate commitments. The request
116060// ID must be a valid UUID with the exception that zero UUID is not
116061// supported ( 00000000-0000-0000-0000-000000000000).
116062func (c *RegionAutoscalersDeleteCall) RequestId(requestId string) *RegionAutoscalersDeleteCall {
116063	c.urlParams_.Set("requestId", requestId)
116064	return c
116065}
116066
116067// Fields allows partial responses to be retrieved. See
116068// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116069// for more information.
116070func (c *RegionAutoscalersDeleteCall) Fields(s ...googleapi.Field) *RegionAutoscalersDeleteCall {
116071	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116072	return c
116073}
116074
116075// Context sets the context to be used in this call's Do method. Any
116076// pending HTTP request will be aborted if the provided context is
116077// canceled.
116078func (c *RegionAutoscalersDeleteCall) Context(ctx context.Context) *RegionAutoscalersDeleteCall {
116079	c.ctx_ = ctx
116080	return c
116081}
116082
116083// Header returns an http.Header that can be modified by the caller to
116084// add HTTP headers to the request.
116085func (c *RegionAutoscalersDeleteCall) Header() http.Header {
116086	if c.header_ == nil {
116087		c.header_ = make(http.Header)
116088	}
116089	return c.header_
116090}
116091
116092func (c *RegionAutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) {
116093	reqHeaders := make(http.Header)
116094	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
116095	for k, v := range c.header_ {
116096		reqHeaders[k] = v
116097	}
116098	reqHeaders.Set("User-Agent", c.s.userAgent())
116099	var body io.Reader = nil
116100	c.urlParams_.Set("alt", alt)
116101	c.urlParams_.Set("prettyPrint", "false")
116102	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers/{autoscaler}")
116103	urls += "?" + c.urlParams_.Encode()
116104	req, err := http.NewRequest("DELETE", urls, body)
116105	if err != nil {
116106		return nil, err
116107	}
116108	req.Header = reqHeaders
116109	googleapi.Expand(req.URL, map[string]string{
116110		"project":    c.project,
116111		"region":     c.region,
116112		"autoscaler": c.autoscaler,
116113	})
116114	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116115}
116116
116117// Do executes the "compute.regionAutoscalers.delete" call.
116118// Exactly one of *Operation or error will be non-nil. Any non-2xx
116119// status code is an error. Response headers are in either
116120// *Operation.ServerResponse.Header or (if a response was returned at
116121// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116122// to check whether the returned error was because
116123// http.StatusNotModified was returned.
116124func (c *RegionAutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116125	gensupport.SetOptions(c.urlParams_, opts...)
116126	res, err := c.doRequest("json")
116127	if res != nil && res.StatusCode == http.StatusNotModified {
116128		if res.Body != nil {
116129			res.Body.Close()
116130		}
116131		return nil, &googleapi.Error{
116132			Code:   res.StatusCode,
116133			Header: res.Header,
116134		}
116135	}
116136	if err != nil {
116137		return nil, err
116138	}
116139	defer googleapi.CloseBody(res)
116140	if err := googleapi.CheckResponse(res); err != nil {
116141		return nil, err
116142	}
116143	ret := &Operation{
116144		ServerResponse: googleapi.ServerResponse{
116145			Header:         res.Header,
116146			HTTPStatusCode: res.StatusCode,
116147		},
116148	}
116149	target := &ret
116150	if err := gensupport.DecodeResponse(target, res); err != nil {
116151		return nil, err
116152	}
116153	return ret, nil
116154	// {
116155	//   "description": "Deletes the specified autoscaler.",
116156	//   "flatPath": "projects/{project}/regions/{region}/autoscalers/{autoscaler}",
116157	//   "httpMethod": "DELETE",
116158	//   "id": "compute.regionAutoscalers.delete",
116159	//   "parameterOrder": [
116160	//     "project",
116161	//     "region",
116162	//     "autoscaler"
116163	//   ],
116164	//   "parameters": {
116165	//     "autoscaler": {
116166	//       "description": "Name of the autoscaler to delete.",
116167	//       "location": "path",
116168	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
116169	//       "required": true,
116170	//       "type": "string"
116171	//     },
116172	//     "project": {
116173	//       "description": "Project ID for this request.",
116174	//       "location": "path",
116175	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116176	//       "required": true,
116177	//       "type": "string"
116178	//     },
116179	//     "region": {
116180	//       "description": "Name of the region scoping this request.",
116181	//       "location": "path",
116182	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116183	//       "required": true,
116184	//       "type": "string"
116185	//     },
116186	//     "requestId": {
116187	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
116188	//       "location": "query",
116189	//       "type": "string"
116190	//     }
116191	//   },
116192	//   "path": "projects/{project}/regions/{region}/autoscalers/{autoscaler}",
116193	//   "response": {
116194	//     "$ref": "Operation"
116195	//   },
116196	//   "scopes": [
116197	//     "https://www.googleapis.com/auth/cloud-platform",
116198	//     "https://www.googleapis.com/auth/compute"
116199	//   ]
116200	// }
116201
116202}
116203
116204// method id "compute.regionAutoscalers.get":
116205
116206type RegionAutoscalersGetCall struct {
116207	s            *Service
116208	project      string
116209	region       string
116210	autoscaler   string
116211	urlParams_   gensupport.URLParams
116212	ifNoneMatch_ string
116213	ctx_         context.Context
116214	header_      http.Header
116215}
116216
116217// Get: Returns the specified autoscaler.
116218//
116219// - autoscaler: Name of the autoscaler to return.
116220// - project: Project ID for this request.
116221// - region: Name of the region scoping this request.
116222func (r *RegionAutoscalersService) Get(project string, region string, autoscaler string) *RegionAutoscalersGetCall {
116223	c := &RegionAutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116224	c.project = project
116225	c.region = region
116226	c.autoscaler = autoscaler
116227	return c
116228}
116229
116230// Fields allows partial responses to be retrieved. See
116231// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116232// for more information.
116233func (c *RegionAutoscalersGetCall) Fields(s ...googleapi.Field) *RegionAutoscalersGetCall {
116234	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116235	return c
116236}
116237
116238// IfNoneMatch sets the optional parameter which makes the operation
116239// fail if the object's ETag matches the given value. This is useful for
116240// getting updates only after the object has changed since the last
116241// request. Use googleapi.IsNotModified to check whether the response
116242// error from Do is the result of In-None-Match.
116243func (c *RegionAutoscalersGetCall) IfNoneMatch(entityTag string) *RegionAutoscalersGetCall {
116244	c.ifNoneMatch_ = entityTag
116245	return c
116246}
116247
116248// Context sets the context to be used in this call's Do method. Any
116249// pending HTTP request will be aborted if the provided context is
116250// canceled.
116251func (c *RegionAutoscalersGetCall) Context(ctx context.Context) *RegionAutoscalersGetCall {
116252	c.ctx_ = ctx
116253	return c
116254}
116255
116256// Header returns an http.Header that can be modified by the caller to
116257// add HTTP headers to the request.
116258func (c *RegionAutoscalersGetCall) Header() http.Header {
116259	if c.header_ == nil {
116260		c.header_ = make(http.Header)
116261	}
116262	return c.header_
116263}
116264
116265func (c *RegionAutoscalersGetCall) doRequest(alt string) (*http.Response, error) {
116266	reqHeaders := make(http.Header)
116267	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
116268	for k, v := range c.header_ {
116269		reqHeaders[k] = v
116270	}
116271	reqHeaders.Set("User-Agent", c.s.userAgent())
116272	if c.ifNoneMatch_ != "" {
116273		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
116274	}
116275	var body io.Reader = nil
116276	c.urlParams_.Set("alt", alt)
116277	c.urlParams_.Set("prettyPrint", "false")
116278	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers/{autoscaler}")
116279	urls += "?" + c.urlParams_.Encode()
116280	req, err := http.NewRequest("GET", urls, body)
116281	if err != nil {
116282		return nil, err
116283	}
116284	req.Header = reqHeaders
116285	googleapi.Expand(req.URL, map[string]string{
116286		"project":    c.project,
116287		"region":     c.region,
116288		"autoscaler": c.autoscaler,
116289	})
116290	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116291}
116292
116293// Do executes the "compute.regionAutoscalers.get" call.
116294// Exactly one of *Autoscaler or error will be non-nil. Any non-2xx
116295// status code is an error. Response headers are in either
116296// *Autoscaler.ServerResponse.Header or (if a response was returned at
116297// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116298// to check whether the returned error was because
116299// http.StatusNotModified was returned.
116300func (c *RegionAutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) {
116301	gensupport.SetOptions(c.urlParams_, opts...)
116302	res, err := c.doRequest("json")
116303	if res != nil && res.StatusCode == http.StatusNotModified {
116304		if res.Body != nil {
116305			res.Body.Close()
116306		}
116307		return nil, &googleapi.Error{
116308			Code:   res.StatusCode,
116309			Header: res.Header,
116310		}
116311	}
116312	if err != nil {
116313		return nil, err
116314	}
116315	defer googleapi.CloseBody(res)
116316	if err := googleapi.CheckResponse(res); err != nil {
116317		return nil, err
116318	}
116319	ret := &Autoscaler{
116320		ServerResponse: googleapi.ServerResponse{
116321			Header:         res.Header,
116322			HTTPStatusCode: res.StatusCode,
116323		},
116324	}
116325	target := &ret
116326	if err := gensupport.DecodeResponse(target, res); err != nil {
116327		return nil, err
116328	}
116329	return ret, nil
116330	// {
116331	//   "description": "Returns the specified autoscaler.",
116332	//   "flatPath": "projects/{project}/regions/{region}/autoscalers/{autoscaler}",
116333	//   "httpMethod": "GET",
116334	//   "id": "compute.regionAutoscalers.get",
116335	//   "parameterOrder": [
116336	//     "project",
116337	//     "region",
116338	//     "autoscaler"
116339	//   ],
116340	//   "parameters": {
116341	//     "autoscaler": {
116342	//       "description": "Name of the autoscaler to return.",
116343	//       "location": "path",
116344	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
116345	//       "required": true,
116346	//       "type": "string"
116347	//     },
116348	//     "project": {
116349	//       "description": "Project ID for this request.",
116350	//       "location": "path",
116351	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116352	//       "required": true,
116353	//       "type": "string"
116354	//     },
116355	//     "region": {
116356	//       "description": "Name of the region scoping this request.",
116357	//       "location": "path",
116358	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116359	//       "required": true,
116360	//       "type": "string"
116361	//     }
116362	//   },
116363	//   "path": "projects/{project}/regions/{region}/autoscalers/{autoscaler}",
116364	//   "response": {
116365	//     "$ref": "Autoscaler"
116366	//   },
116367	//   "scopes": [
116368	//     "https://www.googleapis.com/auth/cloud-platform",
116369	//     "https://www.googleapis.com/auth/compute",
116370	//     "https://www.googleapis.com/auth/compute.readonly"
116371	//   ]
116372	// }
116373
116374}
116375
116376// method id "compute.regionAutoscalers.insert":
116377
116378type RegionAutoscalersInsertCall struct {
116379	s          *Service
116380	project    string
116381	region     string
116382	autoscaler *Autoscaler
116383	urlParams_ gensupport.URLParams
116384	ctx_       context.Context
116385	header_    http.Header
116386}
116387
116388// Insert: Creates an autoscaler in the specified project using the data
116389// included in the request.
116390//
116391// - project: Project ID for this request.
116392// - region: Name of the region scoping this request.
116393func (r *RegionAutoscalersService) Insert(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersInsertCall {
116394	c := &RegionAutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116395	c.project = project
116396	c.region = region
116397	c.autoscaler = autoscaler
116398	return c
116399}
116400
116401// RequestId sets the optional parameter "requestId": An optional
116402// request ID to identify requests. Specify a unique request ID so that
116403// if you must retry your request, the server will know to ignore the
116404// request if it has already been completed. For example, consider a
116405// situation where you make an initial request and the request times
116406// out. If you make the request again with the same request ID, the
116407// server can check if original operation with the same request ID was
116408// received, and if so, will ignore the second request. This prevents
116409// clients from accidentally creating duplicate commitments. The request
116410// ID must be a valid UUID with the exception that zero UUID is not
116411// supported ( 00000000-0000-0000-0000-000000000000).
116412func (c *RegionAutoscalersInsertCall) RequestId(requestId string) *RegionAutoscalersInsertCall {
116413	c.urlParams_.Set("requestId", requestId)
116414	return c
116415}
116416
116417// Fields allows partial responses to be retrieved. See
116418// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116419// for more information.
116420func (c *RegionAutoscalersInsertCall) Fields(s ...googleapi.Field) *RegionAutoscalersInsertCall {
116421	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116422	return c
116423}
116424
116425// Context sets the context to be used in this call's Do method. Any
116426// pending HTTP request will be aborted if the provided context is
116427// canceled.
116428func (c *RegionAutoscalersInsertCall) Context(ctx context.Context) *RegionAutoscalersInsertCall {
116429	c.ctx_ = ctx
116430	return c
116431}
116432
116433// Header returns an http.Header that can be modified by the caller to
116434// add HTTP headers to the request.
116435func (c *RegionAutoscalersInsertCall) Header() http.Header {
116436	if c.header_ == nil {
116437		c.header_ = make(http.Header)
116438	}
116439	return c.header_
116440}
116441
116442func (c *RegionAutoscalersInsertCall) doRequest(alt string) (*http.Response, error) {
116443	reqHeaders := make(http.Header)
116444	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
116445	for k, v := range c.header_ {
116446		reqHeaders[k] = v
116447	}
116448	reqHeaders.Set("User-Agent", c.s.userAgent())
116449	var body io.Reader = nil
116450	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
116451	if err != nil {
116452		return nil, err
116453	}
116454	reqHeaders.Set("Content-Type", "application/json")
116455	c.urlParams_.Set("alt", alt)
116456	c.urlParams_.Set("prettyPrint", "false")
116457	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers")
116458	urls += "?" + c.urlParams_.Encode()
116459	req, err := http.NewRequest("POST", urls, body)
116460	if err != nil {
116461		return nil, err
116462	}
116463	req.Header = reqHeaders
116464	googleapi.Expand(req.URL, map[string]string{
116465		"project": c.project,
116466		"region":  c.region,
116467	})
116468	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116469}
116470
116471// Do executes the "compute.regionAutoscalers.insert" call.
116472// Exactly one of *Operation or error will be non-nil. Any non-2xx
116473// status code is an error. Response headers are in either
116474// *Operation.ServerResponse.Header or (if a response was returned at
116475// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116476// to check whether the returned error was because
116477// http.StatusNotModified was returned.
116478func (c *RegionAutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116479	gensupport.SetOptions(c.urlParams_, opts...)
116480	res, err := c.doRequest("json")
116481	if res != nil && res.StatusCode == http.StatusNotModified {
116482		if res.Body != nil {
116483			res.Body.Close()
116484		}
116485		return nil, &googleapi.Error{
116486			Code:   res.StatusCode,
116487			Header: res.Header,
116488		}
116489	}
116490	if err != nil {
116491		return nil, err
116492	}
116493	defer googleapi.CloseBody(res)
116494	if err := googleapi.CheckResponse(res); err != nil {
116495		return nil, err
116496	}
116497	ret := &Operation{
116498		ServerResponse: googleapi.ServerResponse{
116499			Header:         res.Header,
116500			HTTPStatusCode: res.StatusCode,
116501		},
116502	}
116503	target := &ret
116504	if err := gensupport.DecodeResponse(target, res); err != nil {
116505		return nil, err
116506	}
116507	return ret, nil
116508	// {
116509	//   "description": "Creates an autoscaler in the specified project using the data included in the request.",
116510	//   "flatPath": "projects/{project}/regions/{region}/autoscalers",
116511	//   "httpMethod": "POST",
116512	//   "id": "compute.regionAutoscalers.insert",
116513	//   "parameterOrder": [
116514	//     "project",
116515	//     "region"
116516	//   ],
116517	//   "parameters": {
116518	//     "project": {
116519	//       "description": "Project ID for this request.",
116520	//       "location": "path",
116521	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116522	//       "required": true,
116523	//       "type": "string"
116524	//     },
116525	//     "region": {
116526	//       "description": "Name of the region scoping this request.",
116527	//       "location": "path",
116528	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116529	//       "required": true,
116530	//       "type": "string"
116531	//     },
116532	//     "requestId": {
116533	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
116534	//       "location": "query",
116535	//       "type": "string"
116536	//     }
116537	//   },
116538	//   "path": "projects/{project}/regions/{region}/autoscalers",
116539	//   "request": {
116540	//     "$ref": "Autoscaler"
116541	//   },
116542	//   "response": {
116543	//     "$ref": "Operation"
116544	//   },
116545	//   "scopes": [
116546	//     "https://www.googleapis.com/auth/cloud-platform",
116547	//     "https://www.googleapis.com/auth/compute"
116548	//   ]
116549	// }
116550
116551}
116552
116553// method id "compute.regionAutoscalers.list":
116554
116555type RegionAutoscalersListCall struct {
116556	s            *Service
116557	project      string
116558	region       string
116559	urlParams_   gensupport.URLParams
116560	ifNoneMatch_ string
116561	ctx_         context.Context
116562	header_      http.Header
116563}
116564
116565// List: Retrieves a list of autoscalers contained within the specified
116566// region.
116567//
116568// - project: Project ID for this request.
116569// - region: Name of the region scoping this request.
116570func (r *RegionAutoscalersService) List(project string, region string) *RegionAutoscalersListCall {
116571	c := &RegionAutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116572	c.project = project
116573	c.region = region
116574	return c
116575}
116576
116577// Filter sets the optional parameter "filter": A filter expression that
116578// filters resources listed in the response. The expression must specify
116579// the field name, a comparison operator, and the value that you want to
116580// use for filtering. The value must be a string, a number, or a
116581// boolean. The comparison operator must be either `=`, `!=`, `>`, or
116582// `<`. For example, if you are filtering Compute Engine instances, you
116583// can exclude instances named `example-instance` by specifying `name !=
116584// example-instance`. You can also filter nested fields. For example,
116585// you could specify `scheduling.automaticRestart = false` to include
116586// instances only if they are not scheduled for automatic restarts. You
116587// can use filtering on nested fields to filter based on resource
116588// labels. To filter on multiple expressions, provide each separate
116589// expression within parentheses. For example: ```
116590// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
116591// ``` By default, each expression is an `AND` expression. However, you
116592// can include `AND` and `OR` expressions explicitly. For example: ```
116593// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
116594// AND (scheduling.automaticRestart = true) ```
116595func (c *RegionAutoscalersListCall) Filter(filter string) *RegionAutoscalersListCall {
116596	c.urlParams_.Set("filter", filter)
116597	return c
116598}
116599
116600// MaxResults sets the optional parameter "maxResults": The maximum
116601// number of results per page that should be returned. If the number of
116602// available results is larger than `maxResults`, Compute Engine returns
116603// a `nextPageToken` that can be used to get the next page of results in
116604// subsequent list requests. Acceptable values are `0` to `500`,
116605// inclusive. (Default: `500`)
116606func (c *RegionAutoscalersListCall) MaxResults(maxResults int64) *RegionAutoscalersListCall {
116607	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
116608	return c
116609}
116610
116611// OrderBy sets the optional parameter "orderBy": Sorts list results by
116612// a certain order. By default, results are returned in alphanumerical
116613// order based on the resource name. You can also sort results in
116614// descending order based on the creation timestamp using
116615// `orderBy="creationTimestamp desc". This sorts results based on the
116616// `creationTimestamp` field in reverse chronological order (newest
116617// result first). Use this to sort resources like operations so that the
116618// newest operation is returned first. Currently, only sorting by `name`
116619// or `creationTimestamp desc` is supported.
116620func (c *RegionAutoscalersListCall) OrderBy(orderBy string) *RegionAutoscalersListCall {
116621	c.urlParams_.Set("orderBy", orderBy)
116622	return c
116623}
116624
116625// PageToken sets the optional parameter "pageToken": Specifies a page
116626// token to use. Set `pageToken` to the `nextPageToken` returned by a
116627// previous list request to get the next page of results.
116628func (c *RegionAutoscalersListCall) PageToken(pageToken string) *RegionAutoscalersListCall {
116629	c.urlParams_.Set("pageToken", pageToken)
116630	return c
116631}
116632
116633// ReturnPartialSuccess sets the optional parameter
116634// "returnPartialSuccess": Opt-in for partial success behavior which
116635// provides partial results in case of failure. The default value is
116636// false.
116637func (c *RegionAutoscalersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionAutoscalersListCall {
116638	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
116639	return c
116640}
116641
116642// Fields allows partial responses to be retrieved. See
116643// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116644// for more information.
116645func (c *RegionAutoscalersListCall) Fields(s ...googleapi.Field) *RegionAutoscalersListCall {
116646	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116647	return c
116648}
116649
116650// IfNoneMatch sets the optional parameter which makes the operation
116651// fail if the object's ETag matches the given value. This is useful for
116652// getting updates only after the object has changed since the last
116653// request. Use googleapi.IsNotModified to check whether the response
116654// error from Do is the result of In-None-Match.
116655func (c *RegionAutoscalersListCall) IfNoneMatch(entityTag string) *RegionAutoscalersListCall {
116656	c.ifNoneMatch_ = entityTag
116657	return c
116658}
116659
116660// Context sets the context to be used in this call's Do method. Any
116661// pending HTTP request will be aborted if the provided context is
116662// canceled.
116663func (c *RegionAutoscalersListCall) Context(ctx context.Context) *RegionAutoscalersListCall {
116664	c.ctx_ = ctx
116665	return c
116666}
116667
116668// Header returns an http.Header that can be modified by the caller to
116669// add HTTP headers to the request.
116670func (c *RegionAutoscalersListCall) Header() http.Header {
116671	if c.header_ == nil {
116672		c.header_ = make(http.Header)
116673	}
116674	return c.header_
116675}
116676
116677func (c *RegionAutoscalersListCall) doRequest(alt string) (*http.Response, error) {
116678	reqHeaders := make(http.Header)
116679	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
116680	for k, v := range c.header_ {
116681		reqHeaders[k] = v
116682	}
116683	reqHeaders.Set("User-Agent", c.s.userAgent())
116684	if c.ifNoneMatch_ != "" {
116685		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
116686	}
116687	var body io.Reader = nil
116688	c.urlParams_.Set("alt", alt)
116689	c.urlParams_.Set("prettyPrint", "false")
116690	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers")
116691	urls += "?" + c.urlParams_.Encode()
116692	req, err := http.NewRequest("GET", urls, body)
116693	if err != nil {
116694		return nil, err
116695	}
116696	req.Header = reqHeaders
116697	googleapi.Expand(req.URL, map[string]string{
116698		"project": c.project,
116699		"region":  c.region,
116700	})
116701	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116702}
116703
116704// Do executes the "compute.regionAutoscalers.list" call.
116705// Exactly one of *RegionAutoscalerList or error will be non-nil. Any
116706// non-2xx status code is an error. Response headers are in either
116707// *RegionAutoscalerList.ServerResponse.Header or (if a response was
116708// returned at all) in error.(*googleapi.Error).Header. Use
116709// googleapi.IsNotModified to check whether the returned error was
116710// because http.StatusNotModified was returned.
116711func (c *RegionAutoscalersListCall) Do(opts ...googleapi.CallOption) (*RegionAutoscalerList, error) {
116712	gensupport.SetOptions(c.urlParams_, opts...)
116713	res, err := c.doRequest("json")
116714	if res != nil && res.StatusCode == http.StatusNotModified {
116715		if res.Body != nil {
116716			res.Body.Close()
116717		}
116718		return nil, &googleapi.Error{
116719			Code:   res.StatusCode,
116720			Header: res.Header,
116721		}
116722	}
116723	if err != nil {
116724		return nil, err
116725	}
116726	defer googleapi.CloseBody(res)
116727	if err := googleapi.CheckResponse(res); err != nil {
116728		return nil, err
116729	}
116730	ret := &RegionAutoscalerList{
116731		ServerResponse: googleapi.ServerResponse{
116732			Header:         res.Header,
116733			HTTPStatusCode: res.StatusCode,
116734		},
116735	}
116736	target := &ret
116737	if err := gensupport.DecodeResponse(target, res); err != nil {
116738		return nil, err
116739	}
116740	return ret, nil
116741	// {
116742	//   "description": "Retrieves a list of autoscalers contained within the specified region.",
116743	//   "flatPath": "projects/{project}/regions/{region}/autoscalers",
116744	//   "httpMethod": "GET",
116745	//   "id": "compute.regionAutoscalers.list",
116746	//   "parameterOrder": [
116747	//     "project",
116748	//     "region"
116749	//   ],
116750	//   "parameters": {
116751	//     "filter": {
116752	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
116753	//       "location": "query",
116754	//       "type": "string"
116755	//     },
116756	//     "maxResults": {
116757	//       "default": "500",
116758	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
116759	//       "format": "uint32",
116760	//       "location": "query",
116761	//       "minimum": "0",
116762	//       "type": "integer"
116763	//     },
116764	//     "orderBy": {
116765	//       "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.",
116766	//       "location": "query",
116767	//       "type": "string"
116768	//     },
116769	//     "pageToken": {
116770	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
116771	//       "location": "query",
116772	//       "type": "string"
116773	//     },
116774	//     "project": {
116775	//       "description": "Project ID for this request.",
116776	//       "location": "path",
116777	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116778	//       "required": true,
116779	//       "type": "string"
116780	//     },
116781	//     "region": {
116782	//       "description": "Name of the region scoping this request.",
116783	//       "location": "path",
116784	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116785	//       "required": true,
116786	//       "type": "string"
116787	//     },
116788	//     "returnPartialSuccess": {
116789	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
116790	//       "location": "query",
116791	//       "type": "boolean"
116792	//     }
116793	//   },
116794	//   "path": "projects/{project}/regions/{region}/autoscalers",
116795	//   "response": {
116796	//     "$ref": "RegionAutoscalerList"
116797	//   },
116798	//   "scopes": [
116799	//     "https://www.googleapis.com/auth/cloud-platform",
116800	//     "https://www.googleapis.com/auth/compute",
116801	//     "https://www.googleapis.com/auth/compute.readonly"
116802	//   ]
116803	// }
116804
116805}
116806
116807// Pages invokes f for each page of results.
116808// A non-nil error returned from f will halt the iteration.
116809// The provided context supersedes any context provided to the Context method.
116810func (c *RegionAutoscalersListCall) Pages(ctx context.Context, f func(*RegionAutoscalerList) error) error {
116811	c.ctx_ = ctx
116812	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
116813	for {
116814		x, err := c.Do()
116815		if err != nil {
116816			return err
116817		}
116818		if err := f(x); err != nil {
116819			return err
116820		}
116821		if x.NextPageToken == "" {
116822			return nil
116823		}
116824		c.PageToken(x.NextPageToken)
116825	}
116826}
116827
116828// method id "compute.regionAutoscalers.patch":
116829
116830type RegionAutoscalersPatchCall struct {
116831	s          *Service
116832	project    string
116833	region     string
116834	autoscaler *Autoscaler
116835	urlParams_ gensupport.URLParams
116836	ctx_       context.Context
116837	header_    http.Header
116838}
116839
116840// Patch: Updates an autoscaler in the specified project using the data
116841// included in the request. This method supports PATCH semantics and
116842// uses the JSON merge patch format and processing rules.
116843//
116844// - project: Project ID for this request.
116845// - region: Name of the region scoping this request.
116846func (r *RegionAutoscalersService) Patch(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersPatchCall {
116847	c := &RegionAutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116848	c.project = project
116849	c.region = region
116850	c.autoscaler = autoscaler
116851	return c
116852}
116853
116854// Autoscaler sets the optional parameter "autoscaler": Name of the
116855// autoscaler to patch.
116856func (c *RegionAutoscalersPatchCall) Autoscaler(autoscaler string) *RegionAutoscalersPatchCall {
116857	c.urlParams_.Set("autoscaler", autoscaler)
116858	return c
116859}
116860
116861// RequestId sets the optional parameter "requestId": An optional
116862// request ID to identify requests. Specify a unique request ID so that
116863// if you must retry your request, the server will know to ignore the
116864// request if it has already been completed. For example, consider a
116865// situation where you make an initial request and the request times
116866// out. If you make the request again with the same request ID, the
116867// server can check if original operation with the same request ID was
116868// received, and if so, will ignore the second request. This prevents
116869// clients from accidentally creating duplicate commitments. The request
116870// ID must be a valid UUID with the exception that zero UUID is not
116871// supported ( 00000000-0000-0000-0000-000000000000).
116872func (c *RegionAutoscalersPatchCall) RequestId(requestId string) *RegionAutoscalersPatchCall {
116873	c.urlParams_.Set("requestId", requestId)
116874	return c
116875}
116876
116877// Fields allows partial responses to be retrieved. See
116878// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116879// for more information.
116880func (c *RegionAutoscalersPatchCall) Fields(s ...googleapi.Field) *RegionAutoscalersPatchCall {
116881	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116882	return c
116883}
116884
116885// Context sets the context to be used in this call's Do method. Any
116886// pending HTTP request will be aborted if the provided context is
116887// canceled.
116888func (c *RegionAutoscalersPatchCall) Context(ctx context.Context) *RegionAutoscalersPatchCall {
116889	c.ctx_ = ctx
116890	return c
116891}
116892
116893// Header returns an http.Header that can be modified by the caller to
116894// add HTTP headers to the request.
116895func (c *RegionAutoscalersPatchCall) Header() http.Header {
116896	if c.header_ == nil {
116897		c.header_ = make(http.Header)
116898	}
116899	return c.header_
116900}
116901
116902func (c *RegionAutoscalersPatchCall) doRequest(alt string) (*http.Response, error) {
116903	reqHeaders := make(http.Header)
116904	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
116905	for k, v := range c.header_ {
116906		reqHeaders[k] = v
116907	}
116908	reqHeaders.Set("User-Agent", c.s.userAgent())
116909	var body io.Reader = nil
116910	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
116911	if err != nil {
116912		return nil, err
116913	}
116914	reqHeaders.Set("Content-Type", "application/json")
116915	c.urlParams_.Set("alt", alt)
116916	c.urlParams_.Set("prettyPrint", "false")
116917	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers")
116918	urls += "?" + c.urlParams_.Encode()
116919	req, err := http.NewRequest("PATCH", urls, body)
116920	if err != nil {
116921		return nil, err
116922	}
116923	req.Header = reqHeaders
116924	googleapi.Expand(req.URL, map[string]string{
116925		"project": c.project,
116926		"region":  c.region,
116927	})
116928	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116929}
116930
116931// Do executes the "compute.regionAutoscalers.patch" call.
116932// Exactly one of *Operation or error will be non-nil. Any non-2xx
116933// status code is an error. Response headers are in either
116934// *Operation.ServerResponse.Header or (if a response was returned at
116935// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116936// to check whether the returned error was because
116937// http.StatusNotModified was returned.
116938func (c *RegionAutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116939	gensupport.SetOptions(c.urlParams_, opts...)
116940	res, err := c.doRequest("json")
116941	if res != nil && res.StatusCode == http.StatusNotModified {
116942		if res.Body != nil {
116943			res.Body.Close()
116944		}
116945		return nil, &googleapi.Error{
116946			Code:   res.StatusCode,
116947			Header: res.Header,
116948		}
116949	}
116950	if err != nil {
116951		return nil, err
116952	}
116953	defer googleapi.CloseBody(res)
116954	if err := googleapi.CheckResponse(res); err != nil {
116955		return nil, err
116956	}
116957	ret := &Operation{
116958		ServerResponse: googleapi.ServerResponse{
116959			Header:         res.Header,
116960			HTTPStatusCode: res.StatusCode,
116961		},
116962	}
116963	target := &ret
116964	if err := gensupport.DecodeResponse(target, res); err != nil {
116965		return nil, err
116966	}
116967	return ret, nil
116968	// {
116969	//   "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.",
116970	//   "flatPath": "projects/{project}/regions/{region}/autoscalers",
116971	//   "httpMethod": "PATCH",
116972	//   "id": "compute.regionAutoscalers.patch",
116973	//   "parameterOrder": [
116974	//     "project",
116975	//     "region"
116976	//   ],
116977	//   "parameters": {
116978	//     "autoscaler": {
116979	//       "description": "Name of the autoscaler to patch.",
116980	//       "location": "query",
116981	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
116982	//       "type": "string"
116983	//     },
116984	//     "project": {
116985	//       "description": "Project ID for this request.",
116986	//       "location": "path",
116987	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116988	//       "required": true,
116989	//       "type": "string"
116990	//     },
116991	//     "region": {
116992	//       "description": "Name of the region scoping this request.",
116993	//       "location": "path",
116994	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116995	//       "required": true,
116996	//       "type": "string"
116997	//     },
116998	//     "requestId": {
116999	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
117000	//       "location": "query",
117001	//       "type": "string"
117002	//     }
117003	//   },
117004	//   "path": "projects/{project}/regions/{region}/autoscalers",
117005	//   "request": {
117006	//     "$ref": "Autoscaler"
117007	//   },
117008	//   "response": {
117009	//     "$ref": "Operation"
117010	//   },
117011	//   "scopes": [
117012	//     "https://www.googleapis.com/auth/cloud-platform",
117013	//     "https://www.googleapis.com/auth/compute"
117014	//   ]
117015	// }
117016
117017}
117018
117019// method id "compute.regionAutoscalers.update":
117020
117021type RegionAutoscalersUpdateCall struct {
117022	s          *Service
117023	project    string
117024	region     string
117025	autoscaler *Autoscaler
117026	urlParams_ gensupport.URLParams
117027	ctx_       context.Context
117028	header_    http.Header
117029}
117030
117031// Update: Updates an autoscaler in the specified project using the data
117032// included in the request.
117033//
117034// - project: Project ID for this request.
117035// - region: Name of the region scoping this request.
117036func (r *RegionAutoscalersService) Update(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersUpdateCall {
117037	c := &RegionAutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117038	c.project = project
117039	c.region = region
117040	c.autoscaler = autoscaler
117041	return c
117042}
117043
117044// Autoscaler sets the optional parameter "autoscaler": Name of the
117045// autoscaler to update.
117046func (c *RegionAutoscalersUpdateCall) Autoscaler(autoscaler string) *RegionAutoscalersUpdateCall {
117047	c.urlParams_.Set("autoscaler", autoscaler)
117048	return c
117049}
117050
117051// RequestId sets the optional parameter "requestId": An optional
117052// request ID to identify requests. Specify a unique request ID so that
117053// if you must retry your request, the server will know to ignore the
117054// request if it has already been completed. For example, consider a
117055// situation where you make an initial request and the request times
117056// out. If you make the request again with the same request ID, the
117057// server can check if original operation with the same request ID was
117058// received, and if so, will ignore the second request. This prevents
117059// clients from accidentally creating duplicate commitments. The request
117060// ID must be a valid UUID with the exception that zero UUID is not
117061// supported ( 00000000-0000-0000-0000-000000000000).
117062func (c *RegionAutoscalersUpdateCall) RequestId(requestId string) *RegionAutoscalersUpdateCall {
117063	c.urlParams_.Set("requestId", requestId)
117064	return c
117065}
117066
117067// Fields allows partial responses to be retrieved. See
117068// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117069// for more information.
117070func (c *RegionAutoscalersUpdateCall) Fields(s ...googleapi.Field) *RegionAutoscalersUpdateCall {
117071	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117072	return c
117073}
117074
117075// Context sets the context to be used in this call's Do method. Any
117076// pending HTTP request will be aborted if the provided context is
117077// canceled.
117078func (c *RegionAutoscalersUpdateCall) Context(ctx context.Context) *RegionAutoscalersUpdateCall {
117079	c.ctx_ = ctx
117080	return c
117081}
117082
117083// Header returns an http.Header that can be modified by the caller to
117084// add HTTP headers to the request.
117085func (c *RegionAutoscalersUpdateCall) Header() http.Header {
117086	if c.header_ == nil {
117087		c.header_ = make(http.Header)
117088	}
117089	return c.header_
117090}
117091
117092func (c *RegionAutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) {
117093	reqHeaders := make(http.Header)
117094	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
117095	for k, v := range c.header_ {
117096		reqHeaders[k] = v
117097	}
117098	reqHeaders.Set("User-Agent", c.s.userAgent())
117099	var body io.Reader = nil
117100	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
117101	if err != nil {
117102		return nil, err
117103	}
117104	reqHeaders.Set("Content-Type", "application/json")
117105	c.urlParams_.Set("alt", alt)
117106	c.urlParams_.Set("prettyPrint", "false")
117107	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers")
117108	urls += "?" + c.urlParams_.Encode()
117109	req, err := http.NewRequest("PUT", urls, body)
117110	if err != nil {
117111		return nil, err
117112	}
117113	req.Header = reqHeaders
117114	googleapi.Expand(req.URL, map[string]string{
117115		"project": c.project,
117116		"region":  c.region,
117117	})
117118	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117119}
117120
117121// Do executes the "compute.regionAutoscalers.update" call.
117122// Exactly one of *Operation or error will be non-nil. Any non-2xx
117123// status code is an error. Response headers are in either
117124// *Operation.ServerResponse.Header or (if a response was returned at
117125// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
117126// to check whether the returned error was because
117127// http.StatusNotModified was returned.
117128func (c *RegionAutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
117129	gensupport.SetOptions(c.urlParams_, opts...)
117130	res, err := c.doRequest("json")
117131	if res != nil && res.StatusCode == http.StatusNotModified {
117132		if res.Body != nil {
117133			res.Body.Close()
117134		}
117135		return nil, &googleapi.Error{
117136			Code:   res.StatusCode,
117137			Header: res.Header,
117138		}
117139	}
117140	if err != nil {
117141		return nil, err
117142	}
117143	defer googleapi.CloseBody(res)
117144	if err := googleapi.CheckResponse(res); err != nil {
117145		return nil, err
117146	}
117147	ret := &Operation{
117148		ServerResponse: googleapi.ServerResponse{
117149			Header:         res.Header,
117150			HTTPStatusCode: res.StatusCode,
117151		},
117152	}
117153	target := &ret
117154	if err := gensupport.DecodeResponse(target, res); err != nil {
117155		return nil, err
117156	}
117157	return ret, nil
117158	// {
117159	//   "description": "Updates an autoscaler in the specified project using the data included in the request.",
117160	//   "flatPath": "projects/{project}/regions/{region}/autoscalers",
117161	//   "httpMethod": "PUT",
117162	//   "id": "compute.regionAutoscalers.update",
117163	//   "parameterOrder": [
117164	//     "project",
117165	//     "region"
117166	//   ],
117167	//   "parameters": {
117168	//     "autoscaler": {
117169	//       "description": "Name of the autoscaler to update.",
117170	//       "location": "query",
117171	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
117172	//       "type": "string"
117173	//     },
117174	//     "project": {
117175	//       "description": "Project ID for this request.",
117176	//       "location": "path",
117177	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117178	//       "required": true,
117179	//       "type": "string"
117180	//     },
117181	//     "region": {
117182	//       "description": "Name of the region scoping this request.",
117183	//       "location": "path",
117184	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117185	//       "required": true,
117186	//       "type": "string"
117187	//     },
117188	//     "requestId": {
117189	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
117190	//       "location": "query",
117191	//       "type": "string"
117192	//     }
117193	//   },
117194	//   "path": "projects/{project}/regions/{region}/autoscalers",
117195	//   "request": {
117196	//     "$ref": "Autoscaler"
117197	//   },
117198	//   "response": {
117199	//     "$ref": "Operation"
117200	//   },
117201	//   "scopes": [
117202	//     "https://www.googleapis.com/auth/cloud-platform",
117203	//     "https://www.googleapis.com/auth/compute"
117204	//   ]
117205	// }
117206
117207}
117208
117209// method id "compute.regionBackendServices.delete":
117210
117211type RegionBackendServicesDeleteCall struct {
117212	s              *Service
117213	project        string
117214	region         string
117215	backendService string
117216	urlParams_     gensupport.URLParams
117217	ctx_           context.Context
117218	header_        http.Header
117219}
117220
117221// Delete: Deletes the specified regional BackendService resource.
117222//
117223// - backendService: Name of the BackendService resource to delete.
117224// - project: Project ID for this request.
117225// - region: Name of the region scoping this request.
117226func (r *RegionBackendServicesService) Delete(project string, region string, backendService string) *RegionBackendServicesDeleteCall {
117227	c := &RegionBackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117228	c.project = project
117229	c.region = region
117230	c.backendService = backendService
117231	return c
117232}
117233
117234// RequestId sets the optional parameter "requestId": An optional
117235// request ID to identify requests. Specify a unique request ID so that
117236// if you must retry your request, the server will know to ignore the
117237// request if it has already been completed. For example, consider a
117238// situation where you make an initial request and the request times
117239// out. If you make the request again with the same request ID, the
117240// server can check if original operation with the same request ID was
117241// received, and if so, will ignore the second request. This prevents
117242// clients from accidentally creating duplicate commitments. The request
117243// ID must be a valid UUID with the exception that zero UUID is not
117244// supported ( 00000000-0000-0000-0000-000000000000).
117245func (c *RegionBackendServicesDeleteCall) RequestId(requestId string) *RegionBackendServicesDeleteCall {
117246	c.urlParams_.Set("requestId", requestId)
117247	return c
117248}
117249
117250// Fields allows partial responses to be retrieved. See
117251// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117252// for more information.
117253func (c *RegionBackendServicesDeleteCall) Fields(s ...googleapi.Field) *RegionBackendServicesDeleteCall {
117254	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117255	return c
117256}
117257
117258// Context sets the context to be used in this call's Do method. Any
117259// pending HTTP request will be aborted if the provided context is
117260// canceled.
117261func (c *RegionBackendServicesDeleteCall) Context(ctx context.Context) *RegionBackendServicesDeleteCall {
117262	c.ctx_ = ctx
117263	return c
117264}
117265
117266// Header returns an http.Header that can be modified by the caller to
117267// add HTTP headers to the request.
117268func (c *RegionBackendServicesDeleteCall) Header() http.Header {
117269	if c.header_ == nil {
117270		c.header_ = make(http.Header)
117271	}
117272	return c.header_
117273}
117274
117275func (c *RegionBackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
117276	reqHeaders := make(http.Header)
117277	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
117278	for k, v := range c.header_ {
117279		reqHeaders[k] = v
117280	}
117281	reqHeaders.Set("User-Agent", c.s.userAgent())
117282	var body io.Reader = nil
117283	c.urlParams_.Set("alt", alt)
117284	c.urlParams_.Set("prettyPrint", "false")
117285	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}")
117286	urls += "?" + c.urlParams_.Encode()
117287	req, err := http.NewRequest("DELETE", urls, body)
117288	if err != nil {
117289		return nil, err
117290	}
117291	req.Header = reqHeaders
117292	googleapi.Expand(req.URL, map[string]string{
117293		"project":        c.project,
117294		"region":         c.region,
117295		"backendService": c.backendService,
117296	})
117297	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117298}
117299
117300// Do executes the "compute.regionBackendServices.delete" call.
117301// Exactly one of *Operation or error will be non-nil. Any non-2xx
117302// status code is an error. Response headers are in either
117303// *Operation.ServerResponse.Header or (if a response was returned at
117304// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
117305// to check whether the returned error was because
117306// http.StatusNotModified was returned.
117307func (c *RegionBackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
117308	gensupport.SetOptions(c.urlParams_, opts...)
117309	res, err := c.doRequest("json")
117310	if res != nil && res.StatusCode == http.StatusNotModified {
117311		if res.Body != nil {
117312			res.Body.Close()
117313		}
117314		return nil, &googleapi.Error{
117315			Code:   res.StatusCode,
117316			Header: res.Header,
117317		}
117318	}
117319	if err != nil {
117320		return nil, err
117321	}
117322	defer googleapi.CloseBody(res)
117323	if err := googleapi.CheckResponse(res); err != nil {
117324		return nil, err
117325	}
117326	ret := &Operation{
117327		ServerResponse: googleapi.ServerResponse{
117328			Header:         res.Header,
117329			HTTPStatusCode: res.StatusCode,
117330		},
117331	}
117332	target := &ret
117333	if err := gensupport.DecodeResponse(target, res); err != nil {
117334		return nil, err
117335	}
117336	return ret, nil
117337	// {
117338	//   "description": "Deletes the specified regional BackendService resource.",
117339	//   "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}",
117340	//   "httpMethod": "DELETE",
117341	//   "id": "compute.regionBackendServices.delete",
117342	//   "parameterOrder": [
117343	//     "project",
117344	//     "region",
117345	//     "backendService"
117346	//   ],
117347	//   "parameters": {
117348	//     "backendService": {
117349	//       "description": "Name of the BackendService resource to delete.",
117350	//       "location": "path",
117351	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
117352	//       "required": true,
117353	//       "type": "string"
117354	//     },
117355	//     "project": {
117356	//       "description": "Project ID for this request.",
117357	//       "location": "path",
117358	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117359	//       "required": true,
117360	//       "type": "string"
117361	//     },
117362	//     "region": {
117363	//       "description": "Name of the region scoping this request.",
117364	//       "location": "path",
117365	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117366	//       "required": true,
117367	//       "type": "string"
117368	//     },
117369	//     "requestId": {
117370	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
117371	//       "location": "query",
117372	//       "type": "string"
117373	//     }
117374	//   },
117375	//   "path": "projects/{project}/regions/{region}/backendServices/{backendService}",
117376	//   "response": {
117377	//     "$ref": "Operation"
117378	//   },
117379	//   "scopes": [
117380	//     "https://www.googleapis.com/auth/cloud-platform",
117381	//     "https://www.googleapis.com/auth/compute"
117382	//   ]
117383	// }
117384
117385}
117386
117387// method id "compute.regionBackendServices.get":
117388
117389type RegionBackendServicesGetCall struct {
117390	s              *Service
117391	project        string
117392	region         string
117393	backendService string
117394	urlParams_     gensupport.URLParams
117395	ifNoneMatch_   string
117396	ctx_           context.Context
117397	header_        http.Header
117398}
117399
117400// Get: Returns the specified regional BackendService resource.
117401//
117402// - backendService: Name of the BackendService resource to return.
117403// - project: Project ID for this request.
117404// - region: Name of the region scoping this request.
117405func (r *RegionBackendServicesService) Get(project string, region string, backendService string) *RegionBackendServicesGetCall {
117406	c := &RegionBackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117407	c.project = project
117408	c.region = region
117409	c.backendService = backendService
117410	return c
117411}
117412
117413// Fields allows partial responses to be retrieved. See
117414// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117415// for more information.
117416func (c *RegionBackendServicesGetCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetCall {
117417	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117418	return c
117419}
117420
117421// IfNoneMatch sets the optional parameter which makes the operation
117422// fail if the object's ETag matches the given value. This is useful for
117423// getting updates only after the object has changed since the last
117424// request. Use googleapi.IsNotModified to check whether the response
117425// error from Do is the result of In-None-Match.
117426func (c *RegionBackendServicesGetCall) IfNoneMatch(entityTag string) *RegionBackendServicesGetCall {
117427	c.ifNoneMatch_ = entityTag
117428	return c
117429}
117430
117431// Context sets the context to be used in this call's Do method. Any
117432// pending HTTP request will be aborted if the provided context is
117433// canceled.
117434func (c *RegionBackendServicesGetCall) Context(ctx context.Context) *RegionBackendServicesGetCall {
117435	c.ctx_ = ctx
117436	return c
117437}
117438
117439// Header returns an http.Header that can be modified by the caller to
117440// add HTTP headers to the request.
117441func (c *RegionBackendServicesGetCall) Header() http.Header {
117442	if c.header_ == nil {
117443		c.header_ = make(http.Header)
117444	}
117445	return c.header_
117446}
117447
117448func (c *RegionBackendServicesGetCall) doRequest(alt string) (*http.Response, error) {
117449	reqHeaders := make(http.Header)
117450	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
117451	for k, v := range c.header_ {
117452		reqHeaders[k] = v
117453	}
117454	reqHeaders.Set("User-Agent", c.s.userAgent())
117455	if c.ifNoneMatch_ != "" {
117456		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
117457	}
117458	var body io.Reader = nil
117459	c.urlParams_.Set("alt", alt)
117460	c.urlParams_.Set("prettyPrint", "false")
117461	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}")
117462	urls += "?" + c.urlParams_.Encode()
117463	req, err := http.NewRequest("GET", urls, body)
117464	if err != nil {
117465		return nil, err
117466	}
117467	req.Header = reqHeaders
117468	googleapi.Expand(req.URL, map[string]string{
117469		"project":        c.project,
117470		"region":         c.region,
117471		"backendService": c.backendService,
117472	})
117473	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117474}
117475
117476// Do executes the "compute.regionBackendServices.get" call.
117477// Exactly one of *BackendService or error will be non-nil. Any non-2xx
117478// status code is an error. Response headers are in either
117479// *BackendService.ServerResponse.Header or (if a response was returned
117480// at all) in error.(*googleapi.Error).Header. Use
117481// googleapi.IsNotModified to check whether the returned error was
117482// because http.StatusNotModified was returned.
117483func (c *RegionBackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) {
117484	gensupport.SetOptions(c.urlParams_, opts...)
117485	res, err := c.doRequest("json")
117486	if res != nil && res.StatusCode == http.StatusNotModified {
117487		if res.Body != nil {
117488			res.Body.Close()
117489		}
117490		return nil, &googleapi.Error{
117491			Code:   res.StatusCode,
117492			Header: res.Header,
117493		}
117494	}
117495	if err != nil {
117496		return nil, err
117497	}
117498	defer googleapi.CloseBody(res)
117499	if err := googleapi.CheckResponse(res); err != nil {
117500		return nil, err
117501	}
117502	ret := &BackendService{
117503		ServerResponse: googleapi.ServerResponse{
117504			Header:         res.Header,
117505			HTTPStatusCode: res.StatusCode,
117506		},
117507	}
117508	target := &ret
117509	if err := gensupport.DecodeResponse(target, res); err != nil {
117510		return nil, err
117511	}
117512	return ret, nil
117513	// {
117514	//   "description": "Returns the specified regional BackendService resource.",
117515	//   "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}",
117516	//   "httpMethod": "GET",
117517	//   "id": "compute.regionBackendServices.get",
117518	//   "parameterOrder": [
117519	//     "project",
117520	//     "region",
117521	//     "backendService"
117522	//   ],
117523	//   "parameters": {
117524	//     "backendService": {
117525	//       "description": "Name of the BackendService resource to return.",
117526	//       "location": "path",
117527	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
117528	//       "required": true,
117529	//       "type": "string"
117530	//     },
117531	//     "project": {
117532	//       "description": "Project ID for this request.",
117533	//       "location": "path",
117534	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117535	//       "required": true,
117536	//       "type": "string"
117537	//     },
117538	//     "region": {
117539	//       "description": "Name of the region scoping this request.",
117540	//       "location": "path",
117541	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117542	//       "required": true,
117543	//       "type": "string"
117544	//     }
117545	//   },
117546	//   "path": "projects/{project}/regions/{region}/backendServices/{backendService}",
117547	//   "response": {
117548	//     "$ref": "BackendService"
117549	//   },
117550	//   "scopes": [
117551	//     "https://www.googleapis.com/auth/cloud-platform",
117552	//     "https://www.googleapis.com/auth/compute",
117553	//     "https://www.googleapis.com/auth/compute.readonly"
117554	//   ]
117555	// }
117556
117557}
117558
117559// method id "compute.regionBackendServices.getHealth":
117560
117561type RegionBackendServicesGetHealthCall struct {
117562	s                      *Service
117563	project                string
117564	region                 string
117565	backendService         string
117566	resourcegroupreference *ResourceGroupReference
117567	urlParams_             gensupport.URLParams
117568	ctx_                   context.Context
117569	header_                http.Header
117570}
117571
117572// GetHealth: Gets the most recent health check results for this
117573// regional BackendService.
117574//
117575// - backendService: Name of the BackendService resource for which to
117576//   get health.
117577// - project: .
117578// - region: Name of the region scoping this request.
117579func (r *RegionBackendServicesService) GetHealth(project string, region string, backendService string, resourcegroupreference *ResourceGroupReference) *RegionBackendServicesGetHealthCall {
117580	c := &RegionBackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117581	c.project = project
117582	c.region = region
117583	c.backendService = backendService
117584	c.resourcegroupreference = resourcegroupreference
117585	return c
117586}
117587
117588// Fields allows partial responses to be retrieved. See
117589// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117590// for more information.
117591func (c *RegionBackendServicesGetHealthCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetHealthCall {
117592	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117593	return c
117594}
117595
117596// Context sets the context to be used in this call's Do method. Any
117597// pending HTTP request will be aborted if the provided context is
117598// canceled.
117599func (c *RegionBackendServicesGetHealthCall) Context(ctx context.Context) *RegionBackendServicesGetHealthCall {
117600	c.ctx_ = ctx
117601	return c
117602}
117603
117604// Header returns an http.Header that can be modified by the caller to
117605// add HTTP headers to the request.
117606func (c *RegionBackendServicesGetHealthCall) Header() http.Header {
117607	if c.header_ == nil {
117608		c.header_ = make(http.Header)
117609	}
117610	return c.header_
117611}
117612
117613func (c *RegionBackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) {
117614	reqHeaders := make(http.Header)
117615	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
117616	for k, v := range c.header_ {
117617		reqHeaders[k] = v
117618	}
117619	reqHeaders.Set("User-Agent", c.s.userAgent())
117620	var body io.Reader = nil
117621	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference)
117622	if err != nil {
117623		return nil, err
117624	}
117625	reqHeaders.Set("Content-Type", "application/json")
117626	c.urlParams_.Set("alt", alt)
117627	c.urlParams_.Set("prettyPrint", "false")
117628	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}/getHealth")
117629	urls += "?" + c.urlParams_.Encode()
117630	req, err := http.NewRequest("POST", urls, body)
117631	if err != nil {
117632		return nil, err
117633	}
117634	req.Header = reqHeaders
117635	googleapi.Expand(req.URL, map[string]string{
117636		"project":        c.project,
117637		"region":         c.region,
117638		"backendService": c.backendService,
117639	})
117640	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117641}
117642
117643// Do executes the "compute.regionBackendServices.getHealth" call.
117644// Exactly one of *BackendServiceGroupHealth or error will be non-nil.
117645// Any non-2xx status code is an error. Response headers are in either
117646// *BackendServiceGroupHealth.ServerResponse.Header or (if a response
117647// was returned at all) in error.(*googleapi.Error).Header. Use
117648// googleapi.IsNotModified to check whether the returned error was
117649// because http.StatusNotModified was returned.
117650func (c *RegionBackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) {
117651	gensupport.SetOptions(c.urlParams_, opts...)
117652	res, err := c.doRequest("json")
117653	if res != nil && res.StatusCode == http.StatusNotModified {
117654		if res.Body != nil {
117655			res.Body.Close()
117656		}
117657		return nil, &googleapi.Error{
117658			Code:   res.StatusCode,
117659			Header: res.Header,
117660		}
117661	}
117662	if err != nil {
117663		return nil, err
117664	}
117665	defer googleapi.CloseBody(res)
117666	if err := googleapi.CheckResponse(res); err != nil {
117667		return nil, err
117668	}
117669	ret := &BackendServiceGroupHealth{
117670		ServerResponse: googleapi.ServerResponse{
117671			Header:         res.Header,
117672			HTTPStatusCode: res.StatusCode,
117673		},
117674	}
117675	target := &ret
117676	if err := gensupport.DecodeResponse(target, res); err != nil {
117677		return nil, err
117678	}
117679	return ret, nil
117680	// {
117681	//   "description": "Gets the most recent health check results for this regional BackendService.",
117682	//   "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}/getHealth",
117683	//   "httpMethod": "POST",
117684	//   "id": "compute.regionBackendServices.getHealth",
117685	//   "parameterOrder": [
117686	//     "project",
117687	//     "region",
117688	//     "backendService"
117689	//   ],
117690	//   "parameters": {
117691	//     "backendService": {
117692	//       "description": "Name of the BackendService resource for which to get health.",
117693	//       "location": "path",
117694	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
117695	//       "required": true,
117696	//       "type": "string"
117697	//     },
117698	//     "project": {
117699	//       "location": "path",
117700	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117701	//       "required": true,
117702	//       "type": "string"
117703	//     },
117704	//     "region": {
117705	//       "description": "Name of the region scoping this request.",
117706	//       "location": "path",
117707	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117708	//       "required": true,
117709	//       "type": "string"
117710	//     }
117711	//   },
117712	//   "path": "projects/{project}/regions/{region}/backendServices/{backendService}/getHealth",
117713	//   "request": {
117714	//     "$ref": "ResourceGroupReference"
117715	//   },
117716	//   "response": {
117717	//     "$ref": "BackendServiceGroupHealth"
117718	//   },
117719	//   "scopes": [
117720	//     "https://www.googleapis.com/auth/cloud-platform",
117721	//     "https://www.googleapis.com/auth/compute",
117722	//     "https://www.googleapis.com/auth/compute.readonly"
117723	//   ]
117724	// }
117725
117726}
117727
117728// method id "compute.regionBackendServices.insert":
117729
117730type RegionBackendServicesInsertCall struct {
117731	s              *Service
117732	project        string
117733	region         string
117734	backendservice *BackendService
117735	urlParams_     gensupport.URLParams
117736	ctx_           context.Context
117737	header_        http.Header
117738}
117739
117740// Insert: Creates a regional BackendService resource in the specified
117741// project using the data included in the request. For more information,
117742// see Backend services overview.
117743//
117744// - project: Project ID for this request.
117745// - region: Name of the region scoping this request.
117746func (r *RegionBackendServicesService) Insert(project string, region string, backendservice *BackendService) *RegionBackendServicesInsertCall {
117747	c := &RegionBackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117748	c.project = project
117749	c.region = region
117750	c.backendservice = backendservice
117751	return c
117752}
117753
117754// RequestId sets the optional parameter "requestId": An optional
117755// request ID to identify requests. Specify a unique request ID so that
117756// if you must retry your request, the server will know to ignore the
117757// request if it has already been completed. For example, consider a
117758// situation where you make an initial request and the request times
117759// out. If you make the request again with the same request ID, the
117760// server can check if original operation with the same request ID was
117761// received, and if so, will ignore the second request. This prevents
117762// clients from accidentally creating duplicate commitments. The request
117763// ID must be a valid UUID with the exception that zero UUID is not
117764// supported ( 00000000-0000-0000-0000-000000000000).
117765func (c *RegionBackendServicesInsertCall) RequestId(requestId string) *RegionBackendServicesInsertCall {
117766	c.urlParams_.Set("requestId", requestId)
117767	return c
117768}
117769
117770// Fields allows partial responses to be retrieved. See
117771// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117772// for more information.
117773func (c *RegionBackendServicesInsertCall) Fields(s ...googleapi.Field) *RegionBackendServicesInsertCall {
117774	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117775	return c
117776}
117777
117778// Context sets the context to be used in this call's Do method. Any
117779// pending HTTP request will be aborted if the provided context is
117780// canceled.
117781func (c *RegionBackendServicesInsertCall) Context(ctx context.Context) *RegionBackendServicesInsertCall {
117782	c.ctx_ = ctx
117783	return c
117784}
117785
117786// Header returns an http.Header that can be modified by the caller to
117787// add HTTP headers to the request.
117788func (c *RegionBackendServicesInsertCall) Header() http.Header {
117789	if c.header_ == nil {
117790		c.header_ = make(http.Header)
117791	}
117792	return c.header_
117793}
117794
117795func (c *RegionBackendServicesInsertCall) doRequest(alt string) (*http.Response, error) {
117796	reqHeaders := make(http.Header)
117797	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
117798	for k, v := range c.header_ {
117799		reqHeaders[k] = v
117800	}
117801	reqHeaders.Set("User-Agent", c.s.userAgent())
117802	var body io.Reader = nil
117803	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
117804	if err != nil {
117805		return nil, err
117806	}
117807	reqHeaders.Set("Content-Type", "application/json")
117808	c.urlParams_.Set("alt", alt)
117809	c.urlParams_.Set("prettyPrint", "false")
117810	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices")
117811	urls += "?" + c.urlParams_.Encode()
117812	req, err := http.NewRequest("POST", urls, body)
117813	if err != nil {
117814		return nil, err
117815	}
117816	req.Header = reqHeaders
117817	googleapi.Expand(req.URL, map[string]string{
117818		"project": c.project,
117819		"region":  c.region,
117820	})
117821	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117822}
117823
117824// Do executes the "compute.regionBackendServices.insert" call.
117825// Exactly one of *Operation or error will be non-nil. Any non-2xx
117826// status code is an error. Response headers are in either
117827// *Operation.ServerResponse.Header or (if a response was returned at
117828// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
117829// to check whether the returned error was because
117830// http.StatusNotModified was returned.
117831func (c *RegionBackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
117832	gensupport.SetOptions(c.urlParams_, opts...)
117833	res, err := c.doRequest("json")
117834	if res != nil && res.StatusCode == http.StatusNotModified {
117835		if res.Body != nil {
117836			res.Body.Close()
117837		}
117838		return nil, &googleapi.Error{
117839			Code:   res.StatusCode,
117840			Header: res.Header,
117841		}
117842	}
117843	if err != nil {
117844		return nil, err
117845	}
117846	defer googleapi.CloseBody(res)
117847	if err := googleapi.CheckResponse(res); err != nil {
117848		return nil, err
117849	}
117850	ret := &Operation{
117851		ServerResponse: googleapi.ServerResponse{
117852			Header:         res.Header,
117853			HTTPStatusCode: res.StatusCode,
117854		},
117855	}
117856	target := &ret
117857	if err := gensupport.DecodeResponse(target, res); err != nil {
117858		return nil, err
117859	}
117860	return ret, nil
117861	// {
117862	//   "description": "Creates a regional BackendService resource in the specified project using the data included in the request. For more information, see Backend services overview.",
117863	//   "flatPath": "projects/{project}/regions/{region}/backendServices",
117864	//   "httpMethod": "POST",
117865	//   "id": "compute.regionBackendServices.insert",
117866	//   "parameterOrder": [
117867	//     "project",
117868	//     "region"
117869	//   ],
117870	//   "parameters": {
117871	//     "project": {
117872	//       "description": "Project ID for this request.",
117873	//       "location": "path",
117874	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117875	//       "required": true,
117876	//       "type": "string"
117877	//     },
117878	//     "region": {
117879	//       "description": "Name of the region scoping this request.",
117880	//       "location": "path",
117881	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117882	//       "required": true,
117883	//       "type": "string"
117884	//     },
117885	//     "requestId": {
117886	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
117887	//       "location": "query",
117888	//       "type": "string"
117889	//     }
117890	//   },
117891	//   "path": "projects/{project}/regions/{region}/backendServices",
117892	//   "request": {
117893	//     "$ref": "BackendService"
117894	//   },
117895	//   "response": {
117896	//     "$ref": "Operation"
117897	//   },
117898	//   "scopes": [
117899	//     "https://www.googleapis.com/auth/cloud-platform",
117900	//     "https://www.googleapis.com/auth/compute"
117901	//   ]
117902	// }
117903
117904}
117905
117906// method id "compute.regionBackendServices.list":
117907
117908type RegionBackendServicesListCall struct {
117909	s            *Service
117910	project      string
117911	region       string
117912	urlParams_   gensupport.URLParams
117913	ifNoneMatch_ string
117914	ctx_         context.Context
117915	header_      http.Header
117916}
117917
117918// List: Retrieves the list of regional BackendService resources
117919// available to the specified project in the given region.
117920//
117921// - project: Project ID for this request.
117922// - region: Name of the region scoping this request.
117923func (r *RegionBackendServicesService) List(project string, region string) *RegionBackendServicesListCall {
117924	c := &RegionBackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117925	c.project = project
117926	c.region = region
117927	return c
117928}
117929
117930// Filter sets the optional parameter "filter": A filter expression that
117931// filters resources listed in the response. The expression must specify
117932// the field name, a comparison operator, and the value that you want to
117933// use for filtering. The value must be a string, a number, or a
117934// boolean. The comparison operator must be either `=`, `!=`, `>`, or
117935// `<`. For example, if you are filtering Compute Engine instances, you
117936// can exclude instances named `example-instance` by specifying `name !=
117937// example-instance`. You can also filter nested fields. For example,
117938// you could specify `scheduling.automaticRestart = false` to include
117939// instances only if they are not scheduled for automatic restarts. You
117940// can use filtering on nested fields to filter based on resource
117941// labels. To filter on multiple expressions, provide each separate
117942// expression within parentheses. For example: ```
117943// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
117944// ``` By default, each expression is an `AND` expression. However, you
117945// can include `AND` and `OR` expressions explicitly. For example: ```
117946// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
117947// AND (scheduling.automaticRestart = true) ```
117948func (c *RegionBackendServicesListCall) Filter(filter string) *RegionBackendServicesListCall {
117949	c.urlParams_.Set("filter", filter)
117950	return c
117951}
117952
117953// MaxResults sets the optional parameter "maxResults": The maximum
117954// number of results per page that should be returned. If the number of
117955// available results is larger than `maxResults`, Compute Engine returns
117956// a `nextPageToken` that can be used to get the next page of results in
117957// subsequent list requests. Acceptable values are `0` to `500`,
117958// inclusive. (Default: `500`)
117959func (c *RegionBackendServicesListCall) MaxResults(maxResults int64) *RegionBackendServicesListCall {
117960	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
117961	return c
117962}
117963
117964// OrderBy sets the optional parameter "orderBy": Sorts list results by
117965// a certain order. By default, results are returned in alphanumerical
117966// order based on the resource name. You can also sort results in
117967// descending order based on the creation timestamp using
117968// `orderBy="creationTimestamp desc". This sorts results based on the
117969// `creationTimestamp` field in reverse chronological order (newest
117970// result first). Use this to sort resources like operations so that the
117971// newest operation is returned first. Currently, only sorting by `name`
117972// or `creationTimestamp desc` is supported.
117973func (c *RegionBackendServicesListCall) OrderBy(orderBy string) *RegionBackendServicesListCall {
117974	c.urlParams_.Set("orderBy", orderBy)
117975	return c
117976}
117977
117978// PageToken sets the optional parameter "pageToken": Specifies a page
117979// token to use. Set `pageToken` to the `nextPageToken` returned by a
117980// previous list request to get the next page of results.
117981func (c *RegionBackendServicesListCall) PageToken(pageToken string) *RegionBackendServicesListCall {
117982	c.urlParams_.Set("pageToken", pageToken)
117983	return c
117984}
117985
117986// ReturnPartialSuccess sets the optional parameter
117987// "returnPartialSuccess": Opt-in for partial success behavior which
117988// provides partial results in case of failure. The default value is
117989// false.
117990func (c *RegionBackendServicesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionBackendServicesListCall {
117991	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
117992	return c
117993}
117994
117995// Fields allows partial responses to be retrieved. See
117996// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117997// for more information.
117998func (c *RegionBackendServicesListCall) Fields(s ...googleapi.Field) *RegionBackendServicesListCall {
117999	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118000	return c
118001}
118002
118003// IfNoneMatch sets the optional parameter which makes the operation
118004// fail if the object's ETag matches the given value. This is useful for
118005// getting updates only after the object has changed since the last
118006// request. Use googleapi.IsNotModified to check whether the response
118007// error from Do is the result of In-None-Match.
118008func (c *RegionBackendServicesListCall) IfNoneMatch(entityTag string) *RegionBackendServicesListCall {
118009	c.ifNoneMatch_ = entityTag
118010	return c
118011}
118012
118013// Context sets the context to be used in this call's Do method. Any
118014// pending HTTP request will be aborted if the provided context is
118015// canceled.
118016func (c *RegionBackendServicesListCall) Context(ctx context.Context) *RegionBackendServicesListCall {
118017	c.ctx_ = ctx
118018	return c
118019}
118020
118021// Header returns an http.Header that can be modified by the caller to
118022// add HTTP headers to the request.
118023func (c *RegionBackendServicesListCall) Header() http.Header {
118024	if c.header_ == nil {
118025		c.header_ = make(http.Header)
118026	}
118027	return c.header_
118028}
118029
118030func (c *RegionBackendServicesListCall) doRequest(alt string) (*http.Response, error) {
118031	reqHeaders := make(http.Header)
118032	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
118033	for k, v := range c.header_ {
118034		reqHeaders[k] = v
118035	}
118036	reqHeaders.Set("User-Agent", c.s.userAgent())
118037	if c.ifNoneMatch_ != "" {
118038		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
118039	}
118040	var body io.Reader = nil
118041	c.urlParams_.Set("alt", alt)
118042	c.urlParams_.Set("prettyPrint", "false")
118043	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices")
118044	urls += "?" + c.urlParams_.Encode()
118045	req, err := http.NewRequest("GET", urls, body)
118046	if err != nil {
118047		return nil, err
118048	}
118049	req.Header = reqHeaders
118050	googleapi.Expand(req.URL, map[string]string{
118051		"project": c.project,
118052		"region":  c.region,
118053	})
118054	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118055}
118056
118057// Do executes the "compute.regionBackendServices.list" call.
118058// Exactly one of *BackendServiceList or error will be non-nil. Any
118059// non-2xx status code is an error. Response headers are in either
118060// *BackendServiceList.ServerResponse.Header or (if a response was
118061// returned at all) in error.(*googleapi.Error).Header. Use
118062// googleapi.IsNotModified to check whether the returned error was
118063// because http.StatusNotModified was returned.
118064func (c *RegionBackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, error) {
118065	gensupport.SetOptions(c.urlParams_, opts...)
118066	res, err := c.doRequest("json")
118067	if res != nil && res.StatusCode == http.StatusNotModified {
118068		if res.Body != nil {
118069			res.Body.Close()
118070		}
118071		return nil, &googleapi.Error{
118072			Code:   res.StatusCode,
118073			Header: res.Header,
118074		}
118075	}
118076	if err != nil {
118077		return nil, err
118078	}
118079	defer googleapi.CloseBody(res)
118080	if err := googleapi.CheckResponse(res); err != nil {
118081		return nil, err
118082	}
118083	ret := &BackendServiceList{
118084		ServerResponse: googleapi.ServerResponse{
118085			Header:         res.Header,
118086			HTTPStatusCode: res.StatusCode,
118087		},
118088	}
118089	target := &ret
118090	if err := gensupport.DecodeResponse(target, res); err != nil {
118091		return nil, err
118092	}
118093	return ret, nil
118094	// {
118095	//   "description": "Retrieves the list of regional BackendService resources available to the specified project in the given region.",
118096	//   "flatPath": "projects/{project}/regions/{region}/backendServices",
118097	//   "httpMethod": "GET",
118098	//   "id": "compute.regionBackendServices.list",
118099	//   "parameterOrder": [
118100	//     "project",
118101	//     "region"
118102	//   ],
118103	//   "parameters": {
118104	//     "filter": {
118105	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
118106	//       "location": "query",
118107	//       "type": "string"
118108	//     },
118109	//     "maxResults": {
118110	//       "default": "500",
118111	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
118112	//       "format": "uint32",
118113	//       "location": "query",
118114	//       "minimum": "0",
118115	//       "type": "integer"
118116	//     },
118117	//     "orderBy": {
118118	//       "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.",
118119	//       "location": "query",
118120	//       "type": "string"
118121	//     },
118122	//     "pageToken": {
118123	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
118124	//       "location": "query",
118125	//       "type": "string"
118126	//     },
118127	//     "project": {
118128	//       "description": "Project ID for this request.",
118129	//       "location": "path",
118130	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118131	//       "required": true,
118132	//       "type": "string"
118133	//     },
118134	//     "region": {
118135	//       "description": "Name of the region scoping this request.",
118136	//       "location": "path",
118137	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118138	//       "required": true,
118139	//       "type": "string"
118140	//     },
118141	//     "returnPartialSuccess": {
118142	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
118143	//       "location": "query",
118144	//       "type": "boolean"
118145	//     }
118146	//   },
118147	//   "path": "projects/{project}/regions/{region}/backendServices",
118148	//   "response": {
118149	//     "$ref": "BackendServiceList"
118150	//   },
118151	//   "scopes": [
118152	//     "https://www.googleapis.com/auth/cloud-platform",
118153	//     "https://www.googleapis.com/auth/compute",
118154	//     "https://www.googleapis.com/auth/compute.readonly"
118155	//   ]
118156	// }
118157
118158}
118159
118160// Pages invokes f for each page of results.
118161// A non-nil error returned from f will halt the iteration.
118162// The provided context supersedes any context provided to the Context method.
118163func (c *RegionBackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error {
118164	c.ctx_ = ctx
118165	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
118166	for {
118167		x, err := c.Do()
118168		if err != nil {
118169			return err
118170		}
118171		if err := f(x); err != nil {
118172			return err
118173		}
118174		if x.NextPageToken == "" {
118175			return nil
118176		}
118177		c.PageToken(x.NextPageToken)
118178	}
118179}
118180
118181// method id "compute.regionBackendServices.patch":
118182
118183type RegionBackendServicesPatchCall struct {
118184	s              *Service
118185	project        string
118186	region         string
118187	backendService string
118188	backendservice *BackendService
118189	urlParams_     gensupport.URLParams
118190	ctx_           context.Context
118191	header_        http.Header
118192}
118193
118194// Patch: Updates the specified regional BackendService resource with
118195// the data included in the request. For more information, see
118196// Understanding backend services This method supports PATCH semantics
118197// and uses the JSON merge patch format and processing rules.
118198//
118199// - backendService: Name of the BackendService resource to patch.
118200// - project: Project ID for this request.
118201// - region: Name of the region scoping this request.
118202func (r *RegionBackendServicesService) Patch(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesPatchCall {
118203	c := &RegionBackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118204	c.project = project
118205	c.region = region
118206	c.backendService = backendService
118207	c.backendservice = backendservice
118208	return c
118209}
118210
118211// RequestId sets the optional parameter "requestId": An optional
118212// request ID to identify requests. Specify a unique request ID so that
118213// if you must retry your request, the server will know to ignore the
118214// request if it has already been completed. For example, consider a
118215// situation where you make an initial request and the request times
118216// out. If you make the request again with the same request ID, the
118217// server can check if original operation with the same request ID was
118218// received, and if so, will ignore the second request. This prevents
118219// clients from accidentally creating duplicate commitments. The request
118220// ID must be a valid UUID with the exception that zero UUID is not
118221// supported ( 00000000-0000-0000-0000-000000000000).
118222func (c *RegionBackendServicesPatchCall) RequestId(requestId string) *RegionBackendServicesPatchCall {
118223	c.urlParams_.Set("requestId", requestId)
118224	return c
118225}
118226
118227// Fields allows partial responses to be retrieved. See
118228// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118229// for more information.
118230func (c *RegionBackendServicesPatchCall) Fields(s ...googleapi.Field) *RegionBackendServicesPatchCall {
118231	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118232	return c
118233}
118234
118235// Context sets the context to be used in this call's Do method. Any
118236// pending HTTP request will be aborted if the provided context is
118237// canceled.
118238func (c *RegionBackendServicesPatchCall) Context(ctx context.Context) *RegionBackendServicesPatchCall {
118239	c.ctx_ = ctx
118240	return c
118241}
118242
118243// Header returns an http.Header that can be modified by the caller to
118244// add HTTP headers to the request.
118245func (c *RegionBackendServicesPatchCall) Header() http.Header {
118246	if c.header_ == nil {
118247		c.header_ = make(http.Header)
118248	}
118249	return c.header_
118250}
118251
118252func (c *RegionBackendServicesPatchCall) doRequest(alt string) (*http.Response, error) {
118253	reqHeaders := make(http.Header)
118254	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
118255	for k, v := range c.header_ {
118256		reqHeaders[k] = v
118257	}
118258	reqHeaders.Set("User-Agent", c.s.userAgent())
118259	var body io.Reader = nil
118260	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
118261	if err != nil {
118262		return nil, err
118263	}
118264	reqHeaders.Set("Content-Type", "application/json")
118265	c.urlParams_.Set("alt", alt)
118266	c.urlParams_.Set("prettyPrint", "false")
118267	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}")
118268	urls += "?" + c.urlParams_.Encode()
118269	req, err := http.NewRequest("PATCH", urls, body)
118270	if err != nil {
118271		return nil, err
118272	}
118273	req.Header = reqHeaders
118274	googleapi.Expand(req.URL, map[string]string{
118275		"project":        c.project,
118276		"region":         c.region,
118277		"backendService": c.backendService,
118278	})
118279	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118280}
118281
118282// Do executes the "compute.regionBackendServices.patch" call.
118283// Exactly one of *Operation or error will be non-nil. Any non-2xx
118284// status code is an error. Response headers are in either
118285// *Operation.ServerResponse.Header or (if a response was returned at
118286// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118287// to check whether the returned error was because
118288// http.StatusNotModified was returned.
118289func (c *RegionBackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118290	gensupport.SetOptions(c.urlParams_, opts...)
118291	res, err := c.doRequest("json")
118292	if res != nil && res.StatusCode == http.StatusNotModified {
118293		if res.Body != nil {
118294			res.Body.Close()
118295		}
118296		return nil, &googleapi.Error{
118297			Code:   res.StatusCode,
118298			Header: res.Header,
118299		}
118300	}
118301	if err != nil {
118302		return nil, err
118303	}
118304	defer googleapi.CloseBody(res)
118305	if err := googleapi.CheckResponse(res); err != nil {
118306		return nil, err
118307	}
118308	ret := &Operation{
118309		ServerResponse: googleapi.ServerResponse{
118310			Header:         res.Header,
118311			HTTPStatusCode: res.StatusCode,
118312		},
118313	}
118314	target := &ret
118315	if err := gensupport.DecodeResponse(target, res); err != nil {
118316		return nil, err
118317	}
118318	return ret, nil
118319	// {
118320	//   "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.",
118321	//   "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}",
118322	//   "httpMethod": "PATCH",
118323	//   "id": "compute.regionBackendServices.patch",
118324	//   "parameterOrder": [
118325	//     "project",
118326	//     "region",
118327	//     "backendService"
118328	//   ],
118329	//   "parameters": {
118330	//     "backendService": {
118331	//       "description": "Name of the BackendService resource to patch.",
118332	//       "location": "path",
118333	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
118334	//       "required": true,
118335	//       "type": "string"
118336	//     },
118337	//     "project": {
118338	//       "description": "Project ID for this request.",
118339	//       "location": "path",
118340	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118341	//       "required": true,
118342	//       "type": "string"
118343	//     },
118344	//     "region": {
118345	//       "description": "Name of the region scoping this request.",
118346	//       "location": "path",
118347	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118348	//       "required": true,
118349	//       "type": "string"
118350	//     },
118351	//     "requestId": {
118352	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
118353	//       "location": "query",
118354	//       "type": "string"
118355	//     }
118356	//   },
118357	//   "path": "projects/{project}/regions/{region}/backendServices/{backendService}",
118358	//   "request": {
118359	//     "$ref": "BackendService"
118360	//   },
118361	//   "response": {
118362	//     "$ref": "Operation"
118363	//   },
118364	//   "scopes": [
118365	//     "https://www.googleapis.com/auth/cloud-platform",
118366	//     "https://www.googleapis.com/auth/compute"
118367	//   ]
118368	// }
118369
118370}
118371
118372// method id "compute.regionBackendServices.update":
118373
118374type RegionBackendServicesUpdateCall struct {
118375	s              *Service
118376	project        string
118377	region         string
118378	backendService string
118379	backendservice *BackendService
118380	urlParams_     gensupport.URLParams
118381	ctx_           context.Context
118382	header_        http.Header
118383}
118384
118385// Update: Updates the specified regional BackendService resource with
118386// the data included in the request. For more information, see Backend
118387// services overview .
118388//
118389// - backendService: Name of the BackendService resource to update.
118390// - project: Project ID for this request.
118391// - region: Name of the region scoping this request.
118392func (r *RegionBackendServicesService) Update(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesUpdateCall {
118393	c := &RegionBackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118394	c.project = project
118395	c.region = region
118396	c.backendService = backendService
118397	c.backendservice = backendservice
118398	return c
118399}
118400
118401// RequestId sets the optional parameter "requestId": An optional
118402// request ID to identify requests. Specify a unique request ID so that
118403// if you must retry your request, the server will know to ignore the
118404// request if it has already been completed. For example, consider a
118405// situation where you make an initial request and the request times
118406// out. If you make the request again with the same request ID, the
118407// server can check if original operation with the same request ID was
118408// received, and if so, will ignore the second request. This prevents
118409// clients from accidentally creating duplicate commitments. The request
118410// ID must be a valid UUID with the exception that zero UUID is not
118411// supported ( 00000000-0000-0000-0000-000000000000).
118412func (c *RegionBackendServicesUpdateCall) RequestId(requestId string) *RegionBackendServicesUpdateCall {
118413	c.urlParams_.Set("requestId", requestId)
118414	return c
118415}
118416
118417// Fields allows partial responses to be retrieved. See
118418// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118419// for more information.
118420func (c *RegionBackendServicesUpdateCall) Fields(s ...googleapi.Field) *RegionBackendServicesUpdateCall {
118421	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118422	return c
118423}
118424
118425// Context sets the context to be used in this call's Do method. Any
118426// pending HTTP request will be aborted if the provided context is
118427// canceled.
118428func (c *RegionBackendServicesUpdateCall) Context(ctx context.Context) *RegionBackendServicesUpdateCall {
118429	c.ctx_ = ctx
118430	return c
118431}
118432
118433// Header returns an http.Header that can be modified by the caller to
118434// add HTTP headers to the request.
118435func (c *RegionBackendServicesUpdateCall) Header() http.Header {
118436	if c.header_ == nil {
118437		c.header_ = make(http.Header)
118438	}
118439	return c.header_
118440}
118441
118442func (c *RegionBackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) {
118443	reqHeaders := make(http.Header)
118444	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
118445	for k, v := range c.header_ {
118446		reqHeaders[k] = v
118447	}
118448	reqHeaders.Set("User-Agent", c.s.userAgent())
118449	var body io.Reader = nil
118450	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
118451	if err != nil {
118452		return nil, err
118453	}
118454	reqHeaders.Set("Content-Type", "application/json")
118455	c.urlParams_.Set("alt", alt)
118456	c.urlParams_.Set("prettyPrint", "false")
118457	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}")
118458	urls += "?" + c.urlParams_.Encode()
118459	req, err := http.NewRequest("PUT", urls, body)
118460	if err != nil {
118461		return nil, err
118462	}
118463	req.Header = reqHeaders
118464	googleapi.Expand(req.URL, map[string]string{
118465		"project":        c.project,
118466		"region":         c.region,
118467		"backendService": c.backendService,
118468	})
118469	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118470}
118471
118472// Do executes the "compute.regionBackendServices.update" call.
118473// Exactly one of *Operation or error will be non-nil. Any non-2xx
118474// status code is an error. Response headers are in either
118475// *Operation.ServerResponse.Header or (if a response was returned at
118476// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118477// to check whether the returned error was because
118478// http.StatusNotModified was returned.
118479func (c *RegionBackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118480	gensupport.SetOptions(c.urlParams_, opts...)
118481	res, err := c.doRequest("json")
118482	if res != nil && res.StatusCode == http.StatusNotModified {
118483		if res.Body != nil {
118484			res.Body.Close()
118485		}
118486		return nil, &googleapi.Error{
118487			Code:   res.StatusCode,
118488			Header: res.Header,
118489		}
118490	}
118491	if err != nil {
118492		return nil, err
118493	}
118494	defer googleapi.CloseBody(res)
118495	if err := googleapi.CheckResponse(res); err != nil {
118496		return nil, err
118497	}
118498	ret := &Operation{
118499		ServerResponse: googleapi.ServerResponse{
118500			Header:         res.Header,
118501			HTTPStatusCode: res.StatusCode,
118502		},
118503	}
118504	target := &ret
118505	if err := gensupport.DecodeResponse(target, res); err != nil {
118506		return nil, err
118507	}
118508	return ret, nil
118509	// {
118510	//   "description": "Updates the specified regional BackendService resource with the data included in the request. For more information, see Backend services overview .",
118511	//   "flatPath": "projects/{project}/regions/{region}/backendServices/{backendService}",
118512	//   "httpMethod": "PUT",
118513	//   "id": "compute.regionBackendServices.update",
118514	//   "parameterOrder": [
118515	//     "project",
118516	//     "region",
118517	//     "backendService"
118518	//   ],
118519	//   "parameters": {
118520	//     "backendService": {
118521	//       "description": "Name of the BackendService resource to update.",
118522	//       "location": "path",
118523	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
118524	//       "required": true,
118525	//       "type": "string"
118526	//     },
118527	//     "project": {
118528	//       "description": "Project ID for this request.",
118529	//       "location": "path",
118530	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118531	//       "required": true,
118532	//       "type": "string"
118533	//     },
118534	//     "region": {
118535	//       "description": "Name of the region scoping this request.",
118536	//       "location": "path",
118537	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118538	//       "required": true,
118539	//       "type": "string"
118540	//     },
118541	//     "requestId": {
118542	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
118543	//       "location": "query",
118544	//       "type": "string"
118545	//     }
118546	//   },
118547	//   "path": "projects/{project}/regions/{region}/backendServices/{backendService}",
118548	//   "request": {
118549	//     "$ref": "BackendService"
118550	//   },
118551	//   "response": {
118552	//     "$ref": "Operation"
118553	//   },
118554	//   "scopes": [
118555	//     "https://www.googleapis.com/auth/cloud-platform",
118556	//     "https://www.googleapis.com/auth/compute"
118557	//   ]
118558	// }
118559
118560}
118561
118562// method id "compute.regionCommitments.aggregatedList":
118563
118564type RegionCommitmentsAggregatedListCall struct {
118565	s            *Service
118566	project      string
118567	urlParams_   gensupport.URLParams
118568	ifNoneMatch_ string
118569	ctx_         context.Context
118570	header_      http.Header
118571}
118572
118573// AggregatedList: Retrieves an aggregated list of commitments by
118574// region.
118575//
118576// - project: Project ID for this request.
118577func (r *RegionCommitmentsService) AggregatedList(project string) *RegionCommitmentsAggregatedListCall {
118578	c := &RegionCommitmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118579	c.project = project
118580	return c
118581}
118582
118583// Filter sets the optional parameter "filter": A filter expression that
118584// filters resources listed in the response. The expression must specify
118585// the field name, a comparison operator, and the value that you want to
118586// use for filtering. The value must be a string, a number, or a
118587// boolean. The comparison operator must be either `=`, `!=`, `>`, or
118588// `<`. For example, if you are filtering Compute Engine instances, you
118589// can exclude instances named `example-instance` by specifying `name !=
118590// example-instance`. You can also filter nested fields. For example,
118591// you could specify `scheduling.automaticRestart = false` to include
118592// instances only if they are not scheduled for automatic restarts. You
118593// can use filtering on nested fields to filter based on resource
118594// labels. To filter on multiple expressions, provide each separate
118595// expression within parentheses. For example: ```
118596// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
118597// ``` By default, each expression is an `AND` expression. However, you
118598// can include `AND` and `OR` expressions explicitly. For example: ```
118599// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
118600// AND (scheduling.automaticRestart = true) ```
118601func (c *RegionCommitmentsAggregatedListCall) Filter(filter string) *RegionCommitmentsAggregatedListCall {
118602	c.urlParams_.Set("filter", filter)
118603	return c
118604}
118605
118606// IncludeAllScopes sets the optional parameter "includeAllScopes":
118607// Indicates whether every visible scope for each scope type (zone,
118608// region, global) should be included in the response. For new resource
118609// types added after this field, the flag has no effect as new resource
118610// types will always include every visible scope for each scope type in
118611// response. For resource types which predate this field, if this flag
118612// is omitted or false, only scopes of the scope types where the
118613// resource type is expected to be found will be included.
118614func (c *RegionCommitmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *RegionCommitmentsAggregatedListCall {
118615	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
118616	return c
118617}
118618
118619// MaxResults sets the optional parameter "maxResults": The maximum
118620// number of results per page that should be returned. If the number of
118621// available results is larger than `maxResults`, Compute Engine returns
118622// a `nextPageToken` that can be used to get the next page of results in
118623// subsequent list requests. Acceptable values are `0` to `500`,
118624// inclusive. (Default: `500`)
118625func (c *RegionCommitmentsAggregatedListCall) MaxResults(maxResults int64) *RegionCommitmentsAggregatedListCall {
118626	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
118627	return c
118628}
118629
118630// OrderBy sets the optional parameter "orderBy": Sorts list results by
118631// a certain order. By default, results are returned in alphanumerical
118632// order based on the resource name. You can also sort results in
118633// descending order based on the creation timestamp using
118634// `orderBy="creationTimestamp desc". This sorts results based on the
118635// `creationTimestamp` field in reverse chronological order (newest
118636// result first). Use this to sort resources like operations so that the
118637// newest operation is returned first. Currently, only sorting by `name`
118638// or `creationTimestamp desc` is supported.
118639func (c *RegionCommitmentsAggregatedListCall) OrderBy(orderBy string) *RegionCommitmentsAggregatedListCall {
118640	c.urlParams_.Set("orderBy", orderBy)
118641	return c
118642}
118643
118644// PageToken sets the optional parameter "pageToken": Specifies a page
118645// token to use. Set `pageToken` to the `nextPageToken` returned by a
118646// previous list request to get the next page of results.
118647func (c *RegionCommitmentsAggregatedListCall) PageToken(pageToken string) *RegionCommitmentsAggregatedListCall {
118648	c.urlParams_.Set("pageToken", pageToken)
118649	return c
118650}
118651
118652// ReturnPartialSuccess sets the optional parameter
118653// "returnPartialSuccess": Opt-in for partial success behavior which
118654// provides partial results in case of failure. The default value is
118655// false.
118656func (c *RegionCommitmentsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionCommitmentsAggregatedListCall {
118657	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
118658	return c
118659}
118660
118661// Fields allows partial responses to be retrieved. See
118662// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118663// for more information.
118664func (c *RegionCommitmentsAggregatedListCall) Fields(s ...googleapi.Field) *RegionCommitmentsAggregatedListCall {
118665	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118666	return c
118667}
118668
118669// IfNoneMatch sets the optional parameter which makes the operation
118670// fail if the object's ETag matches the given value. This is useful for
118671// getting updates only after the object has changed since the last
118672// request. Use googleapi.IsNotModified to check whether the response
118673// error from Do is the result of In-None-Match.
118674func (c *RegionCommitmentsAggregatedListCall) IfNoneMatch(entityTag string) *RegionCommitmentsAggregatedListCall {
118675	c.ifNoneMatch_ = entityTag
118676	return c
118677}
118678
118679// Context sets the context to be used in this call's Do method. Any
118680// pending HTTP request will be aborted if the provided context is
118681// canceled.
118682func (c *RegionCommitmentsAggregatedListCall) Context(ctx context.Context) *RegionCommitmentsAggregatedListCall {
118683	c.ctx_ = ctx
118684	return c
118685}
118686
118687// Header returns an http.Header that can be modified by the caller to
118688// add HTTP headers to the request.
118689func (c *RegionCommitmentsAggregatedListCall) Header() http.Header {
118690	if c.header_ == nil {
118691		c.header_ = make(http.Header)
118692	}
118693	return c.header_
118694}
118695
118696func (c *RegionCommitmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
118697	reqHeaders := make(http.Header)
118698	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
118699	for k, v := range c.header_ {
118700		reqHeaders[k] = v
118701	}
118702	reqHeaders.Set("User-Agent", c.s.userAgent())
118703	if c.ifNoneMatch_ != "" {
118704		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
118705	}
118706	var body io.Reader = nil
118707	c.urlParams_.Set("alt", alt)
118708	c.urlParams_.Set("prettyPrint", "false")
118709	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/commitments")
118710	urls += "?" + c.urlParams_.Encode()
118711	req, err := http.NewRequest("GET", urls, body)
118712	if err != nil {
118713		return nil, err
118714	}
118715	req.Header = reqHeaders
118716	googleapi.Expand(req.URL, map[string]string{
118717		"project": c.project,
118718	})
118719	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118720}
118721
118722// Do executes the "compute.regionCommitments.aggregatedList" call.
118723// Exactly one of *CommitmentAggregatedList or error will be non-nil.
118724// Any non-2xx status code is an error. Response headers are in either
118725// *CommitmentAggregatedList.ServerResponse.Header or (if a response was
118726// returned at all) in error.(*googleapi.Error).Header. Use
118727// googleapi.IsNotModified to check whether the returned error was
118728// because http.StatusNotModified was returned.
118729func (c *RegionCommitmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*CommitmentAggregatedList, error) {
118730	gensupport.SetOptions(c.urlParams_, opts...)
118731	res, err := c.doRequest("json")
118732	if res != nil && res.StatusCode == http.StatusNotModified {
118733		if res.Body != nil {
118734			res.Body.Close()
118735		}
118736		return nil, &googleapi.Error{
118737			Code:   res.StatusCode,
118738			Header: res.Header,
118739		}
118740	}
118741	if err != nil {
118742		return nil, err
118743	}
118744	defer googleapi.CloseBody(res)
118745	if err := googleapi.CheckResponse(res); err != nil {
118746		return nil, err
118747	}
118748	ret := &CommitmentAggregatedList{
118749		ServerResponse: googleapi.ServerResponse{
118750			Header:         res.Header,
118751			HTTPStatusCode: res.StatusCode,
118752		},
118753	}
118754	target := &ret
118755	if err := gensupport.DecodeResponse(target, res); err != nil {
118756		return nil, err
118757	}
118758	return ret, nil
118759	// {
118760	//   "description": "Retrieves an aggregated list of commitments by region.",
118761	//   "flatPath": "projects/{project}/aggregated/commitments",
118762	//   "httpMethod": "GET",
118763	//   "id": "compute.regionCommitments.aggregatedList",
118764	//   "parameterOrder": [
118765	//     "project"
118766	//   ],
118767	//   "parameters": {
118768	//     "filter": {
118769	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
118770	//       "location": "query",
118771	//       "type": "string"
118772	//     },
118773	//     "includeAllScopes": {
118774	//       "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.",
118775	//       "location": "query",
118776	//       "type": "boolean"
118777	//     },
118778	//     "maxResults": {
118779	//       "default": "500",
118780	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
118781	//       "format": "uint32",
118782	//       "location": "query",
118783	//       "minimum": "0",
118784	//       "type": "integer"
118785	//     },
118786	//     "orderBy": {
118787	//       "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.",
118788	//       "location": "query",
118789	//       "type": "string"
118790	//     },
118791	//     "pageToken": {
118792	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
118793	//       "location": "query",
118794	//       "type": "string"
118795	//     },
118796	//     "project": {
118797	//       "description": "Project ID for this request.",
118798	//       "location": "path",
118799	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118800	//       "required": true,
118801	//       "type": "string"
118802	//     },
118803	//     "returnPartialSuccess": {
118804	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
118805	//       "location": "query",
118806	//       "type": "boolean"
118807	//     }
118808	//   },
118809	//   "path": "projects/{project}/aggregated/commitments",
118810	//   "response": {
118811	//     "$ref": "CommitmentAggregatedList"
118812	//   },
118813	//   "scopes": [
118814	//     "https://www.googleapis.com/auth/cloud-platform",
118815	//     "https://www.googleapis.com/auth/compute",
118816	//     "https://www.googleapis.com/auth/compute.readonly"
118817	//   ]
118818	// }
118819
118820}
118821
118822// Pages invokes f for each page of results.
118823// A non-nil error returned from f will halt the iteration.
118824// The provided context supersedes any context provided to the Context method.
118825func (c *RegionCommitmentsAggregatedListCall) Pages(ctx context.Context, f func(*CommitmentAggregatedList) error) error {
118826	c.ctx_ = ctx
118827	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
118828	for {
118829		x, err := c.Do()
118830		if err != nil {
118831			return err
118832		}
118833		if err := f(x); err != nil {
118834			return err
118835		}
118836		if x.NextPageToken == "" {
118837			return nil
118838		}
118839		c.PageToken(x.NextPageToken)
118840	}
118841}
118842
118843// method id "compute.regionCommitments.get":
118844
118845type RegionCommitmentsGetCall struct {
118846	s            *Service
118847	project      string
118848	region       string
118849	commitment   string
118850	urlParams_   gensupport.URLParams
118851	ifNoneMatch_ string
118852	ctx_         context.Context
118853	header_      http.Header
118854}
118855
118856// Get: Returns the specified commitment resource. Gets a list of
118857// available commitments by making a list() request.
118858//
118859// - commitment: Name of the commitment to return.
118860// - project: Project ID for this request.
118861// - region: Name of the region for this request.
118862func (r *RegionCommitmentsService) Get(project string, region string, commitment string) *RegionCommitmentsGetCall {
118863	c := &RegionCommitmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118864	c.project = project
118865	c.region = region
118866	c.commitment = commitment
118867	return c
118868}
118869
118870// Fields allows partial responses to be retrieved. See
118871// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118872// for more information.
118873func (c *RegionCommitmentsGetCall) Fields(s ...googleapi.Field) *RegionCommitmentsGetCall {
118874	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118875	return c
118876}
118877
118878// IfNoneMatch sets the optional parameter which makes the operation
118879// fail if the object's ETag matches the given value. This is useful for
118880// getting updates only after the object has changed since the last
118881// request. Use googleapi.IsNotModified to check whether the response
118882// error from Do is the result of In-None-Match.
118883func (c *RegionCommitmentsGetCall) IfNoneMatch(entityTag string) *RegionCommitmentsGetCall {
118884	c.ifNoneMatch_ = entityTag
118885	return c
118886}
118887
118888// Context sets the context to be used in this call's Do method. Any
118889// pending HTTP request will be aborted if the provided context is
118890// canceled.
118891func (c *RegionCommitmentsGetCall) Context(ctx context.Context) *RegionCommitmentsGetCall {
118892	c.ctx_ = ctx
118893	return c
118894}
118895
118896// Header returns an http.Header that can be modified by the caller to
118897// add HTTP headers to the request.
118898func (c *RegionCommitmentsGetCall) Header() http.Header {
118899	if c.header_ == nil {
118900		c.header_ = make(http.Header)
118901	}
118902	return c.header_
118903}
118904
118905func (c *RegionCommitmentsGetCall) doRequest(alt string) (*http.Response, error) {
118906	reqHeaders := make(http.Header)
118907	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
118908	for k, v := range c.header_ {
118909		reqHeaders[k] = v
118910	}
118911	reqHeaders.Set("User-Agent", c.s.userAgent())
118912	if c.ifNoneMatch_ != "" {
118913		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
118914	}
118915	var body io.Reader = nil
118916	c.urlParams_.Set("alt", alt)
118917	c.urlParams_.Set("prettyPrint", "false")
118918	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/commitments/{commitment}")
118919	urls += "?" + c.urlParams_.Encode()
118920	req, err := http.NewRequest("GET", urls, body)
118921	if err != nil {
118922		return nil, err
118923	}
118924	req.Header = reqHeaders
118925	googleapi.Expand(req.URL, map[string]string{
118926		"project":    c.project,
118927		"region":     c.region,
118928		"commitment": c.commitment,
118929	})
118930	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118931}
118932
118933// Do executes the "compute.regionCommitments.get" call.
118934// Exactly one of *Commitment or error will be non-nil. Any non-2xx
118935// status code is an error. Response headers are in either
118936// *Commitment.ServerResponse.Header or (if a response was returned at
118937// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118938// to check whether the returned error was because
118939// http.StatusNotModified was returned.
118940func (c *RegionCommitmentsGetCall) Do(opts ...googleapi.CallOption) (*Commitment, error) {
118941	gensupport.SetOptions(c.urlParams_, opts...)
118942	res, err := c.doRequest("json")
118943	if res != nil && res.StatusCode == http.StatusNotModified {
118944		if res.Body != nil {
118945			res.Body.Close()
118946		}
118947		return nil, &googleapi.Error{
118948			Code:   res.StatusCode,
118949			Header: res.Header,
118950		}
118951	}
118952	if err != nil {
118953		return nil, err
118954	}
118955	defer googleapi.CloseBody(res)
118956	if err := googleapi.CheckResponse(res); err != nil {
118957		return nil, err
118958	}
118959	ret := &Commitment{
118960		ServerResponse: googleapi.ServerResponse{
118961			Header:         res.Header,
118962			HTTPStatusCode: res.StatusCode,
118963		},
118964	}
118965	target := &ret
118966	if err := gensupport.DecodeResponse(target, res); err != nil {
118967		return nil, err
118968	}
118969	return ret, nil
118970	// {
118971	//   "description": "Returns the specified commitment resource. Gets a list of available commitments by making a list() request.",
118972	//   "flatPath": "projects/{project}/regions/{region}/commitments/{commitment}",
118973	//   "httpMethod": "GET",
118974	//   "id": "compute.regionCommitments.get",
118975	//   "parameterOrder": [
118976	//     "project",
118977	//     "region",
118978	//     "commitment"
118979	//   ],
118980	//   "parameters": {
118981	//     "commitment": {
118982	//       "description": "Name of the commitment to return.",
118983	//       "location": "path",
118984	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
118985	//       "required": true,
118986	//       "type": "string"
118987	//     },
118988	//     "project": {
118989	//       "description": "Project ID for this request.",
118990	//       "location": "path",
118991	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118992	//       "required": true,
118993	//       "type": "string"
118994	//     },
118995	//     "region": {
118996	//       "description": "Name of the region for this request.",
118997	//       "location": "path",
118998	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118999	//       "required": true,
119000	//       "type": "string"
119001	//     }
119002	//   },
119003	//   "path": "projects/{project}/regions/{region}/commitments/{commitment}",
119004	//   "response": {
119005	//     "$ref": "Commitment"
119006	//   },
119007	//   "scopes": [
119008	//     "https://www.googleapis.com/auth/cloud-platform",
119009	//     "https://www.googleapis.com/auth/compute",
119010	//     "https://www.googleapis.com/auth/compute.readonly"
119011	//   ]
119012	// }
119013
119014}
119015
119016// method id "compute.regionCommitments.insert":
119017
119018type RegionCommitmentsInsertCall struct {
119019	s          *Service
119020	project    string
119021	region     string
119022	commitment *Commitment
119023	urlParams_ gensupport.URLParams
119024	ctx_       context.Context
119025	header_    http.Header
119026}
119027
119028// Insert: Creates a commitment in the specified project using the data
119029// included in the request.
119030//
119031// - project: Project ID for this request.
119032// - region: Name of the region for this request.
119033func (r *RegionCommitmentsService) Insert(project string, region string, commitment *Commitment) *RegionCommitmentsInsertCall {
119034	c := &RegionCommitmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119035	c.project = project
119036	c.region = region
119037	c.commitment = commitment
119038	return c
119039}
119040
119041// RequestId sets the optional parameter "requestId": An optional
119042// request ID to identify requests. Specify a unique request ID so that
119043// if you must retry your request, the server will know to ignore the
119044// request if it has already been completed. For example, consider a
119045// situation where you make an initial request and the request times
119046// out. If you make the request again with the same request ID, the
119047// server can check if original operation with the same request ID was
119048// received, and if so, will ignore the second request. This prevents
119049// clients from accidentally creating duplicate commitments. The request
119050// ID must be a valid UUID with the exception that zero UUID is not
119051// supported ( 00000000-0000-0000-0000-000000000000).
119052func (c *RegionCommitmentsInsertCall) RequestId(requestId string) *RegionCommitmentsInsertCall {
119053	c.urlParams_.Set("requestId", requestId)
119054	return c
119055}
119056
119057// Fields allows partial responses to be retrieved. See
119058// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119059// for more information.
119060func (c *RegionCommitmentsInsertCall) Fields(s ...googleapi.Field) *RegionCommitmentsInsertCall {
119061	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119062	return c
119063}
119064
119065// Context sets the context to be used in this call's Do method. Any
119066// pending HTTP request will be aborted if the provided context is
119067// canceled.
119068func (c *RegionCommitmentsInsertCall) Context(ctx context.Context) *RegionCommitmentsInsertCall {
119069	c.ctx_ = ctx
119070	return c
119071}
119072
119073// Header returns an http.Header that can be modified by the caller to
119074// add HTTP headers to the request.
119075func (c *RegionCommitmentsInsertCall) Header() http.Header {
119076	if c.header_ == nil {
119077		c.header_ = make(http.Header)
119078	}
119079	return c.header_
119080}
119081
119082func (c *RegionCommitmentsInsertCall) doRequest(alt string) (*http.Response, error) {
119083	reqHeaders := make(http.Header)
119084	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
119085	for k, v := range c.header_ {
119086		reqHeaders[k] = v
119087	}
119088	reqHeaders.Set("User-Agent", c.s.userAgent())
119089	var body io.Reader = nil
119090	body, err := googleapi.WithoutDataWrapper.JSONReader(c.commitment)
119091	if err != nil {
119092		return nil, err
119093	}
119094	reqHeaders.Set("Content-Type", "application/json")
119095	c.urlParams_.Set("alt", alt)
119096	c.urlParams_.Set("prettyPrint", "false")
119097	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/commitments")
119098	urls += "?" + c.urlParams_.Encode()
119099	req, err := http.NewRequest("POST", urls, body)
119100	if err != nil {
119101		return nil, err
119102	}
119103	req.Header = reqHeaders
119104	googleapi.Expand(req.URL, map[string]string{
119105		"project": c.project,
119106		"region":  c.region,
119107	})
119108	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119109}
119110
119111// Do executes the "compute.regionCommitments.insert" call.
119112// Exactly one of *Operation or error will be non-nil. Any non-2xx
119113// status code is an error. Response headers are in either
119114// *Operation.ServerResponse.Header or (if a response was returned at
119115// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119116// to check whether the returned error was because
119117// http.StatusNotModified was returned.
119118func (c *RegionCommitmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119119	gensupport.SetOptions(c.urlParams_, opts...)
119120	res, err := c.doRequest("json")
119121	if res != nil && res.StatusCode == http.StatusNotModified {
119122		if res.Body != nil {
119123			res.Body.Close()
119124		}
119125		return nil, &googleapi.Error{
119126			Code:   res.StatusCode,
119127			Header: res.Header,
119128		}
119129	}
119130	if err != nil {
119131		return nil, err
119132	}
119133	defer googleapi.CloseBody(res)
119134	if err := googleapi.CheckResponse(res); err != nil {
119135		return nil, err
119136	}
119137	ret := &Operation{
119138		ServerResponse: googleapi.ServerResponse{
119139			Header:         res.Header,
119140			HTTPStatusCode: res.StatusCode,
119141		},
119142	}
119143	target := &ret
119144	if err := gensupport.DecodeResponse(target, res); err != nil {
119145		return nil, err
119146	}
119147	return ret, nil
119148	// {
119149	//   "description": "Creates a commitment in the specified project using the data included in the request.",
119150	//   "flatPath": "projects/{project}/regions/{region}/commitments",
119151	//   "httpMethod": "POST",
119152	//   "id": "compute.regionCommitments.insert",
119153	//   "parameterOrder": [
119154	//     "project",
119155	//     "region"
119156	//   ],
119157	//   "parameters": {
119158	//     "project": {
119159	//       "description": "Project ID for this request.",
119160	//       "location": "path",
119161	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119162	//       "required": true,
119163	//       "type": "string"
119164	//     },
119165	//     "region": {
119166	//       "description": "Name of the region for this request.",
119167	//       "location": "path",
119168	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119169	//       "required": true,
119170	//       "type": "string"
119171	//     },
119172	//     "requestId": {
119173	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
119174	//       "location": "query",
119175	//       "type": "string"
119176	//     }
119177	//   },
119178	//   "path": "projects/{project}/regions/{region}/commitments",
119179	//   "request": {
119180	//     "$ref": "Commitment"
119181	//   },
119182	//   "response": {
119183	//     "$ref": "Operation"
119184	//   },
119185	//   "scopes": [
119186	//     "https://www.googleapis.com/auth/cloud-platform",
119187	//     "https://www.googleapis.com/auth/compute"
119188	//   ]
119189	// }
119190
119191}
119192
119193// method id "compute.regionCommitments.list":
119194
119195type RegionCommitmentsListCall struct {
119196	s            *Service
119197	project      string
119198	region       string
119199	urlParams_   gensupport.URLParams
119200	ifNoneMatch_ string
119201	ctx_         context.Context
119202	header_      http.Header
119203}
119204
119205// List: Retrieves a list of commitments contained within the specified
119206// region.
119207//
119208// - project: Project ID for this request.
119209// - region: Name of the region for this request.
119210func (r *RegionCommitmentsService) List(project string, region string) *RegionCommitmentsListCall {
119211	c := &RegionCommitmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119212	c.project = project
119213	c.region = region
119214	return c
119215}
119216
119217// Filter sets the optional parameter "filter": A filter expression that
119218// filters resources listed in the response. The expression must specify
119219// the field name, a comparison operator, and the value that you want to
119220// use for filtering. The value must be a string, a number, or a
119221// boolean. The comparison operator must be either `=`, `!=`, `>`, or
119222// `<`. For example, if you are filtering Compute Engine instances, you
119223// can exclude instances named `example-instance` by specifying `name !=
119224// example-instance`. You can also filter nested fields. For example,
119225// you could specify `scheduling.automaticRestart = false` to include
119226// instances only if they are not scheduled for automatic restarts. You
119227// can use filtering on nested fields to filter based on resource
119228// labels. To filter on multiple expressions, provide each separate
119229// expression within parentheses. For example: ```
119230// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
119231// ``` By default, each expression is an `AND` expression. However, you
119232// can include `AND` and `OR` expressions explicitly. For example: ```
119233// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
119234// AND (scheduling.automaticRestart = true) ```
119235func (c *RegionCommitmentsListCall) Filter(filter string) *RegionCommitmentsListCall {
119236	c.urlParams_.Set("filter", filter)
119237	return c
119238}
119239
119240// MaxResults sets the optional parameter "maxResults": The maximum
119241// number of results per page that should be returned. If the number of
119242// available results is larger than `maxResults`, Compute Engine returns
119243// a `nextPageToken` that can be used to get the next page of results in
119244// subsequent list requests. Acceptable values are `0` to `500`,
119245// inclusive. (Default: `500`)
119246func (c *RegionCommitmentsListCall) MaxResults(maxResults int64) *RegionCommitmentsListCall {
119247	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
119248	return c
119249}
119250
119251// OrderBy sets the optional parameter "orderBy": Sorts list results by
119252// a certain order. By default, results are returned in alphanumerical
119253// order based on the resource name. You can also sort results in
119254// descending order based on the creation timestamp using
119255// `orderBy="creationTimestamp desc". This sorts results based on the
119256// `creationTimestamp` field in reverse chronological order (newest
119257// result first). Use this to sort resources like operations so that the
119258// newest operation is returned first. Currently, only sorting by `name`
119259// or `creationTimestamp desc` is supported.
119260func (c *RegionCommitmentsListCall) OrderBy(orderBy string) *RegionCommitmentsListCall {
119261	c.urlParams_.Set("orderBy", orderBy)
119262	return c
119263}
119264
119265// PageToken sets the optional parameter "pageToken": Specifies a page
119266// token to use. Set `pageToken` to the `nextPageToken` returned by a
119267// previous list request to get the next page of results.
119268func (c *RegionCommitmentsListCall) PageToken(pageToken string) *RegionCommitmentsListCall {
119269	c.urlParams_.Set("pageToken", pageToken)
119270	return c
119271}
119272
119273// ReturnPartialSuccess sets the optional parameter
119274// "returnPartialSuccess": Opt-in for partial success behavior which
119275// provides partial results in case of failure. The default value is
119276// false.
119277func (c *RegionCommitmentsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionCommitmentsListCall {
119278	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
119279	return c
119280}
119281
119282// Fields allows partial responses to be retrieved. See
119283// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119284// for more information.
119285func (c *RegionCommitmentsListCall) Fields(s ...googleapi.Field) *RegionCommitmentsListCall {
119286	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119287	return c
119288}
119289
119290// IfNoneMatch sets the optional parameter which makes the operation
119291// fail if the object's ETag matches the given value. This is useful for
119292// getting updates only after the object has changed since the last
119293// request. Use googleapi.IsNotModified to check whether the response
119294// error from Do is the result of In-None-Match.
119295func (c *RegionCommitmentsListCall) IfNoneMatch(entityTag string) *RegionCommitmentsListCall {
119296	c.ifNoneMatch_ = entityTag
119297	return c
119298}
119299
119300// Context sets the context to be used in this call's Do method. Any
119301// pending HTTP request will be aborted if the provided context is
119302// canceled.
119303func (c *RegionCommitmentsListCall) Context(ctx context.Context) *RegionCommitmentsListCall {
119304	c.ctx_ = ctx
119305	return c
119306}
119307
119308// Header returns an http.Header that can be modified by the caller to
119309// add HTTP headers to the request.
119310func (c *RegionCommitmentsListCall) Header() http.Header {
119311	if c.header_ == nil {
119312		c.header_ = make(http.Header)
119313	}
119314	return c.header_
119315}
119316
119317func (c *RegionCommitmentsListCall) doRequest(alt string) (*http.Response, error) {
119318	reqHeaders := make(http.Header)
119319	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
119320	for k, v := range c.header_ {
119321		reqHeaders[k] = v
119322	}
119323	reqHeaders.Set("User-Agent", c.s.userAgent())
119324	if c.ifNoneMatch_ != "" {
119325		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
119326	}
119327	var body io.Reader = nil
119328	c.urlParams_.Set("alt", alt)
119329	c.urlParams_.Set("prettyPrint", "false")
119330	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/commitments")
119331	urls += "?" + c.urlParams_.Encode()
119332	req, err := http.NewRequest("GET", urls, body)
119333	if err != nil {
119334		return nil, err
119335	}
119336	req.Header = reqHeaders
119337	googleapi.Expand(req.URL, map[string]string{
119338		"project": c.project,
119339		"region":  c.region,
119340	})
119341	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119342}
119343
119344// Do executes the "compute.regionCommitments.list" call.
119345// Exactly one of *CommitmentList or error will be non-nil. Any non-2xx
119346// status code is an error. Response headers are in either
119347// *CommitmentList.ServerResponse.Header or (if a response was returned
119348// at all) in error.(*googleapi.Error).Header. Use
119349// googleapi.IsNotModified to check whether the returned error was
119350// because http.StatusNotModified was returned.
119351func (c *RegionCommitmentsListCall) Do(opts ...googleapi.CallOption) (*CommitmentList, error) {
119352	gensupport.SetOptions(c.urlParams_, opts...)
119353	res, err := c.doRequest("json")
119354	if res != nil && res.StatusCode == http.StatusNotModified {
119355		if res.Body != nil {
119356			res.Body.Close()
119357		}
119358		return nil, &googleapi.Error{
119359			Code:   res.StatusCode,
119360			Header: res.Header,
119361		}
119362	}
119363	if err != nil {
119364		return nil, err
119365	}
119366	defer googleapi.CloseBody(res)
119367	if err := googleapi.CheckResponse(res); err != nil {
119368		return nil, err
119369	}
119370	ret := &CommitmentList{
119371		ServerResponse: googleapi.ServerResponse{
119372			Header:         res.Header,
119373			HTTPStatusCode: res.StatusCode,
119374		},
119375	}
119376	target := &ret
119377	if err := gensupport.DecodeResponse(target, res); err != nil {
119378		return nil, err
119379	}
119380	return ret, nil
119381	// {
119382	//   "description": "Retrieves a list of commitments contained within the specified region.",
119383	//   "flatPath": "projects/{project}/regions/{region}/commitments",
119384	//   "httpMethod": "GET",
119385	//   "id": "compute.regionCommitments.list",
119386	//   "parameterOrder": [
119387	//     "project",
119388	//     "region"
119389	//   ],
119390	//   "parameters": {
119391	//     "filter": {
119392	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
119393	//       "location": "query",
119394	//       "type": "string"
119395	//     },
119396	//     "maxResults": {
119397	//       "default": "500",
119398	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
119399	//       "format": "uint32",
119400	//       "location": "query",
119401	//       "minimum": "0",
119402	//       "type": "integer"
119403	//     },
119404	//     "orderBy": {
119405	//       "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.",
119406	//       "location": "query",
119407	//       "type": "string"
119408	//     },
119409	//     "pageToken": {
119410	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
119411	//       "location": "query",
119412	//       "type": "string"
119413	//     },
119414	//     "project": {
119415	//       "description": "Project ID for this request.",
119416	//       "location": "path",
119417	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119418	//       "required": true,
119419	//       "type": "string"
119420	//     },
119421	//     "region": {
119422	//       "description": "Name of the region for this request.",
119423	//       "location": "path",
119424	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119425	//       "required": true,
119426	//       "type": "string"
119427	//     },
119428	//     "returnPartialSuccess": {
119429	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
119430	//       "location": "query",
119431	//       "type": "boolean"
119432	//     }
119433	//   },
119434	//   "path": "projects/{project}/regions/{region}/commitments",
119435	//   "response": {
119436	//     "$ref": "CommitmentList"
119437	//   },
119438	//   "scopes": [
119439	//     "https://www.googleapis.com/auth/cloud-platform",
119440	//     "https://www.googleapis.com/auth/compute",
119441	//     "https://www.googleapis.com/auth/compute.readonly"
119442	//   ]
119443	// }
119444
119445}
119446
119447// Pages invokes f for each page of results.
119448// A non-nil error returned from f will halt the iteration.
119449// The provided context supersedes any context provided to the Context method.
119450func (c *RegionCommitmentsListCall) Pages(ctx context.Context, f func(*CommitmentList) error) error {
119451	c.ctx_ = ctx
119452	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
119453	for {
119454		x, err := c.Do()
119455		if err != nil {
119456			return err
119457		}
119458		if err := f(x); err != nil {
119459			return err
119460		}
119461		if x.NextPageToken == "" {
119462			return nil
119463		}
119464		c.PageToken(x.NextPageToken)
119465	}
119466}
119467
119468// method id "compute.regionDiskTypes.get":
119469
119470type RegionDiskTypesGetCall struct {
119471	s            *Service
119472	project      string
119473	region       string
119474	diskType     string
119475	urlParams_   gensupport.URLParams
119476	ifNoneMatch_ string
119477	ctx_         context.Context
119478	header_      http.Header
119479}
119480
119481// Get: Returns the specified regional disk type. Gets a list of
119482// available disk types by making a list() request.
119483//
119484// - diskType: Name of the disk type to return.
119485// - project: Project ID for this request.
119486// - region: The name of the region for this request.
119487func (r *RegionDiskTypesService) Get(project string, region string, diskType string) *RegionDiskTypesGetCall {
119488	c := &RegionDiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119489	c.project = project
119490	c.region = region
119491	c.diskType = diskType
119492	return c
119493}
119494
119495// Fields allows partial responses to be retrieved. See
119496// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119497// for more information.
119498func (c *RegionDiskTypesGetCall) Fields(s ...googleapi.Field) *RegionDiskTypesGetCall {
119499	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119500	return c
119501}
119502
119503// IfNoneMatch sets the optional parameter which makes the operation
119504// fail if the object's ETag matches the given value. This is useful for
119505// getting updates only after the object has changed since the last
119506// request. Use googleapi.IsNotModified to check whether the response
119507// error from Do is the result of In-None-Match.
119508func (c *RegionDiskTypesGetCall) IfNoneMatch(entityTag string) *RegionDiskTypesGetCall {
119509	c.ifNoneMatch_ = entityTag
119510	return c
119511}
119512
119513// Context sets the context to be used in this call's Do method. Any
119514// pending HTTP request will be aborted if the provided context is
119515// canceled.
119516func (c *RegionDiskTypesGetCall) Context(ctx context.Context) *RegionDiskTypesGetCall {
119517	c.ctx_ = ctx
119518	return c
119519}
119520
119521// Header returns an http.Header that can be modified by the caller to
119522// add HTTP headers to the request.
119523func (c *RegionDiskTypesGetCall) Header() http.Header {
119524	if c.header_ == nil {
119525		c.header_ = make(http.Header)
119526	}
119527	return c.header_
119528}
119529
119530func (c *RegionDiskTypesGetCall) doRequest(alt string) (*http.Response, error) {
119531	reqHeaders := make(http.Header)
119532	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
119533	for k, v := range c.header_ {
119534		reqHeaders[k] = v
119535	}
119536	reqHeaders.Set("User-Agent", c.s.userAgent())
119537	if c.ifNoneMatch_ != "" {
119538		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
119539	}
119540	var body io.Reader = nil
119541	c.urlParams_.Set("alt", alt)
119542	c.urlParams_.Set("prettyPrint", "false")
119543	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/diskTypes/{diskType}")
119544	urls += "?" + c.urlParams_.Encode()
119545	req, err := http.NewRequest("GET", urls, body)
119546	if err != nil {
119547		return nil, err
119548	}
119549	req.Header = reqHeaders
119550	googleapi.Expand(req.URL, map[string]string{
119551		"project":  c.project,
119552		"region":   c.region,
119553		"diskType": c.diskType,
119554	})
119555	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119556}
119557
119558// Do executes the "compute.regionDiskTypes.get" call.
119559// Exactly one of *DiskType or error will be non-nil. Any non-2xx status
119560// code is an error. Response headers are in either
119561// *DiskType.ServerResponse.Header or (if a response was returned at
119562// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119563// to check whether the returned error was because
119564// http.StatusNotModified was returned.
119565func (c *RegionDiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) {
119566	gensupport.SetOptions(c.urlParams_, opts...)
119567	res, err := c.doRequest("json")
119568	if res != nil && res.StatusCode == http.StatusNotModified {
119569		if res.Body != nil {
119570			res.Body.Close()
119571		}
119572		return nil, &googleapi.Error{
119573			Code:   res.StatusCode,
119574			Header: res.Header,
119575		}
119576	}
119577	if err != nil {
119578		return nil, err
119579	}
119580	defer googleapi.CloseBody(res)
119581	if err := googleapi.CheckResponse(res); err != nil {
119582		return nil, err
119583	}
119584	ret := &DiskType{
119585		ServerResponse: googleapi.ServerResponse{
119586			Header:         res.Header,
119587			HTTPStatusCode: res.StatusCode,
119588		},
119589	}
119590	target := &ret
119591	if err := gensupport.DecodeResponse(target, res); err != nil {
119592		return nil, err
119593	}
119594	return ret, nil
119595	// {
119596	//   "description": "Returns the specified regional disk type. Gets a list of available disk types by making a list() request.",
119597	//   "flatPath": "projects/{project}/regions/{region}/diskTypes/{diskType}",
119598	//   "httpMethod": "GET",
119599	//   "id": "compute.regionDiskTypes.get",
119600	//   "parameterOrder": [
119601	//     "project",
119602	//     "region",
119603	//     "diskType"
119604	//   ],
119605	//   "parameters": {
119606	//     "diskType": {
119607	//       "description": "Name of the disk type to return.",
119608	//       "location": "path",
119609	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
119610	//       "required": true,
119611	//       "type": "string"
119612	//     },
119613	//     "project": {
119614	//       "description": "Project ID for this request.",
119615	//       "location": "path",
119616	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119617	//       "required": true,
119618	//       "type": "string"
119619	//     },
119620	//     "region": {
119621	//       "description": "The name of the region for this request.",
119622	//       "location": "path",
119623	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119624	//       "required": true,
119625	//       "type": "string"
119626	//     }
119627	//   },
119628	//   "path": "projects/{project}/regions/{region}/diskTypes/{diskType}",
119629	//   "response": {
119630	//     "$ref": "DiskType"
119631	//   },
119632	//   "scopes": [
119633	//     "https://www.googleapis.com/auth/cloud-platform",
119634	//     "https://www.googleapis.com/auth/compute",
119635	//     "https://www.googleapis.com/auth/compute.readonly"
119636	//   ]
119637	// }
119638
119639}
119640
119641// method id "compute.regionDiskTypes.list":
119642
119643type RegionDiskTypesListCall struct {
119644	s            *Service
119645	project      string
119646	region       string
119647	urlParams_   gensupport.URLParams
119648	ifNoneMatch_ string
119649	ctx_         context.Context
119650	header_      http.Header
119651}
119652
119653// List: Retrieves a list of regional disk types available to the
119654// specified project.
119655//
119656// - project: Project ID for this request.
119657// - region: The name of the region for this request.
119658func (r *RegionDiskTypesService) List(project string, region string) *RegionDiskTypesListCall {
119659	c := &RegionDiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119660	c.project = project
119661	c.region = region
119662	return c
119663}
119664
119665// Filter sets the optional parameter "filter": A filter expression that
119666// filters resources listed in the response. The expression must specify
119667// the field name, a comparison operator, and the value that you want to
119668// use for filtering. The value must be a string, a number, or a
119669// boolean. The comparison operator must be either `=`, `!=`, `>`, or
119670// `<`. For example, if you are filtering Compute Engine instances, you
119671// can exclude instances named `example-instance` by specifying `name !=
119672// example-instance`. You can also filter nested fields. For example,
119673// you could specify `scheduling.automaticRestart = false` to include
119674// instances only if they are not scheduled for automatic restarts. You
119675// can use filtering on nested fields to filter based on resource
119676// labels. To filter on multiple expressions, provide each separate
119677// expression within parentheses. For example: ```
119678// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
119679// ``` By default, each expression is an `AND` expression. However, you
119680// can include `AND` and `OR` expressions explicitly. For example: ```
119681// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
119682// AND (scheduling.automaticRestart = true) ```
119683func (c *RegionDiskTypesListCall) Filter(filter string) *RegionDiskTypesListCall {
119684	c.urlParams_.Set("filter", filter)
119685	return c
119686}
119687
119688// MaxResults sets the optional parameter "maxResults": The maximum
119689// number of results per page that should be returned. If the number of
119690// available results is larger than `maxResults`, Compute Engine returns
119691// a `nextPageToken` that can be used to get the next page of results in
119692// subsequent list requests. Acceptable values are `0` to `500`,
119693// inclusive. (Default: `500`)
119694func (c *RegionDiskTypesListCall) MaxResults(maxResults int64) *RegionDiskTypesListCall {
119695	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
119696	return c
119697}
119698
119699// OrderBy sets the optional parameter "orderBy": Sorts list results by
119700// a certain order. By default, results are returned in alphanumerical
119701// order based on the resource name. You can also sort results in
119702// descending order based on the creation timestamp using
119703// `orderBy="creationTimestamp desc". This sorts results based on the
119704// `creationTimestamp` field in reverse chronological order (newest
119705// result first). Use this to sort resources like operations so that the
119706// newest operation is returned first. Currently, only sorting by `name`
119707// or `creationTimestamp desc` is supported.
119708func (c *RegionDiskTypesListCall) OrderBy(orderBy string) *RegionDiskTypesListCall {
119709	c.urlParams_.Set("orderBy", orderBy)
119710	return c
119711}
119712
119713// PageToken sets the optional parameter "pageToken": Specifies a page
119714// token to use. Set `pageToken` to the `nextPageToken` returned by a
119715// previous list request to get the next page of results.
119716func (c *RegionDiskTypesListCall) PageToken(pageToken string) *RegionDiskTypesListCall {
119717	c.urlParams_.Set("pageToken", pageToken)
119718	return c
119719}
119720
119721// ReturnPartialSuccess sets the optional parameter
119722// "returnPartialSuccess": Opt-in for partial success behavior which
119723// provides partial results in case of failure. The default value is
119724// false.
119725func (c *RegionDiskTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionDiskTypesListCall {
119726	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
119727	return c
119728}
119729
119730// Fields allows partial responses to be retrieved. See
119731// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119732// for more information.
119733func (c *RegionDiskTypesListCall) Fields(s ...googleapi.Field) *RegionDiskTypesListCall {
119734	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119735	return c
119736}
119737
119738// IfNoneMatch sets the optional parameter which makes the operation
119739// fail if the object's ETag matches the given value. This is useful for
119740// getting updates only after the object has changed since the last
119741// request. Use googleapi.IsNotModified to check whether the response
119742// error from Do is the result of In-None-Match.
119743func (c *RegionDiskTypesListCall) IfNoneMatch(entityTag string) *RegionDiskTypesListCall {
119744	c.ifNoneMatch_ = entityTag
119745	return c
119746}
119747
119748// Context sets the context to be used in this call's Do method. Any
119749// pending HTTP request will be aborted if the provided context is
119750// canceled.
119751func (c *RegionDiskTypesListCall) Context(ctx context.Context) *RegionDiskTypesListCall {
119752	c.ctx_ = ctx
119753	return c
119754}
119755
119756// Header returns an http.Header that can be modified by the caller to
119757// add HTTP headers to the request.
119758func (c *RegionDiskTypesListCall) Header() http.Header {
119759	if c.header_ == nil {
119760		c.header_ = make(http.Header)
119761	}
119762	return c.header_
119763}
119764
119765func (c *RegionDiskTypesListCall) doRequest(alt string) (*http.Response, error) {
119766	reqHeaders := make(http.Header)
119767	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
119768	for k, v := range c.header_ {
119769		reqHeaders[k] = v
119770	}
119771	reqHeaders.Set("User-Agent", c.s.userAgent())
119772	if c.ifNoneMatch_ != "" {
119773		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
119774	}
119775	var body io.Reader = nil
119776	c.urlParams_.Set("alt", alt)
119777	c.urlParams_.Set("prettyPrint", "false")
119778	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/diskTypes")
119779	urls += "?" + c.urlParams_.Encode()
119780	req, err := http.NewRequest("GET", urls, body)
119781	if err != nil {
119782		return nil, err
119783	}
119784	req.Header = reqHeaders
119785	googleapi.Expand(req.URL, map[string]string{
119786		"project": c.project,
119787		"region":  c.region,
119788	})
119789	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119790}
119791
119792// Do executes the "compute.regionDiskTypes.list" call.
119793// Exactly one of *RegionDiskTypeList or error will be non-nil. Any
119794// non-2xx status code is an error. Response headers are in either
119795// *RegionDiskTypeList.ServerResponse.Header or (if a response was
119796// returned at all) in error.(*googleapi.Error).Header. Use
119797// googleapi.IsNotModified to check whether the returned error was
119798// because http.StatusNotModified was returned.
119799func (c *RegionDiskTypesListCall) Do(opts ...googleapi.CallOption) (*RegionDiskTypeList, error) {
119800	gensupport.SetOptions(c.urlParams_, opts...)
119801	res, err := c.doRequest("json")
119802	if res != nil && res.StatusCode == http.StatusNotModified {
119803		if res.Body != nil {
119804			res.Body.Close()
119805		}
119806		return nil, &googleapi.Error{
119807			Code:   res.StatusCode,
119808			Header: res.Header,
119809		}
119810	}
119811	if err != nil {
119812		return nil, err
119813	}
119814	defer googleapi.CloseBody(res)
119815	if err := googleapi.CheckResponse(res); err != nil {
119816		return nil, err
119817	}
119818	ret := &RegionDiskTypeList{
119819		ServerResponse: googleapi.ServerResponse{
119820			Header:         res.Header,
119821			HTTPStatusCode: res.StatusCode,
119822		},
119823	}
119824	target := &ret
119825	if err := gensupport.DecodeResponse(target, res); err != nil {
119826		return nil, err
119827	}
119828	return ret, nil
119829	// {
119830	//   "description": "Retrieves a list of regional disk types available to the specified project.",
119831	//   "flatPath": "projects/{project}/regions/{region}/diskTypes",
119832	//   "httpMethod": "GET",
119833	//   "id": "compute.regionDiskTypes.list",
119834	//   "parameterOrder": [
119835	//     "project",
119836	//     "region"
119837	//   ],
119838	//   "parameters": {
119839	//     "filter": {
119840	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
119841	//       "location": "query",
119842	//       "type": "string"
119843	//     },
119844	//     "maxResults": {
119845	//       "default": "500",
119846	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
119847	//       "format": "uint32",
119848	//       "location": "query",
119849	//       "minimum": "0",
119850	//       "type": "integer"
119851	//     },
119852	//     "orderBy": {
119853	//       "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.",
119854	//       "location": "query",
119855	//       "type": "string"
119856	//     },
119857	//     "pageToken": {
119858	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
119859	//       "location": "query",
119860	//       "type": "string"
119861	//     },
119862	//     "project": {
119863	//       "description": "Project ID for this request.",
119864	//       "location": "path",
119865	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119866	//       "required": true,
119867	//       "type": "string"
119868	//     },
119869	//     "region": {
119870	//       "description": "The name of the region for this request.",
119871	//       "location": "path",
119872	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119873	//       "required": true,
119874	//       "type": "string"
119875	//     },
119876	//     "returnPartialSuccess": {
119877	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
119878	//       "location": "query",
119879	//       "type": "boolean"
119880	//     }
119881	//   },
119882	//   "path": "projects/{project}/regions/{region}/diskTypes",
119883	//   "response": {
119884	//     "$ref": "RegionDiskTypeList"
119885	//   },
119886	//   "scopes": [
119887	//     "https://www.googleapis.com/auth/cloud-platform",
119888	//     "https://www.googleapis.com/auth/compute",
119889	//     "https://www.googleapis.com/auth/compute.readonly"
119890	//   ]
119891	// }
119892
119893}
119894
119895// Pages invokes f for each page of results.
119896// A non-nil error returned from f will halt the iteration.
119897// The provided context supersedes any context provided to the Context method.
119898func (c *RegionDiskTypesListCall) Pages(ctx context.Context, f func(*RegionDiskTypeList) error) error {
119899	c.ctx_ = ctx
119900	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
119901	for {
119902		x, err := c.Do()
119903		if err != nil {
119904			return err
119905		}
119906		if err := f(x); err != nil {
119907			return err
119908		}
119909		if x.NextPageToken == "" {
119910			return nil
119911		}
119912		c.PageToken(x.NextPageToken)
119913	}
119914}
119915
119916// method id "compute.regionDisks.addResourcePolicies":
119917
119918type RegionDisksAddResourcePoliciesCall struct {
119919	s                                     *Service
119920	project                               string
119921	region                                string
119922	disk                                  string
119923	regiondisksaddresourcepoliciesrequest *RegionDisksAddResourcePoliciesRequest
119924	urlParams_                            gensupport.URLParams
119925	ctx_                                  context.Context
119926	header_                               http.Header
119927}
119928
119929// AddResourcePolicies: Adds existing resource policies to a regional
119930// disk. You can only add one policy which will be applied to this disk
119931// for scheduling snapshot creation.
119932//
119933// - disk: The disk name for this request.
119934// - project: Project ID for this request.
119935// - region: The name of the region for this request.
119936func (r *RegionDisksService) AddResourcePolicies(project string, region string, disk string, regiondisksaddresourcepoliciesrequest *RegionDisksAddResourcePoliciesRequest) *RegionDisksAddResourcePoliciesCall {
119937	c := &RegionDisksAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119938	c.project = project
119939	c.region = region
119940	c.disk = disk
119941	c.regiondisksaddresourcepoliciesrequest = regiondisksaddresourcepoliciesrequest
119942	return c
119943}
119944
119945// RequestId sets the optional parameter "requestId": An optional
119946// request ID to identify requests. Specify a unique request ID so that
119947// if you must retry your request, the server will know to ignore the
119948// request if it has already been completed. For example, consider a
119949// situation where you make an initial request and the request times
119950// out. If you make the request again with the same request ID, the
119951// server can check if original operation with the same request ID was
119952// received, and if so, will ignore the second request. This prevents
119953// clients from accidentally creating duplicate commitments. The request
119954// ID must be a valid UUID with the exception that zero UUID is not
119955// supported ( 00000000-0000-0000-0000-000000000000).
119956func (c *RegionDisksAddResourcePoliciesCall) RequestId(requestId string) *RegionDisksAddResourcePoliciesCall {
119957	c.urlParams_.Set("requestId", requestId)
119958	return c
119959}
119960
119961// Fields allows partial responses to be retrieved. See
119962// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119963// for more information.
119964func (c *RegionDisksAddResourcePoliciesCall) Fields(s ...googleapi.Field) *RegionDisksAddResourcePoliciesCall {
119965	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119966	return c
119967}
119968
119969// Context sets the context to be used in this call's Do method. Any
119970// pending HTTP request will be aborted if the provided context is
119971// canceled.
119972func (c *RegionDisksAddResourcePoliciesCall) Context(ctx context.Context) *RegionDisksAddResourcePoliciesCall {
119973	c.ctx_ = ctx
119974	return c
119975}
119976
119977// Header returns an http.Header that can be modified by the caller to
119978// add HTTP headers to the request.
119979func (c *RegionDisksAddResourcePoliciesCall) Header() http.Header {
119980	if c.header_ == nil {
119981		c.header_ = make(http.Header)
119982	}
119983	return c.header_
119984}
119985
119986func (c *RegionDisksAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
119987	reqHeaders := make(http.Header)
119988	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
119989	for k, v := range c.header_ {
119990		reqHeaders[k] = v
119991	}
119992	reqHeaders.Set("User-Agent", c.s.userAgent())
119993	var body io.Reader = nil
119994	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksaddresourcepoliciesrequest)
119995	if err != nil {
119996		return nil, err
119997	}
119998	reqHeaders.Set("Content-Type", "application/json")
119999	c.urlParams_.Set("alt", alt)
120000	c.urlParams_.Set("prettyPrint", "false")
120001	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies")
120002	urls += "?" + c.urlParams_.Encode()
120003	req, err := http.NewRequest("POST", urls, body)
120004	if err != nil {
120005		return nil, err
120006	}
120007	req.Header = reqHeaders
120008	googleapi.Expand(req.URL, map[string]string{
120009		"project": c.project,
120010		"region":  c.region,
120011		"disk":    c.disk,
120012	})
120013	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120014}
120015
120016// Do executes the "compute.regionDisks.addResourcePolicies" call.
120017// Exactly one of *Operation or error will be non-nil. Any non-2xx
120018// status code is an error. Response headers are in either
120019// *Operation.ServerResponse.Header or (if a response was returned at
120020// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120021// to check whether the returned error was because
120022// http.StatusNotModified was returned.
120023func (c *RegionDisksAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
120024	gensupport.SetOptions(c.urlParams_, opts...)
120025	res, err := c.doRequest("json")
120026	if res != nil && res.StatusCode == http.StatusNotModified {
120027		if res.Body != nil {
120028			res.Body.Close()
120029		}
120030		return nil, &googleapi.Error{
120031			Code:   res.StatusCode,
120032			Header: res.Header,
120033		}
120034	}
120035	if err != nil {
120036		return nil, err
120037	}
120038	defer googleapi.CloseBody(res)
120039	if err := googleapi.CheckResponse(res); err != nil {
120040		return nil, err
120041	}
120042	ret := &Operation{
120043		ServerResponse: googleapi.ServerResponse{
120044			Header:         res.Header,
120045			HTTPStatusCode: res.StatusCode,
120046		},
120047	}
120048	target := &ret
120049	if err := gensupport.DecodeResponse(target, res); err != nil {
120050		return nil, err
120051	}
120052	return ret, nil
120053	// {
120054	//   "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.",
120055	//   "flatPath": "projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies",
120056	//   "httpMethod": "POST",
120057	//   "id": "compute.regionDisks.addResourcePolicies",
120058	//   "parameterOrder": [
120059	//     "project",
120060	//     "region",
120061	//     "disk"
120062	//   ],
120063	//   "parameters": {
120064	//     "disk": {
120065	//       "description": "The disk name for this request.",
120066	//       "location": "path",
120067	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
120068	//       "required": true,
120069	//       "type": "string"
120070	//     },
120071	//     "project": {
120072	//       "description": "Project ID for this request.",
120073	//       "location": "path",
120074	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120075	//       "required": true,
120076	//       "type": "string"
120077	//     },
120078	//     "region": {
120079	//       "description": "The name of the region for this request.",
120080	//       "location": "path",
120081	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120082	//       "required": true,
120083	//       "type": "string"
120084	//     },
120085	//     "requestId": {
120086	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
120087	//       "location": "query",
120088	//       "type": "string"
120089	//     }
120090	//   },
120091	//   "path": "projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies",
120092	//   "request": {
120093	//     "$ref": "RegionDisksAddResourcePoliciesRequest"
120094	//   },
120095	//   "response": {
120096	//     "$ref": "Operation"
120097	//   },
120098	//   "scopes": [
120099	//     "https://www.googleapis.com/auth/cloud-platform",
120100	//     "https://www.googleapis.com/auth/compute"
120101	//   ]
120102	// }
120103
120104}
120105
120106// method id "compute.regionDisks.createSnapshot":
120107
120108type RegionDisksCreateSnapshotCall struct {
120109	s          *Service
120110	project    string
120111	region     string
120112	disk       string
120113	snapshot   *Snapshot
120114	urlParams_ gensupport.URLParams
120115	ctx_       context.Context
120116	header_    http.Header
120117}
120118
120119// CreateSnapshot: Creates a snapshot of this regional disk.
120120//
120121// - disk: Name of the regional persistent disk to snapshot.
120122// - project: Project ID for this request.
120123// - region: Name of the region for this request.
120124func (r *RegionDisksService) CreateSnapshot(project string, region string, disk string, snapshot *Snapshot) *RegionDisksCreateSnapshotCall {
120125	c := &RegionDisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120126	c.project = project
120127	c.region = region
120128	c.disk = disk
120129	c.snapshot = snapshot
120130	return c
120131}
120132
120133// RequestId sets the optional parameter "requestId": An optional
120134// request ID to identify requests. Specify a unique request ID so that
120135// if you must retry your request, the server will know to ignore the
120136// request if it has already been completed. For example, consider a
120137// situation where you make an initial request and the request times
120138// out. If you make the request again with the same request ID, the
120139// server can check if original operation with the same request ID was
120140// received, and if so, will ignore the second request. This prevents
120141// clients from accidentally creating duplicate commitments. The request
120142// ID must be a valid UUID with the exception that zero UUID is not
120143// supported ( 00000000-0000-0000-0000-000000000000).
120144func (c *RegionDisksCreateSnapshotCall) RequestId(requestId string) *RegionDisksCreateSnapshotCall {
120145	c.urlParams_.Set("requestId", requestId)
120146	return c
120147}
120148
120149// Fields allows partial responses to be retrieved. See
120150// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120151// for more information.
120152func (c *RegionDisksCreateSnapshotCall) Fields(s ...googleapi.Field) *RegionDisksCreateSnapshotCall {
120153	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120154	return c
120155}
120156
120157// Context sets the context to be used in this call's Do method. Any
120158// pending HTTP request will be aborted if the provided context is
120159// canceled.
120160func (c *RegionDisksCreateSnapshotCall) Context(ctx context.Context) *RegionDisksCreateSnapshotCall {
120161	c.ctx_ = ctx
120162	return c
120163}
120164
120165// Header returns an http.Header that can be modified by the caller to
120166// add HTTP headers to the request.
120167func (c *RegionDisksCreateSnapshotCall) Header() http.Header {
120168	if c.header_ == nil {
120169		c.header_ = make(http.Header)
120170	}
120171	return c.header_
120172}
120173
120174func (c *RegionDisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) {
120175	reqHeaders := make(http.Header)
120176	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
120177	for k, v := range c.header_ {
120178		reqHeaders[k] = v
120179	}
120180	reqHeaders.Set("User-Agent", c.s.userAgent())
120181	var body io.Reader = nil
120182	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot)
120183	if err != nil {
120184		return nil, err
120185	}
120186	reqHeaders.Set("Content-Type", "application/json")
120187	c.urlParams_.Set("alt", alt)
120188	c.urlParams_.Set("prettyPrint", "false")
120189	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}/createSnapshot")
120190	urls += "?" + c.urlParams_.Encode()
120191	req, err := http.NewRequest("POST", urls, body)
120192	if err != nil {
120193		return nil, err
120194	}
120195	req.Header = reqHeaders
120196	googleapi.Expand(req.URL, map[string]string{
120197		"project": c.project,
120198		"region":  c.region,
120199		"disk":    c.disk,
120200	})
120201	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120202}
120203
120204// Do executes the "compute.regionDisks.createSnapshot" call.
120205// Exactly one of *Operation or error will be non-nil. Any non-2xx
120206// status code is an error. Response headers are in either
120207// *Operation.ServerResponse.Header or (if a response was returned at
120208// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120209// to check whether the returned error was because
120210// http.StatusNotModified was returned.
120211func (c *RegionDisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
120212	gensupport.SetOptions(c.urlParams_, opts...)
120213	res, err := c.doRequest("json")
120214	if res != nil && res.StatusCode == http.StatusNotModified {
120215		if res.Body != nil {
120216			res.Body.Close()
120217		}
120218		return nil, &googleapi.Error{
120219			Code:   res.StatusCode,
120220			Header: res.Header,
120221		}
120222	}
120223	if err != nil {
120224		return nil, err
120225	}
120226	defer googleapi.CloseBody(res)
120227	if err := googleapi.CheckResponse(res); err != nil {
120228		return nil, err
120229	}
120230	ret := &Operation{
120231		ServerResponse: googleapi.ServerResponse{
120232			Header:         res.Header,
120233			HTTPStatusCode: res.StatusCode,
120234		},
120235	}
120236	target := &ret
120237	if err := gensupport.DecodeResponse(target, res); err != nil {
120238		return nil, err
120239	}
120240	return ret, nil
120241	// {
120242	//   "description": "Creates a snapshot of this regional disk.",
120243	//   "flatPath": "projects/{project}/regions/{region}/disks/{disk}/createSnapshot",
120244	//   "httpMethod": "POST",
120245	//   "id": "compute.regionDisks.createSnapshot",
120246	//   "parameterOrder": [
120247	//     "project",
120248	//     "region",
120249	//     "disk"
120250	//   ],
120251	//   "parameters": {
120252	//     "disk": {
120253	//       "description": "Name of the regional persistent disk to snapshot.",
120254	//       "location": "path",
120255	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
120256	//       "required": true,
120257	//       "type": "string"
120258	//     },
120259	//     "project": {
120260	//       "description": "Project ID for this request.",
120261	//       "location": "path",
120262	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120263	//       "required": true,
120264	//       "type": "string"
120265	//     },
120266	//     "region": {
120267	//       "description": "Name of the region for this request.",
120268	//       "location": "path",
120269	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120270	//       "required": true,
120271	//       "type": "string"
120272	//     },
120273	//     "requestId": {
120274	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
120275	//       "location": "query",
120276	//       "type": "string"
120277	//     }
120278	//   },
120279	//   "path": "projects/{project}/regions/{region}/disks/{disk}/createSnapshot",
120280	//   "request": {
120281	//     "$ref": "Snapshot"
120282	//   },
120283	//   "response": {
120284	//     "$ref": "Operation"
120285	//   },
120286	//   "scopes": [
120287	//     "https://www.googleapis.com/auth/cloud-platform",
120288	//     "https://www.googleapis.com/auth/compute"
120289	//   ]
120290	// }
120291
120292}
120293
120294// method id "compute.regionDisks.delete":
120295
120296type RegionDisksDeleteCall struct {
120297	s          *Service
120298	project    string
120299	region     string
120300	disk       string
120301	urlParams_ gensupport.URLParams
120302	ctx_       context.Context
120303	header_    http.Header
120304}
120305
120306// Delete: Deletes the specified regional persistent disk. Deleting a
120307// regional disk removes all the replicas of its data permanently and is
120308// irreversible. However, deleting a disk does not delete any snapshots
120309// previously made from the disk. You must separately delete snapshots.
120310//
120311// - disk: Name of the regional persistent disk to delete.
120312// - project: Project ID for this request.
120313// - region: Name of the region for this request.
120314func (r *RegionDisksService) Delete(project string, region string, disk string) *RegionDisksDeleteCall {
120315	c := &RegionDisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120316	c.project = project
120317	c.region = region
120318	c.disk = disk
120319	return c
120320}
120321
120322// RequestId sets the optional parameter "requestId": An optional
120323// request ID to identify requests. Specify a unique request ID so that
120324// if you must retry your request, the server will know to ignore the
120325// request if it has already been completed. For example, consider a
120326// situation where you make an initial request and the request times
120327// out. If you make the request again with the same request ID, the
120328// server can check if original operation with the same request ID was
120329// received, and if so, will ignore the second request. This prevents
120330// clients from accidentally creating duplicate commitments. The request
120331// ID must be a valid UUID with the exception that zero UUID is not
120332// supported ( 00000000-0000-0000-0000-000000000000).
120333func (c *RegionDisksDeleteCall) RequestId(requestId string) *RegionDisksDeleteCall {
120334	c.urlParams_.Set("requestId", requestId)
120335	return c
120336}
120337
120338// Fields allows partial responses to be retrieved. See
120339// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120340// for more information.
120341func (c *RegionDisksDeleteCall) Fields(s ...googleapi.Field) *RegionDisksDeleteCall {
120342	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120343	return c
120344}
120345
120346// Context sets the context to be used in this call's Do method. Any
120347// pending HTTP request will be aborted if the provided context is
120348// canceled.
120349func (c *RegionDisksDeleteCall) Context(ctx context.Context) *RegionDisksDeleteCall {
120350	c.ctx_ = ctx
120351	return c
120352}
120353
120354// Header returns an http.Header that can be modified by the caller to
120355// add HTTP headers to the request.
120356func (c *RegionDisksDeleteCall) Header() http.Header {
120357	if c.header_ == nil {
120358		c.header_ = make(http.Header)
120359	}
120360	return c.header_
120361}
120362
120363func (c *RegionDisksDeleteCall) doRequest(alt string) (*http.Response, error) {
120364	reqHeaders := make(http.Header)
120365	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
120366	for k, v := range c.header_ {
120367		reqHeaders[k] = v
120368	}
120369	reqHeaders.Set("User-Agent", c.s.userAgent())
120370	var body io.Reader = nil
120371	c.urlParams_.Set("alt", alt)
120372	c.urlParams_.Set("prettyPrint", "false")
120373	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}")
120374	urls += "?" + c.urlParams_.Encode()
120375	req, err := http.NewRequest("DELETE", urls, body)
120376	if err != nil {
120377		return nil, err
120378	}
120379	req.Header = reqHeaders
120380	googleapi.Expand(req.URL, map[string]string{
120381		"project": c.project,
120382		"region":  c.region,
120383		"disk":    c.disk,
120384	})
120385	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120386}
120387
120388// Do executes the "compute.regionDisks.delete" call.
120389// Exactly one of *Operation or error will be non-nil. Any non-2xx
120390// status code is an error. Response headers are in either
120391// *Operation.ServerResponse.Header or (if a response was returned at
120392// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120393// to check whether the returned error was because
120394// http.StatusNotModified was returned.
120395func (c *RegionDisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
120396	gensupport.SetOptions(c.urlParams_, opts...)
120397	res, err := c.doRequest("json")
120398	if res != nil && res.StatusCode == http.StatusNotModified {
120399		if res.Body != nil {
120400			res.Body.Close()
120401		}
120402		return nil, &googleapi.Error{
120403			Code:   res.StatusCode,
120404			Header: res.Header,
120405		}
120406	}
120407	if err != nil {
120408		return nil, err
120409	}
120410	defer googleapi.CloseBody(res)
120411	if err := googleapi.CheckResponse(res); err != nil {
120412		return nil, err
120413	}
120414	ret := &Operation{
120415		ServerResponse: googleapi.ServerResponse{
120416			Header:         res.Header,
120417			HTTPStatusCode: res.StatusCode,
120418		},
120419	}
120420	target := &ret
120421	if err := gensupport.DecodeResponse(target, res); err != nil {
120422		return nil, err
120423	}
120424	return ret, nil
120425	// {
120426	//   "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.",
120427	//   "flatPath": "projects/{project}/regions/{region}/disks/{disk}",
120428	//   "httpMethod": "DELETE",
120429	//   "id": "compute.regionDisks.delete",
120430	//   "parameterOrder": [
120431	//     "project",
120432	//     "region",
120433	//     "disk"
120434	//   ],
120435	//   "parameters": {
120436	//     "disk": {
120437	//       "description": "Name of the regional persistent disk to delete.",
120438	//       "location": "path",
120439	//       "required": true,
120440	//       "type": "string"
120441	//     },
120442	//     "project": {
120443	//       "description": "Project ID for this request.",
120444	//       "location": "path",
120445	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120446	//       "required": true,
120447	//       "type": "string"
120448	//     },
120449	//     "region": {
120450	//       "description": "Name of the region for this request.",
120451	//       "location": "path",
120452	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120453	//       "required": true,
120454	//       "type": "string"
120455	//     },
120456	//     "requestId": {
120457	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
120458	//       "location": "query",
120459	//       "type": "string"
120460	//     }
120461	//   },
120462	//   "path": "projects/{project}/regions/{region}/disks/{disk}",
120463	//   "response": {
120464	//     "$ref": "Operation"
120465	//   },
120466	//   "scopes": [
120467	//     "https://www.googleapis.com/auth/cloud-platform",
120468	//     "https://www.googleapis.com/auth/compute"
120469	//   ]
120470	// }
120471
120472}
120473
120474// method id "compute.regionDisks.get":
120475
120476type RegionDisksGetCall struct {
120477	s            *Service
120478	project      string
120479	region       string
120480	disk         string
120481	urlParams_   gensupport.URLParams
120482	ifNoneMatch_ string
120483	ctx_         context.Context
120484	header_      http.Header
120485}
120486
120487// Get: Returns a specified regional persistent disk.
120488//
120489// - disk: Name of the regional persistent disk to return.
120490// - project: Project ID for this request.
120491// - region: Name of the region for this request.
120492func (r *RegionDisksService) Get(project string, region string, disk string) *RegionDisksGetCall {
120493	c := &RegionDisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120494	c.project = project
120495	c.region = region
120496	c.disk = disk
120497	return c
120498}
120499
120500// Fields allows partial responses to be retrieved. See
120501// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120502// for more information.
120503func (c *RegionDisksGetCall) Fields(s ...googleapi.Field) *RegionDisksGetCall {
120504	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120505	return c
120506}
120507
120508// IfNoneMatch sets the optional parameter which makes the operation
120509// fail if the object's ETag matches the given value. This is useful for
120510// getting updates only after the object has changed since the last
120511// request. Use googleapi.IsNotModified to check whether the response
120512// error from Do is the result of In-None-Match.
120513func (c *RegionDisksGetCall) IfNoneMatch(entityTag string) *RegionDisksGetCall {
120514	c.ifNoneMatch_ = entityTag
120515	return c
120516}
120517
120518// Context sets the context to be used in this call's Do method. Any
120519// pending HTTP request will be aborted if the provided context is
120520// canceled.
120521func (c *RegionDisksGetCall) Context(ctx context.Context) *RegionDisksGetCall {
120522	c.ctx_ = ctx
120523	return c
120524}
120525
120526// Header returns an http.Header that can be modified by the caller to
120527// add HTTP headers to the request.
120528func (c *RegionDisksGetCall) Header() http.Header {
120529	if c.header_ == nil {
120530		c.header_ = make(http.Header)
120531	}
120532	return c.header_
120533}
120534
120535func (c *RegionDisksGetCall) doRequest(alt string) (*http.Response, error) {
120536	reqHeaders := make(http.Header)
120537	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
120538	for k, v := range c.header_ {
120539		reqHeaders[k] = v
120540	}
120541	reqHeaders.Set("User-Agent", c.s.userAgent())
120542	if c.ifNoneMatch_ != "" {
120543		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
120544	}
120545	var body io.Reader = nil
120546	c.urlParams_.Set("alt", alt)
120547	c.urlParams_.Set("prettyPrint", "false")
120548	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}")
120549	urls += "?" + c.urlParams_.Encode()
120550	req, err := http.NewRequest("GET", urls, body)
120551	if err != nil {
120552		return nil, err
120553	}
120554	req.Header = reqHeaders
120555	googleapi.Expand(req.URL, map[string]string{
120556		"project": c.project,
120557		"region":  c.region,
120558		"disk":    c.disk,
120559	})
120560	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120561}
120562
120563// Do executes the "compute.regionDisks.get" call.
120564// Exactly one of *Disk or error will be non-nil. Any non-2xx status
120565// code is an error. Response headers are in either
120566// *Disk.ServerResponse.Header or (if a response was returned at all) in
120567// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
120568// whether the returned error was because http.StatusNotModified was
120569// returned.
120570func (c *RegionDisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) {
120571	gensupport.SetOptions(c.urlParams_, opts...)
120572	res, err := c.doRequest("json")
120573	if res != nil && res.StatusCode == http.StatusNotModified {
120574		if res.Body != nil {
120575			res.Body.Close()
120576		}
120577		return nil, &googleapi.Error{
120578			Code:   res.StatusCode,
120579			Header: res.Header,
120580		}
120581	}
120582	if err != nil {
120583		return nil, err
120584	}
120585	defer googleapi.CloseBody(res)
120586	if err := googleapi.CheckResponse(res); err != nil {
120587		return nil, err
120588	}
120589	ret := &Disk{
120590		ServerResponse: googleapi.ServerResponse{
120591			Header:         res.Header,
120592			HTTPStatusCode: res.StatusCode,
120593		},
120594	}
120595	target := &ret
120596	if err := gensupport.DecodeResponse(target, res); err != nil {
120597		return nil, err
120598	}
120599	return ret, nil
120600	// {
120601	//   "description": "Returns a specified regional persistent disk.",
120602	//   "flatPath": "projects/{project}/regions/{region}/disks/{disk}",
120603	//   "httpMethod": "GET",
120604	//   "id": "compute.regionDisks.get",
120605	//   "parameterOrder": [
120606	//     "project",
120607	//     "region",
120608	//     "disk"
120609	//   ],
120610	//   "parameters": {
120611	//     "disk": {
120612	//       "description": "Name of the regional persistent disk to return.",
120613	//       "location": "path",
120614	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
120615	//       "required": true,
120616	//       "type": "string"
120617	//     },
120618	//     "project": {
120619	//       "description": "Project ID for this request.",
120620	//       "location": "path",
120621	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120622	//       "required": true,
120623	//       "type": "string"
120624	//     },
120625	//     "region": {
120626	//       "description": "Name of the region for this request.",
120627	//       "location": "path",
120628	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120629	//       "required": true,
120630	//       "type": "string"
120631	//     }
120632	//   },
120633	//   "path": "projects/{project}/regions/{region}/disks/{disk}",
120634	//   "response": {
120635	//     "$ref": "Disk"
120636	//   },
120637	//   "scopes": [
120638	//     "https://www.googleapis.com/auth/cloud-platform",
120639	//     "https://www.googleapis.com/auth/compute",
120640	//     "https://www.googleapis.com/auth/compute.readonly"
120641	//   ]
120642	// }
120643
120644}
120645
120646// method id "compute.regionDisks.getIamPolicy":
120647
120648type RegionDisksGetIamPolicyCall struct {
120649	s            *Service
120650	project      string
120651	region       string
120652	resource     string
120653	urlParams_   gensupport.URLParams
120654	ifNoneMatch_ string
120655	ctx_         context.Context
120656	header_      http.Header
120657}
120658
120659// GetIamPolicy: Gets the access control policy for a resource. May be
120660// empty if no such policy or resource exists.
120661//
120662// - project: Project ID for this request.
120663// - region: The name of the region for this request.
120664// - resource: Name or id of the resource for this request.
120665func (r *RegionDisksService) GetIamPolicy(project string, region string, resource string) *RegionDisksGetIamPolicyCall {
120666	c := &RegionDisksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120667	c.project = project
120668	c.region = region
120669	c.resource = resource
120670	return c
120671}
120672
120673// OptionsRequestedPolicyVersion sets the optional parameter
120674// "optionsRequestedPolicyVersion": Requested IAM Policy version.
120675func (c *RegionDisksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *RegionDisksGetIamPolicyCall {
120676	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
120677	return c
120678}
120679
120680// Fields allows partial responses to be retrieved. See
120681// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120682// for more information.
120683func (c *RegionDisksGetIamPolicyCall) Fields(s ...googleapi.Field) *RegionDisksGetIamPolicyCall {
120684	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120685	return c
120686}
120687
120688// IfNoneMatch sets the optional parameter which makes the operation
120689// fail if the object's ETag matches the given value. This is useful for
120690// getting updates only after the object has changed since the last
120691// request. Use googleapi.IsNotModified to check whether the response
120692// error from Do is the result of In-None-Match.
120693func (c *RegionDisksGetIamPolicyCall) IfNoneMatch(entityTag string) *RegionDisksGetIamPolicyCall {
120694	c.ifNoneMatch_ = entityTag
120695	return c
120696}
120697
120698// Context sets the context to be used in this call's Do method. Any
120699// pending HTTP request will be aborted if the provided context is
120700// canceled.
120701func (c *RegionDisksGetIamPolicyCall) Context(ctx context.Context) *RegionDisksGetIamPolicyCall {
120702	c.ctx_ = ctx
120703	return c
120704}
120705
120706// Header returns an http.Header that can be modified by the caller to
120707// add HTTP headers to the request.
120708func (c *RegionDisksGetIamPolicyCall) Header() http.Header {
120709	if c.header_ == nil {
120710		c.header_ = make(http.Header)
120711	}
120712	return c.header_
120713}
120714
120715func (c *RegionDisksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
120716	reqHeaders := make(http.Header)
120717	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
120718	for k, v := range c.header_ {
120719		reqHeaders[k] = v
120720	}
120721	reqHeaders.Set("User-Agent", c.s.userAgent())
120722	if c.ifNoneMatch_ != "" {
120723		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
120724	}
120725	var body io.Reader = nil
120726	c.urlParams_.Set("alt", alt)
120727	c.urlParams_.Set("prettyPrint", "false")
120728	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{resource}/getIamPolicy")
120729	urls += "?" + c.urlParams_.Encode()
120730	req, err := http.NewRequest("GET", urls, body)
120731	if err != nil {
120732		return nil, err
120733	}
120734	req.Header = reqHeaders
120735	googleapi.Expand(req.URL, map[string]string{
120736		"project":  c.project,
120737		"region":   c.region,
120738		"resource": c.resource,
120739	})
120740	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120741}
120742
120743// Do executes the "compute.regionDisks.getIamPolicy" call.
120744// Exactly one of *Policy or error will be non-nil. Any non-2xx status
120745// code is an error. Response headers are in either
120746// *Policy.ServerResponse.Header or (if a response was returned at all)
120747// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
120748// check whether the returned error was because http.StatusNotModified
120749// was returned.
120750func (c *RegionDisksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
120751	gensupport.SetOptions(c.urlParams_, opts...)
120752	res, err := c.doRequest("json")
120753	if res != nil && res.StatusCode == http.StatusNotModified {
120754		if res.Body != nil {
120755			res.Body.Close()
120756		}
120757		return nil, &googleapi.Error{
120758			Code:   res.StatusCode,
120759			Header: res.Header,
120760		}
120761	}
120762	if err != nil {
120763		return nil, err
120764	}
120765	defer googleapi.CloseBody(res)
120766	if err := googleapi.CheckResponse(res); err != nil {
120767		return nil, err
120768	}
120769	ret := &Policy{
120770		ServerResponse: googleapi.ServerResponse{
120771			Header:         res.Header,
120772			HTTPStatusCode: res.StatusCode,
120773		},
120774	}
120775	target := &ret
120776	if err := gensupport.DecodeResponse(target, res); err != nil {
120777		return nil, err
120778	}
120779	return ret, nil
120780	// {
120781	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
120782	//   "flatPath": "projects/{project}/regions/{region}/disks/{resource}/getIamPolicy",
120783	//   "httpMethod": "GET",
120784	//   "id": "compute.regionDisks.getIamPolicy",
120785	//   "parameterOrder": [
120786	//     "project",
120787	//     "region",
120788	//     "resource"
120789	//   ],
120790	//   "parameters": {
120791	//     "optionsRequestedPolicyVersion": {
120792	//       "description": "Requested IAM Policy version.",
120793	//       "format": "int32",
120794	//       "location": "query",
120795	//       "type": "integer"
120796	//     },
120797	//     "project": {
120798	//       "description": "Project ID for this request.",
120799	//       "location": "path",
120800	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120801	//       "required": true,
120802	//       "type": "string"
120803	//     },
120804	//     "region": {
120805	//       "description": "The name of the region for this request.",
120806	//       "location": "path",
120807	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120808	//       "required": true,
120809	//       "type": "string"
120810	//     },
120811	//     "resource": {
120812	//       "description": "Name or id of the resource for this request.",
120813	//       "location": "path",
120814	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
120815	//       "required": true,
120816	//       "type": "string"
120817	//     }
120818	//   },
120819	//   "path": "projects/{project}/regions/{region}/disks/{resource}/getIamPolicy",
120820	//   "response": {
120821	//     "$ref": "Policy"
120822	//   },
120823	//   "scopes": [
120824	//     "https://www.googleapis.com/auth/cloud-platform",
120825	//     "https://www.googleapis.com/auth/compute",
120826	//     "https://www.googleapis.com/auth/compute.readonly"
120827	//   ]
120828	// }
120829
120830}
120831
120832// method id "compute.regionDisks.insert":
120833
120834type RegionDisksInsertCall struct {
120835	s          *Service
120836	project    string
120837	region     string
120838	disk       *Disk
120839	urlParams_ gensupport.URLParams
120840	ctx_       context.Context
120841	header_    http.Header
120842}
120843
120844// Insert: Creates a persistent regional disk in the specified project
120845// using the data included in the request.
120846//
120847// - project: Project ID for this request.
120848// - region: Name of the region for this request.
120849func (r *RegionDisksService) Insert(project string, region string, disk *Disk) *RegionDisksInsertCall {
120850	c := &RegionDisksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120851	c.project = project
120852	c.region = region
120853	c.disk = disk
120854	return c
120855}
120856
120857// RequestId sets the optional parameter "requestId": An optional
120858// request ID to identify requests. Specify a unique request ID so that
120859// if you must retry your request, the server will know to ignore the
120860// request if it has already been completed. For example, consider a
120861// situation where you make an initial request and the request times
120862// out. If you make the request again with the same request ID, the
120863// server can check if original operation with the same request ID was
120864// received, and if so, will ignore the second request. This prevents
120865// clients from accidentally creating duplicate commitments. The request
120866// ID must be a valid UUID with the exception that zero UUID is not
120867// supported ( 00000000-0000-0000-0000-000000000000).
120868func (c *RegionDisksInsertCall) RequestId(requestId string) *RegionDisksInsertCall {
120869	c.urlParams_.Set("requestId", requestId)
120870	return c
120871}
120872
120873// SourceImage sets the optional parameter "sourceImage": Source image
120874// to restore onto a disk. This field is optional.
120875func (c *RegionDisksInsertCall) SourceImage(sourceImage string) *RegionDisksInsertCall {
120876	c.urlParams_.Set("sourceImage", sourceImage)
120877	return c
120878}
120879
120880// Fields allows partial responses to be retrieved. See
120881// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120882// for more information.
120883func (c *RegionDisksInsertCall) Fields(s ...googleapi.Field) *RegionDisksInsertCall {
120884	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120885	return c
120886}
120887
120888// Context sets the context to be used in this call's Do method. Any
120889// pending HTTP request will be aborted if the provided context is
120890// canceled.
120891func (c *RegionDisksInsertCall) Context(ctx context.Context) *RegionDisksInsertCall {
120892	c.ctx_ = ctx
120893	return c
120894}
120895
120896// Header returns an http.Header that can be modified by the caller to
120897// add HTTP headers to the request.
120898func (c *RegionDisksInsertCall) Header() http.Header {
120899	if c.header_ == nil {
120900		c.header_ = make(http.Header)
120901	}
120902	return c.header_
120903}
120904
120905func (c *RegionDisksInsertCall) doRequest(alt string) (*http.Response, error) {
120906	reqHeaders := make(http.Header)
120907	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
120908	for k, v := range c.header_ {
120909		reqHeaders[k] = v
120910	}
120911	reqHeaders.Set("User-Agent", c.s.userAgent())
120912	var body io.Reader = nil
120913	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk)
120914	if err != nil {
120915		return nil, err
120916	}
120917	reqHeaders.Set("Content-Type", "application/json")
120918	c.urlParams_.Set("alt", alt)
120919	c.urlParams_.Set("prettyPrint", "false")
120920	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks")
120921	urls += "?" + c.urlParams_.Encode()
120922	req, err := http.NewRequest("POST", urls, body)
120923	if err != nil {
120924		return nil, err
120925	}
120926	req.Header = reqHeaders
120927	googleapi.Expand(req.URL, map[string]string{
120928		"project": c.project,
120929		"region":  c.region,
120930	})
120931	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120932}
120933
120934// Do executes the "compute.regionDisks.insert" call.
120935// Exactly one of *Operation or error will be non-nil. Any non-2xx
120936// status code is an error. Response headers are in either
120937// *Operation.ServerResponse.Header or (if a response was returned at
120938// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120939// to check whether the returned error was because
120940// http.StatusNotModified was returned.
120941func (c *RegionDisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
120942	gensupport.SetOptions(c.urlParams_, opts...)
120943	res, err := c.doRequest("json")
120944	if res != nil && res.StatusCode == http.StatusNotModified {
120945		if res.Body != nil {
120946			res.Body.Close()
120947		}
120948		return nil, &googleapi.Error{
120949			Code:   res.StatusCode,
120950			Header: res.Header,
120951		}
120952	}
120953	if err != nil {
120954		return nil, err
120955	}
120956	defer googleapi.CloseBody(res)
120957	if err := googleapi.CheckResponse(res); err != nil {
120958		return nil, err
120959	}
120960	ret := &Operation{
120961		ServerResponse: googleapi.ServerResponse{
120962			Header:         res.Header,
120963			HTTPStatusCode: res.StatusCode,
120964		},
120965	}
120966	target := &ret
120967	if err := gensupport.DecodeResponse(target, res); err != nil {
120968		return nil, err
120969	}
120970	return ret, nil
120971	// {
120972	//   "description": "Creates a persistent regional disk in the specified project using the data included in the request.",
120973	//   "flatPath": "projects/{project}/regions/{region}/disks",
120974	//   "httpMethod": "POST",
120975	//   "id": "compute.regionDisks.insert",
120976	//   "parameterOrder": [
120977	//     "project",
120978	//     "region"
120979	//   ],
120980	//   "parameters": {
120981	//     "project": {
120982	//       "description": "Project ID for this request.",
120983	//       "location": "path",
120984	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120985	//       "required": true,
120986	//       "type": "string"
120987	//     },
120988	//     "region": {
120989	//       "description": "Name of the region for this request.",
120990	//       "location": "path",
120991	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120992	//       "required": true,
120993	//       "type": "string"
120994	//     },
120995	//     "requestId": {
120996	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
120997	//       "location": "query",
120998	//       "type": "string"
120999	//     },
121000	//     "sourceImage": {
121001	//       "description": "Source image to restore onto a disk. This field is optional.",
121002	//       "location": "query",
121003	//       "type": "string"
121004	//     }
121005	//   },
121006	//   "path": "projects/{project}/regions/{region}/disks",
121007	//   "request": {
121008	//     "$ref": "Disk"
121009	//   },
121010	//   "response": {
121011	//     "$ref": "Operation"
121012	//   },
121013	//   "scopes": [
121014	//     "https://www.googleapis.com/auth/cloud-platform",
121015	//     "https://www.googleapis.com/auth/compute"
121016	//   ]
121017	// }
121018
121019}
121020
121021// method id "compute.regionDisks.list":
121022
121023type RegionDisksListCall struct {
121024	s            *Service
121025	project      string
121026	region       string
121027	urlParams_   gensupport.URLParams
121028	ifNoneMatch_ string
121029	ctx_         context.Context
121030	header_      http.Header
121031}
121032
121033// List: Retrieves the list of persistent disks contained within the
121034// specified region.
121035//
121036// - project: Project ID for this request.
121037// - region: Name of the region for this request.
121038func (r *RegionDisksService) List(project string, region string) *RegionDisksListCall {
121039	c := &RegionDisksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121040	c.project = project
121041	c.region = region
121042	return c
121043}
121044
121045// Filter sets the optional parameter "filter": A filter expression that
121046// filters resources listed in the response. The expression must specify
121047// the field name, a comparison operator, and the value that you want to
121048// use for filtering. The value must be a string, a number, or a
121049// boolean. The comparison operator must be either `=`, `!=`, `>`, or
121050// `<`. For example, if you are filtering Compute Engine instances, you
121051// can exclude instances named `example-instance` by specifying `name !=
121052// example-instance`. You can also filter nested fields. For example,
121053// you could specify `scheduling.automaticRestart = false` to include
121054// instances only if they are not scheduled for automatic restarts. You
121055// can use filtering on nested fields to filter based on resource
121056// labels. To filter on multiple expressions, provide each separate
121057// expression within parentheses. For example: ```
121058// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
121059// ``` By default, each expression is an `AND` expression. However, you
121060// can include `AND` and `OR` expressions explicitly. For example: ```
121061// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
121062// AND (scheduling.automaticRestart = true) ```
121063func (c *RegionDisksListCall) Filter(filter string) *RegionDisksListCall {
121064	c.urlParams_.Set("filter", filter)
121065	return c
121066}
121067
121068// MaxResults sets the optional parameter "maxResults": The maximum
121069// number of results per page that should be returned. If the number of
121070// available results is larger than `maxResults`, Compute Engine returns
121071// a `nextPageToken` that can be used to get the next page of results in
121072// subsequent list requests. Acceptable values are `0` to `500`,
121073// inclusive. (Default: `500`)
121074func (c *RegionDisksListCall) MaxResults(maxResults int64) *RegionDisksListCall {
121075	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
121076	return c
121077}
121078
121079// OrderBy sets the optional parameter "orderBy": Sorts list results by
121080// a certain order. By default, results are returned in alphanumerical
121081// order based on the resource name. You can also sort results in
121082// descending order based on the creation timestamp using
121083// `orderBy="creationTimestamp desc". This sorts results based on the
121084// `creationTimestamp` field in reverse chronological order (newest
121085// result first). Use this to sort resources like operations so that the
121086// newest operation is returned first. Currently, only sorting by `name`
121087// or `creationTimestamp desc` is supported.
121088func (c *RegionDisksListCall) OrderBy(orderBy string) *RegionDisksListCall {
121089	c.urlParams_.Set("orderBy", orderBy)
121090	return c
121091}
121092
121093// PageToken sets the optional parameter "pageToken": Specifies a page
121094// token to use. Set `pageToken` to the `nextPageToken` returned by a
121095// previous list request to get the next page of results.
121096func (c *RegionDisksListCall) PageToken(pageToken string) *RegionDisksListCall {
121097	c.urlParams_.Set("pageToken", pageToken)
121098	return c
121099}
121100
121101// ReturnPartialSuccess sets the optional parameter
121102// "returnPartialSuccess": Opt-in for partial success behavior which
121103// provides partial results in case of failure. The default value is
121104// false.
121105func (c *RegionDisksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionDisksListCall {
121106	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
121107	return c
121108}
121109
121110// Fields allows partial responses to be retrieved. See
121111// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121112// for more information.
121113func (c *RegionDisksListCall) Fields(s ...googleapi.Field) *RegionDisksListCall {
121114	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121115	return c
121116}
121117
121118// IfNoneMatch sets the optional parameter which makes the operation
121119// fail if the object's ETag matches the given value. This is useful for
121120// getting updates only after the object has changed since the last
121121// request. Use googleapi.IsNotModified to check whether the response
121122// error from Do is the result of In-None-Match.
121123func (c *RegionDisksListCall) IfNoneMatch(entityTag string) *RegionDisksListCall {
121124	c.ifNoneMatch_ = entityTag
121125	return c
121126}
121127
121128// Context sets the context to be used in this call's Do method. Any
121129// pending HTTP request will be aborted if the provided context is
121130// canceled.
121131func (c *RegionDisksListCall) Context(ctx context.Context) *RegionDisksListCall {
121132	c.ctx_ = ctx
121133	return c
121134}
121135
121136// Header returns an http.Header that can be modified by the caller to
121137// add HTTP headers to the request.
121138func (c *RegionDisksListCall) Header() http.Header {
121139	if c.header_ == nil {
121140		c.header_ = make(http.Header)
121141	}
121142	return c.header_
121143}
121144
121145func (c *RegionDisksListCall) doRequest(alt string) (*http.Response, error) {
121146	reqHeaders := make(http.Header)
121147	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
121148	for k, v := range c.header_ {
121149		reqHeaders[k] = v
121150	}
121151	reqHeaders.Set("User-Agent", c.s.userAgent())
121152	if c.ifNoneMatch_ != "" {
121153		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
121154	}
121155	var body io.Reader = nil
121156	c.urlParams_.Set("alt", alt)
121157	c.urlParams_.Set("prettyPrint", "false")
121158	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks")
121159	urls += "?" + c.urlParams_.Encode()
121160	req, err := http.NewRequest("GET", urls, body)
121161	if err != nil {
121162		return nil, err
121163	}
121164	req.Header = reqHeaders
121165	googleapi.Expand(req.URL, map[string]string{
121166		"project": c.project,
121167		"region":  c.region,
121168	})
121169	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121170}
121171
121172// Do executes the "compute.regionDisks.list" call.
121173// Exactly one of *DiskList or error will be non-nil. Any non-2xx status
121174// code is an error. Response headers are in either
121175// *DiskList.ServerResponse.Header or (if a response was returned at
121176// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121177// to check whether the returned error was because
121178// http.StatusNotModified was returned.
121179func (c *RegionDisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error) {
121180	gensupport.SetOptions(c.urlParams_, opts...)
121181	res, err := c.doRequest("json")
121182	if res != nil && res.StatusCode == http.StatusNotModified {
121183		if res.Body != nil {
121184			res.Body.Close()
121185		}
121186		return nil, &googleapi.Error{
121187			Code:   res.StatusCode,
121188			Header: res.Header,
121189		}
121190	}
121191	if err != nil {
121192		return nil, err
121193	}
121194	defer googleapi.CloseBody(res)
121195	if err := googleapi.CheckResponse(res); err != nil {
121196		return nil, err
121197	}
121198	ret := &DiskList{
121199		ServerResponse: googleapi.ServerResponse{
121200			Header:         res.Header,
121201			HTTPStatusCode: res.StatusCode,
121202		},
121203	}
121204	target := &ret
121205	if err := gensupport.DecodeResponse(target, res); err != nil {
121206		return nil, err
121207	}
121208	return ret, nil
121209	// {
121210	//   "description": "Retrieves the list of persistent disks contained within the specified region.",
121211	//   "flatPath": "projects/{project}/regions/{region}/disks",
121212	//   "httpMethod": "GET",
121213	//   "id": "compute.regionDisks.list",
121214	//   "parameterOrder": [
121215	//     "project",
121216	//     "region"
121217	//   ],
121218	//   "parameters": {
121219	//     "filter": {
121220	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
121221	//       "location": "query",
121222	//       "type": "string"
121223	//     },
121224	//     "maxResults": {
121225	//       "default": "500",
121226	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
121227	//       "format": "uint32",
121228	//       "location": "query",
121229	//       "minimum": "0",
121230	//       "type": "integer"
121231	//     },
121232	//     "orderBy": {
121233	//       "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.",
121234	//       "location": "query",
121235	//       "type": "string"
121236	//     },
121237	//     "pageToken": {
121238	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
121239	//       "location": "query",
121240	//       "type": "string"
121241	//     },
121242	//     "project": {
121243	//       "description": "Project ID for this request.",
121244	//       "location": "path",
121245	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121246	//       "required": true,
121247	//       "type": "string"
121248	//     },
121249	//     "region": {
121250	//       "description": "Name of the region for this request.",
121251	//       "location": "path",
121252	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121253	//       "required": true,
121254	//       "type": "string"
121255	//     },
121256	//     "returnPartialSuccess": {
121257	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
121258	//       "location": "query",
121259	//       "type": "boolean"
121260	//     }
121261	//   },
121262	//   "path": "projects/{project}/regions/{region}/disks",
121263	//   "response": {
121264	//     "$ref": "DiskList"
121265	//   },
121266	//   "scopes": [
121267	//     "https://www.googleapis.com/auth/cloud-platform",
121268	//     "https://www.googleapis.com/auth/compute",
121269	//     "https://www.googleapis.com/auth/compute.readonly"
121270	//   ]
121271	// }
121272
121273}
121274
121275// Pages invokes f for each page of results.
121276// A non-nil error returned from f will halt the iteration.
121277// The provided context supersedes any context provided to the Context method.
121278func (c *RegionDisksListCall) Pages(ctx context.Context, f func(*DiskList) error) error {
121279	c.ctx_ = ctx
121280	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
121281	for {
121282		x, err := c.Do()
121283		if err != nil {
121284			return err
121285		}
121286		if err := f(x); err != nil {
121287			return err
121288		}
121289		if x.NextPageToken == "" {
121290			return nil
121291		}
121292		c.PageToken(x.NextPageToken)
121293	}
121294}
121295
121296// method id "compute.regionDisks.removeResourcePolicies":
121297
121298type RegionDisksRemoveResourcePoliciesCall struct {
121299	s                                        *Service
121300	project                                  string
121301	region                                   string
121302	disk                                     string
121303	regiondisksremoveresourcepoliciesrequest *RegionDisksRemoveResourcePoliciesRequest
121304	urlParams_                               gensupport.URLParams
121305	ctx_                                     context.Context
121306	header_                                  http.Header
121307}
121308
121309// RemoveResourcePolicies: Removes resource policies from a regional
121310// disk.
121311//
121312// - disk: The disk name for this request.
121313// - project: Project ID for this request.
121314// - region: The name of the region for this request.
121315func (r *RegionDisksService) RemoveResourcePolicies(project string, region string, disk string, regiondisksremoveresourcepoliciesrequest *RegionDisksRemoveResourcePoliciesRequest) *RegionDisksRemoveResourcePoliciesCall {
121316	c := &RegionDisksRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121317	c.project = project
121318	c.region = region
121319	c.disk = disk
121320	c.regiondisksremoveresourcepoliciesrequest = regiondisksremoveresourcepoliciesrequest
121321	return c
121322}
121323
121324// RequestId sets the optional parameter "requestId": An optional
121325// request ID to identify requests. Specify a unique request ID so that
121326// if you must retry your request, the server will know to ignore the
121327// request if it has already been completed. For example, consider a
121328// situation where you make an initial request and the request times
121329// out. If you make the request again with the same request ID, the
121330// server can check if original operation with the same request ID was
121331// received, and if so, will ignore the second request. This prevents
121332// clients from accidentally creating duplicate commitments. The request
121333// ID must be a valid UUID with the exception that zero UUID is not
121334// supported ( 00000000-0000-0000-0000-000000000000).
121335func (c *RegionDisksRemoveResourcePoliciesCall) RequestId(requestId string) *RegionDisksRemoveResourcePoliciesCall {
121336	c.urlParams_.Set("requestId", requestId)
121337	return c
121338}
121339
121340// Fields allows partial responses to be retrieved. See
121341// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121342// for more information.
121343func (c *RegionDisksRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *RegionDisksRemoveResourcePoliciesCall {
121344	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121345	return c
121346}
121347
121348// Context sets the context to be used in this call's Do method. Any
121349// pending HTTP request will be aborted if the provided context is
121350// canceled.
121351func (c *RegionDisksRemoveResourcePoliciesCall) Context(ctx context.Context) *RegionDisksRemoveResourcePoliciesCall {
121352	c.ctx_ = ctx
121353	return c
121354}
121355
121356// Header returns an http.Header that can be modified by the caller to
121357// add HTTP headers to the request.
121358func (c *RegionDisksRemoveResourcePoliciesCall) Header() http.Header {
121359	if c.header_ == nil {
121360		c.header_ = make(http.Header)
121361	}
121362	return c.header_
121363}
121364
121365func (c *RegionDisksRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
121366	reqHeaders := make(http.Header)
121367	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
121368	for k, v := range c.header_ {
121369		reqHeaders[k] = v
121370	}
121371	reqHeaders.Set("User-Agent", c.s.userAgent())
121372	var body io.Reader = nil
121373	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksremoveresourcepoliciesrequest)
121374	if err != nil {
121375		return nil, err
121376	}
121377	reqHeaders.Set("Content-Type", "application/json")
121378	c.urlParams_.Set("alt", alt)
121379	c.urlParams_.Set("prettyPrint", "false")
121380	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}/removeResourcePolicies")
121381	urls += "?" + c.urlParams_.Encode()
121382	req, err := http.NewRequest("POST", urls, body)
121383	if err != nil {
121384		return nil, err
121385	}
121386	req.Header = reqHeaders
121387	googleapi.Expand(req.URL, map[string]string{
121388		"project": c.project,
121389		"region":  c.region,
121390		"disk":    c.disk,
121391	})
121392	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121393}
121394
121395// Do executes the "compute.regionDisks.removeResourcePolicies" call.
121396// Exactly one of *Operation or error will be non-nil. Any non-2xx
121397// status code is an error. Response headers are in either
121398// *Operation.ServerResponse.Header or (if a response was returned at
121399// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121400// to check whether the returned error was because
121401// http.StatusNotModified was returned.
121402func (c *RegionDisksRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121403	gensupport.SetOptions(c.urlParams_, opts...)
121404	res, err := c.doRequest("json")
121405	if res != nil && res.StatusCode == http.StatusNotModified {
121406		if res.Body != nil {
121407			res.Body.Close()
121408		}
121409		return nil, &googleapi.Error{
121410			Code:   res.StatusCode,
121411			Header: res.Header,
121412		}
121413	}
121414	if err != nil {
121415		return nil, err
121416	}
121417	defer googleapi.CloseBody(res)
121418	if err := googleapi.CheckResponse(res); err != nil {
121419		return nil, err
121420	}
121421	ret := &Operation{
121422		ServerResponse: googleapi.ServerResponse{
121423			Header:         res.Header,
121424			HTTPStatusCode: res.StatusCode,
121425		},
121426	}
121427	target := &ret
121428	if err := gensupport.DecodeResponse(target, res); err != nil {
121429		return nil, err
121430	}
121431	return ret, nil
121432	// {
121433	//   "description": "Removes resource policies from a regional disk.",
121434	//   "flatPath": "projects/{project}/regions/{region}/disks/{disk}/removeResourcePolicies",
121435	//   "httpMethod": "POST",
121436	//   "id": "compute.regionDisks.removeResourcePolicies",
121437	//   "parameterOrder": [
121438	//     "project",
121439	//     "region",
121440	//     "disk"
121441	//   ],
121442	//   "parameters": {
121443	//     "disk": {
121444	//       "description": "The disk name for this request.",
121445	//       "location": "path",
121446	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
121447	//       "required": true,
121448	//       "type": "string"
121449	//     },
121450	//     "project": {
121451	//       "description": "Project ID for this request.",
121452	//       "location": "path",
121453	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121454	//       "required": true,
121455	//       "type": "string"
121456	//     },
121457	//     "region": {
121458	//       "description": "The name of the region for this request.",
121459	//       "location": "path",
121460	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121461	//       "required": true,
121462	//       "type": "string"
121463	//     },
121464	//     "requestId": {
121465	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
121466	//       "location": "query",
121467	//       "type": "string"
121468	//     }
121469	//   },
121470	//   "path": "projects/{project}/regions/{region}/disks/{disk}/removeResourcePolicies",
121471	//   "request": {
121472	//     "$ref": "RegionDisksRemoveResourcePoliciesRequest"
121473	//   },
121474	//   "response": {
121475	//     "$ref": "Operation"
121476	//   },
121477	//   "scopes": [
121478	//     "https://www.googleapis.com/auth/cloud-platform",
121479	//     "https://www.googleapis.com/auth/compute"
121480	//   ]
121481	// }
121482
121483}
121484
121485// method id "compute.regionDisks.resize":
121486
121487type RegionDisksResizeCall struct {
121488	s                        *Service
121489	project                  string
121490	region                   string
121491	disk                     string
121492	regiondisksresizerequest *RegionDisksResizeRequest
121493	urlParams_               gensupport.URLParams
121494	ctx_                     context.Context
121495	header_                  http.Header
121496}
121497
121498// Resize: Resizes the specified regional persistent disk.
121499//
121500// - disk: Name of the regional persistent disk.
121501// - project: The project ID for this request.
121502// - region: Name of the region for this request.
121503func (r *RegionDisksService) Resize(project string, region string, disk string, regiondisksresizerequest *RegionDisksResizeRequest) *RegionDisksResizeCall {
121504	c := &RegionDisksResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121505	c.project = project
121506	c.region = region
121507	c.disk = disk
121508	c.regiondisksresizerequest = regiondisksresizerequest
121509	return c
121510}
121511
121512// RequestId sets the optional parameter "requestId": An optional
121513// request ID to identify requests. Specify a unique request ID so that
121514// if you must retry your request, the server will know to ignore the
121515// request if it has already been completed. For example, consider a
121516// situation where you make an initial request and the request times
121517// out. If you make the request again with the same request ID, the
121518// server can check if original operation with the same request ID was
121519// received, and if so, will ignore the second request. This prevents
121520// clients from accidentally creating duplicate commitments. The request
121521// ID must be a valid UUID with the exception that zero UUID is not
121522// supported ( 00000000-0000-0000-0000-000000000000).
121523func (c *RegionDisksResizeCall) RequestId(requestId string) *RegionDisksResizeCall {
121524	c.urlParams_.Set("requestId", requestId)
121525	return c
121526}
121527
121528// Fields allows partial responses to be retrieved. See
121529// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121530// for more information.
121531func (c *RegionDisksResizeCall) Fields(s ...googleapi.Field) *RegionDisksResizeCall {
121532	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121533	return c
121534}
121535
121536// Context sets the context to be used in this call's Do method. Any
121537// pending HTTP request will be aborted if the provided context is
121538// canceled.
121539func (c *RegionDisksResizeCall) Context(ctx context.Context) *RegionDisksResizeCall {
121540	c.ctx_ = ctx
121541	return c
121542}
121543
121544// Header returns an http.Header that can be modified by the caller to
121545// add HTTP headers to the request.
121546func (c *RegionDisksResizeCall) Header() http.Header {
121547	if c.header_ == nil {
121548		c.header_ = make(http.Header)
121549	}
121550	return c.header_
121551}
121552
121553func (c *RegionDisksResizeCall) doRequest(alt string) (*http.Response, error) {
121554	reqHeaders := make(http.Header)
121555	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
121556	for k, v := range c.header_ {
121557		reqHeaders[k] = v
121558	}
121559	reqHeaders.Set("User-Agent", c.s.userAgent())
121560	var body io.Reader = nil
121561	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksresizerequest)
121562	if err != nil {
121563		return nil, err
121564	}
121565	reqHeaders.Set("Content-Type", "application/json")
121566	c.urlParams_.Set("alt", alt)
121567	c.urlParams_.Set("prettyPrint", "false")
121568	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}/resize")
121569	urls += "?" + c.urlParams_.Encode()
121570	req, err := http.NewRequest("POST", urls, body)
121571	if err != nil {
121572		return nil, err
121573	}
121574	req.Header = reqHeaders
121575	googleapi.Expand(req.URL, map[string]string{
121576		"project": c.project,
121577		"region":  c.region,
121578		"disk":    c.disk,
121579	})
121580	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121581}
121582
121583// Do executes the "compute.regionDisks.resize" call.
121584// Exactly one of *Operation or error will be non-nil. Any non-2xx
121585// status code is an error. Response headers are in either
121586// *Operation.ServerResponse.Header or (if a response was returned at
121587// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121588// to check whether the returned error was because
121589// http.StatusNotModified was returned.
121590func (c *RegionDisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121591	gensupport.SetOptions(c.urlParams_, opts...)
121592	res, err := c.doRequest("json")
121593	if res != nil && res.StatusCode == http.StatusNotModified {
121594		if res.Body != nil {
121595			res.Body.Close()
121596		}
121597		return nil, &googleapi.Error{
121598			Code:   res.StatusCode,
121599			Header: res.Header,
121600		}
121601	}
121602	if err != nil {
121603		return nil, err
121604	}
121605	defer googleapi.CloseBody(res)
121606	if err := googleapi.CheckResponse(res); err != nil {
121607		return nil, err
121608	}
121609	ret := &Operation{
121610		ServerResponse: googleapi.ServerResponse{
121611			Header:         res.Header,
121612			HTTPStatusCode: res.StatusCode,
121613		},
121614	}
121615	target := &ret
121616	if err := gensupport.DecodeResponse(target, res); err != nil {
121617		return nil, err
121618	}
121619	return ret, nil
121620	// {
121621	//   "description": "Resizes the specified regional persistent disk.",
121622	//   "flatPath": "projects/{project}/regions/{region}/disks/{disk}/resize",
121623	//   "httpMethod": "POST",
121624	//   "id": "compute.regionDisks.resize",
121625	//   "parameterOrder": [
121626	//     "project",
121627	//     "region",
121628	//     "disk"
121629	//   ],
121630	//   "parameters": {
121631	//     "disk": {
121632	//       "description": "Name of the regional persistent disk.",
121633	//       "location": "path",
121634	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
121635	//       "required": true,
121636	//       "type": "string"
121637	//     },
121638	//     "project": {
121639	//       "description": "The project ID for this request.",
121640	//       "location": "path",
121641	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121642	//       "required": true,
121643	//       "type": "string"
121644	//     },
121645	//     "region": {
121646	//       "description": "Name of the region for this request.",
121647	//       "location": "path",
121648	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121649	//       "required": true,
121650	//       "type": "string"
121651	//     },
121652	//     "requestId": {
121653	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
121654	//       "location": "query",
121655	//       "type": "string"
121656	//     }
121657	//   },
121658	//   "path": "projects/{project}/regions/{region}/disks/{disk}/resize",
121659	//   "request": {
121660	//     "$ref": "RegionDisksResizeRequest"
121661	//   },
121662	//   "response": {
121663	//     "$ref": "Operation"
121664	//   },
121665	//   "scopes": [
121666	//     "https://www.googleapis.com/auth/cloud-platform",
121667	//     "https://www.googleapis.com/auth/compute"
121668	//   ]
121669	// }
121670
121671}
121672
121673// method id "compute.regionDisks.setIamPolicy":
121674
121675type RegionDisksSetIamPolicyCall struct {
121676	s                      *Service
121677	project                string
121678	region                 string
121679	resource               string
121680	regionsetpolicyrequest *RegionSetPolicyRequest
121681	urlParams_             gensupport.URLParams
121682	ctx_                   context.Context
121683	header_                http.Header
121684}
121685
121686// SetIamPolicy: Sets the access control policy on the specified
121687// resource. Replaces any existing policy.
121688//
121689// - project: Project ID for this request.
121690// - region: The name of the region for this request.
121691// - resource: Name or id of the resource for this request.
121692func (r *RegionDisksService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *RegionDisksSetIamPolicyCall {
121693	c := &RegionDisksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121694	c.project = project
121695	c.region = region
121696	c.resource = resource
121697	c.regionsetpolicyrequest = regionsetpolicyrequest
121698	return c
121699}
121700
121701// Fields allows partial responses to be retrieved. See
121702// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121703// for more information.
121704func (c *RegionDisksSetIamPolicyCall) Fields(s ...googleapi.Field) *RegionDisksSetIamPolicyCall {
121705	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121706	return c
121707}
121708
121709// Context sets the context to be used in this call's Do method. Any
121710// pending HTTP request will be aborted if the provided context is
121711// canceled.
121712func (c *RegionDisksSetIamPolicyCall) Context(ctx context.Context) *RegionDisksSetIamPolicyCall {
121713	c.ctx_ = ctx
121714	return c
121715}
121716
121717// Header returns an http.Header that can be modified by the caller to
121718// add HTTP headers to the request.
121719func (c *RegionDisksSetIamPolicyCall) Header() http.Header {
121720	if c.header_ == nil {
121721		c.header_ = make(http.Header)
121722	}
121723	return c.header_
121724}
121725
121726func (c *RegionDisksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
121727	reqHeaders := make(http.Header)
121728	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
121729	for k, v := range c.header_ {
121730		reqHeaders[k] = v
121731	}
121732	reqHeaders.Set("User-Agent", c.s.userAgent())
121733	var body io.Reader = nil
121734	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
121735	if err != nil {
121736		return nil, err
121737	}
121738	reqHeaders.Set("Content-Type", "application/json")
121739	c.urlParams_.Set("alt", alt)
121740	c.urlParams_.Set("prettyPrint", "false")
121741	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{resource}/setIamPolicy")
121742	urls += "?" + c.urlParams_.Encode()
121743	req, err := http.NewRequest("POST", urls, body)
121744	if err != nil {
121745		return nil, err
121746	}
121747	req.Header = reqHeaders
121748	googleapi.Expand(req.URL, map[string]string{
121749		"project":  c.project,
121750		"region":   c.region,
121751		"resource": c.resource,
121752	})
121753	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121754}
121755
121756// Do executes the "compute.regionDisks.setIamPolicy" call.
121757// Exactly one of *Policy or error will be non-nil. Any non-2xx status
121758// code is an error. Response headers are in either
121759// *Policy.ServerResponse.Header or (if a response was returned at all)
121760// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
121761// check whether the returned error was because http.StatusNotModified
121762// was returned.
121763func (c *RegionDisksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
121764	gensupport.SetOptions(c.urlParams_, opts...)
121765	res, err := c.doRequest("json")
121766	if res != nil && res.StatusCode == http.StatusNotModified {
121767		if res.Body != nil {
121768			res.Body.Close()
121769		}
121770		return nil, &googleapi.Error{
121771			Code:   res.StatusCode,
121772			Header: res.Header,
121773		}
121774	}
121775	if err != nil {
121776		return nil, err
121777	}
121778	defer googleapi.CloseBody(res)
121779	if err := googleapi.CheckResponse(res); err != nil {
121780		return nil, err
121781	}
121782	ret := &Policy{
121783		ServerResponse: googleapi.ServerResponse{
121784			Header:         res.Header,
121785			HTTPStatusCode: res.StatusCode,
121786		},
121787	}
121788	target := &ret
121789	if err := gensupport.DecodeResponse(target, res); err != nil {
121790		return nil, err
121791	}
121792	return ret, nil
121793	// {
121794	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
121795	//   "flatPath": "projects/{project}/regions/{region}/disks/{resource}/setIamPolicy",
121796	//   "httpMethod": "POST",
121797	//   "id": "compute.regionDisks.setIamPolicy",
121798	//   "parameterOrder": [
121799	//     "project",
121800	//     "region",
121801	//     "resource"
121802	//   ],
121803	//   "parameters": {
121804	//     "project": {
121805	//       "description": "Project ID for this request.",
121806	//       "location": "path",
121807	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121808	//       "required": true,
121809	//       "type": "string"
121810	//     },
121811	//     "region": {
121812	//       "description": "The name of the region for this request.",
121813	//       "location": "path",
121814	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121815	//       "required": true,
121816	//       "type": "string"
121817	//     },
121818	//     "resource": {
121819	//       "description": "Name or id of the resource for this request.",
121820	//       "location": "path",
121821	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
121822	//       "required": true,
121823	//       "type": "string"
121824	//     }
121825	//   },
121826	//   "path": "projects/{project}/regions/{region}/disks/{resource}/setIamPolicy",
121827	//   "request": {
121828	//     "$ref": "RegionSetPolicyRequest"
121829	//   },
121830	//   "response": {
121831	//     "$ref": "Policy"
121832	//   },
121833	//   "scopes": [
121834	//     "https://www.googleapis.com/auth/cloud-platform",
121835	//     "https://www.googleapis.com/auth/compute"
121836	//   ]
121837	// }
121838
121839}
121840
121841// method id "compute.regionDisks.setLabels":
121842
121843type RegionDisksSetLabelsCall struct {
121844	s                      *Service
121845	project                string
121846	region                 string
121847	resource               string
121848	regionsetlabelsrequest *RegionSetLabelsRequest
121849	urlParams_             gensupport.URLParams
121850	ctx_                   context.Context
121851	header_                http.Header
121852}
121853
121854// SetLabels: Sets the labels on the target regional disk.
121855//
121856// - project: Project ID for this request.
121857// - region: The region for this request.
121858// - resource: Name or id of the resource for this request.
121859func (r *RegionDisksService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *RegionDisksSetLabelsCall {
121860	c := &RegionDisksSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121861	c.project = project
121862	c.region = region
121863	c.resource = resource
121864	c.regionsetlabelsrequest = regionsetlabelsrequest
121865	return c
121866}
121867
121868// RequestId sets the optional parameter "requestId": An optional
121869// request ID to identify requests. Specify a unique request ID so that
121870// if you must retry your request, the server will know to ignore the
121871// request if it has already been completed. For example, consider a
121872// situation where you make an initial request and the request times
121873// out. If you make the request again with the same request ID, the
121874// server can check if original operation with the same request ID was
121875// received, and if so, will ignore the second request. This prevents
121876// clients from accidentally creating duplicate commitments. The request
121877// ID must be a valid UUID with the exception that zero UUID is not
121878// supported ( 00000000-0000-0000-0000-000000000000).
121879func (c *RegionDisksSetLabelsCall) RequestId(requestId string) *RegionDisksSetLabelsCall {
121880	c.urlParams_.Set("requestId", requestId)
121881	return c
121882}
121883
121884// Fields allows partial responses to be retrieved. See
121885// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121886// for more information.
121887func (c *RegionDisksSetLabelsCall) Fields(s ...googleapi.Field) *RegionDisksSetLabelsCall {
121888	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121889	return c
121890}
121891
121892// Context sets the context to be used in this call's Do method. Any
121893// pending HTTP request will be aborted if the provided context is
121894// canceled.
121895func (c *RegionDisksSetLabelsCall) Context(ctx context.Context) *RegionDisksSetLabelsCall {
121896	c.ctx_ = ctx
121897	return c
121898}
121899
121900// Header returns an http.Header that can be modified by the caller to
121901// add HTTP headers to the request.
121902func (c *RegionDisksSetLabelsCall) Header() http.Header {
121903	if c.header_ == nil {
121904		c.header_ = make(http.Header)
121905	}
121906	return c.header_
121907}
121908
121909func (c *RegionDisksSetLabelsCall) doRequest(alt string) (*http.Response, error) {
121910	reqHeaders := make(http.Header)
121911	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
121912	for k, v := range c.header_ {
121913		reqHeaders[k] = v
121914	}
121915	reqHeaders.Set("User-Agent", c.s.userAgent())
121916	var body io.Reader = nil
121917	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
121918	if err != nil {
121919		return nil, err
121920	}
121921	reqHeaders.Set("Content-Type", "application/json")
121922	c.urlParams_.Set("alt", alt)
121923	c.urlParams_.Set("prettyPrint", "false")
121924	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{resource}/setLabels")
121925	urls += "?" + c.urlParams_.Encode()
121926	req, err := http.NewRequest("POST", urls, body)
121927	if err != nil {
121928		return nil, err
121929	}
121930	req.Header = reqHeaders
121931	googleapi.Expand(req.URL, map[string]string{
121932		"project":  c.project,
121933		"region":   c.region,
121934		"resource": c.resource,
121935	})
121936	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121937}
121938
121939// Do executes the "compute.regionDisks.setLabels" call.
121940// Exactly one of *Operation or error will be non-nil. Any non-2xx
121941// status code is an error. Response headers are in either
121942// *Operation.ServerResponse.Header or (if a response was returned at
121943// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121944// to check whether the returned error was because
121945// http.StatusNotModified was returned.
121946func (c *RegionDisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121947	gensupport.SetOptions(c.urlParams_, opts...)
121948	res, err := c.doRequest("json")
121949	if res != nil && res.StatusCode == http.StatusNotModified {
121950		if res.Body != nil {
121951			res.Body.Close()
121952		}
121953		return nil, &googleapi.Error{
121954			Code:   res.StatusCode,
121955			Header: res.Header,
121956		}
121957	}
121958	if err != nil {
121959		return nil, err
121960	}
121961	defer googleapi.CloseBody(res)
121962	if err := googleapi.CheckResponse(res); err != nil {
121963		return nil, err
121964	}
121965	ret := &Operation{
121966		ServerResponse: googleapi.ServerResponse{
121967			Header:         res.Header,
121968			HTTPStatusCode: res.StatusCode,
121969		},
121970	}
121971	target := &ret
121972	if err := gensupport.DecodeResponse(target, res); err != nil {
121973		return nil, err
121974	}
121975	return ret, nil
121976	// {
121977	//   "description": "Sets the labels on the target regional disk.",
121978	//   "flatPath": "projects/{project}/regions/{region}/disks/{resource}/setLabels",
121979	//   "httpMethod": "POST",
121980	//   "id": "compute.regionDisks.setLabels",
121981	//   "parameterOrder": [
121982	//     "project",
121983	//     "region",
121984	//     "resource"
121985	//   ],
121986	//   "parameters": {
121987	//     "project": {
121988	//       "description": "Project ID for this request.",
121989	//       "location": "path",
121990	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121991	//       "required": true,
121992	//       "type": "string"
121993	//     },
121994	//     "region": {
121995	//       "description": "The region for this request.",
121996	//       "location": "path",
121997	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121998	//       "required": true,
121999	//       "type": "string"
122000	//     },
122001	//     "requestId": {
122002	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
122003	//       "location": "query",
122004	//       "type": "string"
122005	//     },
122006	//     "resource": {
122007	//       "description": "Name or id of the resource for this request.",
122008	//       "location": "path",
122009	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
122010	//       "required": true,
122011	//       "type": "string"
122012	//     }
122013	//   },
122014	//   "path": "projects/{project}/regions/{region}/disks/{resource}/setLabels",
122015	//   "request": {
122016	//     "$ref": "RegionSetLabelsRequest"
122017	//   },
122018	//   "response": {
122019	//     "$ref": "Operation"
122020	//   },
122021	//   "scopes": [
122022	//     "https://www.googleapis.com/auth/cloud-platform",
122023	//     "https://www.googleapis.com/auth/compute"
122024	//   ]
122025	// }
122026
122027}
122028
122029// method id "compute.regionDisks.testIamPermissions":
122030
122031type RegionDisksTestIamPermissionsCall struct {
122032	s                      *Service
122033	project                string
122034	region                 string
122035	resource               string
122036	testpermissionsrequest *TestPermissionsRequest
122037	urlParams_             gensupport.URLParams
122038	ctx_                   context.Context
122039	header_                http.Header
122040}
122041
122042// TestIamPermissions: Returns permissions that a caller has on the
122043// specified resource.
122044//
122045// - project: Project ID for this request.
122046// - region: The name of the region for this request.
122047// - resource: Name or id of the resource for this request.
122048func (r *RegionDisksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionDisksTestIamPermissionsCall {
122049	c := &RegionDisksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122050	c.project = project
122051	c.region = region
122052	c.resource = resource
122053	c.testpermissionsrequest = testpermissionsrequest
122054	return c
122055}
122056
122057// Fields allows partial responses to be retrieved. See
122058// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122059// for more information.
122060func (c *RegionDisksTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionDisksTestIamPermissionsCall {
122061	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122062	return c
122063}
122064
122065// Context sets the context to be used in this call's Do method. Any
122066// pending HTTP request will be aborted if the provided context is
122067// canceled.
122068func (c *RegionDisksTestIamPermissionsCall) Context(ctx context.Context) *RegionDisksTestIamPermissionsCall {
122069	c.ctx_ = ctx
122070	return c
122071}
122072
122073// Header returns an http.Header that can be modified by the caller to
122074// add HTTP headers to the request.
122075func (c *RegionDisksTestIamPermissionsCall) Header() http.Header {
122076	if c.header_ == nil {
122077		c.header_ = make(http.Header)
122078	}
122079	return c.header_
122080}
122081
122082func (c *RegionDisksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
122083	reqHeaders := make(http.Header)
122084	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
122085	for k, v := range c.header_ {
122086		reqHeaders[k] = v
122087	}
122088	reqHeaders.Set("User-Agent", c.s.userAgent())
122089	var body io.Reader = nil
122090	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
122091	if err != nil {
122092		return nil, err
122093	}
122094	reqHeaders.Set("Content-Type", "application/json")
122095	c.urlParams_.Set("alt", alt)
122096	c.urlParams_.Set("prettyPrint", "false")
122097	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{resource}/testIamPermissions")
122098	urls += "?" + c.urlParams_.Encode()
122099	req, err := http.NewRequest("POST", urls, body)
122100	if err != nil {
122101		return nil, err
122102	}
122103	req.Header = reqHeaders
122104	googleapi.Expand(req.URL, map[string]string{
122105		"project":  c.project,
122106		"region":   c.region,
122107		"resource": c.resource,
122108	})
122109	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122110}
122111
122112// Do executes the "compute.regionDisks.testIamPermissions" call.
122113// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
122114// non-2xx status code is an error. Response headers are in either
122115// *TestPermissionsResponse.ServerResponse.Header or (if a response was
122116// returned at all) in error.(*googleapi.Error).Header. Use
122117// googleapi.IsNotModified to check whether the returned error was
122118// because http.StatusNotModified was returned.
122119func (c *RegionDisksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
122120	gensupport.SetOptions(c.urlParams_, opts...)
122121	res, err := c.doRequest("json")
122122	if res != nil && res.StatusCode == http.StatusNotModified {
122123		if res.Body != nil {
122124			res.Body.Close()
122125		}
122126		return nil, &googleapi.Error{
122127			Code:   res.StatusCode,
122128			Header: res.Header,
122129		}
122130	}
122131	if err != nil {
122132		return nil, err
122133	}
122134	defer googleapi.CloseBody(res)
122135	if err := googleapi.CheckResponse(res); err != nil {
122136		return nil, err
122137	}
122138	ret := &TestPermissionsResponse{
122139		ServerResponse: googleapi.ServerResponse{
122140			Header:         res.Header,
122141			HTTPStatusCode: res.StatusCode,
122142		},
122143	}
122144	target := &ret
122145	if err := gensupport.DecodeResponse(target, res); err != nil {
122146		return nil, err
122147	}
122148	return ret, nil
122149	// {
122150	//   "description": "Returns permissions that a caller has on the specified resource.",
122151	//   "flatPath": "projects/{project}/regions/{region}/disks/{resource}/testIamPermissions",
122152	//   "httpMethod": "POST",
122153	//   "id": "compute.regionDisks.testIamPermissions",
122154	//   "parameterOrder": [
122155	//     "project",
122156	//     "region",
122157	//     "resource"
122158	//   ],
122159	//   "parameters": {
122160	//     "project": {
122161	//       "description": "Project ID for this request.",
122162	//       "location": "path",
122163	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122164	//       "required": true,
122165	//       "type": "string"
122166	//     },
122167	//     "region": {
122168	//       "description": "The name of the region for this request.",
122169	//       "location": "path",
122170	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122171	//       "required": true,
122172	//       "type": "string"
122173	//     },
122174	//     "resource": {
122175	//       "description": "Name or id of the resource for this request.",
122176	//       "location": "path",
122177	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
122178	//       "required": true,
122179	//       "type": "string"
122180	//     }
122181	//   },
122182	//   "path": "projects/{project}/regions/{region}/disks/{resource}/testIamPermissions",
122183	//   "request": {
122184	//     "$ref": "TestPermissionsRequest"
122185	//   },
122186	//   "response": {
122187	//     "$ref": "TestPermissionsResponse"
122188	//   },
122189	//   "scopes": [
122190	//     "https://www.googleapis.com/auth/cloud-platform",
122191	//     "https://www.googleapis.com/auth/compute",
122192	//     "https://www.googleapis.com/auth/compute.readonly"
122193	//   ]
122194	// }
122195
122196}
122197
122198// method id "compute.regionHealthCheckServices.delete":
122199
122200type RegionHealthCheckServicesDeleteCall struct {
122201	s                  *Service
122202	project            string
122203	region             string
122204	healthCheckService string
122205	urlParams_         gensupport.URLParams
122206	ctx_               context.Context
122207	header_            http.Header
122208}
122209
122210// Delete: Deletes the specified regional HealthCheckService.
122211//
122212// - healthCheckService: Name of the HealthCheckService to delete. The
122213//   name must be 1-63 characters long, and comply with RFC1035.
122214// - project: Project ID for this request.
122215// - region: Name of the region scoping this request.
122216func (r *RegionHealthCheckServicesService) Delete(project string, region string, healthCheckService string) *RegionHealthCheckServicesDeleteCall {
122217	c := &RegionHealthCheckServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122218	c.project = project
122219	c.region = region
122220	c.healthCheckService = healthCheckService
122221	return c
122222}
122223
122224// RequestId sets the optional parameter "requestId": An optional
122225// request ID to identify requests. Specify a unique request ID so that
122226// if you must retry your request, the server will know to ignore the
122227// request if it has already been completed. For example, consider a
122228// situation where you make an initial request and the request times
122229// out. If you make the request again with the same request ID, the
122230// server can check if original operation with the same request ID was
122231// received, and if so, will ignore the second request. This prevents
122232// clients from accidentally creating duplicate commitments. The request
122233// ID must be a valid UUID with the exception that zero UUID is not
122234// supported ( 00000000-0000-0000-0000-000000000000).
122235func (c *RegionHealthCheckServicesDeleteCall) RequestId(requestId string) *RegionHealthCheckServicesDeleteCall {
122236	c.urlParams_.Set("requestId", requestId)
122237	return c
122238}
122239
122240// Fields allows partial responses to be retrieved. See
122241// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122242// for more information.
122243func (c *RegionHealthCheckServicesDeleteCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesDeleteCall {
122244	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122245	return c
122246}
122247
122248// Context sets the context to be used in this call's Do method. Any
122249// pending HTTP request will be aborted if the provided context is
122250// canceled.
122251func (c *RegionHealthCheckServicesDeleteCall) Context(ctx context.Context) *RegionHealthCheckServicesDeleteCall {
122252	c.ctx_ = ctx
122253	return c
122254}
122255
122256// Header returns an http.Header that can be modified by the caller to
122257// add HTTP headers to the request.
122258func (c *RegionHealthCheckServicesDeleteCall) Header() http.Header {
122259	if c.header_ == nil {
122260		c.header_ = make(http.Header)
122261	}
122262	return c.header_
122263}
122264
122265func (c *RegionHealthCheckServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
122266	reqHeaders := make(http.Header)
122267	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
122268	for k, v := range c.header_ {
122269		reqHeaders[k] = v
122270	}
122271	reqHeaders.Set("User-Agent", c.s.userAgent())
122272	var body io.Reader = nil
122273	c.urlParams_.Set("alt", alt)
122274	c.urlParams_.Set("prettyPrint", "false")
122275	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}")
122276	urls += "?" + c.urlParams_.Encode()
122277	req, err := http.NewRequest("DELETE", urls, body)
122278	if err != nil {
122279		return nil, err
122280	}
122281	req.Header = reqHeaders
122282	googleapi.Expand(req.URL, map[string]string{
122283		"project":            c.project,
122284		"region":             c.region,
122285		"healthCheckService": c.healthCheckService,
122286	})
122287	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122288}
122289
122290// Do executes the "compute.regionHealthCheckServices.delete" call.
122291// Exactly one of *Operation or error will be non-nil. Any non-2xx
122292// status code is an error. Response headers are in either
122293// *Operation.ServerResponse.Header or (if a response was returned at
122294// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122295// to check whether the returned error was because
122296// http.StatusNotModified was returned.
122297func (c *RegionHealthCheckServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
122298	gensupport.SetOptions(c.urlParams_, opts...)
122299	res, err := c.doRequest("json")
122300	if res != nil && res.StatusCode == http.StatusNotModified {
122301		if res.Body != nil {
122302			res.Body.Close()
122303		}
122304		return nil, &googleapi.Error{
122305			Code:   res.StatusCode,
122306			Header: res.Header,
122307		}
122308	}
122309	if err != nil {
122310		return nil, err
122311	}
122312	defer googleapi.CloseBody(res)
122313	if err := googleapi.CheckResponse(res); err != nil {
122314		return nil, err
122315	}
122316	ret := &Operation{
122317		ServerResponse: googleapi.ServerResponse{
122318			Header:         res.Header,
122319			HTTPStatusCode: res.StatusCode,
122320		},
122321	}
122322	target := &ret
122323	if err := gensupport.DecodeResponse(target, res); err != nil {
122324		return nil, err
122325	}
122326	return ret, nil
122327	// {
122328	//   "description": "Deletes the specified regional HealthCheckService.",
122329	//   "flatPath": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}",
122330	//   "httpMethod": "DELETE",
122331	//   "id": "compute.regionHealthCheckServices.delete",
122332	//   "parameterOrder": [
122333	//     "project",
122334	//     "region",
122335	//     "healthCheckService"
122336	//   ],
122337	//   "parameters": {
122338	//     "healthCheckService": {
122339	//       "description": "Name of the HealthCheckService to delete. The name must be 1-63 characters long, and comply with RFC1035.",
122340	//       "location": "path",
122341	//       "required": true,
122342	//       "type": "string"
122343	//     },
122344	//     "project": {
122345	//       "description": "Project ID for this request.",
122346	//       "location": "path",
122347	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122348	//       "required": true,
122349	//       "type": "string"
122350	//     },
122351	//     "region": {
122352	//       "description": "Name of the region scoping this request.",
122353	//       "location": "path",
122354	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122355	//       "required": true,
122356	//       "type": "string"
122357	//     },
122358	//     "requestId": {
122359	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
122360	//       "location": "query",
122361	//       "type": "string"
122362	//     }
122363	//   },
122364	//   "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}",
122365	//   "response": {
122366	//     "$ref": "Operation"
122367	//   },
122368	//   "scopes": [
122369	//     "https://www.googleapis.com/auth/cloud-platform",
122370	//     "https://www.googleapis.com/auth/compute"
122371	//   ]
122372	// }
122373
122374}
122375
122376// method id "compute.regionHealthCheckServices.get":
122377
122378type RegionHealthCheckServicesGetCall struct {
122379	s                  *Service
122380	project            string
122381	region             string
122382	healthCheckService string
122383	urlParams_         gensupport.URLParams
122384	ifNoneMatch_       string
122385	ctx_               context.Context
122386	header_            http.Header
122387}
122388
122389// Get: Returns the specified regional HealthCheckService resource.
122390//
122391// - healthCheckService: Name of the HealthCheckService to update. The
122392//   name must be 1-63 characters long, and comply with RFC1035.
122393// - project: Project ID for this request.
122394// - region: Name of the region scoping this request.
122395func (r *RegionHealthCheckServicesService) Get(project string, region string, healthCheckService string) *RegionHealthCheckServicesGetCall {
122396	c := &RegionHealthCheckServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122397	c.project = project
122398	c.region = region
122399	c.healthCheckService = healthCheckService
122400	return c
122401}
122402
122403// Fields allows partial responses to be retrieved. See
122404// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122405// for more information.
122406func (c *RegionHealthCheckServicesGetCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesGetCall {
122407	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122408	return c
122409}
122410
122411// IfNoneMatch sets the optional parameter which makes the operation
122412// fail if the object's ETag matches the given value. This is useful for
122413// getting updates only after the object has changed since the last
122414// request. Use googleapi.IsNotModified to check whether the response
122415// error from Do is the result of In-None-Match.
122416func (c *RegionHealthCheckServicesGetCall) IfNoneMatch(entityTag string) *RegionHealthCheckServicesGetCall {
122417	c.ifNoneMatch_ = entityTag
122418	return c
122419}
122420
122421// Context sets the context to be used in this call's Do method. Any
122422// pending HTTP request will be aborted if the provided context is
122423// canceled.
122424func (c *RegionHealthCheckServicesGetCall) Context(ctx context.Context) *RegionHealthCheckServicesGetCall {
122425	c.ctx_ = ctx
122426	return c
122427}
122428
122429// Header returns an http.Header that can be modified by the caller to
122430// add HTTP headers to the request.
122431func (c *RegionHealthCheckServicesGetCall) Header() http.Header {
122432	if c.header_ == nil {
122433		c.header_ = make(http.Header)
122434	}
122435	return c.header_
122436}
122437
122438func (c *RegionHealthCheckServicesGetCall) doRequest(alt string) (*http.Response, error) {
122439	reqHeaders := make(http.Header)
122440	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
122441	for k, v := range c.header_ {
122442		reqHeaders[k] = v
122443	}
122444	reqHeaders.Set("User-Agent", c.s.userAgent())
122445	if c.ifNoneMatch_ != "" {
122446		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
122447	}
122448	var body io.Reader = nil
122449	c.urlParams_.Set("alt", alt)
122450	c.urlParams_.Set("prettyPrint", "false")
122451	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}")
122452	urls += "?" + c.urlParams_.Encode()
122453	req, err := http.NewRequest("GET", urls, body)
122454	if err != nil {
122455		return nil, err
122456	}
122457	req.Header = reqHeaders
122458	googleapi.Expand(req.URL, map[string]string{
122459		"project":            c.project,
122460		"region":             c.region,
122461		"healthCheckService": c.healthCheckService,
122462	})
122463	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122464}
122465
122466// Do executes the "compute.regionHealthCheckServices.get" call.
122467// Exactly one of *HealthCheckService or error will be non-nil. Any
122468// non-2xx status code is an error. Response headers are in either
122469// *HealthCheckService.ServerResponse.Header or (if a response was
122470// returned at all) in error.(*googleapi.Error).Header. Use
122471// googleapi.IsNotModified to check whether the returned error was
122472// because http.StatusNotModified was returned.
122473func (c *RegionHealthCheckServicesGetCall) Do(opts ...googleapi.CallOption) (*HealthCheckService, error) {
122474	gensupport.SetOptions(c.urlParams_, opts...)
122475	res, err := c.doRequest("json")
122476	if res != nil && res.StatusCode == http.StatusNotModified {
122477		if res.Body != nil {
122478			res.Body.Close()
122479		}
122480		return nil, &googleapi.Error{
122481			Code:   res.StatusCode,
122482			Header: res.Header,
122483		}
122484	}
122485	if err != nil {
122486		return nil, err
122487	}
122488	defer googleapi.CloseBody(res)
122489	if err := googleapi.CheckResponse(res); err != nil {
122490		return nil, err
122491	}
122492	ret := &HealthCheckService{
122493		ServerResponse: googleapi.ServerResponse{
122494			Header:         res.Header,
122495			HTTPStatusCode: res.StatusCode,
122496		},
122497	}
122498	target := &ret
122499	if err := gensupport.DecodeResponse(target, res); err != nil {
122500		return nil, err
122501	}
122502	return ret, nil
122503	// {
122504	//   "description": "Returns the specified regional HealthCheckService resource.",
122505	//   "flatPath": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}",
122506	//   "httpMethod": "GET",
122507	//   "id": "compute.regionHealthCheckServices.get",
122508	//   "parameterOrder": [
122509	//     "project",
122510	//     "region",
122511	//     "healthCheckService"
122512	//   ],
122513	//   "parameters": {
122514	//     "healthCheckService": {
122515	//       "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.",
122516	//       "location": "path",
122517	//       "required": true,
122518	//       "type": "string"
122519	//     },
122520	//     "project": {
122521	//       "description": "Project ID for this request.",
122522	//       "location": "path",
122523	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122524	//       "required": true,
122525	//       "type": "string"
122526	//     },
122527	//     "region": {
122528	//       "description": "Name of the region scoping this request.",
122529	//       "location": "path",
122530	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122531	//       "required": true,
122532	//       "type": "string"
122533	//     }
122534	//   },
122535	//   "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}",
122536	//   "response": {
122537	//     "$ref": "HealthCheckService"
122538	//   },
122539	//   "scopes": [
122540	//     "https://www.googleapis.com/auth/cloud-platform",
122541	//     "https://www.googleapis.com/auth/compute",
122542	//     "https://www.googleapis.com/auth/compute.readonly"
122543	//   ]
122544	// }
122545
122546}
122547
122548// method id "compute.regionHealthCheckServices.insert":
122549
122550type RegionHealthCheckServicesInsertCall struct {
122551	s                  *Service
122552	project            string
122553	region             string
122554	healthcheckservice *HealthCheckService
122555	urlParams_         gensupport.URLParams
122556	ctx_               context.Context
122557	header_            http.Header
122558}
122559
122560// Insert: Creates a regional HealthCheckService resource in the
122561// specified project and region using the data included in the request.
122562//
122563// - project: Project ID for this request.
122564// - region: Name of the region scoping this request.
122565func (r *RegionHealthCheckServicesService) Insert(project string, region string, healthcheckservice *HealthCheckService) *RegionHealthCheckServicesInsertCall {
122566	c := &RegionHealthCheckServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122567	c.project = project
122568	c.region = region
122569	c.healthcheckservice = healthcheckservice
122570	return c
122571}
122572
122573// RequestId sets the optional parameter "requestId": An optional
122574// request ID to identify requests. Specify a unique request ID so that
122575// if you must retry your request, the server will know to ignore the
122576// request if it has already been completed. For example, consider a
122577// situation where you make an initial request and the request times
122578// out. If you make the request again with the same request ID, the
122579// server can check if original operation with the same request ID was
122580// received, and if so, will ignore the second request. This prevents
122581// clients from accidentally creating duplicate commitments. The request
122582// ID must be a valid UUID with the exception that zero UUID is not
122583// supported ( 00000000-0000-0000-0000-000000000000).
122584func (c *RegionHealthCheckServicesInsertCall) RequestId(requestId string) *RegionHealthCheckServicesInsertCall {
122585	c.urlParams_.Set("requestId", requestId)
122586	return c
122587}
122588
122589// Fields allows partial responses to be retrieved. See
122590// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122591// for more information.
122592func (c *RegionHealthCheckServicesInsertCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesInsertCall {
122593	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122594	return c
122595}
122596
122597// Context sets the context to be used in this call's Do method. Any
122598// pending HTTP request will be aborted if the provided context is
122599// canceled.
122600func (c *RegionHealthCheckServicesInsertCall) Context(ctx context.Context) *RegionHealthCheckServicesInsertCall {
122601	c.ctx_ = ctx
122602	return c
122603}
122604
122605// Header returns an http.Header that can be modified by the caller to
122606// add HTTP headers to the request.
122607func (c *RegionHealthCheckServicesInsertCall) Header() http.Header {
122608	if c.header_ == nil {
122609		c.header_ = make(http.Header)
122610	}
122611	return c.header_
122612}
122613
122614func (c *RegionHealthCheckServicesInsertCall) doRequest(alt string) (*http.Response, error) {
122615	reqHeaders := make(http.Header)
122616	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
122617	for k, v := range c.header_ {
122618		reqHeaders[k] = v
122619	}
122620	reqHeaders.Set("User-Agent", c.s.userAgent())
122621	var body io.Reader = nil
122622	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheckservice)
122623	if err != nil {
122624		return nil, err
122625	}
122626	reqHeaders.Set("Content-Type", "application/json")
122627	c.urlParams_.Set("alt", alt)
122628	c.urlParams_.Set("prettyPrint", "false")
122629	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices")
122630	urls += "?" + c.urlParams_.Encode()
122631	req, err := http.NewRequest("POST", urls, body)
122632	if err != nil {
122633		return nil, err
122634	}
122635	req.Header = reqHeaders
122636	googleapi.Expand(req.URL, map[string]string{
122637		"project": c.project,
122638		"region":  c.region,
122639	})
122640	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122641}
122642
122643// Do executes the "compute.regionHealthCheckServices.insert" call.
122644// Exactly one of *Operation or error will be non-nil. Any non-2xx
122645// status code is an error. Response headers are in either
122646// *Operation.ServerResponse.Header or (if a response was returned at
122647// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122648// to check whether the returned error was because
122649// http.StatusNotModified was returned.
122650func (c *RegionHealthCheckServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
122651	gensupport.SetOptions(c.urlParams_, opts...)
122652	res, err := c.doRequest("json")
122653	if res != nil && res.StatusCode == http.StatusNotModified {
122654		if res.Body != nil {
122655			res.Body.Close()
122656		}
122657		return nil, &googleapi.Error{
122658			Code:   res.StatusCode,
122659			Header: res.Header,
122660		}
122661	}
122662	if err != nil {
122663		return nil, err
122664	}
122665	defer googleapi.CloseBody(res)
122666	if err := googleapi.CheckResponse(res); err != nil {
122667		return nil, err
122668	}
122669	ret := &Operation{
122670		ServerResponse: googleapi.ServerResponse{
122671			Header:         res.Header,
122672			HTTPStatusCode: res.StatusCode,
122673		},
122674	}
122675	target := &ret
122676	if err := gensupport.DecodeResponse(target, res); err != nil {
122677		return nil, err
122678	}
122679	return ret, nil
122680	// {
122681	//   "description": "Creates a regional HealthCheckService resource in the specified project and region using the data included in the request.",
122682	//   "flatPath": "projects/{project}/regions/{region}/healthCheckServices",
122683	//   "httpMethod": "POST",
122684	//   "id": "compute.regionHealthCheckServices.insert",
122685	//   "parameterOrder": [
122686	//     "project",
122687	//     "region"
122688	//   ],
122689	//   "parameters": {
122690	//     "project": {
122691	//       "description": "Project ID for this request.",
122692	//       "location": "path",
122693	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122694	//       "required": true,
122695	//       "type": "string"
122696	//     },
122697	//     "region": {
122698	//       "description": "Name of the region scoping this request.",
122699	//       "location": "path",
122700	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122701	//       "required": true,
122702	//       "type": "string"
122703	//     },
122704	//     "requestId": {
122705	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
122706	//       "location": "query",
122707	//       "type": "string"
122708	//     }
122709	//   },
122710	//   "path": "projects/{project}/regions/{region}/healthCheckServices",
122711	//   "request": {
122712	//     "$ref": "HealthCheckService"
122713	//   },
122714	//   "response": {
122715	//     "$ref": "Operation"
122716	//   },
122717	//   "scopes": [
122718	//     "https://www.googleapis.com/auth/cloud-platform",
122719	//     "https://www.googleapis.com/auth/compute"
122720	//   ]
122721	// }
122722
122723}
122724
122725// method id "compute.regionHealthCheckServices.list":
122726
122727type RegionHealthCheckServicesListCall struct {
122728	s            *Service
122729	project      string
122730	region       string
122731	urlParams_   gensupport.URLParams
122732	ifNoneMatch_ string
122733	ctx_         context.Context
122734	header_      http.Header
122735}
122736
122737// List: Lists all the HealthCheckService resources that have been
122738// configured for the specified project in the given region.
122739//
122740// - project: Project ID for this request.
122741// - region: Name of the region scoping this request.
122742func (r *RegionHealthCheckServicesService) List(project string, region string) *RegionHealthCheckServicesListCall {
122743	c := &RegionHealthCheckServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122744	c.project = project
122745	c.region = region
122746	return c
122747}
122748
122749// Filter sets the optional parameter "filter": A filter expression that
122750// filters resources listed in the response. The expression must specify
122751// the field name, a comparison operator, and the value that you want to
122752// use for filtering. The value must be a string, a number, or a
122753// boolean. The comparison operator must be either `=`, `!=`, `>`, or
122754// `<`. For example, if you are filtering Compute Engine instances, you
122755// can exclude instances named `example-instance` by specifying `name !=
122756// example-instance`. You can also filter nested fields. For example,
122757// you could specify `scheduling.automaticRestart = false` to include
122758// instances only if they are not scheduled for automatic restarts. You
122759// can use filtering on nested fields to filter based on resource
122760// labels. To filter on multiple expressions, provide each separate
122761// expression within parentheses. For example: ```
122762// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
122763// ``` By default, each expression is an `AND` expression. However, you
122764// can include `AND` and `OR` expressions explicitly. For example: ```
122765// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
122766// AND (scheduling.automaticRestart = true) ```
122767func (c *RegionHealthCheckServicesListCall) Filter(filter string) *RegionHealthCheckServicesListCall {
122768	c.urlParams_.Set("filter", filter)
122769	return c
122770}
122771
122772// MaxResults sets the optional parameter "maxResults": The maximum
122773// number of results per page that should be returned. If the number of
122774// available results is larger than `maxResults`, Compute Engine returns
122775// a `nextPageToken` that can be used to get the next page of results in
122776// subsequent list requests. Acceptable values are `0` to `500`,
122777// inclusive. (Default: `500`)
122778func (c *RegionHealthCheckServicesListCall) MaxResults(maxResults int64) *RegionHealthCheckServicesListCall {
122779	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
122780	return c
122781}
122782
122783// OrderBy sets the optional parameter "orderBy": Sorts list results by
122784// a certain order. By default, results are returned in alphanumerical
122785// order based on the resource name. You can also sort results in
122786// descending order based on the creation timestamp using
122787// `orderBy="creationTimestamp desc". This sorts results based on the
122788// `creationTimestamp` field in reverse chronological order (newest
122789// result first). Use this to sort resources like operations so that the
122790// newest operation is returned first. Currently, only sorting by `name`
122791// or `creationTimestamp desc` is supported.
122792func (c *RegionHealthCheckServicesListCall) OrderBy(orderBy string) *RegionHealthCheckServicesListCall {
122793	c.urlParams_.Set("orderBy", orderBy)
122794	return c
122795}
122796
122797// PageToken sets the optional parameter "pageToken": Specifies a page
122798// token to use. Set `pageToken` to the `nextPageToken` returned by a
122799// previous list request to get the next page of results.
122800func (c *RegionHealthCheckServicesListCall) PageToken(pageToken string) *RegionHealthCheckServicesListCall {
122801	c.urlParams_.Set("pageToken", pageToken)
122802	return c
122803}
122804
122805// ReturnPartialSuccess sets the optional parameter
122806// "returnPartialSuccess": Opt-in for partial success behavior which
122807// provides partial results in case of failure. The default value is
122808// false.
122809func (c *RegionHealthCheckServicesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionHealthCheckServicesListCall {
122810	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
122811	return c
122812}
122813
122814// Fields allows partial responses to be retrieved. See
122815// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122816// for more information.
122817func (c *RegionHealthCheckServicesListCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesListCall {
122818	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122819	return c
122820}
122821
122822// IfNoneMatch sets the optional parameter which makes the operation
122823// fail if the object's ETag matches the given value. This is useful for
122824// getting updates only after the object has changed since the last
122825// request. Use googleapi.IsNotModified to check whether the response
122826// error from Do is the result of In-None-Match.
122827func (c *RegionHealthCheckServicesListCall) IfNoneMatch(entityTag string) *RegionHealthCheckServicesListCall {
122828	c.ifNoneMatch_ = entityTag
122829	return c
122830}
122831
122832// Context sets the context to be used in this call's Do method. Any
122833// pending HTTP request will be aborted if the provided context is
122834// canceled.
122835func (c *RegionHealthCheckServicesListCall) Context(ctx context.Context) *RegionHealthCheckServicesListCall {
122836	c.ctx_ = ctx
122837	return c
122838}
122839
122840// Header returns an http.Header that can be modified by the caller to
122841// add HTTP headers to the request.
122842func (c *RegionHealthCheckServicesListCall) Header() http.Header {
122843	if c.header_ == nil {
122844		c.header_ = make(http.Header)
122845	}
122846	return c.header_
122847}
122848
122849func (c *RegionHealthCheckServicesListCall) doRequest(alt string) (*http.Response, error) {
122850	reqHeaders := make(http.Header)
122851	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
122852	for k, v := range c.header_ {
122853		reqHeaders[k] = v
122854	}
122855	reqHeaders.Set("User-Agent", c.s.userAgent())
122856	if c.ifNoneMatch_ != "" {
122857		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
122858	}
122859	var body io.Reader = nil
122860	c.urlParams_.Set("alt", alt)
122861	c.urlParams_.Set("prettyPrint", "false")
122862	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices")
122863	urls += "?" + c.urlParams_.Encode()
122864	req, err := http.NewRequest("GET", urls, body)
122865	if err != nil {
122866		return nil, err
122867	}
122868	req.Header = reqHeaders
122869	googleapi.Expand(req.URL, map[string]string{
122870		"project": c.project,
122871		"region":  c.region,
122872	})
122873	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122874}
122875
122876// Do executes the "compute.regionHealthCheckServices.list" call.
122877// Exactly one of *HealthCheckServicesList or error will be non-nil. Any
122878// non-2xx status code is an error. Response headers are in either
122879// *HealthCheckServicesList.ServerResponse.Header or (if a response was
122880// returned at all) in error.(*googleapi.Error).Header. Use
122881// googleapi.IsNotModified to check whether the returned error was
122882// because http.StatusNotModified was returned.
122883func (c *RegionHealthCheckServicesListCall) Do(opts ...googleapi.CallOption) (*HealthCheckServicesList, error) {
122884	gensupport.SetOptions(c.urlParams_, opts...)
122885	res, err := c.doRequest("json")
122886	if res != nil && res.StatusCode == http.StatusNotModified {
122887		if res.Body != nil {
122888			res.Body.Close()
122889		}
122890		return nil, &googleapi.Error{
122891			Code:   res.StatusCode,
122892			Header: res.Header,
122893		}
122894	}
122895	if err != nil {
122896		return nil, err
122897	}
122898	defer googleapi.CloseBody(res)
122899	if err := googleapi.CheckResponse(res); err != nil {
122900		return nil, err
122901	}
122902	ret := &HealthCheckServicesList{
122903		ServerResponse: googleapi.ServerResponse{
122904			Header:         res.Header,
122905			HTTPStatusCode: res.StatusCode,
122906		},
122907	}
122908	target := &ret
122909	if err := gensupport.DecodeResponse(target, res); err != nil {
122910		return nil, err
122911	}
122912	return ret, nil
122913	// {
122914	//   "description": "Lists all the HealthCheckService resources that have been configured for the specified project in the given region.",
122915	//   "flatPath": "projects/{project}/regions/{region}/healthCheckServices",
122916	//   "httpMethod": "GET",
122917	//   "id": "compute.regionHealthCheckServices.list",
122918	//   "parameterOrder": [
122919	//     "project",
122920	//     "region"
122921	//   ],
122922	//   "parameters": {
122923	//     "filter": {
122924	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
122925	//       "location": "query",
122926	//       "type": "string"
122927	//     },
122928	//     "maxResults": {
122929	//       "default": "500",
122930	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
122931	//       "format": "uint32",
122932	//       "location": "query",
122933	//       "minimum": "0",
122934	//       "type": "integer"
122935	//     },
122936	//     "orderBy": {
122937	//       "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.",
122938	//       "location": "query",
122939	//       "type": "string"
122940	//     },
122941	//     "pageToken": {
122942	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
122943	//       "location": "query",
122944	//       "type": "string"
122945	//     },
122946	//     "project": {
122947	//       "description": "Project ID for this request.",
122948	//       "location": "path",
122949	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122950	//       "required": true,
122951	//       "type": "string"
122952	//     },
122953	//     "region": {
122954	//       "description": "Name of the region scoping this request.",
122955	//       "location": "path",
122956	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122957	//       "required": true,
122958	//       "type": "string"
122959	//     },
122960	//     "returnPartialSuccess": {
122961	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
122962	//       "location": "query",
122963	//       "type": "boolean"
122964	//     }
122965	//   },
122966	//   "path": "projects/{project}/regions/{region}/healthCheckServices",
122967	//   "response": {
122968	//     "$ref": "HealthCheckServicesList"
122969	//   },
122970	//   "scopes": [
122971	//     "https://www.googleapis.com/auth/cloud-platform",
122972	//     "https://www.googleapis.com/auth/compute",
122973	//     "https://www.googleapis.com/auth/compute.readonly"
122974	//   ]
122975	// }
122976
122977}
122978
122979// Pages invokes f for each page of results.
122980// A non-nil error returned from f will halt the iteration.
122981// The provided context supersedes any context provided to the Context method.
122982func (c *RegionHealthCheckServicesListCall) Pages(ctx context.Context, f func(*HealthCheckServicesList) error) error {
122983	c.ctx_ = ctx
122984	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
122985	for {
122986		x, err := c.Do()
122987		if err != nil {
122988			return err
122989		}
122990		if err := f(x); err != nil {
122991			return err
122992		}
122993		if x.NextPageToken == "" {
122994			return nil
122995		}
122996		c.PageToken(x.NextPageToken)
122997	}
122998}
122999
123000// method id "compute.regionHealthCheckServices.patch":
123001
123002type RegionHealthCheckServicesPatchCall struct {
123003	s                  *Service
123004	project            string
123005	region             string
123006	healthCheckService string
123007	healthcheckservice *HealthCheckService
123008	urlParams_         gensupport.URLParams
123009	ctx_               context.Context
123010	header_            http.Header
123011}
123012
123013// Patch: Updates the specified regional HealthCheckService resource
123014// with the data included in the request. This method supports PATCH
123015// semantics and uses the JSON merge patch format and processing rules.
123016//
123017// - healthCheckService: Name of the HealthCheckService to update. The
123018//   name must be 1-63 characters long, and comply with RFC1035.
123019// - project: Project ID for this request.
123020// - region: Name of the region scoping this request.
123021func (r *RegionHealthCheckServicesService) Patch(project string, region string, healthCheckService string, healthcheckservice *HealthCheckService) *RegionHealthCheckServicesPatchCall {
123022	c := &RegionHealthCheckServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123023	c.project = project
123024	c.region = region
123025	c.healthCheckService = healthCheckService
123026	c.healthcheckservice = healthcheckservice
123027	return c
123028}
123029
123030// RequestId sets the optional parameter "requestId": An optional
123031// request ID to identify requests. Specify a unique request ID so that
123032// if you must retry your request, the server will know to ignore the
123033// request if it has already been completed. For example, consider a
123034// situation where you make an initial request and the request times
123035// out. If you make the request again with the same request ID, the
123036// server can check if original operation with the same request ID was
123037// received, and if so, will ignore the second request. This prevents
123038// clients from accidentally creating duplicate commitments. The request
123039// ID must be a valid UUID with the exception that zero UUID is not
123040// supported ( 00000000-0000-0000-0000-000000000000).
123041func (c *RegionHealthCheckServicesPatchCall) RequestId(requestId string) *RegionHealthCheckServicesPatchCall {
123042	c.urlParams_.Set("requestId", requestId)
123043	return c
123044}
123045
123046// Fields allows partial responses to be retrieved. See
123047// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123048// for more information.
123049func (c *RegionHealthCheckServicesPatchCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesPatchCall {
123050	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123051	return c
123052}
123053
123054// Context sets the context to be used in this call's Do method. Any
123055// pending HTTP request will be aborted if the provided context is
123056// canceled.
123057func (c *RegionHealthCheckServicesPatchCall) Context(ctx context.Context) *RegionHealthCheckServicesPatchCall {
123058	c.ctx_ = ctx
123059	return c
123060}
123061
123062// Header returns an http.Header that can be modified by the caller to
123063// add HTTP headers to the request.
123064func (c *RegionHealthCheckServicesPatchCall) Header() http.Header {
123065	if c.header_ == nil {
123066		c.header_ = make(http.Header)
123067	}
123068	return c.header_
123069}
123070
123071func (c *RegionHealthCheckServicesPatchCall) doRequest(alt string) (*http.Response, error) {
123072	reqHeaders := make(http.Header)
123073	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
123074	for k, v := range c.header_ {
123075		reqHeaders[k] = v
123076	}
123077	reqHeaders.Set("User-Agent", c.s.userAgent())
123078	var body io.Reader = nil
123079	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheckservice)
123080	if err != nil {
123081		return nil, err
123082	}
123083	reqHeaders.Set("Content-Type", "application/json")
123084	c.urlParams_.Set("alt", alt)
123085	c.urlParams_.Set("prettyPrint", "false")
123086	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}")
123087	urls += "?" + c.urlParams_.Encode()
123088	req, err := http.NewRequest("PATCH", urls, body)
123089	if err != nil {
123090		return nil, err
123091	}
123092	req.Header = reqHeaders
123093	googleapi.Expand(req.URL, map[string]string{
123094		"project":            c.project,
123095		"region":             c.region,
123096		"healthCheckService": c.healthCheckService,
123097	})
123098	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123099}
123100
123101// Do executes the "compute.regionHealthCheckServices.patch" call.
123102// Exactly one of *Operation or error will be non-nil. Any non-2xx
123103// status code is an error. Response headers are in either
123104// *Operation.ServerResponse.Header or (if a response was returned at
123105// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123106// to check whether the returned error was because
123107// http.StatusNotModified was returned.
123108func (c *RegionHealthCheckServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123109	gensupport.SetOptions(c.urlParams_, opts...)
123110	res, err := c.doRequest("json")
123111	if res != nil && res.StatusCode == http.StatusNotModified {
123112		if res.Body != nil {
123113			res.Body.Close()
123114		}
123115		return nil, &googleapi.Error{
123116			Code:   res.StatusCode,
123117			Header: res.Header,
123118		}
123119	}
123120	if err != nil {
123121		return nil, err
123122	}
123123	defer googleapi.CloseBody(res)
123124	if err := googleapi.CheckResponse(res); err != nil {
123125		return nil, err
123126	}
123127	ret := &Operation{
123128		ServerResponse: googleapi.ServerResponse{
123129			Header:         res.Header,
123130			HTTPStatusCode: res.StatusCode,
123131		},
123132	}
123133	target := &ret
123134	if err := gensupport.DecodeResponse(target, res); err != nil {
123135		return nil, err
123136	}
123137	return ret, nil
123138	// {
123139	//   "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.",
123140	//   "flatPath": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}",
123141	//   "httpMethod": "PATCH",
123142	//   "id": "compute.regionHealthCheckServices.patch",
123143	//   "parameterOrder": [
123144	//     "project",
123145	//     "region",
123146	//     "healthCheckService"
123147	//   ],
123148	//   "parameters": {
123149	//     "healthCheckService": {
123150	//       "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.",
123151	//       "location": "path",
123152	//       "required": true,
123153	//       "type": "string"
123154	//     },
123155	//     "project": {
123156	//       "description": "Project ID for this request.",
123157	//       "location": "path",
123158	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123159	//       "required": true,
123160	//       "type": "string"
123161	//     },
123162	//     "region": {
123163	//       "description": "Name of the region scoping this request.",
123164	//       "location": "path",
123165	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123166	//       "required": true,
123167	//       "type": "string"
123168	//     },
123169	//     "requestId": {
123170	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
123171	//       "location": "query",
123172	//       "type": "string"
123173	//     }
123174	//   },
123175	//   "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}",
123176	//   "request": {
123177	//     "$ref": "HealthCheckService"
123178	//   },
123179	//   "response": {
123180	//     "$ref": "Operation"
123181	//   },
123182	//   "scopes": [
123183	//     "https://www.googleapis.com/auth/cloud-platform",
123184	//     "https://www.googleapis.com/auth/compute"
123185	//   ]
123186	// }
123187
123188}
123189
123190// method id "compute.regionHealthChecks.delete":
123191
123192type RegionHealthChecksDeleteCall struct {
123193	s           *Service
123194	project     string
123195	region      string
123196	healthCheck string
123197	urlParams_  gensupport.URLParams
123198	ctx_        context.Context
123199	header_     http.Header
123200}
123201
123202// Delete: Deletes the specified HealthCheck resource.
123203//
123204// - healthCheck: Name of the HealthCheck resource to delete.
123205// - project: Project ID for this request.
123206// - region: Name of the region scoping this request.
123207func (r *RegionHealthChecksService) Delete(project string, region string, healthCheck string) *RegionHealthChecksDeleteCall {
123208	c := &RegionHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123209	c.project = project
123210	c.region = region
123211	c.healthCheck = healthCheck
123212	return c
123213}
123214
123215// RequestId sets the optional parameter "requestId": An optional
123216// request ID to identify requests. Specify a unique request ID so that
123217// if you must retry your request, the server will know to ignore the
123218// request if it has already been completed. For example, consider a
123219// situation where you make an initial request and the request times
123220// out. If you make the request again with the same request ID, the
123221// server can check if original operation with the same request ID was
123222// received, and if so, will ignore the second request. This prevents
123223// clients from accidentally creating duplicate commitments. The request
123224// ID must be a valid UUID with the exception that zero UUID is not
123225// supported ( 00000000-0000-0000-0000-000000000000).
123226func (c *RegionHealthChecksDeleteCall) RequestId(requestId string) *RegionHealthChecksDeleteCall {
123227	c.urlParams_.Set("requestId", requestId)
123228	return c
123229}
123230
123231// Fields allows partial responses to be retrieved. See
123232// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123233// for more information.
123234func (c *RegionHealthChecksDeleteCall) Fields(s ...googleapi.Field) *RegionHealthChecksDeleteCall {
123235	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123236	return c
123237}
123238
123239// Context sets the context to be used in this call's Do method. Any
123240// pending HTTP request will be aborted if the provided context is
123241// canceled.
123242func (c *RegionHealthChecksDeleteCall) Context(ctx context.Context) *RegionHealthChecksDeleteCall {
123243	c.ctx_ = ctx
123244	return c
123245}
123246
123247// Header returns an http.Header that can be modified by the caller to
123248// add HTTP headers to the request.
123249func (c *RegionHealthChecksDeleteCall) Header() http.Header {
123250	if c.header_ == nil {
123251		c.header_ = make(http.Header)
123252	}
123253	return c.header_
123254}
123255
123256func (c *RegionHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
123257	reqHeaders := make(http.Header)
123258	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
123259	for k, v := range c.header_ {
123260		reqHeaders[k] = v
123261	}
123262	reqHeaders.Set("User-Agent", c.s.userAgent())
123263	var body io.Reader = nil
123264	c.urlParams_.Set("alt", alt)
123265	c.urlParams_.Set("prettyPrint", "false")
123266	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{healthCheck}")
123267	urls += "?" + c.urlParams_.Encode()
123268	req, err := http.NewRequest("DELETE", urls, body)
123269	if err != nil {
123270		return nil, err
123271	}
123272	req.Header = reqHeaders
123273	googleapi.Expand(req.URL, map[string]string{
123274		"project":     c.project,
123275		"region":      c.region,
123276		"healthCheck": c.healthCheck,
123277	})
123278	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123279}
123280
123281// Do executes the "compute.regionHealthChecks.delete" call.
123282// Exactly one of *Operation or error will be non-nil. Any non-2xx
123283// status code is an error. Response headers are in either
123284// *Operation.ServerResponse.Header or (if a response was returned at
123285// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123286// to check whether the returned error was because
123287// http.StatusNotModified was returned.
123288func (c *RegionHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123289	gensupport.SetOptions(c.urlParams_, opts...)
123290	res, err := c.doRequest("json")
123291	if res != nil && res.StatusCode == http.StatusNotModified {
123292		if res.Body != nil {
123293			res.Body.Close()
123294		}
123295		return nil, &googleapi.Error{
123296			Code:   res.StatusCode,
123297			Header: res.Header,
123298		}
123299	}
123300	if err != nil {
123301		return nil, err
123302	}
123303	defer googleapi.CloseBody(res)
123304	if err := googleapi.CheckResponse(res); err != nil {
123305		return nil, err
123306	}
123307	ret := &Operation{
123308		ServerResponse: googleapi.ServerResponse{
123309			Header:         res.Header,
123310			HTTPStatusCode: res.StatusCode,
123311		},
123312	}
123313	target := &ret
123314	if err := gensupport.DecodeResponse(target, res); err != nil {
123315		return nil, err
123316	}
123317	return ret, nil
123318	// {
123319	//   "description": "Deletes the specified HealthCheck resource.",
123320	//   "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
123321	//   "httpMethod": "DELETE",
123322	//   "id": "compute.regionHealthChecks.delete",
123323	//   "parameterOrder": [
123324	//     "project",
123325	//     "region",
123326	//     "healthCheck"
123327	//   ],
123328	//   "parameters": {
123329	//     "healthCheck": {
123330	//       "description": "Name of the HealthCheck resource to delete.",
123331	//       "location": "path",
123332	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
123333	//       "required": true,
123334	//       "type": "string"
123335	//     },
123336	//     "project": {
123337	//       "description": "Project ID for this request.",
123338	//       "location": "path",
123339	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123340	//       "required": true,
123341	//       "type": "string"
123342	//     },
123343	//     "region": {
123344	//       "description": "Name of the region scoping this request.",
123345	//       "location": "path",
123346	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123347	//       "required": true,
123348	//       "type": "string"
123349	//     },
123350	//     "requestId": {
123351	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
123352	//       "location": "query",
123353	//       "type": "string"
123354	//     }
123355	//   },
123356	//   "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
123357	//   "response": {
123358	//     "$ref": "Operation"
123359	//   },
123360	//   "scopes": [
123361	//     "https://www.googleapis.com/auth/cloud-platform",
123362	//     "https://www.googleapis.com/auth/compute"
123363	//   ]
123364	// }
123365
123366}
123367
123368// method id "compute.regionHealthChecks.get":
123369
123370type RegionHealthChecksGetCall struct {
123371	s            *Service
123372	project      string
123373	region       string
123374	healthCheck  string
123375	urlParams_   gensupport.URLParams
123376	ifNoneMatch_ string
123377	ctx_         context.Context
123378	header_      http.Header
123379}
123380
123381// Get: Returns the specified HealthCheck resource. Gets a list of
123382// available health checks by making a list() request.
123383//
123384// - healthCheck: Name of the HealthCheck resource to return.
123385// - project: Project ID for this request.
123386// - region: Name of the region scoping this request.
123387func (r *RegionHealthChecksService) Get(project string, region string, healthCheck string) *RegionHealthChecksGetCall {
123388	c := &RegionHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123389	c.project = project
123390	c.region = region
123391	c.healthCheck = healthCheck
123392	return c
123393}
123394
123395// Fields allows partial responses to be retrieved. See
123396// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123397// for more information.
123398func (c *RegionHealthChecksGetCall) Fields(s ...googleapi.Field) *RegionHealthChecksGetCall {
123399	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123400	return c
123401}
123402
123403// IfNoneMatch sets the optional parameter which makes the operation
123404// fail if the object's ETag matches the given value. This is useful for
123405// getting updates only after the object has changed since the last
123406// request. Use googleapi.IsNotModified to check whether the response
123407// error from Do is the result of In-None-Match.
123408func (c *RegionHealthChecksGetCall) IfNoneMatch(entityTag string) *RegionHealthChecksGetCall {
123409	c.ifNoneMatch_ = entityTag
123410	return c
123411}
123412
123413// Context sets the context to be used in this call's Do method. Any
123414// pending HTTP request will be aborted if the provided context is
123415// canceled.
123416func (c *RegionHealthChecksGetCall) Context(ctx context.Context) *RegionHealthChecksGetCall {
123417	c.ctx_ = ctx
123418	return c
123419}
123420
123421// Header returns an http.Header that can be modified by the caller to
123422// add HTTP headers to the request.
123423func (c *RegionHealthChecksGetCall) Header() http.Header {
123424	if c.header_ == nil {
123425		c.header_ = make(http.Header)
123426	}
123427	return c.header_
123428}
123429
123430func (c *RegionHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
123431	reqHeaders := make(http.Header)
123432	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
123433	for k, v := range c.header_ {
123434		reqHeaders[k] = v
123435	}
123436	reqHeaders.Set("User-Agent", c.s.userAgent())
123437	if c.ifNoneMatch_ != "" {
123438		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
123439	}
123440	var body io.Reader = nil
123441	c.urlParams_.Set("alt", alt)
123442	c.urlParams_.Set("prettyPrint", "false")
123443	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{healthCheck}")
123444	urls += "?" + c.urlParams_.Encode()
123445	req, err := http.NewRequest("GET", urls, body)
123446	if err != nil {
123447		return nil, err
123448	}
123449	req.Header = reqHeaders
123450	googleapi.Expand(req.URL, map[string]string{
123451		"project":     c.project,
123452		"region":      c.region,
123453		"healthCheck": c.healthCheck,
123454	})
123455	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123456}
123457
123458// Do executes the "compute.regionHealthChecks.get" call.
123459// Exactly one of *HealthCheck or error will be non-nil. Any non-2xx
123460// status code is an error. Response headers are in either
123461// *HealthCheck.ServerResponse.Header or (if a response was returned at
123462// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123463// to check whether the returned error was because
123464// http.StatusNotModified was returned.
123465func (c *RegionHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthCheck, error) {
123466	gensupport.SetOptions(c.urlParams_, opts...)
123467	res, err := c.doRequest("json")
123468	if res != nil && res.StatusCode == http.StatusNotModified {
123469		if res.Body != nil {
123470			res.Body.Close()
123471		}
123472		return nil, &googleapi.Error{
123473			Code:   res.StatusCode,
123474			Header: res.Header,
123475		}
123476	}
123477	if err != nil {
123478		return nil, err
123479	}
123480	defer googleapi.CloseBody(res)
123481	if err := googleapi.CheckResponse(res); err != nil {
123482		return nil, err
123483	}
123484	ret := &HealthCheck{
123485		ServerResponse: googleapi.ServerResponse{
123486			Header:         res.Header,
123487			HTTPStatusCode: res.StatusCode,
123488		},
123489	}
123490	target := &ret
123491	if err := gensupport.DecodeResponse(target, res); err != nil {
123492		return nil, err
123493	}
123494	return ret, nil
123495	// {
123496	//   "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.",
123497	//   "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
123498	//   "httpMethod": "GET",
123499	//   "id": "compute.regionHealthChecks.get",
123500	//   "parameterOrder": [
123501	//     "project",
123502	//     "region",
123503	//     "healthCheck"
123504	//   ],
123505	//   "parameters": {
123506	//     "healthCheck": {
123507	//       "description": "Name of the HealthCheck resource to return.",
123508	//       "location": "path",
123509	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
123510	//       "required": true,
123511	//       "type": "string"
123512	//     },
123513	//     "project": {
123514	//       "description": "Project ID for this request.",
123515	//       "location": "path",
123516	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123517	//       "required": true,
123518	//       "type": "string"
123519	//     },
123520	//     "region": {
123521	//       "description": "Name of the region scoping this request.",
123522	//       "location": "path",
123523	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123524	//       "required": true,
123525	//       "type": "string"
123526	//     }
123527	//   },
123528	//   "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
123529	//   "response": {
123530	//     "$ref": "HealthCheck"
123531	//   },
123532	//   "scopes": [
123533	//     "https://www.googleapis.com/auth/cloud-platform",
123534	//     "https://www.googleapis.com/auth/compute",
123535	//     "https://www.googleapis.com/auth/compute.readonly"
123536	//   ]
123537	// }
123538
123539}
123540
123541// method id "compute.regionHealthChecks.insert":
123542
123543type RegionHealthChecksInsertCall struct {
123544	s           *Service
123545	project     string
123546	region      string
123547	healthcheck *HealthCheck
123548	urlParams_  gensupport.URLParams
123549	ctx_        context.Context
123550	header_     http.Header
123551}
123552
123553// Insert: Creates a HealthCheck resource in the specified project using
123554// the data included in the request.
123555//
123556// - project: Project ID for this request.
123557// - region: Name of the region scoping this request.
123558func (r *RegionHealthChecksService) Insert(project string, region string, healthcheck *HealthCheck) *RegionHealthChecksInsertCall {
123559	c := &RegionHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123560	c.project = project
123561	c.region = region
123562	c.healthcheck = healthcheck
123563	return c
123564}
123565
123566// RequestId sets the optional parameter "requestId": An optional
123567// request ID to identify requests. Specify a unique request ID so that
123568// if you must retry your request, the server will know to ignore the
123569// request if it has already been completed. For example, consider a
123570// situation where you make an initial request and the request times
123571// out. If you make the request again with the same request ID, the
123572// server can check if original operation with the same request ID was
123573// received, and if so, will ignore the second request. This prevents
123574// clients from accidentally creating duplicate commitments. The request
123575// ID must be a valid UUID with the exception that zero UUID is not
123576// supported ( 00000000-0000-0000-0000-000000000000).
123577func (c *RegionHealthChecksInsertCall) RequestId(requestId string) *RegionHealthChecksInsertCall {
123578	c.urlParams_.Set("requestId", requestId)
123579	return c
123580}
123581
123582// Fields allows partial responses to be retrieved. See
123583// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123584// for more information.
123585func (c *RegionHealthChecksInsertCall) Fields(s ...googleapi.Field) *RegionHealthChecksInsertCall {
123586	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123587	return c
123588}
123589
123590// Context sets the context to be used in this call's Do method. Any
123591// pending HTTP request will be aborted if the provided context is
123592// canceled.
123593func (c *RegionHealthChecksInsertCall) Context(ctx context.Context) *RegionHealthChecksInsertCall {
123594	c.ctx_ = ctx
123595	return c
123596}
123597
123598// Header returns an http.Header that can be modified by the caller to
123599// add HTTP headers to the request.
123600func (c *RegionHealthChecksInsertCall) Header() http.Header {
123601	if c.header_ == nil {
123602		c.header_ = make(http.Header)
123603	}
123604	return c.header_
123605}
123606
123607func (c *RegionHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
123608	reqHeaders := make(http.Header)
123609	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
123610	for k, v := range c.header_ {
123611		reqHeaders[k] = v
123612	}
123613	reqHeaders.Set("User-Agent", c.s.userAgent())
123614	var body io.Reader = nil
123615	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
123616	if err != nil {
123617		return nil, err
123618	}
123619	reqHeaders.Set("Content-Type", "application/json")
123620	c.urlParams_.Set("alt", alt)
123621	c.urlParams_.Set("prettyPrint", "false")
123622	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks")
123623	urls += "?" + c.urlParams_.Encode()
123624	req, err := http.NewRequest("POST", urls, body)
123625	if err != nil {
123626		return nil, err
123627	}
123628	req.Header = reqHeaders
123629	googleapi.Expand(req.URL, map[string]string{
123630		"project": c.project,
123631		"region":  c.region,
123632	})
123633	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123634}
123635
123636// Do executes the "compute.regionHealthChecks.insert" call.
123637// Exactly one of *Operation or error will be non-nil. Any non-2xx
123638// status code is an error. Response headers are in either
123639// *Operation.ServerResponse.Header or (if a response was returned at
123640// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123641// to check whether the returned error was because
123642// http.StatusNotModified was returned.
123643func (c *RegionHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123644	gensupport.SetOptions(c.urlParams_, opts...)
123645	res, err := c.doRequest("json")
123646	if res != nil && res.StatusCode == http.StatusNotModified {
123647		if res.Body != nil {
123648			res.Body.Close()
123649		}
123650		return nil, &googleapi.Error{
123651			Code:   res.StatusCode,
123652			Header: res.Header,
123653		}
123654	}
123655	if err != nil {
123656		return nil, err
123657	}
123658	defer googleapi.CloseBody(res)
123659	if err := googleapi.CheckResponse(res); err != nil {
123660		return nil, err
123661	}
123662	ret := &Operation{
123663		ServerResponse: googleapi.ServerResponse{
123664			Header:         res.Header,
123665			HTTPStatusCode: res.StatusCode,
123666		},
123667	}
123668	target := &ret
123669	if err := gensupport.DecodeResponse(target, res); err != nil {
123670		return nil, err
123671	}
123672	return ret, nil
123673	// {
123674	//   "description": "Creates a HealthCheck resource in the specified project using the data included in the request.",
123675	//   "flatPath": "projects/{project}/regions/{region}/healthChecks",
123676	//   "httpMethod": "POST",
123677	//   "id": "compute.regionHealthChecks.insert",
123678	//   "parameterOrder": [
123679	//     "project",
123680	//     "region"
123681	//   ],
123682	//   "parameters": {
123683	//     "project": {
123684	//       "description": "Project ID for this request.",
123685	//       "location": "path",
123686	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123687	//       "required": true,
123688	//       "type": "string"
123689	//     },
123690	//     "region": {
123691	//       "description": "Name of the region scoping this request.",
123692	//       "location": "path",
123693	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123694	//       "required": true,
123695	//       "type": "string"
123696	//     },
123697	//     "requestId": {
123698	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
123699	//       "location": "query",
123700	//       "type": "string"
123701	//     }
123702	//   },
123703	//   "path": "projects/{project}/regions/{region}/healthChecks",
123704	//   "request": {
123705	//     "$ref": "HealthCheck"
123706	//   },
123707	//   "response": {
123708	//     "$ref": "Operation"
123709	//   },
123710	//   "scopes": [
123711	//     "https://www.googleapis.com/auth/cloud-platform",
123712	//     "https://www.googleapis.com/auth/compute"
123713	//   ]
123714	// }
123715
123716}
123717
123718// method id "compute.regionHealthChecks.list":
123719
123720type RegionHealthChecksListCall struct {
123721	s            *Service
123722	project      string
123723	region       string
123724	urlParams_   gensupport.URLParams
123725	ifNoneMatch_ string
123726	ctx_         context.Context
123727	header_      http.Header
123728}
123729
123730// List: Retrieves the list of HealthCheck resources available to the
123731// specified project.
123732//
123733// - project: Project ID for this request.
123734// - region: Name of the region scoping this request.
123735func (r *RegionHealthChecksService) List(project string, region string) *RegionHealthChecksListCall {
123736	c := &RegionHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123737	c.project = project
123738	c.region = region
123739	return c
123740}
123741
123742// Filter sets the optional parameter "filter": A filter expression that
123743// filters resources listed in the response. The expression must specify
123744// the field name, a comparison operator, and the value that you want to
123745// use for filtering. The value must be a string, a number, or a
123746// boolean. The comparison operator must be either `=`, `!=`, `>`, or
123747// `<`. For example, if you are filtering Compute Engine instances, you
123748// can exclude instances named `example-instance` by specifying `name !=
123749// example-instance`. You can also filter nested fields. For example,
123750// you could specify `scheduling.automaticRestart = false` to include
123751// instances only if they are not scheduled for automatic restarts. You
123752// can use filtering on nested fields to filter based on resource
123753// labels. To filter on multiple expressions, provide each separate
123754// expression within parentheses. For example: ```
123755// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
123756// ``` By default, each expression is an `AND` expression. However, you
123757// can include `AND` and `OR` expressions explicitly. For example: ```
123758// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
123759// AND (scheduling.automaticRestart = true) ```
123760func (c *RegionHealthChecksListCall) Filter(filter string) *RegionHealthChecksListCall {
123761	c.urlParams_.Set("filter", filter)
123762	return c
123763}
123764
123765// MaxResults sets the optional parameter "maxResults": The maximum
123766// number of results per page that should be returned. If the number of
123767// available results is larger than `maxResults`, Compute Engine returns
123768// a `nextPageToken` that can be used to get the next page of results in
123769// subsequent list requests. Acceptable values are `0` to `500`,
123770// inclusive. (Default: `500`)
123771func (c *RegionHealthChecksListCall) MaxResults(maxResults int64) *RegionHealthChecksListCall {
123772	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
123773	return c
123774}
123775
123776// OrderBy sets the optional parameter "orderBy": Sorts list results by
123777// a certain order. By default, results are returned in alphanumerical
123778// order based on the resource name. You can also sort results in
123779// descending order based on the creation timestamp using
123780// `orderBy="creationTimestamp desc". This sorts results based on the
123781// `creationTimestamp` field in reverse chronological order (newest
123782// result first). Use this to sort resources like operations so that the
123783// newest operation is returned first. Currently, only sorting by `name`
123784// or `creationTimestamp desc` is supported.
123785func (c *RegionHealthChecksListCall) OrderBy(orderBy string) *RegionHealthChecksListCall {
123786	c.urlParams_.Set("orderBy", orderBy)
123787	return c
123788}
123789
123790// PageToken sets the optional parameter "pageToken": Specifies a page
123791// token to use. Set `pageToken` to the `nextPageToken` returned by a
123792// previous list request to get the next page of results.
123793func (c *RegionHealthChecksListCall) PageToken(pageToken string) *RegionHealthChecksListCall {
123794	c.urlParams_.Set("pageToken", pageToken)
123795	return c
123796}
123797
123798// ReturnPartialSuccess sets the optional parameter
123799// "returnPartialSuccess": Opt-in for partial success behavior which
123800// provides partial results in case of failure. The default value is
123801// false.
123802func (c *RegionHealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionHealthChecksListCall {
123803	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
123804	return c
123805}
123806
123807// Fields allows partial responses to be retrieved. See
123808// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123809// for more information.
123810func (c *RegionHealthChecksListCall) Fields(s ...googleapi.Field) *RegionHealthChecksListCall {
123811	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123812	return c
123813}
123814
123815// IfNoneMatch sets the optional parameter which makes the operation
123816// fail if the object's ETag matches the given value. This is useful for
123817// getting updates only after the object has changed since the last
123818// request. Use googleapi.IsNotModified to check whether the response
123819// error from Do is the result of In-None-Match.
123820func (c *RegionHealthChecksListCall) IfNoneMatch(entityTag string) *RegionHealthChecksListCall {
123821	c.ifNoneMatch_ = entityTag
123822	return c
123823}
123824
123825// Context sets the context to be used in this call's Do method. Any
123826// pending HTTP request will be aborted if the provided context is
123827// canceled.
123828func (c *RegionHealthChecksListCall) Context(ctx context.Context) *RegionHealthChecksListCall {
123829	c.ctx_ = ctx
123830	return c
123831}
123832
123833// Header returns an http.Header that can be modified by the caller to
123834// add HTTP headers to the request.
123835func (c *RegionHealthChecksListCall) Header() http.Header {
123836	if c.header_ == nil {
123837		c.header_ = make(http.Header)
123838	}
123839	return c.header_
123840}
123841
123842func (c *RegionHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
123843	reqHeaders := make(http.Header)
123844	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
123845	for k, v := range c.header_ {
123846		reqHeaders[k] = v
123847	}
123848	reqHeaders.Set("User-Agent", c.s.userAgent())
123849	if c.ifNoneMatch_ != "" {
123850		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
123851	}
123852	var body io.Reader = nil
123853	c.urlParams_.Set("alt", alt)
123854	c.urlParams_.Set("prettyPrint", "false")
123855	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks")
123856	urls += "?" + c.urlParams_.Encode()
123857	req, err := http.NewRequest("GET", urls, body)
123858	if err != nil {
123859		return nil, err
123860	}
123861	req.Header = reqHeaders
123862	googleapi.Expand(req.URL, map[string]string{
123863		"project": c.project,
123864		"region":  c.region,
123865	})
123866	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123867}
123868
123869// Do executes the "compute.regionHealthChecks.list" call.
123870// Exactly one of *HealthCheckList or error will be non-nil. Any non-2xx
123871// status code is an error. Response headers are in either
123872// *HealthCheckList.ServerResponse.Header or (if a response was returned
123873// at all) in error.(*googleapi.Error).Header. Use
123874// googleapi.IsNotModified to check whether the returned error was
123875// because http.StatusNotModified was returned.
123876func (c *RegionHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckList, error) {
123877	gensupport.SetOptions(c.urlParams_, opts...)
123878	res, err := c.doRequest("json")
123879	if res != nil && res.StatusCode == http.StatusNotModified {
123880		if res.Body != nil {
123881			res.Body.Close()
123882		}
123883		return nil, &googleapi.Error{
123884			Code:   res.StatusCode,
123885			Header: res.Header,
123886		}
123887	}
123888	if err != nil {
123889		return nil, err
123890	}
123891	defer googleapi.CloseBody(res)
123892	if err := googleapi.CheckResponse(res); err != nil {
123893		return nil, err
123894	}
123895	ret := &HealthCheckList{
123896		ServerResponse: googleapi.ServerResponse{
123897			Header:         res.Header,
123898			HTTPStatusCode: res.StatusCode,
123899		},
123900	}
123901	target := &ret
123902	if err := gensupport.DecodeResponse(target, res); err != nil {
123903		return nil, err
123904	}
123905	return ret, nil
123906	// {
123907	//   "description": "Retrieves the list of HealthCheck resources available to the specified project.",
123908	//   "flatPath": "projects/{project}/regions/{region}/healthChecks",
123909	//   "httpMethod": "GET",
123910	//   "id": "compute.regionHealthChecks.list",
123911	//   "parameterOrder": [
123912	//     "project",
123913	//     "region"
123914	//   ],
123915	//   "parameters": {
123916	//     "filter": {
123917	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
123918	//       "location": "query",
123919	//       "type": "string"
123920	//     },
123921	//     "maxResults": {
123922	//       "default": "500",
123923	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
123924	//       "format": "uint32",
123925	//       "location": "query",
123926	//       "minimum": "0",
123927	//       "type": "integer"
123928	//     },
123929	//     "orderBy": {
123930	//       "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.",
123931	//       "location": "query",
123932	//       "type": "string"
123933	//     },
123934	//     "pageToken": {
123935	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
123936	//       "location": "query",
123937	//       "type": "string"
123938	//     },
123939	//     "project": {
123940	//       "description": "Project ID for this request.",
123941	//       "location": "path",
123942	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123943	//       "required": true,
123944	//       "type": "string"
123945	//     },
123946	//     "region": {
123947	//       "description": "Name of the region scoping this request.",
123948	//       "location": "path",
123949	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123950	//       "required": true,
123951	//       "type": "string"
123952	//     },
123953	//     "returnPartialSuccess": {
123954	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
123955	//       "location": "query",
123956	//       "type": "boolean"
123957	//     }
123958	//   },
123959	//   "path": "projects/{project}/regions/{region}/healthChecks",
123960	//   "response": {
123961	//     "$ref": "HealthCheckList"
123962	//   },
123963	//   "scopes": [
123964	//     "https://www.googleapis.com/auth/cloud-platform",
123965	//     "https://www.googleapis.com/auth/compute",
123966	//     "https://www.googleapis.com/auth/compute.readonly"
123967	//   ]
123968	// }
123969
123970}
123971
123972// Pages invokes f for each page of results.
123973// A non-nil error returned from f will halt the iteration.
123974// The provided context supersedes any context provided to the Context method.
123975func (c *RegionHealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckList) error) error {
123976	c.ctx_ = ctx
123977	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
123978	for {
123979		x, err := c.Do()
123980		if err != nil {
123981			return err
123982		}
123983		if err := f(x); err != nil {
123984			return err
123985		}
123986		if x.NextPageToken == "" {
123987			return nil
123988		}
123989		c.PageToken(x.NextPageToken)
123990	}
123991}
123992
123993// method id "compute.regionHealthChecks.patch":
123994
123995type RegionHealthChecksPatchCall struct {
123996	s           *Service
123997	project     string
123998	region      string
123999	healthCheck string
124000	healthcheck *HealthCheck
124001	urlParams_  gensupport.URLParams
124002	ctx_        context.Context
124003	header_     http.Header
124004}
124005
124006// Patch: Updates a HealthCheck resource in the specified project using
124007// the data included in the request. This method supports PATCH
124008// semantics and uses the JSON merge patch format and processing rules.
124009//
124010// - healthCheck: Name of the HealthCheck resource to patch.
124011// - project: Project ID for this request.
124012// - region: Name of the region scoping this request.
124013func (r *RegionHealthChecksService) Patch(project string, region string, healthCheck string, healthcheck *HealthCheck) *RegionHealthChecksPatchCall {
124014	c := &RegionHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124015	c.project = project
124016	c.region = region
124017	c.healthCheck = healthCheck
124018	c.healthcheck = healthcheck
124019	return c
124020}
124021
124022// RequestId sets the optional parameter "requestId": An optional
124023// request ID to identify requests. Specify a unique request ID so that
124024// if you must retry your request, the server will know to ignore the
124025// request if it has already been completed. For example, consider a
124026// situation where you make an initial request and the request times
124027// out. If you make the request again with the same request ID, the
124028// server can check if original operation with the same request ID was
124029// received, and if so, will ignore the second request. This prevents
124030// clients from accidentally creating duplicate commitments. The request
124031// ID must be a valid UUID with the exception that zero UUID is not
124032// supported ( 00000000-0000-0000-0000-000000000000).
124033func (c *RegionHealthChecksPatchCall) RequestId(requestId string) *RegionHealthChecksPatchCall {
124034	c.urlParams_.Set("requestId", requestId)
124035	return c
124036}
124037
124038// Fields allows partial responses to be retrieved. See
124039// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124040// for more information.
124041func (c *RegionHealthChecksPatchCall) Fields(s ...googleapi.Field) *RegionHealthChecksPatchCall {
124042	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124043	return c
124044}
124045
124046// Context sets the context to be used in this call's Do method. Any
124047// pending HTTP request will be aborted if the provided context is
124048// canceled.
124049func (c *RegionHealthChecksPatchCall) Context(ctx context.Context) *RegionHealthChecksPatchCall {
124050	c.ctx_ = ctx
124051	return c
124052}
124053
124054// Header returns an http.Header that can be modified by the caller to
124055// add HTTP headers to the request.
124056func (c *RegionHealthChecksPatchCall) Header() http.Header {
124057	if c.header_ == nil {
124058		c.header_ = make(http.Header)
124059	}
124060	return c.header_
124061}
124062
124063func (c *RegionHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
124064	reqHeaders := make(http.Header)
124065	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
124066	for k, v := range c.header_ {
124067		reqHeaders[k] = v
124068	}
124069	reqHeaders.Set("User-Agent", c.s.userAgent())
124070	var body io.Reader = nil
124071	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
124072	if err != nil {
124073		return nil, err
124074	}
124075	reqHeaders.Set("Content-Type", "application/json")
124076	c.urlParams_.Set("alt", alt)
124077	c.urlParams_.Set("prettyPrint", "false")
124078	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{healthCheck}")
124079	urls += "?" + c.urlParams_.Encode()
124080	req, err := http.NewRequest("PATCH", urls, body)
124081	if err != nil {
124082		return nil, err
124083	}
124084	req.Header = reqHeaders
124085	googleapi.Expand(req.URL, map[string]string{
124086		"project":     c.project,
124087		"region":      c.region,
124088		"healthCheck": c.healthCheck,
124089	})
124090	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124091}
124092
124093// Do executes the "compute.regionHealthChecks.patch" call.
124094// Exactly one of *Operation or error will be non-nil. Any non-2xx
124095// status code is an error. Response headers are in either
124096// *Operation.ServerResponse.Header or (if a response was returned at
124097// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124098// to check whether the returned error was because
124099// http.StatusNotModified was returned.
124100func (c *RegionHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124101	gensupport.SetOptions(c.urlParams_, opts...)
124102	res, err := c.doRequest("json")
124103	if res != nil && res.StatusCode == http.StatusNotModified {
124104		if res.Body != nil {
124105			res.Body.Close()
124106		}
124107		return nil, &googleapi.Error{
124108			Code:   res.StatusCode,
124109			Header: res.Header,
124110		}
124111	}
124112	if err != nil {
124113		return nil, err
124114	}
124115	defer googleapi.CloseBody(res)
124116	if err := googleapi.CheckResponse(res); err != nil {
124117		return nil, err
124118	}
124119	ret := &Operation{
124120		ServerResponse: googleapi.ServerResponse{
124121			Header:         res.Header,
124122			HTTPStatusCode: res.StatusCode,
124123		},
124124	}
124125	target := &ret
124126	if err := gensupport.DecodeResponse(target, res); err != nil {
124127		return nil, err
124128	}
124129	return ret, nil
124130	// {
124131	//   "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.",
124132	//   "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
124133	//   "httpMethod": "PATCH",
124134	//   "id": "compute.regionHealthChecks.patch",
124135	//   "parameterOrder": [
124136	//     "project",
124137	//     "region",
124138	//     "healthCheck"
124139	//   ],
124140	//   "parameters": {
124141	//     "healthCheck": {
124142	//       "description": "Name of the HealthCheck resource to patch.",
124143	//       "location": "path",
124144	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
124145	//       "required": true,
124146	//       "type": "string"
124147	//     },
124148	//     "project": {
124149	//       "description": "Project ID for this request.",
124150	//       "location": "path",
124151	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124152	//       "required": true,
124153	//       "type": "string"
124154	//     },
124155	//     "region": {
124156	//       "description": "Name of the region scoping this request.",
124157	//       "location": "path",
124158	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
124159	//       "required": true,
124160	//       "type": "string"
124161	//     },
124162	//     "requestId": {
124163	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
124164	//       "location": "query",
124165	//       "type": "string"
124166	//     }
124167	//   },
124168	//   "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
124169	//   "request": {
124170	//     "$ref": "HealthCheck"
124171	//   },
124172	//   "response": {
124173	//     "$ref": "Operation"
124174	//   },
124175	//   "scopes": [
124176	//     "https://www.googleapis.com/auth/cloud-platform",
124177	//     "https://www.googleapis.com/auth/compute"
124178	//   ]
124179	// }
124180
124181}
124182
124183// method id "compute.regionHealthChecks.update":
124184
124185type RegionHealthChecksUpdateCall struct {
124186	s           *Service
124187	project     string
124188	region      string
124189	healthCheck string
124190	healthcheck *HealthCheck
124191	urlParams_  gensupport.URLParams
124192	ctx_        context.Context
124193	header_     http.Header
124194}
124195
124196// Update: Updates a HealthCheck resource in the specified project using
124197// the data included in the request.
124198//
124199// - healthCheck: Name of the HealthCheck resource to update.
124200// - project: Project ID for this request.
124201// - region: Name of the region scoping this request.
124202func (r *RegionHealthChecksService) Update(project string, region string, healthCheck string, healthcheck *HealthCheck) *RegionHealthChecksUpdateCall {
124203	c := &RegionHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124204	c.project = project
124205	c.region = region
124206	c.healthCheck = healthCheck
124207	c.healthcheck = healthcheck
124208	return c
124209}
124210
124211// RequestId sets the optional parameter "requestId": An optional
124212// request ID to identify requests. Specify a unique request ID so that
124213// if you must retry your request, the server will know to ignore the
124214// request if it has already been completed. For example, consider a
124215// situation where you make an initial request and the request times
124216// out. If you make the request again with the same request ID, the
124217// server can check if original operation with the same request ID was
124218// received, and if so, will ignore the second request. This prevents
124219// clients from accidentally creating duplicate commitments. The request
124220// ID must be a valid UUID with the exception that zero UUID is not
124221// supported ( 00000000-0000-0000-0000-000000000000).
124222func (c *RegionHealthChecksUpdateCall) RequestId(requestId string) *RegionHealthChecksUpdateCall {
124223	c.urlParams_.Set("requestId", requestId)
124224	return c
124225}
124226
124227// Fields allows partial responses to be retrieved. See
124228// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124229// for more information.
124230func (c *RegionHealthChecksUpdateCall) Fields(s ...googleapi.Field) *RegionHealthChecksUpdateCall {
124231	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124232	return c
124233}
124234
124235// Context sets the context to be used in this call's Do method. Any
124236// pending HTTP request will be aborted if the provided context is
124237// canceled.
124238func (c *RegionHealthChecksUpdateCall) Context(ctx context.Context) *RegionHealthChecksUpdateCall {
124239	c.ctx_ = ctx
124240	return c
124241}
124242
124243// Header returns an http.Header that can be modified by the caller to
124244// add HTTP headers to the request.
124245func (c *RegionHealthChecksUpdateCall) Header() http.Header {
124246	if c.header_ == nil {
124247		c.header_ = make(http.Header)
124248	}
124249	return c.header_
124250}
124251
124252func (c *RegionHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
124253	reqHeaders := make(http.Header)
124254	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
124255	for k, v := range c.header_ {
124256		reqHeaders[k] = v
124257	}
124258	reqHeaders.Set("User-Agent", c.s.userAgent())
124259	var body io.Reader = nil
124260	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
124261	if err != nil {
124262		return nil, err
124263	}
124264	reqHeaders.Set("Content-Type", "application/json")
124265	c.urlParams_.Set("alt", alt)
124266	c.urlParams_.Set("prettyPrint", "false")
124267	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{healthCheck}")
124268	urls += "?" + c.urlParams_.Encode()
124269	req, err := http.NewRequest("PUT", urls, body)
124270	if err != nil {
124271		return nil, err
124272	}
124273	req.Header = reqHeaders
124274	googleapi.Expand(req.URL, map[string]string{
124275		"project":     c.project,
124276		"region":      c.region,
124277		"healthCheck": c.healthCheck,
124278	})
124279	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124280}
124281
124282// Do executes the "compute.regionHealthChecks.update" call.
124283// Exactly one of *Operation or error will be non-nil. Any non-2xx
124284// status code is an error. Response headers are in either
124285// *Operation.ServerResponse.Header or (if a response was returned at
124286// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124287// to check whether the returned error was because
124288// http.StatusNotModified was returned.
124289func (c *RegionHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124290	gensupport.SetOptions(c.urlParams_, opts...)
124291	res, err := c.doRequest("json")
124292	if res != nil && res.StatusCode == http.StatusNotModified {
124293		if res.Body != nil {
124294			res.Body.Close()
124295		}
124296		return nil, &googleapi.Error{
124297			Code:   res.StatusCode,
124298			Header: res.Header,
124299		}
124300	}
124301	if err != nil {
124302		return nil, err
124303	}
124304	defer googleapi.CloseBody(res)
124305	if err := googleapi.CheckResponse(res); err != nil {
124306		return nil, err
124307	}
124308	ret := &Operation{
124309		ServerResponse: googleapi.ServerResponse{
124310			Header:         res.Header,
124311			HTTPStatusCode: res.StatusCode,
124312		},
124313	}
124314	target := &ret
124315	if err := gensupport.DecodeResponse(target, res); err != nil {
124316		return nil, err
124317	}
124318	return ret, nil
124319	// {
124320	//   "description": "Updates a HealthCheck resource in the specified project using the data included in the request.",
124321	//   "flatPath": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
124322	//   "httpMethod": "PUT",
124323	//   "id": "compute.regionHealthChecks.update",
124324	//   "parameterOrder": [
124325	//     "project",
124326	//     "region",
124327	//     "healthCheck"
124328	//   ],
124329	//   "parameters": {
124330	//     "healthCheck": {
124331	//       "description": "Name of the HealthCheck resource to update.",
124332	//       "location": "path",
124333	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
124334	//       "required": true,
124335	//       "type": "string"
124336	//     },
124337	//     "project": {
124338	//       "description": "Project ID for this request.",
124339	//       "location": "path",
124340	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124341	//       "required": true,
124342	//       "type": "string"
124343	//     },
124344	//     "region": {
124345	//       "description": "Name of the region scoping this request.",
124346	//       "location": "path",
124347	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
124348	//       "required": true,
124349	//       "type": "string"
124350	//     },
124351	//     "requestId": {
124352	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
124353	//       "location": "query",
124354	//       "type": "string"
124355	//     }
124356	//   },
124357	//   "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
124358	//   "request": {
124359	//     "$ref": "HealthCheck"
124360	//   },
124361	//   "response": {
124362	//     "$ref": "Operation"
124363	//   },
124364	//   "scopes": [
124365	//     "https://www.googleapis.com/auth/cloud-platform",
124366	//     "https://www.googleapis.com/auth/compute"
124367	//   ]
124368	// }
124369
124370}
124371
124372// method id "compute.regionInstanceGroupManagers.abandonInstances":
124373
124374type RegionInstanceGroupManagersAbandonInstancesCall struct {
124375	s                                                  *Service
124376	project                                            string
124377	region                                             string
124378	instanceGroupManager                               string
124379	regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest
124380	urlParams_                                         gensupport.URLParams
124381	ctx_                                               context.Context
124382	header_                                            http.Header
124383}
124384
124385// AbandonInstances: Flags the specified instances to be immediately
124386// removed from the managed instance group. Abandoning an instance does
124387// not delete the instance, but it does remove the instance from any
124388// target pools that are applied by the managed instance group. This
124389// method reduces the targetSize of the managed instance group by the
124390// number of instances that you abandon. This operation is marked as
124391// DONE when the action is scheduled even if the instances have not yet
124392// been removed from the group. You must separately verify the status of
124393// the abandoning action with the listmanagedinstances method. If the
124394// group is part of a backend service that has enabled connection
124395// draining, it can take up to 60 seconds after the connection draining
124396// duration has elapsed before the VM instance is removed or deleted.
124397// You can specify a maximum of 1000 instances with this method per
124398// request.
124399//
124400// - instanceGroupManager: Name of the managed instance group.
124401// - project: Project ID for this request.
124402// - region: Name of the region scoping this request.
124403func (r *RegionInstanceGroupManagersService) AbandonInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest) *RegionInstanceGroupManagersAbandonInstancesCall {
124404	c := &RegionInstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124405	c.project = project
124406	c.region = region
124407	c.instanceGroupManager = instanceGroupManager
124408	c.regioninstancegroupmanagersabandoninstancesrequest = regioninstancegroupmanagersabandoninstancesrequest
124409	return c
124410}
124411
124412// RequestId sets the optional parameter "requestId": An optional
124413// request ID to identify requests. Specify a unique request ID so that
124414// if you must retry your request, the server will know to ignore the
124415// request if it has already been completed. For example, consider a
124416// situation where you make an initial request and the request times
124417// out. If you make the request again with the same request ID, the
124418// server can check if original operation with the same request ID was
124419// received, and if so, will ignore the second request. This prevents
124420// clients from accidentally creating duplicate commitments. The request
124421// ID must be a valid UUID with the exception that zero UUID is not
124422// supported ( 00000000-0000-0000-0000-000000000000).
124423func (c *RegionInstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersAbandonInstancesCall {
124424	c.urlParams_.Set("requestId", requestId)
124425	return c
124426}
124427
124428// Fields allows partial responses to be retrieved. See
124429// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124430// for more information.
124431func (c *RegionInstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersAbandonInstancesCall {
124432	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124433	return c
124434}
124435
124436// Context sets the context to be used in this call's Do method. Any
124437// pending HTTP request will be aborted if the provided context is
124438// canceled.
124439func (c *RegionInstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersAbandonInstancesCall {
124440	c.ctx_ = ctx
124441	return c
124442}
124443
124444// Header returns an http.Header that can be modified by the caller to
124445// add HTTP headers to the request.
124446func (c *RegionInstanceGroupManagersAbandonInstancesCall) Header() http.Header {
124447	if c.header_ == nil {
124448		c.header_ = make(http.Header)
124449	}
124450	return c.header_
124451}
124452
124453func (c *RegionInstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) {
124454	reqHeaders := make(http.Header)
124455	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
124456	for k, v := range c.header_ {
124457		reqHeaders[k] = v
124458	}
124459	reqHeaders.Set("User-Agent", c.s.userAgent())
124460	var body io.Reader = nil
124461	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersabandoninstancesrequest)
124462	if err != nil {
124463		return nil, err
124464	}
124465	reqHeaders.Set("Content-Type", "application/json")
124466	c.urlParams_.Set("alt", alt)
124467	c.urlParams_.Set("prettyPrint", "false")
124468	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances")
124469	urls += "?" + c.urlParams_.Encode()
124470	req, err := http.NewRequest("POST", urls, body)
124471	if err != nil {
124472		return nil, err
124473	}
124474	req.Header = reqHeaders
124475	googleapi.Expand(req.URL, map[string]string{
124476		"project":              c.project,
124477		"region":               c.region,
124478		"instanceGroupManager": c.instanceGroupManager,
124479	})
124480	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124481}
124482
124483// Do executes the "compute.regionInstanceGroupManagers.abandonInstances" call.
124484// Exactly one of *Operation or error will be non-nil. Any non-2xx
124485// status code is an error. Response headers are in either
124486// *Operation.ServerResponse.Header or (if a response was returned at
124487// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124488// to check whether the returned error was because
124489// http.StatusNotModified was returned.
124490func (c *RegionInstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124491	gensupport.SetOptions(c.urlParams_, opts...)
124492	res, err := c.doRequest("json")
124493	if res != nil && res.StatusCode == http.StatusNotModified {
124494		if res.Body != nil {
124495			res.Body.Close()
124496		}
124497		return nil, &googleapi.Error{
124498			Code:   res.StatusCode,
124499			Header: res.Header,
124500		}
124501	}
124502	if err != nil {
124503		return nil, err
124504	}
124505	defer googleapi.CloseBody(res)
124506	if err := googleapi.CheckResponse(res); err != nil {
124507		return nil, err
124508	}
124509	ret := &Operation{
124510		ServerResponse: googleapi.ServerResponse{
124511			Header:         res.Header,
124512			HTTPStatusCode: res.StatusCode,
124513		},
124514	}
124515	target := &ret
124516	if err := gensupport.DecodeResponse(target, res); err != nil {
124517		return nil, err
124518	}
124519	return ret, nil
124520	// {
124521	//   "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.",
124522	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
124523	//   "httpMethod": "POST",
124524	//   "id": "compute.regionInstanceGroupManagers.abandonInstances",
124525	//   "parameterOrder": [
124526	//     "project",
124527	//     "region",
124528	//     "instanceGroupManager"
124529	//   ],
124530	//   "parameters": {
124531	//     "instanceGroupManager": {
124532	//       "description": "Name of the managed instance group.",
124533	//       "location": "path",
124534	//       "required": true,
124535	//       "type": "string"
124536	//     },
124537	//     "project": {
124538	//       "description": "Project ID for this request.",
124539	//       "location": "path",
124540	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124541	//       "required": true,
124542	//       "type": "string"
124543	//     },
124544	//     "region": {
124545	//       "description": "Name of the region scoping this request.",
124546	//       "location": "path",
124547	//       "required": true,
124548	//       "type": "string"
124549	//     },
124550	//     "requestId": {
124551	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
124552	//       "location": "query",
124553	//       "type": "string"
124554	//     }
124555	//   },
124556	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
124557	//   "request": {
124558	//     "$ref": "RegionInstanceGroupManagersAbandonInstancesRequest"
124559	//   },
124560	//   "response": {
124561	//     "$ref": "Operation"
124562	//   },
124563	//   "scopes": [
124564	//     "https://www.googleapis.com/auth/cloud-platform",
124565	//     "https://www.googleapis.com/auth/compute"
124566	//   ]
124567	// }
124568
124569}
124570
124571// method id "compute.regionInstanceGroupManagers.applyUpdatesToInstances":
124572
124573type RegionInstanceGroupManagersApplyUpdatesToInstancesCall struct {
124574	s                                              *Service
124575	project                                        string
124576	region                                         string
124577	instanceGroupManager                           string
124578	regioninstancegroupmanagersapplyupdatesrequest *RegionInstanceGroupManagersApplyUpdatesRequest
124579	urlParams_                                     gensupport.URLParams
124580	ctx_                                           context.Context
124581	header_                                        http.Header
124582}
124583
124584// ApplyUpdatesToInstances: Apply updates to selected instances the
124585// managed instance group.
124586//
124587// - instanceGroupManager: The name of the managed instance group,
124588//   should conform to RFC1035.
124589// - project: Project ID for this request.
124590// - region: Name of the region scoping this request, should conform to
124591//   RFC1035.
124592func (r *RegionInstanceGroupManagersService) ApplyUpdatesToInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersapplyupdatesrequest *RegionInstanceGroupManagersApplyUpdatesRequest) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
124593	c := &RegionInstanceGroupManagersApplyUpdatesToInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124594	c.project = project
124595	c.region = region
124596	c.instanceGroupManager = instanceGroupManager
124597	c.regioninstancegroupmanagersapplyupdatesrequest = regioninstancegroupmanagersapplyupdatesrequest
124598	return c
124599}
124600
124601// Fields allows partial responses to be retrieved. See
124602// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124603// for more information.
124604func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
124605	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124606	return c
124607}
124608
124609// Context sets the context to be used in this call's Do method. Any
124610// pending HTTP request will be aborted if the provided context is
124611// canceled.
124612func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
124613	c.ctx_ = ctx
124614	return c
124615}
124616
124617// Header returns an http.Header that can be modified by the caller to
124618// add HTTP headers to the request.
124619func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Header() http.Header {
124620	if c.header_ == nil {
124621		c.header_ = make(http.Header)
124622	}
124623	return c.header_
124624}
124625
124626func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) doRequest(alt string) (*http.Response, error) {
124627	reqHeaders := make(http.Header)
124628	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
124629	for k, v := range c.header_ {
124630		reqHeaders[k] = v
124631	}
124632	reqHeaders.Set("User-Agent", c.s.userAgent())
124633	var body io.Reader = nil
124634	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersapplyupdatesrequest)
124635	if err != nil {
124636		return nil, err
124637	}
124638	reqHeaders.Set("Content-Type", "application/json")
124639	c.urlParams_.Set("alt", alt)
124640	c.urlParams_.Set("prettyPrint", "false")
124641	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances")
124642	urls += "?" + c.urlParams_.Encode()
124643	req, err := http.NewRequest("POST", urls, body)
124644	if err != nil {
124645		return nil, err
124646	}
124647	req.Header = reqHeaders
124648	googleapi.Expand(req.URL, map[string]string{
124649		"project":              c.project,
124650		"region":               c.region,
124651		"instanceGroupManager": c.instanceGroupManager,
124652	})
124653	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124654}
124655
124656// Do executes the "compute.regionInstanceGroupManagers.applyUpdatesToInstances" call.
124657// Exactly one of *Operation or error will be non-nil. Any non-2xx
124658// status code is an error. Response headers are in either
124659// *Operation.ServerResponse.Header or (if a response was returned at
124660// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124661// to check whether the returned error was because
124662// http.StatusNotModified was returned.
124663func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124664	gensupport.SetOptions(c.urlParams_, opts...)
124665	res, err := c.doRequest("json")
124666	if res != nil && res.StatusCode == http.StatusNotModified {
124667		if res.Body != nil {
124668			res.Body.Close()
124669		}
124670		return nil, &googleapi.Error{
124671			Code:   res.StatusCode,
124672			Header: res.Header,
124673		}
124674	}
124675	if err != nil {
124676		return nil, err
124677	}
124678	defer googleapi.CloseBody(res)
124679	if err := googleapi.CheckResponse(res); err != nil {
124680		return nil, err
124681	}
124682	ret := &Operation{
124683		ServerResponse: googleapi.ServerResponse{
124684			Header:         res.Header,
124685			HTTPStatusCode: res.StatusCode,
124686		},
124687	}
124688	target := &ret
124689	if err := gensupport.DecodeResponse(target, res); err != nil {
124690		return nil, err
124691	}
124692	return ret, nil
124693	// {
124694	//   "description": "Apply updates to selected instances the managed instance group.",
124695	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
124696	//   "httpMethod": "POST",
124697	//   "id": "compute.regionInstanceGroupManagers.applyUpdatesToInstances",
124698	//   "parameterOrder": [
124699	//     "project",
124700	//     "region",
124701	//     "instanceGroupManager"
124702	//   ],
124703	//   "parameters": {
124704	//     "instanceGroupManager": {
124705	//       "description": "The name of the managed instance group, should conform to RFC1035.",
124706	//       "location": "path",
124707	//       "required": true,
124708	//       "type": "string"
124709	//     },
124710	//     "project": {
124711	//       "description": "Project ID for this request.",
124712	//       "location": "path",
124713	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124714	//       "required": true,
124715	//       "type": "string"
124716	//     },
124717	//     "region": {
124718	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
124719	//       "location": "path",
124720	//       "required": true,
124721	//       "type": "string"
124722	//     }
124723	//   },
124724	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
124725	//   "request": {
124726	//     "$ref": "RegionInstanceGroupManagersApplyUpdatesRequest"
124727	//   },
124728	//   "response": {
124729	//     "$ref": "Operation"
124730	//   },
124731	//   "scopes": [
124732	//     "https://www.googleapis.com/auth/cloud-platform",
124733	//     "https://www.googleapis.com/auth/compute"
124734	//   ]
124735	// }
124736
124737}
124738
124739// method id "compute.regionInstanceGroupManagers.createInstances":
124740
124741type RegionInstanceGroupManagersCreateInstancesCall struct {
124742	s                                                 *Service
124743	project                                           string
124744	region                                            string
124745	instanceGroupManager                              string
124746	regioninstancegroupmanagerscreateinstancesrequest *RegionInstanceGroupManagersCreateInstancesRequest
124747	urlParams_                                        gensupport.URLParams
124748	ctx_                                              context.Context
124749	header_                                           http.Header
124750}
124751
124752// CreateInstances: Creates instances with per-instance configs in this
124753// regional managed instance group. Instances are created using the
124754// current instance template. The create instances operation is marked
124755// DONE if the createInstances request is successful. The underlying
124756// actions take additional time. You must separately verify the status
124757// of the creating or actions with the listmanagedinstances method.
124758//
124759// - instanceGroupManager: The name of the managed instance group. It
124760//   should conform to RFC1035.
124761// - project: Project ID for this request.
124762// - region: The name of the region where the managed instance group is
124763//   located. It should conform to RFC1035.
124764func (r *RegionInstanceGroupManagersService) CreateInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagerscreateinstancesrequest *RegionInstanceGroupManagersCreateInstancesRequest) *RegionInstanceGroupManagersCreateInstancesCall {
124765	c := &RegionInstanceGroupManagersCreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124766	c.project = project
124767	c.region = region
124768	c.instanceGroupManager = instanceGroupManager
124769	c.regioninstancegroupmanagerscreateinstancesrequest = regioninstancegroupmanagerscreateinstancesrequest
124770	return c
124771}
124772
124773// RequestId sets the optional parameter "requestId": An optional
124774// request ID to identify requests. Specify a unique request ID so that
124775// if you must retry your request, the server will know to ignore the
124776// request if it has already been completed. For example, consider a
124777// situation where you make an initial request and the request times
124778// out. If you make the request again with the same request ID, the
124779// server can check if original operation with the same request ID was
124780// received, and if so, will ignore the second request. The request ID
124781// must be a valid UUID with the exception that zero UUID is not
124782// supported ( 00000000-0000-0000-0000-000000000000).
124783func (c *RegionInstanceGroupManagersCreateInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersCreateInstancesCall {
124784	c.urlParams_.Set("requestId", requestId)
124785	return c
124786}
124787
124788// Fields allows partial responses to be retrieved. See
124789// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124790// for more information.
124791func (c *RegionInstanceGroupManagersCreateInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersCreateInstancesCall {
124792	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124793	return c
124794}
124795
124796// Context sets the context to be used in this call's Do method. Any
124797// pending HTTP request will be aborted if the provided context is
124798// canceled.
124799func (c *RegionInstanceGroupManagersCreateInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersCreateInstancesCall {
124800	c.ctx_ = ctx
124801	return c
124802}
124803
124804// Header returns an http.Header that can be modified by the caller to
124805// add HTTP headers to the request.
124806func (c *RegionInstanceGroupManagersCreateInstancesCall) Header() http.Header {
124807	if c.header_ == nil {
124808		c.header_ = make(http.Header)
124809	}
124810	return c.header_
124811}
124812
124813func (c *RegionInstanceGroupManagersCreateInstancesCall) doRequest(alt string) (*http.Response, error) {
124814	reqHeaders := make(http.Header)
124815	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
124816	for k, v := range c.header_ {
124817		reqHeaders[k] = v
124818	}
124819	reqHeaders.Set("User-Agent", c.s.userAgent())
124820	var body io.Reader = nil
124821	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerscreateinstancesrequest)
124822	if err != nil {
124823		return nil, err
124824	}
124825	reqHeaders.Set("Content-Type", "application/json")
124826	c.urlParams_.Set("alt", alt)
124827	c.urlParams_.Set("prettyPrint", "false")
124828	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances")
124829	urls += "?" + c.urlParams_.Encode()
124830	req, err := http.NewRequest("POST", urls, body)
124831	if err != nil {
124832		return nil, err
124833	}
124834	req.Header = reqHeaders
124835	googleapi.Expand(req.URL, map[string]string{
124836		"project":              c.project,
124837		"region":               c.region,
124838		"instanceGroupManager": c.instanceGroupManager,
124839	})
124840	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124841}
124842
124843// Do executes the "compute.regionInstanceGroupManagers.createInstances" call.
124844// Exactly one of *Operation or error will be non-nil. Any non-2xx
124845// status code is an error. Response headers are in either
124846// *Operation.ServerResponse.Header or (if a response was returned at
124847// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124848// to check whether the returned error was because
124849// http.StatusNotModified was returned.
124850func (c *RegionInstanceGroupManagersCreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124851	gensupport.SetOptions(c.urlParams_, opts...)
124852	res, err := c.doRequest("json")
124853	if res != nil && res.StatusCode == http.StatusNotModified {
124854		if res.Body != nil {
124855			res.Body.Close()
124856		}
124857		return nil, &googleapi.Error{
124858			Code:   res.StatusCode,
124859			Header: res.Header,
124860		}
124861	}
124862	if err != nil {
124863		return nil, err
124864	}
124865	defer googleapi.CloseBody(res)
124866	if err := googleapi.CheckResponse(res); err != nil {
124867		return nil, err
124868	}
124869	ret := &Operation{
124870		ServerResponse: googleapi.ServerResponse{
124871			Header:         res.Header,
124872			HTTPStatusCode: res.StatusCode,
124873		},
124874	}
124875	target := &ret
124876	if err := gensupport.DecodeResponse(target, res); err != nil {
124877		return nil, err
124878	}
124879	return ret, nil
124880	// {
124881	//   "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.",
124882	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances",
124883	//   "httpMethod": "POST",
124884	//   "id": "compute.regionInstanceGroupManagers.createInstances",
124885	//   "parameterOrder": [
124886	//     "project",
124887	//     "region",
124888	//     "instanceGroupManager"
124889	//   ],
124890	//   "parameters": {
124891	//     "instanceGroupManager": {
124892	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
124893	//       "location": "path",
124894	//       "required": true,
124895	//       "type": "string"
124896	//     },
124897	//     "project": {
124898	//       "description": "Project ID for this request.",
124899	//       "location": "path",
124900	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124901	//       "required": true,
124902	//       "type": "string"
124903	//     },
124904	//     "region": {
124905	//       "description": "The name of the region where the managed instance group is located. It should conform to RFC1035.",
124906	//       "location": "path",
124907	//       "required": true,
124908	//       "type": "string"
124909	//     },
124910	//     "requestId": {
124911	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same 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).",
124912	//       "location": "query",
124913	//       "type": "string"
124914	//     }
124915	//   },
124916	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances",
124917	//   "request": {
124918	//     "$ref": "RegionInstanceGroupManagersCreateInstancesRequest"
124919	//   },
124920	//   "response": {
124921	//     "$ref": "Operation"
124922	//   },
124923	//   "scopes": [
124924	//     "https://www.googleapis.com/auth/cloud-platform",
124925	//     "https://www.googleapis.com/auth/compute"
124926	//   ]
124927	// }
124928
124929}
124930
124931// method id "compute.regionInstanceGroupManagers.delete":
124932
124933type RegionInstanceGroupManagersDeleteCall struct {
124934	s                    *Service
124935	project              string
124936	region               string
124937	instanceGroupManager string
124938	urlParams_           gensupport.URLParams
124939	ctx_                 context.Context
124940	header_              http.Header
124941}
124942
124943// Delete: Deletes the specified managed instance group and all of the
124944// instances in that group.
124945//
124946// - instanceGroupManager: Name of the managed instance group to delete.
124947// - project: Project ID for this request.
124948// - region: Name of the region scoping this request.
124949func (r *RegionInstanceGroupManagersService) Delete(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersDeleteCall {
124950	c := &RegionInstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124951	c.project = project
124952	c.region = region
124953	c.instanceGroupManager = instanceGroupManager
124954	return c
124955}
124956
124957// RequestId sets the optional parameter "requestId": An optional
124958// request ID to identify requests. Specify a unique request ID so that
124959// if you must retry your request, the server will know to ignore the
124960// request if it has already been completed. For example, consider a
124961// situation where you make an initial request and the request times
124962// out. If you make the request again with the same request ID, the
124963// server can check if original operation with the same request ID was
124964// received, and if so, will ignore the second request. This prevents
124965// clients from accidentally creating duplicate commitments. The request
124966// ID must be a valid UUID with the exception that zero UUID is not
124967// supported ( 00000000-0000-0000-0000-000000000000).
124968func (c *RegionInstanceGroupManagersDeleteCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteCall {
124969	c.urlParams_.Set("requestId", requestId)
124970	return c
124971}
124972
124973// Fields allows partial responses to be retrieved. See
124974// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124975// for more information.
124976func (c *RegionInstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteCall {
124977	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124978	return c
124979}
124980
124981// Context sets the context to be used in this call's Do method. Any
124982// pending HTTP request will be aborted if the provided context is
124983// canceled.
124984func (c *RegionInstanceGroupManagersDeleteCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteCall {
124985	c.ctx_ = ctx
124986	return c
124987}
124988
124989// Header returns an http.Header that can be modified by the caller to
124990// add HTTP headers to the request.
124991func (c *RegionInstanceGroupManagersDeleteCall) Header() http.Header {
124992	if c.header_ == nil {
124993		c.header_ = make(http.Header)
124994	}
124995	return c.header_
124996}
124997
124998func (c *RegionInstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) {
124999	reqHeaders := make(http.Header)
125000	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
125001	for k, v := range c.header_ {
125002		reqHeaders[k] = v
125003	}
125004	reqHeaders.Set("User-Agent", c.s.userAgent())
125005	var body io.Reader = nil
125006	c.urlParams_.Set("alt", alt)
125007	c.urlParams_.Set("prettyPrint", "false")
125008	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
125009	urls += "?" + c.urlParams_.Encode()
125010	req, err := http.NewRequest("DELETE", urls, body)
125011	if err != nil {
125012		return nil, err
125013	}
125014	req.Header = reqHeaders
125015	googleapi.Expand(req.URL, map[string]string{
125016		"project":              c.project,
125017		"region":               c.region,
125018		"instanceGroupManager": c.instanceGroupManager,
125019	})
125020	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125021}
125022
125023// Do executes the "compute.regionInstanceGroupManagers.delete" call.
125024// Exactly one of *Operation or error will be non-nil. Any non-2xx
125025// status code is an error. Response headers are in either
125026// *Operation.ServerResponse.Header or (if a response was returned at
125027// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125028// to check whether the returned error was because
125029// http.StatusNotModified was returned.
125030func (c *RegionInstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
125031	gensupport.SetOptions(c.urlParams_, opts...)
125032	res, err := c.doRequest("json")
125033	if res != nil && res.StatusCode == http.StatusNotModified {
125034		if res.Body != nil {
125035			res.Body.Close()
125036		}
125037		return nil, &googleapi.Error{
125038			Code:   res.StatusCode,
125039			Header: res.Header,
125040		}
125041	}
125042	if err != nil {
125043		return nil, err
125044	}
125045	defer googleapi.CloseBody(res)
125046	if err := googleapi.CheckResponse(res); err != nil {
125047		return nil, err
125048	}
125049	ret := &Operation{
125050		ServerResponse: googleapi.ServerResponse{
125051			Header:         res.Header,
125052			HTTPStatusCode: res.StatusCode,
125053		},
125054	}
125055	target := &ret
125056	if err := gensupport.DecodeResponse(target, res); err != nil {
125057		return nil, err
125058	}
125059	return ret, nil
125060	// {
125061	//   "description": "Deletes the specified managed instance group and all of the instances in that group.",
125062	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
125063	//   "httpMethod": "DELETE",
125064	//   "id": "compute.regionInstanceGroupManagers.delete",
125065	//   "parameterOrder": [
125066	//     "project",
125067	//     "region",
125068	//     "instanceGroupManager"
125069	//   ],
125070	//   "parameters": {
125071	//     "instanceGroupManager": {
125072	//       "description": "Name of the managed instance group to delete.",
125073	//       "location": "path",
125074	//       "required": true,
125075	//       "type": "string"
125076	//     },
125077	//     "project": {
125078	//       "description": "Project ID for this request.",
125079	//       "location": "path",
125080	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125081	//       "required": true,
125082	//       "type": "string"
125083	//     },
125084	//     "region": {
125085	//       "description": "Name of the region scoping this request.",
125086	//       "location": "path",
125087	//       "required": true,
125088	//       "type": "string"
125089	//     },
125090	//     "requestId": {
125091	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
125092	//       "location": "query",
125093	//       "type": "string"
125094	//     }
125095	//   },
125096	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
125097	//   "response": {
125098	//     "$ref": "Operation"
125099	//   },
125100	//   "scopes": [
125101	//     "https://www.googleapis.com/auth/cloud-platform",
125102	//     "https://www.googleapis.com/auth/compute"
125103	//   ]
125104	// }
125105
125106}
125107
125108// method id "compute.regionInstanceGroupManagers.deleteInstances":
125109
125110type RegionInstanceGroupManagersDeleteInstancesCall struct {
125111	s                                                 *Service
125112	project                                           string
125113	region                                            string
125114	instanceGroupManager                              string
125115	regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest
125116	urlParams_                                        gensupport.URLParams
125117	ctx_                                              context.Context
125118	header_                                           http.Header
125119}
125120
125121// DeleteInstances: Flags the specified instances in the managed
125122// instance group to be immediately deleted. The instances are also
125123// removed from any target pools of which they were a member. This
125124// method reduces the targetSize of the managed instance group by the
125125// number of instances that you delete. The deleteInstances operation is
125126// marked DONE if the deleteInstances request is successful. The
125127// underlying actions take additional time. You must separately verify
125128// the status of the deleting action with the listmanagedinstances
125129// method. If the group is part of a backend service that has enabled
125130// connection draining, it can take up to 60 seconds after the
125131// connection draining duration has elapsed before the VM instance is
125132// removed or deleted. You can specify a maximum of 1000 instances with
125133// this method per request.
125134//
125135// - instanceGroupManager: Name of the managed instance group.
125136// - project: Project ID for this request.
125137// - region: Name of the region scoping this request.
125138func (r *RegionInstanceGroupManagersService) DeleteInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest) *RegionInstanceGroupManagersDeleteInstancesCall {
125139	c := &RegionInstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125140	c.project = project
125141	c.region = region
125142	c.instanceGroupManager = instanceGroupManager
125143	c.regioninstancegroupmanagersdeleteinstancesrequest = regioninstancegroupmanagersdeleteinstancesrequest
125144	return c
125145}
125146
125147// RequestId sets the optional parameter "requestId": An optional
125148// request ID to identify requests. Specify a unique request ID so that
125149// if you must retry your request, the server will know to ignore the
125150// request if it has already been completed. For example, consider a
125151// situation where you make an initial request and the request times
125152// out. If you make the request again with the same request ID, the
125153// server can check if original operation with the same request ID was
125154// received, and if so, will ignore the second request. This prevents
125155// clients from accidentally creating duplicate commitments. The request
125156// ID must be a valid UUID with the exception that zero UUID is not
125157// supported ( 00000000-0000-0000-0000-000000000000).
125158func (c *RegionInstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteInstancesCall {
125159	c.urlParams_.Set("requestId", requestId)
125160	return c
125161}
125162
125163// Fields allows partial responses to be retrieved. See
125164// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125165// for more information.
125166func (c *RegionInstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteInstancesCall {
125167	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125168	return c
125169}
125170
125171// Context sets the context to be used in this call's Do method. Any
125172// pending HTTP request will be aborted if the provided context is
125173// canceled.
125174func (c *RegionInstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteInstancesCall {
125175	c.ctx_ = ctx
125176	return c
125177}
125178
125179// Header returns an http.Header that can be modified by the caller to
125180// add HTTP headers to the request.
125181func (c *RegionInstanceGroupManagersDeleteInstancesCall) Header() http.Header {
125182	if c.header_ == nil {
125183		c.header_ = make(http.Header)
125184	}
125185	return c.header_
125186}
125187
125188func (c *RegionInstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) {
125189	reqHeaders := make(http.Header)
125190	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
125191	for k, v := range c.header_ {
125192		reqHeaders[k] = v
125193	}
125194	reqHeaders.Set("User-Agent", c.s.userAgent())
125195	var body io.Reader = nil
125196	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersdeleteinstancesrequest)
125197	if err != nil {
125198		return nil, err
125199	}
125200	reqHeaders.Set("Content-Type", "application/json")
125201	c.urlParams_.Set("alt", alt)
125202	c.urlParams_.Set("prettyPrint", "false")
125203	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances")
125204	urls += "?" + c.urlParams_.Encode()
125205	req, err := http.NewRequest("POST", urls, body)
125206	if err != nil {
125207		return nil, err
125208	}
125209	req.Header = reqHeaders
125210	googleapi.Expand(req.URL, map[string]string{
125211		"project":              c.project,
125212		"region":               c.region,
125213		"instanceGroupManager": c.instanceGroupManager,
125214	})
125215	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125216}
125217
125218// Do executes the "compute.regionInstanceGroupManagers.deleteInstances" call.
125219// Exactly one of *Operation or error will be non-nil. Any non-2xx
125220// status code is an error. Response headers are in either
125221// *Operation.ServerResponse.Header or (if a response was returned at
125222// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125223// to check whether the returned error was because
125224// http.StatusNotModified was returned.
125225func (c *RegionInstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
125226	gensupport.SetOptions(c.urlParams_, opts...)
125227	res, err := c.doRequest("json")
125228	if res != nil && res.StatusCode == http.StatusNotModified {
125229		if res.Body != nil {
125230			res.Body.Close()
125231		}
125232		return nil, &googleapi.Error{
125233			Code:   res.StatusCode,
125234			Header: res.Header,
125235		}
125236	}
125237	if err != nil {
125238		return nil, err
125239	}
125240	defer googleapi.CloseBody(res)
125241	if err := googleapi.CheckResponse(res); err != nil {
125242		return nil, err
125243	}
125244	ret := &Operation{
125245		ServerResponse: googleapi.ServerResponse{
125246			Header:         res.Header,
125247			HTTPStatusCode: res.StatusCode,
125248		},
125249	}
125250	target := &ret
125251	if err := gensupport.DecodeResponse(target, res); err != nil {
125252		return nil, err
125253	}
125254	return ret, nil
125255	// {
125256	//   "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.",
125257	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
125258	//   "httpMethod": "POST",
125259	//   "id": "compute.regionInstanceGroupManagers.deleteInstances",
125260	//   "parameterOrder": [
125261	//     "project",
125262	//     "region",
125263	//     "instanceGroupManager"
125264	//   ],
125265	//   "parameters": {
125266	//     "instanceGroupManager": {
125267	//       "description": "Name of the managed instance group.",
125268	//       "location": "path",
125269	//       "required": true,
125270	//       "type": "string"
125271	//     },
125272	//     "project": {
125273	//       "description": "Project ID for this request.",
125274	//       "location": "path",
125275	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125276	//       "required": true,
125277	//       "type": "string"
125278	//     },
125279	//     "region": {
125280	//       "description": "Name of the region scoping this request.",
125281	//       "location": "path",
125282	//       "required": true,
125283	//       "type": "string"
125284	//     },
125285	//     "requestId": {
125286	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
125287	//       "location": "query",
125288	//       "type": "string"
125289	//     }
125290	//   },
125291	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
125292	//   "request": {
125293	//     "$ref": "RegionInstanceGroupManagersDeleteInstancesRequest"
125294	//   },
125295	//   "response": {
125296	//     "$ref": "Operation"
125297	//   },
125298	//   "scopes": [
125299	//     "https://www.googleapis.com/auth/cloud-platform",
125300	//     "https://www.googleapis.com/auth/compute"
125301	//   ]
125302	// }
125303
125304}
125305
125306// method id "compute.regionInstanceGroupManagers.deletePerInstanceConfigs":
125307
125308type RegionInstanceGroupManagersDeletePerInstanceConfigsCall struct {
125309	s                                                 *Service
125310	project                                           string
125311	region                                            string
125312	instanceGroupManager                              string
125313	regioninstancegroupmanagerdeleteinstanceconfigreq *RegionInstanceGroupManagerDeleteInstanceConfigReq
125314	urlParams_                                        gensupport.URLParams
125315	ctx_                                              context.Context
125316	header_                                           http.Header
125317}
125318
125319// DeletePerInstanceConfigs: Deletes selected per-instance configs for
125320// the managed instance group.
125321//
125322// - instanceGroupManager: The name of the managed instance group. It
125323//   should conform to RFC1035.
125324// - project: Project ID for this request.
125325// - region: Name of the region scoping this request, should conform to
125326//   RFC1035.
125327func (r *RegionInstanceGroupManagersService) DeletePerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerdeleteinstanceconfigreq *RegionInstanceGroupManagerDeleteInstanceConfigReq) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
125328	c := &RegionInstanceGroupManagersDeletePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125329	c.project = project
125330	c.region = region
125331	c.instanceGroupManager = instanceGroupManager
125332	c.regioninstancegroupmanagerdeleteinstanceconfigreq = regioninstancegroupmanagerdeleteinstanceconfigreq
125333	return c
125334}
125335
125336// Fields allows partial responses to be retrieved. See
125337// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125338// for more information.
125339func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
125340	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125341	return c
125342}
125343
125344// Context sets the context to be used in this call's Do method. Any
125345// pending HTTP request will be aborted if the provided context is
125346// canceled.
125347func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
125348	c.ctx_ = ctx
125349	return c
125350}
125351
125352// Header returns an http.Header that can be modified by the caller to
125353// add HTTP headers to the request.
125354func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Header() http.Header {
125355	if c.header_ == nil {
125356		c.header_ = make(http.Header)
125357	}
125358	return c.header_
125359}
125360
125361func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
125362	reqHeaders := make(http.Header)
125363	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
125364	for k, v := range c.header_ {
125365		reqHeaders[k] = v
125366	}
125367	reqHeaders.Set("User-Agent", c.s.userAgent())
125368	var body io.Reader = nil
125369	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerdeleteinstanceconfigreq)
125370	if err != nil {
125371		return nil, err
125372	}
125373	reqHeaders.Set("Content-Type", "application/json")
125374	c.urlParams_.Set("alt", alt)
125375	c.urlParams_.Set("prettyPrint", "false")
125376	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs")
125377	urls += "?" + c.urlParams_.Encode()
125378	req, err := http.NewRequest("POST", urls, body)
125379	if err != nil {
125380		return nil, err
125381	}
125382	req.Header = reqHeaders
125383	googleapi.Expand(req.URL, map[string]string{
125384		"project":              c.project,
125385		"region":               c.region,
125386		"instanceGroupManager": c.instanceGroupManager,
125387	})
125388	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125389}
125390
125391// Do executes the "compute.regionInstanceGroupManagers.deletePerInstanceConfigs" call.
125392// Exactly one of *Operation or error will be non-nil. Any non-2xx
125393// status code is an error. Response headers are in either
125394// *Operation.ServerResponse.Header or (if a response was returned at
125395// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125396// to check whether the returned error was because
125397// http.StatusNotModified was returned.
125398func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
125399	gensupport.SetOptions(c.urlParams_, opts...)
125400	res, err := c.doRequest("json")
125401	if res != nil && res.StatusCode == http.StatusNotModified {
125402		if res.Body != nil {
125403			res.Body.Close()
125404		}
125405		return nil, &googleapi.Error{
125406			Code:   res.StatusCode,
125407			Header: res.Header,
125408		}
125409	}
125410	if err != nil {
125411		return nil, err
125412	}
125413	defer googleapi.CloseBody(res)
125414	if err := googleapi.CheckResponse(res); err != nil {
125415		return nil, err
125416	}
125417	ret := &Operation{
125418		ServerResponse: googleapi.ServerResponse{
125419			Header:         res.Header,
125420			HTTPStatusCode: res.StatusCode,
125421		},
125422	}
125423	target := &ret
125424	if err := gensupport.DecodeResponse(target, res); err != nil {
125425		return nil, err
125426	}
125427	return ret, nil
125428	// {
125429	//   "description": "Deletes selected per-instance configs for the managed instance group.",
125430	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs",
125431	//   "httpMethod": "POST",
125432	//   "id": "compute.regionInstanceGroupManagers.deletePerInstanceConfigs",
125433	//   "parameterOrder": [
125434	//     "project",
125435	//     "region",
125436	//     "instanceGroupManager"
125437	//   ],
125438	//   "parameters": {
125439	//     "instanceGroupManager": {
125440	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
125441	//       "location": "path",
125442	//       "required": true,
125443	//       "type": "string"
125444	//     },
125445	//     "project": {
125446	//       "description": "Project ID for this request.",
125447	//       "location": "path",
125448	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125449	//       "required": true,
125450	//       "type": "string"
125451	//     },
125452	//     "region": {
125453	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
125454	//       "location": "path",
125455	//       "required": true,
125456	//       "type": "string"
125457	//     }
125458	//   },
125459	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs",
125460	//   "request": {
125461	//     "$ref": "RegionInstanceGroupManagerDeleteInstanceConfigReq"
125462	//   },
125463	//   "response": {
125464	//     "$ref": "Operation"
125465	//   },
125466	//   "scopes": [
125467	//     "https://www.googleapis.com/auth/cloud-platform",
125468	//     "https://www.googleapis.com/auth/compute"
125469	//   ]
125470	// }
125471
125472}
125473
125474// method id "compute.regionInstanceGroupManagers.get":
125475
125476type RegionInstanceGroupManagersGetCall struct {
125477	s                    *Service
125478	project              string
125479	region               string
125480	instanceGroupManager string
125481	urlParams_           gensupport.URLParams
125482	ifNoneMatch_         string
125483	ctx_                 context.Context
125484	header_              http.Header
125485}
125486
125487// Get: Returns all of the details about the specified managed instance
125488// group.
125489//
125490// - instanceGroupManager: Name of the managed instance group to return.
125491// - project: Project ID for this request.
125492// - region: Name of the region scoping this request.
125493func (r *RegionInstanceGroupManagersService) Get(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersGetCall {
125494	c := &RegionInstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125495	c.project = project
125496	c.region = region
125497	c.instanceGroupManager = instanceGroupManager
125498	return c
125499}
125500
125501// Fields allows partial responses to be retrieved. See
125502// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125503// for more information.
125504func (c *RegionInstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersGetCall {
125505	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125506	return c
125507}
125508
125509// IfNoneMatch sets the optional parameter which makes the operation
125510// fail if the object's ETag matches the given value. This is useful for
125511// getting updates only after the object has changed since the last
125512// request. Use googleapi.IsNotModified to check whether the response
125513// error from Do is the result of In-None-Match.
125514func (c *RegionInstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersGetCall {
125515	c.ifNoneMatch_ = entityTag
125516	return c
125517}
125518
125519// Context sets the context to be used in this call's Do method. Any
125520// pending HTTP request will be aborted if the provided context is
125521// canceled.
125522func (c *RegionInstanceGroupManagersGetCall) Context(ctx context.Context) *RegionInstanceGroupManagersGetCall {
125523	c.ctx_ = ctx
125524	return c
125525}
125526
125527// Header returns an http.Header that can be modified by the caller to
125528// add HTTP headers to the request.
125529func (c *RegionInstanceGroupManagersGetCall) Header() http.Header {
125530	if c.header_ == nil {
125531		c.header_ = make(http.Header)
125532	}
125533	return c.header_
125534}
125535
125536func (c *RegionInstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) {
125537	reqHeaders := make(http.Header)
125538	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
125539	for k, v := range c.header_ {
125540		reqHeaders[k] = v
125541	}
125542	reqHeaders.Set("User-Agent", c.s.userAgent())
125543	if c.ifNoneMatch_ != "" {
125544		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
125545	}
125546	var body io.Reader = nil
125547	c.urlParams_.Set("alt", alt)
125548	c.urlParams_.Set("prettyPrint", "false")
125549	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
125550	urls += "?" + c.urlParams_.Encode()
125551	req, err := http.NewRequest("GET", urls, body)
125552	if err != nil {
125553		return nil, err
125554	}
125555	req.Header = reqHeaders
125556	googleapi.Expand(req.URL, map[string]string{
125557		"project":              c.project,
125558		"region":               c.region,
125559		"instanceGroupManager": c.instanceGroupManager,
125560	})
125561	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125562}
125563
125564// Do executes the "compute.regionInstanceGroupManagers.get" call.
125565// Exactly one of *InstanceGroupManager or error will be non-nil. Any
125566// non-2xx status code is an error. Response headers are in either
125567// *InstanceGroupManager.ServerResponse.Header or (if a response was
125568// returned at all) in error.(*googleapi.Error).Header. Use
125569// googleapi.IsNotModified to check whether the returned error was
125570// because http.StatusNotModified was returned.
125571func (c *RegionInstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) {
125572	gensupport.SetOptions(c.urlParams_, opts...)
125573	res, err := c.doRequest("json")
125574	if res != nil && res.StatusCode == http.StatusNotModified {
125575		if res.Body != nil {
125576			res.Body.Close()
125577		}
125578		return nil, &googleapi.Error{
125579			Code:   res.StatusCode,
125580			Header: res.Header,
125581		}
125582	}
125583	if err != nil {
125584		return nil, err
125585	}
125586	defer googleapi.CloseBody(res)
125587	if err := googleapi.CheckResponse(res); err != nil {
125588		return nil, err
125589	}
125590	ret := &InstanceGroupManager{
125591		ServerResponse: googleapi.ServerResponse{
125592			Header:         res.Header,
125593			HTTPStatusCode: res.StatusCode,
125594		},
125595	}
125596	target := &ret
125597	if err := gensupport.DecodeResponse(target, res); err != nil {
125598		return nil, err
125599	}
125600	return ret, nil
125601	// {
125602	//   "description": "Returns all of the details about the specified managed instance group.",
125603	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
125604	//   "httpMethod": "GET",
125605	//   "id": "compute.regionInstanceGroupManagers.get",
125606	//   "parameterOrder": [
125607	//     "project",
125608	//     "region",
125609	//     "instanceGroupManager"
125610	//   ],
125611	//   "parameters": {
125612	//     "instanceGroupManager": {
125613	//       "description": "Name of the managed instance group to return.",
125614	//       "location": "path",
125615	//       "required": true,
125616	//       "type": "string"
125617	//     },
125618	//     "project": {
125619	//       "description": "Project ID for this request.",
125620	//       "location": "path",
125621	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125622	//       "required": true,
125623	//       "type": "string"
125624	//     },
125625	//     "region": {
125626	//       "description": "Name of the region scoping this request.",
125627	//       "location": "path",
125628	//       "required": true,
125629	//       "type": "string"
125630	//     }
125631	//   },
125632	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
125633	//   "response": {
125634	//     "$ref": "InstanceGroupManager"
125635	//   },
125636	//   "scopes": [
125637	//     "https://www.googleapis.com/auth/cloud-platform",
125638	//     "https://www.googleapis.com/auth/compute",
125639	//     "https://www.googleapis.com/auth/compute.readonly"
125640	//   ]
125641	// }
125642
125643}
125644
125645// method id "compute.regionInstanceGroupManagers.insert":
125646
125647type RegionInstanceGroupManagersInsertCall struct {
125648	s                    *Service
125649	project              string
125650	region               string
125651	instancegroupmanager *InstanceGroupManager
125652	urlParams_           gensupport.URLParams
125653	ctx_                 context.Context
125654	header_              http.Header
125655}
125656
125657// Insert: Creates a managed instance group using the information that
125658// you specify in the request. After the group is created, instances in
125659// the group are created using the specified instance template. This
125660// operation is marked as DONE when the group is created even if the
125661// instances in the group have not yet been created. You must separately
125662// verify the status of the individual instances with the
125663// listmanagedinstances method. A regional managed instance group can
125664// contain up to 2000 instances.
125665//
125666// - project: Project ID for this request.
125667// - region: Name of the region scoping this request.
125668func (r *RegionInstanceGroupManagersService) Insert(project string, region string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersInsertCall {
125669	c := &RegionInstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125670	c.project = project
125671	c.region = region
125672	c.instancegroupmanager = instancegroupmanager
125673	return c
125674}
125675
125676// RequestId sets the optional parameter "requestId": An optional
125677// request ID to identify requests. Specify a unique request ID so that
125678// if you must retry your request, the server will know to ignore the
125679// request if it has already been completed. For example, consider a
125680// situation where you make an initial request and the request times
125681// out. If you make the request again with the same request ID, the
125682// server can check if original operation with the same request ID was
125683// received, and if so, will ignore the second request. This prevents
125684// clients from accidentally creating duplicate commitments. The request
125685// ID must be a valid UUID with the exception that zero UUID is not
125686// supported ( 00000000-0000-0000-0000-000000000000).
125687func (c *RegionInstanceGroupManagersInsertCall) RequestId(requestId string) *RegionInstanceGroupManagersInsertCall {
125688	c.urlParams_.Set("requestId", requestId)
125689	return c
125690}
125691
125692// Fields allows partial responses to be retrieved. See
125693// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125694// for more information.
125695func (c *RegionInstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersInsertCall {
125696	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125697	return c
125698}
125699
125700// Context sets the context to be used in this call's Do method. Any
125701// pending HTTP request will be aborted if the provided context is
125702// canceled.
125703func (c *RegionInstanceGroupManagersInsertCall) Context(ctx context.Context) *RegionInstanceGroupManagersInsertCall {
125704	c.ctx_ = ctx
125705	return c
125706}
125707
125708// Header returns an http.Header that can be modified by the caller to
125709// add HTTP headers to the request.
125710func (c *RegionInstanceGroupManagersInsertCall) Header() http.Header {
125711	if c.header_ == nil {
125712		c.header_ = make(http.Header)
125713	}
125714	return c.header_
125715}
125716
125717func (c *RegionInstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) {
125718	reqHeaders := make(http.Header)
125719	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
125720	for k, v := range c.header_ {
125721		reqHeaders[k] = v
125722	}
125723	reqHeaders.Set("User-Agent", c.s.userAgent())
125724	var body io.Reader = nil
125725	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
125726	if err != nil {
125727		return nil, err
125728	}
125729	reqHeaders.Set("Content-Type", "application/json")
125730	c.urlParams_.Set("alt", alt)
125731	c.urlParams_.Set("prettyPrint", "false")
125732	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers")
125733	urls += "?" + c.urlParams_.Encode()
125734	req, err := http.NewRequest("POST", urls, body)
125735	if err != nil {
125736		return nil, err
125737	}
125738	req.Header = reqHeaders
125739	googleapi.Expand(req.URL, map[string]string{
125740		"project": c.project,
125741		"region":  c.region,
125742	})
125743	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125744}
125745
125746// Do executes the "compute.regionInstanceGroupManagers.insert" call.
125747// Exactly one of *Operation or error will be non-nil. Any non-2xx
125748// status code is an error. Response headers are in either
125749// *Operation.ServerResponse.Header or (if a response was returned at
125750// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125751// to check whether the returned error was because
125752// http.StatusNotModified was returned.
125753func (c *RegionInstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
125754	gensupport.SetOptions(c.urlParams_, opts...)
125755	res, err := c.doRequest("json")
125756	if res != nil && res.StatusCode == http.StatusNotModified {
125757		if res.Body != nil {
125758			res.Body.Close()
125759		}
125760		return nil, &googleapi.Error{
125761			Code:   res.StatusCode,
125762			Header: res.Header,
125763		}
125764	}
125765	if err != nil {
125766		return nil, err
125767	}
125768	defer googleapi.CloseBody(res)
125769	if err := googleapi.CheckResponse(res); err != nil {
125770		return nil, err
125771	}
125772	ret := &Operation{
125773		ServerResponse: googleapi.ServerResponse{
125774			Header:         res.Header,
125775			HTTPStatusCode: res.StatusCode,
125776		},
125777	}
125778	target := &ret
125779	if err := gensupport.DecodeResponse(target, res); err != nil {
125780		return nil, err
125781	}
125782	return ret, nil
125783	// {
125784	//   "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.",
125785	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers",
125786	//   "httpMethod": "POST",
125787	//   "id": "compute.regionInstanceGroupManagers.insert",
125788	//   "parameterOrder": [
125789	//     "project",
125790	//     "region"
125791	//   ],
125792	//   "parameters": {
125793	//     "project": {
125794	//       "description": "Project ID for this request.",
125795	//       "location": "path",
125796	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125797	//       "required": true,
125798	//       "type": "string"
125799	//     },
125800	//     "region": {
125801	//       "description": "Name of the region scoping this request.",
125802	//       "location": "path",
125803	//       "required": true,
125804	//       "type": "string"
125805	//     },
125806	//     "requestId": {
125807	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
125808	//       "location": "query",
125809	//       "type": "string"
125810	//     }
125811	//   },
125812	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers",
125813	//   "request": {
125814	//     "$ref": "InstanceGroupManager"
125815	//   },
125816	//   "response": {
125817	//     "$ref": "Operation"
125818	//   },
125819	//   "scopes": [
125820	//     "https://www.googleapis.com/auth/cloud-platform",
125821	//     "https://www.googleapis.com/auth/compute"
125822	//   ]
125823	// }
125824
125825}
125826
125827// method id "compute.regionInstanceGroupManagers.list":
125828
125829type RegionInstanceGroupManagersListCall struct {
125830	s            *Service
125831	project      string
125832	region       string
125833	urlParams_   gensupport.URLParams
125834	ifNoneMatch_ string
125835	ctx_         context.Context
125836	header_      http.Header
125837}
125838
125839// List: Retrieves the list of managed instance groups that are
125840// contained within the specified region.
125841//
125842// - project: Project ID for this request.
125843// - region: Name of the region scoping this request.
125844func (r *RegionInstanceGroupManagersService) List(project string, region string) *RegionInstanceGroupManagersListCall {
125845	c := &RegionInstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125846	c.project = project
125847	c.region = region
125848	return c
125849}
125850
125851// Filter sets the optional parameter "filter": A filter expression that
125852// filters resources listed in the response. The expression must specify
125853// the field name, a comparison operator, and the value that you want to
125854// use for filtering. The value must be a string, a number, or a
125855// boolean. The comparison operator must be either `=`, `!=`, `>`, or
125856// `<`. For example, if you are filtering Compute Engine instances, you
125857// can exclude instances named `example-instance` by specifying `name !=
125858// example-instance`. You can also filter nested fields. For example,
125859// you could specify `scheduling.automaticRestart = false` to include
125860// instances only if they are not scheduled for automatic restarts. You
125861// can use filtering on nested fields to filter based on resource
125862// labels. To filter on multiple expressions, provide each separate
125863// expression within parentheses. For example: ```
125864// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
125865// ``` By default, each expression is an `AND` expression. However, you
125866// can include `AND` and `OR` expressions explicitly. For example: ```
125867// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
125868// AND (scheduling.automaticRestart = true) ```
125869func (c *RegionInstanceGroupManagersListCall) Filter(filter string) *RegionInstanceGroupManagersListCall {
125870	c.urlParams_.Set("filter", filter)
125871	return c
125872}
125873
125874// MaxResults sets the optional parameter "maxResults": The maximum
125875// number of results per page that should be returned. If the number of
125876// available results is larger than `maxResults`, Compute Engine returns
125877// a `nextPageToken` that can be used to get the next page of results in
125878// subsequent list requests. Acceptable values are `0` to `500`,
125879// inclusive. (Default: `500`)
125880func (c *RegionInstanceGroupManagersListCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListCall {
125881	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
125882	return c
125883}
125884
125885// OrderBy sets the optional parameter "orderBy": Sorts list results by
125886// a certain order. By default, results are returned in alphanumerical
125887// order based on the resource name. You can also sort results in
125888// descending order based on the creation timestamp using
125889// `orderBy="creationTimestamp desc". This sorts results based on the
125890// `creationTimestamp` field in reverse chronological order (newest
125891// result first). Use this to sort resources like operations so that the
125892// newest operation is returned first. Currently, only sorting by `name`
125893// or `creationTimestamp desc` is supported.
125894func (c *RegionInstanceGroupManagersListCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListCall {
125895	c.urlParams_.Set("orderBy", orderBy)
125896	return c
125897}
125898
125899// PageToken sets the optional parameter "pageToken": Specifies a page
125900// token to use. Set `pageToken` to the `nextPageToken` returned by a
125901// previous list request to get the next page of results.
125902func (c *RegionInstanceGroupManagersListCall) PageToken(pageToken string) *RegionInstanceGroupManagersListCall {
125903	c.urlParams_.Set("pageToken", pageToken)
125904	return c
125905}
125906
125907// ReturnPartialSuccess sets the optional parameter
125908// "returnPartialSuccess": Opt-in for partial success behavior which
125909// provides partial results in case of failure. The default value is
125910// false.
125911func (c *RegionInstanceGroupManagersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListCall {
125912	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
125913	return c
125914}
125915
125916// Fields allows partial responses to be retrieved. See
125917// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125918// for more information.
125919func (c *RegionInstanceGroupManagersListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListCall {
125920	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125921	return c
125922}
125923
125924// IfNoneMatch sets the optional parameter which makes the operation
125925// fail if the object's ETag matches the given value. This is useful for
125926// getting updates only after the object has changed since the last
125927// request. Use googleapi.IsNotModified to check whether the response
125928// error from Do is the result of In-None-Match.
125929func (c *RegionInstanceGroupManagersListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersListCall {
125930	c.ifNoneMatch_ = entityTag
125931	return c
125932}
125933
125934// Context sets the context to be used in this call's Do method. Any
125935// pending HTTP request will be aborted if the provided context is
125936// canceled.
125937func (c *RegionInstanceGroupManagersListCall) Context(ctx context.Context) *RegionInstanceGroupManagersListCall {
125938	c.ctx_ = ctx
125939	return c
125940}
125941
125942// Header returns an http.Header that can be modified by the caller to
125943// add HTTP headers to the request.
125944func (c *RegionInstanceGroupManagersListCall) Header() http.Header {
125945	if c.header_ == nil {
125946		c.header_ = make(http.Header)
125947	}
125948	return c.header_
125949}
125950
125951func (c *RegionInstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) {
125952	reqHeaders := make(http.Header)
125953	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
125954	for k, v := range c.header_ {
125955		reqHeaders[k] = v
125956	}
125957	reqHeaders.Set("User-Agent", c.s.userAgent())
125958	if c.ifNoneMatch_ != "" {
125959		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
125960	}
125961	var body io.Reader = nil
125962	c.urlParams_.Set("alt", alt)
125963	c.urlParams_.Set("prettyPrint", "false")
125964	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers")
125965	urls += "?" + c.urlParams_.Encode()
125966	req, err := http.NewRequest("GET", urls, body)
125967	if err != nil {
125968		return nil, err
125969	}
125970	req.Header = reqHeaders
125971	googleapi.Expand(req.URL, map[string]string{
125972		"project": c.project,
125973		"region":  c.region,
125974	})
125975	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125976}
125977
125978// Do executes the "compute.regionInstanceGroupManagers.list" call.
125979// Exactly one of *RegionInstanceGroupManagerList or error will be
125980// non-nil. Any non-2xx status code is an error. Response headers are in
125981// either *RegionInstanceGroupManagerList.ServerResponse.Header or (if a
125982// response was returned at all) in error.(*googleapi.Error).Header. Use
125983// googleapi.IsNotModified to check whether the returned error was
125984// because http.StatusNotModified was returned.
125985func (c *RegionInstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagerList, error) {
125986	gensupport.SetOptions(c.urlParams_, opts...)
125987	res, err := c.doRequest("json")
125988	if res != nil && res.StatusCode == http.StatusNotModified {
125989		if res.Body != nil {
125990			res.Body.Close()
125991		}
125992		return nil, &googleapi.Error{
125993			Code:   res.StatusCode,
125994			Header: res.Header,
125995		}
125996	}
125997	if err != nil {
125998		return nil, err
125999	}
126000	defer googleapi.CloseBody(res)
126001	if err := googleapi.CheckResponse(res); err != nil {
126002		return nil, err
126003	}
126004	ret := &RegionInstanceGroupManagerList{
126005		ServerResponse: googleapi.ServerResponse{
126006			Header:         res.Header,
126007			HTTPStatusCode: res.StatusCode,
126008		},
126009	}
126010	target := &ret
126011	if err := gensupport.DecodeResponse(target, res); err != nil {
126012		return nil, err
126013	}
126014	return ret, nil
126015	// {
126016	//   "description": "Retrieves the list of managed instance groups that are contained within the specified region.",
126017	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers",
126018	//   "httpMethod": "GET",
126019	//   "id": "compute.regionInstanceGroupManagers.list",
126020	//   "parameterOrder": [
126021	//     "project",
126022	//     "region"
126023	//   ],
126024	//   "parameters": {
126025	//     "filter": {
126026	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
126027	//       "location": "query",
126028	//       "type": "string"
126029	//     },
126030	//     "maxResults": {
126031	//       "default": "500",
126032	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
126033	//       "format": "uint32",
126034	//       "location": "query",
126035	//       "minimum": "0",
126036	//       "type": "integer"
126037	//     },
126038	//     "orderBy": {
126039	//       "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.",
126040	//       "location": "query",
126041	//       "type": "string"
126042	//     },
126043	//     "pageToken": {
126044	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
126045	//       "location": "query",
126046	//       "type": "string"
126047	//     },
126048	//     "project": {
126049	//       "description": "Project ID for this request.",
126050	//       "location": "path",
126051	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126052	//       "required": true,
126053	//       "type": "string"
126054	//     },
126055	//     "region": {
126056	//       "description": "Name of the region scoping this request.",
126057	//       "location": "path",
126058	//       "required": true,
126059	//       "type": "string"
126060	//     },
126061	//     "returnPartialSuccess": {
126062	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
126063	//       "location": "query",
126064	//       "type": "boolean"
126065	//     }
126066	//   },
126067	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers",
126068	//   "response": {
126069	//     "$ref": "RegionInstanceGroupManagerList"
126070	//   },
126071	//   "scopes": [
126072	//     "https://www.googleapis.com/auth/cloud-platform",
126073	//     "https://www.googleapis.com/auth/compute",
126074	//     "https://www.googleapis.com/auth/compute.readonly"
126075	//   ]
126076	// }
126077
126078}
126079
126080// Pages invokes f for each page of results.
126081// A non-nil error returned from f will halt the iteration.
126082// The provided context supersedes any context provided to the Context method.
126083func (c *RegionInstanceGroupManagersListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagerList) error) error {
126084	c.ctx_ = ctx
126085	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
126086	for {
126087		x, err := c.Do()
126088		if err != nil {
126089			return err
126090		}
126091		if err := f(x); err != nil {
126092			return err
126093		}
126094		if x.NextPageToken == "" {
126095			return nil
126096		}
126097		c.PageToken(x.NextPageToken)
126098	}
126099}
126100
126101// method id "compute.regionInstanceGroupManagers.listErrors":
126102
126103type RegionInstanceGroupManagersListErrorsCall struct {
126104	s                    *Service
126105	project              string
126106	region               string
126107	instanceGroupManager string
126108	urlParams_           gensupport.URLParams
126109	ifNoneMatch_         string
126110	ctx_                 context.Context
126111	header_              http.Header
126112}
126113
126114// ListErrors: Lists all errors thrown by actions on instances for a
126115// given regional managed instance group. The filter and orderBy query
126116// parameters are not supported.
126117//
126118// - instanceGroupManager: The name of the managed instance group. It
126119//   must be a string that meets the requirements in RFC1035, or an
126120//   unsigned long integer: must match regexp pattern: (?:a-z
126121//   (?:[-a-z0-9]{0,61}[a-z0-9])?)|1-9{0,19}.
126122// - project: Project ID for this request.
126123// - region: Name of the region scoping this request. This should
126124//   conform to RFC1035.
126125func (r *RegionInstanceGroupManagersService) ListErrors(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListErrorsCall {
126126	c := &RegionInstanceGroupManagersListErrorsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126127	c.project = project
126128	c.region = region
126129	c.instanceGroupManager = instanceGroupManager
126130	return c
126131}
126132
126133// Filter sets the optional parameter "filter": A filter expression that
126134// filters resources listed in the response. The expression must specify
126135// the field name, a comparison operator, and the value that you want to
126136// use for filtering. The value must be a string, a number, or a
126137// boolean. The comparison operator must be either `=`, `!=`, `>`, or
126138// `<`. For example, if you are filtering Compute Engine instances, you
126139// can exclude instances named `example-instance` by specifying `name !=
126140// example-instance`. You can also filter nested fields. For example,
126141// you could specify `scheduling.automaticRestart = false` to include
126142// instances only if they are not scheduled for automatic restarts. You
126143// can use filtering on nested fields to filter based on resource
126144// labels. To filter on multiple expressions, provide each separate
126145// expression within parentheses. For example: ```
126146// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
126147// ``` By default, each expression is an `AND` expression. However, you
126148// can include `AND` and `OR` expressions explicitly. For example: ```
126149// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
126150// AND (scheduling.automaticRestart = true) ```
126151func (c *RegionInstanceGroupManagersListErrorsCall) Filter(filter string) *RegionInstanceGroupManagersListErrorsCall {
126152	c.urlParams_.Set("filter", filter)
126153	return c
126154}
126155
126156// MaxResults sets the optional parameter "maxResults": The maximum
126157// number of results per page that should be returned. If the number of
126158// available results is larger than `maxResults`, Compute Engine returns
126159// a `nextPageToken` that can be used to get the next page of results in
126160// subsequent list requests. Acceptable values are `0` to `500`,
126161// inclusive. (Default: `500`)
126162func (c *RegionInstanceGroupManagersListErrorsCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListErrorsCall {
126163	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
126164	return c
126165}
126166
126167// OrderBy sets the optional parameter "orderBy": Sorts list results by
126168// a certain order. By default, results are returned in alphanumerical
126169// order based on the resource name. You can also sort results in
126170// descending order based on the creation timestamp using
126171// `orderBy="creationTimestamp desc". This sorts results based on the
126172// `creationTimestamp` field in reverse chronological order (newest
126173// result first). Use this to sort resources like operations so that the
126174// newest operation is returned first. Currently, only sorting by `name`
126175// or `creationTimestamp desc` is supported.
126176func (c *RegionInstanceGroupManagersListErrorsCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListErrorsCall {
126177	c.urlParams_.Set("orderBy", orderBy)
126178	return c
126179}
126180
126181// PageToken sets the optional parameter "pageToken": Specifies a page
126182// token to use. Set `pageToken` to the `nextPageToken` returned by a
126183// previous list request to get the next page of results.
126184func (c *RegionInstanceGroupManagersListErrorsCall) PageToken(pageToken string) *RegionInstanceGroupManagersListErrorsCall {
126185	c.urlParams_.Set("pageToken", pageToken)
126186	return c
126187}
126188
126189// ReturnPartialSuccess sets the optional parameter
126190// "returnPartialSuccess": Opt-in for partial success behavior which
126191// provides partial results in case of failure. The default value is
126192// false.
126193func (c *RegionInstanceGroupManagersListErrorsCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListErrorsCall {
126194	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
126195	return c
126196}
126197
126198// Fields allows partial responses to be retrieved. See
126199// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126200// for more information.
126201func (c *RegionInstanceGroupManagersListErrorsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListErrorsCall {
126202	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126203	return c
126204}
126205
126206// IfNoneMatch sets the optional parameter which makes the operation
126207// fail if the object's ETag matches the given value. This is useful for
126208// getting updates only after the object has changed since the last
126209// request. Use googleapi.IsNotModified to check whether the response
126210// error from Do is the result of In-None-Match.
126211func (c *RegionInstanceGroupManagersListErrorsCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersListErrorsCall {
126212	c.ifNoneMatch_ = entityTag
126213	return c
126214}
126215
126216// Context sets the context to be used in this call's Do method. Any
126217// pending HTTP request will be aborted if the provided context is
126218// canceled.
126219func (c *RegionInstanceGroupManagersListErrorsCall) Context(ctx context.Context) *RegionInstanceGroupManagersListErrorsCall {
126220	c.ctx_ = ctx
126221	return c
126222}
126223
126224// Header returns an http.Header that can be modified by the caller to
126225// add HTTP headers to the request.
126226func (c *RegionInstanceGroupManagersListErrorsCall) Header() http.Header {
126227	if c.header_ == nil {
126228		c.header_ = make(http.Header)
126229	}
126230	return c.header_
126231}
126232
126233func (c *RegionInstanceGroupManagersListErrorsCall) doRequest(alt string) (*http.Response, error) {
126234	reqHeaders := make(http.Header)
126235	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
126236	for k, v := range c.header_ {
126237		reqHeaders[k] = v
126238	}
126239	reqHeaders.Set("User-Agent", c.s.userAgent())
126240	if c.ifNoneMatch_ != "" {
126241		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
126242	}
126243	var body io.Reader = nil
126244	c.urlParams_.Set("alt", alt)
126245	c.urlParams_.Set("prettyPrint", "false")
126246	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors")
126247	urls += "?" + c.urlParams_.Encode()
126248	req, err := http.NewRequest("GET", urls, body)
126249	if err != nil {
126250		return nil, err
126251	}
126252	req.Header = reqHeaders
126253	googleapi.Expand(req.URL, map[string]string{
126254		"project":              c.project,
126255		"region":               c.region,
126256		"instanceGroupManager": c.instanceGroupManager,
126257	})
126258	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126259}
126260
126261// Do executes the "compute.regionInstanceGroupManagers.listErrors" call.
126262// Exactly one of *RegionInstanceGroupManagersListErrorsResponse or
126263// error will be non-nil. Any non-2xx status code is an error. Response
126264// headers are in either
126265// *RegionInstanceGroupManagersListErrorsResponse.ServerResponse.Header
126266// or (if a response was returned at all) in
126267// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
126268// whether the returned error was because http.StatusNotModified was
126269// returned.
126270func (c *RegionInstanceGroupManagersListErrorsCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListErrorsResponse, error) {
126271	gensupport.SetOptions(c.urlParams_, opts...)
126272	res, err := c.doRequest("json")
126273	if res != nil && res.StatusCode == http.StatusNotModified {
126274		if res.Body != nil {
126275			res.Body.Close()
126276		}
126277		return nil, &googleapi.Error{
126278			Code:   res.StatusCode,
126279			Header: res.Header,
126280		}
126281	}
126282	if err != nil {
126283		return nil, err
126284	}
126285	defer googleapi.CloseBody(res)
126286	if err := googleapi.CheckResponse(res); err != nil {
126287		return nil, err
126288	}
126289	ret := &RegionInstanceGroupManagersListErrorsResponse{
126290		ServerResponse: googleapi.ServerResponse{
126291			Header:         res.Header,
126292			HTTPStatusCode: res.StatusCode,
126293		},
126294	}
126295	target := &ret
126296	if err := gensupport.DecodeResponse(target, res); err != nil {
126297		return nil, err
126298	}
126299	return ret, nil
126300	// {
126301	//   "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.",
126302	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors",
126303	//   "httpMethod": "GET",
126304	//   "id": "compute.regionInstanceGroupManagers.listErrors",
126305	//   "parameterOrder": [
126306	//     "project",
126307	//     "region",
126308	//     "instanceGroupManager"
126309	//   ],
126310	//   "parameters": {
126311	//     "filter": {
126312	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
126313	//       "location": "query",
126314	//       "type": "string"
126315	//     },
126316	//     "instanceGroupManager": {
126317	//       "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}.",
126318	//       "location": "path",
126319	//       "required": true,
126320	//       "type": "string"
126321	//     },
126322	//     "maxResults": {
126323	//       "default": "500",
126324	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
126325	//       "format": "uint32",
126326	//       "location": "query",
126327	//       "minimum": "0",
126328	//       "type": "integer"
126329	//     },
126330	//     "orderBy": {
126331	//       "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.",
126332	//       "location": "query",
126333	//       "type": "string"
126334	//     },
126335	//     "pageToken": {
126336	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
126337	//       "location": "query",
126338	//       "type": "string"
126339	//     },
126340	//     "project": {
126341	//       "description": "Project ID for this request.",
126342	//       "location": "path",
126343	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126344	//       "required": true,
126345	//       "type": "string"
126346	//     },
126347	//     "region": {
126348	//       "description": "Name of the region scoping this request. This should conform to RFC1035.",
126349	//       "location": "path",
126350	//       "required": true,
126351	//       "type": "string"
126352	//     },
126353	//     "returnPartialSuccess": {
126354	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
126355	//       "location": "query",
126356	//       "type": "boolean"
126357	//     }
126358	//   },
126359	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors",
126360	//   "response": {
126361	//     "$ref": "RegionInstanceGroupManagersListErrorsResponse"
126362	//   },
126363	//   "scopes": [
126364	//     "https://www.googleapis.com/auth/cloud-platform",
126365	//     "https://www.googleapis.com/auth/compute",
126366	//     "https://www.googleapis.com/auth/compute.readonly"
126367	//   ]
126368	// }
126369
126370}
126371
126372// Pages invokes f for each page of results.
126373// A non-nil error returned from f will halt the iteration.
126374// The provided context supersedes any context provided to the Context method.
126375func (c *RegionInstanceGroupManagersListErrorsCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListErrorsResponse) error) error {
126376	c.ctx_ = ctx
126377	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
126378	for {
126379		x, err := c.Do()
126380		if err != nil {
126381			return err
126382		}
126383		if err := f(x); err != nil {
126384			return err
126385		}
126386		if x.NextPageToken == "" {
126387			return nil
126388		}
126389		c.PageToken(x.NextPageToken)
126390	}
126391}
126392
126393// method id "compute.regionInstanceGroupManagers.listManagedInstances":
126394
126395type RegionInstanceGroupManagersListManagedInstancesCall struct {
126396	s                    *Service
126397	project              string
126398	region               string
126399	instanceGroupManager string
126400	urlParams_           gensupport.URLParams
126401	ctx_                 context.Context
126402	header_              http.Header
126403}
126404
126405// ListManagedInstances: Lists the instances in the managed instance
126406// group and instances that are scheduled to be created. The list
126407// includes any current actions that the group has scheduled for its
126408// instances. The orderBy query parameter is not supported.
126409//
126410// - instanceGroupManager: The name of the managed instance group.
126411// - project: Project ID for this request.
126412// - region: Name of the region scoping this request.
126413func (r *RegionInstanceGroupManagersService) ListManagedInstances(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListManagedInstancesCall {
126414	c := &RegionInstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126415	c.project = project
126416	c.region = region
126417	c.instanceGroupManager = instanceGroupManager
126418	return c
126419}
126420
126421// Filter sets the optional parameter "filter": A filter expression that
126422// filters resources listed in the response. The expression must specify
126423// the field name, a comparison operator, and the value that you want to
126424// use for filtering. The value must be a string, a number, or a
126425// boolean. The comparison operator must be either `=`, `!=`, `>`, or
126426// `<`. For example, if you are filtering Compute Engine instances, you
126427// can exclude instances named `example-instance` by specifying `name !=
126428// example-instance`. You can also filter nested fields. For example,
126429// you could specify `scheduling.automaticRestart = false` to include
126430// instances only if they are not scheduled for automatic restarts. You
126431// can use filtering on nested fields to filter based on resource
126432// labels. To filter on multiple expressions, provide each separate
126433// expression within parentheses. For example: ```
126434// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
126435// ``` By default, each expression is an `AND` expression. However, you
126436// can include `AND` and `OR` expressions explicitly. For example: ```
126437// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
126438// AND (scheduling.automaticRestart = true) ```
126439func (c *RegionInstanceGroupManagersListManagedInstancesCall) Filter(filter string) *RegionInstanceGroupManagersListManagedInstancesCall {
126440	c.urlParams_.Set("filter", filter)
126441	return c
126442}
126443
126444// MaxResults sets the optional parameter "maxResults": The maximum
126445// number of results per page that should be returned. If the number of
126446// available results is larger than `maxResults`, Compute Engine returns
126447// a `nextPageToken` that can be used to get the next page of results in
126448// subsequent list requests. Acceptable values are `0` to `500`,
126449// inclusive. (Default: `500`)
126450func (c *RegionInstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListManagedInstancesCall {
126451	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
126452	return c
126453}
126454
126455// OrderBy sets the optional parameter "orderBy": Sorts list results by
126456// a certain order. By default, results are returned in alphanumerical
126457// order based on the resource name. You can also sort results in
126458// descending order based on the creation timestamp using
126459// `orderBy="creationTimestamp desc". This sorts results based on the
126460// `creationTimestamp` field in reverse chronological order (newest
126461// result first). Use this to sort resources like operations so that the
126462// newest operation is returned first. Currently, only sorting by `name`
126463// or `creationTimestamp desc` is supported.
126464func (c *RegionInstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListManagedInstancesCall {
126465	c.urlParams_.Set("orderBy", orderBy)
126466	return c
126467}
126468
126469// PageToken sets the optional parameter "pageToken": Specifies a page
126470// token to use. Set `pageToken` to the `nextPageToken` returned by a
126471// previous list request to get the next page of results.
126472func (c *RegionInstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *RegionInstanceGroupManagersListManagedInstancesCall {
126473	c.urlParams_.Set("pageToken", pageToken)
126474	return c
126475}
126476
126477// ReturnPartialSuccess sets the optional parameter
126478// "returnPartialSuccess": Opt-in for partial success behavior which
126479// provides partial results in case of failure. The default value is
126480// false.
126481func (c *RegionInstanceGroupManagersListManagedInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListManagedInstancesCall {
126482	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
126483	return c
126484}
126485
126486// Fields allows partial responses to be retrieved. See
126487// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126488// for more information.
126489func (c *RegionInstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListManagedInstancesCall {
126490	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126491	return c
126492}
126493
126494// Context sets the context to be used in this call's Do method. Any
126495// pending HTTP request will be aborted if the provided context is
126496// canceled.
126497func (c *RegionInstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersListManagedInstancesCall {
126498	c.ctx_ = ctx
126499	return c
126500}
126501
126502// Header returns an http.Header that can be modified by the caller to
126503// add HTTP headers to the request.
126504func (c *RegionInstanceGroupManagersListManagedInstancesCall) Header() http.Header {
126505	if c.header_ == nil {
126506		c.header_ = make(http.Header)
126507	}
126508	return c.header_
126509}
126510
126511func (c *RegionInstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) {
126512	reqHeaders := make(http.Header)
126513	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
126514	for k, v := range c.header_ {
126515		reqHeaders[k] = v
126516	}
126517	reqHeaders.Set("User-Agent", c.s.userAgent())
126518	var body io.Reader = nil
126519	c.urlParams_.Set("alt", alt)
126520	c.urlParams_.Set("prettyPrint", "false")
126521	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances")
126522	urls += "?" + c.urlParams_.Encode()
126523	req, err := http.NewRequest("POST", urls, body)
126524	if err != nil {
126525		return nil, err
126526	}
126527	req.Header = reqHeaders
126528	googleapi.Expand(req.URL, map[string]string{
126529		"project":              c.project,
126530		"region":               c.region,
126531		"instanceGroupManager": c.instanceGroupManager,
126532	})
126533	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126534}
126535
126536// Do executes the "compute.regionInstanceGroupManagers.listManagedInstances" call.
126537// Exactly one of *RegionInstanceGroupManagersListInstancesResponse or
126538// error will be non-nil. Any non-2xx status code is an error. Response
126539// headers are in either
126540// *RegionInstanceGroupManagersListInstancesResponse.ServerResponse.Heade
126541// r or (if a response was returned at all) in
126542// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
126543// whether the returned error was because http.StatusNotModified was
126544// returned.
126545func (c *RegionInstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListInstancesResponse, error) {
126546	gensupport.SetOptions(c.urlParams_, opts...)
126547	res, err := c.doRequest("json")
126548	if res != nil && res.StatusCode == http.StatusNotModified {
126549		if res.Body != nil {
126550			res.Body.Close()
126551		}
126552		return nil, &googleapi.Error{
126553			Code:   res.StatusCode,
126554			Header: res.Header,
126555		}
126556	}
126557	if err != nil {
126558		return nil, err
126559	}
126560	defer googleapi.CloseBody(res)
126561	if err := googleapi.CheckResponse(res); err != nil {
126562		return nil, err
126563	}
126564	ret := &RegionInstanceGroupManagersListInstancesResponse{
126565		ServerResponse: googleapi.ServerResponse{
126566			Header:         res.Header,
126567			HTTPStatusCode: res.StatusCode,
126568		},
126569	}
126570	target := &ret
126571	if err := gensupport.DecodeResponse(target, res); err != nil {
126572		return nil, err
126573	}
126574	return ret, nil
126575	// {
126576	//   "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.",
126577	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
126578	//   "httpMethod": "POST",
126579	//   "id": "compute.regionInstanceGroupManagers.listManagedInstances",
126580	//   "parameterOrder": [
126581	//     "project",
126582	//     "region",
126583	//     "instanceGroupManager"
126584	//   ],
126585	//   "parameters": {
126586	//     "filter": {
126587	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
126588	//       "location": "query",
126589	//       "type": "string"
126590	//     },
126591	//     "instanceGroupManager": {
126592	//       "description": "The name of the managed instance group.",
126593	//       "location": "path",
126594	//       "required": true,
126595	//       "type": "string"
126596	//     },
126597	//     "maxResults": {
126598	//       "default": "500",
126599	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
126600	//       "format": "uint32",
126601	//       "location": "query",
126602	//       "minimum": "0",
126603	//       "type": "integer"
126604	//     },
126605	//     "orderBy": {
126606	//       "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.",
126607	//       "location": "query",
126608	//       "type": "string"
126609	//     },
126610	//     "pageToken": {
126611	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
126612	//       "location": "query",
126613	//       "type": "string"
126614	//     },
126615	//     "project": {
126616	//       "description": "Project ID for this request.",
126617	//       "location": "path",
126618	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126619	//       "required": true,
126620	//       "type": "string"
126621	//     },
126622	//     "region": {
126623	//       "description": "Name of the region scoping this request.",
126624	//       "location": "path",
126625	//       "required": true,
126626	//       "type": "string"
126627	//     },
126628	//     "returnPartialSuccess": {
126629	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
126630	//       "location": "query",
126631	//       "type": "boolean"
126632	//     }
126633	//   },
126634	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
126635	//   "response": {
126636	//     "$ref": "RegionInstanceGroupManagersListInstancesResponse"
126637	//   },
126638	//   "scopes": [
126639	//     "https://www.googleapis.com/auth/cloud-platform",
126640	//     "https://www.googleapis.com/auth/compute",
126641	//     "https://www.googleapis.com/auth/compute.readonly"
126642	//   ]
126643	// }
126644
126645}
126646
126647// Pages invokes f for each page of results.
126648// A non-nil error returned from f will halt the iteration.
126649// The provided context supersedes any context provided to the Context method.
126650func (c *RegionInstanceGroupManagersListManagedInstancesCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListInstancesResponse) error) error {
126651	c.ctx_ = ctx
126652	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
126653	for {
126654		x, err := c.Do()
126655		if err != nil {
126656			return err
126657		}
126658		if err := f(x); err != nil {
126659			return err
126660		}
126661		if x.NextPageToken == "" {
126662			return nil
126663		}
126664		c.PageToken(x.NextPageToken)
126665	}
126666}
126667
126668// method id "compute.regionInstanceGroupManagers.listPerInstanceConfigs":
126669
126670type RegionInstanceGroupManagersListPerInstanceConfigsCall struct {
126671	s                    *Service
126672	project              string
126673	region               string
126674	instanceGroupManager string
126675	urlParams_           gensupport.URLParams
126676	ctx_                 context.Context
126677	header_              http.Header
126678}
126679
126680// ListPerInstanceConfigs: Lists all of the per-instance configs defined
126681// for the managed instance group. The orderBy query parameter is not
126682// supported.
126683//
126684// - instanceGroupManager: The name of the managed instance group. It
126685//   should conform to RFC1035.
126686// - project: Project ID for this request.
126687// - region: Name of the region scoping this request, should conform to
126688//   RFC1035.
126689func (r *RegionInstanceGroupManagersService) ListPerInstanceConfigs(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
126690	c := &RegionInstanceGroupManagersListPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126691	c.project = project
126692	c.region = region
126693	c.instanceGroupManager = instanceGroupManager
126694	return c
126695}
126696
126697// Filter sets the optional parameter "filter": A filter expression that
126698// filters resources listed in the response. The expression must specify
126699// the field name, a comparison operator, and the value that you want to
126700// use for filtering. The value must be a string, a number, or a
126701// boolean. The comparison operator must be either `=`, `!=`, `>`, or
126702// `<`. For example, if you are filtering Compute Engine instances, you
126703// can exclude instances named `example-instance` by specifying `name !=
126704// example-instance`. You can also filter nested fields. For example,
126705// you could specify `scheduling.automaticRestart = false` to include
126706// instances only if they are not scheduled for automatic restarts. You
126707// can use filtering on nested fields to filter based on resource
126708// labels. To filter on multiple expressions, provide each separate
126709// expression within parentheses. For example: ```
126710// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
126711// ``` By default, each expression is an `AND` expression. However, you
126712// can include `AND` and `OR` expressions explicitly. For example: ```
126713// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
126714// AND (scheduling.automaticRestart = true) ```
126715func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Filter(filter string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
126716	c.urlParams_.Set("filter", filter)
126717	return c
126718}
126719
126720// MaxResults sets the optional parameter "maxResults": The maximum
126721// number of results per page that should be returned. If the number of
126722// available results is larger than `maxResults`, Compute Engine returns
126723// a `nextPageToken` that can be used to get the next page of results in
126724// subsequent list requests. Acceptable values are `0` to `500`,
126725// inclusive. (Default: `500`)
126726func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
126727	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
126728	return c
126729}
126730
126731// OrderBy sets the optional parameter "orderBy": Sorts list results by
126732// a certain order. By default, results are returned in alphanumerical
126733// order based on the resource name. You can also sort results in
126734// descending order based on the creation timestamp using
126735// `orderBy="creationTimestamp desc". This sorts results based on the
126736// `creationTimestamp` field in reverse chronological order (newest
126737// result first). Use this to sort resources like operations so that the
126738// newest operation is returned first. Currently, only sorting by `name`
126739// or `creationTimestamp desc` is supported.
126740func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
126741	c.urlParams_.Set("orderBy", orderBy)
126742	return c
126743}
126744
126745// PageToken sets the optional parameter "pageToken": Specifies a page
126746// token to use. Set `pageToken` to the `nextPageToken` returned by a
126747// previous list request to get the next page of results.
126748func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) PageToken(pageToken string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
126749	c.urlParams_.Set("pageToken", pageToken)
126750	return c
126751}
126752
126753// ReturnPartialSuccess sets the optional parameter
126754// "returnPartialSuccess": Opt-in for partial success behavior which
126755// provides partial results in case of failure. The default value is
126756// false.
126757func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
126758	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
126759	return c
126760}
126761
126762// Fields allows partial responses to be retrieved. See
126763// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126764// for more information.
126765func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
126766	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126767	return c
126768}
126769
126770// Context sets the context to be used in this call's Do method. Any
126771// pending HTTP request will be aborted if the provided context is
126772// canceled.
126773func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
126774	c.ctx_ = ctx
126775	return c
126776}
126777
126778// Header returns an http.Header that can be modified by the caller to
126779// add HTTP headers to the request.
126780func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Header() http.Header {
126781	if c.header_ == nil {
126782		c.header_ = make(http.Header)
126783	}
126784	return c.header_
126785}
126786
126787func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
126788	reqHeaders := make(http.Header)
126789	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
126790	for k, v := range c.header_ {
126791		reqHeaders[k] = v
126792	}
126793	reqHeaders.Set("User-Agent", c.s.userAgent())
126794	var body io.Reader = nil
126795	c.urlParams_.Set("alt", alt)
126796	c.urlParams_.Set("prettyPrint", "false")
126797	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs")
126798	urls += "?" + c.urlParams_.Encode()
126799	req, err := http.NewRequest("POST", urls, body)
126800	if err != nil {
126801		return nil, err
126802	}
126803	req.Header = reqHeaders
126804	googleapi.Expand(req.URL, map[string]string{
126805		"project":              c.project,
126806		"region":               c.region,
126807		"instanceGroupManager": c.instanceGroupManager,
126808	})
126809	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126810}
126811
126812// Do executes the "compute.regionInstanceGroupManagers.listPerInstanceConfigs" call.
126813// Exactly one of *RegionInstanceGroupManagersListInstanceConfigsResp or
126814// error will be non-nil. Any non-2xx status code is an error. Response
126815// headers are in either
126816// *RegionInstanceGroupManagersListInstanceConfigsResp.ServerResponse.Hea
126817// der or (if a response was returned at all) in
126818// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
126819// whether the returned error was because http.StatusNotModified was
126820// returned.
126821func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListInstanceConfigsResp, error) {
126822	gensupport.SetOptions(c.urlParams_, opts...)
126823	res, err := c.doRequest("json")
126824	if res != nil && res.StatusCode == http.StatusNotModified {
126825		if res.Body != nil {
126826			res.Body.Close()
126827		}
126828		return nil, &googleapi.Error{
126829			Code:   res.StatusCode,
126830			Header: res.Header,
126831		}
126832	}
126833	if err != nil {
126834		return nil, err
126835	}
126836	defer googleapi.CloseBody(res)
126837	if err := googleapi.CheckResponse(res); err != nil {
126838		return nil, err
126839	}
126840	ret := &RegionInstanceGroupManagersListInstanceConfigsResp{
126841		ServerResponse: googleapi.ServerResponse{
126842			Header:         res.Header,
126843			HTTPStatusCode: res.StatusCode,
126844		},
126845	}
126846	target := &ret
126847	if err := gensupport.DecodeResponse(target, res); err != nil {
126848		return nil, err
126849	}
126850	return ret, nil
126851	// {
126852	//   "description": "Lists all of the per-instance configs defined for the managed instance group. The orderBy query parameter is not supported.",
126853	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs",
126854	//   "httpMethod": "POST",
126855	//   "id": "compute.regionInstanceGroupManagers.listPerInstanceConfigs",
126856	//   "parameterOrder": [
126857	//     "project",
126858	//     "region",
126859	//     "instanceGroupManager"
126860	//   ],
126861	//   "parameters": {
126862	//     "filter": {
126863	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
126864	//       "location": "query",
126865	//       "type": "string"
126866	//     },
126867	//     "instanceGroupManager": {
126868	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
126869	//       "location": "path",
126870	//       "required": true,
126871	//       "type": "string"
126872	//     },
126873	//     "maxResults": {
126874	//       "default": "500",
126875	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
126876	//       "format": "uint32",
126877	//       "location": "query",
126878	//       "minimum": "0",
126879	//       "type": "integer"
126880	//     },
126881	//     "orderBy": {
126882	//       "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.",
126883	//       "location": "query",
126884	//       "type": "string"
126885	//     },
126886	//     "pageToken": {
126887	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
126888	//       "location": "query",
126889	//       "type": "string"
126890	//     },
126891	//     "project": {
126892	//       "description": "Project ID for this request.",
126893	//       "location": "path",
126894	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126895	//       "required": true,
126896	//       "type": "string"
126897	//     },
126898	//     "region": {
126899	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
126900	//       "location": "path",
126901	//       "required": true,
126902	//       "type": "string"
126903	//     },
126904	//     "returnPartialSuccess": {
126905	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
126906	//       "location": "query",
126907	//       "type": "boolean"
126908	//     }
126909	//   },
126910	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs",
126911	//   "response": {
126912	//     "$ref": "RegionInstanceGroupManagersListInstanceConfigsResp"
126913	//   },
126914	//   "scopes": [
126915	//     "https://www.googleapis.com/auth/cloud-platform",
126916	//     "https://www.googleapis.com/auth/compute",
126917	//     "https://www.googleapis.com/auth/compute.readonly"
126918	//   ]
126919	// }
126920
126921}
126922
126923// Pages invokes f for each page of results.
126924// A non-nil error returned from f will halt the iteration.
126925// The provided context supersedes any context provided to the Context method.
126926func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListInstanceConfigsResp) error) error {
126927	c.ctx_ = ctx
126928	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
126929	for {
126930		x, err := c.Do()
126931		if err != nil {
126932			return err
126933		}
126934		if err := f(x); err != nil {
126935			return err
126936		}
126937		if x.NextPageToken == "" {
126938			return nil
126939		}
126940		c.PageToken(x.NextPageToken)
126941	}
126942}
126943
126944// method id "compute.regionInstanceGroupManagers.patch":
126945
126946type RegionInstanceGroupManagersPatchCall struct {
126947	s                    *Service
126948	project              string
126949	region               string
126950	instanceGroupManager string
126951	instancegroupmanager *InstanceGroupManager
126952	urlParams_           gensupport.URLParams
126953	ctx_                 context.Context
126954	header_              http.Header
126955}
126956
126957// Patch: Updates a managed instance group using the information that
126958// you specify in the request. This operation is marked as DONE when the
126959// group is patched even if the instances in the group are still in the
126960// process of being patched. You must separately verify the status of
126961// the individual instances with the listmanagedinstances method. This
126962// method supports PATCH semantics and uses the JSON merge patch format
126963// and processing rules. If you update your group to specify a new
126964// template or instance configuration, it's possible that your intended
126965// specification for each VM in the group is different from the current
126966// state of that VM. To learn how to apply an updated configuration to
126967// the VMs in a MIG, see Updating instances in a MIG.
126968//
126969// - instanceGroupManager: The name of the instance group manager.
126970// - project: Project ID for this request.
126971// - region: Name of the region scoping this request.
126972func (r *RegionInstanceGroupManagersService) Patch(project string, region string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersPatchCall {
126973	c := &RegionInstanceGroupManagersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126974	c.project = project
126975	c.region = region
126976	c.instanceGroupManager = instanceGroupManager
126977	c.instancegroupmanager = instancegroupmanager
126978	return c
126979}
126980
126981// RequestId sets the optional parameter "requestId": An optional
126982// request ID to identify requests. Specify a unique request ID so that
126983// if you must retry your request, the server will know to ignore the
126984// request if it has already been completed. For example, consider a
126985// situation where you make an initial request and the request times
126986// out. If you make the request again with the same request ID, the
126987// server can check if original operation with the same request ID was
126988// received, and if so, will ignore the second request. This prevents
126989// clients from accidentally creating duplicate commitments. The request
126990// ID must be a valid UUID with the exception that zero UUID is not
126991// supported ( 00000000-0000-0000-0000-000000000000).
126992func (c *RegionInstanceGroupManagersPatchCall) RequestId(requestId string) *RegionInstanceGroupManagersPatchCall {
126993	c.urlParams_.Set("requestId", requestId)
126994	return c
126995}
126996
126997// Fields allows partial responses to be retrieved. See
126998// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126999// for more information.
127000func (c *RegionInstanceGroupManagersPatchCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersPatchCall {
127001	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127002	return c
127003}
127004
127005// Context sets the context to be used in this call's Do method. Any
127006// pending HTTP request will be aborted if the provided context is
127007// canceled.
127008func (c *RegionInstanceGroupManagersPatchCall) Context(ctx context.Context) *RegionInstanceGroupManagersPatchCall {
127009	c.ctx_ = ctx
127010	return c
127011}
127012
127013// Header returns an http.Header that can be modified by the caller to
127014// add HTTP headers to the request.
127015func (c *RegionInstanceGroupManagersPatchCall) Header() http.Header {
127016	if c.header_ == nil {
127017		c.header_ = make(http.Header)
127018	}
127019	return c.header_
127020}
127021
127022func (c *RegionInstanceGroupManagersPatchCall) doRequest(alt string) (*http.Response, error) {
127023	reqHeaders := make(http.Header)
127024	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
127025	for k, v := range c.header_ {
127026		reqHeaders[k] = v
127027	}
127028	reqHeaders.Set("User-Agent", c.s.userAgent())
127029	var body io.Reader = nil
127030	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
127031	if err != nil {
127032		return nil, err
127033	}
127034	reqHeaders.Set("Content-Type", "application/json")
127035	c.urlParams_.Set("alt", alt)
127036	c.urlParams_.Set("prettyPrint", "false")
127037	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
127038	urls += "?" + c.urlParams_.Encode()
127039	req, err := http.NewRequest("PATCH", urls, body)
127040	if err != nil {
127041		return nil, err
127042	}
127043	req.Header = reqHeaders
127044	googleapi.Expand(req.URL, map[string]string{
127045		"project":              c.project,
127046		"region":               c.region,
127047		"instanceGroupManager": c.instanceGroupManager,
127048	})
127049	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127050}
127051
127052// Do executes the "compute.regionInstanceGroupManagers.patch" call.
127053// Exactly one of *Operation or error will be non-nil. Any non-2xx
127054// status code is an error. Response headers are in either
127055// *Operation.ServerResponse.Header or (if a response was returned at
127056// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127057// to check whether the returned error was because
127058// http.StatusNotModified was returned.
127059func (c *RegionInstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127060	gensupport.SetOptions(c.urlParams_, opts...)
127061	res, err := c.doRequest("json")
127062	if res != nil && res.StatusCode == http.StatusNotModified {
127063		if res.Body != nil {
127064			res.Body.Close()
127065		}
127066		return nil, &googleapi.Error{
127067			Code:   res.StatusCode,
127068			Header: res.Header,
127069		}
127070	}
127071	if err != nil {
127072		return nil, err
127073	}
127074	defer googleapi.CloseBody(res)
127075	if err := googleapi.CheckResponse(res); err != nil {
127076		return nil, err
127077	}
127078	ret := &Operation{
127079		ServerResponse: googleapi.ServerResponse{
127080			Header:         res.Header,
127081			HTTPStatusCode: res.StatusCode,
127082		},
127083	}
127084	target := &ret
127085	if err := gensupport.DecodeResponse(target, res); err != nil {
127086		return nil, err
127087	}
127088	return ret, nil
127089	// {
127090	//   "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. If you update your group to specify a new template or instance configuration, it's possible that your intended specification for each VM in the group is different from the current state of that VM. To learn how to apply an updated configuration to the VMs in a MIG, see Updating instances in a MIG.",
127091	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
127092	//   "httpMethod": "PATCH",
127093	//   "id": "compute.regionInstanceGroupManagers.patch",
127094	//   "parameterOrder": [
127095	//     "project",
127096	//     "region",
127097	//     "instanceGroupManager"
127098	//   ],
127099	//   "parameters": {
127100	//     "instanceGroupManager": {
127101	//       "description": "The name of the instance group manager.",
127102	//       "location": "path",
127103	//       "required": true,
127104	//       "type": "string"
127105	//     },
127106	//     "project": {
127107	//       "description": "Project ID for this request.",
127108	//       "location": "path",
127109	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127110	//       "required": true,
127111	//       "type": "string"
127112	//     },
127113	//     "region": {
127114	//       "description": "Name of the region scoping this request.",
127115	//       "location": "path",
127116	//       "required": true,
127117	//       "type": "string"
127118	//     },
127119	//     "requestId": {
127120	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
127121	//       "location": "query",
127122	//       "type": "string"
127123	//     }
127124	//   },
127125	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
127126	//   "request": {
127127	//     "$ref": "InstanceGroupManager"
127128	//   },
127129	//   "response": {
127130	//     "$ref": "Operation"
127131	//   },
127132	//   "scopes": [
127133	//     "https://www.googleapis.com/auth/cloud-platform",
127134	//     "https://www.googleapis.com/auth/compute"
127135	//   ]
127136	// }
127137
127138}
127139
127140// method id "compute.regionInstanceGroupManagers.patchPerInstanceConfigs":
127141
127142type RegionInstanceGroupManagersPatchPerInstanceConfigsCall struct {
127143	s                                                *Service
127144	project                                          string
127145	region                                           string
127146	instanceGroupManager                             string
127147	regioninstancegroupmanagerpatchinstanceconfigreq *RegionInstanceGroupManagerPatchInstanceConfigReq
127148	urlParams_                                       gensupport.URLParams
127149	ctx_                                             context.Context
127150	header_                                          http.Header
127151}
127152
127153// PatchPerInstanceConfigs: Inserts or patches per-instance configs for
127154// the managed instance group. perInstanceConfig.name serves as a key
127155// used to distinguish whether to perform insert or patch.
127156//
127157// - instanceGroupManager: The name of the managed instance group. It
127158//   should conform to RFC1035.
127159// - project: Project ID for this request.
127160// - region: Name of the region scoping this request, should conform to
127161//   RFC1035.
127162func (r *RegionInstanceGroupManagersService) PatchPerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerpatchinstanceconfigreq *RegionInstanceGroupManagerPatchInstanceConfigReq) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
127163	c := &RegionInstanceGroupManagersPatchPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127164	c.project = project
127165	c.region = region
127166	c.instanceGroupManager = instanceGroupManager
127167	c.regioninstancegroupmanagerpatchinstanceconfigreq = regioninstancegroupmanagerpatchinstanceconfigreq
127168	return c
127169}
127170
127171// RequestId sets the optional parameter "requestId": An optional
127172// request ID to identify requests. Specify a unique request ID so that
127173// if you must retry your request, the server will know to ignore the
127174// request if it has already been completed. For example, consider a
127175// situation where you make an initial request and the request times
127176// out. If you make the request again with the same request ID, the
127177// server can check if original operation with the same request ID was
127178// received, and if so, will ignore the second request. This prevents
127179// clients from accidentally creating duplicate commitments. The request
127180// ID must be a valid UUID with the exception that zero UUID is not
127181// supported ( 00000000-0000-0000-0000-000000000000).
127182func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) RequestId(requestId string) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
127183	c.urlParams_.Set("requestId", requestId)
127184	return c
127185}
127186
127187// Fields allows partial responses to be retrieved. See
127188// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127189// for more information.
127190func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
127191	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127192	return c
127193}
127194
127195// Context sets the context to be used in this call's Do method. Any
127196// pending HTTP request will be aborted if the provided context is
127197// canceled.
127198func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
127199	c.ctx_ = ctx
127200	return c
127201}
127202
127203// Header returns an http.Header that can be modified by the caller to
127204// add HTTP headers to the request.
127205func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Header() http.Header {
127206	if c.header_ == nil {
127207		c.header_ = make(http.Header)
127208	}
127209	return c.header_
127210}
127211
127212func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
127213	reqHeaders := make(http.Header)
127214	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
127215	for k, v := range c.header_ {
127216		reqHeaders[k] = v
127217	}
127218	reqHeaders.Set("User-Agent", c.s.userAgent())
127219	var body io.Reader = nil
127220	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerpatchinstanceconfigreq)
127221	if err != nil {
127222		return nil, err
127223	}
127224	reqHeaders.Set("Content-Type", "application/json")
127225	c.urlParams_.Set("alt", alt)
127226	c.urlParams_.Set("prettyPrint", "false")
127227	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs")
127228	urls += "?" + c.urlParams_.Encode()
127229	req, err := http.NewRequest("POST", urls, body)
127230	if err != nil {
127231		return nil, err
127232	}
127233	req.Header = reqHeaders
127234	googleapi.Expand(req.URL, map[string]string{
127235		"project":              c.project,
127236		"region":               c.region,
127237		"instanceGroupManager": c.instanceGroupManager,
127238	})
127239	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127240}
127241
127242// Do executes the "compute.regionInstanceGroupManagers.patchPerInstanceConfigs" call.
127243// Exactly one of *Operation or error will be non-nil. Any non-2xx
127244// status code is an error. Response headers are in either
127245// *Operation.ServerResponse.Header or (if a response was returned at
127246// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127247// to check whether the returned error was because
127248// http.StatusNotModified was returned.
127249func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127250	gensupport.SetOptions(c.urlParams_, opts...)
127251	res, err := c.doRequest("json")
127252	if res != nil && res.StatusCode == http.StatusNotModified {
127253		if res.Body != nil {
127254			res.Body.Close()
127255		}
127256		return nil, &googleapi.Error{
127257			Code:   res.StatusCode,
127258			Header: res.Header,
127259		}
127260	}
127261	if err != nil {
127262		return nil, err
127263	}
127264	defer googleapi.CloseBody(res)
127265	if err := googleapi.CheckResponse(res); err != nil {
127266		return nil, err
127267	}
127268	ret := &Operation{
127269		ServerResponse: googleapi.ServerResponse{
127270			Header:         res.Header,
127271			HTTPStatusCode: res.StatusCode,
127272		},
127273	}
127274	target := &ret
127275	if err := gensupport.DecodeResponse(target, res); err != nil {
127276		return nil, err
127277	}
127278	return ret, nil
127279	// {
127280	//   "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.",
127281	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs",
127282	//   "httpMethod": "POST",
127283	//   "id": "compute.regionInstanceGroupManagers.patchPerInstanceConfigs",
127284	//   "parameterOrder": [
127285	//     "project",
127286	//     "region",
127287	//     "instanceGroupManager"
127288	//   ],
127289	//   "parameters": {
127290	//     "instanceGroupManager": {
127291	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
127292	//       "location": "path",
127293	//       "required": true,
127294	//       "type": "string"
127295	//     },
127296	//     "project": {
127297	//       "description": "Project ID for this request.",
127298	//       "location": "path",
127299	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127300	//       "required": true,
127301	//       "type": "string"
127302	//     },
127303	//     "region": {
127304	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
127305	//       "location": "path",
127306	//       "required": true,
127307	//       "type": "string"
127308	//     },
127309	//     "requestId": {
127310	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
127311	//       "location": "query",
127312	//       "type": "string"
127313	//     }
127314	//   },
127315	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs",
127316	//   "request": {
127317	//     "$ref": "RegionInstanceGroupManagerPatchInstanceConfigReq"
127318	//   },
127319	//   "response": {
127320	//     "$ref": "Operation"
127321	//   },
127322	//   "scopes": [
127323	//     "https://www.googleapis.com/auth/cloud-platform",
127324	//     "https://www.googleapis.com/auth/compute"
127325	//   ]
127326	// }
127327
127328}
127329
127330// method id "compute.regionInstanceGroupManagers.recreateInstances":
127331
127332type RegionInstanceGroupManagersRecreateInstancesCall struct {
127333	s                                          *Service
127334	project                                    string
127335	region                                     string
127336	instanceGroupManager                       string
127337	regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest
127338	urlParams_                                 gensupport.URLParams
127339	ctx_                                       context.Context
127340	header_                                    http.Header
127341}
127342
127343// RecreateInstances: Flags the specified VM instances in the managed
127344// instance group to be immediately recreated. Each instance is
127345// recreated using the group's current configuration. This operation is
127346// marked as DONE when the flag is set even if the instances have not
127347// yet been recreated. You must separately verify the status of each
127348// instance by checking its currentAction field; for more information,
127349// see Checking the status of managed instances. If the group is part of
127350// a backend service that has enabled connection draining, it can take
127351// up to 60 seconds after the connection draining duration has elapsed
127352// before the VM instance is removed or deleted. You can specify a
127353// maximum of 1000 instances with this method per request.
127354//
127355// - instanceGroupManager: Name of the managed instance group.
127356// - project: Project ID for this request.
127357// - region: Name of the region scoping this request.
127358func (r *RegionInstanceGroupManagersService) RecreateInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest) *RegionInstanceGroupManagersRecreateInstancesCall {
127359	c := &RegionInstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127360	c.project = project
127361	c.region = region
127362	c.instanceGroupManager = instanceGroupManager
127363	c.regioninstancegroupmanagersrecreaterequest = regioninstancegroupmanagersrecreaterequest
127364	return c
127365}
127366
127367// RequestId sets the optional parameter "requestId": An optional
127368// request ID to identify requests. Specify a unique request ID so that
127369// if you must retry your request, the server will know to ignore the
127370// request if it has already been completed. For example, consider a
127371// situation where you make an initial request and the request times
127372// out. If you make the request again with the same request ID, the
127373// server can check if original operation with the same request ID was
127374// received, and if so, will ignore the second request. This prevents
127375// clients from accidentally creating duplicate commitments. The request
127376// ID must be a valid UUID with the exception that zero UUID is not
127377// supported ( 00000000-0000-0000-0000-000000000000).
127378func (c *RegionInstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersRecreateInstancesCall {
127379	c.urlParams_.Set("requestId", requestId)
127380	return c
127381}
127382
127383// Fields allows partial responses to be retrieved. See
127384// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127385// for more information.
127386func (c *RegionInstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersRecreateInstancesCall {
127387	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127388	return c
127389}
127390
127391// Context sets the context to be used in this call's Do method. Any
127392// pending HTTP request will be aborted if the provided context is
127393// canceled.
127394func (c *RegionInstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersRecreateInstancesCall {
127395	c.ctx_ = ctx
127396	return c
127397}
127398
127399// Header returns an http.Header that can be modified by the caller to
127400// add HTTP headers to the request.
127401func (c *RegionInstanceGroupManagersRecreateInstancesCall) Header() http.Header {
127402	if c.header_ == nil {
127403		c.header_ = make(http.Header)
127404	}
127405	return c.header_
127406}
127407
127408func (c *RegionInstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) {
127409	reqHeaders := make(http.Header)
127410	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
127411	for k, v := range c.header_ {
127412		reqHeaders[k] = v
127413	}
127414	reqHeaders.Set("User-Agent", c.s.userAgent())
127415	var body io.Reader = nil
127416	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersrecreaterequest)
127417	if err != nil {
127418		return nil, err
127419	}
127420	reqHeaders.Set("Content-Type", "application/json")
127421	c.urlParams_.Set("alt", alt)
127422	c.urlParams_.Set("prettyPrint", "false")
127423	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances")
127424	urls += "?" + c.urlParams_.Encode()
127425	req, err := http.NewRequest("POST", urls, body)
127426	if err != nil {
127427		return nil, err
127428	}
127429	req.Header = reqHeaders
127430	googleapi.Expand(req.URL, map[string]string{
127431		"project":              c.project,
127432		"region":               c.region,
127433		"instanceGroupManager": c.instanceGroupManager,
127434	})
127435	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127436}
127437
127438// Do executes the "compute.regionInstanceGroupManagers.recreateInstances" call.
127439// Exactly one of *Operation or error will be non-nil. Any non-2xx
127440// status code is an error. Response headers are in either
127441// *Operation.ServerResponse.Header or (if a response was returned at
127442// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127443// to check whether the returned error was because
127444// http.StatusNotModified was returned.
127445func (c *RegionInstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127446	gensupport.SetOptions(c.urlParams_, opts...)
127447	res, err := c.doRequest("json")
127448	if res != nil && res.StatusCode == http.StatusNotModified {
127449		if res.Body != nil {
127450			res.Body.Close()
127451		}
127452		return nil, &googleapi.Error{
127453			Code:   res.StatusCode,
127454			Header: res.Header,
127455		}
127456	}
127457	if err != nil {
127458		return nil, err
127459	}
127460	defer googleapi.CloseBody(res)
127461	if err := googleapi.CheckResponse(res); err != nil {
127462		return nil, err
127463	}
127464	ret := &Operation{
127465		ServerResponse: googleapi.ServerResponse{
127466			Header:         res.Header,
127467			HTTPStatusCode: res.StatusCode,
127468		},
127469	}
127470	target := &ret
127471	if err := gensupport.DecodeResponse(target, res); err != nil {
127472		return nil, err
127473	}
127474	return ret, nil
127475	// {
127476	//   "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.",
127477	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
127478	//   "httpMethod": "POST",
127479	//   "id": "compute.regionInstanceGroupManagers.recreateInstances",
127480	//   "parameterOrder": [
127481	//     "project",
127482	//     "region",
127483	//     "instanceGroupManager"
127484	//   ],
127485	//   "parameters": {
127486	//     "instanceGroupManager": {
127487	//       "description": "Name of the managed instance group.",
127488	//       "location": "path",
127489	//       "required": true,
127490	//       "type": "string"
127491	//     },
127492	//     "project": {
127493	//       "description": "Project ID for this request.",
127494	//       "location": "path",
127495	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127496	//       "required": true,
127497	//       "type": "string"
127498	//     },
127499	//     "region": {
127500	//       "description": "Name of the region scoping this request.",
127501	//       "location": "path",
127502	//       "required": true,
127503	//       "type": "string"
127504	//     },
127505	//     "requestId": {
127506	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
127507	//       "location": "query",
127508	//       "type": "string"
127509	//     }
127510	//   },
127511	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
127512	//   "request": {
127513	//     "$ref": "RegionInstanceGroupManagersRecreateRequest"
127514	//   },
127515	//   "response": {
127516	//     "$ref": "Operation"
127517	//   },
127518	//   "scopes": [
127519	//     "https://www.googleapis.com/auth/cloud-platform",
127520	//     "https://www.googleapis.com/auth/compute"
127521	//   ]
127522	// }
127523
127524}
127525
127526// method id "compute.regionInstanceGroupManagers.resize":
127527
127528type RegionInstanceGroupManagersResizeCall struct {
127529	s                    *Service
127530	project              string
127531	region               string
127532	instanceGroupManager string
127533	urlParams_           gensupport.URLParams
127534	ctx_                 context.Context
127535	header_              http.Header
127536}
127537
127538// Resize: Changes the intended size of the managed instance group. If
127539// you increase the size, the group creates new instances using the
127540// current instance template. If you decrease the size, the group
127541// deletes one or more instances. The resize operation is marked DONE if
127542// the resize request is successful. The underlying actions take
127543// additional time. You must separately verify the status of the
127544// creating or deleting actions with the listmanagedinstances method. If
127545// the group is part of a backend service that has enabled connection
127546// draining, it can take up to 60 seconds after the connection draining
127547// duration has elapsed before the VM instance is removed or deleted.
127548//
127549// - instanceGroupManager: Name of the managed instance group.
127550// - project: Project ID for this request.
127551// - region: Name of the region scoping this request.
127552// - size: Number of instances that should exist in this instance group
127553//   manager.
127554func (r *RegionInstanceGroupManagersService) Resize(project string, region string, instanceGroupManager string, size int64) *RegionInstanceGroupManagersResizeCall {
127555	c := &RegionInstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127556	c.project = project
127557	c.region = region
127558	c.instanceGroupManager = instanceGroupManager
127559	c.urlParams_.Set("size", fmt.Sprint(size))
127560	return c
127561}
127562
127563// RequestId sets the optional parameter "requestId": An optional
127564// request ID to identify requests. Specify a unique request ID so that
127565// if you must retry your request, the server will know to ignore the
127566// request if it has already been completed. For example, consider a
127567// situation where you make an initial request and the request times
127568// out. If you make the request again with the same request ID, the
127569// server can check if original operation with the same request ID was
127570// received, and if so, will ignore the second request. This prevents
127571// clients from accidentally creating duplicate commitments. The request
127572// ID must be a valid UUID with the exception that zero UUID is not
127573// supported ( 00000000-0000-0000-0000-000000000000).
127574func (c *RegionInstanceGroupManagersResizeCall) RequestId(requestId string) *RegionInstanceGroupManagersResizeCall {
127575	c.urlParams_.Set("requestId", requestId)
127576	return c
127577}
127578
127579// Fields allows partial responses to be retrieved. See
127580// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127581// for more information.
127582func (c *RegionInstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersResizeCall {
127583	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127584	return c
127585}
127586
127587// Context sets the context to be used in this call's Do method. Any
127588// pending HTTP request will be aborted if the provided context is
127589// canceled.
127590func (c *RegionInstanceGroupManagersResizeCall) Context(ctx context.Context) *RegionInstanceGroupManagersResizeCall {
127591	c.ctx_ = ctx
127592	return c
127593}
127594
127595// Header returns an http.Header that can be modified by the caller to
127596// add HTTP headers to the request.
127597func (c *RegionInstanceGroupManagersResizeCall) Header() http.Header {
127598	if c.header_ == nil {
127599		c.header_ = make(http.Header)
127600	}
127601	return c.header_
127602}
127603
127604func (c *RegionInstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) {
127605	reqHeaders := make(http.Header)
127606	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
127607	for k, v := range c.header_ {
127608		reqHeaders[k] = v
127609	}
127610	reqHeaders.Set("User-Agent", c.s.userAgent())
127611	var body io.Reader = nil
127612	c.urlParams_.Set("alt", alt)
127613	c.urlParams_.Set("prettyPrint", "false")
127614	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize")
127615	urls += "?" + c.urlParams_.Encode()
127616	req, err := http.NewRequest("POST", urls, body)
127617	if err != nil {
127618		return nil, err
127619	}
127620	req.Header = reqHeaders
127621	googleapi.Expand(req.URL, map[string]string{
127622		"project":              c.project,
127623		"region":               c.region,
127624		"instanceGroupManager": c.instanceGroupManager,
127625	})
127626	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127627}
127628
127629// Do executes the "compute.regionInstanceGroupManagers.resize" call.
127630// Exactly one of *Operation or error will be non-nil. Any non-2xx
127631// status code is an error. Response headers are in either
127632// *Operation.ServerResponse.Header or (if a response was returned at
127633// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127634// to check whether the returned error was because
127635// http.StatusNotModified was returned.
127636func (c *RegionInstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127637	gensupport.SetOptions(c.urlParams_, opts...)
127638	res, err := c.doRequest("json")
127639	if res != nil && res.StatusCode == http.StatusNotModified {
127640		if res.Body != nil {
127641			res.Body.Close()
127642		}
127643		return nil, &googleapi.Error{
127644			Code:   res.StatusCode,
127645			Header: res.Header,
127646		}
127647	}
127648	if err != nil {
127649		return nil, err
127650	}
127651	defer googleapi.CloseBody(res)
127652	if err := googleapi.CheckResponse(res); err != nil {
127653		return nil, err
127654	}
127655	ret := &Operation{
127656		ServerResponse: googleapi.ServerResponse{
127657			Header:         res.Header,
127658			HTTPStatusCode: res.StatusCode,
127659		},
127660	}
127661	target := &ret
127662	if err := gensupport.DecodeResponse(target, res); err != nil {
127663		return nil, err
127664	}
127665	return ret, nil
127666	// {
127667	//   "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.",
127668	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize",
127669	//   "httpMethod": "POST",
127670	//   "id": "compute.regionInstanceGroupManagers.resize",
127671	//   "parameterOrder": [
127672	//     "project",
127673	//     "region",
127674	//     "instanceGroupManager",
127675	//     "size"
127676	//   ],
127677	//   "parameters": {
127678	//     "instanceGroupManager": {
127679	//       "description": "Name of the managed instance group.",
127680	//       "location": "path",
127681	//       "required": true,
127682	//       "type": "string"
127683	//     },
127684	//     "project": {
127685	//       "description": "Project ID for this request.",
127686	//       "location": "path",
127687	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127688	//       "required": true,
127689	//       "type": "string"
127690	//     },
127691	//     "region": {
127692	//       "description": "Name of the region scoping this request.",
127693	//       "location": "path",
127694	//       "required": true,
127695	//       "type": "string"
127696	//     },
127697	//     "requestId": {
127698	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
127699	//       "location": "query",
127700	//       "type": "string"
127701	//     },
127702	//     "size": {
127703	//       "description": "Number of instances that should exist in this instance group manager.",
127704	//       "format": "int32",
127705	//       "location": "query",
127706	//       "minimum": "0",
127707	//       "required": true,
127708	//       "type": "integer"
127709	//     }
127710	//   },
127711	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize",
127712	//   "response": {
127713	//     "$ref": "Operation"
127714	//   },
127715	//   "scopes": [
127716	//     "https://www.googleapis.com/auth/cloud-platform",
127717	//     "https://www.googleapis.com/auth/compute"
127718	//   ]
127719	// }
127720
127721}
127722
127723// method id "compute.regionInstanceGroupManagers.setInstanceTemplate":
127724
127725type RegionInstanceGroupManagersSetInstanceTemplateCall struct {
127726	s                                             *Service
127727	project                                       string
127728	region                                        string
127729	instanceGroupManager                          string
127730	regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest
127731	urlParams_                                    gensupport.URLParams
127732	ctx_                                          context.Context
127733	header_                                       http.Header
127734}
127735
127736// SetInstanceTemplate: Sets the instance template to use when creating
127737// new instances or recreating instances in this group. Existing
127738// instances are not affected.
127739//
127740// - instanceGroupManager: The name of the managed instance group.
127741// - project: Project ID for this request.
127742// - region: Name of the region scoping this request.
127743func (r *RegionInstanceGroupManagersService) SetInstanceTemplate(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest) *RegionInstanceGroupManagersSetInstanceTemplateCall {
127744	c := &RegionInstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127745	c.project = project
127746	c.region = region
127747	c.instanceGroupManager = instanceGroupManager
127748	c.regioninstancegroupmanagerssettemplaterequest = regioninstancegroupmanagerssettemplaterequest
127749	return c
127750}
127751
127752// RequestId sets the optional parameter "requestId": An optional
127753// request ID to identify requests. Specify a unique request ID so that
127754// if you must retry your request, the server will know to ignore the
127755// request if it has already been completed. For example, consider a
127756// situation where you make an initial request and the request times
127757// out. If you make the request again with the same request ID, the
127758// server can check if original operation with the same request ID was
127759// received, and if so, will ignore the second request. This prevents
127760// clients from accidentally creating duplicate commitments. The request
127761// ID must be a valid UUID with the exception that zero UUID is not
127762// supported ( 00000000-0000-0000-0000-000000000000).
127763func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *RegionInstanceGroupManagersSetInstanceTemplateCall {
127764	c.urlParams_.Set("requestId", requestId)
127765	return c
127766}
127767
127768// Fields allows partial responses to be retrieved. See
127769// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127770// for more information.
127771func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetInstanceTemplateCall {
127772	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127773	return c
127774}
127775
127776// Context sets the context to be used in this call's Do method. Any
127777// pending HTTP request will be aborted if the provided context is
127778// canceled.
127779func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetInstanceTemplateCall {
127780	c.ctx_ = ctx
127781	return c
127782}
127783
127784// Header returns an http.Header that can be modified by the caller to
127785// add HTTP headers to the request.
127786func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Header() http.Header {
127787	if c.header_ == nil {
127788		c.header_ = make(http.Header)
127789	}
127790	return c.header_
127791}
127792
127793func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) {
127794	reqHeaders := make(http.Header)
127795	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
127796	for k, v := range c.header_ {
127797		reqHeaders[k] = v
127798	}
127799	reqHeaders.Set("User-Agent", c.s.userAgent())
127800	var body io.Reader = nil
127801	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettemplaterequest)
127802	if err != nil {
127803		return nil, err
127804	}
127805	reqHeaders.Set("Content-Type", "application/json")
127806	c.urlParams_.Set("alt", alt)
127807	c.urlParams_.Set("prettyPrint", "false")
127808	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate")
127809	urls += "?" + c.urlParams_.Encode()
127810	req, err := http.NewRequest("POST", urls, body)
127811	if err != nil {
127812		return nil, err
127813	}
127814	req.Header = reqHeaders
127815	googleapi.Expand(req.URL, map[string]string{
127816		"project":              c.project,
127817		"region":               c.region,
127818		"instanceGroupManager": c.instanceGroupManager,
127819	})
127820	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127821}
127822
127823// Do executes the "compute.regionInstanceGroupManagers.setInstanceTemplate" call.
127824// Exactly one of *Operation or error will be non-nil. Any non-2xx
127825// status code is an error. Response headers are in either
127826// *Operation.ServerResponse.Header or (if a response was returned at
127827// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127828// to check whether the returned error was because
127829// http.StatusNotModified was returned.
127830func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127831	gensupport.SetOptions(c.urlParams_, opts...)
127832	res, err := c.doRequest("json")
127833	if res != nil && res.StatusCode == http.StatusNotModified {
127834		if res.Body != nil {
127835			res.Body.Close()
127836		}
127837		return nil, &googleapi.Error{
127838			Code:   res.StatusCode,
127839			Header: res.Header,
127840		}
127841	}
127842	if err != nil {
127843		return nil, err
127844	}
127845	defer googleapi.CloseBody(res)
127846	if err := googleapi.CheckResponse(res); err != nil {
127847		return nil, err
127848	}
127849	ret := &Operation{
127850		ServerResponse: googleapi.ServerResponse{
127851			Header:         res.Header,
127852			HTTPStatusCode: res.StatusCode,
127853		},
127854	}
127855	target := &ret
127856	if err := gensupport.DecodeResponse(target, res); err != nil {
127857		return nil, err
127858	}
127859	return ret, nil
127860	// {
127861	//   "description": "Sets the instance template to use when creating new instances or recreating instances in this group. Existing instances are not affected.",
127862	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
127863	//   "httpMethod": "POST",
127864	//   "id": "compute.regionInstanceGroupManagers.setInstanceTemplate",
127865	//   "parameterOrder": [
127866	//     "project",
127867	//     "region",
127868	//     "instanceGroupManager"
127869	//   ],
127870	//   "parameters": {
127871	//     "instanceGroupManager": {
127872	//       "description": "The name of the managed instance group.",
127873	//       "location": "path",
127874	//       "required": true,
127875	//       "type": "string"
127876	//     },
127877	//     "project": {
127878	//       "description": "Project ID for this request.",
127879	//       "location": "path",
127880	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127881	//       "required": true,
127882	//       "type": "string"
127883	//     },
127884	//     "region": {
127885	//       "description": "Name of the region scoping this request.",
127886	//       "location": "path",
127887	//       "required": true,
127888	//       "type": "string"
127889	//     },
127890	//     "requestId": {
127891	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
127892	//       "location": "query",
127893	//       "type": "string"
127894	//     }
127895	//   },
127896	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
127897	//   "request": {
127898	//     "$ref": "RegionInstanceGroupManagersSetTemplateRequest"
127899	//   },
127900	//   "response": {
127901	//     "$ref": "Operation"
127902	//   },
127903	//   "scopes": [
127904	//     "https://www.googleapis.com/auth/cloud-platform",
127905	//     "https://www.googleapis.com/auth/compute"
127906	//   ]
127907	// }
127908
127909}
127910
127911// method id "compute.regionInstanceGroupManagers.setTargetPools":
127912
127913type RegionInstanceGroupManagersSetTargetPoolsCall struct {
127914	s                                                *Service
127915	project                                          string
127916	region                                           string
127917	instanceGroupManager                             string
127918	regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest
127919	urlParams_                                       gensupport.URLParams
127920	ctx_                                             context.Context
127921	header_                                          http.Header
127922}
127923
127924// SetTargetPools: Modifies the target pools to which all new instances
127925// in this group are assigned. Existing instances in the group are not
127926// affected.
127927//
127928// - instanceGroupManager: Name of the managed instance group.
127929// - project: Project ID for this request.
127930// - region: Name of the region scoping this request.
127931func (r *RegionInstanceGroupManagersService) SetTargetPools(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest) *RegionInstanceGroupManagersSetTargetPoolsCall {
127932	c := &RegionInstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127933	c.project = project
127934	c.region = region
127935	c.instanceGroupManager = instanceGroupManager
127936	c.regioninstancegroupmanagerssettargetpoolsrequest = regioninstancegroupmanagerssettargetpoolsrequest
127937	return c
127938}
127939
127940// RequestId sets the optional parameter "requestId": An optional
127941// request ID to identify requests. Specify a unique request ID so that
127942// if you must retry your request, the server will know to ignore the
127943// request if it has already been completed. For example, consider a
127944// situation where you make an initial request and the request times
127945// out. If you make the request again with the same request ID, the
127946// server can check if original operation with the same request ID was
127947// received, and if so, will ignore the second request. This prevents
127948// clients from accidentally creating duplicate commitments. The request
127949// ID must be a valid UUID with the exception that zero UUID is not
127950// supported ( 00000000-0000-0000-0000-000000000000).
127951func (c *RegionInstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *RegionInstanceGroupManagersSetTargetPoolsCall {
127952	c.urlParams_.Set("requestId", requestId)
127953	return c
127954}
127955
127956// Fields allows partial responses to be retrieved. See
127957// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127958// for more information.
127959func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetTargetPoolsCall {
127960	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127961	return c
127962}
127963
127964// Context sets the context to be used in this call's Do method. Any
127965// pending HTTP request will be aborted if the provided context is
127966// canceled.
127967func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetTargetPoolsCall {
127968	c.ctx_ = ctx
127969	return c
127970}
127971
127972// Header returns an http.Header that can be modified by the caller to
127973// add HTTP headers to the request.
127974func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Header() http.Header {
127975	if c.header_ == nil {
127976		c.header_ = make(http.Header)
127977	}
127978	return c.header_
127979}
127980
127981func (c *RegionInstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) {
127982	reqHeaders := make(http.Header)
127983	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
127984	for k, v := range c.header_ {
127985		reqHeaders[k] = v
127986	}
127987	reqHeaders.Set("User-Agent", c.s.userAgent())
127988	var body io.Reader = nil
127989	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettargetpoolsrequest)
127990	if err != nil {
127991		return nil, err
127992	}
127993	reqHeaders.Set("Content-Type", "application/json")
127994	c.urlParams_.Set("alt", alt)
127995	c.urlParams_.Set("prettyPrint", "false")
127996	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools")
127997	urls += "?" + c.urlParams_.Encode()
127998	req, err := http.NewRequest("POST", urls, body)
127999	if err != nil {
128000		return nil, err
128001	}
128002	req.Header = reqHeaders
128003	googleapi.Expand(req.URL, map[string]string{
128004		"project":              c.project,
128005		"region":               c.region,
128006		"instanceGroupManager": c.instanceGroupManager,
128007	})
128008	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128009}
128010
128011// Do executes the "compute.regionInstanceGroupManagers.setTargetPools" call.
128012// Exactly one of *Operation or error will be non-nil. Any non-2xx
128013// status code is an error. Response headers are in either
128014// *Operation.ServerResponse.Header or (if a response was returned at
128015// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128016// to check whether the returned error was because
128017// http.StatusNotModified was returned.
128018func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
128019	gensupport.SetOptions(c.urlParams_, opts...)
128020	res, err := c.doRequest("json")
128021	if res != nil && res.StatusCode == http.StatusNotModified {
128022		if res.Body != nil {
128023			res.Body.Close()
128024		}
128025		return nil, &googleapi.Error{
128026			Code:   res.StatusCode,
128027			Header: res.Header,
128028		}
128029	}
128030	if err != nil {
128031		return nil, err
128032	}
128033	defer googleapi.CloseBody(res)
128034	if err := googleapi.CheckResponse(res); err != nil {
128035		return nil, err
128036	}
128037	ret := &Operation{
128038		ServerResponse: googleapi.ServerResponse{
128039			Header:         res.Header,
128040			HTTPStatusCode: res.StatusCode,
128041		},
128042	}
128043	target := &ret
128044	if err := gensupport.DecodeResponse(target, res); err != nil {
128045		return nil, err
128046	}
128047	return ret, nil
128048	// {
128049	//   "description": "Modifies the target pools to which all new instances in this group are assigned. Existing instances in the group are not affected.",
128050	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
128051	//   "httpMethod": "POST",
128052	//   "id": "compute.regionInstanceGroupManagers.setTargetPools",
128053	//   "parameterOrder": [
128054	//     "project",
128055	//     "region",
128056	//     "instanceGroupManager"
128057	//   ],
128058	//   "parameters": {
128059	//     "instanceGroupManager": {
128060	//       "description": "Name of the managed instance group.",
128061	//       "location": "path",
128062	//       "required": true,
128063	//       "type": "string"
128064	//     },
128065	//     "project": {
128066	//       "description": "Project ID for this request.",
128067	//       "location": "path",
128068	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128069	//       "required": true,
128070	//       "type": "string"
128071	//     },
128072	//     "region": {
128073	//       "description": "Name of the region scoping this request.",
128074	//       "location": "path",
128075	//       "required": true,
128076	//       "type": "string"
128077	//     },
128078	//     "requestId": {
128079	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
128080	//       "location": "query",
128081	//       "type": "string"
128082	//     }
128083	//   },
128084	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
128085	//   "request": {
128086	//     "$ref": "RegionInstanceGroupManagersSetTargetPoolsRequest"
128087	//   },
128088	//   "response": {
128089	//     "$ref": "Operation"
128090	//   },
128091	//   "scopes": [
128092	//     "https://www.googleapis.com/auth/cloud-platform",
128093	//     "https://www.googleapis.com/auth/compute"
128094	//   ]
128095	// }
128096
128097}
128098
128099// method id "compute.regionInstanceGroupManagers.updatePerInstanceConfigs":
128100
128101type RegionInstanceGroupManagersUpdatePerInstanceConfigsCall struct {
128102	s                                                 *Service
128103	project                                           string
128104	region                                            string
128105	instanceGroupManager                              string
128106	regioninstancegroupmanagerupdateinstanceconfigreq *RegionInstanceGroupManagerUpdateInstanceConfigReq
128107	urlParams_                                        gensupport.URLParams
128108	ctx_                                              context.Context
128109	header_                                           http.Header
128110}
128111
128112// UpdatePerInstanceConfigs: Inserts or updates per-instance configs for
128113// the managed instance group. perInstanceConfig.name serves as a key
128114// used to distinguish whether to perform insert or patch.
128115//
128116// - instanceGroupManager: The name of the managed instance group. It
128117//   should conform to RFC1035.
128118// - project: Project ID for this request.
128119// - region: Name of the region scoping this request, should conform to
128120//   RFC1035.
128121func (r *RegionInstanceGroupManagersService) UpdatePerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerupdateinstanceconfigreq *RegionInstanceGroupManagerUpdateInstanceConfigReq) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
128122	c := &RegionInstanceGroupManagersUpdatePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128123	c.project = project
128124	c.region = region
128125	c.instanceGroupManager = instanceGroupManager
128126	c.regioninstancegroupmanagerupdateinstanceconfigreq = regioninstancegroupmanagerupdateinstanceconfigreq
128127	return c
128128}
128129
128130// RequestId sets the optional parameter "requestId": An optional
128131// request ID to identify requests. Specify a unique request ID so that
128132// if you must retry your request, the server will know to ignore the
128133// request if it has already been completed. For example, consider a
128134// situation where you make an initial request and the request times
128135// out. If you make the request again with the same request ID, the
128136// server can check if original operation with the same request ID was
128137// received, and if so, will ignore the second request. This prevents
128138// clients from accidentally creating duplicate commitments. The request
128139// ID must be a valid UUID with the exception that zero UUID is not
128140// supported ( 00000000-0000-0000-0000-000000000000).
128141func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) RequestId(requestId string) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
128142	c.urlParams_.Set("requestId", requestId)
128143	return c
128144}
128145
128146// Fields allows partial responses to be retrieved. See
128147// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128148// for more information.
128149func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
128150	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128151	return c
128152}
128153
128154// Context sets the context to be used in this call's Do method. Any
128155// pending HTTP request will be aborted if the provided context is
128156// canceled.
128157func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
128158	c.ctx_ = ctx
128159	return c
128160}
128161
128162// Header returns an http.Header that can be modified by the caller to
128163// add HTTP headers to the request.
128164func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Header() http.Header {
128165	if c.header_ == nil {
128166		c.header_ = make(http.Header)
128167	}
128168	return c.header_
128169}
128170
128171func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
128172	reqHeaders := make(http.Header)
128173	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
128174	for k, v := range c.header_ {
128175		reqHeaders[k] = v
128176	}
128177	reqHeaders.Set("User-Agent", c.s.userAgent())
128178	var body io.Reader = nil
128179	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerupdateinstanceconfigreq)
128180	if err != nil {
128181		return nil, err
128182	}
128183	reqHeaders.Set("Content-Type", "application/json")
128184	c.urlParams_.Set("alt", alt)
128185	c.urlParams_.Set("prettyPrint", "false")
128186	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs")
128187	urls += "?" + c.urlParams_.Encode()
128188	req, err := http.NewRequest("POST", urls, body)
128189	if err != nil {
128190		return nil, err
128191	}
128192	req.Header = reqHeaders
128193	googleapi.Expand(req.URL, map[string]string{
128194		"project":              c.project,
128195		"region":               c.region,
128196		"instanceGroupManager": c.instanceGroupManager,
128197	})
128198	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128199}
128200
128201// Do executes the "compute.regionInstanceGroupManagers.updatePerInstanceConfigs" call.
128202// Exactly one of *Operation or error will be non-nil. Any non-2xx
128203// status code is an error. Response headers are in either
128204// *Operation.ServerResponse.Header or (if a response was returned at
128205// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128206// to check whether the returned error was because
128207// http.StatusNotModified was returned.
128208func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
128209	gensupport.SetOptions(c.urlParams_, opts...)
128210	res, err := c.doRequest("json")
128211	if res != nil && res.StatusCode == http.StatusNotModified {
128212		if res.Body != nil {
128213			res.Body.Close()
128214		}
128215		return nil, &googleapi.Error{
128216			Code:   res.StatusCode,
128217			Header: res.Header,
128218		}
128219	}
128220	if err != nil {
128221		return nil, err
128222	}
128223	defer googleapi.CloseBody(res)
128224	if err := googleapi.CheckResponse(res); err != nil {
128225		return nil, err
128226	}
128227	ret := &Operation{
128228		ServerResponse: googleapi.ServerResponse{
128229			Header:         res.Header,
128230			HTTPStatusCode: res.StatusCode,
128231		},
128232	}
128233	target := &ret
128234	if err := gensupport.DecodeResponse(target, res); err != nil {
128235		return nil, err
128236	}
128237	return ret, nil
128238	// {
128239	//   "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.",
128240	//   "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs",
128241	//   "httpMethod": "POST",
128242	//   "id": "compute.regionInstanceGroupManagers.updatePerInstanceConfigs",
128243	//   "parameterOrder": [
128244	//     "project",
128245	//     "region",
128246	//     "instanceGroupManager"
128247	//   ],
128248	//   "parameters": {
128249	//     "instanceGroupManager": {
128250	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
128251	//       "location": "path",
128252	//       "required": true,
128253	//       "type": "string"
128254	//     },
128255	//     "project": {
128256	//       "description": "Project ID for this request.",
128257	//       "location": "path",
128258	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128259	//       "required": true,
128260	//       "type": "string"
128261	//     },
128262	//     "region": {
128263	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
128264	//       "location": "path",
128265	//       "required": true,
128266	//       "type": "string"
128267	//     },
128268	//     "requestId": {
128269	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
128270	//       "location": "query",
128271	//       "type": "string"
128272	//     }
128273	//   },
128274	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs",
128275	//   "request": {
128276	//     "$ref": "RegionInstanceGroupManagerUpdateInstanceConfigReq"
128277	//   },
128278	//   "response": {
128279	//     "$ref": "Operation"
128280	//   },
128281	//   "scopes": [
128282	//     "https://www.googleapis.com/auth/cloud-platform",
128283	//     "https://www.googleapis.com/auth/compute"
128284	//   ]
128285	// }
128286
128287}
128288
128289// method id "compute.regionInstanceGroups.get":
128290
128291type RegionInstanceGroupsGetCall struct {
128292	s             *Service
128293	project       string
128294	region        string
128295	instanceGroup string
128296	urlParams_    gensupport.URLParams
128297	ifNoneMatch_  string
128298	ctx_          context.Context
128299	header_       http.Header
128300}
128301
128302// Get: Returns the specified instance group resource.
128303//
128304// - instanceGroup: Name of the instance group resource to return.
128305// - project: Project ID for this request.
128306// - region: Name of the region scoping this request.
128307func (r *RegionInstanceGroupsService) Get(project string, region string, instanceGroup string) *RegionInstanceGroupsGetCall {
128308	c := &RegionInstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128309	c.project = project
128310	c.region = region
128311	c.instanceGroup = instanceGroup
128312	return c
128313}
128314
128315// Fields allows partial responses to be retrieved. See
128316// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128317// for more information.
128318func (c *RegionInstanceGroupsGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsGetCall {
128319	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128320	return c
128321}
128322
128323// IfNoneMatch sets the optional parameter which makes the operation
128324// fail if the object's ETag matches the given value. This is useful for
128325// getting updates only after the object has changed since the last
128326// request. Use googleapi.IsNotModified to check whether the response
128327// error from Do is the result of In-None-Match.
128328func (c *RegionInstanceGroupsGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsGetCall {
128329	c.ifNoneMatch_ = entityTag
128330	return c
128331}
128332
128333// Context sets the context to be used in this call's Do method. Any
128334// pending HTTP request will be aborted if the provided context is
128335// canceled.
128336func (c *RegionInstanceGroupsGetCall) Context(ctx context.Context) *RegionInstanceGroupsGetCall {
128337	c.ctx_ = ctx
128338	return c
128339}
128340
128341// Header returns an http.Header that can be modified by the caller to
128342// add HTTP headers to the request.
128343func (c *RegionInstanceGroupsGetCall) Header() http.Header {
128344	if c.header_ == nil {
128345		c.header_ = make(http.Header)
128346	}
128347	return c.header_
128348}
128349
128350func (c *RegionInstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
128351	reqHeaders := make(http.Header)
128352	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
128353	for k, v := range c.header_ {
128354		reqHeaders[k] = v
128355	}
128356	reqHeaders.Set("User-Agent", c.s.userAgent())
128357	if c.ifNoneMatch_ != "" {
128358		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
128359	}
128360	var body io.Reader = nil
128361	c.urlParams_.Set("alt", alt)
128362	c.urlParams_.Set("prettyPrint", "false")
128363	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}")
128364	urls += "?" + c.urlParams_.Encode()
128365	req, err := http.NewRequest("GET", urls, body)
128366	if err != nil {
128367		return nil, err
128368	}
128369	req.Header = reqHeaders
128370	googleapi.Expand(req.URL, map[string]string{
128371		"project":       c.project,
128372		"region":        c.region,
128373		"instanceGroup": c.instanceGroup,
128374	})
128375	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128376}
128377
128378// Do executes the "compute.regionInstanceGroups.get" call.
128379// Exactly one of *InstanceGroup or error will be non-nil. Any non-2xx
128380// status code is an error. Response headers are in either
128381// *InstanceGroup.ServerResponse.Header or (if a response was returned
128382// at all) in error.(*googleapi.Error).Header. Use
128383// googleapi.IsNotModified to check whether the returned error was
128384// because http.StatusNotModified was returned.
128385func (c *RegionInstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) {
128386	gensupport.SetOptions(c.urlParams_, opts...)
128387	res, err := c.doRequest("json")
128388	if res != nil && res.StatusCode == http.StatusNotModified {
128389		if res.Body != nil {
128390			res.Body.Close()
128391		}
128392		return nil, &googleapi.Error{
128393			Code:   res.StatusCode,
128394			Header: res.Header,
128395		}
128396	}
128397	if err != nil {
128398		return nil, err
128399	}
128400	defer googleapi.CloseBody(res)
128401	if err := googleapi.CheckResponse(res); err != nil {
128402		return nil, err
128403	}
128404	ret := &InstanceGroup{
128405		ServerResponse: googleapi.ServerResponse{
128406			Header:         res.Header,
128407			HTTPStatusCode: res.StatusCode,
128408		},
128409	}
128410	target := &ret
128411	if err := gensupport.DecodeResponse(target, res); err != nil {
128412		return nil, err
128413	}
128414	return ret, nil
128415	// {
128416	//   "description": "Returns the specified instance group resource.",
128417	//   "flatPath": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}",
128418	//   "httpMethod": "GET",
128419	//   "id": "compute.regionInstanceGroups.get",
128420	//   "parameterOrder": [
128421	//     "project",
128422	//     "region",
128423	//     "instanceGroup"
128424	//   ],
128425	//   "parameters": {
128426	//     "instanceGroup": {
128427	//       "description": "Name of the instance group resource to return.",
128428	//       "location": "path",
128429	//       "required": true,
128430	//       "type": "string"
128431	//     },
128432	//     "project": {
128433	//       "description": "Project ID for this request.",
128434	//       "location": "path",
128435	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128436	//       "required": true,
128437	//       "type": "string"
128438	//     },
128439	//     "region": {
128440	//       "description": "Name of the region scoping this request.",
128441	//       "location": "path",
128442	//       "required": true,
128443	//       "type": "string"
128444	//     }
128445	//   },
128446	//   "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}",
128447	//   "response": {
128448	//     "$ref": "InstanceGroup"
128449	//   },
128450	//   "scopes": [
128451	//     "https://www.googleapis.com/auth/cloud-platform",
128452	//     "https://www.googleapis.com/auth/compute",
128453	//     "https://www.googleapis.com/auth/compute.readonly"
128454	//   ]
128455	// }
128456
128457}
128458
128459// method id "compute.regionInstanceGroups.list":
128460
128461type RegionInstanceGroupsListCall struct {
128462	s            *Service
128463	project      string
128464	region       string
128465	urlParams_   gensupport.URLParams
128466	ifNoneMatch_ string
128467	ctx_         context.Context
128468	header_      http.Header
128469}
128470
128471// List: Retrieves the list of instance group resources contained within
128472// the specified region.
128473//
128474// - project: Project ID for this request.
128475// - region: Name of the region scoping this request.
128476func (r *RegionInstanceGroupsService) List(project string, region string) *RegionInstanceGroupsListCall {
128477	c := &RegionInstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128478	c.project = project
128479	c.region = region
128480	return c
128481}
128482
128483// Filter sets the optional parameter "filter": A filter expression that
128484// filters resources listed in the response. The expression must specify
128485// the field name, a comparison operator, and the value that you want to
128486// use for filtering. The value must be a string, a number, or a
128487// boolean. The comparison operator must be either `=`, `!=`, `>`, or
128488// `<`. For example, if you are filtering Compute Engine instances, you
128489// can exclude instances named `example-instance` by specifying `name !=
128490// example-instance`. You can also filter nested fields. For example,
128491// you could specify `scheduling.automaticRestart = false` to include
128492// instances only if they are not scheduled for automatic restarts. You
128493// can use filtering on nested fields to filter based on resource
128494// labels. To filter on multiple expressions, provide each separate
128495// expression within parentheses. For example: ```
128496// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
128497// ``` By default, each expression is an `AND` expression. However, you
128498// can include `AND` and `OR` expressions explicitly. For example: ```
128499// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
128500// AND (scheduling.automaticRestart = true) ```
128501func (c *RegionInstanceGroupsListCall) Filter(filter string) *RegionInstanceGroupsListCall {
128502	c.urlParams_.Set("filter", filter)
128503	return c
128504}
128505
128506// MaxResults sets the optional parameter "maxResults": The maximum
128507// number of results per page that should be returned. If the number of
128508// available results is larger than `maxResults`, Compute Engine returns
128509// a `nextPageToken` that can be used to get the next page of results in
128510// subsequent list requests. Acceptable values are `0` to `500`,
128511// inclusive. (Default: `500`)
128512func (c *RegionInstanceGroupsListCall) MaxResults(maxResults int64) *RegionInstanceGroupsListCall {
128513	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
128514	return c
128515}
128516
128517// OrderBy sets the optional parameter "orderBy": Sorts list results by
128518// a certain order. By default, results are returned in alphanumerical
128519// order based on the resource name. You can also sort results in
128520// descending order based on the creation timestamp using
128521// `orderBy="creationTimestamp desc". This sorts results based on the
128522// `creationTimestamp` field in reverse chronological order (newest
128523// result first). Use this to sort resources like operations so that the
128524// newest operation is returned first. Currently, only sorting by `name`
128525// or `creationTimestamp desc` is supported.
128526func (c *RegionInstanceGroupsListCall) OrderBy(orderBy string) *RegionInstanceGroupsListCall {
128527	c.urlParams_.Set("orderBy", orderBy)
128528	return c
128529}
128530
128531// PageToken sets the optional parameter "pageToken": Specifies a page
128532// token to use. Set `pageToken` to the `nextPageToken` returned by a
128533// previous list request to get the next page of results.
128534func (c *RegionInstanceGroupsListCall) PageToken(pageToken string) *RegionInstanceGroupsListCall {
128535	c.urlParams_.Set("pageToken", pageToken)
128536	return c
128537}
128538
128539// ReturnPartialSuccess sets the optional parameter
128540// "returnPartialSuccess": Opt-in for partial success behavior which
128541// provides partial results in case of failure. The default value is
128542// false.
128543func (c *RegionInstanceGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupsListCall {
128544	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
128545	return c
128546}
128547
128548// Fields allows partial responses to be retrieved. See
128549// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128550// for more information.
128551func (c *RegionInstanceGroupsListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListCall {
128552	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128553	return c
128554}
128555
128556// IfNoneMatch sets the optional parameter which makes the operation
128557// fail if the object's ETag matches the given value. This is useful for
128558// getting updates only after the object has changed since the last
128559// request. Use googleapi.IsNotModified to check whether the response
128560// error from Do is the result of In-None-Match.
128561func (c *RegionInstanceGroupsListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsListCall {
128562	c.ifNoneMatch_ = entityTag
128563	return c
128564}
128565
128566// Context sets the context to be used in this call's Do method. Any
128567// pending HTTP request will be aborted if the provided context is
128568// canceled.
128569func (c *RegionInstanceGroupsListCall) Context(ctx context.Context) *RegionInstanceGroupsListCall {
128570	c.ctx_ = ctx
128571	return c
128572}
128573
128574// Header returns an http.Header that can be modified by the caller to
128575// add HTTP headers to the request.
128576func (c *RegionInstanceGroupsListCall) Header() http.Header {
128577	if c.header_ == nil {
128578		c.header_ = make(http.Header)
128579	}
128580	return c.header_
128581}
128582
128583func (c *RegionInstanceGroupsListCall) doRequest(alt string) (*http.Response, error) {
128584	reqHeaders := make(http.Header)
128585	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
128586	for k, v := range c.header_ {
128587		reqHeaders[k] = v
128588	}
128589	reqHeaders.Set("User-Agent", c.s.userAgent())
128590	if c.ifNoneMatch_ != "" {
128591		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
128592	}
128593	var body io.Reader = nil
128594	c.urlParams_.Set("alt", alt)
128595	c.urlParams_.Set("prettyPrint", "false")
128596	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups")
128597	urls += "?" + c.urlParams_.Encode()
128598	req, err := http.NewRequest("GET", urls, body)
128599	if err != nil {
128600		return nil, err
128601	}
128602	req.Header = reqHeaders
128603	googleapi.Expand(req.URL, map[string]string{
128604		"project": c.project,
128605		"region":  c.region,
128606	})
128607	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128608}
128609
128610// Do executes the "compute.regionInstanceGroups.list" call.
128611// Exactly one of *RegionInstanceGroupList or error will be non-nil. Any
128612// non-2xx status code is an error. Response headers are in either
128613// *RegionInstanceGroupList.ServerResponse.Header or (if a response was
128614// returned at all) in error.(*googleapi.Error).Header. Use
128615// googleapi.IsNotModified to check whether the returned error was
128616// because http.StatusNotModified was returned.
128617func (c *RegionInstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupList, error) {
128618	gensupport.SetOptions(c.urlParams_, opts...)
128619	res, err := c.doRequest("json")
128620	if res != nil && res.StatusCode == http.StatusNotModified {
128621		if res.Body != nil {
128622			res.Body.Close()
128623		}
128624		return nil, &googleapi.Error{
128625			Code:   res.StatusCode,
128626			Header: res.Header,
128627		}
128628	}
128629	if err != nil {
128630		return nil, err
128631	}
128632	defer googleapi.CloseBody(res)
128633	if err := googleapi.CheckResponse(res); err != nil {
128634		return nil, err
128635	}
128636	ret := &RegionInstanceGroupList{
128637		ServerResponse: googleapi.ServerResponse{
128638			Header:         res.Header,
128639			HTTPStatusCode: res.StatusCode,
128640		},
128641	}
128642	target := &ret
128643	if err := gensupport.DecodeResponse(target, res); err != nil {
128644		return nil, err
128645	}
128646	return ret, nil
128647	// {
128648	//   "description": "Retrieves the list of instance group resources contained within the specified region.",
128649	//   "flatPath": "projects/{project}/regions/{region}/instanceGroups",
128650	//   "httpMethod": "GET",
128651	//   "id": "compute.regionInstanceGroups.list",
128652	//   "parameterOrder": [
128653	//     "project",
128654	//     "region"
128655	//   ],
128656	//   "parameters": {
128657	//     "filter": {
128658	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
128659	//       "location": "query",
128660	//       "type": "string"
128661	//     },
128662	//     "maxResults": {
128663	//       "default": "500",
128664	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
128665	//       "format": "uint32",
128666	//       "location": "query",
128667	//       "minimum": "0",
128668	//       "type": "integer"
128669	//     },
128670	//     "orderBy": {
128671	//       "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.",
128672	//       "location": "query",
128673	//       "type": "string"
128674	//     },
128675	//     "pageToken": {
128676	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
128677	//       "location": "query",
128678	//       "type": "string"
128679	//     },
128680	//     "project": {
128681	//       "description": "Project ID for this request.",
128682	//       "location": "path",
128683	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128684	//       "required": true,
128685	//       "type": "string"
128686	//     },
128687	//     "region": {
128688	//       "description": "Name of the region scoping this request.",
128689	//       "location": "path",
128690	//       "required": true,
128691	//       "type": "string"
128692	//     },
128693	//     "returnPartialSuccess": {
128694	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
128695	//       "location": "query",
128696	//       "type": "boolean"
128697	//     }
128698	//   },
128699	//   "path": "projects/{project}/regions/{region}/instanceGroups",
128700	//   "response": {
128701	//     "$ref": "RegionInstanceGroupList"
128702	//   },
128703	//   "scopes": [
128704	//     "https://www.googleapis.com/auth/cloud-platform",
128705	//     "https://www.googleapis.com/auth/compute",
128706	//     "https://www.googleapis.com/auth/compute.readonly"
128707	//   ]
128708	// }
128709
128710}
128711
128712// Pages invokes f for each page of results.
128713// A non-nil error returned from f will halt the iteration.
128714// The provided context supersedes any context provided to the Context method.
128715func (c *RegionInstanceGroupsListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupList) error) error {
128716	c.ctx_ = ctx
128717	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
128718	for {
128719		x, err := c.Do()
128720		if err != nil {
128721			return err
128722		}
128723		if err := f(x); err != nil {
128724			return err
128725		}
128726		if x.NextPageToken == "" {
128727			return nil
128728		}
128729		c.PageToken(x.NextPageToken)
128730	}
128731}
128732
128733// method id "compute.regionInstanceGroups.listInstances":
128734
128735type RegionInstanceGroupsListInstancesCall struct {
128736	s                                        *Service
128737	project                                  string
128738	region                                   string
128739	instanceGroup                            string
128740	regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest
128741	urlParams_                               gensupport.URLParams
128742	ctx_                                     context.Context
128743	header_                                  http.Header
128744}
128745
128746// ListInstances: Lists the instances in the specified instance group
128747// and displays information about the named ports. Depending on the
128748// specified options, this method can list all instances or only the
128749// instances that are running. The orderBy query parameter is not
128750// supported.
128751//
128752// - instanceGroup: Name of the regional instance group for which we
128753//   want to list the instances.
128754// - project: Project ID for this request.
128755// - region: Name of the region scoping this request.
128756func (r *RegionInstanceGroupsService) ListInstances(project string, region string, instanceGroup string, regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest) *RegionInstanceGroupsListInstancesCall {
128757	c := &RegionInstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128758	c.project = project
128759	c.region = region
128760	c.instanceGroup = instanceGroup
128761	c.regioninstancegroupslistinstancesrequest = regioninstancegroupslistinstancesrequest
128762	return c
128763}
128764
128765// Filter sets the optional parameter "filter": A filter expression that
128766// filters resources listed in the response. The expression must specify
128767// the field name, a comparison operator, and the value that you want to
128768// use for filtering. The value must be a string, a number, or a
128769// boolean. The comparison operator must be either `=`, `!=`, `>`, or
128770// `<`. For example, if you are filtering Compute Engine instances, you
128771// can exclude instances named `example-instance` by specifying `name !=
128772// example-instance`. You can also filter nested fields. For example,
128773// you could specify `scheduling.automaticRestart = false` to include
128774// instances only if they are not scheduled for automatic restarts. You
128775// can use filtering on nested fields to filter based on resource
128776// labels. To filter on multiple expressions, provide each separate
128777// expression within parentheses. For example: ```
128778// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
128779// ``` By default, each expression is an `AND` expression. However, you
128780// can include `AND` and `OR` expressions explicitly. For example: ```
128781// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
128782// AND (scheduling.automaticRestart = true) ```
128783func (c *RegionInstanceGroupsListInstancesCall) Filter(filter string) *RegionInstanceGroupsListInstancesCall {
128784	c.urlParams_.Set("filter", filter)
128785	return c
128786}
128787
128788// MaxResults sets the optional parameter "maxResults": The maximum
128789// number of results per page that should be returned. If the number of
128790// available results is larger than `maxResults`, Compute Engine returns
128791// a `nextPageToken` that can be used to get the next page of results in
128792// subsequent list requests. Acceptable values are `0` to `500`,
128793// inclusive. (Default: `500`)
128794func (c *RegionInstanceGroupsListInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupsListInstancesCall {
128795	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
128796	return c
128797}
128798
128799// OrderBy sets the optional parameter "orderBy": Sorts list results by
128800// a certain order. By default, results are returned in alphanumerical
128801// order based on the resource name. You can also sort results in
128802// descending order based on the creation timestamp using
128803// `orderBy="creationTimestamp desc". This sorts results based on the
128804// `creationTimestamp` field in reverse chronological order (newest
128805// result first). Use this to sort resources like operations so that the
128806// newest operation is returned first. Currently, only sorting by `name`
128807// or `creationTimestamp desc` is supported.
128808func (c *RegionInstanceGroupsListInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupsListInstancesCall {
128809	c.urlParams_.Set("orderBy", orderBy)
128810	return c
128811}
128812
128813// PageToken sets the optional parameter "pageToken": Specifies a page
128814// token to use. Set `pageToken` to the `nextPageToken` returned by a
128815// previous list request to get the next page of results.
128816func (c *RegionInstanceGroupsListInstancesCall) PageToken(pageToken string) *RegionInstanceGroupsListInstancesCall {
128817	c.urlParams_.Set("pageToken", pageToken)
128818	return c
128819}
128820
128821// ReturnPartialSuccess sets the optional parameter
128822// "returnPartialSuccess": Opt-in for partial success behavior which
128823// provides partial results in case of failure. The default value is
128824// false.
128825func (c *RegionInstanceGroupsListInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupsListInstancesCall {
128826	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
128827	return c
128828}
128829
128830// Fields allows partial responses to be retrieved. See
128831// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128832// for more information.
128833func (c *RegionInstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListInstancesCall {
128834	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128835	return c
128836}
128837
128838// Context sets the context to be used in this call's Do method. Any
128839// pending HTTP request will be aborted if the provided context is
128840// canceled.
128841func (c *RegionInstanceGroupsListInstancesCall) Context(ctx context.Context) *RegionInstanceGroupsListInstancesCall {
128842	c.ctx_ = ctx
128843	return c
128844}
128845
128846// Header returns an http.Header that can be modified by the caller to
128847// add HTTP headers to the request.
128848func (c *RegionInstanceGroupsListInstancesCall) Header() http.Header {
128849	if c.header_ == nil {
128850		c.header_ = make(http.Header)
128851	}
128852	return c.header_
128853}
128854
128855func (c *RegionInstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) {
128856	reqHeaders := make(http.Header)
128857	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
128858	for k, v := range c.header_ {
128859		reqHeaders[k] = v
128860	}
128861	reqHeaders.Set("User-Agent", c.s.userAgent())
128862	var body io.Reader = nil
128863	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupslistinstancesrequest)
128864	if err != nil {
128865		return nil, err
128866	}
128867	reqHeaders.Set("Content-Type", "application/json")
128868	c.urlParams_.Set("alt", alt)
128869	c.urlParams_.Set("prettyPrint", "false")
128870	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances")
128871	urls += "?" + c.urlParams_.Encode()
128872	req, err := http.NewRequest("POST", urls, body)
128873	if err != nil {
128874		return nil, err
128875	}
128876	req.Header = reqHeaders
128877	googleapi.Expand(req.URL, map[string]string{
128878		"project":       c.project,
128879		"region":        c.region,
128880		"instanceGroup": c.instanceGroup,
128881	})
128882	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128883}
128884
128885// Do executes the "compute.regionInstanceGroups.listInstances" call.
128886// Exactly one of *RegionInstanceGroupsListInstances or error will be
128887// non-nil. Any non-2xx status code is an error. Response headers are in
128888// either *RegionInstanceGroupsListInstances.ServerResponse.Header or
128889// (if a response was returned at all) in
128890// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
128891// whether the returned error was because http.StatusNotModified was
128892// returned.
128893func (c *RegionInstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupsListInstances, error) {
128894	gensupport.SetOptions(c.urlParams_, opts...)
128895	res, err := c.doRequest("json")
128896	if res != nil && res.StatusCode == http.StatusNotModified {
128897		if res.Body != nil {
128898			res.Body.Close()
128899		}
128900		return nil, &googleapi.Error{
128901			Code:   res.StatusCode,
128902			Header: res.Header,
128903		}
128904	}
128905	if err != nil {
128906		return nil, err
128907	}
128908	defer googleapi.CloseBody(res)
128909	if err := googleapi.CheckResponse(res); err != nil {
128910		return nil, err
128911	}
128912	ret := &RegionInstanceGroupsListInstances{
128913		ServerResponse: googleapi.ServerResponse{
128914			Header:         res.Header,
128915			HTTPStatusCode: res.StatusCode,
128916		},
128917	}
128918	target := &ret
128919	if err := gensupport.DecodeResponse(target, res); err != nil {
128920		return nil, err
128921	}
128922	return ret, nil
128923	// {
128924	//   "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.",
128925	//   "flatPath": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances",
128926	//   "httpMethod": "POST",
128927	//   "id": "compute.regionInstanceGroups.listInstances",
128928	//   "parameterOrder": [
128929	//     "project",
128930	//     "region",
128931	//     "instanceGroup"
128932	//   ],
128933	//   "parameters": {
128934	//     "filter": {
128935	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
128936	//       "location": "query",
128937	//       "type": "string"
128938	//     },
128939	//     "instanceGroup": {
128940	//       "description": "Name of the regional instance group for which we want to list the instances.",
128941	//       "location": "path",
128942	//       "required": true,
128943	//       "type": "string"
128944	//     },
128945	//     "maxResults": {
128946	//       "default": "500",
128947	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
128948	//       "format": "uint32",
128949	//       "location": "query",
128950	//       "minimum": "0",
128951	//       "type": "integer"
128952	//     },
128953	//     "orderBy": {
128954	//       "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.",
128955	//       "location": "query",
128956	//       "type": "string"
128957	//     },
128958	//     "pageToken": {
128959	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
128960	//       "location": "query",
128961	//       "type": "string"
128962	//     },
128963	//     "project": {
128964	//       "description": "Project ID for this request.",
128965	//       "location": "path",
128966	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128967	//       "required": true,
128968	//       "type": "string"
128969	//     },
128970	//     "region": {
128971	//       "description": "Name of the region scoping this request.",
128972	//       "location": "path",
128973	//       "required": true,
128974	//       "type": "string"
128975	//     },
128976	//     "returnPartialSuccess": {
128977	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
128978	//       "location": "query",
128979	//       "type": "boolean"
128980	//     }
128981	//   },
128982	//   "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances",
128983	//   "request": {
128984	//     "$ref": "RegionInstanceGroupsListInstancesRequest"
128985	//   },
128986	//   "response": {
128987	//     "$ref": "RegionInstanceGroupsListInstances"
128988	//   },
128989	//   "scopes": [
128990	//     "https://www.googleapis.com/auth/cloud-platform",
128991	//     "https://www.googleapis.com/auth/compute",
128992	//     "https://www.googleapis.com/auth/compute.readonly"
128993	//   ]
128994	// }
128995
128996}
128997
128998// Pages invokes f for each page of results.
128999// A non-nil error returned from f will halt the iteration.
129000// The provided context supersedes any context provided to the Context method.
129001func (c *RegionInstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*RegionInstanceGroupsListInstances) error) error {
129002	c.ctx_ = ctx
129003	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
129004	for {
129005		x, err := c.Do()
129006		if err != nil {
129007			return err
129008		}
129009		if err := f(x); err != nil {
129010			return err
129011		}
129012		if x.NextPageToken == "" {
129013			return nil
129014		}
129015		c.PageToken(x.NextPageToken)
129016	}
129017}
129018
129019// method id "compute.regionInstanceGroups.setNamedPorts":
129020
129021type RegionInstanceGroupsSetNamedPortsCall struct {
129022	s                                        *Service
129023	project                                  string
129024	region                                   string
129025	instanceGroup                            string
129026	regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest
129027	urlParams_                               gensupport.URLParams
129028	ctx_                                     context.Context
129029	header_                                  http.Header
129030}
129031
129032// SetNamedPorts: Sets the named ports for the specified regional
129033// instance group.
129034//
129035// - instanceGroup: The name of the regional instance group where the
129036//   named ports are updated.
129037// - project: Project ID for this request.
129038// - region: Name of the region scoping this request.
129039func (r *RegionInstanceGroupsService) SetNamedPorts(project string, region string, instanceGroup string, regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest) *RegionInstanceGroupsSetNamedPortsCall {
129040	c := &RegionInstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129041	c.project = project
129042	c.region = region
129043	c.instanceGroup = instanceGroup
129044	c.regioninstancegroupssetnamedportsrequest = regioninstancegroupssetnamedportsrequest
129045	return c
129046}
129047
129048// RequestId sets the optional parameter "requestId": An optional
129049// request ID to identify requests. Specify a unique request ID so that
129050// if you must retry your request, the server will know to ignore the
129051// request if it has already been completed. For example, consider a
129052// situation where you make an initial request and the request times
129053// out. If you make the request again with the same request ID, the
129054// server can check if original operation with the same request ID was
129055// received, and if so, will ignore the second request. This prevents
129056// clients from accidentally creating duplicate commitments. The request
129057// ID must be a valid UUID with the exception that zero UUID is not
129058// supported ( 00000000-0000-0000-0000-000000000000).
129059func (c *RegionInstanceGroupsSetNamedPortsCall) RequestId(requestId string) *RegionInstanceGroupsSetNamedPortsCall {
129060	c.urlParams_.Set("requestId", requestId)
129061	return c
129062}
129063
129064// Fields allows partial responses to be retrieved. See
129065// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129066// for more information.
129067func (c *RegionInstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsSetNamedPortsCall {
129068	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129069	return c
129070}
129071
129072// Context sets the context to be used in this call's Do method. Any
129073// pending HTTP request will be aborted if the provided context is
129074// canceled.
129075func (c *RegionInstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *RegionInstanceGroupsSetNamedPortsCall {
129076	c.ctx_ = ctx
129077	return c
129078}
129079
129080// Header returns an http.Header that can be modified by the caller to
129081// add HTTP headers to the request.
129082func (c *RegionInstanceGroupsSetNamedPortsCall) Header() http.Header {
129083	if c.header_ == nil {
129084		c.header_ = make(http.Header)
129085	}
129086	return c.header_
129087}
129088
129089func (c *RegionInstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) {
129090	reqHeaders := make(http.Header)
129091	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
129092	for k, v := range c.header_ {
129093		reqHeaders[k] = v
129094	}
129095	reqHeaders.Set("User-Agent", c.s.userAgent())
129096	var body io.Reader = nil
129097	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupssetnamedportsrequest)
129098	if err != nil {
129099		return nil, err
129100	}
129101	reqHeaders.Set("Content-Type", "application/json")
129102	c.urlParams_.Set("alt", alt)
129103	c.urlParams_.Set("prettyPrint", "false")
129104	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts")
129105	urls += "?" + c.urlParams_.Encode()
129106	req, err := http.NewRequest("POST", urls, body)
129107	if err != nil {
129108		return nil, err
129109	}
129110	req.Header = reqHeaders
129111	googleapi.Expand(req.URL, map[string]string{
129112		"project":       c.project,
129113		"region":        c.region,
129114		"instanceGroup": c.instanceGroup,
129115	})
129116	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129117}
129118
129119// Do executes the "compute.regionInstanceGroups.setNamedPorts" call.
129120// Exactly one of *Operation or error will be non-nil. Any non-2xx
129121// status code is an error. Response headers are in either
129122// *Operation.ServerResponse.Header or (if a response was returned at
129123// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129124// to check whether the returned error was because
129125// http.StatusNotModified was returned.
129126func (c *RegionInstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129127	gensupport.SetOptions(c.urlParams_, opts...)
129128	res, err := c.doRequest("json")
129129	if res != nil && res.StatusCode == http.StatusNotModified {
129130		if res.Body != nil {
129131			res.Body.Close()
129132		}
129133		return nil, &googleapi.Error{
129134			Code:   res.StatusCode,
129135			Header: res.Header,
129136		}
129137	}
129138	if err != nil {
129139		return nil, err
129140	}
129141	defer googleapi.CloseBody(res)
129142	if err := googleapi.CheckResponse(res); err != nil {
129143		return nil, err
129144	}
129145	ret := &Operation{
129146		ServerResponse: googleapi.ServerResponse{
129147			Header:         res.Header,
129148			HTTPStatusCode: res.StatusCode,
129149		},
129150	}
129151	target := &ret
129152	if err := gensupport.DecodeResponse(target, res); err != nil {
129153		return nil, err
129154	}
129155	return ret, nil
129156	// {
129157	//   "description": "Sets the named ports for the specified regional instance group.",
129158	//   "flatPath": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts",
129159	//   "httpMethod": "POST",
129160	//   "id": "compute.regionInstanceGroups.setNamedPorts",
129161	//   "parameterOrder": [
129162	//     "project",
129163	//     "region",
129164	//     "instanceGroup"
129165	//   ],
129166	//   "parameters": {
129167	//     "instanceGroup": {
129168	//       "description": "The name of the regional instance group where the named ports are updated.",
129169	//       "location": "path",
129170	//       "required": true,
129171	//       "type": "string"
129172	//     },
129173	//     "project": {
129174	//       "description": "Project ID for this request.",
129175	//       "location": "path",
129176	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129177	//       "required": true,
129178	//       "type": "string"
129179	//     },
129180	//     "region": {
129181	//       "description": "Name of the region scoping this request.",
129182	//       "location": "path",
129183	//       "required": true,
129184	//       "type": "string"
129185	//     },
129186	//     "requestId": {
129187	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
129188	//       "location": "query",
129189	//       "type": "string"
129190	//     }
129191	//   },
129192	//   "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts",
129193	//   "request": {
129194	//     "$ref": "RegionInstanceGroupsSetNamedPortsRequest"
129195	//   },
129196	//   "response": {
129197	//     "$ref": "Operation"
129198	//   },
129199	//   "scopes": [
129200	//     "https://www.googleapis.com/auth/cloud-platform",
129201	//     "https://www.googleapis.com/auth/compute"
129202	//   ]
129203	// }
129204
129205}
129206
129207// method id "compute.regionInstances.bulkInsert":
129208
129209type RegionInstancesBulkInsertCall struct {
129210	s                          *Service
129211	project                    string
129212	region                     string
129213	bulkinsertinstanceresource *BulkInsertInstanceResource
129214	urlParams_                 gensupport.URLParams
129215	ctx_                       context.Context
129216	header_                    http.Header
129217}
129218
129219// BulkInsert: Creates multiple instances in a given region. Count
129220// specifies the number of instances to create.
129221//
129222// - project: Project ID for this request.
129223// - region: The name of the region for this request.
129224func (r *RegionInstancesService) BulkInsert(project string, region string, bulkinsertinstanceresource *BulkInsertInstanceResource) *RegionInstancesBulkInsertCall {
129225	c := &RegionInstancesBulkInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129226	c.project = project
129227	c.region = region
129228	c.bulkinsertinstanceresource = bulkinsertinstanceresource
129229	return c
129230}
129231
129232// RequestId sets the optional parameter "requestId": An optional
129233// request ID to identify requests. Specify a unique request ID so that
129234// if you must retry your request, the server will know to ignore the
129235// request if it has already been completed. For example, consider a
129236// situation where you make an initial request and the request times
129237// out. If you make the request again with the same request ID, the
129238// server can check if original operation with the same request ID was
129239// received, and if so, will ignore the second request. This prevents
129240// clients from accidentally creating duplicate commitments. The request
129241// ID must be a valid UUID with the exception that zero UUID is not
129242// supported ( 00000000-0000-0000-0000-000000000000).
129243func (c *RegionInstancesBulkInsertCall) RequestId(requestId string) *RegionInstancesBulkInsertCall {
129244	c.urlParams_.Set("requestId", requestId)
129245	return c
129246}
129247
129248// Fields allows partial responses to be retrieved. See
129249// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129250// for more information.
129251func (c *RegionInstancesBulkInsertCall) Fields(s ...googleapi.Field) *RegionInstancesBulkInsertCall {
129252	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129253	return c
129254}
129255
129256// Context sets the context to be used in this call's Do method. Any
129257// pending HTTP request will be aborted if the provided context is
129258// canceled.
129259func (c *RegionInstancesBulkInsertCall) Context(ctx context.Context) *RegionInstancesBulkInsertCall {
129260	c.ctx_ = ctx
129261	return c
129262}
129263
129264// Header returns an http.Header that can be modified by the caller to
129265// add HTTP headers to the request.
129266func (c *RegionInstancesBulkInsertCall) Header() http.Header {
129267	if c.header_ == nil {
129268		c.header_ = make(http.Header)
129269	}
129270	return c.header_
129271}
129272
129273func (c *RegionInstancesBulkInsertCall) doRequest(alt string) (*http.Response, error) {
129274	reqHeaders := make(http.Header)
129275	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
129276	for k, v := range c.header_ {
129277		reqHeaders[k] = v
129278	}
129279	reqHeaders.Set("User-Agent", c.s.userAgent())
129280	var body io.Reader = nil
129281	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkinsertinstanceresource)
129282	if err != nil {
129283		return nil, err
129284	}
129285	reqHeaders.Set("Content-Type", "application/json")
129286	c.urlParams_.Set("alt", alt)
129287	c.urlParams_.Set("prettyPrint", "false")
129288	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instances/bulkInsert")
129289	urls += "?" + c.urlParams_.Encode()
129290	req, err := http.NewRequest("POST", urls, body)
129291	if err != nil {
129292		return nil, err
129293	}
129294	req.Header = reqHeaders
129295	googleapi.Expand(req.URL, map[string]string{
129296		"project": c.project,
129297		"region":  c.region,
129298	})
129299	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129300}
129301
129302// Do executes the "compute.regionInstances.bulkInsert" call.
129303// Exactly one of *Operation or error will be non-nil. Any non-2xx
129304// status code is an error. Response headers are in either
129305// *Operation.ServerResponse.Header or (if a response was returned at
129306// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129307// to check whether the returned error was because
129308// http.StatusNotModified was returned.
129309func (c *RegionInstancesBulkInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129310	gensupport.SetOptions(c.urlParams_, opts...)
129311	res, err := c.doRequest("json")
129312	if res != nil && res.StatusCode == http.StatusNotModified {
129313		if res.Body != nil {
129314			res.Body.Close()
129315		}
129316		return nil, &googleapi.Error{
129317			Code:   res.StatusCode,
129318			Header: res.Header,
129319		}
129320	}
129321	if err != nil {
129322		return nil, err
129323	}
129324	defer googleapi.CloseBody(res)
129325	if err := googleapi.CheckResponse(res); err != nil {
129326		return nil, err
129327	}
129328	ret := &Operation{
129329		ServerResponse: googleapi.ServerResponse{
129330			Header:         res.Header,
129331			HTTPStatusCode: res.StatusCode,
129332		},
129333	}
129334	target := &ret
129335	if err := gensupport.DecodeResponse(target, res); err != nil {
129336		return nil, err
129337	}
129338	return ret, nil
129339	// {
129340	//   "description": "Creates multiple instances in a given region. Count specifies the number of instances to create.",
129341	//   "flatPath": "projects/{project}/regions/{region}/instances/bulkInsert",
129342	//   "httpMethod": "POST",
129343	//   "id": "compute.regionInstances.bulkInsert",
129344	//   "parameterOrder": [
129345	//     "project",
129346	//     "region"
129347	//   ],
129348	//   "parameters": {
129349	//     "project": {
129350	//       "description": "Project ID for this request.",
129351	//       "location": "path",
129352	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129353	//       "required": true,
129354	//       "type": "string"
129355	//     },
129356	//     "region": {
129357	//       "description": "The name of the region for this request.",
129358	//       "location": "path",
129359	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129360	//       "required": true,
129361	//       "type": "string"
129362	//     },
129363	//     "requestId": {
129364	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
129365	//       "location": "query",
129366	//       "type": "string"
129367	//     }
129368	//   },
129369	//   "path": "projects/{project}/regions/{region}/instances/bulkInsert",
129370	//   "request": {
129371	//     "$ref": "BulkInsertInstanceResource"
129372	//   },
129373	//   "response": {
129374	//     "$ref": "Operation"
129375	//   },
129376	//   "scopes": [
129377	//     "https://www.googleapis.com/auth/cloud-platform",
129378	//     "https://www.googleapis.com/auth/compute"
129379	//   ]
129380	// }
129381
129382}
129383
129384// method id "compute.regionNetworkEndpointGroups.delete":
129385
129386type RegionNetworkEndpointGroupsDeleteCall struct {
129387	s                    *Service
129388	project              string
129389	region               string
129390	networkEndpointGroup string
129391	urlParams_           gensupport.URLParams
129392	ctx_                 context.Context
129393	header_              http.Header
129394}
129395
129396// Delete: Deletes the specified network endpoint group. Note that the
129397// NEG cannot be deleted if it is configured as a backend of a backend
129398// service.
129399//
129400// - networkEndpointGroup: The name of the network endpoint group to
129401//   delete. It should comply with RFC1035.
129402// - project: Project ID for this request.
129403// - region: The name of the region where the network endpoint group is
129404//   located. It should comply with RFC1035.
129405func (r *RegionNetworkEndpointGroupsService) Delete(project string, region string, networkEndpointGroup string) *RegionNetworkEndpointGroupsDeleteCall {
129406	c := &RegionNetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129407	c.project = project
129408	c.region = region
129409	c.networkEndpointGroup = networkEndpointGroup
129410	return c
129411}
129412
129413// RequestId sets the optional parameter "requestId": An optional
129414// request ID to identify requests. Specify a unique request ID so that
129415// if you must retry your request, the server will know to ignore the
129416// request if it has already been completed. For example, consider a
129417// situation where you make an initial request and the request times
129418// out. If you make the request again with the same request ID, the
129419// server can check if original operation with the same request ID was
129420// received, and if so, will ignore the second request. This prevents
129421// clients from accidentally creating duplicate commitments. The request
129422// ID must be a valid UUID with the exception that zero UUID is not
129423// supported ( 00000000-0000-0000-0000-000000000000).
129424func (c *RegionNetworkEndpointGroupsDeleteCall) RequestId(requestId string) *RegionNetworkEndpointGroupsDeleteCall {
129425	c.urlParams_.Set("requestId", requestId)
129426	return c
129427}
129428
129429// Fields allows partial responses to be retrieved. See
129430// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129431// for more information.
129432func (c *RegionNetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsDeleteCall {
129433	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129434	return c
129435}
129436
129437// Context sets the context to be used in this call's Do method. Any
129438// pending HTTP request will be aborted if the provided context is
129439// canceled.
129440func (c *RegionNetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsDeleteCall {
129441	c.ctx_ = ctx
129442	return c
129443}
129444
129445// Header returns an http.Header that can be modified by the caller to
129446// add HTTP headers to the request.
129447func (c *RegionNetworkEndpointGroupsDeleteCall) Header() http.Header {
129448	if c.header_ == nil {
129449		c.header_ = make(http.Header)
129450	}
129451	return c.header_
129452}
129453
129454func (c *RegionNetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
129455	reqHeaders := make(http.Header)
129456	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
129457	for k, v := range c.header_ {
129458		reqHeaders[k] = v
129459	}
129460	reqHeaders.Set("User-Agent", c.s.userAgent())
129461	var body io.Reader = nil
129462	c.urlParams_.Set("alt", alt)
129463	c.urlParams_.Set("prettyPrint", "false")
129464	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}")
129465	urls += "?" + c.urlParams_.Encode()
129466	req, err := http.NewRequest("DELETE", urls, body)
129467	if err != nil {
129468		return nil, err
129469	}
129470	req.Header = reqHeaders
129471	googleapi.Expand(req.URL, map[string]string{
129472		"project":              c.project,
129473		"region":               c.region,
129474		"networkEndpointGroup": c.networkEndpointGroup,
129475	})
129476	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129477}
129478
129479// Do executes the "compute.regionNetworkEndpointGroups.delete" call.
129480// Exactly one of *Operation or error will be non-nil. Any non-2xx
129481// status code is an error. Response headers are in either
129482// *Operation.ServerResponse.Header or (if a response was returned at
129483// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129484// to check whether the returned error was because
129485// http.StatusNotModified was returned.
129486func (c *RegionNetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129487	gensupport.SetOptions(c.urlParams_, opts...)
129488	res, err := c.doRequest("json")
129489	if res != nil && res.StatusCode == http.StatusNotModified {
129490		if res.Body != nil {
129491			res.Body.Close()
129492		}
129493		return nil, &googleapi.Error{
129494			Code:   res.StatusCode,
129495			Header: res.Header,
129496		}
129497	}
129498	if err != nil {
129499		return nil, err
129500	}
129501	defer googleapi.CloseBody(res)
129502	if err := googleapi.CheckResponse(res); err != nil {
129503		return nil, err
129504	}
129505	ret := &Operation{
129506		ServerResponse: googleapi.ServerResponse{
129507			Header:         res.Header,
129508			HTTPStatusCode: res.StatusCode,
129509		},
129510	}
129511	target := &ret
129512	if err := gensupport.DecodeResponse(target, res); err != nil {
129513		return nil, err
129514	}
129515	return ret, nil
129516	// {
129517	//   "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.",
129518	//   "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}",
129519	//   "httpMethod": "DELETE",
129520	//   "id": "compute.regionNetworkEndpointGroups.delete",
129521	//   "parameterOrder": [
129522	//     "project",
129523	//     "region",
129524	//     "networkEndpointGroup"
129525	//   ],
129526	//   "parameters": {
129527	//     "networkEndpointGroup": {
129528	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
129529	//       "location": "path",
129530	//       "required": true,
129531	//       "type": "string"
129532	//     },
129533	//     "project": {
129534	//       "description": "Project ID for this request.",
129535	//       "location": "path",
129536	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129537	//       "required": true,
129538	//       "type": "string"
129539	//     },
129540	//     "region": {
129541	//       "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.",
129542	//       "location": "path",
129543	//       "required": true,
129544	//       "type": "string"
129545	//     },
129546	//     "requestId": {
129547	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
129548	//       "location": "query",
129549	//       "type": "string"
129550	//     }
129551	//   },
129552	//   "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}",
129553	//   "response": {
129554	//     "$ref": "Operation"
129555	//   },
129556	//   "scopes": [
129557	//     "https://www.googleapis.com/auth/cloud-platform",
129558	//     "https://www.googleapis.com/auth/compute"
129559	//   ]
129560	// }
129561
129562}
129563
129564// method id "compute.regionNetworkEndpointGroups.get":
129565
129566type RegionNetworkEndpointGroupsGetCall struct {
129567	s                    *Service
129568	project              string
129569	region               string
129570	networkEndpointGroup string
129571	urlParams_           gensupport.URLParams
129572	ifNoneMatch_         string
129573	ctx_                 context.Context
129574	header_              http.Header
129575}
129576
129577// Get: Returns the specified network endpoint group. Gets a list of
129578// available network endpoint groups by making a list() request.
129579//
129580// - networkEndpointGroup: The name of the network endpoint group. It
129581//   should comply with RFC1035.
129582// - project: Project ID for this request.
129583// - region: The name of the region where the network endpoint group is
129584//   located. It should comply with RFC1035.
129585func (r *RegionNetworkEndpointGroupsService) Get(project string, region string, networkEndpointGroup string) *RegionNetworkEndpointGroupsGetCall {
129586	c := &RegionNetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129587	c.project = project
129588	c.region = region
129589	c.networkEndpointGroup = networkEndpointGroup
129590	return c
129591}
129592
129593// Fields allows partial responses to be retrieved. See
129594// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129595// for more information.
129596func (c *RegionNetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsGetCall {
129597	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129598	return c
129599}
129600
129601// IfNoneMatch sets the optional parameter which makes the operation
129602// fail if the object's ETag matches the given value. This is useful for
129603// getting updates only after the object has changed since the last
129604// request. Use googleapi.IsNotModified to check whether the response
129605// error from Do is the result of In-None-Match.
129606func (c *RegionNetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *RegionNetworkEndpointGroupsGetCall {
129607	c.ifNoneMatch_ = entityTag
129608	return c
129609}
129610
129611// Context sets the context to be used in this call's Do method. Any
129612// pending HTTP request will be aborted if the provided context is
129613// canceled.
129614func (c *RegionNetworkEndpointGroupsGetCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsGetCall {
129615	c.ctx_ = ctx
129616	return c
129617}
129618
129619// Header returns an http.Header that can be modified by the caller to
129620// add HTTP headers to the request.
129621func (c *RegionNetworkEndpointGroupsGetCall) Header() http.Header {
129622	if c.header_ == nil {
129623		c.header_ = make(http.Header)
129624	}
129625	return c.header_
129626}
129627
129628func (c *RegionNetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
129629	reqHeaders := make(http.Header)
129630	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
129631	for k, v := range c.header_ {
129632		reqHeaders[k] = v
129633	}
129634	reqHeaders.Set("User-Agent", c.s.userAgent())
129635	if c.ifNoneMatch_ != "" {
129636		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
129637	}
129638	var body io.Reader = nil
129639	c.urlParams_.Set("alt", alt)
129640	c.urlParams_.Set("prettyPrint", "false")
129641	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}")
129642	urls += "?" + c.urlParams_.Encode()
129643	req, err := http.NewRequest("GET", urls, body)
129644	if err != nil {
129645		return nil, err
129646	}
129647	req.Header = reqHeaders
129648	googleapi.Expand(req.URL, map[string]string{
129649		"project":              c.project,
129650		"region":               c.region,
129651		"networkEndpointGroup": c.networkEndpointGroup,
129652	})
129653	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129654}
129655
129656// Do executes the "compute.regionNetworkEndpointGroups.get" call.
129657// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
129658// non-2xx status code is an error. Response headers are in either
129659// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
129660// returned at all) in error.(*googleapi.Error).Header. Use
129661// googleapi.IsNotModified to check whether the returned error was
129662// because http.StatusNotModified was returned.
129663func (c *RegionNetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
129664	gensupport.SetOptions(c.urlParams_, opts...)
129665	res, err := c.doRequest("json")
129666	if res != nil && res.StatusCode == http.StatusNotModified {
129667		if res.Body != nil {
129668			res.Body.Close()
129669		}
129670		return nil, &googleapi.Error{
129671			Code:   res.StatusCode,
129672			Header: res.Header,
129673		}
129674	}
129675	if err != nil {
129676		return nil, err
129677	}
129678	defer googleapi.CloseBody(res)
129679	if err := googleapi.CheckResponse(res); err != nil {
129680		return nil, err
129681	}
129682	ret := &NetworkEndpointGroup{
129683		ServerResponse: googleapi.ServerResponse{
129684			Header:         res.Header,
129685			HTTPStatusCode: res.StatusCode,
129686		},
129687	}
129688	target := &ret
129689	if err := gensupport.DecodeResponse(target, res); err != nil {
129690		return nil, err
129691	}
129692	return ret, nil
129693	// {
129694	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.",
129695	//   "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}",
129696	//   "httpMethod": "GET",
129697	//   "id": "compute.regionNetworkEndpointGroups.get",
129698	//   "parameterOrder": [
129699	//     "project",
129700	//     "region",
129701	//     "networkEndpointGroup"
129702	//   ],
129703	//   "parameters": {
129704	//     "networkEndpointGroup": {
129705	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
129706	//       "location": "path",
129707	//       "required": true,
129708	//       "type": "string"
129709	//     },
129710	//     "project": {
129711	//       "description": "Project ID for this request.",
129712	//       "location": "path",
129713	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129714	//       "required": true,
129715	//       "type": "string"
129716	//     },
129717	//     "region": {
129718	//       "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.",
129719	//       "location": "path",
129720	//       "required": true,
129721	//       "type": "string"
129722	//     }
129723	//   },
129724	//   "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}",
129725	//   "response": {
129726	//     "$ref": "NetworkEndpointGroup"
129727	//   },
129728	//   "scopes": [
129729	//     "https://www.googleapis.com/auth/cloud-platform",
129730	//     "https://www.googleapis.com/auth/compute",
129731	//     "https://www.googleapis.com/auth/compute.readonly"
129732	//   ]
129733	// }
129734
129735}
129736
129737// method id "compute.regionNetworkEndpointGroups.insert":
129738
129739type RegionNetworkEndpointGroupsInsertCall struct {
129740	s                    *Service
129741	project              string
129742	region               string
129743	networkendpointgroup *NetworkEndpointGroup
129744	urlParams_           gensupport.URLParams
129745	ctx_                 context.Context
129746	header_              http.Header
129747}
129748
129749// Insert: Creates a network endpoint group in the specified project
129750// using the parameters that are included in the request.
129751//
129752// - project: Project ID for this request.
129753// - region: The name of the region where you want to create the network
129754//   endpoint group. It should comply with RFC1035.
129755func (r *RegionNetworkEndpointGroupsService) Insert(project string, region string, networkendpointgroup *NetworkEndpointGroup) *RegionNetworkEndpointGroupsInsertCall {
129756	c := &RegionNetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129757	c.project = project
129758	c.region = region
129759	c.networkendpointgroup = networkendpointgroup
129760	return c
129761}
129762
129763// RequestId sets the optional parameter "requestId": An optional
129764// request ID to identify requests. Specify a unique request ID so that
129765// if you must retry your request, the server will know to ignore the
129766// request if it has already been completed. For example, consider a
129767// situation where you make an initial request and the request times
129768// out. If you make the request again with the same request ID, the
129769// server can check if original operation with the same request ID was
129770// received, and if so, will ignore the second request. This prevents
129771// clients from accidentally creating duplicate commitments. The request
129772// ID must be a valid UUID with the exception that zero UUID is not
129773// supported ( 00000000-0000-0000-0000-000000000000).
129774func (c *RegionNetworkEndpointGroupsInsertCall) RequestId(requestId string) *RegionNetworkEndpointGroupsInsertCall {
129775	c.urlParams_.Set("requestId", requestId)
129776	return c
129777}
129778
129779// Fields allows partial responses to be retrieved. See
129780// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129781// for more information.
129782func (c *RegionNetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsInsertCall {
129783	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129784	return c
129785}
129786
129787// Context sets the context to be used in this call's Do method. Any
129788// pending HTTP request will be aborted if the provided context is
129789// canceled.
129790func (c *RegionNetworkEndpointGroupsInsertCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsInsertCall {
129791	c.ctx_ = ctx
129792	return c
129793}
129794
129795// Header returns an http.Header that can be modified by the caller to
129796// add HTTP headers to the request.
129797func (c *RegionNetworkEndpointGroupsInsertCall) Header() http.Header {
129798	if c.header_ == nil {
129799		c.header_ = make(http.Header)
129800	}
129801	return c.header_
129802}
129803
129804func (c *RegionNetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
129805	reqHeaders := make(http.Header)
129806	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
129807	for k, v := range c.header_ {
129808		reqHeaders[k] = v
129809	}
129810	reqHeaders.Set("User-Agent", c.s.userAgent())
129811	var body io.Reader = nil
129812	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
129813	if err != nil {
129814		return nil, err
129815	}
129816	reqHeaders.Set("Content-Type", "application/json")
129817	c.urlParams_.Set("alt", alt)
129818	c.urlParams_.Set("prettyPrint", "false")
129819	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups")
129820	urls += "?" + c.urlParams_.Encode()
129821	req, err := http.NewRequest("POST", urls, body)
129822	if err != nil {
129823		return nil, err
129824	}
129825	req.Header = reqHeaders
129826	googleapi.Expand(req.URL, map[string]string{
129827		"project": c.project,
129828		"region":  c.region,
129829	})
129830	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129831}
129832
129833// Do executes the "compute.regionNetworkEndpointGroups.insert" call.
129834// Exactly one of *Operation or error will be non-nil. Any non-2xx
129835// status code is an error. Response headers are in either
129836// *Operation.ServerResponse.Header or (if a response was returned at
129837// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129838// to check whether the returned error was because
129839// http.StatusNotModified was returned.
129840func (c *RegionNetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129841	gensupport.SetOptions(c.urlParams_, opts...)
129842	res, err := c.doRequest("json")
129843	if res != nil && res.StatusCode == http.StatusNotModified {
129844		if res.Body != nil {
129845			res.Body.Close()
129846		}
129847		return nil, &googleapi.Error{
129848			Code:   res.StatusCode,
129849			Header: res.Header,
129850		}
129851	}
129852	if err != nil {
129853		return nil, err
129854	}
129855	defer googleapi.CloseBody(res)
129856	if err := googleapi.CheckResponse(res); err != nil {
129857		return nil, err
129858	}
129859	ret := &Operation{
129860		ServerResponse: googleapi.ServerResponse{
129861			Header:         res.Header,
129862			HTTPStatusCode: res.StatusCode,
129863		},
129864	}
129865	target := &ret
129866	if err := gensupport.DecodeResponse(target, res); err != nil {
129867		return nil, err
129868	}
129869	return ret, nil
129870	// {
129871	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.",
129872	//   "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups",
129873	//   "httpMethod": "POST",
129874	//   "id": "compute.regionNetworkEndpointGroups.insert",
129875	//   "parameterOrder": [
129876	//     "project",
129877	//     "region"
129878	//   ],
129879	//   "parameters": {
129880	//     "project": {
129881	//       "description": "Project ID for this request.",
129882	//       "location": "path",
129883	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129884	//       "required": true,
129885	//       "type": "string"
129886	//     },
129887	//     "region": {
129888	//       "description": "The name of the region where you want to create the network endpoint group. It should comply with RFC1035.",
129889	//       "location": "path",
129890	//       "required": true,
129891	//       "type": "string"
129892	//     },
129893	//     "requestId": {
129894	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
129895	//       "location": "query",
129896	//       "type": "string"
129897	//     }
129898	//   },
129899	//   "path": "projects/{project}/regions/{region}/networkEndpointGroups",
129900	//   "request": {
129901	//     "$ref": "NetworkEndpointGroup"
129902	//   },
129903	//   "response": {
129904	//     "$ref": "Operation"
129905	//   },
129906	//   "scopes": [
129907	//     "https://www.googleapis.com/auth/cloud-platform",
129908	//     "https://www.googleapis.com/auth/compute"
129909	//   ]
129910	// }
129911
129912}
129913
129914// method id "compute.regionNetworkEndpointGroups.list":
129915
129916type RegionNetworkEndpointGroupsListCall struct {
129917	s            *Service
129918	project      string
129919	region       string
129920	urlParams_   gensupport.URLParams
129921	ifNoneMatch_ string
129922	ctx_         context.Context
129923	header_      http.Header
129924}
129925
129926// List: Retrieves the list of regional network endpoint groups
129927// available to the specified project in the given region.
129928//
129929// - project: Project ID for this request.
129930// - region: The name of the region where the network endpoint group is
129931//   located. It should comply with RFC1035.
129932func (r *RegionNetworkEndpointGroupsService) List(project string, region string) *RegionNetworkEndpointGroupsListCall {
129933	c := &RegionNetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129934	c.project = project
129935	c.region = region
129936	return c
129937}
129938
129939// Filter sets the optional parameter "filter": A filter expression that
129940// filters resources listed in the response. The expression must specify
129941// the field name, a comparison operator, and the value that you want to
129942// use for filtering. The value must be a string, a number, or a
129943// boolean. The comparison operator must be either `=`, `!=`, `>`, or
129944// `<`. For example, if you are filtering Compute Engine instances, you
129945// can exclude instances named `example-instance` by specifying `name !=
129946// example-instance`. You can also filter nested fields. For example,
129947// you could specify `scheduling.automaticRestart = false` to include
129948// instances only if they are not scheduled for automatic restarts. You
129949// can use filtering on nested fields to filter based on resource
129950// labels. To filter on multiple expressions, provide each separate
129951// expression within parentheses. For example: ```
129952// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
129953// ``` By default, each expression is an `AND` expression. However, you
129954// can include `AND` and `OR` expressions explicitly. For example: ```
129955// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
129956// AND (scheduling.automaticRestart = true) ```
129957func (c *RegionNetworkEndpointGroupsListCall) Filter(filter string) *RegionNetworkEndpointGroupsListCall {
129958	c.urlParams_.Set("filter", filter)
129959	return c
129960}
129961
129962// MaxResults sets the optional parameter "maxResults": The maximum
129963// number of results per page that should be returned. If the number of
129964// available results is larger than `maxResults`, Compute Engine returns
129965// a `nextPageToken` that can be used to get the next page of results in
129966// subsequent list requests. Acceptable values are `0` to `500`,
129967// inclusive. (Default: `500`)
129968func (c *RegionNetworkEndpointGroupsListCall) MaxResults(maxResults int64) *RegionNetworkEndpointGroupsListCall {
129969	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
129970	return c
129971}
129972
129973// OrderBy sets the optional parameter "orderBy": Sorts list results by
129974// a certain order. By default, results are returned in alphanumerical
129975// order based on the resource name. You can also sort results in
129976// descending order based on the creation timestamp using
129977// `orderBy="creationTimestamp desc". This sorts results based on the
129978// `creationTimestamp` field in reverse chronological order (newest
129979// result first). Use this to sort resources like operations so that the
129980// newest operation is returned first. Currently, only sorting by `name`
129981// or `creationTimestamp desc` is supported.
129982func (c *RegionNetworkEndpointGroupsListCall) OrderBy(orderBy string) *RegionNetworkEndpointGroupsListCall {
129983	c.urlParams_.Set("orderBy", orderBy)
129984	return c
129985}
129986
129987// PageToken sets the optional parameter "pageToken": Specifies a page
129988// token to use. Set `pageToken` to the `nextPageToken` returned by a
129989// previous list request to get the next page of results.
129990func (c *RegionNetworkEndpointGroupsListCall) PageToken(pageToken string) *RegionNetworkEndpointGroupsListCall {
129991	c.urlParams_.Set("pageToken", pageToken)
129992	return c
129993}
129994
129995// ReturnPartialSuccess sets the optional parameter
129996// "returnPartialSuccess": Opt-in for partial success behavior which
129997// provides partial results in case of failure. The default value is
129998// false.
129999func (c *RegionNetworkEndpointGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionNetworkEndpointGroupsListCall {
130000	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
130001	return c
130002}
130003
130004// Fields allows partial responses to be retrieved. See
130005// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130006// for more information.
130007func (c *RegionNetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsListCall {
130008	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130009	return c
130010}
130011
130012// IfNoneMatch sets the optional parameter which makes the operation
130013// fail if the object's ETag matches the given value. This is useful for
130014// getting updates only after the object has changed since the last
130015// request. Use googleapi.IsNotModified to check whether the response
130016// error from Do is the result of In-None-Match.
130017func (c *RegionNetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *RegionNetworkEndpointGroupsListCall {
130018	c.ifNoneMatch_ = entityTag
130019	return c
130020}
130021
130022// Context sets the context to be used in this call's Do method. Any
130023// pending HTTP request will be aborted if the provided context is
130024// canceled.
130025func (c *RegionNetworkEndpointGroupsListCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsListCall {
130026	c.ctx_ = ctx
130027	return c
130028}
130029
130030// Header returns an http.Header that can be modified by the caller to
130031// add HTTP headers to the request.
130032func (c *RegionNetworkEndpointGroupsListCall) Header() http.Header {
130033	if c.header_ == nil {
130034		c.header_ = make(http.Header)
130035	}
130036	return c.header_
130037}
130038
130039func (c *RegionNetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
130040	reqHeaders := make(http.Header)
130041	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
130042	for k, v := range c.header_ {
130043		reqHeaders[k] = v
130044	}
130045	reqHeaders.Set("User-Agent", c.s.userAgent())
130046	if c.ifNoneMatch_ != "" {
130047		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
130048	}
130049	var body io.Reader = nil
130050	c.urlParams_.Set("alt", alt)
130051	c.urlParams_.Set("prettyPrint", "false")
130052	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups")
130053	urls += "?" + c.urlParams_.Encode()
130054	req, err := http.NewRequest("GET", urls, body)
130055	if err != nil {
130056		return nil, err
130057	}
130058	req.Header = reqHeaders
130059	googleapi.Expand(req.URL, map[string]string{
130060		"project": c.project,
130061		"region":  c.region,
130062	})
130063	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130064}
130065
130066// Do executes the "compute.regionNetworkEndpointGroups.list" call.
130067// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
130068// Any non-2xx status code is an error. Response headers are in either
130069// *NetworkEndpointGroupList.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 *RegionNetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, 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 := &NetworkEndpointGroupList{
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": "Retrieves the list of regional network endpoint groups available to the specified project in the given region.",
130105	//   "flatPath": "projects/{project}/regions/{region}/networkEndpointGroups",
130106	//   "httpMethod": "GET",
130107	//   "id": "compute.regionNetworkEndpointGroups.list",
130108	//   "parameterOrder": [
130109	//     "project",
130110	//     "region"
130111	//   ],
130112	//   "parameters": {
130113	//     "filter": {
130114	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
130115	//       "location": "query",
130116	//       "type": "string"
130117	//     },
130118	//     "maxResults": {
130119	//       "default": "500",
130120	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
130121	//       "format": "uint32",
130122	//       "location": "query",
130123	//       "minimum": "0",
130124	//       "type": "integer"
130125	//     },
130126	//     "orderBy": {
130127	//       "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.",
130128	//       "location": "query",
130129	//       "type": "string"
130130	//     },
130131	//     "pageToken": {
130132	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
130133	//       "location": "query",
130134	//       "type": "string"
130135	//     },
130136	//     "project": {
130137	//       "description": "Project ID for this request.",
130138	//       "location": "path",
130139	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130140	//       "required": true,
130141	//       "type": "string"
130142	//     },
130143	//     "region": {
130144	//       "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.",
130145	//       "location": "path",
130146	//       "required": true,
130147	//       "type": "string"
130148	//     },
130149	//     "returnPartialSuccess": {
130150	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
130151	//       "location": "query",
130152	//       "type": "boolean"
130153	//     }
130154	//   },
130155	//   "path": "projects/{project}/regions/{region}/networkEndpointGroups",
130156	//   "response": {
130157	//     "$ref": "NetworkEndpointGroupList"
130158	//   },
130159	//   "scopes": [
130160	//     "https://www.googleapis.com/auth/cloud-platform",
130161	//     "https://www.googleapis.com/auth/compute",
130162	//     "https://www.googleapis.com/auth/compute.readonly"
130163	//   ]
130164	// }
130165
130166}
130167
130168// Pages invokes f for each page of results.
130169// A non-nil error returned from f will halt the iteration.
130170// The provided context supersedes any context provided to the Context method.
130171func (c *RegionNetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
130172	c.ctx_ = ctx
130173	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
130174	for {
130175		x, err := c.Do()
130176		if err != nil {
130177			return err
130178		}
130179		if err := f(x); err != nil {
130180			return err
130181		}
130182		if x.NextPageToken == "" {
130183			return nil
130184		}
130185		c.PageToken(x.NextPageToken)
130186	}
130187}
130188
130189// method id "compute.regionNotificationEndpoints.delete":
130190
130191type RegionNotificationEndpointsDeleteCall struct {
130192	s                    *Service
130193	project              string
130194	region               string
130195	notificationEndpoint string
130196	urlParams_           gensupport.URLParams
130197	ctx_                 context.Context
130198	header_              http.Header
130199}
130200
130201// Delete: Deletes the specified NotificationEndpoint in the given
130202// region
130203//
130204// - notificationEndpoint: Name of the NotificationEndpoint resource to
130205//   delete.
130206// - project: Project ID for this request.
130207// - region: Name of the region scoping this request.
130208func (r *RegionNotificationEndpointsService) Delete(project string, region string, notificationEndpoint string) *RegionNotificationEndpointsDeleteCall {
130209	c := &RegionNotificationEndpointsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130210	c.project = project
130211	c.region = region
130212	c.notificationEndpoint = notificationEndpoint
130213	return c
130214}
130215
130216// RequestId sets the optional parameter "requestId": An optional
130217// request ID to identify requests. Specify a unique request ID so that
130218// if you must retry your request, the server will know to ignore the
130219// request if it has already been completed. For example, consider a
130220// situation where you make an initial request and the request times
130221// out. If you make the request again with the same request ID, the
130222// server can check if original operation with the same request ID was
130223// received, and if so, will ignore the second request. This prevents
130224// clients from accidentally creating duplicate commitments. The request
130225// ID must be a valid UUID with the exception that zero UUID is not
130226// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
130227// MixerMutationRequestBuilder
130228func (c *RegionNotificationEndpointsDeleteCall) RequestId(requestId string) *RegionNotificationEndpointsDeleteCall {
130229	c.urlParams_.Set("requestId", requestId)
130230	return c
130231}
130232
130233// Fields allows partial responses to be retrieved. See
130234// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130235// for more information.
130236func (c *RegionNotificationEndpointsDeleteCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsDeleteCall {
130237	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130238	return c
130239}
130240
130241// Context sets the context to be used in this call's Do method. Any
130242// pending HTTP request will be aborted if the provided context is
130243// canceled.
130244func (c *RegionNotificationEndpointsDeleteCall) Context(ctx context.Context) *RegionNotificationEndpointsDeleteCall {
130245	c.ctx_ = ctx
130246	return c
130247}
130248
130249// Header returns an http.Header that can be modified by the caller to
130250// add HTTP headers to the request.
130251func (c *RegionNotificationEndpointsDeleteCall) Header() http.Header {
130252	if c.header_ == nil {
130253		c.header_ = make(http.Header)
130254	}
130255	return c.header_
130256}
130257
130258func (c *RegionNotificationEndpointsDeleteCall) doRequest(alt string) (*http.Response, error) {
130259	reqHeaders := make(http.Header)
130260	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
130261	for k, v := range c.header_ {
130262		reqHeaders[k] = v
130263	}
130264	reqHeaders.Set("User-Agent", c.s.userAgent())
130265	var body io.Reader = nil
130266	c.urlParams_.Set("alt", alt)
130267	c.urlParams_.Set("prettyPrint", "false")
130268	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}")
130269	urls += "?" + c.urlParams_.Encode()
130270	req, err := http.NewRequest("DELETE", urls, body)
130271	if err != nil {
130272		return nil, err
130273	}
130274	req.Header = reqHeaders
130275	googleapi.Expand(req.URL, map[string]string{
130276		"project":              c.project,
130277		"region":               c.region,
130278		"notificationEndpoint": c.notificationEndpoint,
130279	})
130280	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130281}
130282
130283// Do executes the "compute.regionNotificationEndpoints.delete" call.
130284// Exactly one of *Operation or error will be non-nil. Any non-2xx
130285// status code is an error. Response headers are in either
130286// *Operation.ServerResponse.Header or (if a response was returned at
130287// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130288// to check whether the returned error was because
130289// http.StatusNotModified was returned.
130290func (c *RegionNotificationEndpointsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130291	gensupport.SetOptions(c.urlParams_, opts...)
130292	res, err := c.doRequest("json")
130293	if res != nil && res.StatusCode == http.StatusNotModified {
130294		if res.Body != nil {
130295			res.Body.Close()
130296		}
130297		return nil, &googleapi.Error{
130298			Code:   res.StatusCode,
130299			Header: res.Header,
130300		}
130301	}
130302	if err != nil {
130303		return nil, err
130304	}
130305	defer googleapi.CloseBody(res)
130306	if err := googleapi.CheckResponse(res); err != nil {
130307		return nil, err
130308	}
130309	ret := &Operation{
130310		ServerResponse: googleapi.ServerResponse{
130311			Header:         res.Header,
130312			HTTPStatusCode: res.StatusCode,
130313		},
130314	}
130315	target := &ret
130316	if err := gensupport.DecodeResponse(target, res); err != nil {
130317		return nil, err
130318	}
130319	return ret, nil
130320	// {
130321	//   "description": "Deletes the specified NotificationEndpoint in the given region",
130322	//   "flatPath": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}",
130323	//   "httpMethod": "DELETE",
130324	//   "id": "compute.regionNotificationEndpoints.delete",
130325	//   "parameterOrder": [
130326	//     "project",
130327	//     "region",
130328	//     "notificationEndpoint"
130329	//   ],
130330	//   "parameters": {
130331	//     "notificationEndpoint": {
130332	//       "description": "Name of the NotificationEndpoint resource to delete.",
130333	//       "location": "path",
130334	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
130335	//       "required": true,
130336	//       "type": "string"
130337	//     },
130338	//     "project": {
130339	//       "description": "Project ID for this request.",
130340	//       "location": "path",
130341	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130342	//       "required": true,
130343	//       "type": "string"
130344	//     },
130345	//     "region": {
130346	//       "description": "Name of the region scoping this request.",
130347	//       "location": "path",
130348	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130349	//       "required": true,
130350	//       "type": "string"
130351	//     },
130352	//     "requestId": {
130353	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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",
130354	//       "location": "query",
130355	//       "type": "string"
130356	//     }
130357	//   },
130358	//   "path": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}",
130359	//   "response": {
130360	//     "$ref": "Operation"
130361	//   },
130362	//   "scopes": [
130363	//     "https://www.googleapis.com/auth/cloud-platform",
130364	//     "https://www.googleapis.com/auth/compute"
130365	//   ]
130366	// }
130367
130368}
130369
130370// method id "compute.regionNotificationEndpoints.get":
130371
130372type RegionNotificationEndpointsGetCall struct {
130373	s                    *Service
130374	project              string
130375	region               string
130376	notificationEndpoint string
130377	urlParams_           gensupport.URLParams
130378	ifNoneMatch_         string
130379	ctx_                 context.Context
130380	header_              http.Header
130381}
130382
130383// Get: Returns the specified NotificationEndpoint resource in the given
130384// region.
130385//
130386// - notificationEndpoint: Name of the NotificationEndpoint resource to
130387//   return.
130388// - project: Project ID for this request.
130389// - region: Name of the region scoping this request.
130390func (r *RegionNotificationEndpointsService) Get(project string, region string, notificationEndpoint string) *RegionNotificationEndpointsGetCall {
130391	c := &RegionNotificationEndpointsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130392	c.project = project
130393	c.region = region
130394	c.notificationEndpoint = notificationEndpoint
130395	return c
130396}
130397
130398// Fields allows partial responses to be retrieved. See
130399// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130400// for more information.
130401func (c *RegionNotificationEndpointsGetCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsGetCall {
130402	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130403	return c
130404}
130405
130406// IfNoneMatch sets the optional parameter which makes the operation
130407// fail if the object's ETag matches the given value. This is useful for
130408// getting updates only after the object has changed since the last
130409// request. Use googleapi.IsNotModified to check whether the response
130410// error from Do is the result of In-None-Match.
130411func (c *RegionNotificationEndpointsGetCall) IfNoneMatch(entityTag string) *RegionNotificationEndpointsGetCall {
130412	c.ifNoneMatch_ = entityTag
130413	return c
130414}
130415
130416// Context sets the context to be used in this call's Do method. Any
130417// pending HTTP request will be aborted if the provided context is
130418// canceled.
130419func (c *RegionNotificationEndpointsGetCall) Context(ctx context.Context) *RegionNotificationEndpointsGetCall {
130420	c.ctx_ = ctx
130421	return c
130422}
130423
130424// Header returns an http.Header that can be modified by the caller to
130425// add HTTP headers to the request.
130426func (c *RegionNotificationEndpointsGetCall) Header() http.Header {
130427	if c.header_ == nil {
130428		c.header_ = make(http.Header)
130429	}
130430	return c.header_
130431}
130432
130433func (c *RegionNotificationEndpointsGetCall) doRequest(alt string) (*http.Response, error) {
130434	reqHeaders := make(http.Header)
130435	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
130436	for k, v := range c.header_ {
130437		reqHeaders[k] = v
130438	}
130439	reqHeaders.Set("User-Agent", c.s.userAgent())
130440	if c.ifNoneMatch_ != "" {
130441		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
130442	}
130443	var body io.Reader = nil
130444	c.urlParams_.Set("alt", alt)
130445	c.urlParams_.Set("prettyPrint", "false")
130446	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}")
130447	urls += "?" + c.urlParams_.Encode()
130448	req, err := http.NewRequest("GET", urls, body)
130449	if err != nil {
130450		return nil, err
130451	}
130452	req.Header = reqHeaders
130453	googleapi.Expand(req.URL, map[string]string{
130454		"project":              c.project,
130455		"region":               c.region,
130456		"notificationEndpoint": c.notificationEndpoint,
130457	})
130458	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130459}
130460
130461// Do executes the "compute.regionNotificationEndpoints.get" call.
130462// Exactly one of *NotificationEndpoint or error will be non-nil. Any
130463// non-2xx status code is an error. Response headers are in either
130464// *NotificationEndpoint.ServerResponse.Header or (if a response was
130465// returned at all) in error.(*googleapi.Error).Header. Use
130466// googleapi.IsNotModified to check whether the returned error was
130467// because http.StatusNotModified was returned.
130468func (c *RegionNotificationEndpointsGetCall) Do(opts ...googleapi.CallOption) (*NotificationEndpoint, error) {
130469	gensupport.SetOptions(c.urlParams_, opts...)
130470	res, err := c.doRequest("json")
130471	if res != nil && res.StatusCode == http.StatusNotModified {
130472		if res.Body != nil {
130473			res.Body.Close()
130474		}
130475		return nil, &googleapi.Error{
130476			Code:   res.StatusCode,
130477			Header: res.Header,
130478		}
130479	}
130480	if err != nil {
130481		return nil, err
130482	}
130483	defer googleapi.CloseBody(res)
130484	if err := googleapi.CheckResponse(res); err != nil {
130485		return nil, err
130486	}
130487	ret := &NotificationEndpoint{
130488		ServerResponse: googleapi.ServerResponse{
130489			Header:         res.Header,
130490			HTTPStatusCode: res.StatusCode,
130491		},
130492	}
130493	target := &ret
130494	if err := gensupport.DecodeResponse(target, res); err != nil {
130495		return nil, err
130496	}
130497	return ret, nil
130498	// {
130499	//   "description": "Returns the specified NotificationEndpoint resource in the given region.",
130500	//   "flatPath": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}",
130501	//   "httpMethod": "GET",
130502	//   "id": "compute.regionNotificationEndpoints.get",
130503	//   "parameterOrder": [
130504	//     "project",
130505	//     "region",
130506	//     "notificationEndpoint"
130507	//   ],
130508	//   "parameters": {
130509	//     "notificationEndpoint": {
130510	//       "description": "Name of the NotificationEndpoint resource to return.",
130511	//       "location": "path",
130512	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
130513	//       "required": true,
130514	//       "type": "string"
130515	//     },
130516	//     "project": {
130517	//       "description": "Project ID for this request.",
130518	//       "location": "path",
130519	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130520	//       "required": true,
130521	//       "type": "string"
130522	//     },
130523	//     "region": {
130524	//       "description": "Name of the region scoping this request.",
130525	//       "location": "path",
130526	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130527	//       "required": true,
130528	//       "type": "string"
130529	//     }
130530	//   },
130531	//   "path": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}",
130532	//   "response": {
130533	//     "$ref": "NotificationEndpoint"
130534	//   },
130535	//   "scopes": [
130536	//     "https://www.googleapis.com/auth/cloud-platform",
130537	//     "https://www.googleapis.com/auth/compute",
130538	//     "https://www.googleapis.com/auth/compute.readonly"
130539	//   ]
130540	// }
130541
130542}
130543
130544// method id "compute.regionNotificationEndpoints.insert":
130545
130546type RegionNotificationEndpointsInsertCall struct {
130547	s                    *Service
130548	project              string
130549	region               string
130550	notificationendpoint *NotificationEndpoint
130551	urlParams_           gensupport.URLParams
130552	ctx_                 context.Context
130553	header_              http.Header
130554}
130555
130556// Insert: Create a NotificationEndpoint in the specified project in the
130557// given region using the parameters that are included in the request.
130558//
130559// - project: Project ID for this request.
130560// - region: Name of the region scoping this request.
130561func (r *RegionNotificationEndpointsService) Insert(project string, region string, notificationendpoint *NotificationEndpoint) *RegionNotificationEndpointsInsertCall {
130562	c := &RegionNotificationEndpointsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130563	c.project = project
130564	c.region = region
130565	c.notificationendpoint = notificationendpoint
130566	return c
130567}
130568
130569// RequestId sets the optional parameter "requestId": An optional
130570// request ID to identify requests. Specify a unique request ID so that
130571// if you must retry your request, the server will know to ignore the
130572// request if it has already been completed. For example, consider a
130573// situation where you make an initial request and the request times
130574// out. If you make the request again with the same request ID, the
130575// server can check if original operation with the same request ID was
130576// received, and if so, will ignore the second request. This prevents
130577// clients from accidentally creating duplicate commitments. The request
130578// ID must be a valid UUID with the exception that zero UUID is not
130579// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
130580// MixerMutationRequestBuilder
130581func (c *RegionNotificationEndpointsInsertCall) RequestId(requestId string) *RegionNotificationEndpointsInsertCall {
130582	c.urlParams_.Set("requestId", requestId)
130583	return c
130584}
130585
130586// Fields allows partial responses to be retrieved. See
130587// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130588// for more information.
130589func (c *RegionNotificationEndpointsInsertCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsInsertCall {
130590	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130591	return c
130592}
130593
130594// Context sets the context to be used in this call's Do method. Any
130595// pending HTTP request will be aborted if the provided context is
130596// canceled.
130597func (c *RegionNotificationEndpointsInsertCall) Context(ctx context.Context) *RegionNotificationEndpointsInsertCall {
130598	c.ctx_ = ctx
130599	return c
130600}
130601
130602// Header returns an http.Header that can be modified by the caller to
130603// add HTTP headers to the request.
130604func (c *RegionNotificationEndpointsInsertCall) Header() http.Header {
130605	if c.header_ == nil {
130606		c.header_ = make(http.Header)
130607	}
130608	return c.header_
130609}
130610
130611func (c *RegionNotificationEndpointsInsertCall) doRequest(alt string) (*http.Response, error) {
130612	reqHeaders := make(http.Header)
130613	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
130614	for k, v := range c.header_ {
130615		reqHeaders[k] = v
130616	}
130617	reqHeaders.Set("User-Agent", c.s.userAgent())
130618	var body io.Reader = nil
130619	body, err := googleapi.WithoutDataWrapper.JSONReader(c.notificationendpoint)
130620	if err != nil {
130621		return nil, err
130622	}
130623	reqHeaders.Set("Content-Type", "application/json")
130624	c.urlParams_.Set("alt", alt)
130625	c.urlParams_.Set("prettyPrint", "false")
130626	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints")
130627	urls += "?" + c.urlParams_.Encode()
130628	req, err := http.NewRequest("POST", urls, body)
130629	if err != nil {
130630		return nil, err
130631	}
130632	req.Header = reqHeaders
130633	googleapi.Expand(req.URL, map[string]string{
130634		"project": c.project,
130635		"region":  c.region,
130636	})
130637	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130638}
130639
130640// Do executes the "compute.regionNotificationEndpoints.insert" call.
130641// Exactly one of *Operation or error will be non-nil. Any non-2xx
130642// status code is an error. Response headers are in either
130643// *Operation.ServerResponse.Header or (if a response was returned at
130644// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130645// to check whether the returned error was because
130646// http.StatusNotModified was returned.
130647func (c *RegionNotificationEndpointsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130648	gensupport.SetOptions(c.urlParams_, opts...)
130649	res, err := c.doRequest("json")
130650	if res != nil && res.StatusCode == http.StatusNotModified {
130651		if res.Body != nil {
130652			res.Body.Close()
130653		}
130654		return nil, &googleapi.Error{
130655			Code:   res.StatusCode,
130656			Header: res.Header,
130657		}
130658	}
130659	if err != nil {
130660		return nil, err
130661	}
130662	defer googleapi.CloseBody(res)
130663	if err := googleapi.CheckResponse(res); err != nil {
130664		return nil, err
130665	}
130666	ret := &Operation{
130667		ServerResponse: googleapi.ServerResponse{
130668			Header:         res.Header,
130669			HTTPStatusCode: res.StatusCode,
130670		},
130671	}
130672	target := &ret
130673	if err := gensupport.DecodeResponse(target, res); err != nil {
130674		return nil, err
130675	}
130676	return ret, nil
130677	// {
130678	//   "description": "Create a NotificationEndpoint in the specified project in the given region using the parameters that are included in the request.",
130679	//   "flatPath": "projects/{project}/regions/{region}/notificationEndpoints",
130680	//   "httpMethod": "POST",
130681	//   "id": "compute.regionNotificationEndpoints.insert",
130682	//   "parameterOrder": [
130683	//     "project",
130684	//     "region"
130685	//   ],
130686	//   "parameters": {
130687	//     "project": {
130688	//       "description": "Project ID for this request.",
130689	//       "location": "path",
130690	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130691	//       "required": true,
130692	//       "type": "string"
130693	//     },
130694	//     "region": {
130695	//       "description": "Name of the region scoping this request.",
130696	//       "location": "path",
130697	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130698	//       "required": true,
130699	//       "type": "string"
130700	//     },
130701	//     "requestId": {
130702	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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",
130703	//       "location": "query",
130704	//       "type": "string"
130705	//     }
130706	//   },
130707	//   "path": "projects/{project}/regions/{region}/notificationEndpoints",
130708	//   "request": {
130709	//     "$ref": "NotificationEndpoint"
130710	//   },
130711	//   "response": {
130712	//     "$ref": "Operation"
130713	//   },
130714	//   "scopes": [
130715	//     "https://www.googleapis.com/auth/cloud-platform",
130716	//     "https://www.googleapis.com/auth/compute"
130717	//   ]
130718	// }
130719
130720}
130721
130722// method id "compute.regionNotificationEndpoints.list":
130723
130724type RegionNotificationEndpointsListCall struct {
130725	s            *Service
130726	project      string
130727	region       string
130728	urlParams_   gensupport.URLParams
130729	ifNoneMatch_ string
130730	ctx_         context.Context
130731	header_      http.Header
130732}
130733
130734// List: Lists the NotificationEndpoints for a project in the given
130735// region.
130736//
130737// - project: Project ID for this request.
130738// - region: Name of the region scoping this request.
130739func (r *RegionNotificationEndpointsService) List(project string, region string) *RegionNotificationEndpointsListCall {
130740	c := &RegionNotificationEndpointsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130741	c.project = project
130742	c.region = region
130743	return c
130744}
130745
130746// Filter sets the optional parameter "filter": A filter expression that
130747// filters resources listed in the response. The expression must specify
130748// the field name, a comparison operator, and the value that you want to
130749// use for filtering. The value must be a string, a number, or a
130750// boolean. The comparison operator must be either `=`, `!=`, `>`, or
130751// `<`. For example, if you are filtering Compute Engine instances, you
130752// can exclude instances named `example-instance` by specifying `name !=
130753// example-instance`. You can also filter nested fields. For example,
130754// you could specify `scheduling.automaticRestart = false` to include
130755// instances only if they are not scheduled for automatic restarts. You
130756// can use filtering on nested fields to filter based on resource
130757// labels. To filter on multiple expressions, provide each separate
130758// expression within parentheses. For example: ```
130759// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
130760// ``` By default, each expression is an `AND` expression. However, you
130761// can include `AND` and `OR` expressions explicitly. For example: ```
130762// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
130763// AND (scheduling.automaticRestart = true) ```
130764func (c *RegionNotificationEndpointsListCall) Filter(filter string) *RegionNotificationEndpointsListCall {
130765	c.urlParams_.Set("filter", filter)
130766	return c
130767}
130768
130769// MaxResults sets the optional parameter "maxResults": The maximum
130770// number of results per page that should be returned. If the number of
130771// available results is larger than `maxResults`, Compute Engine returns
130772// a `nextPageToken` that can be used to get the next page of results in
130773// subsequent list requests. Acceptable values are `0` to `500`,
130774// inclusive. (Default: `500`)
130775func (c *RegionNotificationEndpointsListCall) MaxResults(maxResults int64) *RegionNotificationEndpointsListCall {
130776	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
130777	return c
130778}
130779
130780// OrderBy sets the optional parameter "orderBy": Sorts list results by
130781// a certain order. By default, results are returned in alphanumerical
130782// order based on the resource name. You can also sort results in
130783// descending order based on the creation timestamp using
130784// `orderBy="creationTimestamp desc". This sorts results based on the
130785// `creationTimestamp` field in reverse chronological order (newest
130786// result first). Use this to sort resources like operations so that the
130787// newest operation is returned first. Currently, only sorting by `name`
130788// or `creationTimestamp desc` is supported.
130789func (c *RegionNotificationEndpointsListCall) OrderBy(orderBy string) *RegionNotificationEndpointsListCall {
130790	c.urlParams_.Set("orderBy", orderBy)
130791	return c
130792}
130793
130794// PageToken sets the optional parameter "pageToken": Specifies a page
130795// token to use. Set `pageToken` to the `nextPageToken` returned by a
130796// previous list request to get the next page of results.
130797func (c *RegionNotificationEndpointsListCall) PageToken(pageToken string) *RegionNotificationEndpointsListCall {
130798	c.urlParams_.Set("pageToken", pageToken)
130799	return c
130800}
130801
130802// ReturnPartialSuccess sets the optional parameter
130803// "returnPartialSuccess": Opt-in for partial success behavior which
130804// provides partial results in case of failure. The default value is
130805// false.
130806func (c *RegionNotificationEndpointsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionNotificationEndpointsListCall {
130807	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
130808	return c
130809}
130810
130811// Fields allows partial responses to be retrieved. See
130812// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130813// for more information.
130814func (c *RegionNotificationEndpointsListCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsListCall {
130815	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130816	return c
130817}
130818
130819// IfNoneMatch sets the optional parameter which makes the operation
130820// fail if the object's ETag matches the given value. This is useful for
130821// getting updates only after the object has changed since the last
130822// request. Use googleapi.IsNotModified to check whether the response
130823// error from Do is the result of In-None-Match.
130824func (c *RegionNotificationEndpointsListCall) IfNoneMatch(entityTag string) *RegionNotificationEndpointsListCall {
130825	c.ifNoneMatch_ = entityTag
130826	return c
130827}
130828
130829// Context sets the context to be used in this call's Do method. Any
130830// pending HTTP request will be aborted if the provided context is
130831// canceled.
130832func (c *RegionNotificationEndpointsListCall) Context(ctx context.Context) *RegionNotificationEndpointsListCall {
130833	c.ctx_ = ctx
130834	return c
130835}
130836
130837// Header returns an http.Header that can be modified by the caller to
130838// add HTTP headers to the request.
130839func (c *RegionNotificationEndpointsListCall) Header() http.Header {
130840	if c.header_ == nil {
130841		c.header_ = make(http.Header)
130842	}
130843	return c.header_
130844}
130845
130846func (c *RegionNotificationEndpointsListCall) doRequest(alt string) (*http.Response, error) {
130847	reqHeaders := make(http.Header)
130848	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
130849	for k, v := range c.header_ {
130850		reqHeaders[k] = v
130851	}
130852	reqHeaders.Set("User-Agent", c.s.userAgent())
130853	if c.ifNoneMatch_ != "" {
130854		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
130855	}
130856	var body io.Reader = nil
130857	c.urlParams_.Set("alt", alt)
130858	c.urlParams_.Set("prettyPrint", "false")
130859	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints")
130860	urls += "?" + c.urlParams_.Encode()
130861	req, err := http.NewRequest("GET", urls, body)
130862	if err != nil {
130863		return nil, err
130864	}
130865	req.Header = reqHeaders
130866	googleapi.Expand(req.URL, map[string]string{
130867		"project": c.project,
130868		"region":  c.region,
130869	})
130870	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130871}
130872
130873// Do executes the "compute.regionNotificationEndpoints.list" call.
130874// Exactly one of *NotificationEndpointList or error will be non-nil.
130875// Any non-2xx status code is an error. Response headers are in either
130876// *NotificationEndpointList.ServerResponse.Header or (if a response was
130877// returned at all) in error.(*googleapi.Error).Header. Use
130878// googleapi.IsNotModified to check whether the returned error was
130879// because http.StatusNotModified was returned.
130880func (c *RegionNotificationEndpointsListCall) Do(opts ...googleapi.CallOption) (*NotificationEndpointList, error) {
130881	gensupport.SetOptions(c.urlParams_, opts...)
130882	res, err := c.doRequest("json")
130883	if res != nil && res.StatusCode == http.StatusNotModified {
130884		if res.Body != nil {
130885			res.Body.Close()
130886		}
130887		return nil, &googleapi.Error{
130888			Code:   res.StatusCode,
130889			Header: res.Header,
130890		}
130891	}
130892	if err != nil {
130893		return nil, err
130894	}
130895	defer googleapi.CloseBody(res)
130896	if err := googleapi.CheckResponse(res); err != nil {
130897		return nil, err
130898	}
130899	ret := &NotificationEndpointList{
130900		ServerResponse: googleapi.ServerResponse{
130901			Header:         res.Header,
130902			HTTPStatusCode: res.StatusCode,
130903		},
130904	}
130905	target := &ret
130906	if err := gensupport.DecodeResponse(target, res); err != nil {
130907		return nil, err
130908	}
130909	return ret, nil
130910	// {
130911	//   "description": "Lists the NotificationEndpoints for a project in the given region.",
130912	//   "flatPath": "projects/{project}/regions/{region}/notificationEndpoints",
130913	//   "httpMethod": "GET",
130914	//   "id": "compute.regionNotificationEndpoints.list",
130915	//   "parameterOrder": [
130916	//     "project",
130917	//     "region"
130918	//   ],
130919	//   "parameters": {
130920	//     "filter": {
130921	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
130922	//       "location": "query",
130923	//       "type": "string"
130924	//     },
130925	//     "maxResults": {
130926	//       "default": "500",
130927	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
130928	//       "format": "uint32",
130929	//       "location": "query",
130930	//       "minimum": "0",
130931	//       "type": "integer"
130932	//     },
130933	//     "orderBy": {
130934	//       "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.",
130935	//       "location": "query",
130936	//       "type": "string"
130937	//     },
130938	//     "pageToken": {
130939	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
130940	//       "location": "query",
130941	//       "type": "string"
130942	//     },
130943	//     "project": {
130944	//       "description": "Project ID for this request.",
130945	//       "location": "path",
130946	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130947	//       "required": true,
130948	//       "type": "string"
130949	//     },
130950	//     "region": {
130951	//       "description": "Name of the region scoping this request.",
130952	//       "location": "path",
130953	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130954	//       "required": true,
130955	//       "type": "string"
130956	//     },
130957	//     "returnPartialSuccess": {
130958	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
130959	//       "location": "query",
130960	//       "type": "boolean"
130961	//     }
130962	//   },
130963	//   "path": "projects/{project}/regions/{region}/notificationEndpoints",
130964	//   "response": {
130965	//     "$ref": "NotificationEndpointList"
130966	//   },
130967	//   "scopes": [
130968	//     "https://www.googleapis.com/auth/cloud-platform",
130969	//     "https://www.googleapis.com/auth/compute",
130970	//     "https://www.googleapis.com/auth/compute.readonly"
130971	//   ]
130972	// }
130973
130974}
130975
130976// Pages invokes f for each page of results.
130977// A non-nil error returned from f will halt the iteration.
130978// The provided context supersedes any context provided to the Context method.
130979func (c *RegionNotificationEndpointsListCall) Pages(ctx context.Context, f func(*NotificationEndpointList) error) error {
130980	c.ctx_ = ctx
130981	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
130982	for {
130983		x, err := c.Do()
130984		if err != nil {
130985			return err
130986		}
130987		if err := f(x); err != nil {
130988			return err
130989		}
130990		if x.NextPageToken == "" {
130991			return nil
130992		}
130993		c.PageToken(x.NextPageToken)
130994	}
130995}
130996
130997// method id "compute.regionOperations.delete":
130998
130999type RegionOperationsDeleteCall struct {
131000	s          *Service
131001	project    string
131002	region     string
131003	operation  string
131004	urlParams_ gensupport.URLParams
131005	ctx_       context.Context
131006	header_    http.Header
131007}
131008
131009// Delete: Deletes the specified region-specific Operations resource.
131010//
131011// - operation: Name of the Operations resource to delete.
131012// - project: Project ID for this request.
131013// - region: Name of the region for this request.
131014func (r *RegionOperationsService) Delete(project string, region string, operation string) *RegionOperationsDeleteCall {
131015	c := &RegionOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131016	c.project = project
131017	c.region = region
131018	c.operation = operation
131019	return c
131020}
131021
131022// Fields allows partial responses to be retrieved. See
131023// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131024// for more information.
131025func (c *RegionOperationsDeleteCall) Fields(s ...googleapi.Field) *RegionOperationsDeleteCall {
131026	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131027	return c
131028}
131029
131030// Context sets the context to be used in this call's Do method. Any
131031// pending HTTP request will be aborted if the provided context is
131032// canceled.
131033func (c *RegionOperationsDeleteCall) Context(ctx context.Context) *RegionOperationsDeleteCall {
131034	c.ctx_ = ctx
131035	return c
131036}
131037
131038// Header returns an http.Header that can be modified by the caller to
131039// add HTTP headers to the request.
131040func (c *RegionOperationsDeleteCall) Header() http.Header {
131041	if c.header_ == nil {
131042		c.header_ = make(http.Header)
131043	}
131044	return c.header_
131045}
131046
131047func (c *RegionOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
131048	reqHeaders := make(http.Header)
131049	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
131050	for k, v := range c.header_ {
131051		reqHeaders[k] = v
131052	}
131053	reqHeaders.Set("User-Agent", c.s.userAgent())
131054	var body io.Reader = nil
131055	c.urlParams_.Set("alt", alt)
131056	c.urlParams_.Set("prettyPrint", "false")
131057	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/operations/{operation}")
131058	urls += "?" + c.urlParams_.Encode()
131059	req, err := http.NewRequest("DELETE", urls, body)
131060	if err != nil {
131061		return nil, err
131062	}
131063	req.Header = reqHeaders
131064	googleapi.Expand(req.URL, map[string]string{
131065		"project":   c.project,
131066		"region":    c.region,
131067		"operation": c.operation,
131068	})
131069	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131070}
131071
131072// Do executes the "compute.regionOperations.delete" call.
131073func (c *RegionOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
131074	gensupport.SetOptions(c.urlParams_, opts...)
131075	res, err := c.doRequest("json")
131076	if err != nil {
131077		return err
131078	}
131079	defer googleapi.CloseBody(res)
131080	if err := googleapi.CheckResponse(res); err != nil {
131081		return err
131082	}
131083	return nil
131084	// {
131085	//   "description": "Deletes the specified region-specific Operations resource.",
131086	//   "flatPath": "projects/{project}/regions/{region}/operations/{operation}",
131087	//   "httpMethod": "DELETE",
131088	//   "id": "compute.regionOperations.delete",
131089	//   "parameterOrder": [
131090	//     "project",
131091	//     "region",
131092	//     "operation"
131093	//   ],
131094	//   "parameters": {
131095	//     "operation": {
131096	//       "description": "Name of the Operations resource to delete.",
131097	//       "location": "path",
131098	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
131099	//       "required": true,
131100	//       "type": "string"
131101	//     },
131102	//     "project": {
131103	//       "description": "Project ID for this request.",
131104	//       "location": "path",
131105	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131106	//       "required": true,
131107	//       "type": "string"
131108	//     },
131109	//     "region": {
131110	//       "description": "Name of the region for this request.",
131111	//       "location": "path",
131112	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131113	//       "required": true,
131114	//       "type": "string"
131115	//     }
131116	//   },
131117	//   "path": "projects/{project}/regions/{region}/operations/{operation}",
131118	//   "scopes": [
131119	//     "https://www.googleapis.com/auth/cloud-platform",
131120	//     "https://www.googleapis.com/auth/compute"
131121	//   ]
131122	// }
131123
131124}
131125
131126// method id "compute.regionOperations.get":
131127
131128type RegionOperationsGetCall struct {
131129	s            *Service
131130	project      string
131131	region       string
131132	operation    string
131133	urlParams_   gensupport.URLParams
131134	ifNoneMatch_ string
131135	ctx_         context.Context
131136	header_      http.Header
131137}
131138
131139// Get: Retrieves the specified region-specific Operations resource.
131140//
131141// - operation: Name of the Operations resource to return.
131142// - project: Project ID for this request.
131143// - region: Name of the region for this request.
131144func (r *RegionOperationsService) Get(project string, region string, operation string) *RegionOperationsGetCall {
131145	c := &RegionOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131146	c.project = project
131147	c.region = region
131148	c.operation = operation
131149	return c
131150}
131151
131152// Fields allows partial responses to be retrieved. See
131153// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131154// for more information.
131155func (c *RegionOperationsGetCall) Fields(s ...googleapi.Field) *RegionOperationsGetCall {
131156	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131157	return c
131158}
131159
131160// IfNoneMatch sets the optional parameter which makes the operation
131161// fail if the object's ETag matches the given value. This is useful for
131162// getting updates only after the object has changed since the last
131163// request. Use googleapi.IsNotModified to check whether the response
131164// error from Do is the result of In-None-Match.
131165func (c *RegionOperationsGetCall) IfNoneMatch(entityTag string) *RegionOperationsGetCall {
131166	c.ifNoneMatch_ = entityTag
131167	return c
131168}
131169
131170// Context sets the context to be used in this call's Do method. Any
131171// pending HTTP request will be aborted if the provided context is
131172// canceled.
131173func (c *RegionOperationsGetCall) Context(ctx context.Context) *RegionOperationsGetCall {
131174	c.ctx_ = ctx
131175	return c
131176}
131177
131178// Header returns an http.Header that can be modified by the caller to
131179// add HTTP headers to the request.
131180func (c *RegionOperationsGetCall) Header() http.Header {
131181	if c.header_ == nil {
131182		c.header_ = make(http.Header)
131183	}
131184	return c.header_
131185}
131186
131187func (c *RegionOperationsGetCall) doRequest(alt string) (*http.Response, error) {
131188	reqHeaders := make(http.Header)
131189	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
131190	for k, v := range c.header_ {
131191		reqHeaders[k] = v
131192	}
131193	reqHeaders.Set("User-Agent", c.s.userAgent())
131194	if c.ifNoneMatch_ != "" {
131195		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
131196	}
131197	var body io.Reader = nil
131198	c.urlParams_.Set("alt", alt)
131199	c.urlParams_.Set("prettyPrint", "false")
131200	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/operations/{operation}")
131201	urls += "?" + c.urlParams_.Encode()
131202	req, err := http.NewRequest("GET", urls, body)
131203	if err != nil {
131204		return nil, err
131205	}
131206	req.Header = reqHeaders
131207	googleapi.Expand(req.URL, map[string]string{
131208		"project":   c.project,
131209		"region":    c.region,
131210		"operation": c.operation,
131211	})
131212	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131213}
131214
131215// Do executes the "compute.regionOperations.get" call.
131216// Exactly one of *Operation or error will be non-nil. Any non-2xx
131217// status code is an error. Response headers are in either
131218// *Operation.ServerResponse.Header or (if a response was returned at
131219// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131220// to check whether the returned error was because
131221// http.StatusNotModified was returned.
131222func (c *RegionOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
131223	gensupport.SetOptions(c.urlParams_, opts...)
131224	res, err := c.doRequest("json")
131225	if res != nil && res.StatusCode == http.StatusNotModified {
131226		if res.Body != nil {
131227			res.Body.Close()
131228		}
131229		return nil, &googleapi.Error{
131230			Code:   res.StatusCode,
131231			Header: res.Header,
131232		}
131233	}
131234	if err != nil {
131235		return nil, err
131236	}
131237	defer googleapi.CloseBody(res)
131238	if err := googleapi.CheckResponse(res); err != nil {
131239		return nil, err
131240	}
131241	ret := &Operation{
131242		ServerResponse: googleapi.ServerResponse{
131243			Header:         res.Header,
131244			HTTPStatusCode: res.StatusCode,
131245		},
131246	}
131247	target := &ret
131248	if err := gensupport.DecodeResponse(target, res); err != nil {
131249		return nil, err
131250	}
131251	return ret, nil
131252	// {
131253	//   "description": "Retrieves the specified region-specific Operations resource.",
131254	//   "flatPath": "projects/{project}/regions/{region}/operations/{operation}",
131255	//   "httpMethod": "GET",
131256	//   "id": "compute.regionOperations.get",
131257	//   "parameterOrder": [
131258	//     "project",
131259	//     "region",
131260	//     "operation"
131261	//   ],
131262	//   "parameters": {
131263	//     "operation": {
131264	//       "description": "Name of the Operations resource to return.",
131265	//       "location": "path",
131266	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
131267	//       "required": true,
131268	//       "type": "string"
131269	//     },
131270	//     "project": {
131271	//       "description": "Project ID for this request.",
131272	//       "location": "path",
131273	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131274	//       "required": true,
131275	//       "type": "string"
131276	//     },
131277	//     "region": {
131278	//       "description": "Name of the region for this request.",
131279	//       "location": "path",
131280	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131281	//       "required": true,
131282	//       "type": "string"
131283	//     }
131284	//   },
131285	//   "path": "projects/{project}/regions/{region}/operations/{operation}",
131286	//   "response": {
131287	//     "$ref": "Operation"
131288	//   },
131289	//   "scopes": [
131290	//     "https://www.googleapis.com/auth/cloud-platform",
131291	//     "https://www.googleapis.com/auth/compute",
131292	//     "https://www.googleapis.com/auth/compute.readonly"
131293	//   ]
131294	// }
131295
131296}
131297
131298// method id "compute.regionOperations.list":
131299
131300type RegionOperationsListCall struct {
131301	s            *Service
131302	project      string
131303	region       string
131304	urlParams_   gensupport.URLParams
131305	ifNoneMatch_ string
131306	ctx_         context.Context
131307	header_      http.Header
131308}
131309
131310// List: Retrieves a list of Operation resources contained within the
131311// specified region.
131312//
131313// - project: Project ID for this request.
131314// - region: Name of the region for this request.
131315func (r *RegionOperationsService) List(project string, region string) *RegionOperationsListCall {
131316	c := &RegionOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131317	c.project = project
131318	c.region = region
131319	return c
131320}
131321
131322// Filter sets the optional parameter "filter": A filter expression that
131323// filters resources listed in the response. The expression must specify
131324// the field name, a comparison operator, and the value that you want to
131325// use for filtering. The value must be a string, a number, or a
131326// boolean. The comparison operator must be either `=`, `!=`, `>`, or
131327// `<`. For example, if you are filtering Compute Engine instances, you
131328// can exclude instances named `example-instance` by specifying `name !=
131329// example-instance`. You can also filter nested fields. For example,
131330// you could specify `scheduling.automaticRestart = false` to include
131331// instances only if they are not scheduled for automatic restarts. You
131332// can use filtering on nested fields to filter based on resource
131333// labels. To filter on multiple expressions, provide each separate
131334// expression within parentheses. For example: ```
131335// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
131336// ``` By default, each expression is an `AND` expression. However, you
131337// can include `AND` and `OR` expressions explicitly. For example: ```
131338// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
131339// AND (scheduling.automaticRestart = true) ```
131340func (c *RegionOperationsListCall) Filter(filter string) *RegionOperationsListCall {
131341	c.urlParams_.Set("filter", filter)
131342	return c
131343}
131344
131345// MaxResults sets the optional parameter "maxResults": The maximum
131346// number of results per page that should be returned. If the number of
131347// available results is larger than `maxResults`, Compute Engine returns
131348// a `nextPageToken` that can be used to get the next page of results in
131349// subsequent list requests. Acceptable values are `0` to `500`,
131350// inclusive. (Default: `500`)
131351func (c *RegionOperationsListCall) MaxResults(maxResults int64) *RegionOperationsListCall {
131352	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
131353	return c
131354}
131355
131356// OrderBy sets the optional parameter "orderBy": Sorts list results by
131357// a certain order. By default, results are returned in alphanumerical
131358// order based on the resource name. You can also sort results in
131359// descending order based on the creation timestamp using
131360// `orderBy="creationTimestamp desc". This sorts results based on the
131361// `creationTimestamp` field in reverse chronological order (newest
131362// result first). Use this to sort resources like operations so that the
131363// newest operation is returned first. Currently, only sorting by `name`
131364// or `creationTimestamp desc` is supported.
131365func (c *RegionOperationsListCall) OrderBy(orderBy string) *RegionOperationsListCall {
131366	c.urlParams_.Set("orderBy", orderBy)
131367	return c
131368}
131369
131370// PageToken sets the optional parameter "pageToken": Specifies a page
131371// token to use. Set `pageToken` to the `nextPageToken` returned by a
131372// previous list request to get the next page of results.
131373func (c *RegionOperationsListCall) PageToken(pageToken string) *RegionOperationsListCall {
131374	c.urlParams_.Set("pageToken", pageToken)
131375	return c
131376}
131377
131378// ReturnPartialSuccess sets the optional parameter
131379// "returnPartialSuccess": Opt-in for partial success behavior which
131380// provides partial results in case of failure. The default value is
131381// false.
131382func (c *RegionOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionOperationsListCall {
131383	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
131384	return c
131385}
131386
131387// Fields allows partial responses to be retrieved. See
131388// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131389// for more information.
131390func (c *RegionOperationsListCall) Fields(s ...googleapi.Field) *RegionOperationsListCall {
131391	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131392	return c
131393}
131394
131395// IfNoneMatch sets the optional parameter which makes the operation
131396// fail if the object's ETag matches the given value. This is useful for
131397// getting updates only after the object has changed since the last
131398// request. Use googleapi.IsNotModified to check whether the response
131399// error from Do is the result of In-None-Match.
131400func (c *RegionOperationsListCall) IfNoneMatch(entityTag string) *RegionOperationsListCall {
131401	c.ifNoneMatch_ = entityTag
131402	return c
131403}
131404
131405// Context sets the context to be used in this call's Do method. Any
131406// pending HTTP request will be aborted if the provided context is
131407// canceled.
131408func (c *RegionOperationsListCall) Context(ctx context.Context) *RegionOperationsListCall {
131409	c.ctx_ = ctx
131410	return c
131411}
131412
131413// Header returns an http.Header that can be modified by the caller to
131414// add HTTP headers to the request.
131415func (c *RegionOperationsListCall) Header() http.Header {
131416	if c.header_ == nil {
131417		c.header_ = make(http.Header)
131418	}
131419	return c.header_
131420}
131421
131422func (c *RegionOperationsListCall) doRequest(alt string) (*http.Response, error) {
131423	reqHeaders := make(http.Header)
131424	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
131425	for k, v := range c.header_ {
131426		reqHeaders[k] = v
131427	}
131428	reqHeaders.Set("User-Agent", c.s.userAgent())
131429	if c.ifNoneMatch_ != "" {
131430		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
131431	}
131432	var body io.Reader = nil
131433	c.urlParams_.Set("alt", alt)
131434	c.urlParams_.Set("prettyPrint", "false")
131435	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/operations")
131436	urls += "?" + c.urlParams_.Encode()
131437	req, err := http.NewRequest("GET", urls, body)
131438	if err != nil {
131439		return nil, err
131440	}
131441	req.Header = reqHeaders
131442	googleapi.Expand(req.URL, map[string]string{
131443		"project": c.project,
131444		"region":  c.region,
131445	})
131446	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131447}
131448
131449// Do executes the "compute.regionOperations.list" call.
131450// Exactly one of *OperationList or error will be non-nil. Any non-2xx
131451// status code is an error. Response headers are in either
131452// *OperationList.ServerResponse.Header or (if a response was returned
131453// at all) in error.(*googleapi.Error).Header. Use
131454// googleapi.IsNotModified to check whether the returned error was
131455// because http.StatusNotModified was returned.
131456func (c *RegionOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
131457	gensupport.SetOptions(c.urlParams_, opts...)
131458	res, err := c.doRequest("json")
131459	if res != nil && res.StatusCode == http.StatusNotModified {
131460		if res.Body != nil {
131461			res.Body.Close()
131462		}
131463		return nil, &googleapi.Error{
131464			Code:   res.StatusCode,
131465			Header: res.Header,
131466		}
131467	}
131468	if err != nil {
131469		return nil, err
131470	}
131471	defer googleapi.CloseBody(res)
131472	if err := googleapi.CheckResponse(res); err != nil {
131473		return nil, err
131474	}
131475	ret := &OperationList{
131476		ServerResponse: googleapi.ServerResponse{
131477			Header:         res.Header,
131478			HTTPStatusCode: res.StatusCode,
131479		},
131480	}
131481	target := &ret
131482	if err := gensupport.DecodeResponse(target, res); err != nil {
131483		return nil, err
131484	}
131485	return ret, nil
131486	// {
131487	//   "description": "Retrieves a list of Operation resources contained within the specified region.",
131488	//   "flatPath": "projects/{project}/regions/{region}/operations",
131489	//   "httpMethod": "GET",
131490	//   "id": "compute.regionOperations.list",
131491	//   "parameterOrder": [
131492	//     "project",
131493	//     "region"
131494	//   ],
131495	//   "parameters": {
131496	//     "filter": {
131497	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
131498	//       "location": "query",
131499	//       "type": "string"
131500	//     },
131501	//     "maxResults": {
131502	//       "default": "500",
131503	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
131504	//       "format": "uint32",
131505	//       "location": "query",
131506	//       "minimum": "0",
131507	//       "type": "integer"
131508	//     },
131509	//     "orderBy": {
131510	//       "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.",
131511	//       "location": "query",
131512	//       "type": "string"
131513	//     },
131514	//     "pageToken": {
131515	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
131516	//       "location": "query",
131517	//       "type": "string"
131518	//     },
131519	//     "project": {
131520	//       "description": "Project ID for this request.",
131521	//       "location": "path",
131522	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131523	//       "required": true,
131524	//       "type": "string"
131525	//     },
131526	//     "region": {
131527	//       "description": "Name of the region for this request.",
131528	//       "location": "path",
131529	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131530	//       "required": true,
131531	//       "type": "string"
131532	//     },
131533	//     "returnPartialSuccess": {
131534	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
131535	//       "location": "query",
131536	//       "type": "boolean"
131537	//     }
131538	//   },
131539	//   "path": "projects/{project}/regions/{region}/operations",
131540	//   "response": {
131541	//     "$ref": "OperationList"
131542	//   },
131543	//   "scopes": [
131544	//     "https://www.googleapis.com/auth/cloud-platform",
131545	//     "https://www.googleapis.com/auth/compute",
131546	//     "https://www.googleapis.com/auth/compute.readonly"
131547	//   ]
131548	// }
131549
131550}
131551
131552// Pages invokes f for each page of results.
131553// A non-nil error returned from f will halt the iteration.
131554// The provided context supersedes any context provided to the Context method.
131555func (c *RegionOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
131556	c.ctx_ = ctx
131557	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
131558	for {
131559		x, err := c.Do()
131560		if err != nil {
131561			return err
131562		}
131563		if err := f(x); err != nil {
131564			return err
131565		}
131566		if x.NextPageToken == "" {
131567			return nil
131568		}
131569		c.PageToken(x.NextPageToken)
131570	}
131571}
131572
131573// method id "compute.regionOperations.wait":
131574
131575type RegionOperationsWaitCall struct {
131576	s          *Service
131577	project    string
131578	region     string
131579	operation  string
131580	urlParams_ gensupport.URLParams
131581	ctx_       context.Context
131582	header_    http.Header
131583}
131584
131585// Wait: Waits for the specified Operation resource to return as `DONE`
131586// or for the request to approach the 2 minute deadline, and retrieves
131587// the specified Operation resource. This method differs from the `GET`
131588// method in that it waits for no more than the default deadline (2
131589// minutes) and then returns the current state of the operation, which
131590// might be `DONE` or still in progress. This method is called on a
131591// best-effort basis. Specifically: - In uncommon cases, when the server
131592// is overloaded, the request might return before the default deadline
131593// is reached, or might return after zero seconds. - If the default
131594// deadline is reached, there is no guarantee that the operation is
131595// actually done when the method returns. Be prepared to retry if the
131596// operation is not `DONE`.
131597//
131598// - operation: Name of the Operations resource to return.
131599// - project: Project ID for this request.
131600// - region: Name of the region for this request.
131601func (r *RegionOperationsService) Wait(project string, region string, operation string) *RegionOperationsWaitCall {
131602	c := &RegionOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131603	c.project = project
131604	c.region = region
131605	c.operation = operation
131606	return c
131607}
131608
131609// Fields allows partial responses to be retrieved. See
131610// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131611// for more information.
131612func (c *RegionOperationsWaitCall) Fields(s ...googleapi.Field) *RegionOperationsWaitCall {
131613	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131614	return c
131615}
131616
131617// Context sets the context to be used in this call's Do method. Any
131618// pending HTTP request will be aborted if the provided context is
131619// canceled.
131620func (c *RegionOperationsWaitCall) Context(ctx context.Context) *RegionOperationsWaitCall {
131621	c.ctx_ = ctx
131622	return c
131623}
131624
131625// Header returns an http.Header that can be modified by the caller to
131626// add HTTP headers to the request.
131627func (c *RegionOperationsWaitCall) Header() http.Header {
131628	if c.header_ == nil {
131629		c.header_ = make(http.Header)
131630	}
131631	return c.header_
131632}
131633
131634func (c *RegionOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
131635	reqHeaders := make(http.Header)
131636	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
131637	for k, v := range c.header_ {
131638		reqHeaders[k] = v
131639	}
131640	reqHeaders.Set("User-Agent", c.s.userAgent())
131641	var body io.Reader = nil
131642	c.urlParams_.Set("alt", alt)
131643	c.urlParams_.Set("prettyPrint", "false")
131644	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/operations/{operation}/wait")
131645	urls += "?" + c.urlParams_.Encode()
131646	req, err := http.NewRequest("POST", urls, body)
131647	if err != nil {
131648		return nil, err
131649	}
131650	req.Header = reqHeaders
131651	googleapi.Expand(req.URL, map[string]string{
131652		"project":   c.project,
131653		"region":    c.region,
131654		"operation": c.operation,
131655	})
131656	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131657}
131658
131659// Do executes the "compute.regionOperations.wait" call.
131660// Exactly one of *Operation or error will be non-nil. Any non-2xx
131661// status code is an error. Response headers are in either
131662// *Operation.ServerResponse.Header or (if a response was returned at
131663// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131664// to check whether the returned error was because
131665// http.StatusNotModified was returned.
131666func (c *RegionOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
131667	gensupport.SetOptions(c.urlParams_, opts...)
131668	res, err := c.doRequest("json")
131669	if res != nil && res.StatusCode == http.StatusNotModified {
131670		if res.Body != nil {
131671			res.Body.Close()
131672		}
131673		return nil, &googleapi.Error{
131674			Code:   res.StatusCode,
131675			Header: res.Header,
131676		}
131677	}
131678	if err != nil {
131679		return nil, err
131680	}
131681	defer googleapi.CloseBody(res)
131682	if err := googleapi.CheckResponse(res); err != nil {
131683		return nil, err
131684	}
131685	ret := &Operation{
131686		ServerResponse: googleapi.ServerResponse{
131687			Header:         res.Header,
131688			HTTPStatusCode: res.StatusCode,
131689		},
131690	}
131691	target := &ret
131692	if err := gensupport.DecodeResponse(target, res); err != nil {
131693		return nil, err
131694	}
131695	return ret, nil
131696	// {
131697	//   "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`. ",
131698	//   "flatPath": "projects/{project}/regions/{region}/operations/{operation}/wait",
131699	//   "httpMethod": "POST",
131700	//   "id": "compute.regionOperations.wait",
131701	//   "parameterOrder": [
131702	//     "project",
131703	//     "region",
131704	//     "operation"
131705	//   ],
131706	//   "parameters": {
131707	//     "operation": {
131708	//       "description": "Name of the Operations resource to return.",
131709	//       "location": "path",
131710	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
131711	//       "required": true,
131712	//       "type": "string"
131713	//     },
131714	//     "project": {
131715	//       "description": "Project ID for this request.",
131716	//       "location": "path",
131717	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131718	//       "required": true,
131719	//       "type": "string"
131720	//     },
131721	//     "region": {
131722	//       "description": "Name of the region for this request.",
131723	//       "location": "path",
131724	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131725	//       "required": true,
131726	//       "type": "string"
131727	//     }
131728	//   },
131729	//   "path": "projects/{project}/regions/{region}/operations/{operation}/wait",
131730	//   "response": {
131731	//     "$ref": "Operation"
131732	//   },
131733	//   "scopes": [
131734	//     "https://www.googleapis.com/auth/cloud-platform",
131735	//     "https://www.googleapis.com/auth/compute",
131736	//     "https://www.googleapis.com/auth/compute.readonly"
131737	//   ]
131738	// }
131739
131740}
131741
131742// method id "compute.regionSslCertificates.delete":
131743
131744type RegionSslCertificatesDeleteCall struct {
131745	s              *Service
131746	project        string
131747	region         string
131748	sslCertificate string
131749	urlParams_     gensupport.URLParams
131750	ctx_           context.Context
131751	header_        http.Header
131752}
131753
131754// Delete: Deletes the specified SslCertificate resource in the region.
131755//
131756// - project: Project ID for this request.
131757// - region: Name of the region scoping this request.
131758// - sslCertificate: Name of the SslCertificate resource to delete.
131759func (r *RegionSslCertificatesService) Delete(project string, region string, sslCertificate string) *RegionSslCertificatesDeleteCall {
131760	c := &RegionSslCertificatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131761	c.project = project
131762	c.region = region
131763	c.sslCertificate = sslCertificate
131764	return c
131765}
131766
131767// RequestId sets the optional parameter "requestId": An optional
131768// request ID to identify requests. Specify a unique request ID so that
131769// if you must retry your request, the server will know to ignore the
131770// request if it has already been completed. For example, consider a
131771// situation where you make an initial request and the request times
131772// out. If you make the request again with the same request ID, the
131773// server can check if original operation with the same request ID was
131774// received, and if so, will ignore the second request. This prevents
131775// clients from accidentally creating duplicate commitments. The request
131776// ID must be a valid UUID with the exception that zero UUID is not
131777// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
131778// MixerMutationRequestBuilder
131779func (c *RegionSslCertificatesDeleteCall) RequestId(requestId string) *RegionSslCertificatesDeleteCall {
131780	c.urlParams_.Set("requestId", requestId)
131781	return c
131782}
131783
131784// Fields allows partial responses to be retrieved. See
131785// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131786// for more information.
131787func (c *RegionSslCertificatesDeleteCall) Fields(s ...googleapi.Field) *RegionSslCertificatesDeleteCall {
131788	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131789	return c
131790}
131791
131792// Context sets the context to be used in this call's Do method. Any
131793// pending HTTP request will be aborted if the provided context is
131794// canceled.
131795func (c *RegionSslCertificatesDeleteCall) Context(ctx context.Context) *RegionSslCertificatesDeleteCall {
131796	c.ctx_ = ctx
131797	return c
131798}
131799
131800// Header returns an http.Header that can be modified by the caller to
131801// add HTTP headers to the request.
131802func (c *RegionSslCertificatesDeleteCall) Header() http.Header {
131803	if c.header_ == nil {
131804		c.header_ = make(http.Header)
131805	}
131806	return c.header_
131807}
131808
131809func (c *RegionSslCertificatesDeleteCall) doRequest(alt string) (*http.Response, error) {
131810	reqHeaders := make(http.Header)
131811	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
131812	for k, v := range c.header_ {
131813		reqHeaders[k] = v
131814	}
131815	reqHeaders.Set("User-Agent", c.s.userAgent())
131816	var body io.Reader = nil
131817	c.urlParams_.Set("alt", alt)
131818	c.urlParams_.Set("prettyPrint", "false")
131819	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}")
131820	urls += "?" + c.urlParams_.Encode()
131821	req, err := http.NewRequest("DELETE", urls, body)
131822	if err != nil {
131823		return nil, err
131824	}
131825	req.Header = reqHeaders
131826	googleapi.Expand(req.URL, map[string]string{
131827		"project":        c.project,
131828		"region":         c.region,
131829		"sslCertificate": c.sslCertificate,
131830	})
131831	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131832}
131833
131834// Do executes the "compute.regionSslCertificates.delete" call.
131835// Exactly one of *Operation or error will be non-nil. Any non-2xx
131836// status code is an error. Response headers are in either
131837// *Operation.ServerResponse.Header or (if a response was returned at
131838// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131839// to check whether the returned error was because
131840// http.StatusNotModified was returned.
131841func (c *RegionSslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
131842	gensupport.SetOptions(c.urlParams_, opts...)
131843	res, err := c.doRequest("json")
131844	if res != nil && res.StatusCode == http.StatusNotModified {
131845		if res.Body != nil {
131846			res.Body.Close()
131847		}
131848		return nil, &googleapi.Error{
131849			Code:   res.StatusCode,
131850			Header: res.Header,
131851		}
131852	}
131853	if err != nil {
131854		return nil, err
131855	}
131856	defer googleapi.CloseBody(res)
131857	if err := googleapi.CheckResponse(res); err != nil {
131858		return nil, err
131859	}
131860	ret := &Operation{
131861		ServerResponse: googleapi.ServerResponse{
131862			Header:         res.Header,
131863			HTTPStatusCode: res.StatusCode,
131864		},
131865	}
131866	target := &ret
131867	if err := gensupport.DecodeResponse(target, res); err != nil {
131868		return nil, err
131869	}
131870	return ret, nil
131871	// {
131872	//   "description": "Deletes the specified SslCertificate resource in the region.",
131873	//   "flatPath": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}",
131874	//   "httpMethod": "DELETE",
131875	//   "id": "compute.regionSslCertificates.delete",
131876	//   "parameterOrder": [
131877	//     "project",
131878	//     "region",
131879	//     "sslCertificate"
131880	//   ],
131881	//   "parameters": {
131882	//     "project": {
131883	//       "description": "Project ID for this request.",
131884	//       "location": "path",
131885	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131886	//       "required": true,
131887	//       "type": "string"
131888	//     },
131889	//     "region": {
131890	//       "description": "Name of the region scoping this request.",
131891	//       "location": "path",
131892	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131893	//       "required": true,
131894	//       "type": "string"
131895	//     },
131896	//     "requestId": {
131897	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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",
131898	//       "location": "query",
131899	//       "type": "string"
131900	//     },
131901	//     "sslCertificate": {
131902	//       "description": "Name of the SslCertificate resource to delete.",
131903	//       "location": "path",
131904	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
131905	//       "required": true,
131906	//       "type": "string"
131907	//     }
131908	//   },
131909	//   "path": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}",
131910	//   "response": {
131911	//     "$ref": "Operation"
131912	//   },
131913	//   "scopes": [
131914	//     "https://www.googleapis.com/auth/cloud-platform",
131915	//     "https://www.googleapis.com/auth/compute"
131916	//   ]
131917	// }
131918
131919}
131920
131921// method id "compute.regionSslCertificates.get":
131922
131923type RegionSslCertificatesGetCall struct {
131924	s              *Service
131925	project        string
131926	region         string
131927	sslCertificate string
131928	urlParams_     gensupport.URLParams
131929	ifNoneMatch_   string
131930	ctx_           context.Context
131931	header_        http.Header
131932}
131933
131934// Get: Returns the specified SslCertificate resource in the specified
131935// region. Get a list of available SSL certificates by making a list()
131936// request.
131937//
131938// - project: Project ID for this request.
131939// - region: Name of the region scoping this request.
131940// - sslCertificate: Name of the SslCertificate resource to return.
131941func (r *RegionSslCertificatesService) Get(project string, region string, sslCertificate string) *RegionSslCertificatesGetCall {
131942	c := &RegionSslCertificatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131943	c.project = project
131944	c.region = region
131945	c.sslCertificate = sslCertificate
131946	return c
131947}
131948
131949// Fields allows partial responses to be retrieved. See
131950// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131951// for more information.
131952func (c *RegionSslCertificatesGetCall) Fields(s ...googleapi.Field) *RegionSslCertificatesGetCall {
131953	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131954	return c
131955}
131956
131957// IfNoneMatch sets the optional parameter which makes the operation
131958// fail if the object's ETag matches the given value. This is useful for
131959// getting updates only after the object has changed since the last
131960// request. Use googleapi.IsNotModified to check whether the response
131961// error from Do is the result of In-None-Match.
131962func (c *RegionSslCertificatesGetCall) IfNoneMatch(entityTag string) *RegionSslCertificatesGetCall {
131963	c.ifNoneMatch_ = entityTag
131964	return c
131965}
131966
131967// Context sets the context to be used in this call's Do method. Any
131968// pending HTTP request will be aborted if the provided context is
131969// canceled.
131970func (c *RegionSslCertificatesGetCall) Context(ctx context.Context) *RegionSslCertificatesGetCall {
131971	c.ctx_ = ctx
131972	return c
131973}
131974
131975// Header returns an http.Header that can be modified by the caller to
131976// add HTTP headers to the request.
131977func (c *RegionSslCertificatesGetCall) Header() http.Header {
131978	if c.header_ == nil {
131979		c.header_ = make(http.Header)
131980	}
131981	return c.header_
131982}
131983
131984func (c *RegionSslCertificatesGetCall) doRequest(alt string) (*http.Response, error) {
131985	reqHeaders := make(http.Header)
131986	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
131987	for k, v := range c.header_ {
131988		reqHeaders[k] = v
131989	}
131990	reqHeaders.Set("User-Agent", c.s.userAgent())
131991	if c.ifNoneMatch_ != "" {
131992		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
131993	}
131994	var body io.Reader = nil
131995	c.urlParams_.Set("alt", alt)
131996	c.urlParams_.Set("prettyPrint", "false")
131997	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}")
131998	urls += "?" + c.urlParams_.Encode()
131999	req, err := http.NewRequest("GET", urls, body)
132000	if err != nil {
132001		return nil, err
132002	}
132003	req.Header = reqHeaders
132004	googleapi.Expand(req.URL, map[string]string{
132005		"project":        c.project,
132006		"region":         c.region,
132007		"sslCertificate": c.sslCertificate,
132008	})
132009	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132010}
132011
132012// Do executes the "compute.regionSslCertificates.get" call.
132013// Exactly one of *SslCertificate or error will be non-nil. Any non-2xx
132014// status code is an error. Response headers are in either
132015// *SslCertificate.ServerResponse.Header or (if a response was returned
132016// at all) in error.(*googleapi.Error).Header. Use
132017// googleapi.IsNotModified to check whether the returned error was
132018// because http.StatusNotModified was returned.
132019func (c *RegionSslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertificate, error) {
132020	gensupport.SetOptions(c.urlParams_, opts...)
132021	res, err := c.doRequest("json")
132022	if res != nil && res.StatusCode == http.StatusNotModified {
132023		if res.Body != nil {
132024			res.Body.Close()
132025		}
132026		return nil, &googleapi.Error{
132027			Code:   res.StatusCode,
132028			Header: res.Header,
132029		}
132030	}
132031	if err != nil {
132032		return nil, err
132033	}
132034	defer googleapi.CloseBody(res)
132035	if err := googleapi.CheckResponse(res); err != nil {
132036		return nil, err
132037	}
132038	ret := &SslCertificate{
132039		ServerResponse: googleapi.ServerResponse{
132040			Header:         res.Header,
132041			HTTPStatusCode: res.StatusCode,
132042		},
132043	}
132044	target := &ret
132045	if err := gensupport.DecodeResponse(target, res); err != nil {
132046		return nil, err
132047	}
132048	return ret, nil
132049	// {
132050	//   "description": "Returns the specified SslCertificate resource in the specified region. Get a list of available SSL certificates by making a list() request.",
132051	//   "flatPath": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}",
132052	//   "httpMethod": "GET",
132053	//   "id": "compute.regionSslCertificates.get",
132054	//   "parameterOrder": [
132055	//     "project",
132056	//     "region",
132057	//     "sslCertificate"
132058	//   ],
132059	//   "parameters": {
132060	//     "project": {
132061	//       "description": "Project ID for this request.",
132062	//       "location": "path",
132063	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132064	//       "required": true,
132065	//       "type": "string"
132066	//     },
132067	//     "region": {
132068	//       "description": "Name of the region scoping this request.",
132069	//       "location": "path",
132070	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132071	//       "required": true,
132072	//       "type": "string"
132073	//     },
132074	//     "sslCertificate": {
132075	//       "description": "Name of the SslCertificate resource to return.",
132076	//       "location": "path",
132077	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132078	//       "required": true,
132079	//       "type": "string"
132080	//     }
132081	//   },
132082	//   "path": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}",
132083	//   "response": {
132084	//     "$ref": "SslCertificate"
132085	//   },
132086	//   "scopes": [
132087	//     "https://www.googleapis.com/auth/cloud-platform",
132088	//     "https://www.googleapis.com/auth/compute",
132089	//     "https://www.googleapis.com/auth/compute.readonly"
132090	//   ]
132091	// }
132092
132093}
132094
132095// method id "compute.regionSslCertificates.insert":
132096
132097type RegionSslCertificatesInsertCall struct {
132098	s              *Service
132099	project        string
132100	region         string
132101	sslcertificate *SslCertificate
132102	urlParams_     gensupport.URLParams
132103	ctx_           context.Context
132104	header_        http.Header
132105}
132106
132107// Insert: Creates a SslCertificate resource in the specified project
132108// and region using the data included in the request
132109//
132110// - project: Project ID for this request.
132111// - region: Name of the region scoping this request.
132112func (r *RegionSslCertificatesService) Insert(project string, region string, sslcertificate *SslCertificate) *RegionSslCertificatesInsertCall {
132113	c := &RegionSslCertificatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132114	c.project = project
132115	c.region = region
132116	c.sslcertificate = sslcertificate
132117	return c
132118}
132119
132120// RequestId sets the optional parameter "requestId": An optional
132121// request ID to identify requests. Specify a unique request ID so that
132122// if you must retry your request, the server will know to ignore the
132123// request if it has already been completed. For example, consider a
132124// situation where you make an initial request and the request times
132125// out. If you make the request again with the same request ID, the
132126// server can check if original operation with the same request ID was
132127// received, and if so, will ignore the second request. This prevents
132128// clients from accidentally creating duplicate commitments. The request
132129// ID must be a valid UUID with the exception that zero UUID is not
132130// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
132131// MixerMutationRequestBuilder
132132func (c *RegionSslCertificatesInsertCall) RequestId(requestId string) *RegionSslCertificatesInsertCall {
132133	c.urlParams_.Set("requestId", requestId)
132134	return c
132135}
132136
132137// Fields allows partial responses to be retrieved. See
132138// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132139// for more information.
132140func (c *RegionSslCertificatesInsertCall) Fields(s ...googleapi.Field) *RegionSslCertificatesInsertCall {
132141	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132142	return c
132143}
132144
132145// Context sets the context to be used in this call's Do method. Any
132146// pending HTTP request will be aborted if the provided context is
132147// canceled.
132148func (c *RegionSslCertificatesInsertCall) Context(ctx context.Context) *RegionSslCertificatesInsertCall {
132149	c.ctx_ = ctx
132150	return c
132151}
132152
132153// Header returns an http.Header that can be modified by the caller to
132154// add HTTP headers to the request.
132155func (c *RegionSslCertificatesInsertCall) Header() http.Header {
132156	if c.header_ == nil {
132157		c.header_ = make(http.Header)
132158	}
132159	return c.header_
132160}
132161
132162func (c *RegionSslCertificatesInsertCall) doRequest(alt string) (*http.Response, error) {
132163	reqHeaders := make(http.Header)
132164	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
132165	for k, v := range c.header_ {
132166		reqHeaders[k] = v
132167	}
132168	reqHeaders.Set("User-Agent", c.s.userAgent())
132169	var body io.Reader = nil
132170	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslcertificate)
132171	if err != nil {
132172		return nil, err
132173	}
132174	reqHeaders.Set("Content-Type", "application/json")
132175	c.urlParams_.Set("alt", alt)
132176	c.urlParams_.Set("prettyPrint", "false")
132177	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates")
132178	urls += "?" + c.urlParams_.Encode()
132179	req, err := http.NewRequest("POST", urls, body)
132180	if err != nil {
132181		return nil, err
132182	}
132183	req.Header = reqHeaders
132184	googleapi.Expand(req.URL, map[string]string{
132185		"project": c.project,
132186		"region":  c.region,
132187	})
132188	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132189}
132190
132191// Do executes the "compute.regionSslCertificates.insert" call.
132192// Exactly one of *Operation or error will be non-nil. Any non-2xx
132193// status code is an error. Response headers are in either
132194// *Operation.ServerResponse.Header or (if a response was returned at
132195// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132196// to check whether the returned error was because
132197// http.StatusNotModified was returned.
132198func (c *RegionSslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132199	gensupport.SetOptions(c.urlParams_, opts...)
132200	res, err := c.doRequest("json")
132201	if res != nil && res.StatusCode == http.StatusNotModified {
132202		if res.Body != nil {
132203			res.Body.Close()
132204		}
132205		return nil, &googleapi.Error{
132206			Code:   res.StatusCode,
132207			Header: res.Header,
132208		}
132209	}
132210	if err != nil {
132211		return nil, err
132212	}
132213	defer googleapi.CloseBody(res)
132214	if err := googleapi.CheckResponse(res); err != nil {
132215		return nil, err
132216	}
132217	ret := &Operation{
132218		ServerResponse: googleapi.ServerResponse{
132219			Header:         res.Header,
132220			HTTPStatusCode: res.StatusCode,
132221		},
132222	}
132223	target := &ret
132224	if err := gensupport.DecodeResponse(target, res); err != nil {
132225		return nil, err
132226	}
132227	return ret, nil
132228	// {
132229	//   "description": "Creates a SslCertificate resource in the specified project and region using the data included in the request",
132230	//   "flatPath": "projects/{project}/regions/{region}/sslCertificates",
132231	//   "httpMethod": "POST",
132232	//   "id": "compute.regionSslCertificates.insert",
132233	//   "parameterOrder": [
132234	//     "project",
132235	//     "region"
132236	//   ],
132237	//   "parameters": {
132238	//     "project": {
132239	//       "description": "Project ID for this request.",
132240	//       "location": "path",
132241	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132242	//       "required": true,
132243	//       "type": "string"
132244	//     },
132245	//     "region": {
132246	//       "description": "Name of the region scoping this request.",
132247	//       "location": "path",
132248	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132249	//       "required": true,
132250	//       "type": "string"
132251	//     },
132252	//     "requestId": {
132253	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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",
132254	//       "location": "query",
132255	//       "type": "string"
132256	//     }
132257	//   },
132258	//   "path": "projects/{project}/regions/{region}/sslCertificates",
132259	//   "request": {
132260	//     "$ref": "SslCertificate"
132261	//   },
132262	//   "response": {
132263	//     "$ref": "Operation"
132264	//   },
132265	//   "scopes": [
132266	//     "https://www.googleapis.com/auth/cloud-platform",
132267	//     "https://www.googleapis.com/auth/compute"
132268	//   ]
132269	// }
132270
132271}
132272
132273// method id "compute.regionSslCertificates.list":
132274
132275type RegionSslCertificatesListCall struct {
132276	s            *Service
132277	project      string
132278	region       string
132279	urlParams_   gensupport.URLParams
132280	ifNoneMatch_ string
132281	ctx_         context.Context
132282	header_      http.Header
132283}
132284
132285// List: Retrieves the list of SslCertificate resources available to the
132286// specified project in the specified region.
132287//
132288// - project: Project ID for this request.
132289// - region: Name of the region scoping this request.
132290func (r *RegionSslCertificatesService) List(project string, region string) *RegionSslCertificatesListCall {
132291	c := &RegionSslCertificatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132292	c.project = project
132293	c.region = region
132294	return c
132295}
132296
132297// Filter sets the optional parameter "filter": A filter expression that
132298// filters resources listed in the response. The expression must specify
132299// the field name, a comparison operator, and the value that you want to
132300// use for filtering. The value must be a string, a number, or a
132301// boolean. The comparison operator must be either `=`, `!=`, `>`, or
132302// `<`. For example, if you are filtering Compute Engine instances, you
132303// can exclude instances named `example-instance` by specifying `name !=
132304// example-instance`. You can also filter nested fields. For example,
132305// you could specify `scheduling.automaticRestart = false` to include
132306// instances only if they are not scheduled for automatic restarts. You
132307// can use filtering on nested fields to filter based on resource
132308// labels. To filter on multiple expressions, provide each separate
132309// expression within parentheses. For example: ```
132310// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
132311// ``` By default, each expression is an `AND` expression. However, you
132312// can include `AND` and `OR` expressions explicitly. For example: ```
132313// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
132314// AND (scheduling.automaticRestart = true) ```
132315func (c *RegionSslCertificatesListCall) Filter(filter string) *RegionSslCertificatesListCall {
132316	c.urlParams_.Set("filter", filter)
132317	return c
132318}
132319
132320// MaxResults sets the optional parameter "maxResults": The maximum
132321// number of results per page that should be returned. If the number of
132322// available results is larger than `maxResults`, Compute Engine returns
132323// a `nextPageToken` that can be used to get the next page of results in
132324// subsequent list requests. Acceptable values are `0` to `500`,
132325// inclusive. (Default: `500`)
132326func (c *RegionSslCertificatesListCall) MaxResults(maxResults int64) *RegionSslCertificatesListCall {
132327	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
132328	return c
132329}
132330
132331// OrderBy sets the optional parameter "orderBy": Sorts list results by
132332// a certain order. By default, results are returned in alphanumerical
132333// order based on the resource name. You can also sort results in
132334// descending order based on the creation timestamp using
132335// `orderBy="creationTimestamp desc". This sorts results based on the
132336// `creationTimestamp` field in reverse chronological order (newest
132337// result first). Use this to sort resources like operations so that the
132338// newest operation is returned first. Currently, only sorting by `name`
132339// or `creationTimestamp desc` is supported.
132340func (c *RegionSslCertificatesListCall) OrderBy(orderBy string) *RegionSslCertificatesListCall {
132341	c.urlParams_.Set("orderBy", orderBy)
132342	return c
132343}
132344
132345// PageToken sets the optional parameter "pageToken": Specifies a page
132346// token to use. Set `pageToken` to the `nextPageToken` returned by a
132347// previous list request to get the next page of results.
132348func (c *RegionSslCertificatesListCall) PageToken(pageToken string) *RegionSslCertificatesListCall {
132349	c.urlParams_.Set("pageToken", pageToken)
132350	return c
132351}
132352
132353// ReturnPartialSuccess sets the optional parameter
132354// "returnPartialSuccess": Opt-in for partial success behavior which
132355// provides partial results in case of failure. The default value is
132356// false.
132357func (c *RegionSslCertificatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionSslCertificatesListCall {
132358	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
132359	return c
132360}
132361
132362// Fields allows partial responses to be retrieved. See
132363// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132364// for more information.
132365func (c *RegionSslCertificatesListCall) Fields(s ...googleapi.Field) *RegionSslCertificatesListCall {
132366	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132367	return c
132368}
132369
132370// IfNoneMatch sets the optional parameter which makes the operation
132371// fail if the object's ETag matches the given value. This is useful for
132372// getting updates only after the object has changed since the last
132373// request. Use googleapi.IsNotModified to check whether the response
132374// error from Do is the result of In-None-Match.
132375func (c *RegionSslCertificatesListCall) IfNoneMatch(entityTag string) *RegionSslCertificatesListCall {
132376	c.ifNoneMatch_ = entityTag
132377	return c
132378}
132379
132380// Context sets the context to be used in this call's Do method. Any
132381// pending HTTP request will be aborted if the provided context is
132382// canceled.
132383func (c *RegionSslCertificatesListCall) Context(ctx context.Context) *RegionSslCertificatesListCall {
132384	c.ctx_ = ctx
132385	return c
132386}
132387
132388// Header returns an http.Header that can be modified by the caller to
132389// add HTTP headers to the request.
132390func (c *RegionSslCertificatesListCall) Header() http.Header {
132391	if c.header_ == nil {
132392		c.header_ = make(http.Header)
132393	}
132394	return c.header_
132395}
132396
132397func (c *RegionSslCertificatesListCall) doRequest(alt string) (*http.Response, error) {
132398	reqHeaders := make(http.Header)
132399	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
132400	for k, v := range c.header_ {
132401		reqHeaders[k] = v
132402	}
132403	reqHeaders.Set("User-Agent", c.s.userAgent())
132404	if c.ifNoneMatch_ != "" {
132405		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
132406	}
132407	var body io.Reader = nil
132408	c.urlParams_.Set("alt", alt)
132409	c.urlParams_.Set("prettyPrint", "false")
132410	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates")
132411	urls += "?" + c.urlParams_.Encode()
132412	req, err := http.NewRequest("GET", urls, body)
132413	if err != nil {
132414		return nil, err
132415	}
132416	req.Header = reqHeaders
132417	googleapi.Expand(req.URL, map[string]string{
132418		"project": c.project,
132419		"region":  c.region,
132420	})
132421	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132422}
132423
132424// Do executes the "compute.regionSslCertificates.list" call.
132425// Exactly one of *SslCertificateList or error will be non-nil. Any
132426// non-2xx status code is an error. Response headers are in either
132427// *SslCertificateList.ServerResponse.Header or (if a response was
132428// returned at all) in error.(*googleapi.Error).Header. Use
132429// googleapi.IsNotModified to check whether the returned error was
132430// because http.StatusNotModified was returned.
132431func (c *RegionSslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertificateList, error) {
132432	gensupport.SetOptions(c.urlParams_, opts...)
132433	res, err := c.doRequest("json")
132434	if res != nil && res.StatusCode == http.StatusNotModified {
132435		if res.Body != nil {
132436			res.Body.Close()
132437		}
132438		return nil, &googleapi.Error{
132439			Code:   res.StatusCode,
132440			Header: res.Header,
132441		}
132442	}
132443	if err != nil {
132444		return nil, err
132445	}
132446	defer googleapi.CloseBody(res)
132447	if err := googleapi.CheckResponse(res); err != nil {
132448		return nil, err
132449	}
132450	ret := &SslCertificateList{
132451		ServerResponse: googleapi.ServerResponse{
132452			Header:         res.Header,
132453			HTTPStatusCode: res.StatusCode,
132454		},
132455	}
132456	target := &ret
132457	if err := gensupport.DecodeResponse(target, res); err != nil {
132458		return nil, err
132459	}
132460	return ret, nil
132461	// {
132462	//   "description": "Retrieves the list of SslCertificate resources available to the specified project in the specified region.",
132463	//   "flatPath": "projects/{project}/regions/{region}/sslCertificates",
132464	//   "httpMethod": "GET",
132465	//   "id": "compute.regionSslCertificates.list",
132466	//   "parameterOrder": [
132467	//     "project",
132468	//     "region"
132469	//   ],
132470	//   "parameters": {
132471	//     "filter": {
132472	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
132473	//       "location": "query",
132474	//       "type": "string"
132475	//     },
132476	//     "maxResults": {
132477	//       "default": "500",
132478	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
132479	//       "format": "uint32",
132480	//       "location": "query",
132481	//       "minimum": "0",
132482	//       "type": "integer"
132483	//     },
132484	//     "orderBy": {
132485	//       "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.",
132486	//       "location": "query",
132487	//       "type": "string"
132488	//     },
132489	//     "pageToken": {
132490	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
132491	//       "location": "query",
132492	//       "type": "string"
132493	//     },
132494	//     "project": {
132495	//       "description": "Project ID for this request.",
132496	//       "location": "path",
132497	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132498	//       "required": true,
132499	//       "type": "string"
132500	//     },
132501	//     "region": {
132502	//       "description": "Name of the region scoping this request.",
132503	//       "location": "path",
132504	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132505	//       "required": true,
132506	//       "type": "string"
132507	//     },
132508	//     "returnPartialSuccess": {
132509	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
132510	//       "location": "query",
132511	//       "type": "boolean"
132512	//     }
132513	//   },
132514	//   "path": "projects/{project}/regions/{region}/sslCertificates",
132515	//   "response": {
132516	//     "$ref": "SslCertificateList"
132517	//   },
132518	//   "scopes": [
132519	//     "https://www.googleapis.com/auth/cloud-platform",
132520	//     "https://www.googleapis.com/auth/compute",
132521	//     "https://www.googleapis.com/auth/compute.readonly"
132522	//   ]
132523	// }
132524
132525}
132526
132527// Pages invokes f for each page of results.
132528// A non-nil error returned from f will halt the iteration.
132529// The provided context supersedes any context provided to the Context method.
132530func (c *RegionSslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertificateList) error) error {
132531	c.ctx_ = ctx
132532	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
132533	for {
132534		x, err := c.Do()
132535		if err != nil {
132536			return err
132537		}
132538		if err := f(x); err != nil {
132539			return err
132540		}
132541		if x.NextPageToken == "" {
132542			return nil
132543		}
132544		c.PageToken(x.NextPageToken)
132545	}
132546}
132547
132548// method id "compute.regionTargetHttpProxies.delete":
132549
132550type RegionTargetHttpProxiesDeleteCall struct {
132551	s               *Service
132552	project         string
132553	region          string
132554	targetHttpProxy string
132555	urlParams_      gensupport.URLParams
132556	ctx_            context.Context
132557	header_         http.Header
132558}
132559
132560// Delete: Deletes the specified TargetHttpProxy resource.
132561//
132562// - project: Project ID for this request.
132563// - region: Name of the region scoping this request.
132564// - targetHttpProxy: Name of the TargetHttpProxy resource to delete.
132565func (r *RegionTargetHttpProxiesService) Delete(project string, region string, targetHttpProxy string) *RegionTargetHttpProxiesDeleteCall {
132566	c := &RegionTargetHttpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132567	c.project = project
132568	c.region = region
132569	c.targetHttpProxy = targetHttpProxy
132570	return c
132571}
132572
132573// RequestId sets the optional parameter "requestId": An optional
132574// request ID to identify requests. Specify a unique request ID so that
132575// if you must retry your request, the server will know to ignore the
132576// request if it has already been completed. For example, consider a
132577// situation where you make an initial request and the request times
132578// out. If you make the request again with the same request ID, the
132579// server can check if original operation with the same request ID was
132580// received, and if so, will ignore the second request. This prevents
132581// clients from accidentally creating duplicate commitments. The request
132582// ID must be a valid UUID with the exception that zero UUID is not
132583// supported ( 00000000-0000-0000-0000-000000000000).
132584func (c *RegionTargetHttpProxiesDeleteCall) RequestId(requestId string) *RegionTargetHttpProxiesDeleteCall {
132585	c.urlParams_.Set("requestId", requestId)
132586	return c
132587}
132588
132589// Fields allows partial responses to be retrieved. See
132590// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132591// for more information.
132592func (c *RegionTargetHttpProxiesDeleteCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesDeleteCall {
132593	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132594	return c
132595}
132596
132597// Context sets the context to be used in this call's Do method. Any
132598// pending HTTP request will be aborted if the provided context is
132599// canceled.
132600func (c *RegionTargetHttpProxiesDeleteCall) Context(ctx context.Context) *RegionTargetHttpProxiesDeleteCall {
132601	c.ctx_ = ctx
132602	return c
132603}
132604
132605// Header returns an http.Header that can be modified by the caller to
132606// add HTTP headers to the request.
132607func (c *RegionTargetHttpProxiesDeleteCall) Header() http.Header {
132608	if c.header_ == nil {
132609		c.header_ = make(http.Header)
132610	}
132611	return c.header_
132612}
132613
132614func (c *RegionTargetHttpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
132615	reqHeaders := make(http.Header)
132616	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
132617	for k, v := range c.header_ {
132618		reqHeaders[k] = v
132619	}
132620	reqHeaders.Set("User-Agent", c.s.userAgent())
132621	var body io.Reader = nil
132622	c.urlParams_.Set("alt", alt)
132623	c.urlParams_.Set("prettyPrint", "false")
132624	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}")
132625	urls += "?" + c.urlParams_.Encode()
132626	req, err := http.NewRequest("DELETE", urls, body)
132627	if err != nil {
132628		return nil, err
132629	}
132630	req.Header = reqHeaders
132631	googleapi.Expand(req.URL, map[string]string{
132632		"project":         c.project,
132633		"region":          c.region,
132634		"targetHttpProxy": c.targetHttpProxy,
132635	})
132636	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132637}
132638
132639// Do executes the "compute.regionTargetHttpProxies.delete" call.
132640// Exactly one of *Operation or error will be non-nil. Any non-2xx
132641// status code is an error. Response headers are in either
132642// *Operation.ServerResponse.Header or (if a response was returned at
132643// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132644// to check whether the returned error was because
132645// http.StatusNotModified was returned.
132646func (c *RegionTargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132647	gensupport.SetOptions(c.urlParams_, opts...)
132648	res, err := c.doRequest("json")
132649	if res != nil && res.StatusCode == http.StatusNotModified {
132650		if res.Body != nil {
132651			res.Body.Close()
132652		}
132653		return nil, &googleapi.Error{
132654			Code:   res.StatusCode,
132655			Header: res.Header,
132656		}
132657	}
132658	if err != nil {
132659		return nil, err
132660	}
132661	defer googleapi.CloseBody(res)
132662	if err := googleapi.CheckResponse(res); err != nil {
132663		return nil, err
132664	}
132665	ret := &Operation{
132666		ServerResponse: googleapi.ServerResponse{
132667			Header:         res.Header,
132668			HTTPStatusCode: res.StatusCode,
132669		},
132670	}
132671	target := &ret
132672	if err := gensupport.DecodeResponse(target, res); err != nil {
132673		return nil, err
132674	}
132675	return ret, nil
132676	// {
132677	//   "description": "Deletes the specified TargetHttpProxy resource.",
132678	//   "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}",
132679	//   "httpMethod": "DELETE",
132680	//   "id": "compute.regionTargetHttpProxies.delete",
132681	//   "parameterOrder": [
132682	//     "project",
132683	//     "region",
132684	//     "targetHttpProxy"
132685	//   ],
132686	//   "parameters": {
132687	//     "project": {
132688	//       "description": "Project ID for this request.",
132689	//       "location": "path",
132690	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132691	//       "required": true,
132692	//       "type": "string"
132693	//     },
132694	//     "region": {
132695	//       "description": "Name of the region scoping this request.",
132696	//       "location": "path",
132697	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132698	//       "required": true,
132699	//       "type": "string"
132700	//     },
132701	//     "requestId": {
132702	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
132703	//       "location": "query",
132704	//       "type": "string"
132705	//     },
132706	//     "targetHttpProxy": {
132707	//       "description": "Name of the TargetHttpProxy resource to delete.",
132708	//       "location": "path",
132709	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132710	//       "required": true,
132711	//       "type": "string"
132712	//     }
132713	//   },
132714	//   "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}",
132715	//   "response": {
132716	//     "$ref": "Operation"
132717	//   },
132718	//   "scopes": [
132719	//     "https://www.googleapis.com/auth/cloud-platform",
132720	//     "https://www.googleapis.com/auth/compute"
132721	//   ]
132722	// }
132723
132724}
132725
132726// method id "compute.regionTargetHttpProxies.get":
132727
132728type RegionTargetHttpProxiesGetCall struct {
132729	s               *Service
132730	project         string
132731	region          string
132732	targetHttpProxy string
132733	urlParams_      gensupport.URLParams
132734	ifNoneMatch_    string
132735	ctx_            context.Context
132736	header_         http.Header
132737}
132738
132739// Get: Returns the specified TargetHttpProxy resource in the specified
132740// region. Gets a list of available target HTTP proxies by making a
132741// list() request.
132742//
132743// - project: Project ID for this request.
132744// - region: Name of the region scoping this request.
132745// - targetHttpProxy: Name of the TargetHttpProxy resource to return.
132746func (r *RegionTargetHttpProxiesService) Get(project string, region string, targetHttpProxy string) *RegionTargetHttpProxiesGetCall {
132747	c := &RegionTargetHttpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132748	c.project = project
132749	c.region = region
132750	c.targetHttpProxy = targetHttpProxy
132751	return c
132752}
132753
132754// Fields allows partial responses to be retrieved. See
132755// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132756// for more information.
132757func (c *RegionTargetHttpProxiesGetCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesGetCall {
132758	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132759	return c
132760}
132761
132762// IfNoneMatch sets the optional parameter which makes the operation
132763// fail if the object's ETag matches the given value. This is useful for
132764// getting updates only after the object has changed since the last
132765// request. Use googleapi.IsNotModified to check whether the response
132766// error from Do is the result of In-None-Match.
132767func (c *RegionTargetHttpProxiesGetCall) IfNoneMatch(entityTag string) *RegionTargetHttpProxiesGetCall {
132768	c.ifNoneMatch_ = entityTag
132769	return c
132770}
132771
132772// Context sets the context to be used in this call's Do method. Any
132773// pending HTTP request will be aborted if the provided context is
132774// canceled.
132775func (c *RegionTargetHttpProxiesGetCall) Context(ctx context.Context) *RegionTargetHttpProxiesGetCall {
132776	c.ctx_ = ctx
132777	return c
132778}
132779
132780// Header returns an http.Header that can be modified by the caller to
132781// add HTTP headers to the request.
132782func (c *RegionTargetHttpProxiesGetCall) Header() http.Header {
132783	if c.header_ == nil {
132784		c.header_ = make(http.Header)
132785	}
132786	return c.header_
132787}
132788
132789func (c *RegionTargetHttpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
132790	reqHeaders := make(http.Header)
132791	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
132792	for k, v := range c.header_ {
132793		reqHeaders[k] = v
132794	}
132795	reqHeaders.Set("User-Agent", c.s.userAgent())
132796	if c.ifNoneMatch_ != "" {
132797		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
132798	}
132799	var body io.Reader = nil
132800	c.urlParams_.Set("alt", alt)
132801	c.urlParams_.Set("prettyPrint", "false")
132802	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}")
132803	urls += "?" + c.urlParams_.Encode()
132804	req, err := http.NewRequest("GET", urls, body)
132805	if err != nil {
132806		return nil, err
132807	}
132808	req.Header = reqHeaders
132809	googleapi.Expand(req.URL, map[string]string{
132810		"project":         c.project,
132811		"region":          c.region,
132812		"targetHttpProxy": c.targetHttpProxy,
132813	})
132814	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132815}
132816
132817// Do executes the "compute.regionTargetHttpProxies.get" call.
132818// Exactly one of *TargetHttpProxy or error will be non-nil. Any non-2xx
132819// status code is an error. Response headers are in either
132820// *TargetHttpProxy.ServerResponse.Header or (if a response was returned
132821// at all) in error.(*googleapi.Error).Header. Use
132822// googleapi.IsNotModified to check whether the returned error was
132823// because http.StatusNotModified was returned.
132824func (c *RegionTargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxy, error) {
132825	gensupport.SetOptions(c.urlParams_, opts...)
132826	res, err := c.doRequest("json")
132827	if res != nil && res.StatusCode == http.StatusNotModified {
132828		if res.Body != nil {
132829			res.Body.Close()
132830		}
132831		return nil, &googleapi.Error{
132832			Code:   res.StatusCode,
132833			Header: res.Header,
132834		}
132835	}
132836	if err != nil {
132837		return nil, err
132838	}
132839	defer googleapi.CloseBody(res)
132840	if err := googleapi.CheckResponse(res); err != nil {
132841		return nil, err
132842	}
132843	ret := &TargetHttpProxy{
132844		ServerResponse: googleapi.ServerResponse{
132845			Header:         res.Header,
132846			HTTPStatusCode: res.StatusCode,
132847		},
132848	}
132849	target := &ret
132850	if err := gensupport.DecodeResponse(target, res); err != nil {
132851		return nil, err
132852	}
132853	return ret, nil
132854	// {
132855	//   "description": "Returns the specified TargetHttpProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.",
132856	//   "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}",
132857	//   "httpMethod": "GET",
132858	//   "id": "compute.regionTargetHttpProxies.get",
132859	//   "parameterOrder": [
132860	//     "project",
132861	//     "region",
132862	//     "targetHttpProxy"
132863	//   ],
132864	//   "parameters": {
132865	//     "project": {
132866	//       "description": "Project ID for this request.",
132867	//       "location": "path",
132868	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132869	//       "required": true,
132870	//       "type": "string"
132871	//     },
132872	//     "region": {
132873	//       "description": "Name of the region scoping this request.",
132874	//       "location": "path",
132875	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132876	//       "required": true,
132877	//       "type": "string"
132878	//     },
132879	//     "targetHttpProxy": {
132880	//       "description": "Name of the TargetHttpProxy resource to return.",
132881	//       "location": "path",
132882	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132883	//       "required": true,
132884	//       "type": "string"
132885	//     }
132886	//   },
132887	//   "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}",
132888	//   "response": {
132889	//     "$ref": "TargetHttpProxy"
132890	//   },
132891	//   "scopes": [
132892	//     "https://www.googleapis.com/auth/cloud-platform",
132893	//     "https://www.googleapis.com/auth/compute",
132894	//     "https://www.googleapis.com/auth/compute.readonly"
132895	//   ]
132896	// }
132897
132898}
132899
132900// method id "compute.regionTargetHttpProxies.insert":
132901
132902type RegionTargetHttpProxiesInsertCall struct {
132903	s               *Service
132904	project         string
132905	region          string
132906	targethttpproxy *TargetHttpProxy
132907	urlParams_      gensupport.URLParams
132908	ctx_            context.Context
132909	header_         http.Header
132910}
132911
132912// Insert: Creates a TargetHttpProxy resource in the specified project
132913// and region using the data included in the request.
132914//
132915// - project: Project ID for this request.
132916// - region: Name of the region scoping this request.
132917func (r *RegionTargetHttpProxiesService) Insert(project string, region string, targethttpproxy *TargetHttpProxy) *RegionTargetHttpProxiesInsertCall {
132918	c := &RegionTargetHttpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132919	c.project = project
132920	c.region = region
132921	c.targethttpproxy = targethttpproxy
132922	return c
132923}
132924
132925// RequestId sets the optional parameter "requestId": An optional
132926// request ID to identify requests. Specify a unique request ID so that
132927// if you must retry your request, the server will know to ignore the
132928// request if it has already been completed. For example, consider a
132929// situation where you make an initial request and the request times
132930// out. If you make the request again with the same request ID, the
132931// server can check if original operation with the same request ID was
132932// received, and if so, will ignore the second request. This prevents
132933// clients from accidentally creating duplicate commitments. The request
132934// ID must be a valid UUID with the exception that zero UUID is not
132935// supported ( 00000000-0000-0000-0000-000000000000).
132936func (c *RegionTargetHttpProxiesInsertCall) RequestId(requestId string) *RegionTargetHttpProxiesInsertCall {
132937	c.urlParams_.Set("requestId", requestId)
132938	return c
132939}
132940
132941// Fields allows partial responses to be retrieved. See
132942// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132943// for more information.
132944func (c *RegionTargetHttpProxiesInsertCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesInsertCall {
132945	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132946	return c
132947}
132948
132949// Context sets the context to be used in this call's Do method. Any
132950// pending HTTP request will be aborted if the provided context is
132951// canceled.
132952func (c *RegionTargetHttpProxiesInsertCall) Context(ctx context.Context) *RegionTargetHttpProxiesInsertCall {
132953	c.ctx_ = ctx
132954	return c
132955}
132956
132957// Header returns an http.Header that can be modified by the caller to
132958// add HTTP headers to the request.
132959func (c *RegionTargetHttpProxiesInsertCall) Header() http.Header {
132960	if c.header_ == nil {
132961		c.header_ = make(http.Header)
132962	}
132963	return c.header_
132964}
132965
132966func (c *RegionTargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
132967	reqHeaders := make(http.Header)
132968	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
132969	for k, v := range c.header_ {
132970		reqHeaders[k] = v
132971	}
132972	reqHeaders.Set("User-Agent", c.s.userAgent())
132973	var body io.Reader = nil
132974	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
132975	if err != nil {
132976		return nil, err
132977	}
132978	reqHeaders.Set("Content-Type", "application/json")
132979	c.urlParams_.Set("alt", alt)
132980	c.urlParams_.Set("prettyPrint", "false")
132981	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies")
132982	urls += "?" + c.urlParams_.Encode()
132983	req, err := http.NewRequest("POST", urls, body)
132984	if err != nil {
132985		return nil, err
132986	}
132987	req.Header = reqHeaders
132988	googleapi.Expand(req.URL, map[string]string{
132989		"project": c.project,
132990		"region":  c.region,
132991	})
132992	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132993}
132994
132995// Do executes the "compute.regionTargetHttpProxies.insert" call.
132996// Exactly one of *Operation or error will be non-nil. Any non-2xx
132997// status code is an error. Response headers are in either
132998// *Operation.ServerResponse.Header or (if a response was returned at
132999// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133000// to check whether the returned error was because
133001// http.StatusNotModified was returned.
133002func (c *RegionTargetHttpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
133003	gensupport.SetOptions(c.urlParams_, opts...)
133004	res, err := c.doRequest("json")
133005	if res != nil && res.StatusCode == http.StatusNotModified {
133006		if res.Body != nil {
133007			res.Body.Close()
133008		}
133009		return nil, &googleapi.Error{
133010			Code:   res.StatusCode,
133011			Header: res.Header,
133012		}
133013	}
133014	if err != nil {
133015		return nil, err
133016	}
133017	defer googleapi.CloseBody(res)
133018	if err := googleapi.CheckResponse(res); err != nil {
133019		return nil, err
133020	}
133021	ret := &Operation{
133022		ServerResponse: googleapi.ServerResponse{
133023			Header:         res.Header,
133024			HTTPStatusCode: res.StatusCode,
133025		},
133026	}
133027	target := &ret
133028	if err := gensupport.DecodeResponse(target, res); err != nil {
133029		return nil, err
133030	}
133031	return ret, nil
133032	// {
133033	//   "description": "Creates a TargetHttpProxy resource in the specified project and region using the data included in the request.",
133034	//   "flatPath": "projects/{project}/regions/{region}/targetHttpProxies",
133035	//   "httpMethod": "POST",
133036	//   "id": "compute.regionTargetHttpProxies.insert",
133037	//   "parameterOrder": [
133038	//     "project",
133039	//     "region"
133040	//   ],
133041	//   "parameters": {
133042	//     "project": {
133043	//       "description": "Project ID for this request.",
133044	//       "location": "path",
133045	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133046	//       "required": true,
133047	//       "type": "string"
133048	//     },
133049	//     "region": {
133050	//       "description": "Name of the region scoping this request.",
133051	//       "location": "path",
133052	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133053	//       "required": true,
133054	//       "type": "string"
133055	//     },
133056	//     "requestId": {
133057	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
133058	//       "location": "query",
133059	//       "type": "string"
133060	//     }
133061	//   },
133062	//   "path": "projects/{project}/regions/{region}/targetHttpProxies",
133063	//   "request": {
133064	//     "$ref": "TargetHttpProxy"
133065	//   },
133066	//   "response": {
133067	//     "$ref": "Operation"
133068	//   },
133069	//   "scopes": [
133070	//     "https://www.googleapis.com/auth/cloud-platform",
133071	//     "https://www.googleapis.com/auth/compute"
133072	//   ]
133073	// }
133074
133075}
133076
133077// method id "compute.regionTargetHttpProxies.list":
133078
133079type RegionTargetHttpProxiesListCall struct {
133080	s            *Service
133081	project      string
133082	region       string
133083	urlParams_   gensupport.URLParams
133084	ifNoneMatch_ string
133085	ctx_         context.Context
133086	header_      http.Header
133087}
133088
133089// List: Retrieves the list of TargetHttpProxy resources available to
133090// the specified project in the specified region.
133091//
133092// - project: Project ID for this request.
133093// - region: Name of the region scoping this request.
133094func (r *RegionTargetHttpProxiesService) List(project string, region string) *RegionTargetHttpProxiesListCall {
133095	c := &RegionTargetHttpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133096	c.project = project
133097	c.region = region
133098	return c
133099}
133100
133101// Filter sets the optional parameter "filter": A filter expression that
133102// filters resources listed in the response. The expression must specify
133103// the field name, a comparison operator, and the value that you want to
133104// use for filtering. The value must be a string, a number, or a
133105// boolean. The comparison operator must be either `=`, `!=`, `>`, or
133106// `<`. For example, if you are filtering Compute Engine instances, you
133107// can exclude instances named `example-instance` by specifying `name !=
133108// example-instance`. You can also filter nested fields. For example,
133109// you could specify `scheduling.automaticRestart = false` to include
133110// instances only if they are not scheduled for automatic restarts. You
133111// can use filtering on nested fields to filter based on resource
133112// labels. To filter on multiple expressions, provide each separate
133113// expression within parentheses. For example: ```
133114// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
133115// ``` By default, each expression is an `AND` expression. However, you
133116// can include `AND` and `OR` expressions explicitly. For example: ```
133117// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
133118// AND (scheduling.automaticRestart = true) ```
133119func (c *RegionTargetHttpProxiesListCall) Filter(filter string) *RegionTargetHttpProxiesListCall {
133120	c.urlParams_.Set("filter", filter)
133121	return c
133122}
133123
133124// MaxResults sets the optional parameter "maxResults": The maximum
133125// number of results per page that should be returned. If the number of
133126// available results is larger than `maxResults`, Compute Engine returns
133127// a `nextPageToken` that can be used to get the next page of results in
133128// subsequent list requests. Acceptable values are `0` to `500`,
133129// inclusive. (Default: `500`)
133130func (c *RegionTargetHttpProxiesListCall) MaxResults(maxResults int64) *RegionTargetHttpProxiesListCall {
133131	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
133132	return c
133133}
133134
133135// OrderBy sets the optional parameter "orderBy": Sorts list results by
133136// a certain order. By default, results are returned in alphanumerical
133137// order based on the resource name. You can also sort results in
133138// descending order based on the creation timestamp using
133139// `orderBy="creationTimestamp desc". This sorts results based on the
133140// `creationTimestamp` field in reverse chronological order (newest
133141// result first). Use this to sort resources like operations so that the
133142// newest operation is returned first. Currently, only sorting by `name`
133143// or `creationTimestamp desc` is supported.
133144func (c *RegionTargetHttpProxiesListCall) OrderBy(orderBy string) *RegionTargetHttpProxiesListCall {
133145	c.urlParams_.Set("orderBy", orderBy)
133146	return c
133147}
133148
133149// PageToken sets the optional parameter "pageToken": Specifies a page
133150// token to use. Set `pageToken` to the `nextPageToken` returned by a
133151// previous list request to get the next page of results.
133152func (c *RegionTargetHttpProxiesListCall) PageToken(pageToken string) *RegionTargetHttpProxiesListCall {
133153	c.urlParams_.Set("pageToken", pageToken)
133154	return c
133155}
133156
133157// ReturnPartialSuccess sets the optional parameter
133158// "returnPartialSuccess": Opt-in for partial success behavior which
133159// provides partial results in case of failure. The default value is
133160// false.
133161func (c *RegionTargetHttpProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionTargetHttpProxiesListCall {
133162	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
133163	return c
133164}
133165
133166// Fields allows partial responses to be retrieved. See
133167// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133168// for more information.
133169func (c *RegionTargetHttpProxiesListCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesListCall {
133170	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133171	return c
133172}
133173
133174// IfNoneMatch sets the optional parameter which makes the operation
133175// fail if the object's ETag matches the given value. This is useful for
133176// getting updates only after the object has changed since the last
133177// request. Use googleapi.IsNotModified to check whether the response
133178// error from Do is the result of In-None-Match.
133179func (c *RegionTargetHttpProxiesListCall) IfNoneMatch(entityTag string) *RegionTargetHttpProxiesListCall {
133180	c.ifNoneMatch_ = entityTag
133181	return c
133182}
133183
133184// Context sets the context to be used in this call's Do method. Any
133185// pending HTTP request will be aborted if the provided context is
133186// canceled.
133187func (c *RegionTargetHttpProxiesListCall) Context(ctx context.Context) *RegionTargetHttpProxiesListCall {
133188	c.ctx_ = ctx
133189	return c
133190}
133191
133192// Header returns an http.Header that can be modified by the caller to
133193// add HTTP headers to the request.
133194func (c *RegionTargetHttpProxiesListCall) Header() http.Header {
133195	if c.header_ == nil {
133196		c.header_ = make(http.Header)
133197	}
133198	return c.header_
133199}
133200
133201func (c *RegionTargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error) {
133202	reqHeaders := make(http.Header)
133203	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
133204	for k, v := range c.header_ {
133205		reqHeaders[k] = v
133206	}
133207	reqHeaders.Set("User-Agent", c.s.userAgent())
133208	if c.ifNoneMatch_ != "" {
133209		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
133210	}
133211	var body io.Reader = nil
133212	c.urlParams_.Set("alt", alt)
133213	c.urlParams_.Set("prettyPrint", "false")
133214	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies")
133215	urls += "?" + c.urlParams_.Encode()
133216	req, err := http.NewRequest("GET", urls, body)
133217	if err != nil {
133218		return nil, err
133219	}
133220	req.Header = reqHeaders
133221	googleapi.Expand(req.URL, map[string]string{
133222		"project": c.project,
133223		"region":  c.region,
133224	})
133225	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133226}
133227
133228// Do executes the "compute.regionTargetHttpProxies.list" call.
133229// Exactly one of *TargetHttpProxyList or error will be non-nil. Any
133230// non-2xx status code is an error. Response headers are in either
133231// *TargetHttpProxyList.ServerResponse.Header or (if a response was
133232// returned at all) in error.(*googleapi.Error).Header. Use
133233// googleapi.IsNotModified to check whether the returned error was
133234// because http.StatusNotModified was returned.
133235func (c *RegionTargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyList, error) {
133236	gensupport.SetOptions(c.urlParams_, opts...)
133237	res, err := c.doRequest("json")
133238	if res != nil && res.StatusCode == http.StatusNotModified {
133239		if res.Body != nil {
133240			res.Body.Close()
133241		}
133242		return nil, &googleapi.Error{
133243			Code:   res.StatusCode,
133244			Header: res.Header,
133245		}
133246	}
133247	if err != nil {
133248		return nil, err
133249	}
133250	defer googleapi.CloseBody(res)
133251	if err := googleapi.CheckResponse(res); err != nil {
133252		return nil, err
133253	}
133254	ret := &TargetHttpProxyList{
133255		ServerResponse: googleapi.ServerResponse{
133256			Header:         res.Header,
133257			HTTPStatusCode: res.StatusCode,
133258		},
133259	}
133260	target := &ret
133261	if err := gensupport.DecodeResponse(target, res); err != nil {
133262		return nil, err
133263	}
133264	return ret, nil
133265	// {
133266	//   "description": "Retrieves the list of TargetHttpProxy resources available to the specified project in the specified region.",
133267	//   "flatPath": "projects/{project}/regions/{region}/targetHttpProxies",
133268	//   "httpMethod": "GET",
133269	//   "id": "compute.regionTargetHttpProxies.list",
133270	//   "parameterOrder": [
133271	//     "project",
133272	//     "region"
133273	//   ],
133274	//   "parameters": {
133275	//     "filter": {
133276	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
133277	//       "location": "query",
133278	//       "type": "string"
133279	//     },
133280	//     "maxResults": {
133281	//       "default": "500",
133282	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
133283	//       "format": "uint32",
133284	//       "location": "query",
133285	//       "minimum": "0",
133286	//       "type": "integer"
133287	//     },
133288	//     "orderBy": {
133289	//       "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.",
133290	//       "location": "query",
133291	//       "type": "string"
133292	//     },
133293	//     "pageToken": {
133294	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
133295	//       "location": "query",
133296	//       "type": "string"
133297	//     },
133298	//     "project": {
133299	//       "description": "Project ID for this request.",
133300	//       "location": "path",
133301	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133302	//       "required": true,
133303	//       "type": "string"
133304	//     },
133305	//     "region": {
133306	//       "description": "Name of the region scoping this request.",
133307	//       "location": "path",
133308	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133309	//       "required": true,
133310	//       "type": "string"
133311	//     },
133312	//     "returnPartialSuccess": {
133313	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
133314	//       "location": "query",
133315	//       "type": "boolean"
133316	//     }
133317	//   },
133318	//   "path": "projects/{project}/regions/{region}/targetHttpProxies",
133319	//   "response": {
133320	//     "$ref": "TargetHttpProxyList"
133321	//   },
133322	//   "scopes": [
133323	//     "https://www.googleapis.com/auth/cloud-platform",
133324	//     "https://www.googleapis.com/auth/compute",
133325	//     "https://www.googleapis.com/auth/compute.readonly"
133326	//   ]
133327	// }
133328
133329}
133330
133331// Pages invokes f for each page of results.
133332// A non-nil error returned from f will halt the iteration.
133333// The provided context supersedes any context provided to the Context method.
133334func (c *RegionTargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpProxyList) error) error {
133335	c.ctx_ = ctx
133336	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
133337	for {
133338		x, err := c.Do()
133339		if err != nil {
133340			return err
133341		}
133342		if err := f(x); err != nil {
133343			return err
133344		}
133345		if x.NextPageToken == "" {
133346			return nil
133347		}
133348		c.PageToken(x.NextPageToken)
133349	}
133350}
133351
133352// method id "compute.regionTargetHttpProxies.setUrlMap":
133353
133354type RegionTargetHttpProxiesSetUrlMapCall struct {
133355	s               *Service
133356	project         string
133357	region          string
133358	targetHttpProxy string
133359	urlmapreference *UrlMapReference
133360	urlParams_      gensupport.URLParams
133361	ctx_            context.Context
133362	header_         http.Header
133363}
133364
133365// SetUrlMap: Changes the URL map for TargetHttpProxy.
133366//
133367// - project: Project ID for this request.
133368// - region: Name of the region scoping this request.
133369// - targetHttpProxy: Name of the TargetHttpProxy to set a URL map for.
133370func (r *RegionTargetHttpProxiesService) SetUrlMap(project string, region string, targetHttpProxy string, urlmapreference *UrlMapReference) *RegionTargetHttpProxiesSetUrlMapCall {
133371	c := &RegionTargetHttpProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133372	c.project = project
133373	c.region = region
133374	c.targetHttpProxy = targetHttpProxy
133375	c.urlmapreference = urlmapreference
133376	return c
133377}
133378
133379// RequestId sets the optional parameter "requestId": An optional
133380// request ID to identify requests. Specify a unique request ID so that
133381// if you must retry your request, the server will know to ignore the
133382// request if it has already been completed. For example, consider a
133383// situation where you make an initial request and the request times
133384// out. If you make the request again with the same request ID, the
133385// server can check if original operation with the same request ID was
133386// received, and if so, will ignore the second request. This prevents
133387// clients from accidentally creating duplicate commitments. The request
133388// ID must be a valid UUID with the exception that zero UUID is not
133389// supported ( 00000000-0000-0000-0000-000000000000).
133390func (c *RegionTargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *RegionTargetHttpProxiesSetUrlMapCall {
133391	c.urlParams_.Set("requestId", requestId)
133392	return c
133393}
133394
133395// Fields allows partial responses to be retrieved. See
133396// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133397// for more information.
133398func (c *RegionTargetHttpProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesSetUrlMapCall {
133399	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133400	return c
133401}
133402
133403// Context sets the context to be used in this call's Do method. Any
133404// pending HTTP request will be aborted if the provided context is
133405// canceled.
133406func (c *RegionTargetHttpProxiesSetUrlMapCall) Context(ctx context.Context) *RegionTargetHttpProxiesSetUrlMapCall {
133407	c.ctx_ = ctx
133408	return c
133409}
133410
133411// Header returns an http.Header that can be modified by the caller to
133412// add HTTP headers to the request.
133413func (c *RegionTargetHttpProxiesSetUrlMapCall) Header() http.Header {
133414	if c.header_ == nil {
133415		c.header_ = make(http.Header)
133416	}
133417	return c.header_
133418}
133419
133420func (c *RegionTargetHttpProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
133421	reqHeaders := make(http.Header)
133422	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
133423	for k, v := range c.header_ {
133424		reqHeaders[k] = v
133425	}
133426	reqHeaders.Set("User-Agent", c.s.userAgent())
133427	var body io.Reader = nil
133428	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
133429	if err != nil {
133430		return nil, err
133431	}
133432	reqHeaders.Set("Content-Type", "application/json")
133433	c.urlParams_.Set("alt", alt)
133434	c.urlParams_.Set("prettyPrint", "false")
133435	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap")
133436	urls += "?" + c.urlParams_.Encode()
133437	req, err := http.NewRequest("POST", urls, body)
133438	if err != nil {
133439		return nil, err
133440	}
133441	req.Header = reqHeaders
133442	googleapi.Expand(req.URL, map[string]string{
133443		"project":         c.project,
133444		"region":          c.region,
133445		"targetHttpProxy": c.targetHttpProxy,
133446	})
133447	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133448}
133449
133450// Do executes the "compute.regionTargetHttpProxies.setUrlMap" call.
133451// Exactly one of *Operation or error will be non-nil. Any non-2xx
133452// status code is an error. Response headers are in either
133453// *Operation.ServerResponse.Header or (if a response was returned at
133454// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133455// to check whether the returned error was because
133456// http.StatusNotModified was returned.
133457func (c *RegionTargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
133458	gensupport.SetOptions(c.urlParams_, opts...)
133459	res, err := c.doRequest("json")
133460	if res != nil && res.StatusCode == http.StatusNotModified {
133461		if res.Body != nil {
133462			res.Body.Close()
133463		}
133464		return nil, &googleapi.Error{
133465			Code:   res.StatusCode,
133466			Header: res.Header,
133467		}
133468	}
133469	if err != nil {
133470		return nil, err
133471	}
133472	defer googleapi.CloseBody(res)
133473	if err := googleapi.CheckResponse(res); err != nil {
133474		return nil, err
133475	}
133476	ret := &Operation{
133477		ServerResponse: googleapi.ServerResponse{
133478			Header:         res.Header,
133479			HTTPStatusCode: res.StatusCode,
133480		},
133481	}
133482	target := &ret
133483	if err := gensupport.DecodeResponse(target, res); err != nil {
133484		return nil, err
133485	}
133486	return ret, nil
133487	// {
133488	//   "description": "Changes the URL map for TargetHttpProxy.",
133489	//   "flatPath": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
133490	//   "httpMethod": "POST",
133491	//   "id": "compute.regionTargetHttpProxies.setUrlMap",
133492	//   "parameterOrder": [
133493	//     "project",
133494	//     "region",
133495	//     "targetHttpProxy"
133496	//   ],
133497	//   "parameters": {
133498	//     "project": {
133499	//       "description": "Project ID for this request.",
133500	//       "location": "path",
133501	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133502	//       "required": true,
133503	//       "type": "string"
133504	//     },
133505	//     "region": {
133506	//       "description": "Name of the region scoping this request.",
133507	//       "location": "path",
133508	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133509	//       "required": true,
133510	//       "type": "string"
133511	//     },
133512	//     "requestId": {
133513	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
133514	//       "location": "query",
133515	//       "type": "string"
133516	//     },
133517	//     "targetHttpProxy": {
133518	//       "description": "Name of the TargetHttpProxy to set a URL map for.",
133519	//       "location": "path",
133520	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
133521	//       "required": true,
133522	//       "type": "string"
133523	//     }
133524	//   },
133525	//   "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
133526	//   "request": {
133527	//     "$ref": "UrlMapReference"
133528	//   },
133529	//   "response": {
133530	//     "$ref": "Operation"
133531	//   },
133532	//   "scopes": [
133533	//     "https://www.googleapis.com/auth/cloud-platform",
133534	//     "https://www.googleapis.com/auth/compute"
133535	//   ]
133536	// }
133537
133538}
133539
133540// method id "compute.regionTargetHttpsProxies.delete":
133541
133542type RegionTargetHttpsProxiesDeleteCall struct {
133543	s                *Service
133544	project          string
133545	region           string
133546	targetHttpsProxy string
133547	urlParams_       gensupport.URLParams
133548	ctx_             context.Context
133549	header_          http.Header
133550}
133551
133552// Delete: Deletes the specified TargetHttpsProxy resource.
133553//
133554// - project: Project ID for this request.
133555// - region: Name of the region scoping this request.
133556// - targetHttpsProxy: Name of the TargetHttpsProxy resource to delete.
133557func (r *RegionTargetHttpsProxiesService) Delete(project string, region string, targetHttpsProxy string) *RegionTargetHttpsProxiesDeleteCall {
133558	c := &RegionTargetHttpsProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133559	c.project = project
133560	c.region = region
133561	c.targetHttpsProxy = targetHttpsProxy
133562	return c
133563}
133564
133565// RequestId sets the optional parameter "requestId": An optional
133566// request ID to identify requests. Specify a unique request ID so that
133567// if you must retry your request, the server will know to ignore the
133568// request if it has already been completed. For example, consider a
133569// situation where you make an initial request and the request times
133570// out. If you make the request again with the same request ID, the
133571// server can check if original operation with the same request ID was
133572// received, and if so, will ignore the second request. This prevents
133573// clients from accidentally creating duplicate commitments. The request
133574// ID must be a valid UUID with the exception that zero UUID is not
133575// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
133576// MixerMutationRequestBuilder
133577func (c *RegionTargetHttpsProxiesDeleteCall) RequestId(requestId string) *RegionTargetHttpsProxiesDeleteCall {
133578	c.urlParams_.Set("requestId", requestId)
133579	return c
133580}
133581
133582// Fields allows partial responses to be retrieved. See
133583// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133584// for more information.
133585func (c *RegionTargetHttpsProxiesDeleteCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesDeleteCall {
133586	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133587	return c
133588}
133589
133590// Context sets the context to be used in this call's Do method. Any
133591// pending HTTP request will be aborted if the provided context is
133592// canceled.
133593func (c *RegionTargetHttpsProxiesDeleteCall) Context(ctx context.Context) *RegionTargetHttpsProxiesDeleteCall {
133594	c.ctx_ = ctx
133595	return c
133596}
133597
133598// Header returns an http.Header that can be modified by the caller to
133599// add HTTP headers to the request.
133600func (c *RegionTargetHttpsProxiesDeleteCall) Header() http.Header {
133601	if c.header_ == nil {
133602		c.header_ = make(http.Header)
133603	}
133604	return c.header_
133605}
133606
133607func (c *RegionTargetHttpsProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
133608	reqHeaders := make(http.Header)
133609	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
133610	for k, v := range c.header_ {
133611		reqHeaders[k] = v
133612	}
133613	reqHeaders.Set("User-Agent", c.s.userAgent())
133614	var body io.Reader = nil
133615	c.urlParams_.Set("alt", alt)
133616	c.urlParams_.Set("prettyPrint", "false")
133617	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}")
133618	urls += "?" + c.urlParams_.Encode()
133619	req, err := http.NewRequest("DELETE", urls, body)
133620	if err != nil {
133621		return nil, err
133622	}
133623	req.Header = reqHeaders
133624	googleapi.Expand(req.URL, map[string]string{
133625		"project":          c.project,
133626		"region":           c.region,
133627		"targetHttpsProxy": c.targetHttpsProxy,
133628	})
133629	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133630}
133631
133632// Do executes the "compute.regionTargetHttpsProxies.delete" call.
133633// Exactly one of *Operation or error will be non-nil. Any non-2xx
133634// status code is an error. Response headers are in either
133635// *Operation.ServerResponse.Header or (if a response was returned at
133636// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133637// to check whether the returned error was because
133638// http.StatusNotModified was returned.
133639func (c *RegionTargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
133640	gensupport.SetOptions(c.urlParams_, opts...)
133641	res, err := c.doRequest("json")
133642	if res != nil && res.StatusCode == http.StatusNotModified {
133643		if res.Body != nil {
133644			res.Body.Close()
133645		}
133646		return nil, &googleapi.Error{
133647			Code:   res.StatusCode,
133648			Header: res.Header,
133649		}
133650	}
133651	if err != nil {
133652		return nil, err
133653	}
133654	defer googleapi.CloseBody(res)
133655	if err := googleapi.CheckResponse(res); err != nil {
133656		return nil, err
133657	}
133658	ret := &Operation{
133659		ServerResponse: googleapi.ServerResponse{
133660			Header:         res.Header,
133661			HTTPStatusCode: res.StatusCode,
133662		},
133663	}
133664	target := &ret
133665	if err := gensupport.DecodeResponse(target, res); err != nil {
133666		return nil, err
133667	}
133668	return ret, nil
133669	// {
133670	//   "description": "Deletes the specified TargetHttpsProxy resource.",
133671	//   "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
133672	//   "httpMethod": "DELETE",
133673	//   "id": "compute.regionTargetHttpsProxies.delete",
133674	//   "parameterOrder": [
133675	//     "project",
133676	//     "region",
133677	//     "targetHttpsProxy"
133678	//   ],
133679	//   "parameters": {
133680	//     "project": {
133681	//       "description": "Project ID for this request.",
133682	//       "location": "path",
133683	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133684	//       "required": true,
133685	//       "type": "string"
133686	//     },
133687	//     "region": {
133688	//       "description": "Name of the region scoping this request.",
133689	//       "location": "path",
133690	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133691	//       "required": true,
133692	//       "type": "string"
133693	//     },
133694	//     "requestId": {
133695	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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",
133696	//       "location": "query",
133697	//       "type": "string"
133698	//     },
133699	//     "targetHttpsProxy": {
133700	//       "description": "Name of the TargetHttpsProxy resource to delete.",
133701	//       "location": "path",
133702	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
133703	//       "required": true,
133704	//       "type": "string"
133705	//     }
133706	//   },
133707	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
133708	//   "response": {
133709	//     "$ref": "Operation"
133710	//   },
133711	//   "scopes": [
133712	//     "https://www.googleapis.com/auth/cloud-platform",
133713	//     "https://www.googleapis.com/auth/compute"
133714	//   ]
133715	// }
133716
133717}
133718
133719// method id "compute.regionTargetHttpsProxies.get":
133720
133721type RegionTargetHttpsProxiesGetCall struct {
133722	s                *Service
133723	project          string
133724	region           string
133725	targetHttpsProxy string
133726	urlParams_       gensupport.URLParams
133727	ifNoneMatch_     string
133728	ctx_             context.Context
133729	header_          http.Header
133730}
133731
133732// Get: Returns the specified TargetHttpsProxy resource in the specified
133733// region. Gets a list of available target HTTP proxies by making a
133734// list() request.
133735//
133736// - project: Project ID for this request.
133737// - region: Name of the region scoping this request.
133738// - targetHttpsProxy: Name of the TargetHttpsProxy resource to return.
133739func (r *RegionTargetHttpsProxiesService) Get(project string, region string, targetHttpsProxy string) *RegionTargetHttpsProxiesGetCall {
133740	c := &RegionTargetHttpsProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133741	c.project = project
133742	c.region = region
133743	c.targetHttpsProxy = targetHttpsProxy
133744	return c
133745}
133746
133747// Fields allows partial responses to be retrieved. See
133748// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133749// for more information.
133750func (c *RegionTargetHttpsProxiesGetCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesGetCall {
133751	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133752	return c
133753}
133754
133755// IfNoneMatch sets the optional parameter which makes the operation
133756// fail if the object's ETag matches the given value. This is useful for
133757// getting updates only after the object has changed since the last
133758// request. Use googleapi.IsNotModified to check whether the response
133759// error from Do is the result of In-None-Match.
133760func (c *RegionTargetHttpsProxiesGetCall) IfNoneMatch(entityTag string) *RegionTargetHttpsProxiesGetCall {
133761	c.ifNoneMatch_ = entityTag
133762	return c
133763}
133764
133765// Context sets the context to be used in this call's Do method. Any
133766// pending HTTP request will be aborted if the provided context is
133767// canceled.
133768func (c *RegionTargetHttpsProxiesGetCall) Context(ctx context.Context) *RegionTargetHttpsProxiesGetCall {
133769	c.ctx_ = ctx
133770	return c
133771}
133772
133773// Header returns an http.Header that can be modified by the caller to
133774// add HTTP headers to the request.
133775func (c *RegionTargetHttpsProxiesGetCall) Header() http.Header {
133776	if c.header_ == nil {
133777		c.header_ = make(http.Header)
133778	}
133779	return c.header_
133780}
133781
133782func (c *RegionTargetHttpsProxiesGetCall) doRequest(alt string) (*http.Response, error) {
133783	reqHeaders := make(http.Header)
133784	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
133785	for k, v := range c.header_ {
133786		reqHeaders[k] = v
133787	}
133788	reqHeaders.Set("User-Agent", c.s.userAgent())
133789	if c.ifNoneMatch_ != "" {
133790		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
133791	}
133792	var body io.Reader = nil
133793	c.urlParams_.Set("alt", alt)
133794	c.urlParams_.Set("prettyPrint", "false")
133795	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}")
133796	urls += "?" + c.urlParams_.Encode()
133797	req, err := http.NewRequest("GET", urls, body)
133798	if err != nil {
133799		return nil, err
133800	}
133801	req.Header = reqHeaders
133802	googleapi.Expand(req.URL, map[string]string{
133803		"project":          c.project,
133804		"region":           c.region,
133805		"targetHttpsProxy": c.targetHttpsProxy,
133806	})
133807	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133808}
133809
133810// Do executes the "compute.regionTargetHttpsProxies.get" call.
133811// Exactly one of *TargetHttpsProxy or error will be non-nil. Any
133812// non-2xx status code is an error. Response headers are in either
133813// *TargetHttpsProxy.ServerResponse.Header or (if a response was
133814// returned at all) in error.(*googleapi.Error).Header. Use
133815// googleapi.IsNotModified to check whether the returned error was
133816// because http.StatusNotModified was returned.
133817func (c *RegionTargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxy, error) {
133818	gensupport.SetOptions(c.urlParams_, opts...)
133819	res, err := c.doRequest("json")
133820	if res != nil && res.StatusCode == http.StatusNotModified {
133821		if res.Body != nil {
133822			res.Body.Close()
133823		}
133824		return nil, &googleapi.Error{
133825			Code:   res.StatusCode,
133826			Header: res.Header,
133827		}
133828	}
133829	if err != nil {
133830		return nil, err
133831	}
133832	defer googleapi.CloseBody(res)
133833	if err := googleapi.CheckResponse(res); err != nil {
133834		return nil, err
133835	}
133836	ret := &TargetHttpsProxy{
133837		ServerResponse: googleapi.ServerResponse{
133838			Header:         res.Header,
133839			HTTPStatusCode: res.StatusCode,
133840		},
133841	}
133842	target := &ret
133843	if err := gensupport.DecodeResponse(target, res); err != nil {
133844		return nil, err
133845	}
133846	return ret, nil
133847	// {
133848	//   "description": "Returns the specified TargetHttpsProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.",
133849	//   "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
133850	//   "httpMethod": "GET",
133851	//   "id": "compute.regionTargetHttpsProxies.get",
133852	//   "parameterOrder": [
133853	//     "project",
133854	//     "region",
133855	//     "targetHttpsProxy"
133856	//   ],
133857	//   "parameters": {
133858	//     "project": {
133859	//       "description": "Project ID for this request.",
133860	//       "location": "path",
133861	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133862	//       "required": true,
133863	//       "type": "string"
133864	//     },
133865	//     "region": {
133866	//       "description": "Name of the region scoping this request.",
133867	//       "location": "path",
133868	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133869	//       "required": true,
133870	//       "type": "string"
133871	//     },
133872	//     "targetHttpsProxy": {
133873	//       "description": "Name of the TargetHttpsProxy resource to return.",
133874	//       "location": "path",
133875	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
133876	//       "required": true,
133877	//       "type": "string"
133878	//     }
133879	//   },
133880	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
133881	//   "response": {
133882	//     "$ref": "TargetHttpsProxy"
133883	//   },
133884	//   "scopes": [
133885	//     "https://www.googleapis.com/auth/cloud-platform",
133886	//     "https://www.googleapis.com/auth/compute",
133887	//     "https://www.googleapis.com/auth/compute.readonly"
133888	//   ]
133889	// }
133890
133891}
133892
133893// method id "compute.regionTargetHttpsProxies.insert":
133894
133895type RegionTargetHttpsProxiesInsertCall struct {
133896	s                *Service
133897	project          string
133898	region           string
133899	targethttpsproxy *TargetHttpsProxy
133900	urlParams_       gensupport.URLParams
133901	ctx_             context.Context
133902	header_          http.Header
133903}
133904
133905// Insert: Creates a TargetHttpsProxy resource in the specified project
133906// and region using the data included in the request.
133907//
133908// - project: Project ID for this request.
133909// - region: Name of the region scoping this request.
133910func (r *RegionTargetHttpsProxiesService) Insert(project string, region string, targethttpsproxy *TargetHttpsProxy) *RegionTargetHttpsProxiesInsertCall {
133911	c := &RegionTargetHttpsProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133912	c.project = project
133913	c.region = region
133914	c.targethttpsproxy = targethttpsproxy
133915	return c
133916}
133917
133918// RequestId sets the optional parameter "requestId": An optional
133919// request ID to identify requests. Specify a unique request ID so that
133920// if you must retry your request, the server will know to ignore the
133921// request if it has already been completed. For example, consider a
133922// situation where you make an initial request and the request times
133923// out. If you make the request again with the same request ID, the
133924// server can check if original operation with the same request ID was
133925// received, and if so, will ignore the second request. This prevents
133926// clients from accidentally creating duplicate commitments. The request
133927// ID must be a valid UUID with the exception that zero UUID is not
133928// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
133929// MixerMutationRequestBuilder
133930func (c *RegionTargetHttpsProxiesInsertCall) RequestId(requestId string) *RegionTargetHttpsProxiesInsertCall {
133931	c.urlParams_.Set("requestId", requestId)
133932	return c
133933}
133934
133935// Fields allows partial responses to be retrieved. See
133936// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133937// for more information.
133938func (c *RegionTargetHttpsProxiesInsertCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesInsertCall {
133939	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133940	return c
133941}
133942
133943// Context sets the context to be used in this call's Do method. Any
133944// pending HTTP request will be aborted if the provided context is
133945// canceled.
133946func (c *RegionTargetHttpsProxiesInsertCall) Context(ctx context.Context) *RegionTargetHttpsProxiesInsertCall {
133947	c.ctx_ = ctx
133948	return c
133949}
133950
133951// Header returns an http.Header that can be modified by the caller to
133952// add HTTP headers to the request.
133953func (c *RegionTargetHttpsProxiesInsertCall) Header() http.Header {
133954	if c.header_ == nil {
133955		c.header_ = make(http.Header)
133956	}
133957	return c.header_
133958}
133959
133960func (c *RegionTargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
133961	reqHeaders := make(http.Header)
133962	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
133963	for k, v := range c.header_ {
133964		reqHeaders[k] = v
133965	}
133966	reqHeaders.Set("User-Agent", c.s.userAgent())
133967	var body io.Reader = nil
133968	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
133969	if err != nil {
133970		return nil, err
133971	}
133972	reqHeaders.Set("Content-Type", "application/json")
133973	c.urlParams_.Set("alt", alt)
133974	c.urlParams_.Set("prettyPrint", "false")
133975	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies")
133976	urls += "?" + c.urlParams_.Encode()
133977	req, err := http.NewRequest("POST", urls, body)
133978	if err != nil {
133979		return nil, err
133980	}
133981	req.Header = reqHeaders
133982	googleapi.Expand(req.URL, map[string]string{
133983		"project": c.project,
133984		"region":  c.region,
133985	})
133986	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133987}
133988
133989// Do executes the "compute.regionTargetHttpsProxies.insert" call.
133990// Exactly one of *Operation or error will be non-nil. Any non-2xx
133991// status code is an error. Response headers are in either
133992// *Operation.ServerResponse.Header or (if a response was returned at
133993// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133994// to check whether the returned error was because
133995// http.StatusNotModified was returned.
133996func (c *RegionTargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
133997	gensupport.SetOptions(c.urlParams_, opts...)
133998	res, err := c.doRequest("json")
133999	if res != nil && res.StatusCode == http.StatusNotModified {
134000		if res.Body != nil {
134001			res.Body.Close()
134002		}
134003		return nil, &googleapi.Error{
134004			Code:   res.StatusCode,
134005			Header: res.Header,
134006		}
134007	}
134008	if err != nil {
134009		return nil, err
134010	}
134011	defer googleapi.CloseBody(res)
134012	if err := googleapi.CheckResponse(res); err != nil {
134013		return nil, err
134014	}
134015	ret := &Operation{
134016		ServerResponse: googleapi.ServerResponse{
134017			Header:         res.Header,
134018			HTTPStatusCode: res.StatusCode,
134019		},
134020	}
134021	target := &ret
134022	if err := gensupport.DecodeResponse(target, res); err != nil {
134023		return nil, err
134024	}
134025	return ret, nil
134026	// {
134027	//   "description": "Creates a TargetHttpsProxy resource in the specified project and region using the data included in the request.",
134028	//   "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies",
134029	//   "httpMethod": "POST",
134030	//   "id": "compute.regionTargetHttpsProxies.insert",
134031	//   "parameterOrder": [
134032	//     "project",
134033	//     "region"
134034	//   ],
134035	//   "parameters": {
134036	//     "project": {
134037	//       "description": "Project ID for this request.",
134038	//       "location": "path",
134039	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134040	//       "required": true,
134041	//       "type": "string"
134042	//     },
134043	//     "region": {
134044	//       "description": "Name of the region scoping this request.",
134045	//       "location": "path",
134046	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134047	//       "required": true,
134048	//       "type": "string"
134049	//     },
134050	//     "requestId": {
134051	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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",
134052	//       "location": "query",
134053	//       "type": "string"
134054	//     }
134055	//   },
134056	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies",
134057	//   "request": {
134058	//     "$ref": "TargetHttpsProxy"
134059	//   },
134060	//   "response": {
134061	//     "$ref": "Operation"
134062	//   },
134063	//   "scopes": [
134064	//     "https://www.googleapis.com/auth/cloud-platform",
134065	//     "https://www.googleapis.com/auth/compute"
134066	//   ]
134067	// }
134068
134069}
134070
134071// method id "compute.regionTargetHttpsProxies.list":
134072
134073type RegionTargetHttpsProxiesListCall struct {
134074	s            *Service
134075	project      string
134076	region       string
134077	urlParams_   gensupport.URLParams
134078	ifNoneMatch_ string
134079	ctx_         context.Context
134080	header_      http.Header
134081}
134082
134083// List: Retrieves the list of TargetHttpsProxy resources available to
134084// the specified project in the specified region.
134085//
134086// - project: Project ID for this request.
134087// - region: Name of the region scoping this request.
134088func (r *RegionTargetHttpsProxiesService) List(project string, region string) *RegionTargetHttpsProxiesListCall {
134089	c := &RegionTargetHttpsProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134090	c.project = project
134091	c.region = region
134092	return c
134093}
134094
134095// Filter sets the optional parameter "filter": A filter expression that
134096// filters resources listed in the response. The expression must specify
134097// the field name, a comparison operator, and the value that you want to
134098// use for filtering. The value must be a string, a number, or a
134099// boolean. The comparison operator must be either `=`, `!=`, `>`, or
134100// `<`. For example, if you are filtering Compute Engine instances, you
134101// can exclude instances named `example-instance` by specifying `name !=
134102// example-instance`. You can also filter nested fields. For example,
134103// you could specify `scheduling.automaticRestart = false` to include
134104// instances only if they are not scheduled for automatic restarts. You
134105// can use filtering on nested fields to filter based on resource
134106// labels. To filter on multiple expressions, provide each separate
134107// expression within parentheses. For example: ```
134108// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
134109// ``` By default, each expression is an `AND` expression. However, you
134110// can include `AND` and `OR` expressions explicitly. For example: ```
134111// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
134112// AND (scheduling.automaticRestart = true) ```
134113func (c *RegionTargetHttpsProxiesListCall) Filter(filter string) *RegionTargetHttpsProxiesListCall {
134114	c.urlParams_.Set("filter", filter)
134115	return c
134116}
134117
134118// MaxResults sets the optional parameter "maxResults": The maximum
134119// number of results per page that should be returned. If the number of
134120// available results is larger than `maxResults`, Compute Engine returns
134121// a `nextPageToken` that can be used to get the next page of results in
134122// subsequent list requests. Acceptable values are `0` to `500`,
134123// inclusive. (Default: `500`)
134124func (c *RegionTargetHttpsProxiesListCall) MaxResults(maxResults int64) *RegionTargetHttpsProxiesListCall {
134125	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
134126	return c
134127}
134128
134129// OrderBy sets the optional parameter "orderBy": Sorts list results by
134130// a certain order. By default, results are returned in alphanumerical
134131// order based on the resource name. You can also sort results in
134132// descending order based on the creation timestamp using
134133// `orderBy="creationTimestamp desc". This sorts results based on the
134134// `creationTimestamp` field in reverse chronological order (newest
134135// result first). Use this to sort resources like operations so that the
134136// newest operation is returned first. Currently, only sorting by `name`
134137// or `creationTimestamp desc` is supported.
134138func (c *RegionTargetHttpsProxiesListCall) OrderBy(orderBy string) *RegionTargetHttpsProxiesListCall {
134139	c.urlParams_.Set("orderBy", orderBy)
134140	return c
134141}
134142
134143// PageToken sets the optional parameter "pageToken": Specifies a page
134144// token to use. Set `pageToken` to the `nextPageToken` returned by a
134145// previous list request to get the next page of results.
134146func (c *RegionTargetHttpsProxiesListCall) PageToken(pageToken string) *RegionTargetHttpsProxiesListCall {
134147	c.urlParams_.Set("pageToken", pageToken)
134148	return c
134149}
134150
134151// ReturnPartialSuccess sets the optional parameter
134152// "returnPartialSuccess": Opt-in for partial success behavior which
134153// provides partial results in case of failure. The default value is
134154// false.
134155func (c *RegionTargetHttpsProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionTargetHttpsProxiesListCall {
134156	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
134157	return c
134158}
134159
134160// Fields allows partial responses to be retrieved. See
134161// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134162// for more information.
134163func (c *RegionTargetHttpsProxiesListCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesListCall {
134164	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134165	return c
134166}
134167
134168// IfNoneMatch sets the optional parameter which makes the operation
134169// fail if the object's ETag matches the given value. This is useful for
134170// getting updates only after the object has changed since the last
134171// request. Use googleapi.IsNotModified to check whether the response
134172// error from Do is the result of In-None-Match.
134173func (c *RegionTargetHttpsProxiesListCall) IfNoneMatch(entityTag string) *RegionTargetHttpsProxiesListCall {
134174	c.ifNoneMatch_ = entityTag
134175	return c
134176}
134177
134178// Context sets the context to be used in this call's Do method. Any
134179// pending HTTP request will be aborted if the provided context is
134180// canceled.
134181func (c *RegionTargetHttpsProxiesListCall) Context(ctx context.Context) *RegionTargetHttpsProxiesListCall {
134182	c.ctx_ = ctx
134183	return c
134184}
134185
134186// Header returns an http.Header that can be modified by the caller to
134187// add HTTP headers to the request.
134188func (c *RegionTargetHttpsProxiesListCall) Header() http.Header {
134189	if c.header_ == nil {
134190		c.header_ = make(http.Header)
134191	}
134192	return c.header_
134193}
134194
134195func (c *RegionTargetHttpsProxiesListCall) doRequest(alt string) (*http.Response, error) {
134196	reqHeaders := make(http.Header)
134197	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
134198	for k, v := range c.header_ {
134199		reqHeaders[k] = v
134200	}
134201	reqHeaders.Set("User-Agent", c.s.userAgent())
134202	if c.ifNoneMatch_ != "" {
134203		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
134204	}
134205	var body io.Reader = nil
134206	c.urlParams_.Set("alt", alt)
134207	c.urlParams_.Set("prettyPrint", "false")
134208	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies")
134209	urls += "?" + c.urlParams_.Encode()
134210	req, err := http.NewRequest("GET", urls, body)
134211	if err != nil {
134212		return nil, err
134213	}
134214	req.Header = reqHeaders
134215	googleapi.Expand(req.URL, map[string]string{
134216		"project": c.project,
134217		"region":  c.region,
134218	})
134219	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134220}
134221
134222// Do executes the "compute.regionTargetHttpsProxies.list" call.
134223// Exactly one of *TargetHttpsProxyList or error will be non-nil. Any
134224// non-2xx status code is an error. Response headers are in either
134225// *TargetHttpsProxyList.ServerResponse.Header or (if a response was
134226// returned at all) in error.(*googleapi.Error).Header. Use
134227// googleapi.IsNotModified to check whether the returned error was
134228// because http.StatusNotModified was returned.
134229func (c *RegionTargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyList, error) {
134230	gensupport.SetOptions(c.urlParams_, opts...)
134231	res, err := c.doRequest("json")
134232	if res != nil && res.StatusCode == http.StatusNotModified {
134233		if res.Body != nil {
134234			res.Body.Close()
134235		}
134236		return nil, &googleapi.Error{
134237			Code:   res.StatusCode,
134238			Header: res.Header,
134239		}
134240	}
134241	if err != nil {
134242		return nil, err
134243	}
134244	defer googleapi.CloseBody(res)
134245	if err := googleapi.CheckResponse(res); err != nil {
134246		return nil, err
134247	}
134248	ret := &TargetHttpsProxyList{
134249		ServerResponse: googleapi.ServerResponse{
134250			Header:         res.Header,
134251			HTTPStatusCode: res.StatusCode,
134252		},
134253	}
134254	target := &ret
134255	if err := gensupport.DecodeResponse(target, res); err != nil {
134256		return nil, err
134257	}
134258	return ret, nil
134259	// {
134260	//   "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project in the specified region.",
134261	//   "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies",
134262	//   "httpMethod": "GET",
134263	//   "id": "compute.regionTargetHttpsProxies.list",
134264	//   "parameterOrder": [
134265	//     "project",
134266	//     "region"
134267	//   ],
134268	//   "parameters": {
134269	//     "filter": {
134270	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
134271	//       "location": "query",
134272	//       "type": "string"
134273	//     },
134274	//     "maxResults": {
134275	//       "default": "500",
134276	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
134277	//       "format": "uint32",
134278	//       "location": "query",
134279	//       "minimum": "0",
134280	//       "type": "integer"
134281	//     },
134282	//     "orderBy": {
134283	//       "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.",
134284	//       "location": "query",
134285	//       "type": "string"
134286	//     },
134287	//     "pageToken": {
134288	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
134289	//       "location": "query",
134290	//       "type": "string"
134291	//     },
134292	//     "project": {
134293	//       "description": "Project ID for this request.",
134294	//       "location": "path",
134295	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134296	//       "required": true,
134297	//       "type": "string"
134298	//     },
134299	//     "region": {
134300	//       "description": "Name of the region scoping this request.",
134301	//       "location": "path",
134302	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134303	//       "required": true,
134304	//       "type": "string"
134305	//     },
134306	//     "returnPartialSuccess": {
134307	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
134308	//       "location": "query",
134309	//       "type": "boolean"
134310	//     }
134311	//   },
134312	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies",
134313	//   "response": {
134314	//     "$ref": "TargetHttpsProxyList"
134315	//   },
134316	//   "scopes": [
134317	//     "https://www.googleapis.com/auth/cloud-platform",
134318	//     "https://www.googleapis.com/auth/compute",
134319	//     "https://www.googleapis.com/auth/compute.readonly"
134320	//   ]
134321	// }
134322
134323}
134324
134325// Pages invokes f for each page of results.
134326// A non-nil error returned from f will halt the iteration.
134327// The provided context supersedes any context provided to the Context method.
134328func (c *RegionTargetHttpsProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyList) error) error {
134329	c.ctx_ = ctx
134330	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
134331	for {
134332		x, err := c.Do()
134333		if err != nil {
134334			return err
134335		}
134336		if err := f(x); err != nil {
134337			return err
134338		}
134339		if x.NextPageToken == "" {
134340			return nil
134341		}
134342		c.PageToken(x.NextPageToken)
134343	}
134344}
134345
134346// method id "compute.regionTargetHttpsProxies.setSslCertificates":
134347
134348type RegionTargetHttpsProxiesSetSslCertificatesCall struct {
134349	s                                                 *Service
134350	project                                           string
134351	region                                            string
134352	targetHttpsProxy                                  string
134353	regiontargethttpsproxiessetsslcertificatesrequest *RegionTargetHttpsProxiesSetSslCertificatesRequest
134354	urlParams_                                        gensupport.URLParams
134355	ctx_                                              context.Context
134356	header_                                           http.Header
134357}
134358
134359// SetSslCertificates: Replaces SslCertificates for TargetHttpsProxy.
134360//
134361// - project: Project ID for this request.
134362// - region: Name of the region scoping this request.
134363// - targetHttpsProxy: Name of the TargetHttpsProxy resource to set an
134364//   SslCertificates resource for.
134365func (r *RegionTargetHttpsProxiesService) SetSslCertificates(project string, region string, targetHttpsProxy string, regiontargethttpsproxiessetsslcertificatesrequest *RegionTargetHttpsProxiesSetSslCertificatesRequest) *RegionTargetHttpsProxiesSetSslCertificatesCall {
134366	c := &RegionTargetHttpsProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134367	c.project = project
134368	c.region = region
134369	c.targetHttpsProxy = targetHttpsProxy
134370	c.regiontargethttpsproxiessetsslcertificatesrequest = regiontargethttpsproxiessetsslcertificatesrequest
134371	return c
134372}
134373
134374// RequestId sets the optional parameter "requestId": An optional
134375// request ID to identify requests. Specify a unique request ID so that
134376// if you must retry your request, the server will know to ignore the
134377// request if it has already been completed. For example, consider a
134378// situation where you make an initial request and the request times
134379// out. If you make the request again with the same request ID, the
134380// server can check if original operation with the same request ID was
134381// received, and if so, will ignore the second request. This prevents
134382// clients from accidentally creating duplicate commitments. The request
134383// ID must be a valid UUID with the exception that zero UUID is not
134384// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
134385// MixerMutationRequestBuilder
134386func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) RequestId(requestId string) *RegionTargetHttpsProxiesSetSslCertificatesCall {
134387	c.urlParams_.Set("requestId", requestId)
134388	return c
134389}
134390
134391// Fields allows partial responses to be retrieved. See
134392// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134393// for more information.
134394func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesSetSslCertificatesCall {
134395	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134396	return c
134397}
134398
134399// Context sets the context to be used in this call's Do method. Any
134400// pending HTTP request will be aborted if the provided context is
134401// canceled.
134402func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Context(ctx context.Context) *RegionTargetHttpsProxiesSetSslCertificatesCall {
134403	c.ctx_ = ctx
134404	return c
134405}
134406
134407// Header returns an http.Header that can be modified by the caller to
134408// add HTTP headers to the request.
134409func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Header() http.Header {
134410	if c.header_ == nil {
134411		c.header_ = make(http.Header)
134412	}
134413	return c.header_
134414}
134415
134416func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
134417	reqHeaders := make(http.Header)
134418	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
134419	for k, v := range c.header_ {
134420		reqHeaders[k] = v
134421	}
134422	reqHeaders.Set("User-Agent", c.s.userAgent())
134423	var body io.Reader = nil
134424	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiontargethttpsproxiessetsslcertificatesrequest)
134425	if err != nil {
134426		return nil, err
134427	}
134428	reqHeaders.Set("Content-Type", "application/json")
134429	c.urlParams_.Set("alt", alt)
134430	c.urlParams_.Set("prettyPrint", "false")
134431	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates")
134432	urls += "?" + c.urlParams_.Encode()
134433	req, err := http.NewRequest("POST", urls, body)
134434	if err != nil {
134435		return nil, err
134436	}
134437	req.Header = reqHeaders
134438	googleapi.Expand(req.URL, map[string]string{
134439		"project":          c.project,
134440		"region":           c.region,
134441		"targetHttpsProxy": c.targetHttpsProxy,
134442	})
134443	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134444}
134445
134446// Do executes the "compute.regionTargetHttpsProxies.setSslCertificates" call.
134447// Exactly one of *Operation or error will be non-nil. Any non-2xx
134448// status code is an error. Response headers are in either
134449// *Operation.ServerResponse.Header or (if a response was returned at
134450// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
134451// to check whether the returned error was because
134452// http.StatusNotModified was returned.
134453func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
134454	gensupport.SetOptions(c.urlParams_, opts...)
134455	res, err := c.doRequest("json")
134456	if res != nil && res.StatusCode == http.StatusNotModified {
134457		if res.Body != nil {
134458			res.Body.Close()
134459		}
134460		return nil, &googleapi.Error{
134461			Code:   res.StatusCode,
134462			Header: res.Header,
134463		}
134464	}
134465	if err != nil {
134466		return nil, err
134467	}
134468	defer googleapi.CloseBody(res)
134469	if err := googleapi.CheckResponse(res); err != nil {
134470		return nil, err
134471	}
134472	ret := &Operation{
134473		ServerResponse: googleapi.ServerResponse{
134474			Header:         res.Header,
134475			HTTPStatusCode: res.StatusCode,
134476		},
134477	}
134478	target := &ret
134479	if err := gensupport.DecodeResponse(target, res); err != nil {
134480		return nil, err
134481	}
134482	return ret, nil
134483	// {
134484	//   "description": "Replaces SslCertificates for TargetHttpsProxy.",
134485	//   "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
134486	//   "httpMethod": "POST",
134487	//   "id": "compute.regionTargetHttpsProxies.setSslCertificates",
134488	//   "parameterOrder": [
134489	//     "project",
134490	//     "region",
134491	//     "targetHttpsProxy"
134492	//   ],
134493	//   "parameters": {
134494	//     "project": {
134495	//       "description": "Project ID for this request.",
134496	//       "location": "path",
134497	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134498	//       "required": true,
134499	//       "type": "string"
134500	//     },
134501	//     "region": {
134502	//       "description": "Name of the region scoping this request.",
134503	//       "location": "path",
134504	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134505	//       "required": true,
134506	//       "type": "string"
134507	//     },
134508	//     "requestId": {
134509	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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",
134510	//       "location": "query",
134511	//       "type": "string"
134512	//     },
134513	//     "targetHttpsProxy": {
134514	//       "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.",
134515	//       "location": "path",
134516	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
134517	//       "required": true,
134518	//       "type": "string"
134519	//     }
134520	//   },
134521	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
134522	//   "request": {
134523	//     "$ref": "RegionTargetHttpsProxiesSetSslCertificatesRequest"
134524	//   },
134525	//   "response": {
134526	//     "$ref": "Operation"
134527	//   },
134528	//   "scopes": [
134529	//     "https://www.googleapis.com/auth/cloud-platform",
134530	//     "https://www.googleapis.com/auth/compute"
134531	//   ]
134532	// }
134533
134534}
134535
134536// method id "compute.regionTargetHttpsProxies.setUrlMap":
134537
134538type RegionTargetHttpsProxiesSetUrlMapCall struct {
134539	s                *Service
134540	project          string
134541	region           string
134542	targetHttpsProxy string
134543	urlmapreference  *UrlMapReference
134544	urlParams_       gensupport.URLParams
134545	ctx_             context.Context
134546	header_          http.Header
134547}
134548
134549// SetUrlMap: Changes the URL map for TargetHttpsProxy.
134550//
134551// - project: Project ID for this request.
134552// - region: Name of the region scoping this request.
134553// - targetHttpsProxy: Name of the TargetHttpsProxy to set a URL map
134554//   for.
134555func (r *RegionTargetHttpsProxiesService) SetUrlMap(project string, region string, targetHttpsProxy string, urlmapreference *UrlMapReference) *RegionTargetHttpsProxiesSetUrlMapCall {
134556	c := &RegionTargetHttpsProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134557	c.project = project
134558	c.region = region
134559	c.targetHttpsProxy = targetHttpsProxy
134560	c.urlmapreference = urlmapreference
134561	return c
134562}
134563
134564// RequestId sets the optional parameter "requestId": An optional
134565// request ID to identify requests. Specify a unique request ID so that
134566// if you must retry your request, the server will know to ignore the
134567// request if it has already been completed. For example, consider a
134568// situation where you make an initial request and the request times
134569// out. If you make the request again with the same request ID, the
134570// server can check if original operation with the same request ID was
134571// received, and if so, will ignore the second request. This prevents
134572// clients from accidentally creating duplicate commitments. The request
134573// ID must be a valid UUID with the exception that zero UUID is not
134574// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
134575// MixerMutationRequestBuilder
134576func (c *RegionTargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *RegionTargetHttpsProxiesSetUrlMapCall {
134577	c.urlParams_.Set("requestId", requestId)
134578	return c
134579}
134580
134581// Fields allows partial responses to be retrieved. See
134582// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134583// for more information.
134584func (c *RegionTargetHttpsProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesSetUrlMapCall {
134585	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134586	return c
134587}
134588
134589// Context sets the context to be used in this call's Do method. Any
134590// pending HTTP request will be aborted if the provided context is
134591// canceled.
134592func (c *RegionTargetHttpsProxiesSetUrlMapCall) Context(ctx context.Context) *RegionTargetHttpsProxiesSetUrlMapCall {
134593	c.ctx_ = ctx
134594	return c
134595}
134596
134597// Header returns an http.Header that can be modified by the caller to
134598// add HTTP headers to the request.
134599func (c *RegionTargetHttpsProxiesSetUrlMapCall) Header() http.Header {
134600	if c.header_ == nil {
134601		c.header_ = make(http.Header)
134602	}
134603	return c.header_
134604}
134605
134606func (c *RegionTargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
134607	reqHeaders := make(http.Header)
134608	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
134609	for k, v := range c.header_ {
134610		reqHeaders[k] = v
134611	}
134612	reqHeaders.Set("User-Agent", c.s.userAgent())
134613	var body io.Reader = nil
134614	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
134615	if err != nil {
134616		return nil, err
134617	}
134618	reqHeaders.Set("Content-Type", "application/json")
134619	c.urlParams_.Set("alt", alt)
134620	c.urlParams_.Set("prettyPrint", "false")
134621	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap")
134622	urls += "?" + c.urlParams_.Encode()
134623	req, err := http.NewRequest("POST", urls, body)
134624	if err != nil {
134625		return nil, err
134626	}
134627	req.Header = reqHeaders
134628	googleapi.Expand(req.URL, map[string]string{
134629		"project":          c.project,
134630		"region":           c.region,
134631		"targetHttpsProxy": c.targetHttpsProxy,
134632	})
134633	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134634}
134635
134636// Do executes the "compute.regionTargetHttpsProxies.setUrlMap" call.
134637// Exactly one of *Operation or error will be non-nil. Any non-2xx
134638// status code is an error. Response headers are in either
134639// *Operation.ServerResponse.Header or (if a response was returned at
134640// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
134641// to check whether the returned error was because
134642// http.StatusNotModified was returned.
134643func (c *RegionTargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
134644	gensupport.SetOptions(c.urlParams_, opts...)
134645	res, err := c.doRequest("json")
134646	if res != nil && res.StatusCode == http.StatusNotModified {
134647		if res.Body != nil {
134648			res.Body.Close()
134649		}
134650		return nil, &googleapi.Error{
134651			Code:   res.StatusCode,
134652			Header: res.Header,
134653		}
134654	}
134655	if err != nil {
134656		return nil, err
134657	}
134658	defer googleapi.CloseBody(res)
134659	if err := googleapi.CheckResponse(res); err != nil {
134660		return nil, err
134661	}
134662	ret := &Operation{
134663		ServerResponse: googleapi.ServerResponse{
134664			Header:         res.Header,
134665			HTTPStatusCode: res.StatusCode,
134666		},
134667	}
134668	target := &ret
134669	if err := gensupport.DecodeResponse(target, res); err != nil {
134670		return nil, err
134671	}
134672	return ret, nil
134673	// {
134674	//   "description": "Changes the URL map for TargetHttpsProxy.",
134675	//   "flatPath": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
134676	//   "httpMethod": "POST",
134677	//   "id": "compute.regionTargetHttpsProxies.setUrlMap",
134678	//   "parameterOrder": [
134679	//     "project",
134680	//     "region",
134681	//     "targetHttpsProxy"
134682	//   ],
134683	//   "parameters": {
134684	//     "project": {
134685	//       "description": "Project ID for this request.",
134686	//       "location": "path",
134687	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134688	//       "required": true,
134689	//       "type": "string"
134690	//     },
134691	//     "region": {
134692	//       "description": "Name of the region scoping this request.",
134693	//       "location": "path",
134694	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134695	//       "required": true,
134696	//       "type": "string"
134697	//     },
134698	//     "requestId": {
134699	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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",
134700	//       "location": "query",
134701	//       "type": "string"
134702	//     },
134703	//     "targetHttpsProxy": {
134704	//       "description": "Name of the TargetHttpsProxy to set a URL map for.",
134705	//       "location": "path",
134706	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
134707	//       "required": true,
134708	//       "type": "string"
134709	//     }
134710	//   },
134711	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
134712	//   "request": {
134713	//     "$ref": "UrlMapReference"
134714	//   },
134715	//   "response": {
134716	//     "$ref": "Operation"
134717	//   },
134718	//   "scopes": [
134719	//     "https://www.googleapis.com/auth/cloud-platform",
134720	//     "https://www.googleapis.com/auth/compute"
134721	//   ]
134722	// }
134723
134724}
134725
134726// method id "compute.regionUrlMaps.delete":
134727
134728type RegionUrlMapsDeleteCall struct {
134729	s          *Service
134730	project    string
134731	region     string
134732	urlMap     string
134733	urlParams_ gensupport.URLParams
134734	ctx_       context.Context
134735	header_    http.Header
134736}
134737
134738// Delete: Deletes the specified UrlMap resource.
134739//
134740// - project: Project ID for this request.
134741// - region: Name of the region scoping this request.
134742// - urlMap: Name of the UrlMap resource to delete.
134743func (r *RegionUrlMapsService) Delete(project string, region string, urlMap string) *RegionUrlMapsDeleteCall {
134744	c := &RegionUrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134745	c.project = project
134746	c.region = region
134747	c.urlMap = urlMap
134748	return c
134749}
134750
134751// RequestId sets the optional parameter "requestId": begin_interface:
134752// MixerMutationRequestBuilder Request ID to support idempotency.
134753func (c *RegionUrlMapsDeleteCall) RequestId(requestId string) *RegionUrlMapsDeleteCall {
134754	c.urlParams_.Set("requestId", requestId)
134755	return c
134756}
134757
134758// Fields allows partial responses to be retrieved. See
134759// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134760// for more information.
134761func (c *RegionUrlMapsDeleteCall) Fields(s ...googleapi.Field) *RegionUrlMapsDeleteCall {
134762	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134763	return c
134764}
134765
134766// Context sets the context to be used in this call's Do method. Any
134767// pending HTTP request will be aborted if the provided context is
134768// canceled.
134769func (c *RegionUrlMapsDeleteCall) Context(ctx context.Context) *RegionUrlMapsDeleteCall {
134770	c.ctx_ = ctx
134771	return c
134772}
134773
134774// Header returns an http.Header that can be modified by the caller to
134775// add HTTP headers to the request.
134776func (c *RegionUrlMapsDeleteCall) Header() http.Header {
134777	if c.header_ == nil {
134778		c.header_ = make(http.Header)
134779	}
134780	return c.header_
134781}
134782
134783func (c *RegionUrlMapsDeleteCall) doRequest(alt string) (*http.Response, error) {
134784	reqHeaders := make(http.Header)
134785	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
134786	for k, v := range c.header_ {
134787		reqHeaders[k] = v
134788	}
134789	reqHeaders.Set("User-Agent", c.s.userAgent())
134790	var body io.Reader = nil
134791	c.urlParams_.Set("alt", alt)
134792	c.urlParams_.Set("prettyPrint", "false")
134793	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}")
134794	urls += "?" + c.urlParams_.Encode()
134795	req, err := http.NewRequest("DELETE", urls, body)
134796	if err != nil {
134797		return nil, err
134798	}
134799	req.Header = reqHeaders
134800	googleapi.Expand(req.URL, map[string]string{
134801		"project": c.project,
134802		"region":  c.region,
134803		"urlMap":  c.urlMap,
134804	})
134805	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134806}
134807
134808// Do executes the "compute.regionUrlMaps.delete" call.
134809// Exactly one of *Operation or error will be non-nil. Any non-2xx
134810// status code is an error. Response headers are in either
134811// *Operation.ServerResponse.Header or (if a response was returned at
134812// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
134813// to check whether the returned error was because
134814// http.StatusNotModified was returned.
134815func (c *RegionUrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
134816	gensupport.SetOptions(c.urlParams_, opts...)
134817	res, err := c.doRequest("json")
134818	if res != nil && res.StatusCode == http.StatusNotModified {
134819		if res.Body != nil {
134820			res.Body.Close()
134821		}
134822		return nil, &googleapi.Error{
134823			Code:   res.StatusCode,
134824			Header: res.Header,
134825		}
134826	}
134827	if err != nil {
134828		return nil, err
134829	}
134830	defer googleapi.CloseBody(res)
134831	if err := googleapi.CheckResponse(res); err != nil {
134832		return nil, err
134833	}
134834	ret := &Operation{
134835		ServerResponse: googleapi.ServerResponse{
134836			Header:         res.Header,
134837			HTTPStatusCode: res.StatusCode,
134838		},
134839	}
134840	target := &ret
134841	if err := gensupport.DecodeResponse(target, res); err != nil {
134842		return nil, err
134843	}
134844	return ret, nil
134845	// {
134846	//   "description": "Deletes the specified UrlMap resource.",
134847	//   "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
134848	//   "httpMethod": "DELETE",
134849	//   "id": "compute.regionUrlMaps.delete",
134850	//   "parameterOrder": [
134851	//     "project",
134852	//     "region",
134853	//     "urlMap"
134854	//   ],
134855	//   "parameters": {
134856	//     "project": {
134857	//       "description": "Project ID for this request.",
134858	//       "location": "path",
134859	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134860	//       "required": true,
134861	//       "type": "string"
134862	//     },
134863	//     "region": {
134864	//       "description": "Name of the region scoping this request.",
134865	//       "location": "path",
134866	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134867	//       "required": true,
134868	//       "type": "string"
134869	//     },
134870	//     "requestId": {
134871	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
134872	//       "location": "query",
134873	//       "type": "string"
134874	//     },
134875	//     "urlMap": {
134876	//       "description": "Name of the UrlMap resource to delete.",
134877	//       "location": "path",
134878	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
134879	//       "required": true,
134880	//       "type": "string"
134881	//     }
134882	//   },
134883	//   "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
134884	//   "response": {
134885	//     "$ref": "Operation"
134886	//   },
134887	//   "scopes": [
134888	//     "https://www.googleapis.com/auth/cloud-platform",
134889	//     "https://www.googleapis.com/auth/compute"
134890	//   ]
134891	// }
134892
134893}
134894
134895// method id "compute.regionUrlMaps.get":
134896
134897type RegionUrlMapsGetCall struct {
134898	s            *Service
134899	project      string
134900	region       string
134901	urlMap       string
134902	urlParams_   gensupport.URLParams
134903	ifNoneMatch_ string
134904	ctx_         context.Context
134905	header_      http.Header
134906}
134907
134908// Get: Returns the specified UrlMap resource. Gets a list of available
134909// URL maps by making a list() request.
134910//
134911// - project: Project ID for this request.
134912// - region: Name of the region scoping this request.
134913// - urlMap: Name of the UrlMap resource to return.
134914func (r *RegionUrlMapsService) Get(project string, region string, urlMap string) *RegionUrlMapsGetCall {
134915	c := &RegionUrlMapsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134916	c.project = project
134917	c.region = region
134918	c.urlMap = urlMap
134919	return c
134920}
134921
134922// Fields allows partial responses to be retrieved. See
134923// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134924// for more information.
134925func (c *RegionUrlMapsGetCall) Fields(s ...googleapi.Field) *RegionUrlMapsGetCall {
134926	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134927	return c
134928}
134929
134930// IfNoneMatch sets the optional parameter which makes the operation
134931// fail if the object's ETag matches the given value. This is useful for
134932// getting updates only after the object has changed since the last
134933// request. Use googleapi.IsNotModified to check whether the response
134934// error from Do is the result of In-None-Match.
134935func (c *RegionUrlMapsGetCall) IfNoneMatch(entityTag string) *RegionUrlMapsGetCall {
134936	c.ifNoneMatch_ = entityTag
134937	return c
134938}
134939
134940// Context sets the context to be used in this call's Do method. Any
134941// pending HTTP request will be aborted if the provided context is
134942// canceled.
134943func (c *RegionUrlMapsGetCall) Context(ctx context.Context) *RegionUrlMapsGetCall {
134944	c.ctx_ = ctx
134945	return c
134946}
134947
134948// Header returns an http.Header that can be modified by the caller to
134949// add HTTP headers to the request.
134950func (c *RegionUrlMapsGetCall) Header() http.Header {
134951	if c.header_ == nil {
134952		c.header_ = make(http.Header)
134953	}
134954	return c.header_
134955}
134956
134957func (c *RegionUrlMapsGetCall) doRequest(alt string) (*http.Response, error) {
134958	reqHeaders := make(http.Header)
134959	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
134960	for k, v := range c.header_ {
134961		reqHeaders[k] = v
134962	}
134963	reqHeaders.Set("User-Agent", c.s.userAgent())
134964	if c.ifNoneMatch_ != "" {
134965		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
134966	}
134967	var body io.Reader = nil
134968	c.urlParams_.Set("alt", alt)
134969	c.urlParams_.Set("prettyPrint", "false")
134970	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}")
134971	urls += "?" + c.urlParams_.Encode()
134972	req, err := http.NewRequest("GET", urls, body)
134973	if err != nil {
134974		return nil, err
134975	}
134976	req.Header = reqHeaders
134977	googleapi.Expand(req.URL, map[string]string{
134978		"project": c.project,
134979		"region":  c.region,
134980		"urlMap":  c.urlMap,
134981	})
134982	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134983}
134984
134985// Do executes the "compute.regionUrlMaps.get" call.
134986// Exactly one of *UrlMap or error will be non-nil. Any non-2xx status
134987// code is an error. Response headers are in either
134988// *UrlMap.ServerResponse.Header or (if a response was returned at all)
134989// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
134990// check whether the returned error was because http.StatusNotModified
134991// was returned.
134992func (c *RegionUrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) {
134993	gensupport.SetOptions(c.urlParams_, opts...)
134994	res, err := c.doRequest("json")
134995	if res != nil && res.StatusCode == http.StatusNotModified {
134996		if res.Body != nil {
134997			res.Body.Close()
134998		}
134999		return nil, &googleapi.Error{
135000			Code:   res.StatusCode,
135001			Header: res.Header,
135002		}
135003	}
135004	if err != nil {
135005		return nil, err
135006	}
135007	defer googleapi.CloseBody(res)
135008	if err := googleapi.CheckResponse(res); err != nil {
135009		return nil, err
135010	}
135011	ret := &UrlMap{
135012		ServerResponse: googleapi.ServerResponse{
135013			Header:         res.Header,
135014			HTTPStatusCode: res.StatusCode,
135015		},
135016	}
135017	target := &ret
135018	if err := gensupport.DecodeResponse(target, res); err != nil {
135019		return nil, err
135020	}
135021	return ret, nil
135022	// {
135023	//   "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.",
135024	//   "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
135025	//   "httpMethod": "GET",
135026	//   "id": "compute.regionUrlMaps.get",
135027	//   "parameterOrder": [
135028	//     "project",
135029	//     "region",
135030	//     "urlMap"
135031	//   ],
135032	//   "parameters": {
135033	//     "project": {
135034	//       "description": "Project ID for this request.",
135035	//       "location": "path",
135036	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135037	//       "required": true,
135038	//       "type": "string"
135039	//     },
135040	//     "region": {
135041	//       "description": "Name of the region scoping this request.",
135042	//       "location": "path",
135043	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135044	//       "required": true,
135045	//       "type": "string"
135046	//     },
135047	//     "urlMap": {
135048	//       "description": "Name of the UrlMap resource to return.",
135049	//       "location": "path",
135050	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
135051	//       "required": true,
135052	//       "type": "string"
135053	//     }
135054	//   },
135055	//   "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
135056	//   "response": {
135057	//     "$ref": "UrlMap"
135058	//   },
135059	//   "scopes": [
135060	//     "https://www.googleapis.com/auth/cloud-platform",
135061	//     "https://www.googleapis.com/auth/compute",
135062	//     "https://www.googleapis.com/auth/compute.readonly"
135063	//   ]
135064	// }
135065
135066}
135067
135068// method id "compute.regionUrlMaps.insert":
135069
135070type RegionUrlMapsInsertCall struct {
135071	s          *Service
135072	project    string
135073	region     string
135074	urlmap     *UrlMap
135075	urlParams_ gensupport.URLParams
135076	ctx_       context.Context
135077	header_    http.Header
135078}
135079
135080// Insert: Creates a UrlMap resource in the specified project using the
135081// data included in the request.
135082//
135083// - project: Project ID for this request.
135084// - region: Name of the region scoping this request.
135085func (r *RegionUrlMapsService) Insert(project string, region string, urlmap *UrlMap) *RegionUrlMapsInsertCall {
135086	c := &RegionUrlMapsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135087	c.project = project
135088	c.region = region
135089	c.urlmap = urlmap
135090	return c
135091}
135092
135093// RequestId sets the optional parameter "requestId": begin_interface:
135094// MixerMutationRequestBuilder Request ID to support idempotency.
135095func (c *RegionUrlMapsInsertCall) RequestId(requestId string) *RegionUrlMapsInsertCall {
135096	c.urlParams_.Set("requestId", requestId)
135097	return c
135098}
135099
135100// Fields allows partial responses to be retrieved. See
135101// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135102// for more information.
135103func (c *RegionUrlMapsInsertCall) Fields(s ...googleapi.Field) *RegionUrlMapsInsertCall {
135104	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135105	return c
135106}
135107
135108// Context sets the context to be used in this call's Do method. Any
135109// pending HTTP request will be aborted if the provided context is
135110// canceled.
135111func (c *RegionUrlMapsInsertCall) Context(ctx context.Context) *RegionUrlMapsInsertCall {
135112	c.ctx_ = ctx
135113	return c
135114}
135115
135116// Header returns an http.Header that can be modified by the caller to
135117// add HTTP headers to the request.
135118func (c *RegionUrlMapsInsertCall) Header() http.Header {
135119	if c.header_ == nil {
135120		c.header_ = make(http.Header)
135121	}
135122	return c.header_
135123}
135124
135125func (c *RegionUrlMapsInsertCall) doRequest(alt string) (*http.Response, error) {
135126	reqHeaders := make(http.Header)
135127	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
135128	for k, v := range c.header_ {
135129		reqHeaders[k] = v
135130	}
135131	reqHeaders.Set("User-Agent", c.s.userAgent())
135132	var body io.Reader = nil
135133	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
135134	if err != nil {
135135		return nil, err
135136	}
135137	reqHeaders.Set("Content-Type", "application/json")
135138	c.urlParams_.Set("alt", alt)
135139	c.urlParams_.Set("prettyPrint", "false")
135140	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps")
135141	urls += "?" + c.urlParams_.Encode()
135142	req, err := http.NewRequest("POST", urls, body)
135143	if err != nil {
135144		return nil, err
135145	}
135146	req.Header = reqHeaders
135147	googleapi.Expand(req.URL, map[string]string{
135148		"project": c.project,
135149		"region":  c.region,
135150	})
135151	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135152}
135153
135154// Do executes the "compute.regionUrlMaps.insert" call.
135155// Exactly one of *Operation or error will be non-nil. Any non-2xx
135156// status code is an error. Response headers are in either
135157// *Operation.ServerResponse.Header or (if a response was returned at
135158// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135159// to check whether the returned error was because
135160// http.StatusNotModified was returned.
135161func (c *RegionUrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135162	gensupport.SetOptions(c.urlParams_, opts...)
135163	res, err := c.doRequest("json")
135164	if res != nil && res.StatusCode == http.StatusNotModified {
135165		if res.Body != nil {
135166			res.Body.Close()
135167		}
135168		return nil, &googleapi.Error{
135169			Code:   res.StatusCode,
135170			Header: res.Header,
135171		}
135172	}
135173	if err != nil {
135174		return nil, err
135175	}
135176	defer googleapi.CloseBody(res)
135177	if err := googleapi.CheckResponse(res); err != nil {
135178		return nil, err
135179	}
135180	ret := &Operation{
135181		ServerResponse: googleapi.ServerResponse{
135182			Header:         res.Header,
135183			HTTPStatusCode: res.StatusCode,
135184		},
135185	}
135186	target := &ret
135187	if err := gensupport.DecodeResponse(target, res); err != nil {
135188		return nil, err
135189	}
135190	return ret, nil
135191	// {
135192	//   "description": "Creates a UrlMap resource in the specified project using the data included in the request.",
135193	//   "flatPath": "projects/{project}/regions/{region}/urlMaps",
135194	//   "httpMethod": "POST",
135195	//   "id": "compute.regionUrlMaps.insert",
135196	//   "parameterOrder": [
135197	//     "project",
135198	//     "region"
135199	//   ],
135200	//   "parameters": {
135201	//     "project": {
135202	//       "description": "Project ID for this request.",
135203	//       "location": "path",
135204	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135205	//       "required": true,
135206	//       "type": "string"
135207	//     },
135208	//     "region": {
135209	//       "description": "Name of the region scoping this request.",
135210	//       "location": "path",
135211	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135212	//       "required": true,
135213	//       "type": "string"
135214	//     },
135215	//     "requestId": {
135216	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
135217	//       "location": "query",
135218	//       "type": "string"
135219	//     }
135220	//   },
135221	//   "path": "projects/{project}/regions/{region}/urlMaps",
135222	//   "request": {
135223	//     "$ref": "UrlMap"
135224	//   },
135225	//   "response": {
135226	//     "$ref": "Operation"
135227	//   },
135228	//   "scopes": [
135229	//     "https://www.googleapis.com/auth/cloud-platform",
135230	//     "https://www.googleapis.com/auth/compute"
135231	//   ]
135232	// }
135233
135234}
135235
135236// method id "compute.regionUrlMaps.list":
135237
135238type RegionUrlMapsListCall struct {
135239	s            *Service
135240	project      string
135241	region       string
135242	urlParams_   gensupport.URLParams
135243	ifNoneMatch_ string
135244	ctx_         context.Context
135245	header_      http.Header
135246}
135247
135248// List: Retrieves the list of UrlMap resources available to the
135249// specified project in the specified region.
135250//
135251// - project: Project ID for this request.
135252// - region: Name of the region scoping this request.
135253func (r *RegionUrlMapsService) List(project string, region string) *RegionUrlMapsListCall {
135254	c := &RegionUrlMapsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135255	c.project = project
135256	c.region = region
135257	return c
135258}
135259
135260// Filter sets the optional parameter "filter": A filter expression that
135261// filters resources listed in the response. The expression must specify
135262// the field name, a comparison operator, and the value that you want to
135263// use for filtering. The value must be a string, a number, or a
135264// boolean. The comparison operator must be either `=`, `!=`, `>`, or
135265// `<`. For example, if you are filtering Compute Engine instances, you
135266// can exclude instances named `example-instance` by specifying `name !=
135267// example-instance`. You can also filter nested fields. For example,
135268// you could specify `scheduling.automaticRestart = false` to include
135269// instances only if they are not scheduled for automatic restarts. You
135270// can use filtering on nested fields to filter based on resource
135271// labels. To filter on multiple expressions, provide each separate
135272// expression within parentheses. For example: ```
135273// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
135274// ``` By default, each expression is an `AND` expression. However, you
135275// can include `AND` and `OR` expressions explicitly. For example: ```
135276// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
135277// AND (scheduling.automaticRestart = true) ```
135278func (c *RegionUrlMapsListCall) Filter(filter string) *RegionUrlMapsListCall {
135279	c.urlParams_.Set("filter", filter)
135280	return c
135281}
135282
135283// MaxResults sets the optional parameter "maxResults": The maximum
135284// number of results per page that should be returned. If the number of
135285// available results is larger than `maxResults`, Compute Engine returns
135286// a `nextPageToken` that can be used to get the next page of results in
135287// subsequent list requests. Acceptable values are `0` to `500`,
135288// inclusive. (Default: `500`)
135289func (c *RegionUrlMapsListCall) MaxResults(maxResults int64) *RegionUrlMapsListCall {
135290	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
135291	return c
135292}
135293
135294// OrderBy sets the optional parameter "orderBy": Sorts list results by
135295// a certain order. By default, results are returned in alphanumerical
135296// order based on the resource name. You can also sort results in
135297// descending order based on the creation timestamp using
135298// `orderBy="creationTimestamp desc". This sorts results based on the
135299// `creationTimestamp` field in reverse chronological order (newest
135300// result first). Use this to sort resources like operations so that the
135301// newest operation is returned first. Currently, only sorting by `name`
135302// or `creationTimestamp desc` is supported.
135303func (c *RegionUrlMapsListCall) OrderBy(orderBy string) *RegionUrlMapsListCall {
135304	c.urlParams_.Set("orderBy", orderBy)
135305	return c
135306}
135307
135308// PageToken sets the optional parameter "pageToken": Specifies a page
135309// token to use. Set `pageToken` to the `nextPageToken` returned by a
135310// previous list request to get the next page of results.
135311func (c *RegionUrlMapsListCall) PageToken(pageToken string) *RegionUrlMapsListCall {
135312	c.urlParams_.Set("pageToken", pageToken)
135313	return c
135314}
135315
135316// ReturnPartialSuccess sets the optional parameter
135317// "returnPartialSuccess": Opt-in for partial success behavior which
135318// provides partial results in case of failure. The default value is
135319// false.
135320func (c *RegionUrlMapsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionUrlMapsListCall {
135321	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
135322	return c
135323}
135324
135325// Fields allows partial responses to be retrieved. See
135326// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135327// for more information.
135328func (c *RegionUrlMapsListCall) Fields(s ...googleapi.Field) *RegionUrlMapsListCall {
135329	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135330	return c
135331}
135332
135333// IfNoneMatch sets the optional parameter which makes the operation
135334// fail if the object's ETag matches the given value. This is useful for
135335// getting updates only after the object has changed since the last
135336// request. Use googleapi.IsNotModified to check whether the response
135337// error from Do is the result of In-None-Match.
135338func (c *RegionUrlMapsListCall) IfNoneMatch(entityTag string) *RegionUrlMapsListCall {
135339	c.ifNoneMatch_ = entityTag
135340	return c
135341}
135342
135343// Context sets the context to be used in this call's Do method. Any
135344// pending HTTP request will be aborted if the provided context is
135345// canceled.
135346func (c *RegionUrlMapsListCall) Context(ctx context.Context) *RegionUrlMapsListCall {
135347	c.ctx_ = ctx
135348	return c
135349}
135350
135351// Header returns an http.Header that can be modified by the caller to
135352// add HTTP headers to the request.
135353func (c *RegionUrlMapsListCall) Header() http.Header {
135354	if c.header_ == nil {
135355		c.header_ = make(http.Header)
135356	}
135357	return c.header_
135358}
135359
135360func (c *RegionUrlMapsListCall) doRequest(alt string) (*http.Response, error) {
135361	reqHeaders := make(http.Header)
135362	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
135363	for k, v := range c.header_ {
135364		reqHeaders[k] = v
135365	}
135366	reqHeaders.Set("User-Agent", c.s.userAgent())
135367	if c.ifNoneMatch_ != "" {
135368		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
135369	}
135370	var body io.Reader = nil
135371	c.urlParams_.Set("alt", alt)
135372	c.urlParams_.Set("prettyPrint", "false")
135373	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps")
135374	urls += "?" + c.urlParams_.Encode()
135375	req, err := http.NewRequest("GET", urls, body)
135376	if err != nil {
135377		return nil, err
135378	}
135379	req.Header = reqHeaders
135380	googleapi.Expand(req.URL, map[string]string{
135381		"project": c.project,
135382		"region":  c.region,
135383	})
135384	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135385}
135386
135387// Do executes the "compute.regionUrlMaps.list" call.
135388// Exactly one of *UrlMapList or error will be non-nil. Any non-2xx
135389// status code is an error. Response headers are in either
135390// *UrlMapList.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 *RegionUrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, 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 := &UrlMapList{
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": "Retrieves the list of UrlMap resources available to the specified project in the specified region.",
135426	//   "flatPath": "projects/{project}/regions/{region}/urlMaps",
135427	//   "httpMethod": "GET",
135428	//   "id": "compute.regionUrlMaps.list",
135429	//   "parameterOrder": [
135430	//     "project",
135431	//     "region"
135432	//   ],
135433	//   "parameters": {
135434	//     "filter": {
135435	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
135436	//       "location": "query",
135437	//       "type": "string"
135438	//     },
135439	//     "maxResults": {
135440	//       "default": "500",
135441	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
135442	//       "format": "uint32",
135443	//       "location": "query",
135444	//       "minimum": "0",
135445	//       "type": "integer"
135446	//     },
135447	//     "orderBy": {
135448	//       "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.",
135449	//       "location": "query",
135450	//       "type": "string"
135451	//     },
135452	//     "pageToken": {
135453	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
135454	//       "location": "query",
135455	//       "type": "string"
135456	//     },
135457	//     "project": {
135458	//       "description": "Project ID for this request.",
135459	//       "location": "path",
135460	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135461	//       "required": true,
135462	//       "type": "string"
135463	//     },
135464	//     "region": {
135465	//       "description": "Name of the region scoping this request.",
135466	//       "location": "path",
135467	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135468	//       "required": true,
135469	//       "type": "string"
135470	//     },
135471	//     "returnPartialSuccess": {
135472	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
135473	//       "location": "query",
135474	//       "type": "boolean"
135475	//     }
135476	//   },
135477	//   "path": "projects/{project}/regions/{region}/urlMaps",
135478	//   "response": {
135479	//     "$ref": "UrlMapList"
135480	//   },
135481	//   "scopes": [
135482	//     "https://www.googleapis.com/auth/cloud-platform",
135483	//     "https://www.googleapis.com/auth/compute",
135484	//     "https://www.googleapis.com/auth/compute.readonly"
135485	//   ]
135486	// }
135487
135488}
135489
135490// Pages invokes f for each page of results.
135491// A non-nil error returned from f will halt the iteration.
135492// The provided context supersedes any context provided to the Context method.
135493func (c *RegionUrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) error {
135494	c.ctx_ = ctx
135495	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
135496	for {
135497		x, err := c.Do()
135498		if err != nil {
135499			return err
135500		}
135501		if err := f(x); err != nil {
135502			return err
135503		}
135504		if x.NextPageToken == "" {
135505			return nil
135506		}
135507		c.PageToken(x.NextPageToken)
135508	}
135509}
135510
135511// method id "compute.regionUrlMaps.patch":
135512
135513type RegionUrlMapsPatchCall struct {
135514	s          *Service
135515	project    string
135516	region     string
135517	urlMap     string
135518	urlmap     *UrlMap
135519	urlParams_ gensupport.URLParams
135520	ctx_       context.Context
135521	header_    http.Header
135522}
135523
135524// Patch: Patches the specified UrlMap resource with the data included
135525// in the request. This method supports PATCH semantics and uses JSON
135526// merge patch format and processing rules.
135527//
135528// - project: Project ID for this request.
135529// - region: Name of the region scoping this request.
135530// - urlMap: Name of the UrlMap resource to patch.
135531func (r *RegionUrlMapsService) Patch(project string, region string, urlMap string, urlmap *UrlMap) *RegionUrlMapsPatchCall {
135532	c := &RegionUrlMapsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135533	c.project = project
135534	c.region = region
135535	c.urlMap = urlMap
135536	c.urlmap = urlmap
135537	return c
135538}
135539
135540// RequestId sets the optional parameter "requestId": begin_interface:
135541// MixerMutationRequestBuilder Request ID to support idempotency.
135542func (c *RegionUrlMapsPatchCall) RequestId(requestId string) *RegionUrlMapsPatchCall {
135543	c.urlParams_.Set("requestId", requestId)
135544	return c
135545}
135546
135547// Fields allows partial responses to be retrieved. See
135548// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135549// for more information.
135550func (c *RegionUrlMapsPatchCall) Fields(s ...googleapi.Field) *RegionUrlMapsPatchCall {
135551	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135552	return c
135553}
135554
135555// Context sets the context to be used in this call's Do method. Any
135556// pending HTTP request will be aborted if the provided context is
135557// canceled.
135558func (c *RegionUrlMapsPatchCall) Context(ctx context.Context) *RegionUrlMapsPatchCall {
135559	c.ctx_ = ctx
135560	return c
135561}
135562
135563// Header returns an http.Header that can be modified by the caller to
135564// add HTTP headers to the request.
135565func (c *RegionUrlMapsPatchCall) Header() http.Header {
135566	if c.header_ == nil {
135567		c.header_ = make(http.Header)
135568	}
135569	return c.header_
135570}
135571
135572func (c *RegionUrlMapsPatchCall) doRequest(alt string) (*http.Response, error) {
135573	reqHeaders := make(http.Header)
135574	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
135575	for k, v := range c.header_ {
135576		reqHeaders[k] = v
135577	}
135578	reqHeaders.Set("User-Agent", c.s.userAgent())
135579	var body io.Reader = nil
135580	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
135581	if err != nil {
135582		return nil, err
135583	}
135584	reqHeaders.Set("Content-Type", "application/json")
135585	c.urlParams_.Set("alt", alt)
135586	c.urlParams_.Set("prettyPrint", "false")
135587	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}")
135588	urls += "?" + c.urlParams_.Encode()
135589	req, err := http.NewRequest("PATCH", urls, body)
135590	if err != nil {
135591		return nil, err
135592	}
135593	req.Header = reqHeaders
135594	googleapi.Expand(req.URL, map[string]string{
135595		"project": c.project,
135596		"region":  c.region,
135597		"urlMap":  c.urlMap,
135598	})
135599	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135600}
135601
135602// Do executes the "compute.regionUrlMaps.patch" call.
135603// Exactly one of *Operation or error will be non-nil. Any non-2xx
135604// status code is an error. Response headers are in either
135605// *Operation.ServerResponse.Header or (if a response was returned at
135606// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135607// to check whether the returned error was because
135608// http.StatusNotModified was returned.
135609func (c *RegionUrlMapsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135610	gensupport.SetOptions(c.urlParams_, opts...)
135611	res, err := c.doRequest("json")
135612	if res != nil && res.StatusCode == http.StatusNotModified {
135613		if res.Body != nil {
135614			res.Body.Close()
135615		}
135616		return nil, &googleapi.Error{
135617			Code:   res.StatusCode,
135618			Header: res.Header,
135619		}
135620	}
135621	if err != nil {
135622		return nil, err
135623	}
135624	defer googleapi.CloseBody(res)
135625	if err := googleapi.CheckResponse(res); err != nil {
135626		return nil, err
135627	}
135628	ret := &Operation{
135629		ServerResponse: googleapi.ServerResponse{
135630			Header:         res.Header,
135631			HTTPStatusCode: res.StatusCode,
135632		},
135633	}
135634	target := &ret
135635	if err := gensupport.DecodeResponse(target, res); err != nil {
135636		return nil, err
135637	}
135638	return ret, nil
135639	// {
135640	//   "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.",
135641	//   "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
135642	//   "httpMethod": "PATCH",
135643	//   "id": "compute.regionUrlMaps.patch",
135644	//   "parameterOrder": [
135645	//     "project",
135646	//     "region",
135647	//     "urlMap"
135648	//   ],
135649	//   "parameters": {
135650	//     "project": {
135651	//       "description": "Project ID for this request.",
135652	//       "location": "path",
135653	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135654	//       "required": true,
135655	//       "type": "string"
135656	//     },
135657	//     "region": {
135658	//       "description": "Name of the region scoping this request.",
135659	//       "location": "path",
135660	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135661	//       "required": true,
135662	//       "type": "string"
135663	//     },
135664	//     "requestId": {
135665	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
135666	//       "location": "query",
135667	//       "type": "string"
135668	//     },
135669	//     "urlMap": {
135670	//       "description": "Name of the UrlMap resource to patch.",
135671	//       "location": "path",
135672	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
135673	//       "required": true,
135674	//       "type": "string"
135675	//     }
135676	//   },
135677	//   "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
135678	//   "request": {
135679	//     "$ref": "UrlMap"
135680	//   },
135681	//   "response": {
135682	//     "$ref": "Operation"
135683	//   },
135684	//   "scopes": [
135685	//     "https://www.googleapis.com/auth/cloud-platform",
135686	//     "https://www.googleapis.com/auth/compute"
135687	//   ]
135688	// }
135689
135690}
135691
135692// method id "compute.regionUrlMaps.update":
135693
135694type RegionUrlMapsUpdateCall struct {
135695	s          *Service
135696	project    string
135697	region     string
135698	urlMap     string
135699	urlmap     *UrlMap
135700	urlParams_ gensupport.URLParams
135701	ctx_       context.Context
135702	header_    http.Header
135703}
135704
135705// Update: Updates the specified UrlMap resource with the data included
135706// in the request.
135707//
135708// - project: Project ID for this request.
135709// - region: Name of the region scoping this request.
135710// - urlMap: Name of the UrlMap resource to update.
135711func (r *RegionUrlMapsService) Update(project string, region string, urlMap string, urlmap *UrlMap) *RegionUrlMapsUpdateCall {
135712	c := &RegionUrlMapsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135713	c.project = project
135714	c.region = region
135715	c.urlMap = urlMap
135716	c.urlmap = urlmap
135717	return c
135718}
135719
135720// RequestId sets the optional parameter "requestId": begin_interface:
135721// MixerMutationRequestBuilder Request ID to support idempotency.
135722func (c *RegionUrlMapsUpdateCall) RequestId(requestId string) *RegionUrlMapsUpdateCall {
135723	c.urlParams_.Set("requestId", requestId)
135724	return c
135725}
135726
135727// Fields allows partial responses to be retrieved. See
135728// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135729// for more information.
135730func (c *RegionUrlMapsUpdateCall) Fields(s ...googleapi.Field) *RegionUrlMapsUpdateCall {
135731	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135732	return c
135733}
135734
135735// Context sets the context to be used in this call's Do method. Any
135736// pending HTTP request will be aborted if the provided context is
135737// canceled.
135738func (c *RegionUrlMapsUpdateCall) Context(ctx context.Context) *RegionUrlMapsUpdateCall {
135739	c.ctx_ = ctx
135740	return c
135741}
135742
135743// Header returns an http.Header that can be modified by the caller to
135744// add HTTP headers to the request.
135745func (c *RegionUrlMapsUpdateCall) Header() http.Header {
135746	if c.header_ == nil {
135747		c.header_ = make(http.Header)
135748	}
135749	return c.header_
135750}
135751
135752func (c *RegionUrlMapsUpdateCall) doRequest(alt string) (*http.Response, error) {
135753	reqHeaders := make(http.Header)
135754	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
135755	for k, v := range c.header_ {
135756		reqHeaders[k] = v
135757	}
135758	reqHeaders.Set("User-Agent", c.s.userAgent())
135759	var body io.Reader = nil
135760	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
135761	if err != nil {
135762		return nil, err
135763	}
135764	reqHeaders.Set("Content-Type", "application/json")
135765	c.urlParams_.Set("alt", alt)
135766	c.urlParams_.Set("prettyPrint", "false")
135767	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}")
135768	urls += "?" + c.urlParams_.Encode()
135769	req, err := http.NewRequest("PUT", urls, body)
135770	if err != nil {
135771		return nil, err
135772	}
135773	req.Header = reqHeaders
135774	googleapi.Expand(req.URL, map[string]string{
135775		"project": c.project,
135776		"region":  c.region,
135777		"urlMap":  c.urlMap,
135778	})
135779	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135780}
135781
135782// Do executes the "compute.regionUrlMaps.update" call.
135783// Exactly one of *Operation or error will be non-nil. Any non-2xx
135784// status code is an error. Response headers are in either
135785// *Operation.ServerResponse.Header or (if a response was returned at
135786// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135787// to check whether the returned error was because
135788// http.StatusNotModified was returned.
135789func (c *RegionUrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135790	gensupport.SetOptions(c.urlParams_, opts...)
135791	res, err := c.doRequest("json")
135792	if res != nil && res.StatusCode == http.StatusNotModified {
135793		if res.Body != nil {
135794			res.Body.Close()
135795		}
135796		return nil, &googleapi.Error{
135797			Code:   res.StatusCode,
135798			Header: res.Header,
135799		}
135800	}
135801	if err != nil {
135802		return nil, err
135803	}
135804	defer googleapi.CloseBody(res)
135805	if err := googleapi.CheckResponse(res); err != nil {
135806		return nil, err
135807	}
135808	ret := &Operation{
135809		ServerResponse: googleapi.ServerResponse{
135810			Header:         res.Header,
135811			HTTPStatusCode: res.StatusCode,
135812		},
135813	}
135814	target := &ret
135815	if err := gensupport.DecodeResponse(target, res); err != nil {
135816		return nil, err
135817	}
135818	return ret, nil
135819	// {
135820	//   "description": "Updates the specified UrlMap resource with the data included in the request.",
135821	//   "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
135822	//   "httpMethod": "PUT",
135823	//   "id": "compute.regionUrlMaps.update",
135824	//   "parameterOrder": [
135825	//     "project",
135826	//     "region",
135827	//     "urlMap"
135828	//   ],
135829	//   "parameters": {
135830	//     "project": {
135831	//       "description": "Project ID for this request.",
135832	//       "location": "path",
135833	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135834	//       "required": true,
135835	//       "type": "string"
135836	//     },
135837	//     "region": {
135838	//       "description": "Name of the region scoping this request.",
135839	//       "location": "path",
135840	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135841	//       "required": true,
135842	//       "type": "string"
135843	//     },
135844	//     "requestId": {
135845	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
135846	//       "location": "query",
135847	//       "type": "string"
135848	//     },
135849	//     "urlMap": {
135850	//       "description": "Name of the UrlMap resource to update.",
135851	//       "location": "path",
135852	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
135853	//       "required": true,
135854	//       "type": "string"
135855	//     }
135856	//   },
135857	//   "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
135858	//   "request": {
135859	//     "$ref": "UrlMap"
135860	//   },
135861	//   "response": {
135862	//     "$ref": "Operation"
135863	//   },
135864	//   "scopes": [
135865	//     "https://www.googleapis.com/auth/cloud-platform",
135866	//     "https://www.googleapis.com/auth/compute"
135867	//   ]
135868	// }
135869
135870}
135871
135872// method id "compute.regionUrlMaps.validate":
135873
135874type RegionUrlMapsValidateCall struct {
135875	s                            *Service
135876	project                      string
135877	region                       string
135878	urlMap                       string
135879	regionurlmapsvalidaterequest *RegionUrlMapsValidateRequest
135880	urlParams_                   gensupport.URLParams
135881	ctx_                         context.Context
135882	header_                      http.Header
135883}
135884
135885// Validate: Runs static validation for the UrlMap. In particular, the
135886// tests of the provided UrlMap will be run. Calling this method does
135887// NOT create the UrlMap.
135888//
135889// - project: Project ID for this request.
135890// - region: Name of the region scoping this request.
135891// - urlMap: Name of the UrlMap resource to be validated as.
135892func (r *RegionUrlMapsService) Validate(project string, region string, urlMap string, regionurlmapsvalidaterequest *RegionUrlMapsValidateRequest) *RegionUrlMapsValidateCall {
135893	c := &RegionUrlMapsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135894	c.project = project
135895	c.region = region
135896	c.urlMap = urlMap
135897	c.regionurlmapsvalidaterequest = regionurlmapsvalidaterequest
135898	return c
135899}
135900
135901// Fields allows partial responses to be retrieved. See
135902// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135903// for more information.
135904func (c *RegionUrlMapsValidateCall) Fields(s ...googleapi.Field) *RegionUrlMapsValidateCall {
135905	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135906	return c
135907}
135908
135909// Context sets the context to be used in this call's Do method. Any
135910// pending HTTP request will be aborted if the provided context is
135911// canceled.
135912func (c *RegionUrlMapsValidateCall) Context(ctx context.Context) *RegionUrlMapsValidateCall {
135913	c.ctx_ = ctx
135914	return c
135915}
135916
135917// Header returns an http.Header that can be modified by the caller to
135918// add HTTP headers to the request.
135919func (c *RegionUrlMapsValidateCall) Header() http.Header {
135920	if c.header_ == nil {
135921		c.header_ = make(http.Header)
135922	}
135923	return c.header_
135924}
135925
135926func (c *RegionUrlMapsValidateCall) doRequest(alt string) (*http.Response, error) {
135927	reqHeaders := make(http.Header)
135928	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
135929	for k, v := range c.header_ {
135930		reqHeaders[k] = v
135931	}
135932	reqHeaders.Set("User-Agent", c.s.userAgent())
135933	var body io.Reader = nil
135934	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionurlmapsvalidaterequest)
135935	if err != nil {
135936		return nil, err
135937	}
135938	reqHeaders.Set("Content-Type", "application/json")
135939	c.urlParams_.Set("alt", alt)
135940	c.urlParams_.Set("prettyPrint", "false")
135941	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}/validate")
135942	urls += "?" + c.urlParams_.Encode()
135943	req, err := http.NewRequest("POST", 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		"region":  c.region,
135951		"urlMap":  c.urlMap,
135952	})
135953	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135954}
135955
135956// Do executes the "compute.regionUrlMaps.validate" call.
135957// Exactly one of *UrlMapsValidateResponse or error will be non-nil. Any
135958// non-2xx status code is an error. Response headers are in either
135959// *UrlMapsValidateResponse.ServerResponse.Header or (if a response was
135960// returned at all) in error.(*googleapi.Error).Header. Use
135961// googleapi.IsNotModified to check whether the returned error was
135962// because http.StatusNotModified was returned.
135963func (c *RegionUrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidateResponse, error) {
135964	gensupport.SetOptions(c.urlParams_, opts...)
135965	res, err := c.doRequest("json")
135966	if res != nil && res.StatusCode == http.StatusNotModified {
135967		if res.Body != nil {
135968			res.Body.Close()
135969		}
135970		return nil, &googleapi.Error{
135971			Code:   res.StatusCode,
135972			Header: res.Header,
135973		}
135974	}
135975	if err != nil {
135976		return nil, err
135977	}
135978	defer googleapi.CloseBody(res)
135979	if err := googleapi.CheckResponse(res); err != nil {
135980		return nil, err
135981	}
135982	ret := &UrlMapsValidateResponse{
135983		ServerResponse: googleapi.ServerResponse{
135984			Header:         res.Header,
135985			HTTPStatusCode: res.StatusCode,
135986		},
135987	}
135988	target := &ret
135989	if err := gensupport.DecodeResponse(target, res); err != nil {
135990		return nil, err
135991	}
135992	return ret, nil
135993	// {
135994	//   "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.",
135995	//   "flatPath": "projects/{project}/regions/{region}/urlMaps/{urlMap}/validate",
135996	//   "httpMethod": "POST",
135997	//   "id": "compute.regionUrlMaps.validate",
135998	//   "parameterOrder": [
135999	//     "project",
136000	//     "region",
136001	//     "urlMap"
136002	//   ],
136003	//   "parameters": {
136004	//     "project": {
136005	//       "description": "Project ID for this request.",
136006	//       "location": "path",
136007	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136008	//       "required": true,
136009	//       "type": "string"
136010	//     },
136011	//     "region": {
136012	//       "description": "Name of the region scoping this request.",
136013	//       "location": "path",
136014	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
136015	//       "required": true,
136016	//       "type": "string"
136017	//     },
136018	//     "urlMap": {
136019	//       "description": "Name of the UrlMap resource to be validated as.",
136020	//       "location": "path",
136021	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
136022	//       "required": true,
136023	//       "type": "string"
136024	//     }
136025	//   },
136026	//   "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}/validate",
136027	//   "request": {
136028	//     "$ref": "RegionUrlMapsValidateRequest"
136029	//   },
136030	//   "response": {
136031	//     "$ref": "UrlMapsValidateResponse"
136032	//   },
136033	//   "scopes": [
136034	//     "https://www.googleapis.com/auth/cloud-platform",
136035	//     "https://www.googleapis.com/auth/compute"
136036	//   ]
136037	// }
136038
136039}
136040
136041// method id "compute.regions.get":
136042
136043type RegionsGetCall struct {
136044	s            *Service
136045	project      string
136046	region       string
136047	urlParams_   gensupport.URLParams
136048	ifNoneMatch_ string
136049	ctx_         context.Context
136050	header_      http.Header
136051}
136052
136053// Get: Returns the specified Region resource. Gets a list of available
136054// regions by making a list() request.
136055//
136056// - project: Project ID for this request.
136057// - region: Name of the region resource to return.
136058func (r *RegionsService) Get(project string, region string) *RegionsGetCall {
136059	c := &RegionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136060	c.project = project
136061	c.region = region
136062	return c
136063}
136064
136065// Fields allows partial responses to be retrieved. See
136066// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136067// for more information.
136068func (c *RegionsGetCall) Fields(s ...googleapi.Field) *RegionsGetCall {
136069	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136070	return c
136071}
136072
136073// IfNoneMatch sets the optional parameter which makes the operation
136074// fail if the object's ETag matches the given value. This is useful for
136075// getting updates only after the object has changed since the last
136076// request. Use googleapi.IsNotModified to check whether the response
136077// error from Do is the result of In-None-Match.
136078func (c *RegionsGetCall) IfNoneMatch(entityTag string) *RegionsGetCall {
136079	c.ifNoneMatch_ = entityTag
136080	return c
136081}
136082
136083// Context sets the context to be used in this call's Do method. Any
136084// pending HTTP request will be aborted if the provided context is
136085// canceled.
136086func (c *RegionsGetCall) Context(ctx context.Context) *RegionsGetCall {
136087	c.ctx_ = ctx
136088	return c
136089}
136090
136091// Header returns an http.Header that can be modified by the caller to
136092// add HTTP headers to the request.
136093func (c *RegionsGetCall) Header() http.Header {
136094	if c.header_ == nil {
136095		c.header_ = make(http.Header)
136096	}
136097	return c.header_
136098}
136099
136100func (c *RegionsGetCall) doRequest(alt string) (*http.Response, error) {
136101	reqHeaders := make(http.Header)
136102	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
136103	for k, v := range c.header_ {
136104		reqHeaders[k] = v
136105	}
136106	reqHeaders.Set("User-Agent", c.s.userAgent())
136107	if c.ifNoneMatch_ != "" {
136108		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
136109	}
136110	var body io.Reader = nil
136111	c.urlParams_.Set("alt", alt)
136112	c.urlParams_.Set("prettyPrint", "false")
136113	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}")
136114	urls += "?" + c.urlParams_.Encode()
136115	req, err := http.NewRequest("GET", urls, body)
136116	if err != nil {
136117		return nil, err
136118	}
136119	req.Header = reqHeaders
136120	googleapi.Expand(req.URL, map[string]string{
136121		"project": c.project,
136122		"region":  c.region,
136123	})
136124	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136125}
136126
136127// Do executes the "compute.regions.get" call.
136128// Exactly one of *Region or error will be non-nil. Any non-2xx status
136129// code is an error. Response headers are in either
136130// *Region.ServerResponse.Header or (if a response was returned at all)
136131// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
136132// check whether the returned error was because http.StatusNotModified
136133// was returned.
136134func (c *RegionsGetCall) Do(opts ...googleapi.CallOption) (*Region, error) {
136135	gensupport.SetOptions(c.urlParams_, opts...)
136136	res, err := c.doRequest("json")
136137	if res != nil && res.StatusCode == http.StatusNotModified {
136138		if res.Body != nil {
136139			res.Body.Close()
136140		}
136141		return nil, &googleapi.Error{
136142			Code:   res.StatusCode,
136143			Header: res.Header,
136144		}
136145	}
136146	if err != nil {
136147		return nil, err
136148	}
136149	defer googleapi.CloseBody(res)
136150	if err := googleapi.CheckResponse(res); err != nil {
136151		return nil, err
136152	}
136153	ret := &Region{
136154		ServerResponse: googleapi.ServerResponse{
136155			Header:         res.Header,
136156			HTTPStatusCode: res.StatusCode,
136157		},
136158	}
136159	target := &ret
136160	if err := gensupport.DecodeResponse(target, res); err != nil {
136161		return nil, err
136162	}
136163	return ret, nil
136164	// {
136165	//   "description": "Returns the specified Region resource. Gets a list of available regions by making a list() request.",
136166	//   "flatPath": "projects/{project}/regions/{region}",
136167	//   "httpMethod": "GET",
136168	//   "id": "compute.regions.get",
136169	//   "parameterOrder": [
136170	//     "project",
136171	//     "region"
136172	//   ],
136173	//   "parameters": {
136174	//     "project": {
136175	//       "description": "Project ID for this request.",
136176	//       "location": "path",
136177	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136178	//       "required": true,
136179	//       "type": "string"
136180	//     },
136181	//     "region": {
136182	//       "description": "Name of the region resource to return.",
136183	//       "location": "path",
136184	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
136185	//       "required": true,
136186	//       "type": "string"
136187	//     }
136188	//   },
136189	//   "path": "projects/{project}/regions/{region}",
136190	//   "response": {
136191	//     "$ref": "Region"
136192	//   },
136193	//   "scopes": [
136194	//     "https://www.googleapis.com/auth/cloud-platform",
136195	//     "https://www.googleapis.com/auth/compute",
136196	//     "https://www.googleapis.com/auth/compute.readonly"
136197	//   ]
136198	// }
136199
136200}
136201
136202// method id "compute.regions.list":
136203
136204type RegionsListCall struct {
136205	s            *Service
136206	project      string
136207	urlParams_   gensupport.URLParams
136208	ifNoneMatch_ string
136209	ctx_         context.Context
136210	header_      http.Header
136211}
136212
136213// List: Retrieves the list of region resources available to the
136214// specified project.
136215//
136216// - project: Project ID for this request.
136217func (r *RegionsService) List(project string) *RegionsListCall {
136218	c := &RegionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136219	c.project = project
136220	return c
136221}
136222
136223// Filter sets the optional parameter "filter": A filter expression that
136224// filters resources listed in the response. The expression must specify
136225// the field name, a comparison operator, and the value that you want to
136226// use for filtering. The value must be a string, a number, or a
136227// boolean. The comparison operator must be either `=`, `!=`, `>`, or
136228// `<`. For example, if you are filtering Compute Engine instances, you
136229// can exclude instances named `example-instance` by specifying `name !=
136230// example-instance`. You can also filter nested fields. For example,
136231// you could specify `scheduling.automaticRestart = false` to include
136232// instances only if they are not scheduled for automatic restarts. You
136233// can use filtering on nested fields to filter based on resource
136234// labels. To filter on multiple expressions, provide each separate
136235// expression within parentheses. For example: ```
136236// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
136237// ``` By default, each expression is an `AND` expression. However, you
136238// can include `AND` and `OR` expressions explicitly. For example: ```
136239// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
136240// AND (scheduling.automaticRestart = true) ```
136241func (c *RegionsListCall) Filter(filter string) *RegionsListCall {
136242	c.urlParams_.Set("filter", filter)
136243	return c
136244}
136245
136246// MaxResults sets the optional parameter "maxResults": The maximum
136247// number of results per page that should be returned. If the number of
136248// available results is larger than `maxResults`, Compute Engine returns
136249// a `nextPageToken` that can be used to get the next page of results in
136250// subsequent list requests. Acceptable values are `0` to `500`,
136251// inclusive. (Default: `500`)
136252func (c *RegionsListCall) MaxResults(maxResults int64) *RegionsListCall {
136253	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
136254	return c
136255}
136256
136257// OrderBy sets the optional parameter "orderBy": Sorts list results by
136258// a certain order. By default, results are returned in alphanumerical
136259// order based on the resource name. You can also sort results in
136260// descending order based on the creation timestamp using
136261// `orderBy="creationTimestamp desc". This sorts results based on the
136262// `creationTimestamp` field in reverse chronological order (newest
136263// result first). Use this to sort resources like operations so that the
136264// newest operation is returned first. Currently, only sorting by `name`
136265// or `creationTimestamp desc` is supported.
136266func (c *RegionsListCall) OrderBy(orderBy string) *RegionsListCall {
136267	c.urlParams_.Set("orderBy", orderBy)
136268	return c
136269}
136270
136271// PageToken sets the optional parameter "pageToken": Specifies a page
136272// token to use. Set `pageToken` to the `nextPageToken` returned by a
136273// previous list request to get the next page of results.
136274func (c *RegionsListCall) PageToken(pageToken string) *RegionsListCall {
136275	c.urlParams_.Set("pageToken", pageToken)
136276	return c
136277}
136278
136279// ReturnPartialSuccess sets the optional parameter
136280// "returnPartialSuccess": Opt-in for partial success behavior which
136281// provides partial results in case of failure. The default value is
136282// false.
136283func (c *RegionsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionsListCall {
136284	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
136285	return c
136286}
136287
136288// Fields allows partial responses to be retrieved. See
136289// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136290// for more information.
136291func (c *RegionsListCall) Fields(s ...googleapi.Field) *RegionsListCall {
136292	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136293	return c
136294}
136295
136296// IfNoneMatch sets the optional parameter which makes the operation
136297// fail if the object's ETag matches the given value. This is useful for
136298// getting updates only after the object has changed since the last
136299// request. Use googleapi.IsNotModified to check whether the response
136300// error from Do is the result of In-None-Match.
136301func (c *RegionsListCall) IfNoneMatch(entityTag string) *RegionsListCall {
136302	c.ifNoneMatch_ = entityTag
136303	return c
136304}
136305
136306// Context sets the context to be used in this call's Do method. Any
136307// pending HTTP request will be aborted if the provided context is
136308// canceled.
136309func (c *RegionsListCall) Context(ctx context.Context) *RegionsListCall {
136310	c.ctx_ = ctx
136311	return c
136312}
136313
136314// Header returns an http.Header that can be modified by the caller to
136315// add HTTP headers to the request.
136316func (c *RegionsListCall) Header() http.Header {
136317	if c.header_ == nil {
136318		c.header_ = make(http.Header)
136319	}
136320	return c.header_
136321}
136322
136323func (c *RegionsListCall) doRequest(alt string) (*http.Response, error) {
136324	reqHeaders := make(http.Header)
136325	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
136326	for k, v := range c.header_ {
136327		reqHeaders[k] = v
136328	}
136329	reqHeaders.Set("User-Agent", c.s.userAgent())
136330	if c.ifNoneMatch_ != "" {
136331		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
136332	}
136333	var body io.Reader = nil
136334	c.urlParams_.Set("alt", alt)
136335	c.urlParams_.Set("prettyPrint", "false")
136336	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions")
136337	urls += "?" + c.urlParams_.Encode()
136338	req, err := http.NewRequest("GET", urls, body)
136339	if err != nil {
136340		return nil, err
136341	}
136342	req.Header = reqHeaders
136343	googleapi.Expand(req.URL, map[string]string{
136344		"project": c.project,
136345	})
136346	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136347}
136348
136349// Do executes the "compute.regions.list" call.
136350// Exactly one of *RegionList or error will be non-nil. Any non-2xx
136351// status code is an error. Response headers are in either
136352// *RegionList.ServerResponse.Header or (if a response was returned at
136353// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
136354// to check whether the returned error was because
136355// http.StatusNotModified was returned.
136356func (c *RegionsListCall) Do(opts ...googleapi.CallOption) (*RegionList, error) {
136357	gensupport.SetOptions(c.urlParams_, opts...)
136358	res, err := c.doRequest("json")
136359	if res != nil && res.StatusCode == http.StatusNotModified {
136360		if res.Body != nil {
136361			res.Body.Close()
136362		}
136363		return nil, &googleapi.Error{
136364			Code:   res.StatusCode,
136365			Header: res.Header,
136366		}
136367	}
136368	if err != nil {
136369		return nil, err
136370	}
136371	defer googleapi.CloseBody(res)
136372	if err := googleapi.CheckResponse(res); err != nil {
136373		return nil, err
136374	}
136375	ret := &RegionList{
136376		ServerResponse: googleapi.ServerResponse{
136377			Header:         res.Header,
136378			HTTPStatusCode: res.StatusCode,
136379		},
136380	}
136381	target := &ret
136382	if err := gensupport.DecodeResponse(target, res); err != nil {
136383		return nil, err
136384	}
136385	return ret, nil
136386	// {
136387	//   "description": "Retrieves the list of region resources available to the specified project.",
136388	//   "flatPath": "projects/{project}/regions",
136389	//   "httpMethod": "GET",
136390	//   "id": "compute.regions.list",
136391	//   "parameterOrder": [
136392	//     "project"
136393	//   ],
136394	//   "parameters": {
136395	//     "filter": {
136396	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
136397	//       "location": "query",
136398	//       "type": "string"
136399	//     },
136400	//     "maxResults": {
136401	//       "default": "500",
136402	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
136403	//       "format": "uint32",
136404	//       "location": "query",
136405	//       "minimum": "0",
136406	//       "type": "integer"
136407	//     },
136408	//     "orderBy": {
136409	//       "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.",
136410	//       "location": "query",
136411	//       "type": "string"
136412	//     },
136413	//     "pageToken": {
136414	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
136415	//       "location": "query",
136416	//       "type": "string"
136417	//     },
136418	//     "project": {
136419	//       "description": "Project ID for this request.",
136420	//       "location": "path",
136421	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136422	//       "required": true,
136423	//       "type": "string"
136424	//     },
136425	//     "returnPartialSuccess": {
136426	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
136427	//       "location": "query",
136428	//       "type": "boolean"
136429	//     }
136430	//   },
136431	//   "path": "projects/{project}/regions",
136432	//   "response": {
136433	//     "$ref": "RegionList"
136434	//   },
136435	//   "scopes": [
136436	//     "https://www.googleapis.com/auth/cloud-platform",
136437	//     "https://www.googleapis.com/auth/compute",
136438	//     "https://www.googleapis.com/auth/compute.readonly"
136439	//   ]
136440	// }
136441
136442}
136443
136444// Pages invokes f for each page of results.
136445// A non-nil error returned from f will halt the iteration.
136446// The provided context supersedes any context provided to the Context method.
136447func (c *RegionsListCall) Pages(ctx context.Context, f func(*RegionList) error) error {
136448	c.ctx_ = ctx
136449	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
136450	for {
136451		x, err := c.Do()
136452		if err != nil {
136453			return err
136454		}
136455		if err := f(x); err != nil {
136456			return err
136457		}
136458		if x.NextPageToken == "" {
136459			return nil
136460		}
136461		c.PageToken(x.NextPageToken)
136462	}
136463}
136464
136465// method id "compute.reservations.aggregatedList":
136466
136467type ReservationsAggregatedListCall struct {
136468	s            *Service
136469	project      string
136470	urlParams_   gensupport.URLParams
136471	ifNoneMatch_ string
136472	ctx_         context.Context
136473	header_      http.Header
136474}
136475
136476// AggregatedList: Retrieves an aggregated list of reservations.
136477//
136478// - project: Project ID for this request.
136479func (r *ReservationsService) AggregatedList(project string) *ReservationsAggregatedListCall {
136480	c := &ReservationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136481	c.project = project
136482	return c
136483}
136484
136485// Filter sets the optional parameter "filter": A filter expression that
136486// filters resources listed in the response. The expression must specify
136487// the field name, a comparison operator, and the value that you want to
136488// use for filtering. The value must be a string, a number, or a
136489// boolean. The comparison operator must be either `=`, `!=`, `>`, or
136490// `<`. For example, if you are filtering Compute Engine instances, you
136491// can exclude instances named `example-instance` by specifying `name !=
136492// example-instance`. You can also filter nested fields. For example,
136493// you could specify `scheduling.automaticRestart = false` to include
136494// instances only if they are not scheduled for automatic restarts. You
136495// can use filtering on nested fields to filter based on resource
136496// labels. To filter on multiple expressions, provide each separate
136497// expression within parentheses. For example: ```
136498// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
136499// ``` By default, each expression is an `AND` expression. However, you
136500// can include `AND` and `OR` expressions explicitly. For example: ```
136501// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
136502// AND (scheduling.automaticRestart = true) ```
136503func (c *ReservationsAggregatedListCall) Filter(filter string) *ReservationsAggregatedListCall {
136504	c.urlParams_.Set("filter", filter)
136505	return c
136506}
136507
136508// IncludeAllScopes sets the optional parameter "includeAllScopes":
136509// Indicates whether every visible scope for each scope type (zone,
136510// region, global) should be included in the response. For new resource
136511// types added after this field, the flag has no effect as new resource
136512// types will always include every visible scope for each scope type in
136513// response. For resource types which predate this field, if this flag
136514// is omitted or false, only scopes of the scope types where the
136515// resource type is expected to be found will be included.
136516func (c *ReservationsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ReservationsAggregatedListCall {
136517	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
136518	return c
136519}
136520
136521// MaxResults sets the optional parameter "maxResults": The maximum
136522// number of results per page that should be returned. If the number of
136523// available results is larger than `maxResults`, Compute Engine returns
136524// a `nextPageToken` that can be used to get the next page of results in
136525// subsequent list requests. Acceptable values are `0` to `500`,
136526// inclusive. (Default: `500`)
136527func (c *ReservationsAggregatedListCall) MaxResults(maxResults int64) *ReservationsAggregatedListCall {
136528	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
136529	return c
136530}
136531
136532// OrderBy sets the optional parameter "orderBy": Sorts list results by
136533// a certain order. By default, results are returned in alphanumerical
136534// order based on the resource name. You can also sort results in
136535// descending order based on the creation timestamp using
136536// `orderBy="creationTimestamp desc". This sorts results based on the
136537// `creationTimestamp` field in reverse chronological order (newest
136538// result first). Use this to sort resources like operations so that the
136539// newest operation is returned first. Currently, only sorting by `name`
136540// or `creationTimestamp desc` is supported.
136541func (c *ReservationsAggregatedListCall) OrderBy(orderBy string) *ReservationsAggregatedListCall {
136542	c.urlParams_.Set("orderBy", orderBy)
136543	return c
136544}
136545
136546// PageToken sets the optional parameter "pageToken": Specifies a page
136547// token to use. Set `pageToken` to the `nextPageToken` returned by a
136548// previous list request to get the next page of results.
136549func (c *ReservationsAggregatedListCall) PageToken(pageToken string) *ReservationsAggregatedListCall {
136550	c.urlParams_.Set("pageToken", pageToken)
136551	return c
136552}
136553
136554// ReturnPartialSuccess sets the optional parameter
136555// "returnPartialSuccess": Opt-in for partial success behavior which
136556// provides partial results in case of failure. The default value is
136557// false.
136558func (c *ReservationsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ReservationsAggregatedListCall {
136559	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
136560	return c
136561}
136562
136563// Fields allows partial responses to be retrieved. See
136564// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136565// for more information.
136566func (c *ReservationsAggregatedListCall) Fields(s ...googleapi.Field) *ReservationsAggregatedListCall {
136567	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136568	return c
136569}
136570
136571// IfNoneMatch sets the optional parameter which makes the operation
136572// fail if the object's ETag matches the given value. This is useful for
136573// getting updates only after the object has changed since the last
136574// request. Use googleapi.IsNotModified to check whether the response
136575// error from Do is the result of In-None-Match.
136576func (c *ReservationsAggregatedListCall) IfNoneMatch(entityTag string) *ReservationsAggregatedListCall {
136577	c.ifNoneMatch_ = entityTag
136578	return c
136579}
136580
136581// Context sets the context to be used in this call's Do method. Any
136582// pending HTTP request will be aborted if the provided context is
136583// canceled.
136584func (c *ReservationsAggregatedListCall) Context(ctx context.Context) *ReservationsAggregatedListCall {
136585	c.ctx_ = ctx
136586	return c
136587}
136588
136589// Header returns an http.Header that can be modified by the caller to
136590// add HTTP headers to the request.
136591func (c *ReservationsAggregatedListCall) Header() http.Header {
136592	if c.header_ == nil {
136593		c.header_ = make(http.Header)
136594	}
136595	return c.header_
136596}
136597
136598func (c *ReservationsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
136599	reqHeaders := make(http.Header)
136600	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
136601	for k, v := range c.header_ {
136602		reqHeaders[k] = v
136603	}
136604	reqHeaders.Set("User-Agent", c.s.userAgent())
136605	if c.ifNoneMatch_ != "" {
136606		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
136607	}
136608	var body io.Reader = nil
136609	c.urlParams_.Set("alt", alt)
136610	c.urlParams_.Set("prettyPrint", "false")
136611	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/reservations")
136612	urls += "?" + c.urlParams_.Encode()
136613	req, err := http.NewRequest("GET", urls, body)
136614	if err != nil {
136615		return nil, err
136616	}
136617	req.Header = reqHeaders
136618	googleapi.Expand(req.URL, map[string]string{
136619		"project": c.project,
136620	})
136621	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136622}
136623
136624// Do executes the "compute.reservations.aggregatedList" call.
136625// Exactly one of *ReservationAggregatedList or error will be non-nil.
136626// Any non-2xx status code is an error. Response headers are in either
136627// *ReservationAggregatedList.ServerResponse.Header or (if a response
136628// was returned at all) in error.(*googleapi.Error).Header. Use
136629// googleapi.IsNotModified to check whether the returned error was
136630// because http.StatusNotModified was returned.
136631func (c *ReservationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*ReservationAggregatedList, error) {
136632	gensupport.SetOptions(c.urlParams_, opts...)
136633	res, err := c.doRequest("json")
136634	if res != nil && res.StatusCode == http.StatusNotModified {
136635		if res.Body != nil {
136636			res.Body.Close()
136637		}
136638		return nil, &googleapi.Error{
136639			Code:   res.StatusCode,
136640			Header: res.Header,
136641		}
136642	}
136643	if err != nil {
136644		return nil, err
136645	}
136646	defer googleapi.CloseBody(res)
136647	if err := googleapi.CheckResponse(res); err != nil {
136648		return nil, err
136649	}
136650	ret := &ReservationAggregatedList{
136651		ServerResponse: googleapi.ServerResponse{
136652			Header:         res.Header,
136653			HTTPStatusCode: res.StatusCode,
136654		},
136655	}
136656	target := &ret
136657	if err := gensupport.DecodeResponse(target, res); err != nil {
136658		return nil, err
136659	}
136660	return ret, nil
136661	// {
136662	//   "description": "Retrieves an aggregated list of reservations.",
136663	//   "flatPath": "projects/{project}/aggregated/reservations",
136664	//   "httpMethod": "GET",
136665	//   "id": "compute.reservations.aggregatedList",
136666	//   "parameterOrder": [
136667	//     "project"
136668	//   ],
136669	//   "parameters": {
136670	//     "filter": {
136671	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
136672	//       "location": "query",
136673	//       "type": "string"
136674	//     },
136675	//     "includeAllScopes": {
136676	//       "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.",
136677	//       "location": "query",
136678	//       "type": "boolean"
136679	//     },
136680	//     "maxResults": {
136681	//       "default": "500",
136682	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
136683	//       "format": "uint32",
136684	//       "location": "query",
136685	//       "minimum": "0",
136686	//       "type": "integer"
136687	//     },
136688	//     "orderBy": {
136689	//       "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.",
136690	//       "location": "query",
136691	//       "type": "string"
136692	//     },
136693	//     "pageToken": {
136694	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
136695	//       "location": "query",
136696	//       "type": "string"
136697	//     },
136698	//     "project": {
136699	//       "description": "Project ID for this request.",
136700	//       "location": "path",
136701	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136702	//       "required": true,
136703	//       "type": "string"
136704	//     },
136705	//     "returnPartialSuccess": {
136706	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
136707	//       "location": "query",
136708	//       "type": "boolean"
136709	//     }
136710	//   },
136711	//   "path": "projects/{project}/aggregated/reservations",
136712	//   "response": {
136713	//     "$ref": "ReservationAggregatedList"
136714	//   },
136715	//   "scopes": [
136716	//     "https://www.googleapis.com/auth/cloud-platform",
136717	//     "https://www.googleapis.com/auth/compute",
136718	//     "https://www.googleapis.com/auth/compute.readonly"
136719	//   ]
136720	// }
136721
136722}
136723
136724// Pages invokes f for each page of results.
136725// A non-nil error returned from f will halt the iteration.
136726// The provided context supersedes any context provided to the Context method.
136727func (c *ReservationsAggregatedListCall) Pages(ctx context.Context, f func(*ReservationAggregatedList) error) error {
136728	c.ctx_ = ctx
136729	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
136730	for {
136731		x, err := c.Do()
136732		if err != nil {
136733			return err
136734		}
136735		if err := f(x); err != nil {
136736			return err
136737		}
136738		if x.NextPageToken == "" {
136739			return nil
136740		}
136741		c.PageToken(x.NextPageToken)
136742	}
136743}
136744
136745// method id "compute.reservations.delete":
136746
136747type ReservationsDeleteCall struct {
136748	s           *Service
136749	project     string
136750	zone        string
136751	reservation string
136752	urlParams_  gensupport.URLParams
136753	ctx_        context.Context
136754	header_     http.Header
136755}
136756
136757// Delete: Deletes the specified reservation.
136758//
136759// - project: Project ID for this request.
136760// - reservation: Name of the reservation to delete.
136761// - zone: Name of the zone for this request.
136762func (r *ReservationsService) Delete(project string, zone string, reservation string) *ReservationsDeleteCall {
136763	c := &ReservationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136764	c.project = project
136765	c.zone = zone
136766	c.reservation = reservation
136767	return c
136768}
136769
136770// RequestId sets the optional parameter "requestId": An optional
136771// request ID to identify requests. Specify a unique request ID so that
136772// if you must retry your request, the server will know to ignore the
136773// request if it has already been completed. For example, consider a
136774// situation where you make an initial request and the request times
136775// out. If you make the request again with the same request ID, the
136776// server can check if original operation with the same request ID was
136777// received, and if so, will ignore the second request. This prevents
136778// clients from accidentally creating duplicate commitments. The request
136779// ID must be a valid UUID with the exception that zero UUID is not
136780// supported ( 00000000-0000-0000-0000-000000000000).
136781func (c *ReservationsDeleteCall) RequestId(requestId string) *ReservationsDeleteCall {
136782	c.urlParams_.Set("requestId", requestId)
136783	return c
136784}
136785
136786// Fields allows partial responses to be retrieved. See
136787// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136788// for more information.
136789func (c *ReservationsDeleteCall) Fields(s ...googleapi.Field) *ReservationsDeleteCall {
136790	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136791	return c
136792}
136793
136794// Context sets the context to be used in this call's Do method. Any
136795// pending HTTP request will be aborted if the provided context is
136796// canceled.
136797func (c *ReservationsDeleteCall) Context(ctx context.Context) *ReservationsDeleteCall {
136798	c.ctx_ = ctx
136799	return c
136800}
136801
136802// Header returns an http.Header that can be modified by the caller to
136803// add HTTP headers to the request.
136804func (c *ReservationsDeleteCall) Header() http.Header {
136805	if c.header_ == nil {
136806		c.header_ = make(http.Header)
136807	}
136808	return c.header_
136809}
136810
136811func (c *ReservationsDeleteCall) doRequest(alt string) (*http.Response, error) {
136812	reqHeaders := make(http.Header)
136813	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
136814	for k, v := range c.header_ {
136815		reqHeaders[k] = v
136816	}
136817	reqHeaders.Set("User-Agent", c.s.userAgent())
136818	var body io.Reader = nil
136819	c.urlParams_.Set("alt", alt)
136820	c.urlParams_.Set("prettyPrint", "false")
136821	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{reservation}")
136822	urls += "?" + c.urlParams_.Encode()
136823	req, err := http.NewRequest("DELETE", urls, body)
136824	if err != nil {
136825		return nil, err
136826	}
136827	req.Header = reqHeaders
136828	googleapi.Expand(req.URL, map[string]string{
136829		"project":     c.project,
136830		"zone":        c.zone,
136831		"reservation": c.reservation,
136832	})
136833	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136834}
136835
136836// Do executes the "compute.reservations.delete" call.
136837// Exactly one of *Operation or error will be non-nil. Any non-2xx
136838// status code is an error. Response headers are in either
136839// *Operation.ServerResponse.Header or (if a response was returned at
136840// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
136841// to check whether the returned error was because
136842// http.StatusNotModified was returned.
136843func (c *ReservationsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
136844	gensupport.SetOptions(c.urlParams_, opts...)
136845	res, err := c.doRequest("json")
136846	if res != nil && res.StatusCode == http.StatusNotModified {
136847		if res.Body != nil {
136848			res.Body.Close()
136849		}
136850		return nil, &googleapi.Error{
136851			Code:   res.StatusCode,
136852			Header: res.Header,
136853		}
136854	}
136855	if err != nil {
136856		return nil, err
136857	}
136858	defer googleapi.CloseBody(res)
136859	if err := googleapi.CheckResponse(res); err != nil {
136860		return nil, err
136861	}
136862	ret := &Operation{
136863		ServerResponse: googleapi.ServerResponse{
136864			Header:         res.Header,
136865			HTTPStatusCode: res.StatusCode,
136866		},
136867	}
136868	target := &ret
136869	if err := gensupport.DecodeResponse(target, res); err != nil {
136870		return nil, err
136871	}
136872	return ret, nil
136873	// {
136874	//   "description": "Deletes the specified reservation.",
136875	//   "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}",
136876	//   "httpMethod": "DELETE",
136877	//   "id": "compute.reservations.delete",
136878	//   "parameterOrder": [
136879	//     "project",
136880	//     "zone",
136881	//     "reservation"
136882	//   ],
136883	//   "parameters": {
136884	//     "project": {
136885	//       "description": "Project ID for this request.",
136886	//       "location": "path",
136887	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136888	//       "required": true,
136889	//       "type": "string"
136890	//     },
136891	//     "requestId": {
136892	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
136893	//       "location": "query",
136894	//       "type": "string"
136895	//     },
136896	//     "reservation": {
136897	//       "description": "Name of the reservation to delete.",
136898	//       "location": "path",
136899	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
136900	//       "required": true,
136901	//       "type": "string"
136902	//     },
136903	//     "zone": {
136904	//       "description": "Name of the zone for this request.",
136905	//       "location": "path",
136906	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
136907	//       "required": true,
136908	//       "type": "string"
136909	//     }
136910	//   },
136911	//   "path": "projects/{project}/zones/{zone}/reservations/{reservation}",
136912	//   "response": {
136913	//     "$ref": "Operation"
136914	//   },
136915	//   "scopes": [
136916	//     "https://www.googleapis.com/auth/cloud-platform",
136917	//     "https://www.googleapis.com/auth/compute"
136918	//   ]
136919	// }
136920
136921}
136922
136923// method id "compute.reservations.get":
136924
136925type ReservationsGetCall struct {
136926	s            *Service
136927	project      string
136928	zone         string
136929	reservation  string
136930	urlParams_   gensupport.URLParams
136931	ifNoneMatch_ string
136932	ctx_         context.Context
136933	header_      http.Header
136934}
136935
136936// Get: Retrieves information about the specified reservation.
136937//
136938// - project: Project ID for this request.
136939// - reservation: Name of the reservation to retrieve.
136940// - zone: Name of the zone for this request.
136941func (r *ReservationsService) Get(project string, zone string, reservation string) *ReservationsGetCall {
136942	c := &ReservationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136943	c.project = project
136944	c.zone = zone
136945	c.reservation = reservation
136946	return c
136947}
136948
136949// Fields allows partial responses to be retrieved. See
136950// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136951// for more information.
136952func (c *ReservationsGetCall) Fields(s ...googleapi.Field) *ReservationsGetCall {
136953	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136954	return c
136955}
136956
136957// IfNoneMatch sets the optional parameter which makes the operation
136958// fail if the object's ETag matches the given value. This is useful for
136959// getting updates only after the object has changed since the last
136960// request. Use googleapi.IsNotModified to check whether the response
136961// error from Do is the result of In-None-Match.
136962func (c *ReservationsGetCall) IfNoneMatch(entityTag string) *ReservationsGetCall {
136963	c.ifNoneMatch_ = entityTag
136964	return c
136965}
136966
136967// Context sets the context to be used in this call's Do method. Any
136968// pending HTTP request will be aborted if the provided context is
136969// canceled.
136970func (c *ReservationsGetCall) Context(ctx context.Context) *ReservationsGetCall {
136971	c.ctx_ = ctx
136972	return c
136973}
136974
136975// Header returns an http.Header that can be modified by the caller to
136976// add HTTP headers to the request.
136977func (c *ReservationsGetCall) Header() http.Header {
136978	if c.header_ == nil {
136979		c.header_ = make(http.Header)
136980	}
136981	return c.header_
136982}
136983
136984func (c *ReservationsGetCall) doRequest(alt string) (*http.Response, error) {
136985	reqHeaders := make(http.Header)
136986	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
136987	for k, v := range c.header_ {
136988		reqHeaders[k] = v
136989	}
136990	reqHeaders.Set("User-Agent", c.s.userAgent())
136991	if c.ifNoneMatch_ != "" {
136992		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
136993	}
136994	var body io.Reader = nil
136995	c.urlParams_.Set("alt", alt)
136996	c.urlParams_.Set("prettyPrint", "false")
136997	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{reservation}")
136998	urls += "?" + c.urlParams_.Encode()
136999	req, err := http.NewRequest("GET", urls, body)
137000	if err != nil {
137001		return nil, err
137002	}
137003	req.Header = reqHeaders
137004	googleapi.Expand(req.URL, map[string]string{
137005		"project":     c.project,
137006		"zone":        c.zone,
137007		"reservation": c.reservation,
137008	})
137009	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137010}
137011
137012// Do executes the "compute.reservations.get" call.
137013// Exactly one of *Reservation or error will be non-nil. Any non-2xx
137014// status code is an error. Response headers are in either
137015// *Reservation.ServerResponse.Header or (if a response was returned at
137016// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
137017// to check whether the returned error was because
137018// http.StatusNotModified was returned.
137019func (c *ReservationsGetCall) Do(opts ...googleapi.CallOption) (*Reservation, error) {
137020	gensupport.SetOptions(c.urlParams_, opts...)
137021	res, err := c.doRequest("json")
137022	if res != nil && res.StatusCode == http.StatusNotModified {
137023		if res.Body != nil {
137024			res.Body.Close()
137025		}
137026		return nil, &googleapi.Error{
137027			Code:   res.StatusCode,
137028			Header: res.Header,
137029		}
137030	}
137031	if err != nil {
137032		return nil, err
137033	}
137034	defer googleapi.CloseBody(res)
137035	if err := googleapi.CheckResponse(res); err != nil {
137036		return nil, err
137037	}
137038	ret := &Reservation{
137039		ServerResponse: googleapi.ServerResponse{
137040			Header:         res.Header,
137041			HTTPStatusCode: res.StatusCode,
137042		},
137043	}
137044	target := &ret
137045	if err := gensupport.DecodeResponse(target, res); err != nil {
137046		return nil, err
137047	}
137048	return ret, nil
137049	// {
137050	//   "description": "Retrieves information about the specified reservation.",
137051	//   "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}",
137052	//   "httpMethod": "GET",
137053	//   "id": "compute.reservations.get",
137054	//   "parameterOrder": [
137055	//     "project",
137056	//     "zone",
137057	//     "reservation"
137058	//   ],
137059	//   "parameters": {
137060	//     "project": {
137061	//       "description": "Project ID for this request.",
137062	//       "location": "path",
137063	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137064	//       "required": true,
137065	//       "type": "string"
137066	//     },
137067	//     "reservation": {
137068	//       "description": "Name of the reservation to retrieve.",
137069	//       "location": "path",
137070	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
137071	//       "required": true,
137072	//       "type": "string"
137073	//     },
137074	//     "zone": {
137075	//       "description": "Name of the zone for this request.",
137076	//       "location": "path",
137077	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137078	//       "required": true,
137079	//       "type": "string"
137080	//     }
137081	//   },
137082	//   "path": "projects/{project}/zones/{zone}/reservations/{reservation}",
137083	//   "response": {
137084	//     "$ref": "Reservation"
137085	//   },
137086	//   "scopes": [
137087	//     "https://www.googleapis.com/auth/cloud-platform",
137088	//     "https://www.googleapis.com/auth/compute",
137089	//     "https://www.googleapis.com/auth/compute.readonly"
137090	//   ]
137091	// }
137092
137093}
137094
137095// method id "compute.reservations.getIamPolicy":
137096
137097type ReservationsGetIamPolicyCall struct {
137098	s            *Service
137099	project      string
137100	zone         string
137101	resource     string
137102	urlParams_   gensupport.URLParams
137103	ifNoneMatch_ string
137104	ctx_         context.Context
137105	header_      http.Header
137106}
137107
137108// GetIamPolicy: Gets the access control policy for a resource. May be
137109// empty if no such policy or resource exists.
137110//
137111// - project: Project ID for this request.
137112// - resource: Name or id of the resource for this request.
137113// - zone: The name of the zone for this request.
137114func (r *ReservationsService) GetIamPolicy(project string, zone string, resource string) *ReservationsGetIamPolicyCall {
137115	c := &ReservationsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137116	c.project = project
137117	c.zone = zone
137118	c.resource = resource
137119	return c
137120}
137121
137122// OptionsRequestedPolicyVersion sets the optional parameter
137123// "optionsRequestedPolicyVersion": Requested IAM Policy version.
137124func (c *ReservationsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ReservationsGetIamPolicyCall {
137125	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
137126	return c
137127}
137128
137129// Fields allows partial responses to be retrieved. See
137130// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137131// for more information.
137132func (c *ReservationsGetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationsGetIamPolicyCall {
137133	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137134	return c
137135}
137136
137137// IfNoneMatch sets the optional parameter which makes the operation
137138// fail if the object's ETag matches the given value. This is useful for
137139// getting updates only after the object has changed since the last
137140// request. Use googleapi.IsNotModified to check whether the response
137141// error from Do is the result of In-None-Match.
137142func (c *ReservationsGetIamPolicyCall) IfNoneMatch(entityTag string) *ReservationsGetIamPolicyCall {
137143	c.ifNoneMatch_ = entityTag
137144	return c
137145}
137146
137147// Context sets the context to be used in this call's Do method. Any
137148// pending HTTP request will be aborted if the provided context is
137149// canceled.
137150func (c *ReservationsGetIamPolicyCall) Context(ctx context.Context) *ReservationsGetIamPolicyCall {
137151	c.ctx_ = ctx
137152	return c
137153}
137154
137155// Header returns an http.Header that can be modified by the caller to
137156// add HTTP headers to the request.
137157func (c *ReservationsGetIamPolicyCall) Header() http.Header {
137158	if c.header_ == nil {
137159		c.header_ = make(http.Header)
137160	}
137161	return c.header_
137162}
137163
137164func (c *ReservationsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
137165	reqHeaders := make(http.Header)
137166	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
137167	for k, v := range c.header_ {
137168		reqHeaders[k] = v
137169	}
137170	reqHeaders.Set("User-Agent", c.s.userAgent())
137171	if c.ifNoneMatch_ != "" {
137172		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
137173	}
137174	var body io.Reader = nil
137175	c.urlParams_.Set("alt", alt)
137176	c.urlParams_.Set("prettyPrint", "false")
137177	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy")
137178	urls += "?" + c.urlParams_.Encode()
137179	req, err := http.NewRequest("GET", urls, body)
137180	if err != nil {
137181		return nil, err
137182	}
137183	req.Header = reqHeaders
137184	googleapi.Expand(req.URL, map[string]string{
137185		"project":  c.project,
137186		"zone":     c.zone,
137187		"resource": c.resource,
137188	})
137189	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137190}
137191
137192// Do executes the "compute.reservations.getIamPolicy" call.
137193// Exactly one of *Policy or error will be non-nil. Any non-2xx status
137194// code is an error. Response headers are in either
137195// *Policy.ServerResponse.Header or (if a response was returned at all)
137196// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
137197// check whether the returned error was because http.StatusNotModified
137198// was returned.
137199func (c *ReservationsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
137200	gensupport.SetOptions(c.urlParams_, opts...)
137201	res, err := c.doRequest("json")
137202	if res != nil && res.StatusCode == http.StatusNotModified {
137203		if res.Body != nil {
137204			res.Body.Close()
137205		}
137206		return nil, &googleapi.Error{
137207			Code:   res.StatusCode,
137208			Header: res.Header,
137209		}
137210	}
137211	if err != nil {
137212		return nil, err
137213	}
137214	defer googleapi.CloseBody(res)
137215	if err := googleapi.CheckResponse(res); err != nil {
137216		return nil, err
137217	}
137218	ret := &Policy{
137219		ServerResponse: googleapi.ServerResponse{
137220			Header:         res.Header,
137221			HTTPStatusCode: res.StatusCode,
137222		},
137223	}
137224	target := &ret
137225	if err := gensupport.DecodeResponse(target, res); err != nil {
137226		return nil, err
137227	}
137228	return ret, nil
137229	// {
137230	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
137231	//   "flatPath": "projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy",
137232	//   "httpMethod": "GET",
137233	//   "id": "compute.reservations.getIamPolicy",
137234	//   "parameterOrder": [
137235	//     "project",
137236	//     "zone",
137237	//     "resource"
137238	//   ],
137239	//   "parameters": {
137240	//     "optionsRequestedPolicyVersion": {
137241	//       "description": "Requested IAM Policy version.",
137242	//       "format": "int32",
137243	//       "location": "query",
137244	//       "type": "integer"
137245	//     },
137246	//     "project": {
137247	//       "description": "Project ID for this request.",
137248	//       "location": "path",
137249	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137250	//       "required": true,
137251	//       "type": "string"
137252	//     },
137253	//     "resource": {
137254	//       "description": "Name or id of the resource for this request.",
137255	//       "location": "path",
137256	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
137257	//       "required": true,
137258	//       "type": "string"
137259	//     },
137260	//     "zone": {
137261	//       "description": "The name of the zone for this request.",
137262	//       "location": "path",
137263	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137264	//       "required": true,
137265	//       "type": "string"
137266	//     }
137267	//   },
137268	//   "path": "projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy",
137269	//   "response": {
137270	//     "$ref": "Policy"
137271	//   },
137272	//   "scopes": [
137273	//     "https://www.googleapis.com/auth/cloud-platform",
137274	//     "https://www.googleapis.com/auth/compute",
137275	//     "https://www.googleapis.com/auth/compute.readonly"
137276	//   ]
137277	// }
137278
137279}
137280
137281// method id "compute.reservations.insert":
137282
137283type ReservationsInsertCall struct {
137284	s           *Service
137285	project     string
137286	zone        string
137287	reservation *Reservation
137288	urlParams_  gensupport.URLParams
137289	ctx_        context.Context
137290	header_     http.Header
137291}
137292
137293// Insert: Creates a new reservation. For more information, read
137294// Reserving zonal resources.
137295//
137296// - project: Project ID for this request.
137297// - zone: Name of the zone for this request.
137298func (r *ReservationsService) Insert(project string, zone string, reservation *Reservation) *ReservationsInsertCall {
137299	c := &ReservationsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137300	c.project = project
137301	c.zone = zone
137302	c.reservation = reservation
137303	return c
137304}
137305
137306// RequestId sets the optional parameter "requestId": An optional
137307// request ID to identify requests. Specify a unique request ID so that
137308// if you must retry your request, the server will know to ignore the
137309// request if it has already been completed. For example, consider a
137310// situation where you make an initial request and the request times
137311// out. If you make the request again with the same request ID, the
137312// server can check if original operation with the same request ID was
137313// received, and if so, will ignore the second request. This prevents
137314// clients from accidentally creating duplicate commitments. The request
137315// ID must be a valid UUID with the exception that zero UUID is not
137316// supported ( 00000000-0000-0000-0000-000000000000).
137317func (c *ReservationsInsertCall) RequestId(requestId string) *ReservationsInsertCall {
137318	c.urlParams_.Set("requestId", requestId)
137319	return c
137320}
137321
137322// Fields allows partial responses to be retrieved. See
137323// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137324// for more information.
137325func (c *ReservationsInsertCall) Fields(s ...googleapi.Field) *ReservationsInsertCall {
137326	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137327	return c
137328}
137329
137330// Context sets the context to be used in this call's Do method. Any
137331// pending HTTP request will be aborted if the provided context is
137332// canceled.
137333func (c *ReservationsInsertCall) Context(ctx context.Context) *ReservationsInsertCall {
137334	c.ctx_ = ctx
137335	return c
137336}
137337
137338// Header returns an http.Header that can be modified by the caller to
137339// add HTTP headers to the request.
137340func (c *ReservationsInsertCall) Header() http.Header {
137341	if c.header_ == nil {
137342		c.header_ = make(http.Header)
137343	}
137344	return c.header_
137345}
137346
137347func (c *ReservationsInsertCall) doRequest(alt string) (*http.Response, error) {
137348	reqHeaders := make(http.Header)
137349	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
137350	for k, v := range c.header_ {
137351		reqHeaders[k] = v
137352	}
137353	reqHeaders.Set("User-Agent", c.s.userAgent())
137354	var body io.Reader = nil
137355	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reservation)
137356	if err != nil {
137357		return nil, err
137358	}
137359	reqHeaders.Set("Content-Type", "application/json")
137360	c.urlParams_.Set("alt", alt)
137361	c.urlParams_.Set("prettyPrint", "false")
137362	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations")
137363	urls += "?" + c.urlParams_.Encode()
137364	req, err := http.NewRequest("POST", urls, body)
137365	if err != nil {
137366		return nil, err
137367	}
137368	req.Header = reqHeaders
137369	googleapi.Expand(req.URL, map[string]string{
137370		"project": c.project,
137371		"zone":    c.zone,
137372	})
137373	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137374}
137375
137376// Do executes the "compute.reservations.insert" call.
137377// Exactly one of *Operation or error will be non-nil. Any non-2xx
137378// status code is an error. Response headers are in either
137379// *Operation.ServerResponse.Header or (if a response was returned at
137380// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
137381// to check whether the returned error was because
137382// http.StatusNotModified was returned.
137383func (c *ReservationsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
137384	gensupport.SetOptions(c.urlParams_, opts...)
137385	res, err := c.doRequest("json")
137386	if res != nil && res.StatusCode == http.StatusNotModified {
137387		if res.Body != nil {
137388			res.Body.Close()
137389		}
137390		return nil, &googleapi.Error{
137391			Code:   res.StatusCode,
137392			Header: res.Header,
137393		}
137394	}
137395	if err != nil {
137396		return nil, err
137397	}
137398	defer googleapi.CloseBody(res)
137399	if err := googleapi.CheckResponse(res); err != nil {
137400		return nil, err
137401	}
137402	ret := &Operation{
137403		ServerResponse: googleapi.ServerResponse{
137404			Header:         res.Header,
137405			HTTPStatusCode: res.StatusCode,
137406		},
137407	}
137408	target := &ret
137409	if err := gensupport.DecodeResponse(target, res); err != nil {
137410		return nil, err
137411	}
137412	return ret, nil
137413	// {
137414	//   "description": "Creates a new reservation. For more information, read Reserving zonal resources.",
137415	//   "flatPath": "projects/{project}/zones/{zone}/reservations",
137416	//   "httpMethod": "POST",
137417	//   "id": "compute.reservations.insert",
137418	//   "parameterOrder": [
137419	//     "project",
137420	//     "zone"
137421	//   ],
137422	//   "parameters": {
137423	//     "project": {
137424	//       "description": "Project ID for this request.",
137425	//       "location": "path",
137426	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137427	//       "required": true,
137428	//       "type": "string"
137429	//     },
137430	//     "requestId": {
137431	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
137432	//       "location": "query",
137433	//       "type": "string"
137434	//     },
137435	//     "zone": {
137436	//       "description": "Name of the zone for this request.",
137437	//       "location": "path",
137438	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137439	//       "required": true,
137440	//       "type": "string"
137441	//     }
137442	//   },
137443	//   "path": "projects/{project}/zones/{zone}/reservations",
137444	//   "request": {
137445	//     "$ref": "Reservation"
137446	//   },
137447	//   "response": {
137448	//     "$ref": "Operation"
137449	//   },
137450	//   "scopes": [
137451	//     "https://www.googleapis.com/auth/cloud-platform",
137452	//     "https://www.googleapis.com/auth/compute"
137453	//   ]
137454	// }
137455
137456}
137457
137458// method id "compute.reservations.list":
137459
137460type ReservationsListCall struct {
137461	s            *Service
137462	project      string
137463	zone         string
137464	urlParams_   gensupport.URLParams
137465	ifNoneMatch_ string
137466	ctx_         context.Context
137467	header_      http.Header
137468}
137469
137470// List: A list of all the reservations that have been configured for
137471// the specified project in specified zone.
137472//
137473// - project: Project ID for this request.
137474// - zone: Name of the zone for this request.
137475func (r *ReservationsService) List(project string, zone string) *ReservationsListCall {
137476	c := &ReservationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137477	c.project = project
137478	c.zone = zone
137479	return c
137480}
137481
137482// Filter sets the optional parameter "filter": A filter expression that
137483// filters resources listed in the response. The expression must specify
137484// the field name, a comparison operator, and the value that you want to
137485// use for filtering. The value must be a string, a number, or a
137486// boolean. The comparison operator must be either `=`, `!=`, `>`, or
137487// `<`. For example, if you are filtering Compute Engine instances, you
137488// can exclude instances named `example-instance` by specifying `name !=
137489// example-instance`. You can also filter nested fields. For example,
137490// you could specify `scheduling.automaticRestart = false` to include
137491// instances only if they are not scheduled for automatic restarts. You
137492// can use filtering on nested fields to filter based on resource
137493// labels. To filter on multiple expressions, provide each separate
137494// expression within parentheses. For example: ```
137495// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
137496// ``` By default, each expression is an `AND` expression. However, you
137497// can include `AND` and `OR` expressions explicitly. For example: ```
137498// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
137499// AND (scheduling.automaticRestart = true) ```
137500func (c *ReservationsListCall) Filter(filter string) *ReservationsListCall {
137501	c.urlParams_.Set("filter", filter)
137502	return c
137503}
137504
137505// MaxResults sets the optional parameter "maxResults": The maximum
137506// number of results per page that should be returned. If the number of
137507// available results is larger than `maxResults`, Compute Engine returns
137508// a `nextPageToken` that can be used to get the next page of results in
137509// subsequent list requests. Acceptable values are `0` to `500`,
137510// inclusive. (Default: `500`)
137511func (c *ReservationsListCall) MaxResults(maxResults int64) *ReservationsListCall {
137512	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
137513	return c
137514}
137515
137516// OrderBy sets the optional parameter "orderBy": Sorts list results by
137517// a certain order. By default, results are returned in alphanumerical
137518// order based on the resource name. You can also sort results in
137519// descending order based on the creation timestamp using
137520// `orderBy="creationTimestamp desc". This sorts results based on the
137521// `creationTimestamp` field in reverse chronological order (newest
137522// result first). Use this to sort resources like operations so that the
137523// newest operation is returned first. Currently, only sorting by `name`
137524// or `creationTimestamp desc` is supported.
137525func (c *ReservationsListCall) OrderBy(orderBy string) *ReservationsListCall {
137526	c.urlParams_.Set("orderBy", orderBy)
137527	return c
137528}
137529
137530// PageToken sets the optional parameter "pageToken": Specifies a page
137531// token to use. Set `pageToken` to the `nextPageToken` returned by a
137532// previous list request to get the next page of results.
137533func (c *ReservationsListCall) PageToken(pageToken string) *ReservationsListCall {
137534	c.urlParams_.Set("pageToken", pageToken)
137535	return c
137536}
137537
137538// ReturnPartialSuccess sets the optional parameter
137539// "returnPartialSuccess": Opt-in for partial success behavior which
137540// provides partial results in case of failure. The default value is
137541// false.
137542func (c *ReservationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ReservationsListCall {
137543	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
137544	return c
137545}
137546
137547// Fields allows partial responses to be retrieved. See
137548// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137549// for more information.
137550func (c *ReservationsListCall) Fields(s ...googleapi.Field) *ReservationsListCall {
137551	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137552	return c
137553}
137554
137555// IfNoneMatch sets the optional parameter which makes the operation
137556// fail if the object's ETag matches the given value. This is useful for
137557// getting updates only after the object has changed since the last
137558// request. Use googleapi.IsNotModified to check whether the response
137559// error from Do is the result of In-None-Match.
137560func (c *ReservationsListCall) IfNoneMatch(entityTag string) *ReservationsListCall {
137561	c.ifNoneMatch_ = entityTag
137562	return c
137563}
137564
137565// Context sets the context to be used in this call's Do method. Any
137566// pending HTTP request will be aborted if the provided context is
137567// canceled.
137568func (c *ReservationsListCall) Context(ctx context.Context) *ReservationsListCall {
137569	c.ctx_ = ctx
137570	return c
137571}
137572
137573// Header returns an http.Header that can be modified by the caller to
137574// add HTTP headers to the request.
137575func (c *ReservationsListCall) Header() http.Header {
137576	if c.header_ == nil {
137577		c.header_ = make(http.Header)
137578	}
137579	return c.header_
137580}
137581
137582func (c *ReservationsListCall) doRequest(alt string) (*http.Response, error) {
137583	reqHeaders := make(http.Header)
137584	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
137585	for k, v := range c.header_ {
137586		reqHeaders[k] = v
137587	}
137588	reqHeaders.Set("User-Agent", c.s.userAgent())
137589	if c.ifNoneMatch_ != "" {
137590		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
137591	}
137592	var body io.Reader = nil
137593	c.urlParams_.Set("alt", alt)
137594	c.urlParams_.Set("prettyPrint", "false")
137595	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations")
137596	urls += "?" + c.urlParams_.Encode()
137597	req, err := http.NewRequest("GET", urls, body)
137598	if err != nil {
137599		return nil, err
137600	}
137601	req.Header = reqHeaders
137602	googleapi.Expand(req.URL, map[string]string{
137603		"project": c.project,
137604		"zone":    c.zone,
137605	})
137606	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137607}
137608
137609// Do executes the "compute.reservations.list" call.
137610// Exactly one of *ReservationList or error will be non-nil. Any non-2xx
137611// status code is an error. Response headers are in either
137612// *ReservationList.ServerResponse.Header or (if a response was returned
137613// at all) in error.(*googleapi.Error).Header. Use
137614// googleapi.IsNotModified to check whether the returned error was
137615// because http.StatusNotModified was returned.
137616func (c *ReservationsListCall) Do(opts ...googleapi.CallOption) (*ReservationList, error) {
137617	gensupport.SetOptions(c.urlParams_, opts...)
137618	res, err := c.doRequest("json")
137619	if res != nil && res.StatusCode == http.StatusNotModified {
137620		if res.Body != nil {
137621			res.Body.Close()
137622		}
137623		return nil, &googleapi.Error{
137624			Code:   res.StatusCode,
137625			Header: res.Header,
137626		}
137627	}
137628	if err != nil {
137629		return nil, err
137630	}
137631	defer googleapi.CloseBody(res)
137632	if err := googleapi.CheckResponse(res); err != nil {
137633		return nil, err
137634	}
137635	ret := &ReservationList{
137636		ServerResponse: googleapi.ServerResponse{
137637			Header:         res.Header,
137638			HTTPStatusCode: res.StatusCode,
137639		},
137640	}
137641	target := &ret
137642	if err := gensupport.DecodeResponse(target, res); err != nil {
137643		return nil, err
137644	}
137645	return ret, nil
137646	// {
137647	//   "description": "A list of all the reservations that have been configured for the specified project in specified zone.",
137648	//   "flatPath": "projects/{project}/zones/{zone}/reservations",
137649	//   "httpMethod": "GET",
137650	//   "id": "compute.reservations.list",
137651	//   "parameterOrder": [
137652	//     "project",
137653	//     "zone"
137654	//   ],
137655	//   "parameters": {
137656	//     "filter": {
137657	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
137658	//       "location": "query",
137659	//       "type": "string"
137660	//     },
137661	//     "maxResults": {
137662	//       "default": "500",
137663	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
137664	//       "format": "uint32",
137665	//       "location": "query",
137666	//       "minimum": "0",
137667	//       "type": "integer"
137668	//     },
137669	//     "orderBy": {
137670	//       "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.",
137671	//       "location": "query",
137672	//       "type": "string"
137673	//     },
137674	//     "pageToken": {
137675	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
137676	//       "location": "query",
137677	//       "type": "string"
137678	//     },
137679	//     "project": {
137680	//       "description": "Project ID for this request.",
137681	//       "location": "path",
137682	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137683	//       "required": true,
137684	//       "type": "string"
137685	//     },
137686	//     "returnPartialSuccess": {
137687	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
137688	//       "location": "query",
137689	//       "type": "boolean"
137690	//     },
137691	//     "zone": {
137692	//       "description": "Name of the zone for this request.",
137693	//       "location": "path",
137694	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137695	//       "required": true,
137696	//       "type": "string"
137697	//     }
137698	//   },
137699	//   "path": "projects/{project}/zones/{zone}/reservations",
137700	//   "response": {
137701	//     "$ref": "ReservationList"
137702	//   },
137703	//   "scopes": [
137704	//     "https://www.googleapis.com/auth/cloud-platform",
137705	//     "https://www.googleapis.com/auth/compute",
137706	//     "https://www.googleapis.com/auth/compute.readonly"
137707	//   ]
137708	// }
137709
137710}
137711
137712// Pages invokes f for each page of results.
137713// A non-nil error returned from f will halt the iteration.
137714// The provided context supersedes any context provided to the Context method.
137715func (c *ReservationsListCall) Pages(ctx context.Context, f func(*ReservationList) error) error {
137716	c.ctx_ = ctx
137717	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
137718	for {
137719		x, err := c.Do()
137720		if err != nil {
137721			return err
137722		}
137723		if err := f(x); err != nil {
137724			return err
137725		}
137726		if x.NextPageToken == "" {
137727			return nil
137728		}
137729		c.PageToken(x.NextPageToken)
137730	}
137731}
137732
137733// method id "compute.reservations.resize":
137734
137735type ReservationsResizeCall struct {
137736	s                         *Service
137737	project                   string
137738	zone                      string
137739	reservation               string
137740	reservationsresizerequest *ReservationsResizeRequest
137741	urlParams_                gensupport.URLParams
137742	ctx_                      context.Context
137743	header_                   http.Header
137744}
137745
137746// Resize: Resizes the reservation (applicable to standalone
137747// reservations only). For more information, read Modifying
137748// reservations.
137749//
137750// - project: Project ID for this request.
137751// - reservation: Name of the reservation to update.
137752// - zone: Name of the zone for this request.
137753func (r *ReservationsService) Resize(project string, zone string, reservation string, reservationsresizerequest *ReservationsResizeRequest) *ReservationsResizeCall {
137754	c := &ReservationsResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137755	c.project = project
137756	c.zone = zone
137757	c.reservation = reservation
137758	c.reservationsresizerequest = reservationsresizerequest
137759	return c
137760}
137761
137762// RequestId sets the optional parameter "requestId": An optional
137763// request ID to identify requests. Specify a unique request ID so that
137764// if you must retry your request, the server will know to ignore the
137765// request if it has already been completed. For example, consider a
137766// situation where you make an initial request and the request times
137767// out. If you make the request again with the same request ID, the
137768// server can check if original operation with the same request ID was
137769// received, and if so, will ignore the second request. This prevents
137770// clients from accidentally creating duplicate commitments. The request
137771// ID must be a valid UUID with the exception that zero UUID is not
137772// supported ( 00000000-0000-0000-0000-000000000000).
137773func (c *ReservationsResizeCall) RequestId(requestId string) *ReservationsResizeCall {
137774	c.urlParams_.Set("requestId", requestId)
137775	return c
137776}
137777
137778// Fields allows partial responses to be retrieved. See
137779// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137780// for more information.
137781func (c *ReservationsResizeCall) Fields(s ...googleapi.Field) *ReservationsResizeCall {
137782	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137783	return c
137784}
137785
137786// Context sets the context to be used in this call's Do method. Any
137787// pending HTTP request will be aborted if the provided context is
137788// canceled.
137789func (c *ReservationsResizeCall) Context(ctx context.Context) *ReservationsResizeCall {
137790	c.ctx_ = ctx
137791	return c
137792}
137793
137794// Header returns an http.Header that can be modified by the caller to
137795// add HTTP headers to the request.
137796func (c *ReservationsResizeCall) Header() http.Header {
137797	if c.header_ == nil {
137798		c.header_ = make(http.Header)
137799	}
137800	return c.header_
137801}
137802
137803func (c *ReservationsResizeCall) doRequest(alt string) (*http.Response, error) {
137804	reqHeaders := make(http.Header)
137805	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
137806	for k, v := range c.header_ {
137807		reqHeaders[k] = v
137808	}
137809	reqHeaders.Set("User-Agent", c.s.userAgent())
137810	var body io.Reader = nil
137811	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reservationsresizerequest)
137812	if err != nil {
137813		return nil, err
137814	}
137815	reqHeaders.Set("Content-Type", "application/json")
137816	c.urlParams_.Set("alt", alt)
137817	c.urlParams_.Set("prettyPrint", "false")
137818	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{reservation}/resize")
137819	urls += "?" + c.urlParams_.Encode()
137820	req, err := http.NewRequest("POST", urls, body)
137821	if err != nil {
137822		return nil, err
137823	}
137824	req.Header = reqHeaders
137825	googleapi.Expand(req.URL, map[string]string{
137826		"project":     c.project,
137827		"zone":        c.zone,
137828		"reservation": c.reservation,
137829	})
137830	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137831}
137832
137833// Do executes the "compute.reservations.resize" call.
137834// Exactly one of *Operation or error will be non-nil. Any non-2xx
137835// status code is an error. Response headers are in either
137836// *Operation.ServerResponse.Header or (if a response was returned at
137837// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
137838// to check whether the returned error was because
137839// http.StatusNotModified was returned.
137840func (c *ReservationsResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
137841	gensupport.SetOptions(c.urlParams_, opts...)
137842	res, err := c.doRequest("json")
137843	if res != nil && res.StatusCode == http.StatusNotModified {
137844		if res.Body != nil {
137845			res.Body.Close()
137846		}
137847		return nil, &googleapi.Error{
137848			Code:   res.StatusCode,
137849			Header: res.Header,
137850		}
137851	}
137852	if err != nil {
137853		return nil, err
137854	}
137855	defer googleapi.CloseBody(res)
137856	if err := googleapi.CheckResponse(res); err != nil {
137857		return nil, err
137858	}
137859	ret := &Operation{
137860		ServerResponse: googleapi.ServerResponse{
137861			Header:         res.Header,
137862			HTTPStatusCode: res.StatusCode,
137863		},
137864	}
137865	target := &ret
137866	if err := gensupport.DecodeResponse(target, res); err != nil {
137867		return nil, err
137868	}
137869	return ret, nil
137870	// {
137871	//   "description": "Resizes the reservation (applicable to standalone reservations only). For more information, read Modifying reservations.",
137872	//   "flatPath": "projects/{project}/zones/{zone}/reservations/{reservation}/resize",
137873	//   "httpMethod": "POST",
137874	//   "id": "compute.reservations.resize",
137875	//   "parameterOrder": [
137876	//     "project",
137877	//     "zone",
137878	//     "reservation"
137879	//   ],
137880	//   "parameters": {
137881	//     "project": {
137882	//       "description": "Project ID for this request.",
137883	//       "location": "path",
137884	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137885	//       "required": true,
137886	//       "type": "string"
137887	//     },
137888	//     "requestId": {
137889	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
137890	//       "location": "query",
137891	//       "type": "string"
137892	//     },
137893	//     "reservation": {
137894	//       "description": "Name of the reservation to update.",
137895	//       "location": "path",
137896	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137897	//       "required": true,
137898	//       "type": "string"
137899	//     },
137900	//     "zone": {
137901	//       "description": "Name of the zone for this request.",
137902	//       "location": "path",
137903	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137904	//       "required": true,
137905	//       "type": "string"
137906	//     }
137907	//   },
137908	//   "path": "projects/{project}/zones/{zone}/reservations/{reservation}/resize",
137909	//   "request": {
137910	//     "$ref": "ReservationsResizeRequest"
137911	//   },
137912	//   "response": {
137913	//     "$ref": "Operation"
137914	//   },
137915	//   "scopes": [
137916	//     "https://www.googleapis.com/auth/cloud-platform",
137917	//     "https://www.googleapis.com/auth/compute"
137918	//   ]
137919	// }
137920
137921}
137922
137923// method id "compute.reservations.setIamPolicy":
137924
137925type ReservationsSetIamPolicyCall struct {
137926	s                    *Service
137927	project              string
137928	zone                 string
137929	resource             string
137930	zonesetpolicyrequest *ZoneSetPolicyRequest
137931	urlParams_           gensupport.URLParams
137932	ctx_                 context.Context
137933	header_              http.Header
137934}
137935
137936// SetIamPolicy: Sets the access control policy on the specified
137937// resource. Replaces any existing policy.
137938//
137939// - project: Project ID for this request.
137940// - resource: Name or id of the resource for this request.
137941// - zone: The name of the zone for this request.
137942func (r *ReservationsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *ReservationsSetIamPolicyCall {
137943	c := &ReservationsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137944	c.project = project
137945	c.zone = zone
137946	c.resource = resource
137947	c.zonesetpolicyrequest = zonesetpolicyrequest
137948	return c
137949}
137950
137951// Fields allows partial responses to be retrieved. See
137952// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137953// for more information.
137954func (c *ReservationsSetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationsSetIamPolicyCall {
137955	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137956	return c
137957}
137958
137959// Context sets the context to be used in this call's Do method. Any
137960// pending HTTP request will be aborted if the provided context is
137961// canceled.
137962func (c *ReservationsSetIamPolicyCall) Context(ctx context.Context) *ReservationsSetIamPolicyCall {
137963	c.ctx_ = ctx
137964	return c
137965}
137966
137967// Header returns an http.Header that can be modified by the caller to
137968// add HTTP headers to the request.
137969func (c *ReservationsSetIamPolicyCall) Header() http.Header {
137970	if c.header_ == nil {
137971		c.header_ = make(http.Header)
137972	}
137973	return c.header_
137974}
137975
137976func (c *ReservationsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
137977	reqHeaders := make(http.Header)
137978	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
137979	for k, v := range c.header_ {
137980		reqHeaders[k] = v
137981	}
137982	reqHeaders.Set("User-Agent", c.s.userAgent())
137983	var body io.Reader = nil
137984	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
137985	if err != nil {
137986		return nil, err
137987	}
137988	reqHeaders.Set("Content-Type", "application/json")
137989	c.urlParams_.Set("alt", alt)
137990	c.urlParams_.Set("prettyPrint", "false")
137991	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy")
137992	urls += "?" + c.urlParams_.Encode()
137993	req, err := http.NewRequest("POST", urls, body)
137994	if err != nil {
137995		return nil, err
137996	}
137997	req.Header = reqHeaders
137998	googleapi.Expand(req.URL, map[string]string{
137999		"project":  c.project,
138000		"zone":     c.zone,
138001		"resource": c.resource,
138002	})
138003	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138004}
138005
138006// Do executes the "compute.reservations.setIamPolicy" call.
138007// Exactly one of *Policy or error will be non-nil. Any non-2xx status
138008// code is an error. Response headers are in either
138009// *Policy.ServerResponse.Header or (if a response was returned at all)
138010// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
138011// check whether the returned error was because http.StatusNotModified
138012// was returned.
138013func (c *ReservationsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
138014	gensupport.SetOptions(c.urlParams_, opts...)
138015	res, err := c.doRequest("json")
138016	if res != nil && res.StatusCode == http.StatusNotModified {
138017		if res.Body != nil {
138018			res.Body.Close()
138019		}
138020		return nil, &googleapi.Error{
138021			Code:   res.StatusCode,
138022			Header: res.Header,
138023		}
138024	}
138025	if err != nil {
138026		return nil, err
138027	}
138028	defer googleapi.CloseBody(res)
138029	if err := googleapi.CheckResponse(res); err != nil {
138030		return nil, err
138031	}
138032	ret := &Policy{
138033		ServerResponse: googleapi.ServerResponse{
138034			Header:         res.Header,
138035			HTTPStatusCode: res.StatusCode,
138036		},
138037	}
138038	target := &ret
138039	if err := gensupport.DecodeResponse(target, res); err != nil {
138040		return nil, err
138041	}
138042	return ret, nil
138043	// {
138044	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
138045	//   "flatPath": "projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy",
138046	//   "httpMethod": "POST",
138047	//   "id": "compute.reservations.setIamPolicy",
138048	//   "parameterOrder": [
138049	//     "project",
138050	//     "zone",
138051	//     "resource"
138052	//   ],
138053	//   "parameters": {
138054	//     "project": {
138055	//       "description": "Project ID for this request.",
138056	//       "location": "path",
138057	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138058	//       "required": true,
138059	//       "type": "string"
138060	//     },
138061	//     "resource": {
138062	//       "description": "Name or id of the resource for this request.",
138063	//       "location": "path",
138064	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138065	//       "required": true,
138066	//       "type": "string"
138067	//     },
138068	//     "zone": {
138069	//       "description": "The name of the zone for this request.",
138070	//       "location": "path",
138071	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
138072	//       "required": true,
138073	//       "type": "string"
138074	//     }
138075	//   },
138076	//   "path": "projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy",
138077	//   "request": {
138078	//     "$ref": "ZoneSetPolicyRequest"
138079	//   },
138080	//   "response": {
138081	//     "$ref": "Policy"
138082	//   },
138083	//   "scopes": [
138084	//     "https://www.googleapis.com/auth/cloud-platform",
138085	//     "https://www.googleapis.com/auth/compute"
138086	//   ]
138087	// }
138088
138089}
138090
138091// method id "compute.reservations.testIamPermissions":
138092
138093type ReservationsTestIamPermissionsCall struct {
138094	s                      *Service
138095	project                string
138096	zone                   string
138097	resource               string
138098	testpermissionsrequest *TestPermissionsRequest
138099	urlParams_             gensupport.URLParams
138100	ctx_                   context.Context
138101	header_                http.Header
138102}
138103
138104// TestIamPermissions: Returns permissions that a caller has on the
138105// specified resource.
138106//
138107// - project: Project ID for this request.
138108// - resource: Name or id of the resource for this request.
138109// - zone: The name of the zone for this request.
138110func (r *ReservationsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *ReservationsTestIamPermissionsCall {
138111	c := &ReservationsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138112	c.project = project
138113	c.zone = zone
138114	c.resource = resource
138115	c.testpermissionsrequest = testpermissionsrequest
138116	return c
138117}
138118
138119// Fields allows partial responses to be retrieved. See
138120// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138121// for more information.
138122func (c *ReservationsTestIamPermissionsCall) Fields(s ...googleapi.Field) *ReservationsTestIamPermissionsCall {
138123	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138124	return c
138125}
138126
138127// Context sets the context to be used in this call's Do method. Any
138128// pending HTTP request will be aborted if the provided context is
138129// canceled.
138130func (c *ReservationsTestIamPermissionsCall) Context(ctx context.Context) *ReservationsTestIamPermissionsCall {
138131	c.ctx_ = ctx
138132	return c
138133}
138134
138135// Header returns an http.Header that can be modified by the caller to
138136// add HTTP headers to the request.
138137func (c *ReservationsTestIamPermissionsCall) Header() http.Header {
138138	if c.header_ == nil {
138139		c.header_ = make(http.Header)
138140	}
138141	return c.header_
138142}
138143
138144func (c *ReservationsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
138145	reqHeaders := make(http.Header)
138146	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
138147	for k, v := range c.header_ {
138148		reqHeaders[k] = v
138149	}
138150	reqHeaders.Set("User-Agent", c.s.userAgent())
138151	var body io.Reader = nil
138152	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
138153	if err != nil {
138154		return nil, err
138155	}
138156	reqHeaders.Set("Content-Type", "application/json")
138157	c.urlParams_.Set("alt", alt)
138158	c.urlParams_.Set("prettyPrint", "false")
138159	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions")
138160	urls += "?" + c.urlParams_.Encode()
138161	req, err := http.NewRequest("POST", urls, body)
138162	if err != nil {
138163		return nil, err
138164	}
138165	req.Header = reqHeaders
138166	googleapi.Expand(req.URL, map[string]string{
138167		"project":  c.project,
138168		"zone":     c.zone,
138169		"resource": c.resource,
138170	})
138171	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138172}
138173
138174// Do executes the "compute.reservations.testIamPermissions" call.
138175// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
138176// non-2xx status code is an error. Response headers are in either
138177// *TestPermissionsResponse.ServerResponse.Header or (if a response was
138178// returned at all) in error.(*googleapi.Error).Header. Use
138179// googleapi.IsNotModified to check whether the returned error was
138180// because http.StatusNotModified was returned.
138181func (c *ReservationsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
138182	gensupport.SetOptions(c.urlParams_, opts...)
138183	res, err := c.doRequest("json")
138184	if res != nil && res.StatusCode == http.StatusNotModified {
138185		if res.Body != nil {
138186			res.Body.Close()
138187		}
138188		return nil, &googleapi.Error{
138189			Code:   res.StatusCode,
138190			Header: res.Header,
138191		}
138192	}
138193	if err != nil {
138194		return nil, err
138195	}
138196	defer googleapi.CloseBody(res)
138197	if err := googleapi.CheckResponse(res); err != nil {
138198		return nil, err
138199	}
138200	ret := &TestPermissionsResponse{
138201		ServerResponse: googleapi.ServerResponse{
138202			Header:         res.Header,
138203			HTTPStatusCode: res.StatusCode,
138204		},
138205	}
138206	target := &ret
138207	if err := gensupport.DecodeResponse(target, res); err != nil {
138208		return nil, err
138209	}
138210	return ret, nil
138211	// {
138212	//   "description": "Returns permissions that a caller has on the specified resource.",
138213	//   "flatPath": "projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions",
138214	//   "httpMethod": "POST",
138215	//   "id": "compute.reservations.testIamPermissions",
138216	//   "parameterOrder": [
138217	//     "project",
138218	//     "zone",
138219	//     "resource"
138220	//   ],
138221	//   "parameters": {
138222	//     "project": {
138223	//       "description": "Project ID for this request.",
138224	//       "location": "path",
138225	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138226	//       "required": true,
138227	//       "type": "string"
138228	//     },
138229	//     "resource": {
138230	//       "description": "Name or id of the resource for this request.",
138231	//       "location": "path",
138232	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138233	//       "required": true,
138234	//       "type": "string"
138235	//     },
138236	//     "zone": {
138237	//       "description": "The name of the zone for this request.",
138238	//       "location": "path",
138239	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
138240	//       "required": true,
138241	//       "type": "string"
138242	//     }
138243	//   },
138244	//   "path": "projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions",
138245	//   "request": {
138246	//     "$ref": "TestPermissionsRequest"
138247	//   },
138248	//   "response": {
138249	//     "$ref": "TestPermissionsResponse"
138250	//   },
138251	//   "scopes": [
138252	//     "https://www.googleapis.com/auth/cloud-platform",
138253	//     "https://www.googleapis.com/auth/compute",
138254	//     "https://www.googleapis.com/auth/compute.readonly"
138255	//   ]
138256	// }
138257
138258}
138259
138260// method id "compute.resourcePolicies.aggregatedList":
138261
138262type ResourcePoliciesAggregatedListCall struct {
138263	s            *Service
138264	project      string
138265	urlParams_   gensupport.URLParams
138266	ifNoneMatch_ string
138267	ctx_         context.Context
138268	header_      http.Header
138269}
138270
138271// AggregatedList: Retrieves an aggregated list of resource policies.
138272//
138273// - project: Project ID for this request.
138274func (r *ResourcePoliciesService) AggregatedList(project string) *ResourcePoliciesAggregatedListCall {
138275	c := &ResourcePoliciesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138276	c.project = project
138277	return c
138278}
138279
138280// Filter sets the optional parameter "filter": A filter expression that
138281// filters resources listed in the response. The expression must specify
138282// the field name, a comparison operator, and the value that you want to
138283// use for filtering. The value must be a string, a number, or a
138284// boolean. The comparison operator must be either `=`, `!=`, `>`, or
138285// `<`. For example, if you are filtering Compute Engine instances, you
138286// can exclude instances named `example-instance` by specifying `name !=
138287// example-instance`. You can also filter nested fields. For example,
138288// you could specify `scheduling.automaticRestart = false` to include
138289// instances only if they are not scheduled for automatic restarts. You
138290// can use filtering on nested fields to filter based on resource
138291// labels. To filter on multiple expressions, provide each separate
138292// expression within parentheses. For example: ```
138293// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
138294// ``` By default, each expression is an `AND` expression. However, you
138295// can include `AND` and `OR` expressions explicitly. For example: ```
138296// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
138297// AND (scheduling.automaticRestart = true) ```
138298func (c *ResourcePoliciesAggregatedListCall) Filter(filter string) *ResourcePoliciesAggregatedListCall {
138299	c.urlParams_.Set("filter", filter)
138300	return c
138301}
138302
138303// IncludeAllScopes sets the optional parameter "includeAllScopes":
138304// Indicates whether every visible scope for each scope type (zone,
138305// region, global) should be included in the response. For new resource
138306// types added after this field, the flag has no effect as new resource
138307// types will always include every visible scope for each scope type in
138308// response. For resource types which predate this field, if this flag
138309// is omitted or false, only scopes of the scope types where the
138310// resource type is expected to be found will be included.
138311func (c *ResourcePoliciesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ResourcePoliciesAggregatedListCall {
138312	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
138313	return c
138314}
138315
138316// MaxResults sets the optional parameter "maxResults": The maximum
138317// number of results per page that should be returned. If the number of
138318// available results is larger than `maxResults`, Compute Engine returns
138319// a `nextPageToken` that can be used to get the next page of results in
138320// subsequent list requests. Acceptable values are `0` to `500`,
138321// inclusive. (Default: `500`)
138322func (c *ResourcePoliciesAggregatedListCall) MaxResults(maxResults int64) *ResourcePoliciesAggregatedListCall {
138323	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
138324	return c
138325}
138326
138327// OrderBy sets the optional parameter "orderBy": Sorts list results by
138328// a certain order. By default, results are returned in alphanumerical
138329// order based on the resource name. You can also sort results in
138330// descending order based on the creation timestamp using
138331// `orderBy="creationTimestamp desc". This sorts results based on the
138332// `creationTimestamp` field in reverse chronological order (newest
138333// result first). Use this to sort resources like operations so that the
138334// newest operation is returned first. Currently, only sorting by `name`
138335// or `creationTimestamp desc` is supported.
138336func (c *ResourcePoliciesAggregatedListCall) OrderBy(orderBy string) *ResourcePoliciesAggregatedListCall {
138337	c.urlParams_.Set("orderBy", orderBy)
138338	return c
138339}
138340
138341// PageToken sets the optional parameter "pageToken": Specifies a page
138342// token to use. Set `pageToken` to the `nextPageToken` returned by a
138343// previous list request to get the next page of results.
138344func (c *ResourcePoliciesAggregatedListCall) PageToken(pageToken string) *ResourcePoliciesAggregatedListCall {
138345	c.urlParams_.Set("pageToken", pageToken)
138346	return c
138347}
138348
138349// ReturnPartialSuccess sets the optional parameter
138350// "returnPartialSuccess": Opt-in for partial success behavior which
138351// provides partial results in case of failure. The default value is
138352// false.
138353func (c *ResourcePoliciesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ResourcePoliciesAggregatedListCall {
138354	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
138355	return c
138356}
138357
138358// Fields allows partial responses to be retrieved. See
138359// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138360// for more information.
138361func (c *ResourcePoliciesAggregatedListCall) Fields(s ...googleapi.Field) *ResourcePoliciesAggregatedListCall {
138362	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138363	return c
138364}
138365
138366// IfNoneMatch sets the optional parameter which makes the operation
138367// fail if the object's ETag matches the given value. This is useful for
138368// getting updates only after the object has changed since the last
138369// request. Use googleapi.IsNotModified to check whether the response
138370// error from Do is the result of In-None-Match.
138371func (c *ResourcePoliciesAggregatedListCall) IfNoneMatch(entityTag string) *ResourcePoliciesAggregatedListCall {
138372	c.ifNoneMatch_ = entityTag
138373	return c
138374}
138375
138376// Context sets the context to be used in this call's Do method. Any
138377// pending HTTP request will be aborted if the provided context is
138378// canceled.
138379func (c *ResourcePoliciesAggregatedListCall) Context(ctx context.Context) *ResourcePoliciesAggregatedListCall {
138380	c.ctx_ = ctx
138381	return c
138382}
138383
138384// Header returns an http.Header that can be modified by the caller to
138385// add HTTP headers to the request.
138386func (c *ResourcePoliciesAggregatedListCall) Header() http.Header {
138387	if c.header_ == nil {
138388		c.header_ = make(http.Header)
138389	}
138390	return c.header_
138391}
138392
138393func (c *ResourcePoliciesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
138394	reqHeaders := make(http.Header)
138395	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
138396	for k, v := range c.header_ {
138397		reqHeaders[k] = v
138398	}
138399	reqHeaders.Set("User-Agent", c.s.userAgent())
138400	if c.ifNoneMatch_ != "" {
138401		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
138402	}
138403	var body io.Reader = nil
138404	c.urlParams_.Set("alt", alt)
138405	c.urlParams_.Set("prettyPrint", "false")
138406	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/resourcePolicies")
138407	urls += "?" + c.urlParams_.Encode()
138408	req, err := http.NewRequest("GET", urls, body)
138409	if err != nil {
138410		return nil, err
138411	}
138412	req.Header = reqHeaders
138413	googleapi.Expand(req.URL, map[string]string{
138414		"project": c.project,
138415	})
138416	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138417}
138418
138419// Do executes the "compute.resourcePolicies.aggregatedList" call.
138420// Exactly one of *ResourcePolicyAggregatedList or error will be
138421// non-nil. Any non-2xx status code is an error. Response headers are in
138422// either *ResourcePolicyAggregatedList.ServerResponse.Header or (if a
138423// response was returned at all) in error.(*googleapi.Error).Header. Use
138424// googleapi.IsNotModified to check whether the returned error was
138425// because http.StatusNotModified was returned.
138426func (c *ResourcePoliciesAggregatedListCall) Do(opts ...googleapi.CallOption) (*ResourcePolicyAggregatedList, error) {
138427	gensupport.SetOptions(c.urlParams_, opts...)
138428	res, err := c.doRequest("json")
138429	if res != nil && res.StatusCode == http.StatusNotModified {
138430		if res.Body != nil {
138431			res.Body.Close()
138432		}
138433		return nil, &googleapi.Error{
138434			Code:   res.StatusCode,
138435			Header: res.Header,
138436		}
138437	}
138438	if err != nil {
138439		return nil, err
138440	}
138441	defer googleapi.CloseBody(res)
138442	if err := googleapi.CheckResponse(res); err != nil {
138443		return nil, err
138444	}
138445	ret := &ResourcePolicyAggregatedList{
138446		ServerResponse: googleapi.ServerResponse{
138447			Header:         res.Header,
138448			HTTPStatusCode: res.StatusCode,
138449		},
138450	}
138451	target := &ret
138452	if err := gensupport.DecodeResponse(target, res); err != nil {
138453		return nil, err
138454	}
138455	return ret, nil
138456	// {
138457	//   "description": "Retrieves an aggregated list of resource policies.",
138458	//   "flatPath": "projects/{project}/aggregated/resourcePolicies",
138459	//   "httpMethod": "GET",
138460	//   "id": "compute.resourcePolicies.aggregatedList",
138461	//   "parameterOrder": [
138462	//     "project"
138463	//   ],
138464	//   "parameters": {
138465	//     "filter": {
138466	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
138467	//       "location": "query",
138468	//       "type": "string"
138469	//     },
138470	//     "includeAllScopes": {
138471	//       "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.",
138472	//       "location": "query",
138473	//       "type": "boolean"
138474	//     },
138475	//     "maxResults": {
138476	//       "default": "500",
138477	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
138478	//       "format": "uint32",
138479	//       "location": "query",
138480	//       "minimum": "0",
138481	//       "type": "integer"
138482	//     },
138483	//     "orderBy": {
138484	//       "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.",
138485	//       "location": "query",
138486	//       "type": "string"
138487	//     },
138488	//     "pageToken": {
138489	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
138490	//       "location": "query",
138491	//       "type": "string"
138492	//     },
138493	//     "project": {
138494	//       "description": "Project ID for this request.",
138495	//       "location": "path",
138496	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138497	//       "required": true,
138498	//       "type": "string"
138499	//     },
138500	//     "returnPartialSuccess": {
138501	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
138502	//       "location": "query",
138503	//       "type": "boolean"
138504	//     }
138505	//   },
138506	//   "path": "projects/{project}/aggregated/resourcePolicies",
138507	//   "response": {
138508	//     "$ref": "ResourcePolicyAggregatedList"
138509	//   },
138510	//   "scopes": [
138511	//     "https://www.googleapis.com/auth/cloud-platform",
138512	//     "https://www.googleapis.com/auth/compute",
138513	//     "https://www.googleapis.com/auth/compute.readonly"
138514	//   ]
138515	// }
138516
138517}
138518
138519// Pages invokes f for each page of results.
138520// A non-nil error returned from f will halt the iteration.
138521// The provided context supersedes any context provided to the Context method.
138522func (c *ResourcePoliciesAggregatedListCall) Pages(ctx context.Context, f func(*ResourcePolicyAggregatedList) error) error {
138523	c.ctx_ = ctx
138524	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
138525	for {
138526		x, err := c.Do()
138527		if err != nil {
138528			return err
138529		}
138530		if err := f(x); err != nil {
138531			return err
138532		}
138533		if x.NextPageToken == "" {
138534			return nil
138535		}
138536		c.PageToken(x.NextPageToken)
138537	}
138538}
138539
138540// method id "compute.resourcePolicies.delete":
138541
138542type ResourcePoliciesDeleteCall struct {
138543	s              *Service
138544	project        string
138545	region         string
138546	resourcePolicy string
138547	urlParams_     gensupport.URLParams
138548	ctx_           context.Context
138549	header_        http.Header
138550}
138551
138552// Delete: Deletes the specified resource policy.
138553//
138554// - project: Project ID for this request.
138555// - region: Name of the region for this request.
138556// - resourcePolicy: Name of the resource policy to delete.
138557func (r *ResourcePoliciesService) Delete(project string, region string, resourcePolicy string) *ResourcePoliciesDeleteCall {
138558	c := &ResourcePoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138559	c.project = project
138560	c.region = region
138561	c.resourcePolicy = resourcePolicy
138562	return c
138563}
138564
138565// RequestId sets the optional parameter "requestId": An optional
138566// request ID to identify requests. Specify a unique request ID so that
138567// if you must retry your request, the server will know to ignore the
138568// request if it has already been completed. For example, consider a
138569// situation where you make an initial request and the request times
138570// out. If you make the request again with the same request ID, the
138571// server can check if original operation with the same request ID was
138572// received, and if so, will ignore the second request. This prevents
138573// clients from accidentally creating duplicate commitments. The request
138574// ID must be a valid UUID with the exception that zero UUID is not
138575// supported ( 00000000-0000-0000-0000-000000000000).
138576func (c *ResourcePoliciesDeleteCall) RequestId(requestId string) *ResourcePoliciesDeleteCall {
138577	c.urlParams_.Set("requestId", requestId)
138578	return c
138579}
138580
138581// Fields allows partial responses to be retrieved. See
138582// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138583// for more information.
138584func (c *ResourcePoliciesDeleteCall) Fields(s ...googleapi.Field) *ResourcePoliciesDeleteCall {
138585	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138586	return c
138587}
138588
138589// Context sets the context to be used in this call's Do method. Any
138590// pending HTTP request will be aborted if the provided context is
138591// canceled.
138592func (c *ResourcePoliciesDeleteCall) Context(ctx context.Context) *ResourcePoliciesDeleteCall {
138593	c.ctx_ = ctx
138594	return c
138595}
138596
138597// Header returns an http.Header that can be modified by the caller to
138598// add HTTP headers to the request.
138599func (c *ResourcePoliciesDeleteCall) Header() http.Header {
138600	if c.header_ == nil {
138601		c.header_ = make(http.Header)
138602	}
138603	return c.header_
138604}
138605
138606func (c *ResourcePoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
138607	reqHeaders := make(http.Header)
138608	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
138609	for k, v := range c.header_ {
138610		reqHeaders[k] = v
138611	}
138612	reqHeaders.Set("User-Agent", c.s.userAgent())
138613	var body io.Reader = nil
138614	c.urlParams_.Set("alt", alt)
138615	c.urlParams_.Set("prettyPrint", "false")
138616	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}")
138617	urls += "?" + c.urlParams_.Encode()
138618	req, err := http.NewRequest("DELETE", urls, body)
138619	if err != nil {
138620		return nil, err
138621	}
138622	req.Header = reqHeaders
138623	googleapi.Expand(req.URL, map[string]string{
138624		"project":        c.project,
138625		"region":         c.region,
138626		"resourcePolicy": c.resourcePolicy,
138627	})
138628	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138629}
138630
138631// Do executes the "compute.resourcePolicies.delete" call.
138632// Exactly one of *Operation or error will be non-nil. Any non-2xx
138633// status code is an error. Response headers are in either
138634// *Operation.ServerResponse.Header or (if a response was returned at
138635// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138636// to check whether the returned error was because
138637// http.StatusNotModified was returned.
138638func (c *ResourcePoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138639	gensupport.SetOptions(c.urlParams_, opts...)
138640	res, err := c.doRequest("json")
138641	if res != nil && res.StatusCode == http.StatusNotModified {
138642		if res.Body != nil {
138643			res.Body.Close()
138644		}
138645		return nil, &googleapi.Error{
138646			Code:   res.StatusCode,
138647			Header: res.Header,
138648		}
138649	}
138650	if err != nil {
138651		return nil, err
138652	}
138653	defer googleapi.CloseBody(res)
138654	if err := googleapi.CheckResponse(res); err != nil {
138655		return nil, err
138656	}
138657	ret := &Operation{
138658		ServerResponse: googleapi.ServerResponse{
138659			Header:         res.Header,
138660			HTTPStatusCode: res.StatusCode,
138661		},
138662	}
138663	target := &ret
138664	if err := gensupport.DecodeResponse(target, res); err != nil {
138665		return nil, err
138666	}
138667	return ret, nil
138668	// {
138669	//   "description": "Deletes the specified resource policy.",
138670	//   "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
138671	//   "httpMethod": "DELETE",
138672	//   "id": "compute.resourcePolicies.delete",
138673	//   "parameterOrder": [
138674	//     "project",
138675	//     "region",
138676	//     "resourcePolicy"
138677	//   ],
138678	//   "parameters": {
138679	//     "project": {
138680	//       "description": "Project ID for this request.",
138681	//       "location": "path",
138682	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138683	//       "required": true,
138684	//       "type": "string"
138685	//     },
138686	//     "region": {
138687	//       "description": "Name of the region for this request.",
138688	//       "location": "path",
138689	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
138690	//       "required": true,
138691	//       "type": "string"
138692	//     },
138693	//     "requestId": {
138694	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
138695	//       "location": "query",
138696	//       "type": "string"
138697	//     },
138698	//     "resourcePolicy": {
138699	//       "description": "Name of the resource policy to delete.",
138700	//       "location": "path",
138701	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138702	//       "required": true,
138703	//       "type": "string"
138704	//     }
138705	//   },
138706	//   "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
138707	//   "response": {
138708	//     "$ref": "Operation"
138709	//   },
138710	//   "scopes": [
138711	//     "https://www.googleapis.com/auth/cloud-platform",
138712	//     "https://www.googleapis.com/auth/compute"
138713	//   ]
138714	// }
138715
138716}
138717
138718// method id "compute.resourcePolicies.get":
138719
138720type ResourcePoliciesGetCall struct {
138721	s              *Service
138722	project        string
138723	region         string
138724	resourcePolicy string
138725	urlParams_     gensupport.URLParams
138726	ifNoneMatch_   string
138727	ctx_           context.Context
138728	header_        http.Header
138729}
138730
138731// Get: Retrieves all information of the specified resource policy.
138732//
138733// - project: Project ID for this request.
138734// - region: Name of the region for this request.
138735// - resourcePolicy: Name of the resource policy to retrieve.
138736func (r *ResourcePoliciesService) Get(project string, region string, resourcePolicy string) *ResourcePoliciesGetCall {
138737	c := &ResourcePoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138738	c.project = project
138739	c.region = region
138740	c.resourcePolicy = resourcePolicy
138741	return c
138742}
138743
138744// Fields allows partial responses to be retrieved. See
138745// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138746// for more information.
138747func (c *ResourcePoliciesGetCall) Fields(s ...googleapi.Field) *ResourcePoliciesGetCall {
138748	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138749	return c
138750}
138751
138752// IfNoneMatch sets the optional parameter which makes the operation
138753// fail if the object's ETag matches the given value. This is useful for
138754// getting updates only after the object has changed since the last
138755// request. Use googleapi.IsNotModified to check whether the response
138756// error from Do is the result of In-None-Match.
138757func (c *ResourcePoliciesGetCall) IfNoneMatch(entityTag string) *ResourcePoliciesGetCall {
138758	c.ifNoneMatch_ = entityTag
138759	return c
138760}
138761
138762// Context sets the context to be used in this call's Do method. Any
138763// pending HTTP request will be aborted if the provided context is
138764// canceled.
138765func (c *ResourcePoliciesGetCall) Context(ctx context.Context) *ResourcePoliciesGetCall {
138766	c.ctx_ = ctx
138767	return c
138768}
138769
138770// Header returns an http.Header that can be modified by the caller to
138771// add HTTP headers to the request.
138772func (c *ResourcePoliciesGetCall) Header() http.Header {
138773	if c.header_ == nil {
138774		c.header_ = make(http.Header)
138775	}
138776	return c.header_
138777}
138778
138779func (c *ResourcePoliciesGetCall) doRequest(alt string) (*http.Response, error) {
138780	reqHeaders := make(http.Header)
138781	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
138782	for k, v := range c.header_ {
138783		reqHeaders[k] = v
138784	}
138785	reqHeaders.Set("User-Agent", c.s.userAgent())
138786	if c.ifNoneMatch_ != "" {
138787		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
138788	}
138789	var body io.Reader = nil
138790	c.urlParams_.Set("alt", alt)
138791	c.urlParams_.Set("prettyPrint", "false")
138792	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}")
138793	urls += "?" + c.urlParams_.Encode()
138794	req, err := http.NewRequest("GET", urls, body)
138795	if err != nil {
138796		return nil, err
138797	}
138798	req.Header = reqHeaders
138799	googleapi.Expand(req.URL, map[string]string{
138800		"project":        c.project,
138801		"region":         c.region,
138802		"resourcePolicy": c.resourcePolicy,
138803	})
138804	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138805}
138806
138807// Do executes the "compute.resourcePolicies.get" call.
138808// Exactly one of *ResourcePolicy or error will be non-nil. Any non-2xx
138809// status code is an error. Response headers are in either
138810// *ResourcePolicy.ServerResponse.Header or (if a response was returned
138811// at all) in error.(*googleapi.Error).Header. Use
138812// googleapi.IsNotModified to check whether the returned error was
138813// because http.StatusNotModified was returned.
138814func (c *ResourcePoliciesGetCall) Do(opts ...googleapi.CallOption) (*ResourcePolicy, error) {
138815	gensupport.SetOptions(c.urlParams_, opts...)
138816	res, err := c.doRequest("json")
138817	if res != nil && res.StatusCode == http.StatusNotModified {
138818		if res.Body != nil {
138819			res.Body.Close()
138820		}
138821		return nil, &googleapi.Error{
138822			Code:   res.StatusCode,
138823			Header: res.Header,
138824		}
138825	}
138826	if err != nil {
138827		return nil, err
138828	}
138829	defer googleapi.CloseBody(res)
138830	if err := googleapi.CheckResponse(res); err != nil {
138831		return nil, err
138832	}
138833	ret := &ResourcePolicy{
138834		ServerResponse: googleapi.ServerResponse{
138835			Header:         res.Header,
138836			HTTPStatusCode: res.StatusCode,
138837		},
138838	}
138839	target := &ret
138840	if err := gensupport.DecodeResponse(target, res); err != nil {
138841		return nil, err
138842	}
138843	return ret, nil
138844	// {
138845	//   "description": "Retrieves all information of the specified resource policy.",
138846	//   "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
138847	//   "httpMethod": "GET",
138848	//   "id": "compute.resourcePolicies.get",
138849	//   "parameterOrder": [
138850	//     "project",
138851	//     "region",
138852	//     "resourcePolicy"
138853	//   ],
138854	//   "parameters": {
138855	//     "project": {
138856	//       "description": "Project ID for this request.",
138857	//       "location": "path",
138858	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138859	//       "required": true,
138860	//       "type": "string"
138861	//     },
138862	//     "region": {
138863	//       "description": "Name of the region for this request.",
138864	//       "location": "path",
138865	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
138866	//       "required": true,
138867	//       "type": "string"
138868	//     },
138869	//     "resourcePolicy": {
138870	//       "description": "Name of the resource policy to retrieve.",
138871	//       "location": "path",
138872	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138873	//       "required": true,
138874	//       "type": "string"
138875	//     }
138876	//   },
138877	//   "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
138878	//   "response": {
138879	//     "$ref": "ResourcePolicy"
138880	//   },
138881	//   "scopes": [
138882	//     "https://www.googleapis.com/auth/cloud-platform",
138883	//     "https://www.googleapis.com/auth/compute",
138884	//     "https://www.googleapis.com/auth/compute.readonly"
138885	//   ]
138886	// }
138887
138888}
138889
138890// method id "compute.resourcePolicies.getIamPolicy":
138891
138892type ResourcePoliciesGetIamPolicyCall struct {
138893	s            *Service
138894	project      string
138895	region       string
138896	resource     string
138897	urlParams_   gensupport.URLParams
138898	ifNoneMatch_ string
138899	ctx_         context.Context
138900	header_      http.Header
138901}
138902
138903// GetIamPolicy: Gets the access control policy for a resource. May be
138904// empty if no such policy or resource exists.
138905//
138906// - project: Project ID for this request.
138907// - region: The name of the region for this request.
138908// - resource: Name or id of the resource for this request.
138909func (r *ResourcePoliciesService) GetIamPolicy(project string, region string, resource string) *ResourcePoliciesGetIamPolicyCall {
138910	c := &ResourcePoliciesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138911	c.project = project
138912	c.region = region
138913	c.resource = resource
138914	return c
138915}
138916
138917// OptionsRequestedPolicyVersion sets the optional parameter
138918// "optionsRequestedPolicyVersion": Requested IAM Policy version.
138919func (c *ResourcePoliciesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ResourcePoliciesGetIamPolicyCall {
138920	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
138921	return c
138922}
138923
138924// Fields allows partial responses to be retrieved. See
138925// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138926// for more information.
138927func (c *ResourcePoliciesGetIamPolicyCall) Fields(s ...googleapi.Field) *ResourcePoliciesGetIamPolicyCall {
138928	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138929	return c
138930}
138931
138932// IfNoneMatch sets the optional parameter which makes the operation
138933// fail if the object's ETag matches the given value. This is useful for
138934// getting updates only after the object has changed since the last
138935// request. Use googleapi.IsNotModified to check whether the response
138936// error from Do is the result of In-None-Match.
138937func (c *ResourcePoliciesGetIamPolicyCall) IfNoneMatch(entityTag string) *ResourcePoliciesGetIamPolicyCall {
138938	c.ifNoneMatch_ = entityTag
138939	return c
138940}
138941
138942// Context sets the context to be used in this call's Do method. Any
138943// pending HTTP request will be aborted if the provided context is
138944// canceled.
138945func (c *ResourcePoliciesGetIamPolicyCall) Context(ctx context.Context) *ResourcePoliciesGetIamPolicyCall {
138946	c.ctx_ = ctx
138947	return c
138948}
138949
138950// Header returns an http.Header that can be modified by the caller to
138951// add HTTP headers to the request.
138952func (c *ResourcePoliciesGetIamPolicyCall) Header() http.Header {
138953	if c.header_ == nil {
138954		c.header_ = make(http.Header)
138955	}
138956	return c.header_
138957}
138958
138959func (c *ResourcePoliciesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
138960	reqHeaders := make(http.Header)
138961	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
138962	for k, v := range c.header_ {
138963		reqHeaders[k] = v
138964	}
138965	reqHeaders.Set("User-Agent", c.s.userAgent())
138966	if c.ifNoneMatch_ != "" {
138967		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
138968	}
138969	var body io.Reader = nil
138970	c.urlParams_.Set("alt", alt)
138971	c.urlParams_.Set("prettyPrint", "false")
138972	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy")
138973	urls += "?" + c.urlParams_.Encode()
138974	req, err := http.NewRequest("GET", urls, body)
138975	if err != nil {
138976		return nil, err
138977	}
138978	req.Header = reqHeaders
138979	googleapi.Expand(req.URL, map[string]string{
138980		"project":  c.project,
138981		"region":   c.region,
138982		"resource": c.resource,
138983	})
138984	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138985}
138986
138987// Do executes the "compute.resourcePolicies.getIamPolicy" call.
138988// Exactly one of *Policy or error will be non-nil. Any non-2xx status
138989// code is an error. Response headers are in either
138990// *Policy.ServerResponse.Header or (if a response was returned at all)
138991// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
138992// check whether the returned error was because http.StatusNotModified
138993// was returned.
138994func (c *ResourcePoliciesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
138995	gensupport.SetOptions(c.urlParams_, opts...)
138996	res, err := c.doRequest("json")
138997	if res != nil && res.StatusCode == http.StatusNotModified {
138998		if res.Body != nil {
138999			res.Body.Close()
139000		}
139001		return nil, &googleapi.Error{
139002			Code:   res.StatusCode,
139003			Header: res.Header,
139004		}
139005	}
139006	if err != nil {
139007		return nil, err
139008	}
139009	defer googleapi.CloseBody(res)
139010	if err := googleapi.CheckResponse(res); err != nil {
139011		return nil, err
139012	}
139013	ret := &Policy{
139014		ServerResponse: googleapi.ServerResponse{
139015			Header:         res.Header,
139016			HTTPStatusCode: res.StatusCode,
139017		},
139018	}
139019	target := &ret
139020	if err := gensupport.DecodeResponse(target, res); err != nil {
139021		return nil, err
139022	}
139023	return ret, nil
139024	// {
139025	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
139026	//   "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy",
139027	//   "httpMethod": "GET",
139028	//   "id": "compute.resourcePolicies.getIamPolicy",
139029	//   "parameterOrder": [
139030	//     "project",
139031	//     "region",
139032	//     "resource"
139033	//   ],
139034	//   "parameters": {
139035	//     "optionsRequestedPolicyVersion": {
139036	//       "description": "Requested IAM Policy version.",
139037	//       "format": "int32",
139038	//       "location": "query",
139039	//       "type": "integer"
139040	//     },
139041	//     "project": {
139042	//       "description": "Project ID for this request.",
139043	//       "location": "path",
139044	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139045	//       "required": true,
139046	//       "type": "string"
139047	//     },
139048	//     "region": {
139049	//       "description": "The name of the region for this request.",
139050	//       "location": "path",
139051	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139052	//       "required": true,
139053	//       "type": "string"
139054	//     },
139055	//     "resource": {
139056	//       "description": "Name or id of the resource for this request.",
139057	//       "location": "path",
139058	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139059	//       "required": true,
139060	//       "type": "string"
139061	//     }
139062	//   },
139063	//   "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy",
139064	//   "response": {
139065	//     "$ref": "Policy"
139066	//   },
139067	//   "scopes": [
139068	//     "https://www.googleapis.com/auth/cloud-platform",
139069	//     "https://www.googleapis.com/auth/compute",
139070	//     "https://www.googleapis.com/auth/compute.readonly"
139071	//   ]
139072	// }
139073
139074}
139075
139076// method id "compute.resourcePolicies.insert":
139077
139078type ResourcePoliciesInsertCall struct {
139079	s              *Service
139080	project        string
139081	region         string
139082	resourcepolicy *ResourcePolicy
139083	urlParams_     gensupport.URLParams
139084	ctx_           context.Context
139085	header_        http.Header
139086}
139087
139088// Insert: Creates a new resource policy.
139089//
139090// - project: Project ID for this request.
139091// - region: Name of the region for this request.
139092func (r *ResourcePoliciesService) Insert(project string, region string, resourcepolicy *ResourcePolicy) *ResourcePoliciesInsertCall {
139093	c := &ResourcePoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139094	c.project = project
139095	c.region = region
139096	c.resourcepolicy = resourcepolicy
139097	return c
139098}
139099
139100// RequestId sets the optional parameter "requestId": An optional
139101// request ID to identify requests. Specify a unique request ID so that
139102// if you must retry your request, the server will know to ignore the
139103// request if it has already been completed. For example, consider a
139104// situation where you make an initial request and the request times
139105// out. If you make the request again with the same request ID, the
139106// server can check if original operation with the same request ID was
139107// received, and if so, will ignore the second request. This prevents
139108// clients from accidentally creating duplicate commitments. The request
139109// ID must be a valid UUID with the exception that zero UUID is not
139110// supported ( 00000000-0000-0000-0000-000000000000).
139111func (c *ResourcePoliciesInsertCall) RequestId(requestId string) *ResourcePoliciesInsertCall {
139112	c.urlParams_.Set("requestId", requestId)
139113	return c
139114}
139115
139116// Fields allows partial responses to be retrieved. See
139117// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139118// for more information.
139119func (c *ResourcePoliciesInsertCall) Fields(s ...googleapi.Field) *ResourcePoliciesInsertCall {
139120	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139121	return c
139122}
139123
139124// Context sets the context to be used in this call's Do method. Any
139125// pending HTTP request will be aborted if the provided context is
139126// canceled.
139127func (c *ResourcePoliciesInsertCall) Context(ctx context.Context) *ResourcePoliciesInsertCall {
139128	c.ctx_ = ctx
139129	return c
139130}
139131
139132// Header returns an http.Header that can be modified by the caller to
139133// add HTTP headers to the request.
139134func (c *ResourcePoliciesInsertCall) Header() http.Header {
139135	if c.header_ == nil {
139136		c.header_ = make(http.Header)
139137	}
139138	return c.header_
139139}
139140
139141func (c *ResourcePoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
139142	reqHeaders := make(http.Header)
139143	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
139144	for k, v := range c.header_ {
139145		reqHeaders[k] = v
139146	}
139147	reqHeaders.Set("User-Agent", c.s.userAgent())
139148	var body io.Reader = nil
139149	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcepolicy)
139150	if err != nil {
139151		return nil, err
139152	}
139153	reqHeaders.Set("Content-Type", "application/json")
139154	c.urlParams_.Set("alt", alt)
139155	c.urlParams_.Set("prettyPrint", "false")
139156	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies")
139157	urls += "?" + c.urlParams_.Encode()
139158	req, err := http.NewRequest("POST", urls, body)
139159	if err != nil {
139160		return nil, err
139161	}
139162	req.Header = reqHeaders
139163	googleapi.Expand(req.URL, map[string]string{
139164		"project": c.project,
139165		"region":  c.region,
139166	})
139167	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139168}
139169
139170// Do executes the "compute.resourcePolicies.insert" call.
139171// Exactly one of *Operation or error will be non-nil. Any non-2xx
139172// status code is an error. Response headers are in either
139173// *Operation.ServerResponse.Header or (if a response was returned at
139174// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
139175// to check whether the returned error was because
139176// http.StatusNotModified was returned.
139177func (c *ResourcePoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
139178	gensupport.SetOptions(c.urlParams_, opts...)
139179	res, err := c.doRequest("json")
139180	if res != nil && res.StatusCode == http.StatusNotModified {
139181		if res.Body != nil {
139182			res.Body.Close()
139183		}
139184		return nil, &googleapi.Error{
139185			Code:   res.StatusCode,
139186			Header: res.Header,
139187		}
139188	}
139189	if err != nil {
139190		return nil, err
139191	}
139192	defer googleapi.CloseBody(res)
139193	if err := googleapi.CheckResponse(res); err != nil {
139194		return nil, err
139195	}
139196	ret := &Operation{
139197		ServerResponse: googleapi.ServerResponse{
139198			Header:         res.Header,
139199			HTTPStatusCode: res.StatusCode,
139200		},
139201	}
139202	target := &ret
139203	if err := gensupport.DecodeResponse(target, res); err != nil {
139204		return nil, err
139205	}
139206	return ret, nil
139207	// {
139208	//   "description": "Creates a new resource policy.",
139209	//   "flatPath": "projects/{project}/regions/{region}/resourcePolicies",
139210	//   "httpMethod": "POST",
139211	//   "id": "compute.resourcePolicies.insert",
139212	//   "parameterOrder": [
139213	//     "project",
139214	//     "region"
139215	//   ],
139216	//   "parameters": {
139217	//     "project": {
139218	//       "description": "Project ID for this request.",
139219	//       "location": "path",
139220	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139221	//       "required": true,
139222	//       "type": "string"
139223	//     },
139224	//     "region": {
139225	//       "description": "Name of the region for this request.",
139226	//       "location": "path",
139227	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139228	//       "required": true,
139229	//       "type": "string"
139230	//     },
139231	//     "requestId": {
139232	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
139233	//       "location": "query",
139234	//       "type": "string"
139235	//     }
139236	//   },
139237	//   "path": "projects/{project}/regions/{region}/resourcePolicies",
139238	//   "request": {
139239	//     "$ref": "ResourcePolicy"
139240	//   },
139241	//   "response": {
139242	//     "$ref": "Operation"
139243	//   },
139244	//   "scopes": [
139245	//     "https://www.googleapis.com/auth/cloud-platform",
139246	//     "https://www.googleapis.com/auth/compute"
139247	//   ]
139248	// }
139249
139250}
139251
139252// method id "compute.resourcePolicies.list":
139253
139254type ResourcePoliciesListCall struct {
139255	s            *Service
139256	project      string
139257	region       string
139258	urlParams_   gensupport.URLParams
139259	ifNoneMatch_ string
139260	ctx_         context.Context
139261	header_      http.Header
139262}
139263
139264// List: A list all the resource policies that have been configured for
139265// the specified project in specified region.
139266//
139267// - project: Project ID for this request.
139268// - region: Name of the region for this request.
139269func (r *ResourcePoliciesService) List(project string, region string) *ResourcePoliciesListCall {
139270	c := &ResourcePoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139271	c.project = project
139272	c.region = region
139273	return c
139274}
139275
139276// Filter sets the optional parameter "filter": A filter expression that
139277// filters resources listed in the response. The expression must specify
139278// the field name, a comparison operator, and the value that you want to
139279// use for filtering. The value must be a string, a number, or a
139280// boolean. The comparison operator must be either `=`, `!=`, `>`, or
139281// `<`. For example, if you are filtering Compute Engine instances, you
139282// can exclude instances named `example-instance` by specifying `name !=
139283// example-instance`. You can also filter nested fields. For example,
139284// you could specify `scheduling.automaticRestart = false` to include
139285// instances only if they are not scheduled for automatic restarts. You
139286// can use filtering on nested fields to filter based on resource
139287// labels. To filter on multiple expressions, provide each separate
139288// expression within parentheses. For example: ```
139289// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
139290// ``` By default, each expression is an `AND` expression. However, you
139291// can include `AND` and `OR` expressions explicitly. For example: ```
139292// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
139293// AND (scheduling.automaticRestart = true) ```
139294func (c *ResourcePoliciesListCall) Filter(filter string) *ResourcePoliciesListCall {
139295	c.urlParams_.Set("filter", filter)
139296	return c
139297}
139298
139299// MaxResults sets the optional parameter "maxResults": The maximum
139300// number of results per page that should be returned. If the number of
139301// available results is larger than `maxResults`, Compute Engine returns
139302// a `nextPageToken` that can be used to get the next page of results in
139303// subsequent list requests. Acceptable values are `0` to `500`,
139304// inclusive. (Default: `500`)
139305func (c *ResourcePoliciesListCall) MaxResults(maxResults int64) *ResourcePoliciesListCall {
139306	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
139307	return c
139308}
139309
139310// OrderBy sets the optional parameter "orderBy": Sorts list results by
139311// a certain order. By default, results are returned in alphanumerical
139312// order based on the resource name. You can also sort results in
139313// descending order based on the creation timestamp using
139314// `orderBy="creationTimestamp desc". This sorts results based on the
139315// `creationTimestamp` field in reverse chronological order (newest
139316// result first). Use this to sort resources like operations so that the
139317// newest operation is returned first. Currently, only sorting by `name`
139318// or `creationTimestamp desc` is supported.
139319func (c *ResourcePoliciesListCall) OrderBy(orderBy string) *ResourcePoliciesListCall {
139320	c.urlParams_.Set("orderBy", orderBy)
139321	return c
139322}
139323
139324// PageToken sets the optional parameter "pageToken": Specifies a page
139325// token to use. Set `pageToken` to the `nextPageToken` returned by a
139326// previous list request to get the next page of results.
139327func (c *ResourcePoliciesListCall) PageToken(pageToken string) *ResourcePoliciesListCall {
139328	c.urlParams_.Set("pageToken", pageToken)
139329	return c
139330}
139331
139332// ReturnPartialSuccess sets the optional parameter
139333// "returnPartialSuccess": Opt-in for partial success behavior which
139334// provides partial results in case of failure. The default value is
139335// false.
139336func (c *ResourcePoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ResourcePoliciesListCall {
139337	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
139338	return c
139339}
139340
139341// Fields allows partial responses to be retrieved. See
139342// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139343// for more information.
139344func (c *ResourcePoliciesListCall) Fields(s ...googleapi.Field) *ResourcePoliciesListCall {
139345	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139346	return c
139347}
139348
139349// IfNoneMatch sets the optional parameter which makes the operation
139350// fail if the object's ETag matches the given value. This is useful for
139351// getting updates only after the object has changed since the last
139352// request. Use googleapi.IsNotModified to check whether the response
139353// error from Do is the result of In-None-Match.
139354func (c *ResourcePoliciesListCall) IfNoneMatch(entityTag string) *ResourcePoliciesListCall {
139355	c.ifNoneMatch_ = entityTag
139356	return c
139357}
139358
139359// Context sets the context to be used in this call's Do method. Any
139360// pending HTTP request will be aborted if the provided context is
139361// canceled.
139362func (c *ResourcePoliciesListCall) Context(ctx context.Context) *ResourcePoliciesListCall {
139363	c.ctx_ = ctx
139364	return c
139365}
139366
139367// Header returns an http.Header that can be modified by the caller to
139368// add HTTP headers to the request.
139369func (c *ResourcePoliciesListCall) Header() http.Header {
139370	if c.header_ == nil {
139371		c.header_ = make(http.Header)
139372	}
139373	return c.header_
139374}
139375
139376func (c *ResourcePoliciesListCall) doRequest(alt string) (*http.Response, error) {
139377	reqHeaders := make(http.Header)
139378	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
139379	for k, v := range c.header_ {
139380		reqHeaders[k] = v
139381	}
139382	reqHeaders.Set("User-Agent", c.s.userAgent())
139383	if c.ifNoneMatch_ != "" {
139384		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
139385	}
139386	var body io.Reader = nil
139387	c.urlParams_.Set("alt", alt)
139388	c.urlParams_.Set("prettyPrint", "false")
139389	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies")
139390	urls += "?" + c.urlParams_.Encode()
139391	req, err := http.NewRequest("GET", urls, body)
139392	if err != nil {
139393		return nil, err
139394	}
139395	req.Header = reqHeaders
139396	googleapi.Expand(req.URL, map[string]string{
139397		"project": c.project,
139398		"region":  c.region,
139399	})
139400	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139401}
139402
139403// Do executes the "compute.resourcePolicies.list" call.
139404// Exactly one of *ResourcePolicyList or error will be non-nil. Any
139405// non-2xx status code is an error. Response headers are in either
139406// *ResourcePolicyList.ServerResponse.Header or (if a response was
139407// returned at all) in error.(*googleapi.Error).Header. Use
139408// googleapi.IsNotModified to check whether the returned error was
139409// because http.StatusNotModified was returned.
139410func (c *ResourcePoliciesListCall) Do(opts ...googleapi.CallOption) (*ResourcePolicyList, error) {
139411	gensupport.SetOptions(c.urlParams_, opts...)
139412	res, err := c.doRequest("json")
139413	if res != nil && res.StatusCode == http.StatusNotModified {
139414		if res.Body != nil {
139415			res.Body.Close()
139416		}
139417		return nil, &googleapi.Error{
139418			Code:   res.StatusCode,
139419			Header: res.Header,
139420		}
139421	}
139422	if err != nil {
139423		return nil, err
139424	}
139425	defer googleapi.CloseBody(res)
139426	if err := googleapi.CheckResponse(res); err != nil {
139427		return nil, err
139428	}
139429	ret := &ResourcePolicyList{
139430		ServerResponse: googleapi.ServerResponse{
139431			Header:         res.Header,
139432			HTTPStatusCode: res.StatusCode,
139433		},
139434	}
139435	target := &ret
139436	if err := gensupport.DecodeResponse(target, res); err != nil {
139437		return nil, err
139438	}
139439	return ret, nil
139440	// {
139441	//   "description": "A list all the resource policies that have been configured for the specified project in specified region.",
139442	//   "flatPath": "projects/{project}/regions/{region}/resourcePolicies",
139443	//   "httpMethod": "GET",
139444	//   "id": "compute.resourcePolicies.list",
139445	//   "parameterOrder": [
139446	//     "project",
139447	//     "region"
139448	//   ],
139449	//   "parameters": {
139450	//     "filter": {
139451	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
139452	//       "location": "query",
139453	//       "type": "string"
139454	//     },
139455	//     "maxResults": {
139456	//       "default": "500",
139457	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
139458	//       "format": "uint32",
139459	//       "location": "query",
139460	//       "minimum": "0",
139461	//       "type": "integer"
139462	//     },
139463	//     "orderBy": {
139464	//       "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.",
139465	//       "location": "query",
139466	//       "type": "string"
139467	//     },
139468	//     "pageToken": {
139469	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
139470	//       "location": "query",
139471	//       "type": "string"
139472	//     },
139473	//     "project": {
139474	//       "description": "Project ID for this request.",
139475	//       "location": "path",
139476	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139477	//       "required": true,
139478	//       "type": "string"
139479	//     },
139480	//     "region": {
139481	//       "description": "Name of the region for this request.",
139482	//       "location": "path",
139483	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139484	//       "required": true,
139485	//       "type": "string"
139486	//     },
139487	//     "returnPartialSuccess": {
139488	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
139489	//       "location": "query",
139490	//       "type": "boolean"
139491	//     }
139492	//   },
139493	//   "path": "projects/{project}/regions/{region}/resourcePolicies",
139494	//   "response": {
139495	//     "$ref": "ResourcePolicyList"
139496	//   },
139497	//   "scopes": [
139498	//     "https://www.googleapis.com/auth/cloud-platform",
139499	//     "https://www.googleapis.com/auth/compute",
139500	//     "https://www.googleapis.com/auth/compute.readonly"
139501	//   ]
139502	// }
139503
139504}
139505
139506// Pages invokes f for each page of results.
139507// A non-nil error returned from f will halt the iteration.
139508// The provided context supersedes any context provided to the Context method.
139509func (c *ResourcePoliciesListCall) Pages(ctx context.Context, f func(*ResourcePolicyList) error) error {
139510	c.ctx_ = ctx
139511	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
139512	for {
139513		x, err := c.Do()
139514		if err != nil {
139515			return err
139516		}
139517		if err := f(x); err != nil {
139518			return err
139519		}
139520		if x.NextPageToken == "" {
139521			return nil
139522		}
139523		c.PageToken(x.NextPageToken)
139524	}
139525}
139526
139527// method id "compute.resourcePolicies.setIamPolicy":
139528
139529type ResourcePoliciesSetIamPolicyCall struct {
139530	s                      *Service
139531	project                string
139532	region                 string
139533	resource               string
139534	regionsetpolicyrequest *RegionSetPolicyRequest
139535	urlParams_             gensupport.URLParams
139536	ctx_                   context.Context
139537	header_                http.Header
139538}
139539
139540// SetIamPolicy: Sets the access control policy on the specified
139541// resource. Replaces any existing policy.
139542//
139543// - project: Project ID for this request.
139544// - region: The name of the region for this request.
139545// - resource: Name or id of the resource for this request.
139546func (r *ResourcePoliciesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *ResourcePoliciesSetIamPolicyCall {
139547	c := &ResourcePoliciesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139548	c.project = project
139549	c.region = region
139550	c.resource = resource
139551	c.regionsetpolicyrequest = regionsetpolicyrequest
139552	return c
139553}
139554
139555// Fields allows partial responses to be retrieved. See
139556// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139557// for more information.
139558func (c *ResourcePoliciesSetIamPolicyCall) Fields(s ...googleapi.Field) *ResourcePoliciesSetIamPolicyCall {
139559	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139560	return c
139561}
139562
139563// Context sets the context to be used in this call's Do method. Any
139564// pending HTTP request will be aborted if the provided context is
139565// canceled.
139566func (c *ResourcePoliciesSetIamPolicyCall) Context(ctx context.Context) *ResourcePoliciesSetIamPolicyCall {
139567	c.ctx_ = ctx
139568	return c
139569}
139570
139571// Header returns an http.Header that can be modified by the caller to
139572// add HTTP headers to the request.
139573func (c *ResourcePoliciesSetIamPolicyCall) Header() http.Header {
139574	if c.header_ == nil {
139575		c.header_ = make(http.Header)
139576	}
139577	return c.header_
139578}
139579
139580func (c *ResourcePoliciesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
139581	reqHeaders := make(http.Header)
139582	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
139583	for k, v := range c.header_ {
139584		reqHeaders[k] = v
139585	}
139586	reqHeaders.Set("User-Agent", c.s.userAgent())
139587	var body io.Reader = nil
139588	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
139589	if err != nil {
139590		return nil, err
139591	}
139592	reqHeaders.Set("Content-Type", "application/json")
139593	c.urlParams_.Set("alt", alt)
139594	c.urlParams_.Set("prettyPrint", "false")
139595	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy")
139596	urls += "?" + c.urlParams_.Encode()
139597	req, err := http.NewRequest("POST", urls, body)
139598	if err != nil {
139599		return nil, err
139600	}
139601	req.Header = reqHeaders
139602	googleapi.Expand(req.URL, map[string]string{
139603		"project":  c.project,
139604		"region":   c.region,
139605		"resource": c.resource,
139606	})
139607	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139608}
139609
139610// Do executes the "compute.resourcePolicies.setIamPolicy" call.
139611// Exactly one of *Policy or error will be non-nil. Any non-2xx status
139612// code is an error. Response headers are in either
139613// *Policy.ServerResponse.Header or (if a response was returned at all)
139614// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
139615// check whether the returned error was because http.StatusNotModified
139616// was returned.
139617func (c *ResourcePoliciesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
139618	gensupport.SetOptions(c.urlParams_, opts...)
139619	res, err := c.doRequest("json")
139620	if res != nil && res.StatusCode == http.StatusNotModified {
139621		if res.Body != nil {
139622			res.Body.Close()
139623		}
139624		return nil, &googleapi.Error{
139625			Code:   res.StatusCode,
139626			Header: res.Header,
139627		}
139628	}
139629	if err != nil {
139630		return nil, err
139631	}
139632	defer googleapi.CloseBody(res)
139633	if err := googleapi.CheckResponse(res); err != nil {
139634		return nil, err
139635	}
139636	ret := &Policy{
139637		ServerResponse: googleapi.ServerResponse{
139638			Header:         res.Header,
139639			HTTPStatusCode: res.StatusCode,
139640		},
139641	}
139642	target := &ret
139643	if err := gensupport.DecodeResponse(target, res); err != nil {
139644		return nil, err
139645	}
139646	return ret, nil
139647	// {
139648	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
139649	//   "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy",
139650	//   "httpMethod": "POST",
139651	//   "id": "compute.resourcePolicies.setIamPolicy",
139652	//   "parameterOrder": [
139653	//     "project",
139654	//     "region",
139655	//     "resource"
139656	//   ],
139657	//   "parameters": {
139658	//     "project": {
139659	//       "description": "Project ID for this request.",
139660	//       "location": "path",
139661	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139662	//       "required": true,
139663	//       "type": "string"
139664	//     },
139665	//     "region": {
139666	//       "description": "The name of the region for this request.",
139667	//       "location": "path",
139668	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139669	//       "required": true,
139670	//       "type": "string"
139671	//     },
139672	//     "resource": {
139673	//       "description": "Name or id of the resource for this request.",
139674	//       "location": "path",
139675	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139676	//       "required": true,
139677	//       "type": "string"
139678	//     }
139679	//   },
139680	//   "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy",
139681	//   "request": {
139682	//     "$ref": "RegionSetPolicyRequest"
139683	//   },
139684	//   "response": {
139685	//     "$ref": "Policy"
139686	//   },
139687	//   "scopes": [
139688	//     "https://www.googleapis.com/auth/cloud-platform",
139689	//     "https://www.googleapis.com/auth/compute"
139690	//   ]
139691	// }
139692
139693}
139694
139695// method id "compute.resourcePolicies.testIamPermissions":
139696
139697type ResourcePoliciesTestIamPermissionsCall struct {
139698	s                      *Service
139699	project                string
139700	region                 string
139701	resource               string
139702	testpermissionsrequest *TestPermissionsRequest
139703	urlParams_             gensupport.URLParams
139704	ctx_                   context.Context
139705	header_                http.Header
139706}
139707
139708// TestIamPermissions: Returns permissions that a caller has on the
139709// specified resource.
139710//
139711// - project: Project ID for this request.
139712// - region: The name of the region for this request.
139713// - resource: Name or id of the resource for this request.
139714func (r *ResourcePoliciesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *ResourcePoliciesTestIamPermissionsCall {
139715	c := &ResourcePoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139716	c.project = project
139717	c.region = region
139718	c.resource = resource
139719	c.testpermissionsrequest = testpermissionsrequest
139720	return c
139721}
139722
139723// Fields allows partial responses to be retrieved. See
139724// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139725// for more information.
139726func (c *ResourcePoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ResourcePoliciesTestIamPermissionsCall {
139727	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139728	return c
139729}
139730
139731// Context sets the context to be used in this call's Do method. Any
139732// pending HTTP request will be aborted if the provided context is
139733// canceled.
139734func (c *ResourcePoliciesTestIamPermissionsCall) Context(ctx context.Context) *ResourcePoliciesTestIamPermissionsCall {
139735	c.ctx_ = ctx
139736	return c
139737}
139738
139739// Header returns an http.Header that can be modified by the caller to
139740// add HTTP headers to the request.
139741func (c *ResourcePoliciesTestIamPermissionsCall) Header() http.Header {
139742	if c.header_ == nil {
139743		c.header_ = make(http.Header)
139744	}
139745	return c.header_
139746}
139747
139748func (c *ResourcePoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
139749	reqHeaders := make(http.Header)
139750	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
139751	for k, v := range c.header_ {
139752		reqHeaders[k] = v
139753	}
139754	reqHeaders.Set("User-Agent", c.s.userAgent())
139755	var body io.Reader = nil
139756	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
139757	if err != nil {
139758		return nil, err
139759	}
139760	reqHeaders.Set("Content-Type", "application/json")
139761	c.urlParams_.Set("alt", alt)
139762	c.urlParams_.Set("prettyPrint", "false")
139763	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions")
139764	urls += "?" + c.urlParams_.Encode()
139765	req, err := http.NewRequest("POST", urls, body)
139766	if err != nil {
139767		return nil, err
139768	}
139769	req.Header = reqHeaders
139770	googleapi.Expand(req.URL, map[string]string{
139771		"project":  c.project,
139772		"region":   c.region,
139773		"resource": c.resource,
139774	})
139775	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139776}
139777
139778// Do executes the "compute.resourcePolicies.testIamPermissions" call.
139779// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
139780// non-2xx status code is an error. Response headers are in either
139781// *TestPermissionsResponse.ServerResponse.Header or (if a response was
139782// returned at all) in error.(*googleapi.Error).Header. Use
139783// googleapi.IsNotModified to check whether the returned error was
139784// because http.StatusNotModified was returned.
139785func (c *ResourcePoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
139786	gensupport.SetOptions(c.urlParams_, opts...)
139787	res, err := c.doRequest("json")
139788	if res != nil && res.StatusCode == http.StatusNotModified {
139789		if res.Body != nil {
139790			res.Body.Close()
139791		}
139792		return nil, &googleapi.Error{
139793			Code:   res.StatusCode,
139794			Header: res.Header,
139795		}
139796	}
139797	if err != nil {
139798		return nil, err
139799	}
139800	defer googleapi.CloseBody(res)
139801	if err := googleapi.CheckResponse(res); err != nil {
139802		return nil, err
139803	}
139804	ret := &TestPermissionsResponse{
139805		ServerResponse: googleapi.ServerResponse{
139806			Header:         res.Header,
139807			HTTPStatusCode: res.StatusCode,
139808		},
139809	}
139810	target := &ret
139811	if err := gensupport.DecodeResponse(target, res); err != nil {
139812		return nil, err
139813	}
139814	return ret, nil
139815	// {
139816	//   "description": "Returns permissions that a caller has on the specified resource.",
139817	//   "flatPath": "projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions",
139818	//   "httpMethod": "POST",
139819	//   "id": "compute.resourcePolicies.testIamPermissions",
139820	//   "parameterOrder": [
139821	//     "project",
139822	//     "region",
139823	//     "resource"
139824	//   ],
139825	//   "parameters": {
139826	//     "project": {
139827	//       "description": "Project ID for this request.",
139828	//       "location": "path",
139829	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139830	//       "required": true,
139831	//       "type": "string"
139832	//     },
139833	//     "region": {
139834	//       "description": "The name of the region for this request.",
139835	//       "location": "path",
139836	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
139837	//       "required": true,
139838	//       "type": "string"
139839	//     },
139840	//     "resource": {
139841	//       "description": "Name or id of the resource for this request.",
139842	//       "location": "path",
139843	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139844	//       "required": true,
139845	//       "type": "string"
139846	//     }
139847	//   },
139848	//   "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions",
139849	//   "request": {
139850	//     "$ref": "TestPermissionsRequest"
139851	//   },
139852	//   "response": {
139853	//     "$ref": "TestPermissionsResponse"
139854	//   },
139855	//   "scopes": [
139856	//     "https://www.googleapis.com/auth/cloud-platform",
139857	//     "https://www.googleapis.com/auth/compute",
139858	//     "https://www.googleapis.com/auth/compute.readonly"
139859	//   ]
139860	// }
139861
139862}
139863
139864// method id "compute.routers.aggregatedList":
139865
139866type RoutersAggregatedListCall struct {
139867	s            *Service
139868	project      string
139869	urlParams_   gensupport.URLParams
139870	ifNoneMatch_ string
139871	ctx_         context.Context
139872	header_      http.Header
139873}
139874
139875// AggregatedList: Retrieves an aggregated list of routers.
139876//
139877// - project: Project ID for this request.
139878func (r *RoutersService) AggregatedList(project string) *RoutersAggregatedListCall {
139879	c := &RoutersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139880	c.project = project
139881	return c
139882}
139883
139884// Filter sets the optional parameter "filter": A filter expression that
139885// filters resources listed in the response. The expression must specify
139886// the field name, a comparison operator, and the value that you want to
139887// use for filtering. The value must be a string, a number, or a
139888// boolean. The comparison operator must be either `=`, `!=`, `>`, or
139889// `<`. For example, if you are filtering Compute Engine instances, you
139890// can exclude instances named `example-instance` by specifying `name !=
139891// example-instance`. You can also filter nested fields. For example,
139892// you could specify `scheduling.automaticRestart = false` to include
139893// instances only if they are not scheduled for automatic restarts. You
139894// can use filtering on nested fields to filter based on resource
139895// labels. To filter on multiple expressions, provide each separate
139896// expression within parentheses. For example: ```
139897// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
139898// ``` By default, each expression is an `AND` expression. However, you
139899// can include `AND` and `OR` expressions explicitly. For example: ```
139900// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
139901// AND (scheduling.automaticRestart = true) ```
139902func (c *RoutersAggregatedListCall) Filter(filter string) *RoutersAggregatedListCall {
139903	c.urlParams_.Set("filter", filter)
139904	return c
139905}
139906
139907// IncludeAllScopes sets the optional parameter "includeAllScopes":
139908// Indicates whether every visible scope for each scope type (zone,
139909// region, global) should be included in the response. For new resource
139910// types added after this field, the flag has no effect as new resource
139911// types will always include every visible scope for each scope type in
139912// response. For resource types which predate this field, if this flag
139913// is omitted or false, only scopes of the scope types where the
139914// resource type is expected to be found will be included.
139915func (c *RoutersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *RoutersAggregatedListCall {
139916	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
139917	return c
139918}
139919
139920// MaxResults sets the optional parameter "maxResults": The maximum
139921// number of results per page that should be returned. If the number of
139922// available results is larger than `maxResults`, Compute Engine returns
139923// a `nextPageToken` that can be used to get the next page of results in
139924// subsequent list requests. Acceptable values are `0` to `500`,
139925// inclusive. (Default: `500`)
139926func (c *RoutersAggregatedListCall) MaxResults(maxResults int64) *RoutersAggregatedListCall {
139927	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
139928	return c
139929}
139930
139931// OrderBy sets the optional parameter "orderBy": Sorts list results by
139932// a certain order. By default, results are returned in alphanumerical
139933// order based on the resource name. You can also sort results in
139934// descending order based on the creation timestamp using
139935// `orderBy="creationTimestamp desc". This sorts results based on the
139936// `creationTimestamp` field in reverse chronological order (newest
139937// result first). Use this to sort resources like operations so that the
139938// newest operation is returned first. Currently, only sorting by `name`
139939// or `creationTimestamp desc` is supported.
139940func (c *RoutersAggregatedListCall) OrderBy(orderBy string) *RoutersAggregatedListCall {
139941	c.urlParams_.Set("orderBy", orderBy)
139942	return c
139943}
139944
139945// PageToken sets the optional parameter "pageToken": Specifies a page
139946// token to use. Set `pageToken` to the `nextPageToken` returned by a
139947// previous list request to get the next page of results.
139948func (c *RoutersAggregatedListCall) PageToken(pageToken string) *RoutersAggregatedListCall {
139949	c.urlParams_.Set("pageToken", pageToken)
139950	return c
139951}
139952
139953// ReturnPartialSuccess sets the optional parameter
139954// "returnPartialSuccess": Opt-in for partial success behavior which
139955// provides partial results in case of failure. The default value is
139956// false.
139957func (c *RoutersAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutersAggregatedListCall {
139958	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
139959	return c
139960}
139961
139962// Fields allows partial responses to be retrieved. See
139963// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139964// for more information.
139965func (c *RoutersAggregatedListCall) Fields(s ...googleapi.Field) *RoutersAggregatedListCall {
139966	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139967	return c
139968}
139969
139970// IfNoneMatch sets the optional parameter which makes the operation
139971// fail if the object's ETag matches the given value. This is useful for
139972// getting updates only after the object has changed since the last
139973// request. Use googleapi.IsNotModified to check whether the response
139974// error from Do is the result of In-None-Match.
139975func (c *RoutersAggregatedListCall) IfNoneMatch(entityTag string) *RoutersAggregatedListCall {
139976	c.ifNoneMatch_ = entityTag
139977	return c
139978}
139979
139980// Context sets the context to be used in this call's Do method. Any
139981// pending HTTP request will be aborted if the provided context is
139982// canceled.
139983func (c *RoutersAggregatedListCall) Context(ctx context.Context) *RoutersAggregatedListCall {
139984	c.ctx_ = ctx
139985	return c
139986}
139987
139988// Header returns an http.Header that can be modified by the caller to
139989// add HTTP headers to the request.
139990func (c *RoutersAggregatedListCall) Header() http.Header {
139991	if c.header_ == nil {
139992		c.header_ = make(http.Header)
139993	}
139994	return c.header_
139995}
139996
139997func (c *RoutersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
139998	reqHeaders := make(http.Header)
139999	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
140000	for k, v := range c.header_ {
140001		reqHeaders[k] = v
140002	}
140003	reqHeaders.Set("User-Agent", c.s.userAgent())
140004	if c.ifNoneMatch_ != "" {
140005		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
140006	}
140007	var body io.Reader = nil
140008	c.urlParams_.Set("alt", alt)
140009	c.urlParams_.Set("prettyPrint", "false")
140010	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/routers")
140011	urls += "?" + c.urlParams_.Encode()
140012	req, err := http.NewRequest("GET", urls, body)
140013	if err != nil {
140014		return nil, err
140015	}
140016	req.Header = reqHeaders
140017	googleapi.Expand(req.URL, map[string]string{
140018		"project": c.project,
140019	})
140020	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140021}
140022
140023// Do executes the "compute.routers.aggregatedList" call.
140024// Exactly one of *RouterAggregatedList or error will be non-nil. Any
140025// non-2xx status code is an error. Response headers are in either
140026// *RouterAggregatedList.ServerResponse.Header or (if a response was
140027// returned at all) in error.(*googleapi.Error).Header. Use
140028// googleapi.IsNotModified to check whether the returned error was
140029// because http.StatusNotModified was returned.
140030func (c *RoutersAggregatedListCall) Do(opts ...googleapi.CallOption) (*RouterAggregatedList, error) {
140031	gensupport.SetOptions(c.urlParams_, opts...)
140032	res, err := c.doRequest("json")
140033	if res != nil && res.StatusCode == http.StatusNotModified {
140034		if res.Body != nil {
140035			res.Body.Close()
140036		}
140037		return nil, &googleapi.Error{
140038			Code:   res.StatusCode,
140039			Header: res.Header,
140040		}
140041	}
140042	if err != nil {
140043		return nil, err
140044	}
140045	defer googleapi.CloseBody(res)
140046	if err := googleapi.CheckResponse(res); err != nil {
140047		return nil, err
140048	}
140049	ret := &RouterAggregatedList{
140050		ServerResponse: googleapi.ServerResponse{
140051			Header:         res.Header,
140052			HTTPStatusCode: res.StatusCode,
140053		},
140054	}
140055	target := &ret
140056	if err := gensupport.DecodeResponse(target, res); err != nil {
140057		return nil, err
140058	}
140059	return ret, nil
140060	// {
140061	//   "description": "Retrieves an aggregated list of routers.",
140062	//   "flatPath": "projects/{project}/aggregated/routers",
140063	//   "httpMethod": "GET",
140064	//   "id": "compute.routers.aggregatedList",
140065	//   "parameterOrder": [
140066	//     "project"
140067	//   ],
140068	//   "parameters": {
140069	//     "filter": {
140070	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
140071	//       "location": "query",
140072	//       "type": "string"
140073	//     },
140074	//     "includeAllScopes": {
140075	//       "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.",
140076	//       "location": "query",
140077	//       "type": "boolean"
140078	//     },
140079	//     "maxResults": {
140080	//       "default": "500",
140081	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
140082	//       "format": "uint32",
140083	//       "location": "query",
140084	//       "minimum": "0",
140085	//       "type": "integer"
140086	//     },
140087	//     "orderBy": {
140088	//       "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.",
140089	//       "location": "query",
140090	//       "type": "string"
140091	//     },
140092	//     "pageToken": {
140093	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
140094	//       "location": "query",
140095	//       "type": "string"
140096	//     },
140097	//     "project": {
140098	//       "description": "Project ID for this request.",
140099	//       "location": "path",
140100	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140101	//       "required": true,
140102	//       "type": "string"
140103	//     },
140104	//     "returnPartialSuccess": {
140105	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
140106	//       "location": "query",
140107	//       "type": "boolean"
140108	//     }
140109	//   },
140110	//   "path": "projects/{project}/aggregated/routers",
140111	//   "response": {
140112	//     "$ref": "RouterAggregatedList"
140113	//   },
140114	//   "scopes": [
140115	//     "https://www.googleapis.com/auth/cloud-platform",
140116	//     "https://www.googleapis.com/auth/compute",
140117	//     "https://www.googleapis.com/auth/compute.readonly"
140118	//   ]
140119	// }
140120
140121}
140122
140123// Pages invokes f for each page of results.
140124// A non-nil error returned from f will halt the iteration.
140125// The provided context supersedes any context provided to the Context method.
140126func (c *RoutersAggregatedListCall) Pages(ctx context.Context, f func(*RouterAggregatedList) error) error {
140127	c.ctx_ = ctx
140128	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
140129	for {
140130		x, err := c.Do()
140131		if err != nil {
140132			return err
140133		}
140134		if err := f(x); err != nil {
140135			return err
140136		}
140137		if x.NextPageToken == "" {
140138			return nil
140139		}
140140		c.PageToken(x.NextPageToken)
140141	}
140142}
140143
140144// method id "compute.routers.delete":
140145
140146type RoutersDeleteCall struct {
140147	s          *Service
140148	project    string
140149	region     string
140150	router     string
140151	urlParams_ gensupport.URLParams
140152	ctx_       context.Context
140153	header_    http.Header
140154}
140155
140156// Delete: Deletes the specified Router resource.
140157//
140158// - project: Project ID for this request.
140159// - region: Name of the region for this request.
140160// - router: Name of the Router resource to delete.
140161func (r *RoutersService) Delete(project string, region string, router string) *RoutersDeleteCall {
140162	c := &RoutersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140163	c.project = project
140164	c.region = region
140165	c.router = router
140166	return c
140167}
140168
140169// RequestId sets the optional parameter "requestId": An optional
140170// request ID to identify requests. Specify a unique request ID so that
140171// if you must retry your request, the server will know to ignore the
140172// request if it has already been completed. For example, consider a
140173// situation where you make an initial request and the request times
140174// out. If you make the request again with the same request ID, the
140175// server can check if original operation with the same request ID was
140176// received, and if so, will ignore the second request. This prevents
140177// clients from accidentally creating duplicate commitments. The request
140178// ID must be a valid UUID with the exception that zero UUID is not
140179// supported ( 00000000-0000-0000-0000-000000000000).
140180func (c *RoutersDeleteCall) RequestId(requestId string) *RoutersDeleteCall {
140181	c.urlParams_.Set("requestId", requestId)
140182	return c
140183}
140184
140185// Fields allows partial responses to be retrieved. See
140186// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140187// for more information.
140188func (c *RoutersDeleteCall) Fields(s ...googleapi.Field) *RoutersDeleteCall {
140189	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140190	return c
140191}
140192
140193// Context sets the context to be used in this call's Do method. Any
140194// pending HTTP request will be aborted if the provided context is
140195// canceled.
140196func (c *RoutersDeleteCall) Context(ctx context.Context) *RoutersDeleteCall {
140197	c.ctx_ = ctx
140198	return c
140199}
140200
140201// Header returns an http.Header that can be modified by the caller to
140202// add HTTP headers to the request.
140203func (c *RoutersDeleteCall) Header() http.Header {
140204	if c.header_ == nil {
140205		c.header_ = make(http.Header)
140206	}
140207	return c.header_
140208}
140209
140210func (c *RoutersDeleteCall) doRequest(alt string) (*http.Response, error) {
140211	reqHeaders := make(http.Header)
140212	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
140213	for k, v := range c.header_ {
140214		reqHeaders[k] = v
140215	}
140216	reqHeaders.Set("User-Agent", c.s.userAgent())
140217	var body io.Reader = nil
140218	c.urlParams_.Set("alt", alt)
140219	c.urlParams_.Set("prettyPrint", "false")
140220	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}")
140221	urls += "?" + c.urlParams_.Encode()
140222	req, err := http.NewRequest("DELETE", urls, body)
140223	if err != nil {
140224		return nil, err
140225	}
140226	req.Header = reqHeaders
140227	googleapi.Expand(req.URL, map[string]string{
140228		"project": c.project,
140229		"region":  c.region,
140230		"router":  c.router,
140231	})
140232	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140233}
140234
140235// Do executes the "compute.routers.delete" call.
140236// Exactly one of *Operation or error will be non-nil. Any non-2xx
140237// status code is an error. Response headers are in either
140238// *Operation.ServerResponse.Header or (if a response was returned at
140239// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
140240// to check whether the returned error was because
140241// http.StatusNotModified was returned.
140242func (c *RoutersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
140243	gensupport.SetOptions(c.urlParams_, opts...)
140244	res, err := c.doRequest("json")
140245	if res != nil && res.StatusCode == http.StatusNotModified {
140246		if res.Body != nil {
140247			res.Body.Close()
140248		}
140249		return nil, &googleapi.Error{
140250			Code:   res.StatusCode,
140251			Header: res.Header,
140252		}
140253	}
140254	if err != nil {
140255		return nil, err
140256	}
140257	defer googleapi.CloseBody(res)
140258	if err := googleapi.CheckResponse(res); err != nil {
140259		return nil, err
140260	}
140261	ret := &Operation{
140262		ServerResponse: googleapi.ServerResponse{
140263			Header:         res.Header,
140264			HTTPStatusCode: res.StatusCode,
140265		},
140266	}
140267	target := &ret
140268	if err := gensupport.DecodeResponse(target, res); err != nil {
140269		return nil, err
140270	}
140271	return ret, nil
140272	// {
140273	//   "description": "Deletes the specified Router resource.",
140274	//   "flatPath": "projects/{project}/regions/{region}/routers/{router}",
140275	//   "httpMethod": "DELETE",
140276	//   "id": "compute.routers.delete",
140277	//   "parameterOrder": [
140278	//     "project",
140279	//     "region",
140280	//     "router"
140281	//   ],
140282	//   "parameters": {
140283	//     "project": {
140284	//       "description": "Project ID for this request.",
140285	//       "location": "path",
140286	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140287	//       "required": true,
140288	//       "type": "string"
140289	//     },
140290	//     "region": {
140291	//       "description": "Name of the region for this request.",
140292	//       "location": "path",
140293	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140294	//       "required": true,
140295	//       "type": "string"
140296	//     },
140297	//     "requestId": {
140298	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
140299	//       "location": "query",
140300	//       "type": "string"
140301	//     },
140302	//     "router": {
140303	//       "description": "Name of the Router resource to delete.",
140304	//       "location": "path",
140305	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140306	//       "required": true,
140307	//       "type": "string"
140308	//     }
140309	//   },
140310	//   "path": "projects/{project}/regions/{region}/routers/{router}",
140311	//   "response": {
140312	//     "$ref": "Operation"
140313	//   },
140314	//   "scopes": [
140315	//     "https://www.googleapis.com/auth/cloud-platform",
140316	//     "https://www.googleapis.com/auth/compute"
140317	//   ]
140318	// }
140319
140320}
140321
140322// method id "compute.routers.get":
140323
140324type RoutersGetCall struct {
140325	s            *Service
140326	project      string
140327	region       string
140328	router       string
140329	urlParams_   gensupport.URLParams
140330	ifNoneMatch_ string
140331	ctx_         context.Context
140332	header_      http.Header
140333}
140334
140335// Get: Returns the specified Router resource. Gets a list of available
140336// routers by making a list() request.
140337//
140338// - project: Project ID for this request.
140339// - region: Name of the region for this request.
140340// - router: Name of the Router resource to return.
140341func (r *RoutersService) Get(project string, region string, router string) *RoutersGetCall {
140342	c := &RoutersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140343	c.project = project
140344	c.region = region
140345	c.router = router
140346	return c
140347}
140348
140349// Fields allows partial responses to be retrieved. See
140350// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140351// for more information.
140352func (c *RoutersGetCall) Fields(s ...googleapi.Field) *RoutersGetCall {
140353	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140354	return c
140355}
140356
140357// IfNoneMatch sets the optional parameter which makes the operation
140358// fail if the object's ETag matches the given value. This is useful for
140359// getting updates only after the object has changed since the last
140360// request. Use googleapi.IsNotModified to check whether the response
140361// error from Do is the result of In-None-Match.
140362func (c *RoutersGetCall) IfNoneMatch(entityTag string) *RoutersGetCall {
140363	c.ifNoneMatch_ = entityTag
140364	return c
140365}
140366
140367// Context sets the context to be used in this call's Do method. Any
140368// pending HTTP request will be aborted if the provided context is
140369// canceled.
140370func (c *RoutersGetCall) Context(ctx context.Context) *RoutersGetCall {
140371	c.ctx_ = ctx
140372	return c
140373}
140374
140375// Header returns an http.Header that can be modified by the caller to
140376// add HTTP headers to the request.
140377func (c *RoutersGetCall) Header() http.Header {
140378	if c.header_ == nil {
140379		c.header_ = make(http.Header)
140380	}
140381	return c.header_
140382}
140383
140384func (c *RoutersGetCall) doRequest(alt string) (*http.Response, error) {
140385	reqHeaders := make(http.Header)
140386	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
140387	for k, v := range c.header_ {
140388		reqHeaders[k] = v
140389	}
140390	reqHeaders.Set("User-Agent", c.s.userAgent())
140391	if c.ifNoneMatch_ != "" {
140392		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
140393	}
140394	var body io.Reader = nil
140395	c.urlParams_.Set("alt", alt)
140396	c.urlParams_.Set("prettyPrint", "false")
140397	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}")
140398	urls += "?" + c.urlParams_.Encode()
140399	req, err := http.NewRequest("GET", urls, body)
140400	if err != nil {
140401		return nil, err
140402	}
140403	req.Header = reqHeaders
140404	googleapi.Expand(req.URL, map[string]string{
140405		"project": c.project,
140406		"region":  c.region,
140407		"router":  c.router,
140408	})
140409	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140410}
140411
140412// Do executes the "compute.routers.get" call.
140413// Exactly one of *Router or error will be non-nil. Any non-2xx status
140414// code is an error. Response headers are in either
140415// *Router.ServerResponse.Header or (if a response was returned at all)
140416// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
140417// check whether the returned error was because http.StatusNotModified
140418// was returned.
140419func (c *RoutersGetCall) Do(opts ...googleapi.CallOption) (*Router, error) {
140420	gensupport.SetOptions(c.urlParams_, opts...)
140421	res, err := c.doRequest("json")
140422	if res != nil && res.StatusCode == http.StatusNotModified {
140423		if res.Body != nil {
140424			res.Body.Close()
140425		}
140426		return nil, &googleapi.Error{
140427			Code:   res.StatusCode,
140428			Header: res.Header,
140429		}
140430	}
140431	if err != nil {
140432		return nil, err
140433	}
140434	defer googleapi.CloseBody(res)
140435	if err := googleapi.CheckResponse(res); err != nil {
140436		return nil, err
140437	}
140438	ret := &Router{
140439		ServerResponse: googleapi.ServerResponse{
140440			Header:         res.Header,
140441			HTTPStatusCode: res.StatusCode,
140442		},
140443	}
140444	target := &ret
140445	if err := gensupport.DecodeResponse(target, res); err != nil {
140446		return nil, err
140447	}
140448	return ret, nil
140449	// {
140450	//   "description": "Returns the specified Router resource. Gets a list of available routers by making a list() request.",
140451	//   "flatPath": "projects/{project}/regions/{region}/routers/{router}",
140452	//   "httpMethod": "GET",
140453	//   "id": "compute.routers.get",
140454	//   "parameterOrder": [
140455	//     "project",
140456	//     "region",
140457	//     "router"
140458	//   ],
140459	//   "parameters": {
140460	//     "project": {
140461	//       "description": "Project ID for this request.",
140462	//       "location": "path",
140463	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140464	//       "required": true,
140465	//       "type": "string"
140466	//     },
140467	//     "region": {
140468	//       "description": "Name of the region for this request.",
140469	//       "location": "path",
140470	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140471	//       "required": true,
140472	//       "type": "string"
140473	//     },
140474	//     "router": {
140475	//       "description": "Name of the Router resource to return.",
140476	//       "location": "path",
140477	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140478	//       "required": true,
140479	//       "type": "string"
140480	//     }
140481	//   },
140482	//   "path": "projects/{project}/regions/{region}/routers/{router}",
140483	//   "response": {
140484	//     "$ref": "Router"
140485	//   },
140486	//   "scopes": [
140487	//     "https://www.googleapis.com/auth/cloud-platform",
140488	//     "https://www.googleapis.com/auth/compute",
140489	//     "https://www.googleapis.com/auth/compute.readonly"
140490	//   ]
140491	// }
140492
140493}
140494
140495// method id "compute.routers.getNatMappingInfo":
140496
140497type RoutersGetNatMappingInfoCall struct {
140498	s            *Service
140499	project      string
140500	region       string
140501	router       string
140502	urlParams_   gensupport.URLParams
140503	ifNoneMatch_ string
140504	ctx_         context.Context
140505	header_      http.Header
140506}
140507
140508// GetNatMappingInfo: Retrieves runtime Nat mapping information of VM
140509// endpoints.
140510//
140511// - project: Project ID for this request.
140512// - region: Name of the region for this request.
140513// - router: Name of the Router resource to query for Nat Mapping
140514//   information of VM endpoints.
140515func (r *RoutersService) GetNatMappingInfo(project string, region string, router string) *RoutersGetNatMappingInfoCall {
140516	c := &RoutersGetNatMappingInfoCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140517	c.project = project
140518	c.region = region
140519	c.router = router
140520	return c
140521}
140522
140523// Filter sets the optional parameter "filter": A filter expression that
140524// filters resources listed in the response. The expression must specify
140525// the field name, a comparison operator, and the value that you want to
140526// use for filtering. The value must be a string, a number, or a
140527// boolean. The comparison operator must be either `=`, `!=`, `>`, or
140528// `<`. For example, if you are filtering Compute Engine instances, you
140529// can exclude instances named `example-instance` by specifying `name !=
140530// example-instance`. You can also filter nested fields. For example,
140531// you could specify `scheduling.automaticRestart = false` to include
140532// instances only if they are not scheduled for automatic restarts. You
140533// can use filtering on nested fields to filter based on resource
140534// labels. To filter on multiple expressions, provide each separate
140535// expression within parentheses. For example: ```
140536// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
140537// ``` By default, each expression is an `AND` expression. However, you
140538// can include `AND` and `OR` expressions explicitly. For example: ```
140539// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
140540// AND (scheduling.automaticRestart = true) ```
140541func (c *RoutersGetNatMappingInfoCall) Filter(filter string) *RoutersGetNatMappingInfoCall {
140542	c.urlParams_.Set("filter", filter)
140543	return c
140544}
140545
140546// MaxResults sets the optional parameter "maxResults": The maximum
140547// number of results per page that should be returned. If the number of
140548// available results is larger than `maxResults`, Compute Engine returns
140549// a `nextPageToken` that can be used to get the next page of results in
140550// subsequent list requests. Acceptable values are `0` to `500`,
140551// inclusive. (Default: `500`)
140552func (c *RoutersGetNatMappingInfoCall) MaxResults(maxResults int64) *RoutersGetNatMappingInfoCall {
140553	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
140554	return c
140555}
140556
140557// OrderBy sets the optional parameter "orderBy": Sorts list results by
140558// a certain order. By default, results are returned in alphanumerical
140559// order based on the resource name. You can also sort results in
140560// descending order based on the creation timestamp using
140561// `orderBy="creationTimestamp desc". This sorts results based on the
140562// `creationTimestamp` field in reverse chronological order (newest
140563// result first). Use this to sort resources like operations so that the
140564// newest operation is returned first. Currently, only sorting by `name`
140565// or `creationTimestamp desc` is supported.
140566func (c *RoutersGetNatMappingInfoCall) OrderBy(orderBy string) *RoutersGetNatMappingInfoCall {
140567	c.urlParams_.Set("orderBy", orderBy)
140568	return c
140569}
140570
140571// PageToken sets the optional parameter "pageToken": Specifies a page
140572// token to use. Set `pageToken` to the `nextPageToken` returned by a
140573// previous list request to get the next page of results.
140574func (c *RoutersGetNatMappingInfoCall) PageToken(pageToken string) *RoutersGetNatMappingInfoCall {
140575	c.urlParams_.Set("pageToken", pageToken)
140576	return c
140577}
140578
140579// ReturnPartialSuccess sets the optional parameter
140580// "returnPartialSuccess": Opt-in for partial success behavior which
140581// provides partial results in case of failure. The default value is
140582// false.
140583func (c *RoutersGetNatMappingInfoCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutersGetNatMappingInfoCall {
140584	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
140585	return c
140586}
140587
140588// Fields allows partial responses to be retrieved. See
140589// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140590// for more information.
140591func (c *RoutersGetNatMappingInfoCall) Fields(s ...googleapi.Field) *RoutersGetNatMappingInfoCall {
140592	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140593	return c
140594}
140595
140596// IfNoneMatch sets the optional parameter which makes the operation
140597// fail if the object's ETag matches the given value. This is useful for
140598// getting updates only after the object has changed since the last
140599// request. Use googleapi.IsNotModified to check whether the response
140600// error from Do is the result of In-None-Match.
140601func (c *RoutersGetNatMappingInfoCall) IfNoneMatch(entityTag string) *RoutersGetNatMappingInfoCall {
140602	c.ifNoneMatch_ = entityTag
140603	return c
140604}
140605
140606// Context sets the context to be used in this call's Do method. Any
140607// pending HTTP request will be aborted if the provided context is
140608// canceled.
140609func (c *RoutersGetNatMappingInfoCall) Context(ctx context.Context) *RoutersGetNatMappingInfoCall {
140610	c.ctx_ = ctx
140611	return c
140612}
140613
140614// Header returns an http.Header that can be modified by the caller to
140615// add HTTP headers to the request.
140616func (c *RoutersGetNatMappingInfoCall) Header() http.Header {
140617	if c.header_ == nil {
140618		c.header_ = make(http.Header)
140619	}
140620	return c.header_
140621}
140622
140623func (c *RoutersGetNatMappingInfoCall) doRequest(alt string) (*http.Response, error) {
140624	reqHeaders := make(http.Header)
140625	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
140626	for k, v := range c.header_ {
140627		reqHeaders[k] = v
140628	}
140629	reqHeaders.Set("User-Agent", c.s.userAgent())
140630	if c.ifNoneMatch_ != "" {
140631		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
140632	}
140633	var body io.Reader = nil
140634	c.urlParams_.Set("alt", alt)
140635	c.urlParams_.Set("prettyPrint", "false")
140636	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo")
140637	urls += "?" + c.urlParams_.Encode()
140638	req, err := http.NewRequest("GET", urls, body)
140639	if err != nil {
140640		return nil, err
140641	}
140642	req.Header = reqHeaders
140643	googleapi.Expand(req.URL, map[string]string{
140644		"project": c.project,
140645		"region":  c.region,
140646		"router":  c.router,
140647	})
140648	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140649}
140650
140651// Do executes the "compute.routers.getNatMappingInfo" call.
140652// Exactly one of *VmEndpointNatMappingsList or error will be non-nil.
140653// Any non-2xx status code is an error. Response headers are in either
140654// *VmEndpointNatMappingsList.ServerResponse.Header or (if a response
140655// was returned at all) in error.(*googleapi.Error).Header. Use
140656// googleapi.IsNotModified to check whether the returned error was
140657// because http.StatusNotModified was returned.
140658func (c *RoutersGetNatMappingInfoCall) Do(opts ...googleapi.CallOption) (*VmEndpointNatMappingsList, error) {
140659	gensupport.SetOptions(c.urlParams_, opts...)
140660	res, err := c.doRequest("json")
140661	if res != nil && res.StatusCode == http.StatusNotModified {
140662		if res.Body != nil {
140663			res.Body.Close()
140664		}
140665		return nil, &googleapi.Error{
140666			Code:   res.StatusCode,
140667			Header: res.Header,
140668		}
140669	}
140670	if err != nil {
140671		return nil, err
140672	}
140673	defer googleapi.CloseBody(res)
140674	if err := googleapi.CheckResponse(res); err != nil {
140675		return nil, err
140676	}
140677	ret := &VmEndpointNatMappingsList{
140678		ServerResponse: googleapi.ServerResponse{
140679			Header:         res.Header,
140680			HTTPStatusCode: res.StatusCode,
140681		},
140682	}
140683	target := &ret
140684	if err := gensupport.DecodeResponse(target, res); err != nil {
140685		return nil, err
140686	}
140687	return ret, nil
140688	// {
140689	//   "description": "Retrieves runtime Nat mapping information of VM endpoints.",
140690	//   "flatPath": "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo",
140691	//   "httpMethod": "GET",
140692	//   "id": "compute.routers.getNatMappingInfo",
140693	//   "parameterOrder": [
140694	//     "project",
140695	//     "region",
140696	//     "router"
140697	//   ],
140698	//   "parameters": {
140699	//     "filter": {
140700	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
140701	//       "location": "query",
140702	//       "type": "string"
140703	//     },
140704	//     "maxResults": {
140705	//       "default": "500",
140706	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
140707	//       "format": "uint32",
140708	//       "location": "query",
140709	//       "minimum": "0",
140710	//       "type": "integer"
140711	//     },
140712	//     "orderBy": {
140713	//       "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.",
140714	//       "location": "query",
140715	//       "type": "string"
140716	//     },
140717	//     "pageToken": {
140718	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
140719	//       "location": "query",
140720	//       "type": "string"
140721	//     },
140722	//     "project": {
140723	//       "description": "Project ID for this request.",
140724	//       "location": "path",
140725	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140726	//       "required": true,
140727	//       "type": "string"
140728	//     },
140729	//     "region": {
140730	//       "description": "Name of the region for this request.",
140731	//       "location": "path",
140732	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140733	//       "required": true,
140734	//       "type": "string"
140735	//     },
140736	//     "returnPartialSuccess": {
140737	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
140738	//       "location": "query",
140739	//       "type": "boolean"
140740	//     },
140741	//     "router": {
140742	//       "description": "Name of the Router resource to query for Nat Mapping information of VM endpoints.",
140743	//       "location": "path",
140744	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140745	//       "required": true,
140746	//       "type": "string"
140747	//     }
140748	//   },
140749	//   "path": "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo",
140750	//   "response": {
140751	//     "$ref": "VmEndpointNatMappingsList"
140752	//   },
140753	//   "scopes": [
140754	//     "https://www.googleapis.com/auth/cloud-platform",
140755	//     "https://www.googleapis.com/auth/compute",
140756	//     "https://www.googleapis.com/auth/compute.readonly"
140757	//   ]
140758	// }
140759
140760}
140761
140762// Pages invokes f for each page of results.
140763// A non-nil error returned from f will halt the iteration.
140764// The provided context supersedes any context provided to the Context method.
140765func (c *RoutersGetNatMappingInfoCall) Pages(ctx context.Context, f func(*VmEndpointNatMappingsList) error) error {
140766	c.ctx_ = ctx
140767	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
140768	for {
140769		x, err := c.Do()
140770		if err != nil {
140771			return err
140772		}
140773		if err := f(x); err != nil {
140774			return err
140775		}
140776		if x.NextPageToken == "" {
140777			return nil
140778		}
140779		c.PageToken(x.NextPageToken)
140780	}
140781}
140782
140783// method id "compute.routers.getRouterStatus":
140784
140785type RoutersGetRouterStatusCall struct {
140786	s            *Service
140787	project      string
140788	region       string
140789	router       string
140790	urlParams_   gensupport.URLParams
140791	ifNoneMatch_ string
140792	ctx_         context.Context
140793	header_      http.Header
140794}
140795
140796// GetRouterStatus: Retrieves runtime information of the specified
140797// router.
140798//
140799// - project: Project ID for this request.
140800// - region: Name of the region for this request.
140801// - router: Name of the Router resource to query.
140802func (r *RoutersService) GetRouterStatus(project string, region string, router string) *RoutersGetRouterStatusCall {
140803	c := &RoutersGetRouterStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140804	c.project = project
140805	c.region = region
140806	c.router = router
140807	return c
140808}
140809
140810// Fields allows partial responses to be retrieved. See
140811// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140812// for more information.
140813func (c *RoutersGetRouterStatusCall) Fields(s ...googleapi.Field) *RoutersGetRouterStatusCall {
140814	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140815	return c
140816}
140817
140818// IfNoneMatch sets the optional parameter which makes the operation
140819// fail if the object's ETag matches the given value. This is useful for
140820// getting updates only after the object has changed since the last
140821// request. Use googleapi.IsNotModified to check whether the response
140822// error from Do is the result of In-None-Match.
140823func (c *RoutersGetRouterStatusCall) IfNoneMatch(entityTag string) *RoutersGetRouterStatusCall {
140824	c.ifNoneMatch_ = entityTag
140825	return c
140826}
140827
140828// Context sets the context to be used in this call's Do method. Any
140829// pending HTTP request will be aborted if the provided context is
140830// canceled.
140831func (c *RoutersGetRouterStatusCall) Context(ctx context.Context) *RoutersGetRouterStatusCall {
140832	c.ctx_ = ctx
140833	return c
140834}
140835
140836// Header returns an http.Header that can be modified by the caller to
140837// add HTTP headers to the request.
140838func (c *RoutersGetRouterStatusCall) Header() http.Header {
140839	if c.header_ == nil {
140840		c.header_ = make(http.Header)
140841	}
140842	return c.header_
140843}
140844
140845func (c *RoutersGetRouterStatusCall) doRequest(alt string) (*http.Response, error) {
140846	reqHeaders := make(http.Header)
140847	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
140848	for k, v := range c.header_ {
140849		reqHeaders[k] = v
140850	}
140851	reqHeaders.Set("User-Agent", c.s.userAgent())
140852	if c.ifNoneMatch_ != "" {
140853		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
140854	}
140855	var body io.Reader = nil
140856	c.urlParams_.Set("alt", alt)
140857	c.urlParams_.Set("prettyPrint", "false")
140858	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/getRouterStatus")
140859	urls += "?" + c.urlParams_.Encode()
140860	req, err := http.NewRequest("GET", urls, body)
140861	if err != nil {
140862		return nil, err
140863	}
140864	req.Header = reqHeaders
140865	googleapi.Expand(req.URL, map[string]string{
140866		"project": c.project,
140867		"region":  c.region,
140868		"router":  c.router,
140869	})
140870	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140871}
140872
140873// Do executes the "compute.routers.getRouterStatus" call.
140874// Exactly one of *RouterStatusResponse or error will be non-nil. Any
140875// non-2xx status code is an error. Response headers are in either
140876// *RouterStatusResponse.ServerResponse.Header or (if a response was
140877// returned at all) in error.(*googleapi.Error).Header. Use
140878// googleapi.IsNotModified to check whether the returned error was
140879// because http.StatusNotModified was returned.
140880func (c *RoutersGetRouterStatusCall) Do(opts ...googleapi.CallOption) (*RouterStatusResponse, error) {
140881	gensupport.SetOptions(c.urlParams_, opts...)
140882	res, err := c.doRequest("json")
140883	if res != nil && res.StatusCode == http.StatusNotModified {
140884		if res.Body != nil {
140885			res.Body.Close()
140886		}
140887		return nil, &googleapi.Error{
140888			Code:   res.StatusCode,
140889			Header: res.Header,
140890		}
140891	}
140892	if err != nil {
140893		return nil, err
140894	}
140895	defer googleapi.CloseBody(res)
140896	if err := googleapi.CheckResponse(res); err != nil {
140897		return nil, err
140898	}
140899	ret := &RouterStatusResponse{
140900		ServerResponse: googleapi.ServerResponse{
140901			Header:         res.Header,
140902			HTTPStatusCode: res.StatusCode,
140903		},
140904	}
140905	target := &ret
140906	if err := gensupport.DecodeResponse(target, res); err != nil {
140907		return nil, err
140908	}
140909	return ret, nil
140910	// {
140911	//   "description": "Retrieves runtime information of the specified router.",
140912	//   "flatPath": "projects/{project}/regions/{region}/routers/{router}/getRouterStatus",
140913	//   "httpMethod": "GET",
140914	//   "id": "compute.routers.getRouterStatus",
140915	//   "parameterOrder": [
140916	//     "project",
140917	//     "region",
140918	//     "router"
140919	//   ],
140920	//   "parameters": {
140921	//     "project": {
140922	//       "description": "Project ID for this request.",
140923	//       "location": "path",
140924	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140925	//       "required": true,
140926	//       "type": "string"
140927	//     },
140928	//     "region": {
140929	//       "description": "Name of the region for this request.",
140930	//       "location": "path",
140931	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
140932	//       "required": true,
140933	//       "type": "string"
140934	//     },
140935	//     "router": {
140936	//       "description": "Name of the Router resource to query.",
140937	//       "location": "path",
140938	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140939	//       "required": true,
140940	//       "type": "string"
140941	//     }
140942	//   },
140943	//   "path": "projects/{project}/regions/{region}/routers/{router}/getRouterStatus",
140944	//   "response": {
140945	//     "$ref": "RouterStatusResponse"
140946	//   },
140947	//   "scopes": [
140948	//     "https://www.googleapis.com/auth/cloud-platform",
140949	//     "https://www.googleapis.com/auth/compute",
140950	//     "https://www.googleapis.com/auth/compute.readonly"
140951	//   ]
140952	// }
140953
140954}
140955
140956// method id "compute.routers.insert":
140957
140958type RoutersInsertCall struct {
140959	s          *Service
140960	project    string
140961	region     string
140962	router     *Router
140963	urlParams_ gensupport.URLParams
140964	ctx_       context.Context
140965	header_    http.Header
140966}
140967
140968// Insert: Creates a Router resource in the specified project and region
140969// using the data included in the request.
140970//
140971// - project: Project ID for this request.
140972// - region: Name of the region for this request.
140973func (r *RoutersService) Insert(project string, region string, router *Router) *RoutersInsertCall {
140974	c := &RoutersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140975	c.project = project
140976	c.region = region
140977	c.router = router
140978	return c
140979}
140980
140981// RequestId sets the optional parameter "requestId": An optional
140982// request ID to identify requests. Specify a unique request ID so that
140983// if you must retry your request, the server will know to ignore the
140984// request if it has already been completed. For example, consider a
140985// situation where you make an initial request and the request times
140986// out. If you make the request again with the same request ID, the
140987// server can check if original operation with the same request ID was
140988// received, and if so, will ignore the second request. This prevents
140989// clients from accidentally creating duplicate commitments. The request
140990// ID must be a valid UUID with the exception that zero UUID is not
140991// supported ( 00000000-0000-0000-0000-000000000000).
140992func (c *RoutersInsertCall) RequestId(requestId string) *RoutersInsertCall {
140993	c.urlParams_.Set("requestId", requestId)
140994	return c
140995}
140996
140997// Fields allows partial responses to be retrieved. See
140998// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140999// for more information.
141000func (c *RoutersInsertCall) Fields(s ...googleapi.Field) *RoutersInsertCall {
141001	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141002	return c
141003}
141004
141005// Context sets the context to be used in this call's Do method. Any
141006// pending HTTP request will be aborted if the provided context is
141007// canceled.
141008func (c *RoutersInsertCall) Context(ctx context.Context) *RoutersInsertCall {
141009	c.ctx_ = ctx
141010	return c
141011}
141012
141013// Header returns an http.Header that can be modified by the caller to
141014// add HTTP headers to the request.
141015func (c *RoutersInsertCall) Header() http.Header {
141016	if c.header_ == nil {
141017		c.header_ = make(http.Header)
141018	}
141019	return c.header_
141020}
141021
141022func (c *RoutersInsertCall) doRequest(alt string) (*http.Response, error) {
141023	reqHeaders := make(http.Header)
141024	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
141025	for k, v := range c.header_ {
141026		reqHeaders[k] = v
141027	}
141028	reqHeaders.Set("User-Agent", c.s.userAgent())
141029	var body io.Reader = nil
141030	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router)
141031	if err != nil {
141032		return nil, err
141033	}
141034	reqHeaders.Set("Content-Type", "application/json")
141035	c.urlParams_.Set("alt", alt)
141036	c.urlParams_.Set("prettyPrint", "false")
141037	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers")
141038	urls += "?" + c.urlParams_.Encode()
141039	req, err := http.NewRequest("POST", urls, body)
141040	if err != nil {
141041		return nil, err
141042	}
141043	req.Header = reqHeaders
141044	googleapi.Expand(req.URL, map[string]string{
141045		"project": c.project,
141046		"region":  c.region,
141047	})
141048	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141049}
141050
141051// Do executes the "compute.routers.insert" call.
141052// Exactly one of *Operation or error will be non-nil. Any non-2xx
141053// status code is an error. Response headers are in either
141054// *Operation.ServerResponse.Header or (if a response was returned at
141055// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141056// to check whether the returned error was because
141057// http.StatusNotModified was returned.
141058func (c *RoutersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
141059	gensupport.SetOptions(c.urlParams_, opts...)
141060	res, err := c.doRequest("json")
141061	if res != nil && res.StatusCode == http.StatusNotModified {
141062		if res.Body != nil {
141063			res.Body.Close()
141064		}
141065		return nil, &googleapi.Error{
141066			Code:   res.StatusCode,
141067			Header: res.Header,
141068		}
141069	}
141070	if err != nil {
141071		return nil, err
141072	}
141073	defer googleapi.CloseBody(res)
141074	if err := googleapi.CheckResponse(res); err != nil {
141075		return nil, err
141076	}
141077	ret := &Operation{
141078		ServerResponse: googleapi.ServerResponse{
141079			Header:         res.Header,
141080			HTTPStatusCode: res.StatusCode,
141081		},
141082	}
141083	target := &ret
141084	if err := gensupport.DecodeResponse(target, res); err != nil {
141085		return nil, err
141086	}
141087	return ret, nil
141088	// {
141089	//   "description": "Creates a Router resource in the specified project and region using the data included in the request.",
141090	//   "flatPath": "projects/{project}/regions/{region}/routers",
141091	//   "httpMethod": "POST",
141092	//   "id": "compute.routers.insert",
141093	//   "parameterOrder": [
141094	//     "project",
141095	//     "region"
141096	//   ],
141097	//   "parameters": {
141098	//     "project": {
141099	//       "description": "Project ID for this request.",
141100	//       "location": "path",
141101	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141102	//       "required": true,
141103	//       "type": "string"
141104	//     },
141105	//     "region": {
141106	//       "description": "Name of the region for this request.",
141107	//       "location": "path",
141108	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141109	//       "required": true,
141110	//       "type": "string"
141111	//     },
141112	//     "requestId": {
141113	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
141114	//       "location": "query",
141115	//       "type": "string"
141116	//     }
141117	//   },
141118	//   "path": "projects/{project}/regions/{region}/routers",
141119	//   "request": {
141120	//     "$ref": "Router"
141121	//   },
141122	//   "response": {
141123	//     "$ref": "Operation"
141124	//   },
141125	//   "scopes": [
141126	//     "https://www.googleapis.com/auth/cloud-platform",
141127	//     "https://www.googleapis.com/auth/compute"
141128	//   ]
141129	// }
141130
141131}
141132
141133// method id "compute.routers.list":
141134
141135type RoutersListCall struct {
141136	s            *Service
141137	project      string
141138	region       string
141139	urlParams_   gensupport.URLParams
141140	ifNoneMatch_ string
141141	ctx_         context.Context
141142	header_      http.Header
141143}
141144
141145// List: Retrieves a list of Router resources available to the specified
141146// project.
141147//
141148// - project: Project ID for this request.
141149// - region: Name of the region for this request.
141150func (r *RoutersService) List(project string, region string) *RoutersListCall {
141151	c := &RoutersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141152	c.project = project
141153	c.region = region
141154	return c
141155}
141156
141157// Filter sets the optional parameter "filter": A filter expression that
141158// filters resources listed in the response. The expression must specify
141159// the field name, a comparison operator, and the value that you want to
141160// use for filtering. The value must be a string, a number, or a
141161// boolean. The comparison operator must be either `=`, `!=`, `>`, or
141162// `<`. For example, if you are filtering Compute Engine instances, you
141163// can exclude instances named `example-instance` by specifying `name !=
141164// example-instance`. You can also filter nested fields. For example,
141165// you could specify `scheduling.automaticRestart = false` to include
141166// instances only if they are not scheduled for automatic restarts. You
141167// can use filtering on nested fields to filter based on resource
141168// labels. To filter on multiple expressions, provide each separate
141169// expression within parentheses. For example: ```
141170// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
141171// ``` By default, each expression is an `AND` expression. However, you
141172// can include `AND` and `OR` expressions explicitly. For example: ```
141173// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
141174// AND (scheduling.automaticRestart = true) ```
141175func (c *RoutersListCall) Filter(filter string) *RoutersListCall {
141176	c.urlParams_.Set("filter", filter)
141177	return c
141178}
141179
141180// MaxResults sets the optional parameter "maxResults": The maximum
141181// number of results per page that should be returned. If the number of
141182// available results is larger than `maxResults`, Compute Engine returns
141183// a `nextPageToken` that can be used to get the next page of results in
141184// subsequent list requests. Acceptable values are `0` to `500`,
141185// inclusive. (Default: `500`)
141186func (c *RoutersListCall) MaxResults(maxResults int64) *RoutersListCall {
141187	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
141188	return c
141189}
141190
141191// OrderBy sets the optional parameter "orderBy": Sorts list results by
141192// a certain order. By default, results are returned in alphanumerical
141193// order based on the resource name. You can also sort results in
141194// descending order based on the creation timestamp using
141195// `orderBy="creationTimestamp desc". This sorts results based on the
141196// `creationTimestamp` field in reverse chronological order (newest
141197// result first). Use this to sort resources like operations so that the
141198// newest operation is returned first. Currently, only sorting by `name`
141199// or `creationTimestamp desc` is supported.
141200func (c *RoutersListCall) OrderBy(orderBy string) *RoutersListCall {
141201	c.urlParams_.Set("orderBy", orderBy)
141202	return c
141203}
141204
141205// PageToken sets the optional parameter "pageToken": Specifies a page
141206// token to use. Set `pageToken` to the `nextPageToken` returned by a
141207// previous list request to get the next page of results.
141208func (c *RoutersListCall) PageToken(pageToken string) *RoutersListCall {
141209	c.urlParams_.Set("pageToken", pageToken)
141210	return c
141211}
141212
141213// ReturnPartialSuccess sets the optional parameter
141214// "returnPartialSuccess": Opt-in for partial success behavior which
141215// provides partial results in case of failure. The default value is
141216// false.
141217func (c *RoutersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutersListCall {
141218	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
141219	return c
141220}
141221
141222// Fields allows partial responses to be retrieved. See
141223// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141224// for more information.
141225func (c *RoutersListCall) Fields(s ...googleapi.Field) *RoutersListCall {
141226	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141227	return c
141228}
141229
141230// IfNoneMatch sets the optional parameter which makes the operation
141231// fail if the object's ETag matches the given value. This is useful for
141232// getting updates only after the object has changed since the last
141233// request. Use googleapi.IsNotModified to check whether the response
141234// error from Do is the result of In-None-Match.
141235func (c *RoutersListCall) IfNoneMatch(entityTag string) *RoutersListCall {
141236	c.ifNoneMatch_ = entityTag
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 *RoutersListCall) Context(ctx context.Context) *RoutersListCall {
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 *RoutersListCall) Header() http.Header {
141251	if c.header_ == nil {
141252		c.header_ = make(http.Header)
141253	}
141254	return c.header_
141255}
141256
141257func (c *RoutersListCall) doRequest(alt string) (*http.Response, error) {
141258	reqHeaders := make(http.Header)
141259	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
141260	for k, v := range c.header_ {
141261		reqHeaders[k] = v
141262	}
141263	reqHeaders.Set("User-Agent", c.s.userAgent())
141264	if c.ifNoneMatch_ != "" {
141265		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
141266	}
141267	var body io.Reader = nil
141268	c.urlParams_.Set("alt", alt)
141269	c.urlParams_.Set("prettyPrint", "false")
141270	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers")
141271	urls += "?" + c.urlParams_.Encode()
141272	req, err := http.NewRequest("GET", urls, body)
141273	if err != nil {
141274		return nil, err
141275	}
141276	req.Header = reqHeaders
141277	googleapi.Expand(req.URL, map[string]string{
141278		"project": c.project,
141279		"region":  c.region,
141280	})
141281	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141282}
141283
141284// Do executes the "compute.routers.list" call.
141285// Exactly one of *RouterList or error will be non-nil. Any non-2xx
141286// status code is an error. Response headers are in either
141287// *RouterList.ServerResponse.Header or (if a response was returned at
141288// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141289// to check whether the returned error was because
141290// http.StatusNotModified was returned.
141291func (c *RoutersListCall) Do(opts ...googleapi.CallOption) (*RouterList, error) {
141292	gensupport.SetOptions(c.urlParams_, opts...)
141293	res, err := c.doRequest("json")
141294	if res != nil && res.StatusCode == http.StatusNotModified {
141295		if res.Body != nil {
141296			res.Body.Close()
141297		}
141298		return nil, &googleapi.Error{
141299			Code:   res.StatusCode,
141300			Header: res.Header,
141301		}
141302	}
141303	if err != nil {
141304		return nil, err
141305	}
141306	defer googleapi.CloseBody(res)
141307	if err := googleapi.CheckResponse(res); err != nil {
141308		return nil, err
141309	}
141310	ret := &RouterList{
141311		ServerResponse: googleapi.ServerResponse{
141312			Header:         res.Header,
141313			HTTPStatusCode: res.StatusCode,
141314		},
141315	}
141316	target := &ret
141317	if err := gensupport.DecodeResponse(target, res); err != nil {
141318		return nil, err
141319	}
141320	return ret, nil
141321	// {
141322	//   "description": "Retrieves a list of Router resources available to the specified project.",
141323	//   "flatPath": "projects/{project}/regions/{region}/routers",
141324	//   "httpMethod": "GET",
141325	//   "id": "compute.routers.list",
141326	//   "parameterOrder": [
141327	//     "project",
141328	//     "region"
141329	//   ],
141330	//   "parameters": {
141331	//     "filter": {
141332	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
141333	//       "location": "query",
141334	//       "type": "string"
141335	//     },
141336	//     "maxResults": {
141337	//       "default": "500",
141338	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
141339	//       "format": "uint32",
141340	//       "location": "query",
141341	//       "minimum": "0",
141342	//       "type": "integer"
141343	//     },
141344	//     "orderBy": {
141345	//       "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.",
141346	//       "location": "query",
141347	//       "type": "string"
141348	//     },
141349	//     "pageToken": {
141350	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
141351	//       "location": "query",
141352	//       "type": "string"
141353	//     },
141354	//     "project": {
141355	//       "description": "Project ID for this request.",
141356	//       "location": "path",
141357	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141358	//       "required": true,
141359	//       "type": "string"
141360	//     },
141361	//     "region": {
141362	//       "description": "Name of the region for this request.",
141363	//       "location": "path",
141364	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141365	//       "required": true,
141366	//       "type": "string"
141367	//     },
141368	//     "returnPartialSuccess": {
141369	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
141370	//       "location": "query",
141371	//       "type": "boolean"
141372	//     }
141373	//   },
141374	//   "path": "projects/{project}/regions/{region}/routers",
141375	//   "response": {
141376	//     "$ref": "RouterList"
141377	//   },
141378	//   "scopes": [
141379	//     "https://www.googleapis.com/auth/cloud-platform",
141380	//     "https://www.googleapis.com/auth/compute",
141381	//     "https://www.googleapis.com/auth/compute.readonly"
141382	//   ]
141383	// }
141384
141385}
141386
141387// Pages invokes f for each page of results.
141388// A non-nil error returned from f will halt the iteration.
141389// The provided context supersedes any context provided to the Context method.
141390func (c *RoutersListCall) Pages(ctx context.Context, f func(*RouterList) error) error {
141391	c.ctx_ = ctx
141392	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
141393	for {
141394		x, err := c.Do()
141395		if err != nil {
141396			return err
141397		}
141398		if err := f(x); err != nil {
141399			return err
141400		}
141401		if x.NextPageToken == "" {
141402			return nil
141403		}
141404		c.PageToken(x.NextPageToken)
141405	}
141406}
141407
141408// method id "compute.routers.patch":
141409
141410type RoutersPatchCall struct {
141411	s          *Service
141412	project    string
141413	region     string
141414	router     string
141415	router2    *Router
141416	urlParams_ gensupport.URLParams
141417	ctx_       context.Context
141418	header_    http.Header
141419}
141420
141421// Patch: Patches the specified Router resource with the data included
141422// in the request. This method supports PATCH semantics and uses JSON
141423// merge patch format and processing rules.
141424//
141425// - project: Project ID for this request.
141426// - region: Name of the region for this request.
141427// - router: Name of the Router resource to patch.
141428func (r *RoutersService) Patch(project string, region string, router string, router2 *Router) *RoutersPatchCall {
141429	c := &RoutersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141430	c.project = project
141431	c.region = region
141432	c.router = router
141433	c.router2 = router2
141434	return c
141435}
141436
141437// RequestId sets the optional parameter "requestId": An optional
141438// request ID to identify requests. Specify a unique request ID so that
141439// if you must retry your request, the server will know to ignore the
141440// request if it has already been completed. For example, consider a
141441// situation where you make an initial request and the request times
141442// out. If you make the request again with the same request ID, the
141443// server can check if original operation with the same request ID was
141444// received, and if so, will ignore the second request. This prevents
141445// clients from accidentally creating duplicate commitments. The request
141446// ID must be a valid UUID with the exception that zero UUID is not
141447// supported ( 00000000-0000-0000-0000-000000000000).
141448func (c *RoutersPatchCall) RequestId(requestId string) *RoutersPatchCall {
141449	c.urlParams_.Set("requestId", requestId)
141450	return c
141451}
141452
141453// Fields allows partial responses to be retrieved. See
141454// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141455// for more information.
141456func (c *RoutersPatchCall) Fields(s ...googleapi.Field) *RoutersPatchCall {
141457	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141458	return c
141459}
141460
141461// Context sets the context to be used in this call's Do method. Any
141462// pending HTTP request will be aborted if the provided context is
141463// canceled.
141464func (c *RoutersPatchCall) Context(ctx context.Context) *RoutersPatchCall {
141465	c.ctx_ = ctx
141466	return c
141467}
141468
141469// Header returns an http.Header that can be modified by the caller to
141470// add HTTP headers to the request.
141471func (c *RoutersPatchCall) Header() http.Header {
141472	if c.header_ == nil {
141473		c.header_ = make(http.Header)
141474	}
141475	return c.header_
141476}
141477
141478func (c *RoutersPatchCall) doRequest(alt string) (*http.Response, error) {
141479	reqHeaders := make(http.Header)
141480	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
141481	for k, v := range c.header_ {
141482		reqHeaders[k] = v
141483	}
141484	reqHeaders.Set("User-Agent", c.s.userAgent())
141485	var body io.Reader = nil
141486	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
141487	if err != nil {
141488		return nil, err
141489	}
141490	reqHeaders.Set("Content-Type", "application/json")
141491	c.urlParams_.Set("alt", alt)
141492	c.urlParams_.Set("prettyPrint", "false")
141493	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}")
141494	urls += "?" + c.urlParams_.Encode()
141495	req, err := http.NewRequest("PATCH", urls, body)
141496	if err != nil {
141497		return nil, err
141498	}
141499	req.Header = reqHeaders
141500	googleapi.Expand(req.URL, map[string]string{
141501		"project": c.project,
141502		"region":  c.region,
141503		"router":  c.router,
141504	})
141505	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141506}
141507
141508// Do executes the "compute.routers.patch" call.
141509// Exactly one of *Operation or error will be non-nil. Any non-2xx
141510// status code is an error. Response headers are in either
141511// *Operation.ServerResponse.Header or (if a response was returned at
141512// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141513// to check whether the returned error was because
141514// http.StatusNotModified was returned.
141515func (c *RoutersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
141516	gensupport.SetOptions(c.urlParams_, opts...)
141517	res, err := c.doRequest("json")
141518	if res != nil && res.StatusCode == http.StatusNotModified {
141519		if res.Body != nil {
141520			res.Body.Close()
141521		}
141522		return nil, &googleapi.Error{
141523			Code:   res.StatusCode,
141524			Header: res.Header,
141525		}
141526	}
141527	if err != nil {
141528		return nil, err
141529	}
141530	defer googleapi.CloseBody(res)
141531	if err := googleapi.CheckResponse(res); err != nil {
141532		return nil, err
141533	}
141534	ret := &Operation{
141535		ServerResponse: googleapi.ServerResponse{
141536			Header:         res.Header,
141537			HTTPStatusCode: res.StatusCode,
141538		},
141539	}
141540	target := &ret
141541	if err := gensupport.DecodeResponse(target, res); err != nil {
141542		return nil, err
141543	}
141544	return ret, nil
141545	// {
141546	//   "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.",
141547	//   "flatPath": "projects/{project}/regions/{region}/routers/{router}",
141548	//   "httpMethod": "PATCH",
141549	//   "id": "compute.routers.patch",
141550	//   "parameterOrder": [
141551	//     "project",
141552	//     "region",
141553	//     "router"
141554	//   ],
141555	//   "parameters": {
141556	//     "project": {
141557	//       "description": "Project ID for this request.",
141558	//       "location": "path",
141559	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141560	//       "required": true,
141561	//       "type": "string"
141562	//     },
141563	//     "region": {
141564	//       "description": "Name of the region for this request.",
141565	//       "location": "path",
141566	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141567	//       "required": true,
141568	//       "type": "string"
141569	//     },
141570	//     "requestId": {
141571	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
141572	//       "location": "query",
141573	//       "type": "string"
141574	//     },
141575	//     "router": {
141576	//       "description": "Name of the Router resource to patch.",
141577	//       "location": "path",
141578	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141579	//       "required": true,
141580	//       "type": "string"
141581	//     }
141582	//   },
141583	//   "path": "projects/{project}/regions/{region}/routers/{router}",
141584	//   "request": {
141585	//     "$ref": "Router"
141586	//   },
141587	//   "response": {
141588	//     "$ref": "Operation"
141589	//   },
141590	//   "scopes": [
141591	//     "https://www.googleapis.com/auth/cloud-platform",
141592	//     "https://www.googleapis.com/auth/compute"
141593	//   ]
141594	// }
141595
141596}
141597
141598// method id "compute.routers.preview":
141599
141600type RoutersPreviewCall struct {
141601	s          *Service
141602	project    string
141603	region     string
141604	router     string
141605	router2    *Router
141606	urlParams_ gensupport.URLParams
141607	ctx_       context.Context
141608	header_    http.Header
141609}
141610
141611// Preview: Preview fields auto-generated during router create and
141612// update operations. Calling this method does NOT create or update the
141613// router.
141614//
141615// - project: Project ID for this request.
141616// - region: Name of the region for this request.
141617// - router: Name of the Router resource to query.
141618func (r *RoutersService) Preview(project string, region string, router string, router2 *Router) *RoutersPreviewCall {
141619	c := &RoutersPreviewCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141620	c.project = project
141621	c.region = region
141622	c.router = router
141623	c.router2 = router2
141624	return c
141625}
141626
141627// Fields allows partial responses to be retrieved. See
141628// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141629// for more information.
141630func (c *RoutersPreviewCall) Fields(s ...googleapi.Field) *RoutersPreviewCall {
141631	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141632	return c
141633}
141634
141635// Context sets the context to be used in this call's Do method. Any
141636// pending HTTP request will be aborted if the provided context is
141637// canceled.
141638func (c *RoutersPreviewCall) Context(ctx context.Context) *RoutersPreviewCall {
141639	c.ctx_ = ctx
141640	return c
141641}
141642
141643// Header returns an http.Header that can be modified by the caller to
141644// add HTTP headers to the request.
141645func (c *RoutersPreviewCall) Header() http.Header {
141646	if c.header_ == nil {
141647		c.header_ = make(http.Header)
141648	}
141649	return c.header_
141650}
141651
141652func (c *RoutersPreviewCall) doRequest(alt string) (*http.Response, error) {
141653	reqHeaders := make(http.Header)
141654	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
141655	for k, v := range c.header_ {
141656		reqHeaders[k] = v
141657	}
141658	reqHeaders.Set("User-Agent", c.s.userAgent())
141659	var body io.Reader = nil
141660	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
141661	if err != nil {
141662		return nil, err
141663	}
141664	reqHeaders.Set("Content-Type", "application/json")
141665	c.urlParams_.Set("alt", alt)
141666	c.urlParams_.Set("prettyPrint", "false")
141667	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/preview")
141668	urls += "?" + c.urlParams_.Encode()
141669	req, err := http.NewRequest("POST", urls, body)
141670	if err != nil {
141671		return nil, err
141672	}
141673	req.Header = reqHeaders
141674	googleapi.Expand(req.URL, map[string]string{
141675		"project": c.project,
141676		"region":  c.region,
141677		"router":  c.router,
141678	})
141679	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141680}
141681
141682// Do executes the "compute.routers.preview" call.
141683// Exactly one of *RoutersPreviewResponse or error will be non-nil. Any
141684// non-2xx status code is an error. Response headers are in either
141685// *RoutersPreviewResponse.ServerResponse.Header or (if a response was
141686// returned at all) in error.(*googleapi.Error).Header. Use
141687// googleapi.IsNotModified to check whether the returned error was
141688// because http.StatusNotModified was returned.
141689func (c *RoutersPreviewCall) Do(opts ...googleapi.CallOption) (*RoutersPreviewResponse, error) {
141690	gensupport.SetOptions(c.urlParams_, opts...)
141691	res, err := c.doRequest("json")
141692	if res != nil && res.StatusCode == http.StatusNotModified {
141693		if res.Body != nil {
141694			res.Body.Close()
141695		}
141696		return nil, &googleapi.Error{
141697			Code:   res.StatusCode,
141698			Header: res.Header,
141699		}
141700	}
141701	if err != nil {
141702		return nil, err
141703	}
141704	defer googleapi.CloseBody(res)
141705	if err := googleapi.CheckResponse(res); err != nil {
141706		return nil, err
141707	}
141708	ret := &RoutersPreviewResponse{
141709		ServerResponse: googleapi.ServerResponse{
141710			Header:         res.Header,
141711			HTTPStatusCode: res.StatusCode,
141712		},
141713	}
141714	target := &ret
141715	if err := gensupport.DecodeResponse(target, res); err != nil {
141716		return nil, err
141717	}
141718	return ret, nil
141719	// {
141720	//   "description": "Preview fields auto-generated during router create and update operations. Calling this method does NOT create or update the router.",
141721	//   "flatPath": "projects/{project}/regions/{region}/routers/{router}/preview",
141722	//   "httpMethod": "POST",
141723	//   "id": "compute.routers.preview",
141724	//   "parameterOrder": [
141725	//     "project",
141726	//     "region",
141727	//     "router"
141728	//   ],
141729	//   "parameters": {
141730	//     "project": {
141731	//       "description": "Project ID for this request.",
141732	//       "location": "path",
141733	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141734	//       "required": true,
141735	//       "type": "string"
141736	//     },
141737	//     "region": {
141738	//       "description": "Name of the region for this request.",
141739	//       "location": "path",
141740	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141741	//       "required": true,
141742	//       "type": "string"
141743	//     },
141744	//     "router": {
141745	//       "description": "Name of the Router resource to query.",
141746	//       "location": "path",
141747	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141748	//       "required": true,
141749	//       "type": "string"
141750	//     }
141751	//   },
141752	//   "path": "projects/{project}/regions/{region}/routers/{router}/preview",
141753	//   "request": {
141754	//     "$ref": "Router"
141755	//   },
141756	//   "response": {
141757	//     "$ref": "RoutersPreviewResponse"
141758	//   },
141759	//   "scopes": [
141760	//     "https://www.googleapis.com/auth/cloud-platform",
141761	//     "https://www.googleapis.com/auth/compute",
141762	//     "https://www.googleapis.com/auth/compute.readonly"
141763	//   ]
141764	// }
141765
141766}
141767
141768// method id "compute.routers.update":
141769
141770type RoutersUpdateCall struct {
141771	s          *Service
141772	project    string
141773	region     string
141774	router     string
141775	router2    *Router
141776	urlParams_ gensupport.URLParams
141777	ctx_       context.Context
141778	header_    http.Header
141779}
141780
141781// Update: Updates the specified Router resource with the data included
141782// in the request. This method conforms to PUT semantics, which requests
141783// that the state of the target resource be created or replaced with the
141784// state defined by the representation enclosed in the request message
141785// payload.
141786//
141787// - project: Project ID for this request.
141788// - region: Name of the region for this request.
141789// - router: Name of the Router resource to update.
141790func (r *RoutersService) Update(project string, region string, router string, router2 *Router) *RoutersUpdateCall {
141791	c := &RoutersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141792	c.project = project
141793	c.region = region
141794	c.router = router
141795	c.router2 = router2
141796	return c
141797}
141798
141799// RequestId sets the optional parameter "requestId": An optional
141800// request ID to identify requests. Specify a unique request ID so that
141801// if you must retry your request, the server will know to ignore the
141802// request if it has already been completed. For example, consider a
141803// situation where you make an initial request and the request times
141804// out. If you make the request again with the same request ID, the
141805// server can check if original operation with the same request ID was
141806// received, and if so, will ignore the second request. This prevents
141807// clients from accidentally creating duplicate commitments. The request
141808// ID must be a valid UUID with the exception that zero UUID is not
141809// supported ( 00000000-0000-0000-0000-000000000000).
141810func (c *RoutersUpdateCall) RequestId(requestId string) *RoutersUpdateCall {
141811	c.urlParams_.Set("requestId", requestId)
141812	return c
141813}
141814
141815// Fields allows partial responses to be retrieved. See
141816// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141817// for more information.
141818func (c *RoutersUpdateCall) Fields(s ...googleapi.Field) *RoutersUpdateCall {
141819	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141820	return c
141821}
141822
141823// Context sets the context to be used in this call's Do method. Any
141824// pending HTTP request will be aborted if the provided context is
141825// canceled.
141826func (c *RoutersUpdateCall) Context(ctx context.Context) *RoutersUpdateCall {
141827	c.ctx_ = ctx
141828	return c
141829}
141830
141831// Header returns an http.Header that can be modified by the caller to
141832// add HTTP headers to the request.
141833func (c *RoutersUpdateCall) Header() http.Header {
141834	if c.header_ == nil {
141835		c.header_ = make(http.Header)
141836	}
141837	return c.header_
141838}
141839
141840func (c *RoutersUpdateCall) doRequest(alt string) (*http.Response, error) {
141841	reqHeaders := make(http.Header)
141842	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
141843	for k, v := range c.header_ {
141844		reqHeaders[k] = v
141845	}
141846	reqHeaders.Set("User-Agent", c.s.userAgent())
141847	var body io.Reader = nil
141848	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
141849	if err != nil {
141850		return nil, err
141851	}
141852	reqHeaders.Set("Content-Type", "application/json")
141853	c.urlParams_.Set("alt", alt)
141854	c.urlParams_.Set("prettyPrint", "false")
141855	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}")
141856	urls += "?" + c.urlParams_.Encode()
141857	req, err := http.NewRequest("PUT", urls, body)
141858	if err != nil {
141859		return nil, err
141860	}
141861	req.Header = reqHeaders
141862	googleapi.Expand(req.URL, map[string]string{
141863		"project": c.project,
141864		"region":  c.region,
141865		"router":  c.router,
141866	})
141867	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141868}
141869
141870// Do executes the "compute.routers.update" call.
141871// Exactly one of *Operation or error will be non-nil. Any non-2xx
141872// status code is an error. Response headers are in either
141873// *Operation.ServerResponse.Header or (if a response was returned at
141874// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141875// to check whether the returned error was because
141876// http.StatusNotModified was returned.
141877func (c *RoutersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
141878	gensupport.SetOptions(c.urlParams_, opts...)
141879	res, err := c.doRequest("json")
141880	if res != nil && res.StatusCode == http.StatusNotModified {
141881		if res.Body != nil {
141882			res.Body.Close()
141883		}
141884		return nil, &googleapi.Error{
141885			Code:   res.StatusCode,
141886			Header: res.Header,
141887		}
141888	}
141889	if err != nil {
141890		return nil, err
141891	}
141892	defer googleapi.CloseBody(res)
141893	if err := googleapi.CheckResponse(res); err != nil {
141894		return nil, err
141895	}
141896	ret := &Operation{
141897		ServerResponse: googleapi.ServerResponse{
141898			Header:         res.Header,
141899			HTTPStatusCode: res.StatusCode,
141900		},
141901	}
141902	target := &ret
141903	if err := gensupport.DecodeResponse(target, res); err != nil {
141904		return nil, err
141905	}
141906	return ret, nil
141907	// {
141908	//   "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.",
141909	//   "flatPath": "projects/{project}/regions/{region}/routers/{router}",
141910	//   "httpMethod": "PUT",
141911	//   "id": "compute.routers.update",
141912	//   "parameterOrder": [
141913	//     "project",
141914	//     "region",
141915	//     "router"
141916	//   ],
141917	//   "parameters": {
141918	//     "project": {
141919	//       "description": "Project ID for this request.",
141920	//       "location": "path",
141921	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141922	//       "required": true,
141923	//       "type": "string"
141924	//     },
141925	//     "region": {
141926	//       "description": "Name of the region for this request.",
141927	//       "location": "path",
141928	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
141929	//       "required": true,
141930	//       "type": "string"
141931	//     },
141932	//     "requestId": {
141933	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
141934	//       "location": "query",
141935	//       "type": "string"
141936	//     },
141937	//     "router": {
141938	//       "description": "Name of the Router resource to update.",
141939	//       "location": "path",
141940	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141941	//       "required": true,
141942	//       "type": "string"
141943	//     }
141944	//   },
141945	//   "path": "projects/{project}/regions/{region}/routers/{router}",
141946	//   "request": {
141947	//     "$ref": "Router"
141948	//   },
141949	//   "response": {
141950	//     "$ref": "Operation"
141951	//   },
141952	//   "scopes": [
141953	//     "https://www.googleapis.com/auth/cloud-platform",
141954	//     "https://www.googleapis.com/auth/compute"
141955	//   ]
141956	// }
141957
141958}
141959
141960// method id "compute.routes.delete":
141961
141962type RoutesDeleteCall struct {
141963	s          *Service
141964	project    string
141965	route      string
141966	urlParams_ gensupport.URLParams
141967	ctx_       context.Context
141968	header_    http.Header
141969}
141970
141971// Delete: Deletes the specified Route resource.
141972//
141973// - project: Project ID for this request.
141974// - route: Name of the Route resource to delete.
141975func (r *RoutesService) Delete(project string, route string) *RoutesDeleteCall {
141976	c := &RoutesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141977	c.project = project
141978	c.route = route
141979	return c
141980}
141981
141982// RequestId sets the optional parameter "requestId": An optional
141983// request ID to identify requests. Specify a unique request ID so that
141984// if you must retry your request, the server will know to ignore the
141985// request if it has already been completed. For example, consider a
141986// situation where you make an initial request and the request times
141987// out. If you make the request again with the same request ID, the
141988// server can check if original operation with the same request ID was
141989// received, and if so, will ignore the second request. This prevents
141990// clients from accidentally creating duplicate commitments. The request
141991// ID must be a valid UUID with the exception that zero UUID is not
141992// supported ( 00000000-0000-0000-0000-000000000000).
141993func (c *RoutesDeleteCall) RequestId(requestId string) *RoutesDeleteCall {
141994	c.urlParams_.Set("requestId", requestId)
141995	return c
141996}
141997
141998// Fields allows partial responses to be retrieved. See
141999// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142000// for more information.
142001func (c *RoutesDeleteCall) Fields(s ...googleapi.Field) *RoutesDeleteCall {
142002	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142003	return c
142004}
142005
142006// Context sets the context to be used in this call's Do method. Any
142007// pending HTTP request will be aborted if the provided context is
142008// canceled.
142009func (c *RoutesDeleteCall) Context(ctx context.Context) *RoutesDeleteCall {
142010	c.ctx_ = ctx
142011	return c
142012}
142013
142014// Header returns an http.Header that can be modified by the caller to
142015// add HTTP headers to the request.
142016func (c *RoutesDeleteCall) Header() http.Header {
142017	if c.header_ == nil {
142018		c.header_ = make(http.Header)
142019	}
142020	return c.header_
142021}
142022
142023func (c *RoutesDeleteCall) doRequest(alt string) (*http.Response, error) {
142024	reqHeaders := make(http.Header)
142025	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
142026	for k, v := range c.header_ {
142027		reqHeaders[k] = v
142028	}
142029	reqHeaders.Set("User-Agent", c.s.userAgent())
142030	var body io.Reader = nil
142031	c.urlParams_.Set("alt", alt)
142032	c.urlParams_.Set("prettyPrint", "false")
142033	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes/{route}")
142034	urls += "?" + c.urlParams_.Encode()
142035	req, err := http.NewRequest("DELETE", urls, body)
142036	if err != nil {
142037		return nil, err
142038	}
142039	req.Header = reqHeaders
142040	googleapi.Expand(req.URL, map[string]string{
142041		"project": c.project,
142042		"route":   c.route,
142043	})
142044	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142045}
142046
142047// Do executes the "compute.routes.delete" call.
142048// Exactly one of *Operation or error will be non-nil. Any non-2xx
142049// status code is an error. Response headers are in either
142050// *Operation.ServerResponse.Header or (if a response was returned at
142051// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
142052// to check whether the returned error was because
142053// http.StatusNotModified was returned.
142054func (c *RoutesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
142055	gensupport.SetOptions(c.urlParams_, opts...)
142056	res, err := c.doRequest("json")
142057	if res != nil && res.StatusCode == http.StatusNotModified {
142058		if res.Body != nil {
142059			res.Body.Close()
142060		}
142061		return nil, &googleapi.Error{
142062			Code:   res.StatusCode,
142063			Header: res.Header,
142064		}
142065	}
142066	if err != nil {
142067		return nil, err
142068	}
142069	defer googleapi.CloseBody(res)
142070	if err := googleapi.CheckResponse(res); err != nil {
142071		return nil, err
142072	}
142073	ret := &Operation{
142074		ServerResponse: googleapi.ServerResponse{
142075			Header:         res.Header,
142076			HTTPStatusCode: res.StatusCode,
142077		},
142078	}
142079	target := &ret
142080	if err := gensupport.DecodeResponse(target, res); err != nil {
142081		return nil, err
142082	}
142083	return ret, nil
142084	// {
142085	//   "description": "Deletes the specified Route resource.",
142086	//   "flatPath": "projects/{project}/global/routes/{route}",
142087	//   "httpMethod": "DELETE",
142088	//   "id": "compute.routes.delete",
142089	//   "parameterOrder": [
142090	//     "project",
142091	//     "route"
142092	//   ],
142093	//   "parameters": {
142094	//     "project": {
142095	//       "description": "Project ID for this request.",
142096	//       "location": "path",
142097	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142098	//       "required": true,
142099	//       "type": "string"
142100	//     },
142101	//     "requestId": {
142102	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
142103	//       "location": "query",
142104	//       "type": "string"
142105	//     },
142106	//     "route": {
142107	//       "description": "Name of the Route resource to delete.",
142108	//       "location": "path",
142109	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142110	//       "required": true,
142111	//       "type": "string"
142112	//     }
142113	//   },
142114	//   "path": "projects/{project}/global/routes/{route}",
142115	//   "response": {
142116	//     "$ref": "Operation"
142117	//   },
142118	//   "scopes": [
142119	//     "https://www.googleapis.com/auth/cloud-platform",
142120	//     "https://www.googleapis.com/auth/compute"
142121	//   ]
142122	// }
142123
142124}
142125
142126// method id "compute.routes.get":
142127
142128type RoutesGetCall struct {
142129	s            *Service
142130	project      string
142131	route        string
142132	urlParams_   gensupport.URLParams
142133	ifNoneMatch_ string
142134	ctx_         context.Context
142135	header_      http.Header
142136}
142137
142138// Get: Returns the specified Route resource. Gets a list of available
142139// routes by making a list() request.
142140//
142141// - project: Project ID for this request.
142142// - route: Name of the Route resource to return.
142143func (r *RoutesService) Get(project string, route string) *RoutesGetCall {
142144	c := &RoutesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142145	c.project = project
142146	c.route = route
142147	return c
142148}
142149
142150// Fields allows partial responses to be retrieved. See
142151// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142152// for more information.
142153func (c *RoutesGetCall) Fields(s ...googleapi.Field) *RoutesGetCall {
142154	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142155	return c
142156}
142157
142158// IfNoneMatch sets the optional parameter which makes the operation
142159// fail if the object's ETag matches the given value. This is useful for
142160// getting updates only after the object has changed since the last
142161// request. Use googleapi.IsNotModified to check whether the response
142162// error from Do is the result of In-None-Match.
142163func (c *RoutesGetCall) IfNoneMatch(entityTag string) *RoutesGetCall {
142164	c.ifNoneMatch_ = entityTag
142165	return c
142166}
142167
142168// Context sets the context to be used in this call's Do method. Any
142169// pending HTTP request will be aborted if the provided context is
142170// canceled.
142171func (c *RoutesGetCall) Context(ctx context.Context) *RoutesGetCall {
142172	c.ctx_ = ctx
142173	return c
142174}
142175
142176// Header returns an http.Header that can be modified by the caller to
142177// add HTTP headers to the request.
142178func (c *RoutesGetCall) Header() http.Header {
142179	if c.header_ == nil {
142180		c.header_ = make(http.Header)
142181	}
142182	return c.header_
142183}
142184
142185func (c *RoutesGetCall) doRequest(alt string) (*http.Response, error) {
142186	reqHeaders := make(http.Header)
142187	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
142188	for k, v := range c.header_ {
142189		reqHeaders[k] = v
142190	}
142191	reqHeaders.Set("User-Agent", c.s.userAgent())
142192	if c.ifNoneMatch_ != "" {
142193		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
142194	}
142195	var body io.Reader = nil
142196	c.urlParams_.Set("alt", alt)
142197	c.urlParams_.Set("prettyPrint", "false")
142198	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes/{route}")
142199	urls += "?" + c.urlParams_.Encode()
142200	req, err := http.NewRequest("GET", urls, body)
142201	if err != nil {
142202		return nil, err
142203	}
142204	req.Header = reqHeaders
142205	googleapi.Expand(req.URL, map[string]string{
142206		"project": c.project,
142207		"route":   c.route,
142208	})
142209	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142210}
142211
142212// Do executes the "compute.routes.get" call.
142213// Exactly one of *Route or error will be non-nil. Any non-2xx status
142214// code is an error. Response headers are in either
142215// *Route.ServerResponse.Header or (if a response was returned at all)
142216// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
142217// check whether the returned error was because http.StatusNotModified
142218// was returned.
142219func (c *RoutesGetCall) Do(opts ...googleapi.CallOption) (*Route, error) {
142220	gensupport.SetOptions(c.urlParams_, opts...)
142221	res, err := c.doRequest("json")
142222	if res != nil && res.StatusCode == http.StatusNotModified {
142223		if res.Body != nil {
142224			res.Body.Close()
142225		}
142226		return nil, &googleapi.Error{
142227			Code:   res.StatusCode,
142228			Header: res.Header,
142229		}
142230	}
142231	if err != nil {
142232		return nil, err
142233	}
142234	defer googleapi.CloseBody(res)
142235	if err := googleapi.CheckResponse(res); err != nil {
142236		return nil, err
142237	}
142238	ret := &Route{
142239		ServerResponse: googleapi.ServerResponse{
142240			Header:         res.Header,
142241			HTTPStatusCode: res.StatusCode,
142242		},
142243	}
142244	target := &ret
142245	if err := gensupport.DecodeResponse(target, res); err != nil {
142246		return nil, err
142247	}
142248	return ret, nil
142249	// {
142250	//   "description": "Returns the specified Route resource. Gets a list of available routes by making a list() request.",
142251	//   "flatPath": "projects/{project}/global/routes/{route}",
142252	//   "httpMethod": "GET",
142253	//   "id": "compute.routes.get",
142254	//   "parameterOrder": [
142255	//     "project",
142256	//     "route"
142257	//   ],
142258	//   "parameters": {
142259	//     "project": {
142260	//       "description": "Project ID for this request.",
142261	//       "location": "path",
142262	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142263	//       "required": true,
142264	//       "type": "string"
142265	//     },
142266	//     "route": {
142267	//       "description": "Name of the Route resource to return.",
142268	//       "location": "path",
142269	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142270	//       "required": true,
142271	//       "type": "string"
142272	//     }
142273	//   },
142274	//   "path": "projects/{project}/global/routes/{route}",
142275	//   "response": {
142276	//     "$ref": "Route"
142277	//   },
142278	//   "scopes": [
142279	//     "https://www.googleapis.com/auth/cloud-platform",
142280	//     "https://www.googleapis.com/auth/compute",
142281	//     "https://www.googleapis.com/auth/compute.readonly"
142282	//   ]
142283	// }
142284
142285}
142286
142287// method id "compute.routes.insert":
142288
142289type RoutesInsertCall struct {
142290	s          *Service
142291	project    string
142292	route      *Route
142293	urlParams_ gensupport.URLParams
142294	ctx_       context.Context
142295	header_    http.Header
142296}
142297
142298// Insert: Creates a Route resource in the specified project using the
142299// data included in the request.
142300//
142301// - project: Project ID for this request.
142302func (r *RoutesService) Insert(project string, route *Route) *RoutesInsertCall {
142303	c := &RoutesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142304	c.project = project
142305	c.route = route
142306	return c
142307}
142308
142309// RequestId sets the optional parameter "requestId": An optional
142310// request ID to identify requests. Specify a unique request ID so that
142311// if you must retry your request, the server will know to ignore the
142312// request if it has already been completed. For example, consider a
142313// situation where you make an initial request and the request times
142314// out. If you make the request again with the same request ID, the
142315// server can check if original operation with the same request ID was
142316// received, and if so, will ignore the second request. This prevents
142317// clients from accidentally creating duplicate commitments. The request
142318// ID must be a valid UUID with the exception that zero UUID is not
142319// supported ( 00000000-0000-0000-0000-000000000000).
142320func (c *RoutesInsertCall) RequestId(requestId string) *RoutesInsertCall {
142321	c.urlParams_.Set("requestId", requestId)
142322	return c
142323}
142324
142325// Fields allows partial responses to be retrieved. See
142326// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142327// for more information.
142328func (c *RoutesInsertCall) Fields(s ...googleapi.Field) *RoutesInsertCall {
142329	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142330	return c
142331}
142332
142333// Context sets the context to be used in this call's Do method. Any
142334// pending HTTP request will be aborted if the provided context is
142335// canceled.
142336func (c *RoutesInsertCall) Context(ctx context.Context) *RoutesInsertCall {
142337	c.ctx_ = ctx
142338	return c
142339}
142340
142341// Header returns an http.Header that can be modified by the caller to
142342// add HTTP headers to the request.
142343func (c *RoutesInsertCall) Header() http.Header {
142344	if c.header_ == nil {
142345		c.header_ = make(http.Header)
142346	}
142347	return c.header_
142348}
142349
142350func (c *RoutesInsertCall) doRequest(alt string) (*http.Response, error) {
142351	reqHeaders := make(http.Header)
142352	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
142353	for k, v := range c.header_ {
142354		reqHeaders[k] = v
142355	}
142356	reqHeaders.Set("User-Agent", c.s.userAgent())
142357	var body io.Reader = nil
142358	body, err := googleapi.WithoutDataWrapper.JSONReader(c.route)
142359	if err != nil {
142360		return nil, err
142361	}
142362	reqHeaders.Set("Content-Type", "application/json")
142363	c.urlParams_.Set("alt", alt)
142364	c.urlParams_.Set("prettyPrint", "false")
142365	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes")
142366	urls += "?" + c.urlParams_.Encode()
142367	req, err := http.NewRequest("POST", urls, body)
142368	if err != nil {
142369		return nil, err
142370	}
142371	req.Header = reqHeaders
142372	googleapi.Expand(req.URL, map[string]string{
142373		"project": c.project,
142374	})
142375	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142376}
142377
142378// Do executes the "compute.routes.insert" call.
142379// Exactly one of *Operation or error will be non-nil. Any non-2xx
142380// status code is an error. Response headers are in either
142381// *Operation.ServerResponse.Header or (if a response was returned at
142382// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
142383// to check whether the returned error was because
142384// http.StatusNotModified was returned.
142385func (c *RoutesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
142386	gensupport.SetOptions(c.urlParams_, opts...)
142387	res, err := c.doRequest("json")
142388	if res != nil && res.StatusCode == http.StatusNotModified {
142389		if res.Body != nil {
142390			res.Body.Close()
142391		}
142392		return nil, &googleapi.Error{
142393			Code:   res.StatusCode,
142394			Header: res.Header,
142395		}
142396	}
142397	if err != nil {
142398		return nil, err
142399	}
142400	defer googleapi.CloseBody(res)
142401	if err := googleapi.CheckResponse(res); err != nil {
142402		return nil, err
142403	}
142404	ret := &Operation{
142405		ServerResponse: googleapi.ServerResponse{
142406			Header:         res.Header,
142407			HTTPStatusCode: res.StatusCode,
142408		},
142409	}
142410	target := &ret
142411	if err := gensupport.DecodeResponse(target, res); err != nil {
142412		return nil, err
142413	}
142414	return ret, nil
142415	// {
142416	//   "description": "Creates a Route resource in the specified project using the data included in the request.",
142417	//   "flatPath": "projects/{project}/global/routes",
142418	//   "httpMethod": "POST",
142419	//   "id": "compute.routes.insert",
142420	//   "parameterOrder": [
142421	//     "project"
142422	//   ],
142423	//   "parameters": {
142424	//     "project": {
142425	//       "description": "Project ID for this request.",
142426	//       "location": "path",
142427	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142428	//       "required": true,
142429	//       "type": "string"
142430	//     },
142431	//     "requestId": {
142432	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
142433	//       "location": "query",
142434	//       "type": "string"
142435	//     }
142436	//   },
142437	//   "path": "projects/{project}/global/routes",
142438	//   "request": {
142439	//     "$ref": "Route"
142440	//   },
142441	//   "response": {
142442	//     "$ref": "Operation"
142443	//   },
142444	//   "scopes": [
142445	//     "https://www.googleapis.com/auth/cloud-platform",
142446	//     "https://www.googleapis.com/auth/compute"
142447	//   ]
142448	// }
142449
142450}
142451
142452// method id "compute.routes.list":
142453
142454type RoutesListCall struct {
142455	s            *Service
142456	project      string
142457	urlParams_   gensupport.URLParams
142458	ifNoneMatch_ string
142459	ctx_         context.Context
142460	header_      http.Header
142461}
142462
142463// List: Retrieves the list of Route resources available to the
142464// specified project.
142465//
142466// - project: Project ID for this request.
142467func (r *RoutesService) List(project string) *RoutesListCall {
142468	c := &RoutesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142469	c.project = project
142470	return c
142471}
142472
142473// Filter sets the optional parameter "filter": A filter expression that
142474// filters resources listed in the response. The expression must specify
142475// the field name, a comparison operator, and the value that you want to
142476// use for filtering. The value must be a string, a number, or a
142477// boolean. The comparison operator must be either `=`, `!=`, `>`, or
142478// `<`. For example, if you are filtering Compute Engine instances, you
142479// can exclude instances named `example-instance` by specifying `name !=
142480// example-instance`. You can also filter nested fields. For example,
142481// you could specify `scheduling.automaticRestart = false` to include
142482// instances only if they are not scheduled for automatic restarts. You
142483// can use filtering on nested fields to filter based on resource
142484// labels. To filter on multiple expressions, provide each separate
142485// expression within parentheses. For example: ```
142486// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
142487// ``` By default, each expression is an `AND` expression. However, you
142488// can include `AND` and `OR` expressions explicitly. For example: ```
142489// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
142490// AND (scheduling.automaticRestart = true) ```
142491func (c *RoutesListCall) Filter(filter string) *RoutesListCall {
142492	c.urlParams_.Set("filter", filter)
142493	return c
142494}
142495
142496// MaxResults sets the optional parameter "maxResults": The maximum
142497// number of results per page that should be returned. If the number of
142498// available results is larger than `maxResults`, Compute Engine returns
142499// a `nextPageToken` that can be used to get the next page of results in
142500// subsequent list requests. Acceptable values are `0` to `500`,
142501// inclusive. (Default: `500`)
142502func (c *RoutesListCall) MaxResults(maxResults int64) *RoutesListCall {
142503	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
142504	return c
142505}
142506
142507// OrderBy sets the optional parameter "orderBy": Sorts list results by
142508// a certain order. By default, results are returned in alphanumerical
142509// order based on the resource name. You can also sort results in
142510// descending order based on the creation timestamp using
142511// `orderBy="creationTimestamp desc". This sorts results based on the
142512// `creationTimestamp` field in reverse chronological order (newest
142513// result first). Use this to sort resources like operations so that the
142514// newest operation is returned first. Currently, only sorting by `name`
142515// or `creationTimestamp desc` is supported.
142516func (c *RoutesListCall) OrderBy(orderBy string) *RoutesListCall {
142517	c.urlParams_.Set("orderBy", orderBy)
142518	return c
142519}
142520
142521// PageToken sets the optional parameter "pageToken": Specifies a page
142522// token to use. Set `pageToken` to the `nextPageToken` returned by a
142523// previous list request to get the next page of results.
142524func (c *RoutesListCall) PageToken(pageToken string) *RoutesListCall {
142525	c.urlParams_.Set("pageToken", pageToken)
142526	return c
142527}
142528
142529// ReturnPartialSuccess sets the optional parameter
142530// "returnPartialSuccess": Opt-in for partial success behavior which
142531// provides partial results in case of failure. The default value is
142532// false.
142533func (c *RoutesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutesListCall {
142534	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
142535	return c
142536}
142537
142538// Fields allows partial responses to be retrieved. See
142539// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142540// for more information.
142541func (c *RoutesListCall) Fields(s ...googleapi.Field) *RoutesListCall {
142542	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142543	return c
142544}
142545
142546// IfNoneMatch sets the optional parameter which makes the operation
142547// fail if the object's ETag matches the given value. This is useful for
142548// getting updates only after the object has changed since the last
142549// request. Use googleapi.IsNotModified to check whether the response
142550// error from Do is the result of In-None-Match.
142551func (c *RoutesListCall) IfNoneMatch(entityTag string) *RoutesListCall {
142552	c.ifNoneMatch_ = entityTag
142553	return c
142554}
142555
142556// Context sets the context to be used in this call's Do method. Any
142557// pending HTTP request will be aborted if the provided context is
142558// canceled.
142559func (c *RoutesListCall) Context(ctx context.Context) *RoutesListCall {
142560	c.ctx_ = ctx
142561	return c
142562}
142563
142564// Header returns an http.Header that can be modified by the caller to
142565// add HTTP headers to the request.
142566func (c *RoutesListCall) Header() http.Header {
142567	if c.header_ == nil {
142568		c.header_ = make(http.Header)
142569	}
142570	return c.header_
142571}
142572
142573func (c *RoutesListCall) doRequest(alt string) (*http.Response, error) {
142574	reqHeaders := make(http.Header)
142575	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
142576	for k, v := range c.header_ {
142577		reqHeaders[k] = v
142578	}
142579	reqHeaders.Set("User-Agent", c.s.userAgent())
142580	if c.ifNoneMatch_ != "" {
142581		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
142582	}
142583	var body io.Reader = nil
142584	c.urlParams_.Set("alt", alt)
142585	c.urlParams_.Set("prettyPrint", "false")
142586	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes")
142587	urls += "?" + c.urlParams_.Encode()
142588	req, err := http.NewRequest("GET", urls, body)
142589	if err != nil {
142590		return nil, err
142591	}
142592	req.Header = reqHeaders
142593	googleapi.Expand(req.URL, map[string]string{
142594		"project": c.project,
142595	})
142596	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142597}
142598
142599// Do executes the "compute.routes.list" call.
142600// Exactly one of *RouteList or error will be non-nil. Any non-2xx
142601// status code is an error. Response headers are in either
142602// *RouteList.ServerResponse.Header or (if a response was returned at
142603// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
142604// to check whether the returned error was because
142605// http.StatusNotModified was returned.
142606func (c *RoutesListCall) Do(opts ...googleapi.CallOption) (*RouteList, error) {
142607	gensupport.SetOptions(c.urlParams_, opts...)
142608	res, err := c.doRequest("json")
142609	if res != nil && res.StatusCode == http.StatusNotModified {
142610		if res.Body != nil {
142611			res.Body.Close()
142612		}
142613		return nil, &googleapi.Error{
142614			Code:   res.StatusCode,
142615			Header: res.Header,
142616		}
142617	}
142618	if err != nil {
142619		return nil, err
142620	}
142621	defer googleapi.CloseBody(res)
142622	if err := googleapi.CheckResponse(res); err != nil {
142623		return nil, err
142624	}
142625	ret := &RouteList{
142626		ServerResponse: googleapi.ServerResponse{
142627			Header:         res.Header,
142628			HTTPStatusCode: res.StatusCode,
142629		},
142630	}
142631	target := &ret
142632	if err := gensupport.DecodeResponse(target, res); err != nil {
142633		return nil, err
142634	}
142635	return ret, nil
142636	// {
142637	//   "description": "Retrieves the list of Route resources available to the specified project.",
142638	//   "flatPath": "projects/{project}/global/routes",
142639	//   "httpMethod": "GET",
142640	//   "id": "compute.routes.list",
142641	//   "parameterOrder": [
142642	//     "project"
142643	//   ],
142644	//   "parameters": {
142645	//     "filter": {
142646	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
142647	//       "location": "query",
142648	//       "type": "string"
142649	//     },
142650	//     "maxResults": {
142651	//       "default": "500",
142652	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
142653	//       "format": "uint32",
142654	//       "location": "query",
142655	//       "minimum": "0",
142656	//       "type": "integer"
142657	//     },
142658	//     "orderBy": {
142659	//       "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.",
142660	//       "location": "query",
142661	//       "type": "string"
142662	//     },
142663	//     "pageToken": {
142664	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
142665	//       "location": "query",
142666	//       "type": "string"
142667	//     },
142668	//     "project": {
142669	//       "description": "Project ID for this request.",
142670	//       "location": "path",
142671	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142672	//       "required": true,
142673	//       "type": "string"
142674	//     },
142675	//     "returnPartialSuccess": {
142676	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
142677	//       "location": "query",
142678	//       "type": "boolean"
142679	//     }
142680	//   },
142681	//   "path": "projects/{project}/global/routes",
142682	//   "response": {
142683	//     "$ref": "RouteList"
142684	//   },
142685	//   "scopes": [
142686	//     "https://www.googleapis.com/auth/cloud-platform",
142687	//     "https://www.googleapis.com/auth/compute",
142688	//     "https://www.googleapis.com/auth/compute.readonly"
142689	//   ]
142690	// }
142691
142692}
142693
142694// Pages invokes f for each page of results.
142695// A non-nil error returned from f will halt the iteration.
142696// The provided context supersedes any context provided to the Context method.
142697func (c *RoutesListCall) Pages(ctx context.Context, f func(*RouteList) error) error {
142698	c.ctx_ = ctx
142699	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
142700	for {
142701		x, err := c.Do()
142702		if err != nil {
142703			return err
142704		}
142705		if err := f(x); err != nil {
142706			return err
142707		}
142708		if x.NextPageToken == "" {
142709			return nil
142710		}
142711		c.PageToken(x.NextPageToken)
142712	}
142713}
142714
142715// method id "compute.securityPolicies.addRule":
142716
142717type SecurityPoliciesAddRuleCall struct {
142718	s                  *Service
142719	project            string
142720	securityPolicy     string
142721	securitypolicyrule *SecurityPolicyRule
142722	urlParams_         gensupport.URLParams
142723	ctx_               context.Context
142724	header_            http.Header
142725}
142726
142727// AddRule: Inserts a rule into a security policy.
142728//
142729// - project: Project ID for this request.
142730// - securityPolicy: Name of the security policy to update.
142731func (r *SecurityPoliciesService) AddRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesAddRuleCall {
142732	c := &SecurityPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142733	c.project = project
142734	c.securityPolicy = securityPolicy
142735	c.securitypolicyrule = securitypolicyrule
142736	return c
142737}
142738
142739// Fields allows partial responses to be retrieved. See
142740// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142741// for more information.
142742func (c *SecurityPoliciesAddRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesAddRuleCall {
142743	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142744	return c
142745}
142746
142747// Context sets the context to be used in this call's Do method. Any
142748// pending HTTP request will be aborted if the provided context is
142749// canceled.
142750func (c *SecurityPoliciesAddRuleCall) Context(ctx context.Context) *SecurityPoliciesAddRuleCall {
142751	c.ctx_ = ctx
142752	return c
142753}
142754
142755// Header returns an http.Header that can be modified by the caller to
142756// add HTTP headers to the request.
142757func (c *SecurityPoliciesAddRuleCall) Header() http.Header {
142758	if c.header_ == nil {
142759		c.header_ = make(http.Header)
142760	}
142761	return c.header_
142762}
142763
142764func (c *SecurityPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) {
142765	reqHeaders := make(http.Header)
142766	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
142767	for k, v := range c.header_ {
142768		reqHeaders[k] = v
142769	}
142770	reqHeaders.Set("User-Agent", c.s.userAgent())
142771	var body io.Reader = nil
142772	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
142773	if err != nil {
142774		return nil, err
142775	}
142776	reqHeaders.Set("Content-Type", "application/json")
142777	c.urlParams_.Set("alt", alt)
142778	c.urlParams_.Set("prettyPrint", "false")
142779	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}/addRule")
142780	urls += "?" + c.urlParams_.Encode()
142781	req, err := http.NewRequest("POST", urls, body)
142782	if err != nil {
142783		return nil, err
142784	}
142785	req.Header = reqHeaders
142786	googleapi.Expand(req.URL, map[string]string{
142787		"project":        c.project,
142788		"securityPolicy": c.securityPolicy,
142789	})
142790	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142791}
142792
142793// Do executes the "compute.securityPolicies.addRule" call.
142794// Exactly one of *Operation or error will be non-nil. Any non-2xx
142795// status code is an error. Response headers are in either
142796// *Operation.ServerResponse.Header or (if a response was returned at
142797// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
142798// to check whether the returned error was because
142799// http.StatusNotModified was returned.
142800func (c *SecurityPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
142801	gensupport.SetOptions(c.urlParams_, opts...)
142802	res, err := c.doRequest("json")
142803	if res != nil && res.StatusCode == http.StatusNotModified {
142804		if res.Body != nil {
142805			res.Body.Close()
142806		}
142807		return nil, &googleapi.Error{
142808			Code:   res.StatusCode,
142809			Header: res.Header,
142810		}
142811	}
142812	if err != nil {
142813		return nil, err
142814	}
142815	defer googleapi.CloseBody(res)
142816	if err := googleapi.CheckResponse(res); err != nil {
142817		return nil, err
142818	}
142819	ret := &Operation{
142820		ServerResponse: googleapi.ServerResponse{
142821			Header:         res.Header,
142822			HTTPStatusCode: res.StatusCode,
142823		},
142824	}
142825	target := &ret
142826	if err := gensupport.DecodeResponse(target, res); err != nil {
142827		return nil, err
142828	}
142829	return ret, nil
142830	// {
142831	//   "description": "Inserts a rule into a security policy.",
142832	//   "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/addRule",
142833	//   "httpMethod": "POST",
142834	//   "id": "compute.securityPolicies.addRule",
142835	//   "parameterOrder": [
142836	//     "project",
142837	//     "securityPolicy"
142838	//   ],
142839	//   "parameters": {
142840	//     "project": {
142841	//       "description": "Project ID for this request.",
142842	//       "location": "path",
142843	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142844	//       "required": true,
142845	//       "type": "string"
142846	//     },
142847	//     "securityPolicy": {
142848	//       "description": "Name of the security policy to update.",
142849	//       "location": "path",
142850	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142851	//       "required": true,
142852	//       "type": "string"
142853	//     }
142854	//   },
142855	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}/addRule",
142856	//   "request": {
142857	//     "$ref": "SecurityPolicyRule"
142858	//   },
142859	//   "response": {
142860	//     "$ref": "Operation"
142861	//   },
142862	//   "scopes": [
142863	//     "https://www.googleapis.com/auth/cloud-platform",
142864	//     "https://www.googleapis.com/auth/compute"
142865	//   ]
142866	// }
142867
142868}
142869
142870// method id "compute.securityPolicies.delete":
142871
142872type SecurityPoliciesDeleteCall struct {
142873	s              *Service
142874	project        string
142875	securityPolicy string
142876	urlParams_     gensupport.URLParams
142877	ctx_           context.Context
142878	header_        http.Header
142879}
142880
142881// Delete: Deletes the specified policy.
142882//
142883// - project: Project ID for this request.
142884// - securityPolicy: Name of the security policy to delete.
142885func (r *SecurityPoliciesService) Delete(project string, securityPolicy string) *SecurityPoliciesDeleteCall {
142886	c := &SecurityPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142887	c.project = project
142888	c.securityPolicy = securityPolicy
142889	return c
142890}
142891
142892// RequestId sets the optional parameter "requestId": An optional
142893// request ID to identify requests. Specify a unique request ID so that
142894// if you must retry your request, the server will know to ignore the
142895// request if it has already been completed. For example, consider a
142896// situation where you make an initial request and the request times
142897// out. If you make the request again with the same request ID, the
142898// server can check if original operation with the same request ID was
142899// received, and if so, will ignore the second request. This prevents
142900// clients from accidentally creating duplicate commitments. The request
142901// ID must be a valid UUID with the exception that zero UUID is not
142902// supported ( 00000000-0000-0000-0000-000000000000).
142903func (c *SecurityPoliciesDeleteCall) RequestId(requestId string) *SecurityPoliciesDeleteCall {
142904	c.urlParams_.Set("requestId", requestId)
142905	return c
142906}
142907
142908// Fields allows partial responses to be retrieved. See
142909// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142910// for more information.
142911func (c *SecurityPoliciesDeleteCall) Fields(s ...googleapi.Field) *SecurityPoliciesDeleteCall {
142912	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142913	return c
142914}
142915
142916// Context sets the context to be used in this call's Do method. Any
142917// pending HTTP request will be aborted if the provided context is
142918// canceled.
142919func (c *SecurityPoliciesDeleteCall) Context(ctx context.Context) *SecurityPoliciesDeleteCall {
142920	c.ctx_ = ctx
142921	return c
142922}
142923
142924// Header returns an http.Header that can be modified by the caller to
142925// add HTTP headers to the request.
142926func (c *SecurityPoliciesDeleteCall) Header() http.Header {
142927	if c.header_ == nil {
142928		c.header_ = make(http.Header)
142929	}
142930	return c.header_
142931}
142932
142933func (c *SecurityPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
142934	reqHeaders := make(http.Header)
142935	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
142936	for k, v := range c.header_ {
142937		reqHeaders[k] = v
142938	}
142939	reqHeaders.Set("User-Agent", c.s.userAgent())
142940	var body io.Reader = nil
142941	c.urlParams_.Set("alt", alt)
142942	c.urlParams_.Set("prettyPrint", "false")
142943	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}")
142944	urls += "?" + c.urlParams_.Encode()
142945	req, err := http.NewRequest("DELETE", urls, body)
142946	if err != nil {
142947		return nil, err
142948	}
142949	req.Header = reqHeaders
142950	googleapi.Expand(req.URL, map[string]string{
142951		"project":        c.project,
142952		"securityPolicy": c.securityPolicy,
142953	})
142954	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142955}
142956
142957// Do executes the "compute.securityPolicies.delete" call.
142958// Exactly one of *Operation or error will be non-nil. Any non-2xx
142959// status code is an error. Response headers are in either
142960// *Operation.ServerResponse.Header or (if a response was returned at
142961// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
142962// to check whether the returned error was because
142963// http.StatusNotModified was returned.
142964func (c *SecurityPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
142965	gensupport.SetOptions(c.urlParams_, opts...)
142966	res, err := c.doRequest("json")
142967	if res != nil && res.StatusCode == http.StatusNotModified {
142968		if res.Body != nil {
142969			res.Body.Close()
142970		}
142971		return nil, &googleapi.Error{
142972			Code:   res.StatusCode,
142973			Header: res.Header,
142974		}
142975	}
142976	if err != nil {
142977		return nil, err
142978	}
142979	defer googleapi.CloseBody(res)
142980	if err := googleapi.CheckResponse(res); err != nil {
142981		return nil, err
142982	}
142983	ret := &Operation{
142984		ServerResponse: googleapi.ServerResponse{
142985			Header:         res.Header,
142986			HTTPStatusCode: res.StatusCode,
142987		},
142988	}
142989	target := &ret
142990	if err := gensupport.DecodeResponse(target, res); err != nil {
142991		return nil, err
142992	}
142993	return ret, nil
142994	// {
142995	//   "description": "Deletes the specified policy.",
142996	//   "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}",
142997	//   "httpMethod": "DELETE",
142998	//   "id": "compute.securityPolicies.delete",
142999	//   "parameterOrder": [
143000	//     "project",
143001	//     "securityPolicy"
143002	//   ],
143003	//   "parameters": {
143004	//     "project": {
143005	//       "description": "Project ID for this request.",
143006	//       "location": "path",
143007	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143008	//       "required": true,
143009	//       "type": "string"
143010	//     },
143011	//     "requestId": {
143012	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
143013	//       "location": "query",
143014	//       "type": "string"
143015	//     },
143016	//     "securityPolicy": {
143017	//       "description": "Name of the security policy to delete.",
143018	//       "location": "path",
143019	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143020	//       "required": true,
143021	//       "type": "string"
143022	//     }
143023	//   },
143024	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}",
143025	//   "response": {
143026	//     "$ref": "Operation"
143027	//   },
143028	//   "scopes": [
143029	//     "https://www.googleapis.com/auth/cloud-platform",
143030	//     "https://www.googleapis.com/auth/compute"
143031	//   ]
143032	// }
143033
143034}
143035
143036// method id "compute.securityPolicies.get":
143037
143038type SecurityPoliciesGetCall struct {
143039	s              *Service
143040	project        string
143041	securityPolicy string
143042	urlParams_     gensupport.URLParams
143043	ifNoneMatch_   string
143044	ctx_           context.Context
143045	header_        http.Header
143046}
143047
143048// Get: List all of the ordered rules present in a single specified
143049// policy.
143050//
143051// - project: Project ID for this request.
143052// - securityPolicy: Name of the security policy to get.
143053func (r *SecurityPoliciesService) Get(project string, securityPolicy string) *SecurityPoliciesGetCall {
143054	c := &SecurityPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143055	c.project = project
143056	c.securityPolicy = securityPolicy
143057	return c
143058}
143059
143060// Fields allows partial responses to be retrieved. See
143061// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143062// for more information.
143063func (c *SecurityPoliciesGetCall) Fields(s ...googleapi.Field) *SecurityPoliciesGetCall {
143064	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143065	return c
143066}
143067
143068// IfNoneMatch sets the optional parameter which makes the operation
143069// fail if the object's ETag matches the given value. This is useful for
143070// getting updates only after the object has changed since the last
143071// request. Use googleapi.IsNotModified to check whether the response
143072// error from Do is the result of In-None-Match.
143073func (c *SecurityPoliciesGetCall) IfNoneMatch(entityTag string) *SecurityPoliciesGetCall {
143074	c.ifNoneMatch_ = entityTag
143075	return c
143076}
143077
143078// Context sets the context to be used in this call's Do method. Any
143079// pending HTTP request will be aborted if the provided context is
143080// canceled.
143081func (c *SecurityPoliciesGetCall) Context(ctx context.Context) *SecurityPoliciesGetCall {
143082	c.ctx_ = ctx
143083	return c
143084}
143085
143086// Header returns an http.Header that can be modified by the caller to
143087// add HTTP headers to the request.
143088func (c *SecurityPoliciesGetCall) Header() http.Header {
143089	if c.header_ == nil {
143090		c.header_ = make(http.Header)
143091	}
143092	return c.header_
143093}
143094
143095func (c *SecurityPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
143096	reqHeaders := make(http.Header)
143097	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
143098	for k, v := range c.header_ {
143099		reqHeaders[k] = v
143100	}
143101	reqHeaders.Set("User-Agent", c.s.userAgent())
143102	if c.ifNoneMatch_ != "" {
143103		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
143104	}
143105	var body io.Reader = nil
143106	c.urlParams_.Set("alt", alt)
143107	c.urlParams_.Set("prettyPrint", "false")
143108	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}")
143109	urls += "?" + c.urlParams_.Encode()
143110	req, err := http.NewRequest("GET", urls, body)
143111	if err != nil {
143112		return nil, err
143113	}
143114	req.Header = reqHeaders
143115	googleapi.Expand(req.URL, map[string]string{
143116		"project":        c.project,
143117		"securityPolicy": c.securityPolicy,
143118	})
143119	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143120}
143121
143122// Do executes the "compute.securityPolicies.get" call.
143123// Exactly one of *SecurityPolicy or error will be non-nil. Any non-2xx
143124// status code is an error. Response headers are in either
143125// *SecurityPolicy.ServerResponse.Header or (if a response was returned
143126// at all) in error.(*googleapi.Error).Header. Use
143127// googleapi.IsNotModified to check whether the returned error was
143128// because http.StatusNotModified was returned.
143129func (c *SecurityPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SecurityPolicy, error) {
143130	gensupport.SetOptions(c.urlParams_, opts...)
143131	res, err := c.doRequest("json")
143132	if res != nil && res.StatusCode == http.StatusNotModified {
143133		if res.Body != nil {
143134			res.Body.Close()
143135		}
143136		return nil, &googleapi.Error{
143137			Code:   res.StatusCode,
143138			Header: res.Header,
143139		}
143140	}
143141	if err != nil {
143142		return nil, err
143143	}
143144	defer googleapi.CloseBody(res)
143145	if err := googleapi.CheckResponse(res); err != nil {
143146		return nil, err
143147	}
143148	ret := &SecurityPolicy{
143149		ServerResponse: googleapi.ServerResponse{
143150			Header:         res.Header,
143151			HTTPStatusCode: res.StatusCode,
143152		},
143153	}
143154	target := &ret
143155	if err := gensupport.DecodeResponse(target, res); err != nil {
143156		return nil, err
143157	}
143158	return ret, nil
143159	// {
143160	//   "description": "List all of the ordered rules present in a single specified policy.",
143161	//   "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}",
143162	//   "httpMethod": "GET",
143163	//   "id": "compute.securityPolicies.get",
143164	//   "parameterOrder": [
143165	//     "project",
143166	//     "securityPolicy"
143167	//   ],
143168	//   "parameters": {
143169	//     "project": {
143170	//       "description": "Project ID for this request.",
143171	//       "location": "path",
143172	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143173	//       "required": true,
143174	//       "type": "string"
143175	//     },
143176	//     "securityPolicy": {
143177	//       "description": "Name of the security policy to get.",
143178	//       "location": "path",
143179	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143180	//       "required": true,
143181	//       "type": "string"
143182	//     }
143183	//   },
143184	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}",
143185	//   "response": {
143186	//     "$ref": "SecurityPolicy"
143187	//   },
143188	//   "scopes": [
143189	//     "https://www.googleapis.com/auth/cloud-platform",
143190	//     "https://www.googleapis.com/auth/compute",
143191	//     "https://www.googleapis.com/auth/compute.readonly"
143192	//   ]
143193	// }
143194
143195}
143196
143197// method id "compute.securityPolicies.getRule":
143198
143199type SecurityPoliciesGetRuleCall struct {
143200	s              *Service
143201	project        string
143202	securityPolicy string
143203	urlParams_     gensupport.URLParams
143204	ifNoneMatch_   string
143205	ctx_           context.Context
143206	header_        http.Header
143207}
143208
143209// GetRule: Gets a rule at the specified priority.
143210//
143211// - project: Project ID for this request.
143212// - securityPolicy: Name of the security policy to which the queried
143213//   rule belongs.
143214func (r *SecurityPoliciesService) GetRule(project string, securityPolicy string) *SecurityPoliciesGetRuleCall {
143215	c := &SecurityPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143216	c.project = project
143217	c.securityPolicy = securityPolicy
143218	return c
143219}
143220
143221// Priority sets the optional parameter "priority": The priority of the
143222// rule to get from the security policy.
143223func (c *SecurityPoliciesGetRuleCall) Priority(priority int64) *SecurityPoliciesGetRuleCall {
143224	c.urlParams_.Set("priority", fmt.Sprint(priority))
143225	return c
143226}
143227
143228// Fields allows partial responses to be retrieved. See
143229// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143230// for more information.
143231func (c *SecurityPoliciesGetRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesGetRuleCall {
143232	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143233	return c
143234}
143235
143236// IfNoneMatch sets the optional parameter which makes the operation
143237// fail if the object's ETag matches the given value. This is useful for
143238// getting updates only after the object has changed since the last
143239// request. Use googleapi.IsNotModified to check whether the response
143240// error from Do is the result of In-None-Match.
143241func (c *SecurityPoliciesGetRuleCall) IfNoneMatch(entityTag string) *SecurityPoliciesGetRuleCall {
143242	c.ifNoneMatch_ = entityTag
143243	return c
143244}
143245
143246// Context sets the context to be used in this call's Do method. Any
143247// pending HTTP request will be aborted if the provided context is
143248// canceled.
143249func (c *SecurityPoliciesGetRuleCall) Context(ctx context.Context) *SecurityPoliciesGetRuleCall {
143250	c.ctx_ = ctx
143251	return c
143252}
143253
143254// Header returns an http.Header that can be modified by the caller to
143255// add HTTP headers to the request.
143256func (c *SecurityPoliciesGetRuleCall) Header() http.Header {
143257	if c.header_ == nil {
143258		c.header_ = make(http.Header)
143259	}
143260	return c.header_
143261}
143262
143263func (c *SecurityPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) {
143264	reqHeaders := make(http.Header)
143265	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
143266	for k, v := range c.header_ {
143267		reqHeaders[k] = v
143268	}
143269	reqHeaders.Set("User-Agent", c.s.userAgent())
143270	if c.ifNoneMatch_ != "" {
143271		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
143272	}
143273	var body io.Reader = nil
143274	c.urlParams_.Set("alt", alt)
143275	c.urlParams_.Set("prettyPrint", "false")
143276	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}/getRule")
143277	urls += "?" + c.urlParams_.Encode()
143278	req, err := http.NewRequest("GET", urls, body)
143279	if err != nil {
143280		return nil, err
143281	}
143282	req.Header = reqHeaders
143283	googleapi.Expand(req.URL, map[string]string{
143284		"project":        c.project,
143285		"securityPolicy": c.securityPolicy,
143286	})
143287	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143288}
143289
143290// Do executes the "compute.securityPolicies.getRule" call.
143291// Exactly one of *SecurityPolicyRule or error will be non-nil. Any
143292// non-2xx status code is an error. Response headers are in either
143293// *SecurityPolicyRule.ServerResponse.Header or (if a response was
143294// returned at all) in error.(*googleapi.Error).Header. Use
143295// googleapi.IsNotModified to check whether the returned error was
143296// because http.StatusNotModified was returned.
143297func (c *SecurityPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyRule, error) {
143298	gensupport.SetOptions(c.urlParams_, opts...)
143299	res, err := c.doRequest("json")
143300	if res != nil && res.StatusCode == http.StatusNotModified {
143301		if res.Body != nil {
143302			res.Body.Close()
143303		}
143304		return nil, &googleapi.Error{
143305			Code:   res.StatusCode,
143306			Header: res.Header,
143307		}
143308	}
143309	if err != nil {
143310		return nil, err
143311	}
143312	defer googleapi.CloseBody(res)
143313	if err := googleapi.CheckResponse(res); err != nil {
143314		return nil, err
143315	}
143316	ret := &SecurityPolicyRule{
143317		ServerResponse: googleapi.ServerResponse{
143318			Header:         res.Header,
143319			HTTPStatusCode: res.StatusCode,
143320		},
143321	}
143322	target := &ret
143323	if err := gensupport.DecodeResponse(target, res); err != nil {
143324		return nil, err
143325	}
143326	return ret, nil
143327	// {
143328	//   "description": "Gets a rule at the specified priority.",
143329	//   "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/getRule",
143330	//   "httpMethod": "GET",
143331	//   "id": "compute.securityPolicies.getRule",
143332	//   "parameterOrder": [
143333	//     "project",
143334	//     "securityPolicy"
143335	//   ],
143336	//   "parameters": {
143337	//     "priority": {
143338	//       "description": "The priority of the rule to get from the security policy.",
143339	//       "format": "int32",
143340	//       "location": "query",
143341	//       "type": "integer"
143342	//     },
143343	//     "project": {
143344	//       "description": "Project ID for this request.",
143345	//       "location": "path",
143346	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143347	//       "required": true,
143348	//       "type": "string"
143349	//     },
143350	//     "securityPolicy": {
143351	//       "description": "Name of the security policy to which the queried rule belongs.",
143352	//       "location": "path",
143353	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143354	//       "required": true,
143355	//       "type": "string"
143356	//     }
143357	//   },
143358	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}/getRule",
143359	//   "response": {
143360	//     "$ref": "SecurityPolicyRule"
143361	//   },
143362	//   "scopes": [
143363	//     "https://www.googleapis.com/auth/cloud-platform",
143364	//     "https://www.googleapis.com/auth/compute",
143365	//     "https://www.googleapis.com/auth/compute.readonly"
143366	//   ]
143367	// }
143368
143369}
143370
143371// method id "compute.securityPolicies.insert":
143372
143373type SecurityPoliciesInsertCall struct {
143374	s              *Service
143375	project        string
143376	securitypolicy *SecurityPolicy
143377	urlParams_     gensupport.URLParams
143378	ctx_           context.Context
143379	header_        http.Header
143380}
143381
143382// Insert: Creates a new policy in the specified project using the data
143383// included in the request.
143384//
143385// - project: Project ID for this request.
143386func (r *SecurityPoliciesService) Insert(project string, securitypolicy *SecurityPolicy) *SecurityPoliciesInsertCall {
143387	c := &SecurityPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143388	c.project = project
143389	c.securitypolicy = securitypolicy
143390	return c
143391}
143392
143393// RequestId sets the optional parameter "requestId": An optional
143394// request ID to identify requests. Specify a unique request ID so that
143395// if you must retry your request, the server will know to ignore the
143396// request if it has already been completed. For example, consider a
143397// situation where you make an initial request and the request times
143398// out. If you make the request again with the same request ID, the
143399// server can check if original operation with the same request ID was
143400// received, and if so, will ignore the second request. This prevents
143401// clients from accidentally creating duplicate commitments. The request
143402// ID must be a valid UUID with the exception that zero UUID is not
143403// supported ( 00000000-0000-0000-0000-000000000000).
143404func (c *SecurityPoliciesInsertCall) RequestId(requestId string) *SecurityPoliciesInsertCall {
143405	c.urlParams_.Set("requestId", requestId)
143406	return c
143407}
143408
143409// Fields allows partial responses to be retrieved. See
143410// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143411// for more information.
143412func (c *SecurityPoliciesInsertCall) Fields(s ...googleapi.Field) *SecurityPoliciesInsertCall {
143413	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143414	return c
143415}
143416
143417// Context sets the context to be used in this call's Do method. Any
143418// pending HTTP request will be aborted if the provided context is
143419// canceled.
143420func (c *SecurityPoliciesInsertCall) Context(ctx context.Context) *SecurityPoliciesInsertCall {
143421	c.ctx_ = ctx
143422	return c
143423}
143424
143425// Header returns an http.Header that can be modified by the caller to
143426// add HTTP headers to the request.
143427func (c *SecurityPoliciesInsertCall) Header() http.Header {
143428	if c.header_ == nil {
143429		c.header_ = make(http.Header)
143430	}
143431	return c.header_
143432}
143433
143434func (c *SecurityPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
143435	reqHeaders := make(http.Header)
143436	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
143437	for k, v := range c.header_ {
143438		reqHeaders[k] = v
143439	}
143440	reqHeaders.Set("User-Agent", c.s.userAgent())
143441	var body io.Reader = nil
143442	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
143443	if err != nil {
143444		return nil, err
143445	}
143446	reqHeaders.Set("Content-Type", "application/json")
143447	c.urlParams_.Set("alt", alt)
143448	c.urlParams_.Set("prettyPrint", "false")
143449	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies")
143450	urls += "?" + c.urlParams_.Encode()
143451	req, err := http.NewRequest("POST", urls, body)
143452	if err != nil {
143453		return nil, err
143454	}
143455	req.Header = reqHeaders
143456	googleapi.Expand(req.URL, map[string]string{
143457		"project": c.project,
143458	})
143459	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143460}
143461
143462// Do executes the "compute.securityPolicies.insert" call.
143463// Exactly one of *Operation or error will be non-nil. Any non-2xx
143464// status code is an error. Response headers are in either
143465// *Operation.ServerResponse.Header or (if a response was returned at
143466// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
143467// to check whether the returned error was because
143468// http.StatusNotModified was returned.
143469func (c *SecurityPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
143470	gensupport.SetOptions(c.urlParams_, opts...)
143471	res, err := c.doRequest("json")
143472	if res != nil && res.StatusCode == http.StatusNotModified {
143473		if res.Body != nil {
143474			res.Body.Close()
143475		}
143476		return nil, &googleapi.Error{
143477			Code:   res.StatusCode,
143478			Header: res.Header,
143479		}
143480	}
143481	if err != nil {
143482		return nil, err
143483	}
143484	defer googleapi.CloseBody(res)
143485	if err := googleapi.CheckResponse(res); err != nil {
143486		return nil, err
143487	}
143488	ret := &Operation{
143489		ServerResponse: googleapi.ServerResponse{
143490			Header:         res.Header,
143491			HTTPStatusCode: res.StatusCode,
143492		},
143493	}
143494	target := &ret
143495	if err := gensupport.DecodeResponse(target, res); err != nil {
143496		return nil, err
143497	}
143498	return ret, nil
143499	// {
143500	//   "description": "Creates a new policy in the specified project using the data included in the request.",
143501	//   "flatPath": "projects/{project}/global/securityPolicies",
143502	//   "httpMethod": "POST",
143503	//   "id": "compute.securityPolicies.insert",
143504	//   "parameterOrder": [
143505	//     "project"
143506	//   ],
143507	//   "parameters": {
143508	//     "project": {
143509	//       "description": "Project ID for this request.",
143510	//       "location": "path",
143511	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143512	//       "required": true,
143513	//       "type": "string"
143514	//     },
143515	//     "requestId": {
143516	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
143517	//       "location": "query",
143518	//       "type": "string"
143519	//     }
143520	//   },
143521	//   "path": "projects/{project}/global/securityPolicies",
143522	//   "request": {
143523	//     "$ref": "SecurityPolicy"
143524	//   },
143525	//   "response": {
143526	//     "$ref": "Operation"
143527	//   },
143528	//   "scopes": [
143529	//     "https://www.googleapis.com/auth/cloud-platform",
143530	//     "https://www.googleapis.com/auth/compute"
143531	//   ]
143532	// }
143533
143534}
143535
143536// method id "compute.securityPolicies.list":
143537
143538type SecurityPoliciesListCall struct {
143539	s            *Service
143540	project      string
143541	urlParams_   gensupport.URLParams
143542	ifNoneMatch_ string
143543	ctx_         context.Context
143544	header_      http.Header
143545}
143546
143547// List: List all the policies that have been configured for the
143548// specified project.
143549//
143550// - project: Project ID for this request.
143551func (r *SecurityPoliciesService) List(project string) *SecurityPoliciesListCall {
143552	c := &SecurityPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143553	c.project = project
143554	return c
143555}
143556
143557// Filter sets the optional parameter "filter": A filter expression that
143558// filters resources listed in the response. The expression must specify
143559// the field name, a comparison operator, and the value that you want to
143560// use for filtering. The value must be a string, a number, or a
143561// boolean. The comparison operator must be either `=`, `!=`, `>`, or
143562// `<`. For example, if you are filtering Compute Engine instances, you
143563// can exclude instances named `example-instance` by specifying `name !=
143564// example-instance`. You can also filter nested fields. For example,
143565// you could specify `scheduling.automaticRestart = false` to include
143566// instances only if they are not scheduled for automatic restarts. You
143567// can use filtering on nested fields to filter based on resource
143568// labels. To filter on multiple expressions, provide each separate
143569// expression within parentheses. For example: ```
143570// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
143571// ``` By default, each expression is an `AND` expression. However, you
143572// can include `AND` and `OR` expressions explicitly. For example: ```
143573// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
143574// AND (scheduling.automaticRestart = true) ```
143575func (c *SecurityPoliciesListCall) Filter(filter string) *SecurityPoliciesListCall {
143576	c.urlParams_.Set("filter", filter)
143577	return c
143578}
143579
143580// MaxResults sets the optional parameter "maxResults": The maximum
143581// number of results per page that should be returned. If the number of
143582// available results is larger than `maxResults`, Compute Engine returns
143583// a `nextPageToken` that can be used to get the next page of results in
143584// subsequent list requests. Acceptable values are `0` to `500`,
143585// inclusive. (Default: `500`)
143586func (c *SecurityPoliciesListCall) MaxResults(maxResults int64) *SecurityPoliciesListCall {
143587	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
143588	return c
143589}
143590
143591// OrderBy sets the optional parameter "orderBy": Sorts list results by
143592// a certain order. By default, results are returned in alphanumerical
143593// order based on the resource name. You can also sort results in
143594// descending order based on the creation timestamp using
143595// `orderBy="creationTimestamp desc". This sorts results based on the
143596// `creationTimestamp` field in reverse chronological order (newest
143597// result first). Use this to sort resources like operations so that the
143598// newest operation is returned first. Currently, only sorting by `name`
143599// or `creationTimestamp desc` is supported.
143600func (c *SecurityPoliciesListCall) OrderBy(orderBy string) *SecurityPoliciesListCall {
143601	c.urlParams_.Set("orderBy", orderBy)
143602	return c
143603}
143604
143605// PageToken sets the optional parameter "pageToken": Specifies a page
143606// token to use. Set `pageToken` to the `nextPageToken` returned by a
143607// previous list request to get the next page of results.
143608func (c *SecurityPoliciesListCall) PageToken(pageToken string) *SecurityPoliciesListCall {
143609	c.urlParams_.Set("pageToken", pageToken)
143610	return c
143611}
143612
143613// ReturnPartialSuccess sets the optional parameter
143614// "returnPartialSuccess": Opt-in for partial success behavior which
143615// provides partial results in case of failure. The default value is
143616// false.
143617func (c *SecurityPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SecurityPoliciesListCall {
143618	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
143619	return c
143620}
143621
143622// Fields allows partial responses to be retrieved. See
143623// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143624// for more information.
143625func (c *SecurityPoliciesListCall) Fields(s ...googleapi.Field) *SecurityPoliciesListCall {
143626	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143627	return c
143628}
143629
143630// IfNoneMatch sets the optional parameter which makes the operation
143631// fail if the object's ETag matches the given value. This is useful for
143632// getting updates only after the object has changed since the last
143633// request. Use googleapi.IsNotModified to check whether the response
143634// error from Do is the result of In-None-Match.
143635func (c *SecurityPoliciesListCall) IfNoneMatch(entityTag string) *SecurityPoliciesListCall {
143636	c.ifNoneMatch_ = entityTag
143637	return c
143638}
143639
143640// Context sets the context to be used in this call's Do method. Any
143641// pending HTTP request will be aborted if the provided context is
143642// canceled.
143643func (c *SecurityPoliciesListCall) Context(ctx context.Context) *SecurityPoliciesListCall {
143644	c.ctx_ = ctx
143645	return c
143646}
143647
143648// Header returns an http.Header that can be modified by the caller to
143649// add HTTP headers to the request.
143650func (c *SecurityPoliciesListCall) Header() http.Header {
143651	if c.header_ == nil {
143652		c.header_ = make(http.Header)
143653	}
143654	return c.header_
143655}
143656
143657func (c *SecurityPoliciesListCall) doRequest(alt string) (*http.Response, error) {
143658	reqHeaders := make(http.Header)
143659	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
143660	for k, v := range c.header_ {
143661		reqHeaders[k] = v
143662	}
143663	reqHeaders.Set("User-Agent", c.s.userAgent())
143664	if c.ifNoneMatch_ != "" {
143665		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
143666	}
143667	var body io.Reader = nil
143668	c.urlParams_.Set("alt", alt)
143669	c.urlParams_.Set("prettyPrint", "false")
143670	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies")
143671	urls += "?" + c.urlParams_.Encode()
143672	req, err := http.NewRequest("GET", urls, body)
143673	if err != nil {
143674		return nil, err
143675	}
143676	req.Header = reqHeaders
143677	googleapi.Expand(req.URL, map[string]string{
143678		"project": c.project,
143679	})
143680	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143681}
143682
143683// Do executes the "compute.securityPolicies.list" call.
143684// Exactly one of *SecurityPolicyList or error will be non-nil. Any
143685// non-2xx status code is an error. Response headers are in either
143686// *SecurityPolicyList.ServerResponse.Header or (if a response was
143687// returned at all) in error.(*googleapi.Error).Header. Use
143688// googleapi.IsNotModified to check whether the returned error was
143689// because http.StatusNotModified was returned.
143690func (c *SecurityPoliciesListCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyList, error) {
143691	gensupport.SetOptions(c.urlParams_, opts...)
143692	res, err := c.doRequest("json")
143693	if res != nil && res.StatusCode == http.StatusNotModified {
143694		if res.Body != nil {
143695			res.Body.Close()
143696		}
143697		return nil, &googleapi.Error{
143698			Code:   res.StatusCode,
143699			Header: res.Header,
143700		}
143701	}
143702	if err != nil {
143703		return nil, err
143704	}
143705	defer googleapi.CloseBody(res)
143706	if err := googleapi.CheckResponse(res); err != nil {
143707		return nil, err
143708	}
143709	ret := &SecurityPolicyList{
143710		ServerResponse: googleapi.ServerResponse{
143711			Header:         res.Header,
143712			HTTPStatusCode: res.StatusCode,
143713		},
143714	}
143715	target := &ret
143716	if err := gensupport.DecodeResponse(target, res); err != nil {
143717		return nil, err
143718	}
143719	return ret, nil
143720	// {
143721	//   "description": "List all the policies that have been configured for the specified project.",
143722	//   "flatPath": "projects/{project}/global/securityPolicies",
143723	//   "httpMethod": "GET",
143724	//   "id": "compute.securityPolicies.list",
143725	//   "parameterOrder": [
143726	//     "project"
143727	//   ],
143728	//   "parameters": {
143729	//     "filter": {
143730	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
143731	//       "location": "query",
143732	//       "type": "string"
143733	//     },
143734	//     "maxResults": {
143735	//       "default": "500",
143736	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
143737	//       "format": "uint32",
143738	//       "location": "query",
143739	//       "minimum": "0",
143740	//       "type": "integer"
143741	//     },
143742	//     "orderBy": {
143743	//       "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.",
143744	//       "location": "query",
143745	//       "type": "string"
143746	//     },
143747	//     "pageToken": {
143748	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
143749	//       "location": "query",
143750	//       "type": "string"
143751	//     },
143752	//     "project": {
143753	//       "description": "Project ID for this request.",
143754	//       "location": "path",
143755	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143756	//       "required": true,
143757	//       "type": "string"
143758	//     },
143759	//     "returnPartialSuccess": {
143760	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
143761	//       "location": "query",
143762	//       "type": "boolean"
143763	//     }
143764	//   },
143765	//   "path": "projects/{project}/global/securityPolicies",
143766	//   "response": {
143767	//     "$ref": "SecurityPolicyList"
143768	//   },
143769	//   "scopes": [
143770	//     "https://www.googleapis.com/auth/cloud-platform",
143771	//     "https://www.googleapis.com/auth/compute",
143772	//     "https://www.googleapis.com/auth/compute.readonly"
143773	//   ]
143774	// }
143775
143776}
143777
143778// Pages invokes f for each page of results.
143779// A non-nil error returned from f will halt the iteration.
143780// The provided context supersedes any context provided to the Context method.
143781func (c *SecurityPoliciesListCall) Pages(ctx context.Context, f func(*SecurityPolicyList) error) error {
143782	c.ctx_ = ctx
143783	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
143784	for {
143785		x, err := c.Do()
143786		if err != nil {
143787			return err
143788		}
143789		if err := f(x); err != nil {
143790			return err
143791		}
143792		if x.NextPageToken == "" {
143793			return nil
143794		}
143795		c.PageToken(x.NextPageToken)
143796	}
143797}
143798
143799// method id "compute.securityPolicies.listPreconfiguredExpressionSets":
143800
143801type SecurityPoliciesListPreconfiguredExpressionSetsCall struct {
143802	s            *Service
143803	project      string
143804	urlParams_   gensupport.URLParams
143805	ifNoneMatch_ string
143806	ctx_         context.Context
143807	header_      http.Header
143808}
143809
143810// ListPreconfiguredExpressionSets: Gets the current list of
143811// preconfigured Web Application Firewall (WAF) expressions.
143812//
143813// - project: Project ID for this request.
143814func (r *SecurityPoliciesService) ListPreconfiguredExpressionSets(project string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
143815	c := &SecurityPoliciesListPreconfiguredExpressionSetsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143816	c.project = project
143817	return c
143818}
143819
143820// Filter sets the optional parameter "filter": A filter expression that
143821// filters resources listed in the response. The expression must specify
143822// the field name, a comparison operator, and the value that you want to
143823// use for filtering. The value must be a string, a number, or a
143824// boolean. The comparison operator must be either `=`, `!=`, `>`, or
143825// `<`. For example, if you are filtering Compute Engine instances, you
143826// can exclude instances named `example-instance` by specifying `name !=
143827// example-instance`. You can also filter nested fields. For example,
143828// you could specify `scheduling.automaticRestart = false` to include
143829// instances only if they are not scheduled for automatic restarts. You
143830// can use filtering on nested fields to filter based on resource
143831// labels. To filter on multiple expressions, provide each separate
143832// expression within parentheses. For example: ```
143833// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
143834// ``` By default, each expression is an `AND` expression. However, you
143835// can include `AND` and `OR` expressions explicitly. For example: ```
143836// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
143837// AND (scheduling.automaticRestart = true) ```
143838func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Filter(filter string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
143839	c.urlParams_.Set("filter", filter)
143840	return c
143841}
143842
143843// MaxResults sets the optional parameter "maxResults": The maximum
143844// number of results per page that should be returned. If the number of
143845// available results is larger than `maxResults`, Compute Engine returns
143846// a `nextPageToken` that can be used to get the next page of results in
143847// subsequent list requests. Acceptable values are `0` to `500`,
143848// inclusive. (Default: `500`)
143849func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) MaxResults(maxResults int64) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
143850	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
143851	return c
143852}
143853
143854// OrderBy sets the optional parameter "orderBy": Sorts list results by
143855// a certain order. By default, results are returned in alphanumerical
143856// order based on the resource name. You can also sort results in
143857// descending order based on the creation timestamp using
143858// `orderBy="creationTimestamp desc". This sorts results based on the
143859// `creationTimestamp` field in reverse chronological order (newest
143860// result first). Use this to sort resources like operations so that the
143861// newest operation is returned first. Currently, only sorting by `name`
143862// or `creationTimestamp desc` is supported.
143863func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) OrderBy(orderBy string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
143864	c.urlParams_.Set("orderBy", orderBy)
143865	return c
143866}
143867
143868// PageToken sets the optional parameter "pageToken": Specifies a page
143869// token to use. Set `pageToken` to the `nextPageToken` returned by a
143870// previous list request to get the next page of results.
143871func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) PageToken(pageToken string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
143872	c.urlParams_.Set("pageToken", pageToken)
143873	return c
143874}
143875
143876// ReturnPartialSuccess sets the optional parameter
143877// "returnPartialSuccess": Opt-in for partial success behavior which
143878// provides partial results in case of failure. The default value is
143879// false.
143880func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) ReturnPartialSuccess(returnPartialSuccess bool) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
143881	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
143882	return c
143883}
143884
143885// Fields allows partial responses to be retrieved. See
143886// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143887// for more information.
143888func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Fields(s ...googleapi.Field) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
143889	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143890	return c
143891}
143892
143893// IfNoneMatch sets the optional parameter which makes the operation
143894// fail if the object's ETag matches the given value. This is useful for
143895// getting updates only after the object has changed since the last
143896// request. Use googleapi.IsNotModified to check whether the response
143897// error from Do is the result of In-None-Match.
143898func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) IfNoneMatch(entityTag string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
143899	c.ifNoneMatch_ = entityTag
143900	return c
143901}
143902
143903// Context sets the context to be used in this call's Do method. Any
143904// pending HTTP request will be aborted if the provided context is
143905// canceled.
143906func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Context(ctx context.Context) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
143907	c.ctx_ = ctx
143908	return c
143909}
143910
143911// Header returns an http.Header that can be modified by the caller to
143912// add HTTP headers to the request.
143913func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Header() http.Header {
143914	if c.header_ == nil {
143915		c.header_ = make(http.Header)
143916	}
143917	return c.header_
143918}
143919
143920func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) doRequest(alt string) (*http.Response, error) {
143921	reqHeaders := make(http.Header)
143922	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
143923	for k, v := range c.header_ {
143924		reqHeaders[k] = v
143925	}
143926	reqHeaders.Set("User-Agent", c.s.userAgent())
143927	if c.ifNoneMatch_ != "" {
143928		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
143929	}
143930	var body io.Reader = nil
143931	c.urlParams_.Set("alt", alt)
143932	c.urlParams_.Set("prettyPrint", "false")
143933	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets")
143934	urls += "?" + c.urlParams_.Encode()
143935	req, err := http.NewRequest("GET", urls, body)
143936	if err != nil {
143937		return nil, err
143938	}
143939	req.Header = reqHeaders
143940	googleapi.Expand(req.URL, map[string]string{
143941		"project": c.project,
143942	})
143943	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143944}
143945
143946// Do executes the "compute.securityPolicies.listPreconfiguredExpressionSets" call.
143947// Exactly one of
143948// *SecurityPoliciesListPreconfiguredExpressionSetsResponse or error
143949// will be non-nil. Any non-2xx status code is an error. Response
143950// headers are in either
143951// *SecurityPoliciesListPreconfiguredExpressionSetsResponse.ServerRespons
143952// e.Header or (if a response was returned at all) in
143953// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
143954// whether the returned error was because http.StatusNotModified was
143955// returned.
143956func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Do(opts ...googleapi.CallOption) (*SecurityPoliciesListPreconfiguredExpressionSetsResponse, error) {
143957	gensupport.SetOptions(c.urlParams_, opts...)
143958	res, err := c.doRequest("json")
143959	if res != nil && res.StatusCode == http.StatusNotModified {
143960		if res.Body != nil {
143961			res.Body.Close()
143962		}
143963		return nil, &googleapi.Error{
143964			Code:   res.StatusCode,
143965			Header: res.Header,
143966		}
143967	}
143968	if err != nil {
143969		return nil, err
143970	}
143971	defer googleapi.CloseBody(res)
143972	if err := googleapi.CheckResponse(res); err != nil {
143973		return nil, err
143974	}
143975	ret := &SecurityPoliciesListPreconfiguredExpressionSetsResponse{
143976		ServerResponse: googleapi.ServerResponse{
143977			Header:         res.Header,
143978			HTTPStatusCode: res.StatusCode,
143979		},
143980	}
143981	target := &ret
143982	if err := gensupport.DecodeResponse(target, res); err != nil {
143983		return nil, err
143984	}
143985	return ret, nil
143986	// {
143987	//   "description": "Gets the current list of preconfigured Web Application Firewall (WAF) expressions.",
143988	//   "flatPath": "projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets",
143989	//   "httpMethod": "GET",
143990	//   "id": "compute.securityPolicies.listPreconfiguredExpressionSets",
143991	//   "parameterOrder": [
143992	//     "project"
143993	//   ],
143994	//   "parameters": {
143995	//     "filter": {
143996	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
143997	//       "location": "query",
143998	//       "type": "string"
143999	//     },
144000	//     "maxResults": {
144001	//       "default": "500",
144002	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
144003	//       "format": "uint32",
144004	//       "location": "query",
144005	//       "minimum": "0",
144006	//       "type": "integer"
144007	//     },
144008	//     "orderBy": {
144009	//       "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.",
144010	//       "location": "query",
144011	//       "type": "string"
144012	//     },
144013	//     "pageToken": {
144014	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
144015	//       "location": "query",
144016	//       "type": "string"
144017	//     },
144018	//     "project": {
144019	//       "description": "Project ID for this request.",
144020	//       "location": "path",
144021	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144022	//       "required": true,
144023	//       "type": "string"
144024	//     },
144025	//     "returnPartialSuccess": {
144026	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
144027	//       "location": "query",
144028	//       "type": "boolean"
144029	//     }
144030	//   },
144031	//   "path": "projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets",
144032	//   "response": {
144033	//     "$ref": "SecurityPoliciesListPreconfiguredExpressionSetsResponse"
144034	//   },
144035	//   "scopes": [
144036	//     "https://www.googleapis.com/auth/cloud-platform",
144037	//     "https://www.googleapis.com/auth/compute",
144038	//     "https://www.googleapis.com/auth/compute.readonly"
144039	//   ]
144040	// }
144041
144042}
144043
144044// method id "compute.securityPolicies.patch":
144045
144046type SecurityPoliciesPatchCall struct {
144047	s              *Service
144048	project        string
144049	securityPolicy string
144050	securitypolicy *SecurityPolicy
144051	urlParams_     gensupport.URLParams
144052	ctx_           context.Context
144053	header_        http.Header
144054}
144055
144056// Patch: Patches the specified policy with the data included in the
144057// request. This cannot be used to be update the rules in the policy.
144058// Please use the per rule methods like addRule, patchRule, and
144059// removeRule instead.
144060//
144061// - project: Project ID for this request.
144062// - securityPolicy: Name of the security policy to update.
144063func (r *SecurityPoliciesService) Patch(project string, securityPolicy string, securitypolicy *SecurityPolicy) *SecurityPoliciesPatchCall {
144064	c := &SecurityPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144065	c.project = project
144066	c.securityPolicy = securityPolicy
144067	c.securitypolicy = securitypolicy
144068	return c
144069}
144070
144071// RequestId sets the optional parameter "requestId": An optional
144072// request ID to identify requests. Specify a unique request ID so that
144073// if you must retry your request, the server will know to ignore the
144074// request if it has already been completed. For example, consider a
144075// situation where you make an initial request and the request times
144076// out. If you make the request again with the same request ID, the
144077// server can check if original operation with the same request ID was
144078// received, and if so, will ignore the second request. This prevents
144079// clients from accidentally creating duplicate commitments. The request
144080// ID must be a valid UUID with the exception that zero UUID is not
144081// supported ( 00000000-0000-0000-0000-000000000000).
144082func (c *SecurityPoliciesPatchCall) RequestId(requestId string) *SecurityPoliciesPatchCall {
144083	c.urlParams_.Set("requestId", requestId)
144084	return c
144085}
144086
144087// Fields allows partial responses to be retrieved. See
144088// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144089// for more information.
144090func (c *SecurityPoliciesPatchCall) Fields(s ...googleapi.Field) *SecurityPoliciesPatchCall {
144091	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144092	return c
144093}
144094
144095// Context sets the context to be used in this call's Do method. Any
144096// pending HTTP request will be aborted if the provided context is
144097// canceled.
144098func (c *SecurityPoliciesPatchCall) Context(ctx context.Context) *SecurityPoliciesPatchCall {
144099	c.ctx_ = ctx
144100	return c
144101}
144102
144103// Header returns an http.Header that can be modified by the caller to
144104// add HTTP headers to the request.
144105func (c *SecurityPoliciesPatchCall) Header() http.Header {
144106	if c.header_ == nil {
144107		c.header_ = make(http.Header)
144108	}
144109	return c.header_
144110}
144111
144112func (c *SecurityPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
144113	reqHeaders := make(http.Header)
144114	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
144115	for k, v := range c.header_ {
144116		reqHeaders[k] = v
144117	}
144118	reqHeaders.Set("User-Agent", c.s.userAgent())
144119	var body io.Reader = nil
144120	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
144121	if err != nil {
144122		return nil, err
144123	}
144124	reqHeaders.Set("Content-Type", "application/json")
144125	c.urlParams_.Set("alt", alt)
144126	c.urlParams_.Set("prettyPrint", "false")
144127	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}")
144128	urls += "?" + c.urlParams_.Encode()
144129	req, err := http.NewRequest("PATCH", urls, body)
144130	if err != nil {
144131		return nil, err
144132	}
144133	req.Header = reqHeaders
144134	googleapi.Expand(req.URL, map[string]string{
144135		"project":        c.project,
144136		"securityPolicy": c.securityPolicy,
144137	})
144138	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144139}
144140
144141// Do executes the "compute.securityPolicies.patch" call.
144142// Exactly one of *Operation or error will be non-nil. Any non-2xx
144143// status code is an error. Response headers are in either
144144// *Operation.ServerResponse.Header or (if a response was returned at
144145// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
144146// to check whether the returned error was because
144147// http.StatusNotModified was returned.
144148func (c *SecurityPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
144149	gensupport.SetOptions(c.urlParams_, opts...)
144150	res, err := c.doRequest("json")
144151	if res != nil && res.StatusCode == http.StatusNotModified {
144152		if res.Body != nil {
144153			res.Body.Close()
144154		}
144155		return nil, &googleapi.Error{
144156			Code:   res.StatusCode,
144157			Header: res.Header,
144158		}
144159	}
144160	if err != nil {
144161		return nil, err
144162	}
144163	defer googleapi.CloseBody(res)
144164	if err := googleapi.CheckResponse(res); err != nil {
144165		return nil, err
144166	}
144167	ret := &Operation{
144168		ServerResponse: googleapi.ServerResponse{
144169			Header:         res.Header,
144170			HTTPStatusCode: res.StatusCode,
144171		},
144172	}
144173	target := &ret
144174	if err := gensupport.DecodeResponse(target, res); err != nil {
144175		return nil, err
144176	}
144177	return ret, nil
144178	// {
144179	//   "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.",
144180	//   "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}",
144181	//   "httpMethod": "PATCH",
144182	//   "id": "compute.securityPolicies.patch",
144183	//   "parameterOrder": [
144184	//     "project",
144185	//     "securityPolicy"
144186	//   ],
144187	//   "parameters": {
144188	//     "project": {
144189	//       "description": "Project ID for this request.",
144190	//       "location": "path",
144191	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144192	//       "required": true,
144193	//       "type": "string"
144194	//     },
144195	//     "requestId": {
144196	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
144197	//       "location": "query",
144198	//       "type": "string"
144199	//     },
144200	//     "securityPolicy": {
144201	//       "description": "Name of the security policy to update.",
144202	//       "location": "path",
144203	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144204	//       "required": true,
144205	//       "type": "string"
144206	//     }
144207	//   },
144208	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}",
144209	//   "request": {
144210	//     "$ref": "SecurityPolicy"
144211	//   },
144212	//   "response": {
144213	//     "$ref": "Operation"
144214	//   },
144215	//   "scopes": [
144216	//     "https://www.googleapis.com/auth/cloud-platform",
144217	//     "https://www.googleapis.com/auth/compute"
144218	//   ]
144219	// }
144220
144221}
144222
144223// method id "compute.securityPolicies.patchRule":
144224
144225type SecurityPoliciesPatchRuleCall struct {
144226	s                  *Service
144227	project            string
144228	securityPolicy     string
144229	securitypolicyrule *SecurityPolicyRule
144230	urlParams_         gensupport.URLParams
144231	ctx_               context.Context
144232	header_            http.Header
144233}
144234
144235// PatchRule: Patches a rule at the specified priority.
144236//
144237// - project: Project ID for this request.
144238// - securityPolicy: Name of the security policy to update.
144239func (r *SecurityPoliciesService) PatchRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesPatchRuleCall {
144240	c := &SecurityPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144241	c.project = project
144242	c.securityPolicy = securityPolicy
144243	c.securitypolicyrule = securitypolicyrule
144244	return c
144245}
144246
144247// Priority sets the optional parameter "priority": The priority of the
144248// rule to patch.
144249func (c *SecurityPoliciesPatchRuleCall) Priority(priority int64) *SecurityPoliciesPatchRuleCall {
144250	c.urlParams_.Set("priority", fmt.Sprint(priority))
144251	return c
144252}
144253
144254// Fields allows partial responses to be retrieved. See
144255// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144256// for more information.
144257func (c *SecurityPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesPatchRuleCall {
144258	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144259	return c
144260}
144261
144262// Context sets the context to be used in this call's Do method. Any
144263// pending HTTP request will be aborted if the provided context is
144264// canceled.
144265func (c *SecurityPoliciesPatchRuleCall) Context(ctx context.Context) *SecurityPoliciesPatchRuleCall {
144266	c.ctx_ = ctx
144267	return c
144268}
144269
144270// Header returns an http.Header that can be modified by the caller to
144271// add HTTP headers to the request.
144272func (c *SecurityPoliciesPatchRuleCall) Header() http.Header {
144273	if c.header_ == nil {
144274		c.header_ = make(http.Header)
144275	}
144276	return c.header_
144277}
144278
144279func (c *SecurityPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) {
144280	reqHeaders := make(http.Header)
144281	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
144282	for k, v := range c.header_ {
144283		reqHeaders[k] = v
144284	}
144285	reqHeaders.Set("User-Agent", c.s.userAgent())
144286	var body io.Reader = nil
144287	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
144288	if err != nil {
144289		return nil, err
144290	}
144291	reqHeaders.Set("Content-Type", "application/json")
144292	c.urlParams_.Set("alt", alt)
144293	c.urlParams_.Set("prettyPrint", "false")
144294	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule")
144295	urls += "?" + c.urlParams_.Encode()
144296	req, err := http.NewRequest("POST", urls, body)
144297	if err != nil {
144298		return nil, err
144299	}
144300	req.Header = reqHeaders
144301	googleapi.Expand(req.URL, map[string]string{
144302		"project":        c.project,
144303		"securityPolicy": c.securityPolicy,
144304	})
144305	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144306}
144307
144308// Do executes the "compute.securityPolicies.patchRule" call.
144309// Exactly one of *Operation or error will be non-nil. Any non-2xx
144310// status code is an error. Response headers are in either
144311// *Operation.ServerResponse.Header or (if a response was returned at
144312// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
144313// to check whether the returned error was because
144314// http.StatusNotModified was returned.
144315func (c *SecurityPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
144316	gensupport.SetOptions(c.urlParams_, opts...)
144317	res, err := c.doRequest("json")
144318	if res != nil && res.StatusCode == http.StatusNotModified {
144319		if res.Body != nil {
144320			res.Body.Close()
144321		}
144322		return nil, &googleapi.Error{
144323			Code:   res.StatusCode,
144324			Header: res.Header,
144325		}
144326	}
144327	if err != nil {
144328		return nil, err
144329	}
144330	defer googleapi.CloseBody(res)
144331	if err := googleapi.CheckResponse(res); err != nil {
144332		return nil, err
144333	}
144334	ret := &Operation{
144335		ServerResponse: googleapi.ServerResponse{
144336			Header:         res.Header,
144337			HTTPStatusCode: res.StatusCode,
144338		},
144339	}
144340	target := &ret
144341	if err := gensupport.DecodeResponse(target, res); err != nil {
144342		return nil, err
144343	}
144344	return ret, nil
144345	// {
144346	//   "description": "Patches a rule at the specified priority.",
144347	//   "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule",
144348	//   "httpMethod": "POST",
144349	//   "id": "compute.securityPolicies.patchRule",
144350	//   "parameterOrder": [
144351	//     "project",
144352	//     "securityPolicy"
144353	//   ],
144354	//   "parameters": {
144355	//     "priority": {
144356	//       "description": "The priority of the rule to patch.",
144357	//       "format": "int32",
144358	//       "location": "query",
144359	//       "type": "integer"
144360	//     },
144361	//     "project": {
144362	//       "description": "Project ID for this request.",
144363	//       "location": "path",
144364	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144365	//       "required": true,
144366	//       "type": "string"
144367	//     },
144368	//     "securityPolicy": {
144369	//       "description": "Name of the security policy to update.",
144370	//       "location": "path",
144371	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144372	//       "required": true,
144373	//       "type": "string"
144374	//     }
144375	//   },
144376	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule",
144377	//   "request": {
144378	//     "$ref": "SecurityPolicyRule"
144379	//   },
144380	//   "response": {
144381	//     "$ref": "Operation"
144382	//   },
144383	//   "scopes": [
144384	//     "https://www.googleapis.com/auth/cloud-platform",
144385	//     "https://www.googleapis.com/auth/compute"
144386	//   ]
144387	// }
144388
144389}
144390
144391// method id "compute.securityPolicies.removeRule":
144392
144393type SecurityPoliciesRemoveRuleCall struct {
144394	s              *Service
144395	project        string
144396	securityPolicy string
144397	urlParams_     gensupport.URLParams
144398	ctx_           context.Context
144399	header_        http.Header
144400}
144401
144402// RemoveRule: Deletes a rule at the specified priority.
144403//
144404// - project: Project ID for this request.
144405// - securityPolicy: Name of the security policy to update.
144406func (r *SecurityPoliciesService) RemoveRule(project string, securityPolicy string) *SecurityPoliciesRemoveRuleCall {
144407	c := &SecurityPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144408	c.project = project
144409	c.securityPolicy = securityPolicy
144410	return c
144411}
144412
144413// Priority sets the optional parameter "priority": The priority of the
144414// rule to remove from the security policy.
144415func (c *SecurityPoliciesRemoveRuleCall) Priority(priority int64) *SecurityPoliciesRemoveRuleCall {
144416	c.urlParams_.Set("priority", fmt.Sprint(priority))
144417	return c
144418}
144419
144420// Fields allows partial responses to be retrieved. See
144421// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144422// for more information.
144423func (c *SecurityPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesRemoveRuleCall {
144424	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144425	return c
144426}
144427
144428// Context sets the context to be used in this call's Do method. Any
144429// pending HTTP request will be aborted if the provided context is
144430// canceled.
144431func (c *SecurityPoliciesRemoveRuleCall) Context(ctx context.Context) *SecurityPoliciesRemoveRuleCall {
144432	c.ctx_ = ctx
144433	return c
144434}
144435
144436// Header returns an http.Header that can be modified by the caller to
144437// add HTTP headers to the request.
144438func (c *SecurityPoliciesRemoveRuleCall) Header() http.Header {
144439	if c.header_ == nil {
144440		c.header_ = make(http.Header)
144441	}
144442	return c.header_
144443}
144444
144445func (c *SecurityPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) {
144446	reqHeaders := make(http.Header)
144447	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
144448	for k, v := range c.header_ {
144449		reqHeaders[k] = v
144450	}
144451	reqHeaders.Set("User-Agent", c.s.userAgent())
144452	var body io.Reader = nil
144453	c.urlParams_.Set("alt", alt)
144454	c.urlParams_.Set("prettyPrint", "false")
144455	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}/removeRule")
144456	urls += "?" + c.urlParams_.Encode()
144457	req, err := http.NewRequest("POST", urls, body)
144458	if err != nil {
144459		return nil, err
144460	}
144461	req.Header = reqHeaders
144462	googleapi.Expand(req.URL, map[string]string{
144463		"project":        c.project,
144464		"securityPolicy": c.securityPolicy,
144465	})
144466	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144467}
144468
144469// Do executes the "compute.securityPolicies.removeRule" call.
144470// Exactly one of *Operation or error will be non-nil. Any non-2xx
144471// status code is an error. Response headers are in either
144472// *Operation.ServerResponse.Header or (if a response was returned at
144473// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
144474// to check whether the returned error was because
144475// http.StatusNotModified was returned.
144476func (c *SecurityPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
144477	gensupport.SetOptions(c.urlParams_, opts...)
144478	res, err := c.doRequest("json")
144479	if res != nil && res.StatusCode == http.StatusNotModified {
144480		if res.Body != nil {
144481			res.Body.Close()
144482		}
144483		return nil, &googleapi.Error{
144484			Code:   res.StatusCode,
144485			Header: res.Header,
144486		}
144487	}
144488	if err != nil {
144489		return nil, err
144490	}
144491	defer googleapi.CloseBody(res)
144492	if err := googleapi.CheckResponse(res); err != nil {
144493		return nil, err
144494	}
144495	ret := &Operation{
144496		ServerResponse: googleapi.ServerResponse{
144497			Header:         res.Header,
144498			HTTPStatusCode: res.StatusCode,
144499		},
144500	}
144501	target := &ret
144502	if err := gensupport.DecodeResponse(target, res); err != nil {
144503		return nil, err
144504	}
144505	return ret, nil
144506	// {
144507	//   "description": "Deletes a rule at the specified priority.",
144508	//   "flatPath": "projects/{project}/global/securityPolicies/{securityPolicy}/removeRule",
144509	//   "httpMethod": "POST",
144510	//   "id": "compute.securityPolicies.removeRule",
144511	//   "parameterOrder": [
144512	//     "project",
144513	//     "securityPolicy"
144514	//   ],
144515	//   "parameters": {
144516	//     "priority": {
144517	//       "description": "The priority of the rule to remove from the security policy.",
144518	//       "format": "int32",
144519	//       "location": "query",
144520	//       "type": "integer"
144521	//     },
144522	//     "project": {
144523	//       "description": "Project ID for this request.",
144524	//       "location": "path",
144525	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144526	//       "required": true,
144527	//       "type": "string"
144528	//     },
144529	//     "securityPolicy": {
144530	//       "description": "Name of the security policy to update.",
144531	//       "location": "path",
144532	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144533	//       "required": true,
144534	//       "type": "string"
144535	//     }
144536	//   },
144537	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}/removeRule",
144538	//   "response": {
144539	//     "$ref": "Operation"
144540	//   },
144541	//   "scopes": [
144542	//     "https://www.googleapis.com/auth/cloud-platform",
144543	//     "https://www.googleapis.com/auth/compute"
144544	//   ]
144545	// }
144546
144547}
144548
144549// method id "compute.serviceAttachments.aggregatedList":
144550
144551type ServiceAttachmentsAggregatedListCall struct {
144552	s            *Service
144553	project      string
144554	urlParams_   gensupport.URLParams
144555	ifNoneMatch_ string
144556	ctx_         context.Context
144557	header_      http.Header
144558}
144559
144560// AggregatedList: Retrieves the list of all ServiceAttachment
144561// resources, regional and global, available to the specified project.
144562//
144563// - project: Name of the project scoping this request.
144564func (r *ServiceAttachmentsService) AggregatedList(project string) *ServiceAttachmentsAggregatedListCall {
144565	c := &ServiceAttachmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144566	c.project = project
144567	return c
144568}
144569
144570// Filter sets the optional parameter "filter": A filter expression that
144571// filters resources listed in the response. The expression must specify
144572// the field name, a comparison operator, and the value that you want to
144573// use for filtering. The value must be a string, a number, or a
144574// boolean. The comparison operator must be either `=`, `!=`, `>`, or
144575// `<`. For example, if you are filtering Compute Engine instances, you
144576// can exclude instances named `example-instance` by specifying `name !=
144577// example-instance`. You can also filter nested fields. For example,
144578// you could specify `scheduling.automaticRestart = false` to include
144579// instances only if they are not scheduled for automatic restarts. You
144580// can use filtering on nested fields to filter based on resource
144581// labels. To filter on multiple expressions, provide each separate
144582// expression within parentheses. For example: ```
144583// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
144584// ``` By default, each expression is an `AND` expression. However, you
144585// can include `AND` and `OR` expressions explicitly. For example: ```
144586// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
144587// AND (scheduling.automaticRestart = true) ```
144588func (c *ServiceAttachmentsAggregatedListCall) Filter(filter string) *ServiceAttachmentsAggregatedListCall {
144589	c.urlParams_.Set("filter", filter)
144590	return c
144591}
144592
144593// IncludeAllScopes sets the optional parameter "includeAllScopes":
144594// Indicates whether every visible scope for each scope type (zone,
144595// region, global) should be included in the response. For new resource
144596// types added after this field, the flag has no effect as new resource
144597// types will always include every visible scope for each scope type in
144598// response. For resource types which predate this field, if this flag
144599// is omitted or false, only scopes of the scope types where the
144600// resource type is expected to be found will be included.
144601func (c *ServiceAttachmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ServiceAttachmentsAggregatedListCall {
144602	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
144603	return c
144604}
144605
144606// MaxResults sets the optional parameter "maxResults": The maximum
144607// number of results per page that should be returned. If the number of
144608// available results is larger than `maxResults`, Compute Engine returns
144609// a `nextPageToken` that can be used to get the next page of results in
144610// subsequent list requests. Acceptable values are `0` to `500`,
144611// inclusive. (Default: `500`)
144612func (c *ServiceAttachmentsAggregatedListCall) MaxResults(maxResults int64) *ServiceAttachmentsAggregatedListCall {
144613	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
144614	return c
144615}
144616
144617// OrderBy sets the optional parameter "orderBy": Sorts list results by
144618// a certain order. By default, results are returned in alphanumerical
144619// order based on the resource name. You can also sort results in
144620// descending order based on the creation timestamp using
144621// `orderBy="creationTimestamp desc". This sorts results based on the
144622// `creationTimestamp` field in reverse chronological order (newest
144623// result first). Use this to sort resources like operations so that the
144624// newest operation is returned first. Currently, only sorting by `name`
144625// or `creationTimestamp desc` is supported.
144626func (c *ServiceAttachmentsAggregatedListCall) OrderBy(orderBy string) *ServiceAttachmentsAggregatedListCall {
144627	c.urlParams_.Set("orderBy", orderBy)
144628	return c
144629}
144630
144631// PageToken sets the optional parameter "pageToken": Specifies a page
144632// token to use. Set `pageToken` to the `nextPageToken` returned by a
144633// previous list request to get the next page of results.
144634func (c *ServiceAttachmentsAggregatedListCall) PageToken(pageToken string) *ServiceAttachmentsAggregatedListCall {
144635	c.urlParams_.Set("pageToken", pageToken)
144636	return c
144637}
144638
144639// ReturnPartialSuccess sets the optional parameter
144640// "returnPartialSuccess": Opt-in for partial success behavior which
144641// provides partial results in case of failure. The default value is
144642// false.
144643func (c *ServiceAttachmentsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ServiceAttachmentsAggregatedListCall {
144644	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
144645	return c
144646}
144647
144648// Fields allows partial responses to be retrieved. See
144649// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144650// for more information.
144651func (c *ServiceAttachmentsAggregatedListCall) Fields(s ...googleapi.Field) *ServiceAttachmentsAggregatedListCall {
144652	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144653	return c
144654}
144655
144656// IfNoneMatch sets the optional parameter which makes the operation
144657// fail if the object's ETag matches the given value. This is useful for
144658// getting updates only after the object has changed since the last
144659// request. Use googleapi.IsNotModified to check whether the response
144660// error from Do is the result of In-None-Match.
144661func (c *ServiceAttachmentsAggregatedListCall) IfNoneMatch(entityTag string) *ServiceAttachmentsAggregatedListCall {
144662	c.ifNoneMatch_ = entityTag
144663	return c
144664}
144665
144666// Context sets the context to be used in this call's Do method. Any
144667// pending HTTP request will be aborted if the provided context is
144668// canceled.
144669func (c *ServiceAttachmentsAggregatedListCall) Context(ctx context.Context) *ServiceAttachmentsAggregatedListCall {
144670	c.ctx_ = ctx
144671	return c
144672}
144673
144674// Header returns an http.Header that can be modified by the caller to
144675// add HTTP headers to the request.
144676func (c *ServiceAttachmentsAggregatedListCall) Header() http.Header {
144677	if c.header_ == nil {
144678		c.header_ = make(http.Header)
144679	}
144680	return c.header_
144681}
144682
144683func (c *ServiceAttachmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
144684	reqHeaders := make(http.Header)
144685	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
144686	for k, v := range c.header_ {
144687		reqHeaders[k] = v
144688	}
144689	reqHeaders.Set("User-Agent", c.s.userAgent())
144690	if c.ifNoneMatch_ != "" {
144691		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
144692	}
144693	var body io.Reader = nil
144694	c.urlParams_.Set("alt", alt)
144695	c.urlParams_.Set("prettyPrint", "false")
144696	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/serviceAttachments")
144697	urls += "?" + c.urlParams_.Encode()
144698	req, err := http.NewRequest("GET", urls, body)
144699	if err != nil {
144700		return nil, err
144701	}
144702	req.Header = reqHeaders
144703	googleapi.Expand(req.URL, map[string]string{
144704		"project": c.project,
144705	})
144706	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144707}
144708
144709// Do executes the "compute.serviceAttachments.aggregatedList" call.
144710// Exactly one of *ServiceAttachmentAggregatedList or error will be
144711// non-nil. Any non-2xx status code is an error. Response headers are in
144712// either *ServiceAttachmentAggregatedList.ServerResponse.Header or (if
144713// a response was returned at all) in error.(*googleapi.Error).Header.
144714// Use googleapi.IsNotModified to check whether the returned error was
144715// because http.StatusNotModified was returned.
144716func (c *ServiceAttachmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*ServiceAttachmentAggregatedList, error) {
144717	gensupport.SetOptions(c.urlParams_, opts...)
144718	res, err := c.doRequest("json")
144719	if res != nil && res.StatusCode == http.StatusNotModified {
144720		if res.Body != nil {
144721			res.Body.Close()
144722		}
144723		return nil, &googleapi.Error{
144724			Code:   res.StatusCode,
144725			Header: res.Header,
144726		}
144727	}
144728	if err != nil {
144729		return nil, err
144730	}
144731	defer googleapi.CloseBody(res)
144732	if err := googleapi.CheckResponse(res); err != nil {
144733		return nil, err
144734	}
144735	ret := &ServiceAttachmentAggregatedList{
144736		ServerResponse: googleapi.ServerResponse{
144737			Header:         res.Header,
144738			HTTPStatusCode: res.StatusCode,
144739		},
144740	}
144741	target := &ret
144742	if err := gensupport.DecodeResponse(target, res); err != nil {
144743		return nil, err
144744	}
144745	return ret, nil
144746	// {
144747	//   "description": "Retrieves the list of all ServiceAttachment resources, regional and global, available to the specified project.",
144748	//   "flatPath": "projects/{project}/aggregated/serviceAttachments",
144749	//   "httpMethod": "GET",
144750	//   "id": "compute.serviceAttachments.aggregatedList",
144751	//   "parameterOrder": [
144752	//     "project"
144753	//   ],
144754	//   "parameters": {
144755	//     "filter": {
144756	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
144757	//       "location": "query",
144758	//       "type": "string"
144759	//     },
144760	//     "includeAllScopes": {
144761	//       "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.",
144762	//       "location": "query",
144763	//       "type": "boolean"
144764	//     },
144765	//     "maxResults": {
144766	//       "default": "500",
144767	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
144768	//       "format": "uint32",
144769	//       "location": "query",
144770	//       "minimum": "0",
144771	//       "type": "integer"
144772	//     },
144773	//     "orderBy": {
144774	//       "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.",
144775	//       "location": "query",
144776	//       "type": "string"
144777	//     },
144778	//     "pageToken": {
144779	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
144780	//       "location": "query",
144781	//       "type": "string"
144782	//     },
144783	//     "project": {
144784	//       "description": "Name of the project scoping this request.",
144785	//       "location": "path",
144786	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144787	//       "required": true,
144788	//       "type": "string"
144789	//     },
144790	//     "returnPartialSuccess": {
144791	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
144792	//       "location": "query",
144793	//       "type": "boolean"
144794	//     }
144795	//   },
144796	//   "path": "projects/{project}/aggregated/serviceAttachments",
144797	//   "response": {
144798	//     "$ref": "ServiceAttachmentAggregatedList"
144799	//   },
144800	//   "scopes": [
144801	//     "https://www.googleapis.com/auth/cloud-platform",
144802	//     "https://www.googleapis.com/auth/compute",
144803	//     "https://www.googleapis.com/auth/compute.readonly"
144804	//   ]
144805	// }
144806
144807}
144808
144809// Pages invokes f for each page of results.
144810// A non-nil error returned from f will halt the iteration.
144811// The provided context supersedes any context provided to the Context method.
144812func (c *ServiceAttachmentsAggregatedListCall) Pages(ctx context.Context, f func(*ServiceAttachmentAggregatedList) error) error {
144813	c.ctx_ = ctx
144814	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
144815	for {
144816		x, err := c.Do()
144817		if err != nil {
144818			return err
144819		}
144820		if err := f(x); err != nil {
144821			return err
144822		}
144823		if x.NextPageToken == "" {
144824			return nil
144825		}
144826		c.PageToken(x.NextPageToken)
144827	}
144828}
144829
144830// method id "compute.serviceAttachments.delete":
144831
144832type ServiceAttachmentsDeleteCall struct {
144833	s                 *Service
144834	project           string
144835	region            string
144836	serviceAttachment string
144837	urlParams_        gensupport.URLParams
144838	ctx_              context.Context
144839	header_           http.Header
144840}
144841
144842// Delete: Deletes the specified ServiceAttachment in the given scope
144843//
144844// - project: Project ID for this request.
144845// - region: Name of the region of this request.
144846// - serviceAttachment: Name of the ServiceAttachment resource to
144847//   delete.
144848func (r *ServiceAttachmentsService) Delete(project string, region string, serviceAttachment string) *ServiceAttachmentsDeleteCall {
144849	c := &ServiceAttachmentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144850	c.project = project
144851	c.region = region
144852	c.serviceAttachment = serviceAttachment
144853	return c
144854}
144855
144856// RequestId sets the optional parameter "requestId": An optional
144857// request ID to identify requests. Specify a unique request ID so that
144858// if you must retry your request, the server will know to ignore the
144859// request if it has already been completed. For example, consider a
144860// situation where you make an initial request and the request times
144861// out. If you make the request again with the same request ID, the
144862// server can check if original operation with the same request ID was
144863// received, and if so, will ignore the second request. This prevents
144864// clients from accidentally creating duplicate commitments. The request
144865// ID must be a valid UUID with the exception that zero UUID is not
144866// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
144867// MixerMutationRequestBuilder
144868func (c *ServiceAttachmentsDeleteCall) RequestId(requestId string) *ServiceAttachmentsDeleteCall {
144869	c.urlParams_.Set("requestId", requestId)
144870	return c
144871}
144872
144873// Fields allows partial responses to be retrieved. See
144874// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144875// for more information.
144876func (c *ServiceAttachmentsDeleteCall) Fields(s ...googleapi.Field) *ServiceAttachmentsDeleteCall {
144877	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144878	return c
144879}
144880
144881// Context sets the context to be used in this call's Do method. Any
144882// pending HTTP request will be aborted if the provided context is
144883// canceled.
144884func (c *ServiceAttachmentsDeleteCall) Context(ctx context.Context) *ServiceAttachmentsDeleteCall {
144885	c.ctx_ = ctx
144886	return c
144887}
144888
144889// Header returns an http.Header that can be modified by the caller to
144890// add HTTP headers to the request.
144891func (c *ServiceAttachmentsDeleteCall) Header() http.Header {
144892	if c.header_ == nil {
144893		c.header_ = make(http.Header)
144894	}
144895	return c.header_
144896}
144897
144898func (c *ServiceAttachmentsDeleteCall) doRequest(alt string) (*http.Response, error) {
144899	reqHeaders := make(http.Header)
144900	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
144901	for k, v := range c.header_ {
144902		reqHeaders[k] = v
144903	}
144904	reqHeaders.Set("User-Agent", c.s.userAgent())
144905	var body io.Reader = nil
144906	c.urlParams_.Set("alt", alt)
144907	c.urlParams_.Set("prettyPrint", "false")
144908	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}")
144909	urls += "?" + c.urlParams_.Encode()
144910	req, err := http.NewRequest("DELETE", urls, body)
144911	if err != nil {
144912		return nil, err
144913	}
144914	req.Header = reqHeaders
144915	googleapi.Expand(req.URL, map[string]string{
144916		"project":           c.project,
144917		"region":            c.region,
144918		"serviceAttachment": c.serviceAttachment,
144919	})
144920	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144921}
144922
144923// Do executes the "compute.serviceAttachments.delete" call.
144924// Exactly one of *Operation or error will be non-nil. Any non-2xx
144925// status code is an error. Response headers are in either
144926// *Operation.ServerResponse.Header or (if a response was returned at
144927// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
144928// to check whether the returned error was because
144929// http.StatusNotModified was returned.
144930func (c *ServiceAttachmentsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
144931	gensupport.SetOptions(c.urlParams_, opts...)
144932	res, err := c.doRequest("json")
144933	if res != nil && res.StatusCode == http.StatusNotModified {
144934		if res.Body != nil {
144935			res.Body.Close()
144936		}
144937		return nil, &googleapi.Error{
144938			Code:   res.StatusCode,
144939			Header: res.Header,
144940		}
144941	}
144942	if err != nil {
144943		return nil, err
144944	}
144945	defer googleapi.CloseBody(res)
144946	if err := googleapi.CheckResponse(res); err != nil {
144947		return nil, err
144948	}
144949	ret := &Operation{
144950		ServerResponse: googleapi.ServerResponse{
144951			Header:         res.Header,
144952			HTTPStatusCode: res.StatusCode,
144953		},
144954	}
144955	target := &ret
144956	if err := gensupport.DecodeResponse(target, res); err != nil {
144957		return nil, err
144958	}
144959	return ret, nil
144960	// {
144961	//   "description": "Deletes the specified ServiceAttachment in the given scope",
144962	//   "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}",
144963	//   "httpMethod": "DELETE",
144964	//   "id": "compute.serviceAttachments.delete",
144965	//   "parameterOrder": [
144966	//     "project",
144967	//     "region",
144968	//     "serviceAttachment"
144969	//   ],
144970	//   "parameters": {
144971	//     "project": {
144972	//       "description": "Project ID for this request.",
144973	//       "location": "path",
144974	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144975	//       "required": true,
144976	//       "type": "string"
144977	//     },
144978	//     "region": {
144979	//       "description": "Name of the region of this request.",
144980	//       "location": "path",
144981	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144982	//       "required": true,
144983	//       "type": "string"
144984	//     },
144985	//     "requestId": {
144986	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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",
144987	//       "location": "query",
144988	//       "type": "string"
144989	//     },
144990	//     "serviceAttachment": {
144991	//       "description": "Name of the ServiceAttachment resource to delete.",
144992	//       "location": "path",
144993	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144994	//       "required": true,
144995	//       "type": "string"
144996	//     }
144997	//   },
144998	//   "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}",
144999	//   "response": {
145000	//     "$ref": "Operation"
145001	//   },
145002	//   "scopes": [
145003	//     "https://www.googleapis.com/auth/cloud-platform",
145004	//     "https://www.googleapis.com/auth/compute"
145005	//   ]
145006	// }
145007
145008}
145009
145010// method id "compute.serviceAttachments.get":
145011
145012type ServiceAttachmentsGetCall struct {
145013	s                 *Service
145014	project           string
145015	region            string
145016	serviceAttachment string
145017	urlParams_        gensupport.URLParams
145018	ifNoneMatch_      string
145019	ctx_              context.Context
145020	header_           http.Header
145021}
145022
145023// Get: Returns the specified ServiceAttachment resource in the given
145024// scope.
145025//
145026// - project: Project ID for this request.
145027// - region: Name of the region of this request.
145028// - serviceAttachment: Name of the ServiceAttachment resource to
145029//   return.
145030func (r *ServiceAttachmentsService) Get(project string, region string, serviceAttachment string) *ServiceAttachmentsGetCall {
145031	c := &ServiceAttachmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145032	c.project = project
145033	c.region = region
145034	c.serviceAttachment = serviceAttachment
145035	return c
145036}
145037
145038// Fields allows partial responses to be retrieved. See
145039// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145040// for more information.
145041func (c *ServiceAttachmentsGetCall) Fields(s ...googleapi.Field) *ServiceAttachmentsGetCall {
145042	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145043	return c
145044}
145045
145046// IfNoneMatch sets the optional parameter which makes the operation
145047// fail if the object's ETag matches the given value. This is useful for
145048// getting updates only after the object has changed since the last
145049// request. Use googleapi.IsNotModified to check whether the response
145050// error from Do is the result of In-None-Match.
145051func (c *ServiceAttachmentsGetCall) IfNoneMatch(entityTag string) *ServiceAttachmentsGetCall {
145052	c.ifNoneMatch_ = entityTag
145053	return c
145054}
145055
145056// Context sets the context to be used in this call's Do method. Any
145057// pending HTTP request will be aborted if the provided context is
145058// canceled.
145059func (c *ServiceAttachmentsGetCall) Context(ctx context.Context) *ServiceAttachmentsGetCall {
145060	c.ctx_ = ctx
145061	return c
145062}
145063
145064// Header returns an http.Header that can be modified by the caller to
145065// add HTTP headers to the request.
145066func (c *ServiceAttachmentsGetCall) Header() http.Header {
145067	if c.header_ == nil {
145068		c.header_ = make(http.Header)
145069	}
145070	return c.header_
145071}
145072
145073func (c *ServiceAttachmentsGetCall) doRequest(alt string) (*http.Response, error) {
145074	reqHeaders := make(http.Header)
145075	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
145076	for k, v := range c.header_ {
145077		reqHeaders[k] = v
145078	}
145079	reqHeaders.Set("User-Agent", c.s.userAgent())
145080	if c.ifNoneMatch_ != "" {
145081		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
145082	}
145083	var body io.Reader = nil
145084	c.urlParams_.Set("alt", alt)
145085	c.urlParams_.Set("prettyPrint", "false")
145086	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}")
145087	urls += "?" + c.urlParams_.Encode()
145088	req, err := http.NewRequest("GET", urls, body)
145089	if err != nil {
145090		return nil, err
145091	}
145092	req.Header = reqHeaders
145093	googleapi.Expand(req.URL, map[string]string{
145094		"project":           c.project,
145095		"region":            c.region,
145096		"serviceAttachment": c.serviceAttachment,
145097	})
145098	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145099}
145100
145101// Do executes the "compute.serviceAttachments.get" call.
145102// Exactly one of *ServiceAttachment or error will be non-nil. Any
145103// non-2xx status code is an error. Response headers are in either
145104// *ServiceAttachment.ServerResponse.Header or (if a response was
145105// returned at all) in error.(*googleapi.Error).Header. Use
145106// googleapi.IsNotModified to check whether the returned error was
145107// because http.StatusNotModified was returned.
145108func (c *ServiceAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*ServiceAttachment, error) {
145109	gensupport.SetOptions(c.urlParams_, opts...)
145110	res, err := c.doRequest("json")
145111	if res != nil && res.StatusCode == http.StatusNotModified {
145112		if res.Body != nil {
145113			res.Body.Close()
145114		}
145115		return nil, &googleapi.Error{
145116			Code:   res.StatusCode,
145117			Header: res.Header,
145118		}
145119	}
145120	if err != nil {
145121		return nil, err
145122	}
145123	defer googleapi.CloseBody(res)
145124	if err := googleapi.CheckResponse(res); err != nil {
145125		return nil, err
145126	}
145127	ret := &ServiceAttachment{
145128		ServerResponse: googleapi.ServerResponse{
145129			Header:         res.Header,
145130			HTTPStatusCode: res.StatusCode,
145131		},
145132	}
145133	target := &ret
145134	if err := gensupport.DecodeResponse(target, res); err != nil {
145135		return nil, err
145136	}
145137	return ret, nil
145138	// {
145139	//   "description": "Returns the specified ServiceAttachment resource in the given scope.",
145140	//   "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}",
145141	//   "httpMethod": "GET",
145142	//   "id": "compute.serviceAttachments.get",
145143	//   "parameterOrder": [
145144	//     "project",
145145	//     "region",
145146	//     "serviceAttachment"
145147	//   ],
145148	//   "parameters": {
145149	//     "project": {
145150	//       "description": "Project ID for this request.",
145151	//       "location": "path",
145152	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145153	//       "required": true,
145154	//       "type": "string"
145155	//     },
145156	//     "region": {
145157	//       "description": "Name of the region of this request.",
145158	//       "location": "path",
145159	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145160	//       "required": true,
145161	//       "type": "string"
145162	//     },
145163	//     "serviceAttachment": {
145164	//       "description": "Name of the ServiceAttachment resource to return.",
145165	//       "location": "path",
145166	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145167	//       "required": true,
145168	//       "type": "string"
145169	//     }
145170	//   },
145171	//   "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}",
145172	//   "response": {
145173	//     "$ref": "ServiceAttachment"
145174	//   },
145175	//   "scopes": [
145176	//     "https://www.googleapis.com/auth/cloud-platform",
145177	//     "https://www.googleapis.com/auth/compute",
145178	//     "https://www.googleapis.com/auth/compute.readonly"
145179	//   ]
145180	// }
145181
145182}
145183
145184// method id "compute.serviceAttachments.getIamPolicy":
145185
145186type ServiceAttachmentsGetIamPolicyCall struct {
145187	s            *Service
145188	project      string
145189	region       string
145190	resource     string
145191	urlParams_   gensupport.URLParams
145192	ifNoneMatch_ string
145193	ctx_         context.Context
145194	header_      http.Header
145195}
145196
145197// GetIamPolicy: Gets the access control policy for a resource. May be
145198// empty if no such policy or resource exists.
145199//
145200// - project: Project ID for this request.
145201// - region: The name of the region for this request.
145202// - resource: Name or id of the resource for this request.
145203func (r *ServiceAttachmentsService) GetIamPolicy(project string, region string, resource string) *ServiceAttachmentsGetIamPolicyCall {
145204	c := &ServiceAttachmentsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145205	c.project = project
145206	c.region = region
145207	c.resource = resource
145208	return c
145209}
145210
145211// OptionsRequestedPolicyVersion sets the optional parameter
145212// "optionsRequestedPolicyVersion": Requested IAM Policy version.
145213func (c *ServiceAttachmentsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ServiceAttachmentsGetIamPolicyCall {
145214	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
145215	return c
145216}
145217
145218// Fields allows partial responses to be retrieved. See
145219// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145220// for more information.
145221func (c *ServiceAttachmentsGetIamPolicyCall) Fields(s ...googleapi.Field) *ServiceAttachmentsGetIamPolicyCall {
145222	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145223	return c
145224}
145225
145226// IfNoneMatch sets the optional parameter which makes the operation
145227// fail if the object's ETag matches the given value. This is useful for
145228// getting updates only after the object has changed since the last
145229// request. Use googleapi.IsNotModified to check whether the response
145230// error from Do is the result of In-None-Match.
145231func (c *ServiceAttachmentsGetIamPolicyCall) IfNoneMatch(entityTag string) *ServiceAttachmentsGetIamPolicyCall {
145232	c.ifNoneMatch_ = entityTag
145233	return c
145234}
145235
145236// Context sets the context to be used in this call's Do method. Any
145237// pending HTTP request will be aborted if the provided context is
145238// canceled.
145239func (c *ServiceAttachmentsGetIamPolicyCall) Context(ctx context.Context) *ServiceAttachmentsGetIamPolicyCall {
145240	c.ctx_ = ctx
145241	return c
145242}
145243
145244// Header returns an http.Header that can be modified by the caller to
145245// add HTTP headers to the request.
145246func (c *ServiceAttachmentsGetIamPolicyCall) Header() http.Header {
145247	if c.header_ == nil {
145248		c.header_ = make(http.Header)
145249	}
145250	return c.header_
145251}
145252
145253func (c *ServiceAttachmentsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
145254	reqHeaders := make(http.Header)
145255	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
145256	for k, v := range c.header_ {
145257		reqHeaders[k] = v
145258	}
145259	reqHeaders.Set("User-Agent", c.s.userAgent())
145260	if c.ifNoneMatch_ != "" {
145261		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
145262	}
145263	var body io.Reader = nil
145264	c.urlParams_.Set("alt", alt)
145265	c.urlParams_.Set("prettyPrint", "false")
145266	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy")
145267	urls += "?" + c.urlParams_.Encode()
145268	req, err := http.NewRequest("GET", urls, body)
145269	if err != nil {
145270		return nil, err
145271	}
145272	req.Header = reqHeaders
145273	googleapi.Expand(req.URL, map[string]string{
145274		"project":  c.project,
145275		"region":   c.region,
145276		"resource": c.resource,
145277	})
145278	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145279}
145280
145281// Do executes the "compute.serviceAttachments.getIamPolicy" call.
145282// Exactly one of *Policy or error will be non-nil. Any non-2xx status
145283// code is an error. Response headers are in either
145284// *Policy.ServerResponse.Header or (if a response was returned at all)
145285// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
145286// check whether the returned error was because http.StatusNotModified
145287// was returned.
145288func (c *ServiceAttachmentsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
145289	gensupport.SetOptions(c.urlParams_, opts...)
145290	res, err := c.doRequest("json")
145291	if res != nil && res.StatusCode == http.StatusNotModified {
145292		if res.Body != nil {
145293			res.Body.Close()
145294		}
145295		return nil, &googleapi.Error{
145296			Code:   res.StatusCode,
145297			Header: res.Header,
145298		}
145299	}
145300	if err != nil {
145301		return nil, err
145302	}
145303	defer googleapi.CloseBody(res)
145304	if err := googleapi.CheckResponse(res); err != nil {
145305		return nil, err
145306	}
145307	ret := &Policy{
145308		ServerResponse: googleapi.ServerResponse{
145309			Header:         res.Header,
145310			HTTPStatusCode: res.StatusCode,
145311		},
145312	}
145313	target := &ret
145314	if err := gensupport.DecodeResponse(target, res); err != nil {
145315		return nil, err
145316	}
145317	return ret, nil
145318	// {
145319	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
145320	//   "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy",
145321	//   "httpMethod": "GET",
145322	//   "id": "compute.serviceAttachments.getIamPolicy",
145323	//   "parameterOrder": [
145324	//     "project",
145325	//     "region",
145326	//     "resource"
145327	//   ],
145328	//   "parameters": {
145329	//     "optionsRequestedPolicyVersion": {
145330	//       "description": "Requested IAM Policy version.",
145331	//       "format": "int32",
145332	//       "location": "query",
145333	//       "type": "integer"
145334	//     },
145335	//     "project": {
145336	//       "description": "Project ID for this request.",
145337	//       "location": "path",
145338	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145339	//       "required": true,
145340	//       "type": "string"
145341	//     },
145342	//     "region": {
145343	//       "description": "The name of the region for this request.",
145344	//       "location": "path",
145345	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145346	//       "required": true,
145347	//       "type": "string"
145348	//     },
145349	//     "resource": {
145350	//       "description": "Name or id of the resource for this request.",
145351	//       "location": "path",
145352	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145353	//       "required": true,
145354	//       "type": "string"
145355	//     }
145356	//   },
145357	//   "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy",
145358	//   "response": {
145359	//     "$ref": "Policy"
145360	//   },
145361	//   "scopes": [
145362	//     "https://www.googleapis.com/auth/cloud-platform",
145363	//     "https://www.googleapis.com/auth/compute",
145364	//     "https://www.googleapis.com/auth/compute.readonly"
145365	//   ]
145366	// }
145367
145368}
145369
145370// method id "compute.serviceAttachments.insert":
145371
145372type ServiceAttachmentsInsertCall struct {
145373	s                 *Service
145374	project           string
145375	region            string
145376	serviceattachment *ServiceAttachment
145377	urlParams_        gensupport.URLParams
145378	ctx_              context.Context
145379	header_           http.Header
145380}
145381
145382// Insert: Creates a ServiceAttachment in the specified project in the
145383// given scope using the parameters that are included in the request.
145384//
145385// - project: Project ID for this request.
145386// - region: Name of the region of this request.
145387func (r *ServiceAttachmentsService) Insert(project string, region string, serviceattachment *ServiceAttachment) *ServiceAttachmentsInsertCall {
145388	c := &ServiceAttachmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145389	c.project = project
145390	c.region = region
145391	c.serviceattachment = serviceattachment
145392	return c
145393}
145394
145395// RequestId sets the optional parameter "requestId": An optional
145396// request ID to identify requests. Specify a unique request ID so that
145397// if you must retry your request, the server will know to ignore the
145398// request if it has already been completed. For example, consider a
145399// situation where you make an initial request and the request times
145400// out. If you make the request again with the same request ID, the
145401// server can check if original operation with the same request ID was
145402// received, and if so, will ignore the second request. This prevents
145403// clients from accidentally creating duplicate commitments. The request
145404// ID must be a valid UUID with the exception that zero UUID is not
145405// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
145406// MixerMutationRequestBuilder
145407func (c *ServiceAttachmentsInsertCall) RequestId(requestId string) *ServiceAttachmentsInsertCall {
145408	c.urlParams_.Set("requestId", requestId)
145409	return c
145410}
145411
145412// Fields allows partial responses to be retrieved. See
145413// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145414// for more information.
145415func (c *ServiceAttachmentsInsertCall) Fields(s ...googleapi.Field) *ServiceAttachmentsInsertCall {
145416	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145417	return c
145418}
145419
145420// Context sets the context to be used in this call's Do method. Any
145421// pending HTTP request will be aborted if the provided context is
145422// canceled.
145423func (c *ServiceAttachmentsInsertCall) Context(ctx context.Context) *ServiceAttachmentsInsertCall {
145424	c.ctx_ = ctx
145425	return c
145426}
145427
145428// Header returns an http.Header that can be modified by the caller to
145429// add HTTP headers to the request.
145430func (c *ServiceAttachmentsInsertCall) Header() http.Header {
145431	if c.header_ == nil {
145432		c.header_ = make(http.Header)
145433	}
145434	return c.header_
145435}
145436
145437func (c *ServiceAttachmentsInsertCall) doRequest(alt string) (*http.Response, error) {
145438	reqHeaders := make(http.Header)
145439	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
145440	for k, v := range c.header_ {
145441		reqHeaders[k] = v
145442	}
145443	reqHeaders.Set("User-Agent", c.s.userAgent())
145444	var body io.Reader = nil
145445	body, err := googleapi.WithoutDataWrapper.JSONReader(c.serviceattachment)
145446	if err != nil {
145447		return nil, err
145448	}
145449	reqHeaders.Set("Content-Type", "application/json")
145450	c.urlParams_.Set("alt", alt)
145451	c.urlParams_.Set("prettyPrint", "false")
145452	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments")
145453	urls += "?" + c.urlParams_.Encode()
145454	req, err := http.NewRequest("POST", urls, body)
145455	if err != nil {
145456		return nil, err
145457	}
145458	req.Header = reqHeaders
145459	googleapi.Expand(req.URL, map[string]string{
145460		"project": c.project,
145461		"region":  c.region,
145462	})
145463	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145464}
145465
145466// Do executes the "compute.serviceAttachments.insert" call.
145467// Exactly one of *Operation or error will be non-nil. Any non-2xx
145468// status code is an error. Response headers are in either
145469// *Operation.ServerResponse.Header or (if a response was returned at
145470// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
145471// to check whether the returned error was because
145472// http.StatusNotModified was returned.
145473func (c *ServiceAttachmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
145474	gensupport.SetOptions(c.urlParams_, opts...)
145475	res, err := c.doRequest("json")
145476	if res != nil && res.StatusCode == http.StatusNotModified {
145477		if res.Body != nil {
145478			res.Body.Close()
145479		}
145480		return nil, &googleapi.Error{
145481			Code:   res.StatusCode,
145482			Header: res.Header,
145483		}
145484	}
145485	if err != nil {
145486		return nil, err
145487	}
145488	defer googleapi.CloseBody(res)
145489	if err := googleapi.CheckResponse(res); err != nil {
145490		return nil, err
145491	}
145492	ret := &Operation{
145493		ServerResponse: googleapi.ServerResponse{
145494			Header:         res.Header,
145495			HTTPStatusCode: res.StatusCode,
145496		},
145497	}
145498	target := &ret
145499	if err := gensupport.DecodeResponse(target, res); err != nil {
145500		return nil, err
145501	}
145502	return ret, nil
145503	// {
145504	//   "description": "Creates a ServiceAttachment in the specified project in the given scope using the parameters that are included in the request.",
145505	//   "flatPath": "projects/{project}/regions/{region}/serviceAttachments",
145506	//   "httpMethod": "POST",
145507	//   "id": "compute.serviceAttachments.insert",
145508	//   "parameterOrder": [
145509	//     "project",
145510	//     "region"
145511	//   ],
145512	//   "parameters": {
145513	//     "project": {
145514	//       "description": "Project ID for this request.",
145515	//       "location": "path",
145516	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145517	//       "required": true,
145518	//       "type": "string"
145519	//     },
145520	//     "region": {
145521	//       "description": "Name of the region of this request.",
145522	//       "location": "path",
145523	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145524	//       "required": true,
145525	//       "type": "string"
145526	//     },
145527	//     "requestId": {
145528	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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",
145529	//       "location": "query",
145530	//       "type": "string"
145531	//     }
145532	//   },
145533	//   "path": "projects/{project}/regions/{region}/serviceAttachments",
145534	//   "request": {
145535	//     "$ref": "ServiceAttachment"
145536	//   },
145537	//   "response": {
145538	//     "$ref": "Operation"
145539	//   },
145540	//   "scopes": [
145541	//     "https://www.googleapis.com/auth/cloud-platform",
145542	//     "https://www.googleapis.com/auth/compute"
145543	//   ]
145544	// }
145545
145546}
145547
145548// method id "compute.serviceAttachments.list":
145549
145550type ServiceAttachmentsListCall struct {
145551	s            *Service
145552	project      string
145553	region       string
145554	urlParams_   gensupport.URLParams
145555	ifNoneMatch_ string
145556	ctx_         context.Context
145557	header_      http.Header
145558}
145559
145560// List: Lists the ServiceAttachments for a project in the given scope.
145561//
145562// - project: Project ID for this request.
145563// - region: Name of the region of this request.
145564func (r *ServiceAttachmentsService) List(project string, region string) *ServiceAttachmentsListCall {
145565	c := &ServiceAttachmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145566	c.project = project
145567	c.region = region
145568	return c
145569}
145570
145571// Filter sets the optional parameter "filter": A filter expression that
145572// filters resources listed in the response. The expression must specify
145573// the field name, a comparison operator, and the value that you want to
145574// use for filtering. The value must be a string, a number, or a
145575// boolean. The comparison operator must be either `=`, `!=`, `>`, or
145576// `<`. For example, if you are filtering Compute Engine instances, you
145577// can exclude instances named `example-instance` by specifying `name !=
145578// example-instance`. You can also filter nested fields. For example,
145579// you could specify `scheduling.automaticRestart = false` to include
145580// instances only if they are not scheduled for automatic restarts. You
145581// can use filtering on nested fields to filter based on resource
145582// labels. To filter on multiple expressions, provide each separate
145583// expression within parentheses. For example: ```
145584// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
145585// ``` By default, each expression is an `AND` expression. However, you
145586// can include `AND` and `OR` expressions explicitly. For example: ```
145587// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
145588// AND (scheduling.automaticRestart = true) ```
145589func (c *ServiceAttachmentsListCall) Filter(filter string) *ServiceAttachmentsListCall {
145590	c.urlParams_.Set("filter", filter)
145591	return c
145592}
145593
145594// MaxResults sets the optional parameter "maxResults": The maximum
145595// number of results per page that should be returned. If the number of
145596// available results is larger than `maxResults`, Compute Engine returns
145597// a `nextPageToken` that can be used to get the next page of results in
145598// subsequent list requests. Acceptable values are `0` to `500`,
145599// inclusive. (Default: `500`)
145600func (c *ServiceAttachmentsListCall) MaxResults(maxResults int64) *ServiceAttachmentsListCall {
145601	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
145602	return c
145603}
145604
145605// OrderBy sets the optional parameter "orderBy": Sorts list results by
145606// a certain order. By default, results are returned in alphanumerical
145607// order based on the resource name. You can also sort results in
145608// descending order based on the creation timestamp using
145609// `orderBy="creationTimestamp desc". This sorts results based on the
145610// `creationTimestamp` field in reverse chronological order (newest
145611// result first). Use this to sort resources like operations so that the
145612// newest operation is returned first. Currently, only sorting by `name`
145613// or `creationTimestamp desc` is supported.
145614func (c *ServiceAttachmentsListCall) OrderBy(orderBy string) *ServiceAttachmentsListCall {
145615	c.urlParams_.Set("orderBy", orderBy)
145616	return c
145617}
145618
145619// PageToken sets the optional parameter "pageToken": Specifies a page
145620// token to use. Set `pageToken` to the `nextPageToken` returned by a
145621// previous list request to get the next page of results.
145622func (c *ServiceAttachmentsListCall) PageToken(pageToken string) *ServiceAttachmentsListCall {
145623	c.urlParams_.Set("pageToken", pageToken)
145624	return c
145625}
145626
145627// ReturnPartialSuccess sets the optional parameter
145628// "returnPartialSuccess": Opt-in for partial success behavior which
145629// provides partial results in case of failure. The default value is
145630// false.
145631func (c *ServiceAttachmentsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ServiceAttachmentsListCall {
145632	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
145633	return c
145634}
145635
145636// Fields allows partial responses to be retrieved. See
145637// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145638// for more information.
145639func (c *ServiceAttachmentsListCall) Fields(s ...googleapi.Field) *ServiceAttachmentsListCall {
145640	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145641	return c
145642}
145643
145644// IfNoneMatch sets the optional parameter which makes the operation
145645// fail if the object's ETag matches the given value. This is useful for
145646// getting updates only after the object has changed since the last
145647// request. Use googleapi.IsNotModified to check whether the response
145648// error from Do is the result of In-None-Match.
145649func (c *ServiceAttachmentsListCall) IfNoneMatch(entityTag string) *ServiceAttachmentsListCall {
145650	c.ifNoneMatch_ = entityTag
145651	return c
145652}
145653
145654// Context sets the context to be used in this call's Do method. Any
145655// pending HTTP request will be aborted if the provided context is
145656// canceled.
145657func (c *ServiceAttachmentsListCall) Context(ctx context.Context) *ServiceAttachmentsListCall {
145658	c.ctx_ = ctx
145659	return c
145660}
145661
145662// Header returns an http.Header that can be modified by the caller to
145663// add HTTP headers to the request.
145664func (c *ServiceAttachmentsListCall) Header() http.Header {
145665	if c.header_ == nil {
145666		c.header_ = make(http.Header)
145667	}
145668	return c.header_
145669}
145670
145671func (c *ServiceAttachmentsListCall) doRequest(alt string) (*http.Response, error) {
145672	reqHeaders := make(http.Header)
145673	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
145674	for k, v := range c.header_ {
145675		reqHeaders[k] = v
145676	}
145677	reqHeaders.Set("User-Agent", c.s.userAgent())
145678	if c.ifNoneMatch_ != "" {
145679		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
145680	}
145681	var body io.Reader = nil
145682	c.urlParams_.Set("alt", alt)
145683	c.urlParams_.Set("prettyPrint", "false")
145684	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments")
145685	urls += "?" + c.urlParams_.Encode()
145686	req, err := http.NewRequest("GET", urls, body)
145687	if err != nil {
145688		return nil, err
145689	}
145690	req.Header = reqHeaders
145691	googleapi.Expand(req.URL, map[string]string{
145692		"project": c.project,
145693		"region":  c.region,
145694	})
145695	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145696}
145697
145698// Do executes the "compute.serviceAttachments.list" call.
145699// Exactly one of *ServiceAttachmentList or error will be non-nil. Any
145700// non-2xx status code is an error. Response headers are in either
145701// *ServiceAttachmentList.ServerResponse.Header or (if a response was
145702// returned at all) in error.(*googleapi.Error).Header. Use
145703// googleapi.IsNotModified to check whether the returned error was
145704// because http.StatusNotModified was returned.
145705func (c *ServiceAttachmentsListCall) Do(opts ...googleapi.CallOption) (*ServiceAttachmentList, error) {
145706	gensupport.SetOptions(c.urlParams_, opts...)
145707	res, err := c.doRequest("json")
145708	if res != nil && res.StatusCode == http.StatusNotModified {
145709		if res.Body != nil {
145710			res.Body.Close()
145711		}
145712		return nil, &googleapi.Error{
145713			Code:   res.StatusCode,
145714			Header: res.Header,
145715		}
145716	}
145717	if err != nil {
145718		return nil, err
145719	}
145720	defer googleapi.CloseBody(res)
145721	if err := googleapi.CheckResponse(res); err != nil {
145722		return nil, err
145723	}
145724	ret := &ServiceAttachmentList{
145725		ServerResponse: googleapi.ServerResponse{
145726			Header:         res.Header,
145727			HTTPStatusCode: res.StatusCode,
145728		},
145729	}
145730	target := &ret
145731	if err := gensupport.DecodeResponse(target, res); err != nil {
145732		return nil, err
145733	}
145734	return ret, nil
145735	// {
145736	//   "description": "Lists the ServiceAttachments for a project in the given scope.",
145737	//   "flatPath": "projects/{project}/regions/{region}/serviceAttachments",
145738	//   "httpMethod": "GET",
145739	//   "id": "compute.serviceAttachments.list",
145740	//   "parameterOrder": [
145741	//     "project",
145742	//     "region"
145743	//   ],
145744	//   "parameters": {
145745	//     "filter": {
145746	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
145747	//       "location": "query",
145748	//       "type": "string"
145749	//     },
145750	//     "maxResults": {
145751	//       "default": "500",
145752	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
145753	//       "format": "uint32",
145754	//       "location": "query",
145755	//       "minimum": "0",
145756	//       "type": "integer"
145757	//     },
145758	//     "orderBy": {
145759	//       "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.",
145760	//       "location": "query",
145761	//       "type": "string"
145762	//     },
145763	//     "pageToken": {
145764	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
145765	//       "location": "query",
145766	//       "type": "string"
145767	//     },
145768	//     "project": {
145769	//       "description": "Project ID for this request.",
145770	//       "location": "path",
145771	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145772	//       "required": true,
145773	//       "type": "string"
145774	//     },
145775	//     "region": {
145776	//       "description": "Name of the region of this request.",
145777	//       "location": "path",
145778	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145779	//       "required": true,
145780	//       "type": "string"
145781	//     },
145782	//     "returnPartialSuccess": {
145783	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
145784	//       "location": "query",
145785	//       "type": "boolean"
145786	//     }
145787	//   },
145788	//   "path": "projects/{project}/regions/{region}/serviceAttachments",
145789	//   "response": {
145790	//     "$ref": "ServiceAttachmentList"
145791	//   },
145792	//   "scopes": [
145793	//     "https://www.googleapis.com/auth/cloud-platform",
145794	//     "https://www.googleapis.com/auth/compute",
145795	//     "https://www.googleapis.com/auth/compute.readonly"
145796	//   ]
145797	// }
145798
145799}
145800
145801// Pages invokes f for each page of results.
145802// A non-nil error returned from f will halt the iteration.
145803// The provided context supersedes any context provided to the Context method.
145804func (c *ServiceAttachmentsListCall) Pages(ctx context.Context, f func(*ServiceAttachmentList) error) error {
145805	c.ctx_ = ctx
145806	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
145807	for {
145808		x, err := c.Do()
145809		if err != nil {
145810			return err
145811		}
145812		if err := f(x); err != nil {
145813			return err
145814		}
145815		if x.NextPageToken == "" {
145816			return nil
145817		}
145818		c.PageToken(x.NextPageToken)
145819	}
145820}
145821
145822// method id "compute.serviceAttachments.patch":
145823
145824type ServiceAttachmentsPatchCall struct {
145825	s                 *Service
145826	project           string
145827	region            string
145828	serviceAttachment string
145829	serviceattachment *ServiceAttachment
145830	urlParams_        gensupport.URLParams
145831	ctx_              context.Context
145832	header_           http.Header
145833}
145834
145835// Patch: Patches the specified ServiceAttachment resource with the data
145836// included in the request. This method supports PATCH semantics and
145837// uses JSON merge patch format and processing rules.
145838//
145839// - project: Project ID for this request.
145840// - region: The region scoping this request and should conform to
145841//   RFC1035.
145842// - serviceAttachment: The resource id of the ServiceAttachment to
145843//   patch. It should conform to RFC1035 resource name or be a string
145844//   form on an unsigned long number.
145845func (r *ServiceAttachmentsService) Patch(project string, region string, serviceAttachment string, serviceattachment *ServiceAttachment) *ServiceAttachmentsPatchCall {
145846	c := &ServiceAttachmentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145847	c.project = project
145848	c.region = region
145849	c.serviceAttachment = serviceAttachment
145850	c.serviceattachment = serviceattachment
145851	return c
145852}
145853
145854// RequestId sets the optional parameter "requestId": An optional
145855// request ID to identify requests. Specify a unique request ID so that
145856// if you must retry your request, the server will know to ignore the
145857// request if it has already been completed. For example, consider a
145858// situation where you make an initial request and the request times
145859// out. If you make the request again with the same request ID, the
145860// server can check if original operation with the same request ID was
145861// received, and if so, will ignore the second request. This prevents
145862// clients from accidentally creating duplicate commitments. The request
145863// ID must be a valid UUID with the exception that zero UUID is not
145864// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
145865// MixerMutationRequestBuilder
145866func (c *ServiceAttachmentsPatchCall) RequestId(requestId string) *ServiceAttachmentsPatchCall {
145867	c.urlParams_.Set("requestId", requestId)
145868	return c
145869}
145870
145871// Fields allows partial responses to be retrieved. See
145872// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145873// for more information.
145874func (c *ServiceAttachmentsPatchCall) Fields(s ...googleapi.Field) *ServiceAttachmentsPatchCall {
145875	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145876	return c
145877}
145878
145879// Context sets the context to be used in this call's Do method. Any
145880// pending HTTP request will be aborted if the provided context is
145881// canceled.
145882func (c *ServiceAttachmentsPatchCall) Context(ctx context.Context) *ServiceAttachmentsPatchCall {
145883	c.ctx_ = ctx
145884	return c
145885}
145886
145887// Header returns an http.Header that can be modified by the caller to
145888// add HTTP headers to the request.
145889func (c *ServiceAttachmentsPatchCall) Header() http.Header {
145890	if c.header_ == nil {
145891		c.header_ = make(http.Header)
145892	}
145893	return c.header_
145894}
145895
145896func (c *ServiceAttachmentsPatchCall) doRequest(alt string) (*http.Response, error) {
145897	reqHeaders := make(http.Header)
145898	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
145899	for k, v := range c.header_ {
145900		reqHeaders[k] = v
145901	}
145902	reqHeaders.Set("User-Agent", c.s.userAgent())
145903	var body io.Reader = nil
145904	body, err := googleapi.WithoutDataWrapper.JSONReader(c.serviceattachment)
145905	if err != nil {
145906		return nil, err
145907	}
145908	reqHeaders.Set("Content-Type", "application/json")
145909	c.urlParams_.Set("alt", alt)
145910	c.urlParams_.Set("prettyPrint", "false")
145911	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}")
145912	urls += "?" + c.urlParams_.Encode()
145913	req, err := http.NewRequest("PATCH", urls, body)
145914	if err != nil {
145915		return nil, err
145916	}
145917	req.Header = reqHeaders
145918	googleapi.Expand(req.URL, map[string]string{
145919		"project":           c.project,
145920		"region":            c.region,
145921		"serviceAttachment": c.serviceAttachment,
145922	})
145923	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145924}
145925
145926// Do executes the "compute.serviceAttachments.patch" call.
145927// Exactly one of *Operation or error will be non-nil. Any non-2xx
145928// status code is an error. Response headers are in either
145929// *Operation.ServerResponse.Header or (if a response was returned at
145930// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
145931// to check whether the returned error was because
145932// http.StatusNotModified was returned.
145933func (c *ServiceAttachmentsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
145934	gensupport.SetOptions(c.urlParams_, opts...)
145935	res, err := c.doRequest("json")
145936	if res != nil && res.StatusCode == http.StatusNotModified {
145937		if res.Body != nil {
145938			res.Body.Close()
145939		}
145940		return nil, &googleapi.Error{
145941			Code:   res.StatusCode,
145942			Header: res.Header,
145943		}
145944	}
145945	if err != nil {
145946		return nil, err
145947	}
145948	defer googleapi.CloseBody(res)
145949	if err := googleapi.CheckResponse(res); err != nil {
145950		return nil, err
145951	}
145952	ret := &Operation{
145953		ServerResponse: googleapi.ServerResponse{
145954			Header:         res.Header,
145955			HTTPStatusCode: res.StatusCode,
145956		},
145957	}
145958	target := &ret
145959	if err := gensupport.DecodeResponse(target, res); err != nil {
145960		return nil, err
145961	}
145962	return ret, nil
145963	// {
145964	//   "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.",
145965	//   "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}",
145966	//   "httpMethod": "PATCH",
145967	//   "id": "compute.serviceAttachments.patch",
145968	//   "parameterOrder": [
145969	//     "project",
145970	//     "region",
145971	//     "serviceAttachment"
145972	//   ],
145973	//   "parameters": {
145974	//     "project": {
145975	//       "description": "Project ID for this request.",
145976	//       "location": "path",
145977	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145978	//       "required": true,
145979	//       "type": "string"
145980	//     },
145981	//     "region": {
145982	//       "description": "The region scoping this request and should conform to RFC1035.",
145983	//       "location": "path",
145984	//       "required": true,
145985	//       "type": "string"
145986	//     },
145987	//     "requestId": {
145988	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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",
145989	//       "location": "query",
145990	//       "type": "string"
145991	//     },
145992	//     "serviceAttachment": {
145993	//       "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.",
145994	//       "location": "path",
145995	//       "required": true,
145996	//       "type": "string"
145997	//     }
145998	//   },
145999	//   "path": "projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}",
146000	//   "request": {
146001	//     "$ref": "ServiceAttachment"
146002	//   },
146003	//   "response": {
146004	//     "$ref": "Operation"
146005	//   },
146006	//   "scopes": [
146007	//     "https://www.googleapis.com/auth/cloud-platform",
146008	//     "https://www.googleapis.com/auth/compute"
146009	//   ]
146010	// }
146011
146012}
146013
146014// method id "compute.serviceAttachments.setIamPolicy":
146015
146016type ServiceAttachmentsSetIamPolicyCall struct {
146017	s                      *Service
146018	project                string
146019	region                 string
146020	resource               string
146021	regionsetpolicyrequest *RegionSetPolicyRequest
146022	urlParams_             gensupport.URLParams
146023	ctx_                   context.Context
146024	header_                http.Header
146025}
146026
146027// SetIamPolicy: Sets the access control policy on the specified
146028// resource. Replaces any existing policy.
146029//
146030// - project: Project ID for this request.
146031// - region: The name of the region for this request.
146032// - resource: Name or id of the resource for this request.
146033func (r *ServiceAttachmentsService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *ServiceAttachmentsSetIamPolicyCall {
146034	c := &ServiceAttachmentsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146035	c.project = project
146036	c.region = region
146037	c.resource = resource
146038	c.regionsetpolicyrequest = regionsetpolicyrequest
146039	return c
146040}
146041
146042// Fields allows partial responses to be retrieved. See
146043// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146044// for more information.
146045func (c *ServiceAttachmentsSetIamPolicyCall) Fields(s ...googleapi.Field) *ServiceAttachmentsSetIamPolicyCall {
146046	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146047	return c
146048}
146049
146050// Context sets the context to be used in this call's Do method. Any
146051// pending HTTP request will be aborted if the provided context is
146052// canceled.
146053func (c *ServiceAttachmentsSetIamPolicyCall) Context(ctx context.Context) *ServiceAttachmentsSetIamPolicyCall {
146054	c.ctx_ = ctx
146055	return c
146056}
146057
146058// Header returns an http.Header that can be modified by the caller to
146059// add HTTP headers to the request.
146060func (c *ServiceAttachmentsSetIamPolicyCall) Header() http.Header {
146061	if c.header_ == nil {
146062		c.header_ = make(http.Header)
146063	}
146064	return c.header_
146065}
146066
146067func (c *ServiceAttachmentsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
146068	reqHeaders := make(http.Header)
146069	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
146070	for k, v := range c.header_ {
146071		reqHeaders[k] = v
146072	}
146073	reqHeaders.Set("User-Agent", c.s.userAgent())
146074	var body io.Reader = nil
146075	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
146076	if err != nil {
146077		return nil, err
146078	}
146079	reqHeaders.Set("Content-Type", "application/json")
146080	c.urlParams_.Set("alt", alt)
146081	c.urlParams_.Set("prettyPrint", "false")
146082	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy")
146083	urls += "?" + c.urlParams_.Encode()
146084	req, err := http.NewRequest("POST", urls, body)
146085	if err != nil {
146086		return nil, err
146087	}
146088	req.Header = reqHeaders
146089	googleapi.Expand(req.URL, map[string]string{
146090		"project":  c.project,
146091		"region":   c.region,
146092		"resource": c.resource,
146093	})
146094	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146095}
146096
146097// Do executes the "compute.serviceAttachments.setIamPolicy" call.
146098// Exactly one of *Policy or error will be non-nil. Any non-2xx status
146099// code is an error. Response headers are in either
146100// *Policy.ServerResponse.Header or (if a response was returned at all)
146101// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
146102// check whether the returned error was because http.StatusNotModified
146103// was returned.
146104func (c *ServiceAttachmentsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
146105	gensupport.SetOptions(c.urlParams_, opts...)
146106	res, err := c.doRequest("json")
146107	if res != nil && res.StatusCode == http.StatusNotModified {
146108		if res.Body != nil {
146109			res.Body.Close()
146110		}
146111		return nil, &googleapi.Error{
146112			Code:   res.StatusCode,
146113			Header: res.Header,
146114		}
146115	}
146116	if err != nil {
146117		return nil, err
146118	}
146119	defer googleapi.CloseBody(res)
146120	if err := googleapi.CheckResponse(res); err != nil {
146121		return nil, err
146122	}
146123	ret := &Policy{
146124		ServerResponse: googleapi.ServerResponse{
146125			Header:         res.Header,
146126			HTTPStatusCode: res.StatusCode,
146127		},
146128	}
146129	target := &ret
146130	if err := gensupport.DecodeResponse(target, res); err != nil {
146131		return nil, err
146132	}
146133	return ret, nil
146134	// {
146135	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
146136	//   "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy",
146137	//   "httpMethod": "POST",
146138	//   "id": "compute.serviceAttachments.setIamPolicy",
146139	//   "parameterOrder": [
146140	//     "project",
146141	//     "region",
146142	//     "resource"
146143	//   ],
146144	//   "parameters": {
146145	//     "project": {
146146	//       "description": "Project ID for this request.",
146147	//       "location": "path",
146148	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146149	//       "required": true,
146150	//       "type": "string"
146151	//     },
146152	//     "region": {
146153	//       "description": "The name of the region for this request.",
146154	//       "location": "path",
146155	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
146156	//       "required": true,
146157	//       "type": "string"
146158	//     },
146159	//     "resource": {
146160	//       "description": "Name or id of the resource for this request.",
146161	//       "location": "path",
146162	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146163	//       "required": true,
146164	//       "type": "string"
146165	//     }
146166	//   },
146167	//   "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy",
146168	//   "request": {
146169	//     "$ref": "RegionSetPolicyRequest"
146170	//   },
146171	//   "response": {
146172	//     "$ref": "Policy"
146173	//   },
146174	//   "scopes": [
146175	//     "https://www.googleapis.com/auth/cloud-platform",
146176	//     "https://www.googleapis.com/auth/compute"
146177	//   ]
146178	// }
146179
146180}
146181
146182// method id "compute.serviceAttachments.testIamPermissions":
146183
146184type ServiceAttachmentsTestIamPermissionsCall struct {
146185	s                      *Service
146186	project                string
146187	region                 string
146188	resource               string
146189	testpermissionsrequest *TestPermissionsRequest
146190	urlParams_             gensupport.URLParams
146191	ctx_                   context.Context
146192	header_                http.Header
146193}
146194
146195// TestIamPermissions: Returns permissions that a caller has on the
146196// specified resource.
146197//
146198// - project: Project ID for this request.
146199// - region: The name of the region for this request.
146200// - resource: Name or id of the resource for this request.
146201func (r *ServiceAttachmentsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *ServiceAttachmentsTestIamPermissionsCall {
146202	c := &ServiceAttachmentsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146203	c.project = project
146204	c.region = region
146205	c.resource = resource
146206	c.testpermissionsrequest = testpermissionsrequest
146207	return c
146208}
146209
146210// Fields allows partial responses to be retrieved. See
146211// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146212// for more information.
146213func (c *ServiceAttachmentsTestIamPermissionsCall) Fields(s ...googleapi.Field) *ServiceAttachmentsTestIamPermissionsCall {
146214	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146215	return c
146216}
146217
146218// Context sets the context to be used in this call's Do method. Any
146219// pending HTTP request will be aborted if the provided context is
146220// canceled.
146221func (c *ServiceAttachmentsTestIamPermissionsCall) Context(ctx context.Context) *ServiceAttachmentsTestIamPermissionsCall {
146222	c.ctx_ = ctx
146223	return c
146224}
146225
146226// Header returns an http.Header that can be modified by the caller to
146227// add HTTP headers to the request.
146228func (c *ServiceAttachmentsTestIamPermissionsCall) Header() http.Header {
146229	if c.header_ == nil {
146230		c.header_ = make(http.Header)
146231	}
146232	return c.header_
146233}
146234
146235func (c *ServiceAttachmentsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
146236	reqHeaders := make(http.Header)
146237	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
146238	for k, v := range c.header_ {
146239		reqHeaders[k] = v
146240	}
146241	reqHeaders.Set("User-Agent", c.s.userAgent())
146242	var body io.Reader = nil
146243	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
146244	if err != nil {
146245		return nil, err
146246	}
146247	reqHeaders.Set("Content-Type", "application/json")
146248	c.urlParams_.Set("alt", alt)
146249	c.urlParams_.Set("prettyPrint", "false")
146250	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions")
146251	urls += "?" + c.urlParams_.Encode()
146252	req, err := http.NewRequest("POST", urls, body)
146253	if err != nil {
146254		return nil, err
146255	}
146256	req.Header = reqHeaders
146257	googleapi.Expand(req.URL, map[string]string{
146258		"project":  c.project,
146259		"region":   c.region,
146260		"resource": c.resource,
146261	})
146262	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146263}
146264
146265// Do executes the "compute.serviceAttachments.testIamPermissions" call.
146266// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
146267// non-2xx status code is an error. Response headers are in either
146268// *TestPermissionsResponse.ServerResponse.Header or (if a response was
146269// returned at all) in error.(*googleapi.Error).Header. Use
146270// googleapi.IsNotModified to check whether the returned error was
146271// because http.StatusNotModified was returned.
146272func (c *ServiceAttachmentsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
146273	gensupport.SetOptions(c.urlParams_, opts...)
146274	res, err := c.doRequest("json")
146275	if res != nil && res.StatusCode == http.StatusNotModified {
146276		if res.Body != nil {
146277			res.Body.Close()
146278		}
146279		return nil, &googleapi.Error{
146280			Code:   res.StatusCode,
146281			Header: res.Header,
146282		}
146283	}
146284	if err != nil {
146285		return nil, err
146286	}
146287	defer googleapi.CloseBody(res)
146288	if err := googleapi.CheckResponse(res); err != nil {
146289		return nil, err
146290	}
146291	ret := &TestPermissionsResponse{
146292		ServerResponse: googleapi.ServerResponse{
146293			Header:         res.Header,
146294			HTTPStatusCode: res.StatusCode,
146295		},
146296	}
146297	target := &ret
146298	if err := gensupport.DecodeResponse(target, res); err != nil {
146299		return nil, err
146300	}
146301	return ret, nil
146302	// {
146303	//   "description": "Returns permissions that a caller has on the specified resource.",
146304	//   "flatPath": "projects/{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions",
146305	//   "httpMethod": "POST",
146306	//   "id": "compute.serviceAttachments.testIamPermissions",
146307	//   "parameterOrder": [
146308	//     "project",
146309	//     "region",
146310	//     "resource"
146311	//   ],
146312	//   "parameters": {
146313	//     "project": {
146314	//       "description": "Project ID for this request.",
146315	//       "location": "path",
146316	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146317	//       "required": true,
146318	//       "type": "string"
146319	//     },
146320	//     "region": {
146321	//       "description": "The name of the region for this request.",
146322	//       "location": "path",
146323	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
146324	//       "required": true,
146325	//       "type": "string"
146326	//     },
146327	//     "resource": {
146328	//       "description": "Name or id of the resource for this request.",
146329	//       "location": "path",
146330	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146331	//       "required": true,
146332	//       "type": "string"
146333	//     }
146334	//   },
146335	//   "path": "projects/{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions",
146336	//   "request": {
146337	//     "$ref": "TestPermissionsRequest"
146338	//   },
146339	//   "response": {
146340	//     "$ref": "TestPermissionsResponse"
146341	//   },
146342	//   "scopes": [
146343	//     "https://www.googleapis.com/auth/cloud-platform",
146344	//     "https://www.googleapis.com/auth/compute",
146345	//     "https://www.googleapis.com/auth/compute.readonly"
146346	//   ]
146347	// }
146348
146349}
146350
146351// method id "compute.snapshots.delete":
146352
146353type SnapshotsDeleteCall struct {
146354	s          *Service
146355	project    string
146356	snapshot   string
146357	urlParams_ gensupport.URLParams
146358	ctx_       context.Context
146359	header_    http.Header
146360}
146361
146362// Delete: Deletes the specified Snapshot resource. Keep in mind that
146363// deleting a single snapshot might not necessarily delete all the data
146364// on that snapshot. If any data on the snapshot that is marked for
146365// deletion is needed for subsequent snapshots, the data will be moved
146366// to the next corresponding snapshot. For more information, see
146367// Deleting snapshots.
146368//
146369// - project: Project ID for this request.
146370// - snapshot: Name of the Snapshot resource to delete.
146371func (r *SnapshotsService) Delete(project string, snapshot string) *SnapshotsDeleteCall {
146372	c := &SnapshotsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146373	c.project = project
146374	c.snapshot = snapshot
146375	return c
146376}
146377
146378// RequestId sets the optional parameter "requestId": An optional
146379// request ID to identify requests. Specify a unique request ID so that
146380// if you must retry your request, the server will know to ignore the
146381// request if it has already been completed. For example, consider a
146382// situation where you make an initial request and the request times
146383// out. If you make the request again with the same request ID, the
146384// server can check if original operation with the same request ID was
146385// received, and if so, will ignore the second request. This prevents
146386// clients from accidentally creating duplicate commitments. The request
146387// ID must be a valid UUID with the exception that zero UUID is not
146388// supported ( 00000000-0000-0000-0000-000000000000).
146389func (c *SnapshotsDeleteCall) RequestId(requestId string) *SnapshotsDeleteCall {
146390	c.urlParams_.Set("requestId", requestId)
146391	return c
146392}
146393
146394// Fields allows partial responses to be retrieved. See
146395// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146396// for more information.
146397func (c *SnapshotsDeleteCall) Fields(s ...googleapi.Field) *SnapshotsDeleteCall {
146398	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146399	return c
146400}
146401
146402// Context sets the context to be used in this call's Do method. Any
146403// pending HTTP request will be aborted if the provided context is
146404// canceled.
146405func (c *SnapshotsDeleteCall) Context(ctx context.Context) *SnapshotsDeleteCall {
146406	c.ctx_ = ctx
146407	return c
146408}
146409
146410// Header returns an http.Header that can be modified by the caller to
146411// add HTTP headers to the request.
146412func (c *SnapshotsDeleteCall) Header() http.Header {
146413	if c.header_ == nil {
146414		c.header_ = make(http.Header)
146415	}
146416	return c.header_
146417}
146418
146419func (c *SnapshotsDeleteCall) doRequest(alt string) (*http.Response, error) {
146420	reqHeaders := make(http.Header)
146421	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
146422	for k, v := range c.header_ {
146423		reqHeaders[k] = v
146424	}
146425	reqHeaders.Set("User-Agent", c.s.userAgent())
146426	var body io.Reader = nil
146427	c.urlParams_.Set("alt", alt)
146428	c.urlParams_.Set("prettyPrint", "false")
146429	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{snapshot}")
146430	urls += "?" + c.urlParams_.Encode()
146431	req, err := http.NewRequest("DELETE", urls, body)
146432	if err != nil {
146433		return nil, err
146434	}
146435	req.Header = reqHeaders
146436	googleapi.Expand(req.URL, map[string]string{
146437		"project":  c.project,
146438		"snapshot": c.snapshot,
146439	})
146440	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146441}
146442
146443// Do executes the "compute.snapshots.delete" call.
146444// Exactly one of *Operation or error will be non-nil. Any non-2xx
146445// status code is an error. Response headers are in either
146446// *Operation.ServerResponse.Header or (if a response was returned at
146447// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
146448// to check whether the returned error was because
146449// http.StatusNotModified was returned.
146450func (c *SnapshotsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
146451	gensupport.SetOptions(c.urlParams_, opts...)
146452	res, err := c.doRequest("json")
146453	if res != nil && res.StatusCode == http.StatusNotModified {
146454		if res.Body != nil {
146455			res.Body.Close()
146456		}
146457		return nil, &googleapi.Error{
146458			Code:   res.StatusCode,
146459			Header: res.Header,
146460		}
146461	}
146462	if err != nil {
146463		return nil, err
146464	}
146465	defer googleapi.CloseBody(res)
146466	if err := googleapi.CheckResponse(res); err != nil {
146467		return nil, err
146468	}
146469	ret := &Operation{
146470		ServerResponse: googleapi.ServerResponse{
146471			Header:         res.Header,
146472			HTTPStatusCode: res.StatusCode,
146473		},
146474	}
146475	target := &ret
146476	if err := gensupport.DecodeResponse(target, res); err != nil {
146477		return nil, err
146478	}
146479	return ret, nil
146480	// {
146481	//   "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.",
146482	//   "flatPath": "projects/{project}/global/snapshots/{snapshot}",
146483	//   "httpMethod": "DELETE",
146484	//   "id": "compute.snapshots.delete",
146485	//   "parameterOrder": [
146486	//     "project",
146487	//     "snapshot"
146488	//   ],
146489	//   "parameters": {
146490	//     "project": {
146491	//       "description": "Project ID for this request.",
146492	//       "location": "path",
146493	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146494	//       "required": true,
146495	//       "type": "string"
146496	//     },
146497	//     "requestId": {
146498	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
146499	//       "location": "query",
146500	//       "type": "string"
146501	//     },
146502	//     "snapshot": {
146503	//       "description": "Name of the Snapshot resource to delete.",
146504	//       "location": "path",
146505	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146506	//       "required": true,
146507	//       "type": "string"
146508	//     }
146509	//   },
146510	//   "path": "projects/{project}/global/snapshots/{snapshot}",
146511	//   "response": {
146512	//     "$ref": "Operation"
146513	//   },
146514	//   "scopes": [
146515	//     "https://www.googleapis.com/auth/cloud-platform",
146516	//     "https://www.googleapis.com/auth/compute"
146517	//   ]
146518	// }
146519
146520}
146521
146522// method id "compute.snapshots.get":
146523
146524type SnapshotsGetCall struct {
146525	s            *Service
146526	project      string
146527	snapshot     string
146528	urlParams_   gensupport.URLParams
146529	ifNoneMatch_ string
146530	ctx_         context.Context
146531	header_      http.Header
146532}
146533
146534// Get: Returns the specified Snapshot resource. Gets a list of
146535// available snapshots by making a list() request.
146536//
146537// - project: Project ID for this request.
146538// - snapshot: Name of the Snapshot resource to return.
146539func (r *SnapshotsService) Get(project string, snapshot string) *SnapshotsGetCall {
146540	c := &SnapshotsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146541	c.project = project
146542	c.snapshot = snapshot
146543	return c
146544}
146545
146546// Fields allows partial responses to be retrieved. See
146547// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146548// for more information.
146549func (c *SnapshotsGetCall) Fields(s ...googleapi.Field) *SnapshotsGetCall {
146550	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146551	return c
146552}
146553
146554// IfNoneMatch sets the optional parameter which makes the operation
146555// fail if the object's ETag matches the given value. This is useful for
146556// getting updates only after the object has changed since the last
146557// request. Use googleapi.IsNotModified to check whether the response
146558// error from Do is the result of In-None-Match.
146559func (c *SnapshotsGetCall) IfNoneMatch(entityTag string) *SnapshotsGetCall {
146560	c.ifNoneMatch_ = entityTag
146561	return c
146562}
146563
146564// Context sets the context to be used in this call's Do method. Any
146565// pending HTTP request will be aborted if the provided context is
146566// canceled.
146567func (c *SnapshotsGetCall) Context(ctx context.Context) *SnapshotsGetCall {
146568	c.ctx_ = ctx
146569	return c
146570}
146571
146572// Header returns an http.Header that can be modified by the caller to
146573// add HTTP headers to the request.
146574func (c *SnapshotsGetCall) Header() http.Header {
146575	if c.header_ == nil {
146576		c.header_ = make(http.Header)
146577	}
146578	return c.header_
146579}
146580
146581func (c *SnapshotsGetCall) doRequest(alt string) (*http.Response, error) {
146582	reqHeaders := make(http.Header)
146583	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
146584	for k, v := range c.header_ {
146585		reqHeaders[k] = v
146586	}
146587	reqHeaders.Set("User-Agent", c.s.userAgent())
146588	if c.ifNoneMatch_ != "" {
146589		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
146590	}
146591	var body io.Reader = nil
146592	c.urlParams_.Set("alt", alt)
146593	c.urlParams_.Set("prettyPrint", "false")
146594	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{snapshot}")
146595	urls += "?" + c.urlParams_.Encode()
146596	req, err := http.NewRequest("GET", urls, body)
146597	if err != nil {
146598		return nil, err
146599	}
146600	req.Header = reqHeaders
146601	googleapi.Expand(req.URL, map[string]string{
146602		"project":  c.project,
146603		"snapshot": c.snapshot,
146604	})
146605	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146606}
146607
146608// Do executes the "compute.snapshots.get" call.
146609// Exactly one of *Snapshot or error will be non-nil. Any non-2xx status
146610// code is an error. Response headers are in either
146611// *Snapshot.ServerResponse.Header or (if a response was returned at
146612// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
146613// to check whether the returned error was because
146614// http.StatusNotModified was returned.
146615func (c *SnapshotsGetCall) Do(opts ...googleapi.CallOption) (*Snapshot, error) {
146616	gensupport.SetOptions(c.urlParams_, opts...)
146617	res, err := c.doRequest("json")
146618	if res != nil && res.StatusCode == http.StatusNotModified {
146619		if res.Body != nil {
146620			res.Body.Close()
146621		}
146622		return nil, &googleapi.Error{
146623			Code:   res.StatusCode,
146624			Header: res.Header,
146625		}
146626	}
146627	if err != nil {
146628		return nil, err
146629	}
146630	defer googleapi.CloseBody(res)
146631	if err := googleapi.CheckResponse(res); err != nil {
146632		return nil, err
146633	}
146634	ret := &Snapshot{
146635		ServerResponse: googleapi.ServerResponse{
146636			Header:         res.Header,
146637			HTTPStatusCode: res.StatusCode,
146638		},
146639	}
146640	target := &ret
146641	if err := gensupport.DecodeResponse(target, res); err != nil {
146642		return nil, err
146643	}
146644	return ret, nil
146645	// {
146646	//   "description": "Returns the specified Snapshot resource. Gets a list of available snapshots by making a list() request.",
146647	//   "flatPath": "projects/{project}/global/snapshots/{snapshot}",
146648	//   "httpMethod": "GET",
146649	//   "id": "compute.snapshots.get",
146650	//   "parameterOrder": [
146651	//     "project",
146652	//     "snapshot"
146653	//   ],
146654	//   "parameters": {
146655	//     "project": {
146656	//       "description": "Project ID for this request.",
146657	//       "location": "path",
146658	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146659	//       "required": true,
146660	//       "type": "string"
146661	//     },
146662	//     "snapshot": {
146663	//       "description": "Name of the Snapshot resource to return.",
146664	//       "location": "path",
146665	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146666	//       "required": true,
146667	//       "type": "string"
146668	//     }
146669	//   },
146670	//   "path": "projects/{project}/global/snapshots/{snapshot}",
146671	//   "response": {
146672	//     "$ref": "Snapshot"
146673	//   },
146674	//   "scopes": [
146675	//     "https://www.googleapis.com/auth/cloud-platform",
146676	//     "https://www.googleapis.com/auth/compute",
146677	//     "https://www.googleapis.com/auth/compute.readonly"
146678	//   ]
146679	// }
146680
146681}
146682
146683// method id "compute.snapshots.getIamPolicy":
146684
146685type SnapshotsGetIamPolicyCall struct {
146686	s            *Service
146687	project      string
146688	resource     string
146689	urlParams_   gensupport.URLParams
146690	ifNoneMatch_ string
146691	ctx_         context.Context
146692	header_      http.Header
146693}
146694
146695// GetIamPolicy: Gets the access control policy for a resource. May be
146696// empty if no such policy or resource exists.
146697//
146698// - project: Project ID for this request.
146699// - resource: Name or id of the resource for this request.
146700func (r *SnapshotsService) GetIamPolicy(project string, resource string) *SnapshotsGetIamPolicyCall {
146701	c := &SnapshotsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146702	c.project = project
146703	c.resource = resource
146704	return c
146705}
146706
146707// OptionsRequestedPolicyVersion sets the optional parameter
146708// "optionsRequestedPolicyVersion": Requested IAM Policy version.
146709func (c *SnapshotsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *SnapshotsGetIamPolicyCall {
146710	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
146711	return c
146712}
146713
146714// Fields allows partial responses to be retrieved. See
146715// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146716// for more information.
146717func (c *SnapshotsGetIamPolicyCall) Fields(s ...googleapi.Field) *SnapshotsGetIamPolicyCall {
146718	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146719	return c
146720}
146721
146722// IfNoneMatch sets the optional parameter which makes the operation
146723// fail if the object's ETag matches the given value. This is useful for
146724// getting updates only after the object has changed since the last
146725// request. Use googleapi.IsNotModified to check whether the response
146726// error from Do is the result of In-None-Match.
146727func (c *SnapshotsGetIamPolicyCall) IfNoneMatch(entityTag string) *SnapshotsGetIamPolicyCall {
146728	c.ifNoneMatch_ = entityTag
146729	return c
146730}
146731
146732// Context sets the context to be used in this call's Do method. Any
146733// pending HTTP request will be aborted if the provided context is
146734// canceled.
146735func (c *SnapshotsGetIamPolicyCall) Context(ctx context.Context) *SnapshotsGetIamPolicyCall {
146736	c.ctx_ = ctx
146737	return c
146738}
146739
146740// Header returns an http.Header that can be modified by the caller to
146741// add HTTP headers to the request.
146742func (c *SnapshotsGetIamPolicyCall) Header() http.Header {
146743	if c.header_ == nil {
146744		c.header_ = make(http.Header)
146745	}
146746	return c.header_
146747}
146748
146749func (c *SnapshotsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
146750	reqHeaders := make(http.Header)
146751	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
146752	for k, v := range c.header_ {
146753		reqHeaders[k] = v
146754	}
146755	reqHeaders.Set("User-Agent", c.s.userAgent())
146756	if c.ifNoneMatch_ != "" {
146757		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
146758	}
146759	var body io.Reader = nil
146760	c.urlParams_.Set("alt", alt)
146761	c.urlParams_.Set("prettyPrint", "false")
146762	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{resource}/getIamPolicy")
146763	urls += "?" + c.urlParams_.Encode()
146764	req, err := http.NewRequest("GET", urls, body)
146765	if err != nil {
146766		return nil, err
146767	}
146768	req.Header = reqHeaders
146769	googleapi.Expand(req.URL, map[string]string{
146770		"project":  c.project,
146771		"resource": c.resource,
146772	})
146773	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146774}
146775
146776// Do executes the "compute.snapshots.getIamPolicy" call.
146777// Exactly one of *Policy or error will be non-nil. Any non-2xx status
146778// code is an error. Response headers are in either
146779// *Policy.ServerResponse.Header or (if a response was returned at all)
146780// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
146781// check whether the returned error was because http.StatusNotModified
146782// was returned.
146783func (c *SnapshotsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
146784	gensupport.SetOptions(c.urlParams_, opts...)
146785	res, err := c.doRequest("json")
146786	if res != nil && res.StatusCode == http.StatusNotModified {
146787		if res.Body != nil {
146788			res.Body.Close()
146789		}
146790		return nil, &googleapi.Error{
146791			Code:   res.StatusCode,
146792			Header: res.Header,
146793		}
146794	}
146795	if err != nil {
146796		return nil, err
146797	}
146798	defer googleapi.CloseBody(res)
146799	if err := googleapi.CheckResponse(res); err != nil {
146800		return nil, err
146801	}
146802	ret := &Policy{
146803		ServerResponse: googleapi.ServerResponse{
146804			Header:         res.Header,
146805			HTTPStatusCode: res.StatusCode,
146806		},
146807	}
146808	target := &ret
146809	if err := gensupport.DecodeResponse(target, res); err != nil {
146810		return nil, err
146811	}
146812	return ret, nil
146813	// {
146814	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
146815	//   "flatPath": "projects/{project}/global/snapshots/{resource}/getIamPolicy",
146816	//   "httpMethod": "GET",
146817	//   "id": "compute.snapshots.getIamPolicy",
146818	//   "parameterOrder": [
146819	//     "project",
146820	//     "resource"
146821	//   ],
146822	//   "parameters": {
146823	//     "optionsRequestedPolicyVersion": {
146824	//       "description": "Requested IAM Policy version.",
146825	//       "format": "int32",
146826	//       "location": "query",
146827	//       "type": "integer"
146828	//     },
146829	//     "project": {
146830	//       "description": "Project ID for this request.",
146831	//       "location": "path",
146832	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146833	//       "required": true,
146834	//       "type": "string"
146835	//     },
146836	//     "resource": {
146837	//       "description": "Name or id of the resource for this request.",
146838	//       "location": "path",
146839	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146840	//       "required": true,
146841	//       "type": "string"
146842	//     }
146843	//   },
146844	//   "path": "projects/{project}/global/snapshots/{resource}/getIamPolicy",
146845	//   "response": {
146846	//     "$ref": "Policy"
146847	//   },
146848	//   "scopes": [
146849	//     "https://www.googleapis.com/auth/cloud-platform",
146850	//     "https://www.googleapis.com/auth/compute",
146851	//     "https://www.googleapis.com/auth/compute.readonly"
146852	//   ]
146853	// }
146854
146855}
146856
146857// method id "compute.snapshots.list":
146858
146859type SnapshotsListCall struct {
146860	s            *Service
146861	project      string
146862	urlParams_   gensupport.URLParams
146863	ifNoneMatch_ string
146864	ctx_         context.Context
146865	header_      http.Header
146866}
146867
146868// List: Retrieves the list of Snapshot resources contained within the
146869// specified project.
146870//
146871// - project: Project ID for this request.
146872func (r *SnapshotsService) List(project string) *SnapshotsListCall {
146873	c := &SnapshotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146874	c.project = project
146875	return c
146876}
146877
146878// Filter sets the optional parameter "filter": A filter expression that
146879// filters resources listed in the response. The expression must specify
146880// the field name, a comparison operator, and the value that you want to
146881// use for filtering. The value must be a string, a number, or a
146882// boolean. The comparison operator must be either `=`, `!=`, `>`, or
146883// `<`. For example, if you are filtering Compute Engine instances, you
146884// can exclude instances named `example-instance` by specifying `name !=
146885// example-instance`. You can also filter nested fields. For example,
146886// you could specify `scheduling.automaticRestart = false` to include
146887// instances only if they are not scheduled for automatic restarts. You
146888// can use filtering on nested fields to filter based on resource
146889// labels. To filter on multiple expressions, provide each separate
146890// expression within parentheses. For example: ```
146891// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
146892// ``` By default, each expression is an `AND` expression. However, you
146893// can include `AND` and `OR` expressions explicitly. For example: ```
146894// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
146895// AND (scheduling.automaticRestart = true) ```
146896func (c *SnapshotsListCall) Filter(filter string) *SnapshotsListCall {
146897	c.urlParams_.Set("filter", filter)
146898	return c
146899}
146900
146901// MaxResults sets the optional parameter "maxResults": The maximum
146902// number of results per page that should be returned. If the number of
146903// available results is larger than `maxResults`, Compute Engine returns
146904// a `nextPageToken` that can be used to get the next page of results in
146905// subsequent list requests. Acceptable values are `0` to `500`,
146906// inclusive. (Default: `500`)
146907func (c *SnapshotsListCall) MaxResults(maxResults int64) *SnapshotsListCall {
146908	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
146909	return c
146910}
146911
146912// OrderBy sets the optional parameter "orderBy": Sorts list results by
146913// a certain order. By default, results are returned in alphanumerical
146914// order based on the resource name. You can also sort results in
146915// descending order based on the creation timestamp using
146916// `orderBy="creationTimestamp desc". This sorts results based on the
146917// `creationTimestamp` field in reverse chronological order (newest
146918// result first). Use this to sort resources like operations so that the
146919// newest operation is returned first. Currently, only sorting by `name`
146920// or `creationTimestamp desc` is supported.
146921func (c *SnapshotsListCall) OrderBy(orderBy string) *SnapshotsListCall {
146922	c.urlParams_.Set("orderBy", orderBy)
146923	return c
146924}
146925
146926// PageToken sets the optional parameter "pageToken": Specifies a page
146927// token to use. Set `pageToken` to the `nextPageToken` returned by a
146928// previous list request to get the next page of results.
146929func (c *SnapshotsListCall) PageToken(pageToken string) *SnapshotsListCall {
146930	c.urlParams_.Set("pageToken", pageToken)
146931	return c
146932}
146933
146934// ReturnPartialSuccess sets the optional parameter
146935// "returnPartialSuccess": Opt-in for partial success behavior which
146936// provides partial results in case of failure. The default value is
146937// false.
146938func (c *SnapshotsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SnapshotsListCall {
146939	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
146940	return c
146941}
146942
146943// Fields allows partial responses to be retrieved. See
146944// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146945// for more information.
146946func (c *SnapshotsListCall) Fields(s ...googleapi.Field) *SnapshotsListCall {
146947	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146948	return c
146949}
146950
146951// IfNoneMatch sets the optional parameter which makes the operation
146952// fail if the object's ETag matches the given value. This is useful for
146953// getting updates only after the object has changed since the last
146954// request. Use googleapi.IsNotModified to check whether the response
146955// error from Do is the result of In-None-Match.
146956func (c *SnapshotsListCall) IfNoneMatch(entityTag string) *SnapshotsListCall {
146957	c.ifNoneMatch_ = entityTag
146958	return c
146959}
146960
146961// Context sets the context to be used in this call's Do method. Any
146962// pending HTTP request will be aborted if the provided context is
146963// canceled.
146964func (c *SnapshotsListCall) Context(ctx context.Context) *SnapshotsListCall {
146965	c.ctx_ = ctx
146966	return c
146967}
146968
146969// Header returns an http.Header that can be modified by the caller to
146970// add HTTP headers to the request.
146971func (c *SnapshotsListCall) Header() http.Header {
146972	if c.header_ == nil {
146973		c.header_ = make(http.Header)
146974	}
146975	return c.header_
146976}
146977
146978func (c *SnapshotsListCall) doRequest(alt string) (*http.Response, error) {
146979	reqHeaders := make(http.Header)
146980	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
146981	for k, v := range c.header_ {
146982		reqHeaders[k] = v
146983	}
146984	reqHeaders.Set("User-Agent", c.s.userAgent())
146985	if c.ifNoneMatch_ != "" {
146986		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
146987	}
146988	var body io.Reader = nil
146989	c.urlParams_.Set("alt", alt)
146990	c.urlParams_.Set("prettyPrint", "false")
146991	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots")
146992	urls += "?" + c.urlParams_.Encode()
146993	req, err := http.NewRequest("GET", urls, body)
146994	if err != nil {
146995		return nil, err
146996	}
146997	req.Header = reqHeaders
146998	googleapi.Expand(req.URL, map[string]string{
146999		"project": c.project,
147000	})
147001	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147002}
147003
147004// Do executes the "compute.snapshots.list" call.
147005// Exactly one of *SnapshotList or error will be non-nil. Any non-2xx
147006// status code is an error. Response headers are in either
147007// *SnapshotList.ServerResponse.Header or (if a response was returned at
147008// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
147009// to check whether the returned error was because
147010// http.StatusNotModified was returned.
147011func (c *SnapshotsListCall) Do(opts ...googleapi.CallOption) (*SnapshotList, error) {
147012	gensupport.SetOptions(c.urlParams_, opts...)
147013	res, err := c.doRequest("json")
147014	if res != nil && res.StatusCode == http.StatusNotModified {
147015		if res.Body != nil {
147016			res.Body.Close()
147017		}
147018		return nil, &googleapi.Error{
147019			Code:   res.StatusCode,
147020			Header: res.Header,
147021		}
147022	}
147023	if err != nil {
147024		return nil, err
147025	}
147026	defer googleapi.CloseBody(res)
147027	if err := googleapi.CheckResponse(res); err != nil {
147028		return nil, err
147029	}
147030	ret := &SnapshotList{
147031		ServerResponse: googleapi.ServerResponse{
147032			Header:         res.Header,
147033			HTTPStatusCode: res.StatusCode,
147034		},
147035	}
147036	target := &ret
147037	if err := gensupport.DecodeResponse(target, res); err != nil {
147038		return nil, err
147039	}
147040	return ret, nil
147041	// {
147042	//   "description": "Retrieves the list of Snapshot resources contained within the specified project.",
147043	//   "flatPath": "projects/{project}/global/snapshots",
147044	//   "httpMethod": "GET",
147045	//   "id": "compute.snapshots.list",
147046	//   "parameterOrder": [
147047	//     "project"
147048	//   ],
147049	//   "parameters": {
147050	//     "filter": {
147051	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
147052	//       "location": "query",
147053	//       "type": "string"
147054	//     },
147055	//     "maxResults": {
147056	//       "default": "500",
147057	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
147058	//       "format": "uint32",
147059	//       "location": "query",
147060	//       "minimum": "0",
147061	//       "type": "integer"
147062	//     },
147063	//     "orderBy": {
147064	//       "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.",
147065	//       "location": "query",
147066	//       "type": "string"
147067	//     },
147068	//     "pageToken": {
147069	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
147070	//       "location": "query",
147071	//       "type": "string"
147072	//     },
147073	//     "project": {
147074	//       "description": "Project ID for this request.",
147075	//       "location": "path",
147076	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147077	//       "required": true,
147078	//       "type": "string"
147079	//     },
147080	//     "returnPartialSuccess": {
147081	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
147082	//       "location": "query",
147083	//       "type": "boolean"
147084	//     }
147085	//   },
147086	//   "path": "projects/{project}/global/snapshots",
147087	//   "response": {
147088	//     "$ref": "SnapshotList"
147089	//   },
147090	//   "scopes": [
147091	//     "https://www.googleapis.com/auth/cloud-platform",
147092	//     "https://www.googleapis.com/auth/compute",
147093	//     "https://www.googleapis.com/auth/compute.readonly"
147094	//   ]
147095	// }
147096
147097}
147098
147099// Pages invokes f for each page of results.
147100// A non-nil error returned from f will halt the iteration.
147101// The provided context supersedes any context provided to the Context method.
147102func (c *SnapshotsListCall) Pages(ctx context.Context, f func(*SnapshotList) error) error {
147103	c.ctx_ = ctx
147104	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
147105	for {
147106		x, err := c.Do()
147107		if err != nil {
147108			return err
147109		}
147110		if err := f(x); err != nil {
147111			return err
147112		}
147113		if x.NextPageToken == "" {
147114			return nil
147115		}
147116		c.PageToken(x.NextPageToken)
147117	}
147118}
147119
147120// method id "compute.snapshots.setIamPolicy":
147121
147122type SnapshotsSetIamPolicyCall struct {
147123	s                      *Service
147124	project                string
147125	resource               string
147126	globalsetpolicyrequest *GlobalSetPolicyRequest
147127	urlParams_             gensupport.URLParams
147128	ctx_                   context.Context
147129	header_                http.Header
147130}
147131
147132// SetIamPolicy: Sets the access control policy on the specified
147133// resource. Replaces any existing policy.
147134//
147135// - project: Project ID for this request.
147136// - resource: Name or id of the resource for this request.
147137func (r *SnapshotsService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *SnapshotsSetIamPolicyCall {
147138	c := &SnapshotsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147139	c.project = project
147140	c.resource = resource
147141	c.globalsetpolicyrequest = globalsetpolicyrequest
147142	return c
147143}
147144
147145// Fields allows partial responses to be retrieved. See
147146// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147147// for more information.
147148func (c *SnapshotsSetIamPolicyCall) Fields(s ...googleapi.Field) *SnapshotsSetIamPolicyCall {
147149	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147150	return c
147151}
147152
147153// Context sets the context to be used in this call's Do method. Any
147154// pending HTTP request will be aborted if the provided context is
147155// canceled.
147156func (c *SnapshotsSetIamPolicyCall) Context(ctx context.Context) *SnapshotsSetIamPolicyCall {
147157	c.ctx_ = ctx
147158	return c
147159}
147160
147161// Header returns an http.Header that can be modified by the caller to
147162// add HTTP headers to the request.
147163func (c *SnapshotsSetIamPolicyCall) Header() http.Header {
147164	if c.header_ == nil {
147165		c.header_ = make(http.Header)
147166	}
147167	return c.header_
147168}
147169
147170func (c *SnapshotsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
147171	reqHeaders := make(http.Header)
147172	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
147173	for k, v := range c.header_ {
147174		reqHeaders[k] = v
147175	}
147176	reqHeaders.Set("User-Agent", c.s.userAgent())
147177	var body io.Reader = nil
147178	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
147179	if err != nil {
147180		return nil, err
147181	}
147182	reqHeaders.Set("Content-Type", "application/json")
147183	c.urlParams_.Set("alt", alt)
147184	c.urlParams_.Set("prettyPrint", "false")
147185	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{resource}/setIamPolicy")
147186	urls += "?" + c.urlParams_.Encode()
147187	req, err := http.NewRequest("POST", urls, body)
147188	if err != nil {
147189		return nil, err
147190	}
147191	req.Header = reqHeaders
147192	googleapi.Expand(req.URL, map[string]string{
147193		"project":  c.project,
147194		"resource": c.resource,
147195	})
147196	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147197}
147198
147199// Do executes the "compute.snapshots.setIamPolicy" call.
147200// Exactly one of *Policy or error will be non-nil. Any non-2xx status
147201// code is an error. Response headers are in either
147202// *Policy.ServerResponse.Header or (if a response was returned at all)
147203// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
147204// check whether the returned error was because http.StatusNotModified
147205// was returned.
147206func (c *SnapshotsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
147207	gensupport.SetOptions(c.urlParams_, opts...)
147208	res, err := c.doRequest("json")
147209	if res != nil && res.StatusCode == http.StatusNotModified {
147210		if res.Body != nil {
147211			res.Body.Close()
147212		}
147213		return nil, &googleapi.Error{
147214			Code:   res.StatusCode,
147215			Header: res.Header,
147216		}
147217	}
147218	if err != nil {
147219		return nil, err
147220	}
147221	defer googleapi.CloseBody(res)
147222	if err := googleapi.CheckResponse(res); err != nil {
147223		return nil, err
147224	}
147225	ret := &Policy{
147226		ServerResponse: googleapi.ServerResponse{
147227			Header:         res.Header,
147228			HTTPStatusCode: res.StatusCode,
147229		},
147230	}
147231	target := &ret
147232	if err := gensupport.DecodeResponse(target, res); err != nil {
147233		return nil, err
147234	}
147235	return ret, nil
147236	// {
147237	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
147238	//   "flatPath": "projects/{project}/global/snapshots/{resource}/setIamPolicy",
147239	//   "httpMethod": "POST",
147240	//   "id": "compute.snapshots.setIamPolicy",
147241	//   "parameterOrder": [
147242	//     "project",
147243	//     "resource"
147244	//   ],
147245	//   "parameters": {
147246	//     "project": {
147247	//       "description": "Project ID for this request.",
147248	//       "location": "path",
147249	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147250	//       "required": true,
147251	//       "type": "string"
147252	//     },
147253	//     "resource": {
147254	//       "description": "Name or id of the resource for this request.",
147255	//       "location": "path",
147256	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147257	//       "required": true,
147258	//       "type": "string"
147259	//     }
147260	//   },
147261	//   "path": "projects/{project}/global/snapshots/{resource}/setIamPolicy",
147262	//   "request": {
147263	//     "$ref": "GlobalSetPolicyRequest"
147264	//   },
147265	//   "response": {
147266	//     "$ref": "Policy"
147267	//   },
147268	//   "scopes": [
147269	//     "https://www.googleapis.com/auth/cloud-platform",
147270	//     "https://www.googleapis.com/auth/compute"
147271	//   ]
147272	// }
147273
147274}
147275
147276// method id "compute.snapshots.setLabels":
147277
147278type SnapshotsSetLabelsCall struct {
147279	s                      *Service
147280	project                string
147281	resource               string
147282	globalsetlabelsrequest *GlobalSetLabelsRequest
147283	urlParams_             gensupport.URLParams
147284	ctx_                   context.Context
147285	header_                http.Header
147286}
147287
147288// SetLabels: Sets the labels on a snapshot. To learn more about labels,
147289// read the Labeling Resources documentation.
147290//
147291// - project: Project ID for this request.
147292// - resource: Name or id of the resource for this request.
147293func (r *SnapshotsService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *SnapshotsSetLabelsCall {
147294	c := &SnapshotsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147295	c.project = project
147296	c.resource = resource
147297	c.globalsetlabelsrequest = globalsetlabelsrequest
147298	return c
147299}
147300
147301// Fields allows partial responses to be retrieved. See
147302// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147303// for more information.
147304func (c *SnapshotsSetLabelsCall) Fields(s ...googleapi.Field) *SnapshotsSetLabelsCall {
147305	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147306	return c
147307}
147308
147309// Context sets the context to be used in this call's Do method. Any
147310// pending HTTP request will be aborted if the provided context is
147311// canceled.
147312func (c *SnapshotsSetLabelsCall) Context(ctx context.Context) *SnapshotsSetLabelsCall {
147313	c.ctx_ = ctx
147314	return c
147315}
147316
147317// Header returns an http.Header that can be modified by the caller to
147318// add HTTP headers to the request.
147319func (c *SnapshotsSetLabelsCall) Header() http.Header {
147320	if c.header_ == nil {
147321		c.header_ = make(http.Header)
147322	}
147323	return c.header_
147324}
147325
147326func (c *SnapshotsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
147327	reqHeaders := make(http.Header)
147328	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
147329	for k, v := range c.header_ {
147330		reqHeaders[k] = v
147331	}
147332	reqHeaders.Set("User-Agent", c.s.userAgent())
147333	var body io.Reader = nil
147334	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
147335	if err != nil {
147336		return nil, err
147337	}
147338	reqHeaders.Set("Content-Type", "application/json")
147339	c.urlParams_.Set("alt", alt)
147340	c.urlParams_.Set("prettyPrint", "false")
147341	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{resource}/setLabels")
147342	urls += "?" + c.urlParams_.Encode()
147343	req, err := http.NewRequest("POST", 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		"resource": c.resource,
147351	})
147352	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147353}
147354
147355// Do executes the "compute.snapshots.setLabels" call.
147356// Exactly one of *Operation or error will be non-nil. Any non-2xx
147357// status code is an error. Response headers are in either
147358// *Operation.ServerResponse.Header or (if a response was returned at
147359// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
147360// to check whether the returned error was because
147361// http.StatusNotModified was returned.
147362func (c *SnapshotsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
147363	gensupport.SetOptions(c.urlParams_, opts...)
147364	res, err := c.doRequest("json")
147365	if res != nil && res.StatusCode == http.StatusNotModified {
147366		if res.Body != nil {
147367			res.Body.Close()
147368		}
147369		return nil, &googleapi.Error{
147370			Code:   res.StatusCode,
147371			Header: res.Header,
147372		}
147373	}
147374	if err != nil {
147375		return nil, err
147376	}
147377	defer googleapi.CloseBody(res)
147378	if err := googleapi.CheckResponse(res); err != nil {
147379		return nil, err
147380	}
147381	ret := &Operation{
147382		ServerResponse: googleapi.ServerResponse{
147383			Header:         res.Header,
147384			HTTPStatusCode: res.StatusCode,
147385		},
147386	}
147387	target := &ret
147388	if err := gensupport.DecodeResponse(target, res); err != nil {
147389		return nil, err
147390	}
147391	return ret, nil
147392	// {
147393	//   "description": "Sets the labels on a snapshot. To learn more about labels, read the Labeling Resources documentation.",
147394	//   "flatPath": "projects/{project}/global/snapshots/{resource}/setLabels",
147395	//   "httpMethod": "POST",
147396	//   "id": "compute.snapshots.setLabels",
147397	//   "parameterOrder": [
147398	//     "project",
147399	//     "resource"
147400	//   ],
147401	//   "parameters": {
147402	//     "project": {
147403	//       "description": "Project ID for this request.",
147404	//       "location": "path",
147405	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147406	//       "required": true,
147407	//       "type": "string"
147408	//     },
147409	//     "resource": {
147410	//       "description": "Name or id of the resource for this request.",
147411	//       "location": "path",
147412	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147413	//       "required": true,
147414	//       "type": "string"
147415	//     }
147416	//   },
147417	//   "path": "projects/{project}/global/snapshots/{resource}/setLabels",
147418	//   "request": {
147419	//     "$ref": "GlobalSetLabelsRequest"
147420	//   },
147421	//   "response": {
147422	//     "$ref": "Operation"
147423	//   },
147424	//   "scopes": [
147425	//     "https://www.googleapis.com/auth/cloud-platform",
147426	//     "https://www.googleapis.com/auth/compute"
147427	//   ]
147428	// }
147429
147430}
147431
147432// method id "compute.snapshots.testIamPermissions":
147433
147434type SnapshotsTestIamPermissionsCall struct {
147435	s                      *Service
147436	project                string
147437	resource               string
147438	testpermissionsrequest *TestPermissionsRequest
147439	urlParams_             gensupport.URLParams
147440	ctx_                   context.Context
147441	header_                http.Header
147442}
147443
147444// TestIamPermissions: Returns permissions that a caller has on the
147445// specified resource.
147446//
147447// - project: Project ID for this request.
147448// - resource: Name or id of the resource for this request.
147449func (r *SnapshotsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SnapshotsTestIamPermissionsCall {
147450	c := &SnapshotsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147451	c.project = project
147452	c.resource = resource
147453	c.testpermissionsrequest = testpermissionsrequest
147454	return c
147455}
147456
147457// Fields allows partial responses to be retrieved. See
147458// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147459// for more information.
147460func (c *SnapshotsTestIamPermissionsCall) Fields(s ...googleapi.Field) *SnapshotsTestIamPermissionsCall {
147461	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147462	return c
147463}
147464
147465// Context sets the context to be used in this call's Do method. Any
147466// pending HTTP request will be aborted if the provided context is
147467// canceled.
147468func (c *SnapshotsTestIamPermissionsCall) Context(ctx context.Context) *SnapshotsTestIamPermissionsCall {
147469	c.ctx_ = ctx
147470	return c
147471}
147472
147473// Header returns an http.Header that can be modified by the caller to
147474// add HTTP headers to the request.
147475func (c *SnapshotsTestIamPermissionsCall) Header() http.Header {
147476	if c.header_ == nil {
147477		c.header_ = make(http.Header)
147478	}
147479	return c.header_
147480}
147481
147482func (c *SnapshotsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
147483	reqHeaders := make(http.Header)
147484	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
147485	for k, v := range c.header_ {
147486		reqHeaders[k] = v
147487	}
147488	reqHeaders.Set("User-Agent", c.s.userAgent())
147489	var body io.Reader = nil
147490	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
147491	if err != nil {
147492		return nil, err
147493	}
147494	reqHeaders.Set("Content-Type", "application/json")
147495	c.urlParams_.Set("alt", alt)
147496	c.urlParams_.Set("prettyPrint", "false")
147497	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{resource}/testIamPermissions")
147498	urls += "?" + c.urlParams_.Encode()
147499	req, err := http.NewRequest("POST", urls, body)
147500	if err != nil {
147501		return nil, err
147502	}
147503	req.Header = reqHeaders
147504	googleapi.Expand(req.URL, map[string]string{
147505		"project":  c.project,
147506		"resource": c.resource,
147507	})
147508	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147509}
147510
147511// Do executes the "compute.snapshots.testIamPermissions" call.
147512// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
147513// non-2xx status code is an error. Response headers are in either
147514// *TestPermissionsResponse.ServerResponse.Header or (if a response was
147515// returned at all) in error.(*googleapi.Error).Header. Use
147516// googleapi.IsNotModified to check whether the returned error was
147517// because http.StatusNotModified was returned.
147518func (c *SnapshotsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
147519	gensupport.SetOptions(c.urlParams_, opts...)
147520	res, err := c.doRequest("json")
147521	if res != nil && res.StatusCode == http.StatusNotModified {
147522		if res.Body != nil {
147523			res.Body.Close()
147524		}
147525		return nil, &googleapi.Error{
147526			Code:   res.StatusCode,
147527			Header: res.Header,
147528		}
147529	}
147530	if err != nil {
147531		return nil, err
147532	}
147533	defer googleapi.CloseBody(res)
147534	if err := googleapi.CheckResponse(res); err != nil {
147535		return nil, err
147536	}
147537	ret := &TestPermissionsResponse{
147538		ServerResponse: googleapi.ServerResponse{
147539			Header:         res.Header,
147540			HTTPStatusCode: res.StatusCode,
147541		},
147542	}
147543	target := &ret
147544	if err := gensupport.DecodeResponse(target, res); err != nil {
147545		return nil, err
147546	}
147547	return ret, nil
147548	// {
147549	//   "description": "Returns permissions that a caller has on the specified resource.",
147550	//   "flatPath": "projects/{project}/global/snapshots/{resource}/testIamPermissions",
147551	//   "httpMethod": "POST",
147552	//   "id": "compute.snapshots.testIamPermissions",
147553	//   "parameterOrder": [
147554	//     "project",
147555	//     "resource"
147556	//   ],
147557	//   "parameters": {
147558	//     "project": {
147559	//       "description": "Project ID for this request.",
147560	//       "location": "path",
147561	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147562	//       "required": true,
147563	//       "type": "string"
147564	//     },
147565	//     "resource": {
147566	//       "description": "Name or id of the resource for this request.",
147567	//       "location": "path",
147568	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147569	//       "required": true,
147570	//       "type": "string"
147571	//     }
147572	//   },
147573	//   "path": "projects/{project}/global/snapshots/{resource}/testIamPermissions",
147574	//   "request": {
147575	//     "$ref": "TestPermissionsRequest"
147576	//   },
147577	//   "response": {
147578	//     "$ref": "TestPermissionsResponse"
147579	//   },
147580	//   "scopes": [
147581	//     "https://www.googleapis.com/auth/cloud-platform",
147582	//     "https://www.googleapis.com/auth/compute",
147583	//     "https://www.googleapis.com/auth/compute.readonly"
147584	//   ]
147585	// }
147586
147587}
147588
147589// method id "compute.sslCertificates.aggregatedList":
147590
147591type SslCertificatesAggregatedListCall struct {
147592	s            *Service
147593	project      string
147594	urlParams_   gensupport.URLParams
147595	ifNoneMatch_ string
147596	ctx_         context.Context
147597	header_      http.Header
147598}
147599
147600// AggregatedList: Retrieves the list of all SslCertificate resources,
147601// regional and global, available to the specified project.
147602//
147603// - project: Name of the project scoping this request.
147604func (r *SslCertificatesService) AggregatedList(project string) *SslCertificatesAggregatedListCall {
147605	c := &SslCertificatesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147606	c.project = project
147607	return c
147608}
147609
147610// Filter sets the optional parameter "filter": A filter expression that
147611// filters resources listed in the response. The expression must specify
147612// the field name, a comparison operator, and the value that you want to
147613// use for filtering. The value must be a string, a number, or a
147614// boolean. The comparison operator must be either `=`, `!=`, `>`, or
147615// `<`. For example, if you are filtering Compute Engine instances, you
147616// can exclude instances named `example-instance` by specifying `name !=
147617// example-instance`. You can also filter nested fields. For example,
147618// you could specify `scheduling.automaticRestart = false` to include
147619// instances only if they are not scheduled for automatic restarts. You
147620// can use filtering on nested fields to filter based on resource
147621// labels. To filter on multiple expressions, provide each separate
147622// expression within parentheses. For example: ```
147623// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
147624// ``` By default, each expression is an `AND` expression. However, you
147625// can include `AND` and `OR` expressions explicitly. For example: ```
147626// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
147627// AND (scheduling.automaticRestart = true) ```
147628func (c *SslCertificatesAggregatedListCall) Filter(filter string) *SslCertificatesAggregatedListCall {
147629	c.urlParams_.Set("filter", filter)
147630	return c
147631}
147632
147633// IncludeAllScopes sets the optional parameter "includeAllScopes":
147634// Indicates whether every visible scope for each scope type (zone,
147635// region, global) should be included in the response. For new resource
147636// types added after this field, the flag has no effect as new resource
147637// types will always include every visible scope for each scope type in
147638// response. For resource types which predate this field, if this flag
147639// is omitted or false, only scopes of the scope types where the
147640// resource type is expected to be found will be included.
147641func (c *SslCertificatesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *SslCertificatesAggregatedListCall {
147642	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
147643	return c
147644}
147645
147646// MaxResults sets the optional parameter "maxResults": The maximum
147647// number of results per page that should be returned. If the number of
147648// available results is larger than `maxResults`, Compute Engine returns
147649// a `nextPageToken` that can be used to get the next page of results in
147650// subsequent list requests. Acceptable values are `0` to `500`,
147651// inclusive. (Default: `500`)
147652func (c *SslCertificatesAggregatedListCall) MaxResults(maxResults int64) *SslCertificatesAggregatedListCall {
147653	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
147654	return c
147655}
147656
147657// OrderBy sets the optional parameter "orderBy": Sorts list results by
147658// a certain order. By default, results are returned in alphanumerical
147659// order based on the resource name. You can also sort results in
147660// descending order based on the creation timestamp using
147661// `orderBy="creationTimestamp desc". This sorts results based on the
147662// `creationTimestamp` field in reverse chronological order (newest
147663// result first). Use this to sort resources like operations so that the
147664// newest operation is returned first. Currently, only sorting by `name`
147665// or `creationTimestamp desc` is supported.
147666func (c *SslCertificatesAggregatedListCall) OrderBy(orderBy string) *SslCertificatesAggregatedListCall {
147667	c.urlParams_.Set("orderBy", orderBy)
147668	return c
147669}
147670
147671// PageToken sets the optional parameter "pageToken": Specifies a page
147672// token to use. Set `pageToken` to the `nextPageToken` returned by a
147673// previous list request to get the next page of results.
147674func (c *SslCertificatesAggregatedListCall) PageToken(pageToken string) *SslCertificatesAggregatedListCall {
147675	c.urlParams_.Set("pageToken", pageToken)
147676	return c
147677}
147678
147679// ReturnPartialSuccess sets the optional parameter
147680// "returnPartialSuccess": Opt-in for partial success behavior which
147681// provides partial results in case of failure. The default value is
147682// false.
147683func (c *SslCertificatesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslCertificatesAggregatedListCall {
147684	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
147685	return c
147686}
147687
147688// Fields allows partial responses to be retrieved. See
147689// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147690// for more information.
147691func (c *SslCertificatesAggregatedListCall) Fields(s ...googleapi.Field) *SslCertificatesAggregatedListCall {
147692	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147693	return c
147694}
147695
147696// IfNoneMatch sets the optional parameter which makes the operation
147697// fail if the object's ETag matches the given value. This is useful for
147698// getting updates only after the object has changed since the last
147699// request. Use googleapi.IsNotModified to check whether the response
147700// error from Do is the result of In-None-Match.
147701func (c *SslCertificatesAggregatedListCall) IfNoneMatch(entityTag string) *SslCertificatesAggregatedListCall {
147702	c.ifNoneMatch_ = entityTag
147703	return c
147704}
147705
147706// Context sets the context to be used in this call's Do method. Any
147707// pending HTTP request will be aborted if the provided context is
147708// canceled.
147709func (c *SslCertificatesAggregatedListCall) Context(ctx context.Context) *SslCertificatesAggregatedListCall {
147710	c.ctx_ = ctx
147711	return c
147712}
147713
147714// Header returns an http.Header that can be modified by the caller to
147715// add HTTP headers to the request.
147716func (c *SslCertificatesAggregatedListCall) Header() http.Header {
147717	if c.header_ == nil {
147718		c.header_ = make(http.Header)
147719	}
147720	return c.header_
147721}
147722
147723func (c *SslCertificatesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
147724	reqHeaders := make(http.Header)
147725	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
147726	for k, v := range c.header_ {
147727		reqHeaders[k] = v
147728	}
147729	reqHeaders.Set("User-Agent", c.s.userAgent())
147730	if c.ifNoneMatch_ != "" {
147731		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
147732	}
147733	var body io.Reader = nil
147734	c.urlParams_.Set("alt", alt)
147735	c.urlParams_.Set("prettyPrint", "false")
147736	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/sslCertificates")
147737	urls += "?" + c.urlParams_.Encode()
147738	req, err := http.NewRequest("GET", urls, body)
147739	if err != nil {
147740		return nil, err
147741	}
147742	req.Header = reqHeaders
147743	googleapi.Expand(req.URL, map[string]string{
147744		"project": c.project,
147745	})
147746	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147747}
147748
147749// Do executes the "compute.sslCertificates.aggregatedList" call.
147750// Exactly one of *SslCertificateAggregatedList or error will be
147751// non-nil. Any non-2xx status code is an error. Response headers are in
147752// either *SslCertificateAggregatedList.ServerResponse.Header or (if a
147753// response was returned at all) in error.(*googleapi.Error).Header. Use
147754// googleapi.IsNotModified to check whether the returned error was
147755// because http.StatusNotModified was returned.
147756func (c *SslCertificatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*SslCertificateAggregatedList, error) {
147757	gensupport.SetOptions(c.urlParams_, opts...)
147758	res, err := c.doRequest("json")
147759	if res != nil && res.StatusCode == http.StatusNotModified {
147760		if res.Body != nil {
147761			res.Body.Close()
147762		}
147763		return nil, &googleapi.Error{
147764			Code:   res.StatusCode,
147765			Header: res.Header,
147766		}
147767	}
147768	if err != nil {
147769		return nil, err
147770	}
147771	defer googleapi.CloseBody(res)
147772	if err := googleapi.CheckResponse(res); err != nil {
147773		return nil, err
147774	}
147775	ret := &SslCertificateAggregatedList{
147776		ServerResponse: googleapi.ServerResponse{
147777			Header:         res.Header,
147778			HTTPStatusCode: res.StatusCode,
147779		},
147780	}
147781	target := &ret
147782	if err := gensupport.DecodeResponse(target, res); err != nil {
147783		return nil, err
147784	}
147785	return ret, nil
147786	// {
147787	//   "description": "Retrieves the list of all SslCertificate resources, regional and global, available to the specified project.",
147788	//   "flatPath": "projects/{project}/aggregated/sslCertificates",
147789	//   "httpMethod": "GET",
147790	//   "id": "compute.sslCertificates.aggregatedList",
147791	//   "parameterOrder": [
147792	//     "project"
147793	//   ],
147794	//   "parameters": {
147795	//     "filter": {
147796	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
147797	//       "location": "query",
147798	//       "type": "string"
147799	//     },
147800	//     "includeAllScopes": {
147801	//       "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.",
147802	//       "location": "query",
147803	//       "type": "boolean"
147804	//     },
147805	//     "maxResults": {
147806	//       "default": "500",
147807	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
147808	//       "format": "uint32",
147809	//       "location": "query",
147810	//       "minimum": "0",
147811	//       "type": "integer"
147812	//     },
147813	//     "orderBy": {
147814	//       "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.",
147815	//       "location": "query",
147816	//       "type": "string"
147817	//     },
147818	//     "pageToken": {
147819	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
147820	//       "location": "query",
147821	//       "type": "string"
147822	//     },
147823	//     "project": {
147824	//       "description": "Name of the project scoping this request.",
147825	//       "location": "path",
147826	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147827	//       "required": true,
147828	//       "type": "string"
147829	//     },
147830	//     "returnPartialSuccess": {
147831	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
147832	//       "location": "query",
147833	//       "type": "boolean"
147834	//     }
147835	//   },
147836	//   "path": "projects/{project}/aggregated/sslCertificates",
147837	//   "response": {
147838	//     "$ref": "SslCertificateAggregatedList"
147839	//   },
147840	//   "scopes": [
147841	//     "https://www.googleapis.com/auth/cloud-platform",
147842	//     "https://www.googleapis.com/auth/compute",
147843	//     "https://www.googleapis.com/auth/compute.readonly"
147844	//   ]
147845	// }
147846
147847}
147848
147849// Pages invokes f for each page of results.
147850// A non-nil error returned from f will halt the iteration.
147851// The provided context supersedes any context provided to the Context method.
147852func (c *SslCertificatesAggregatedListCall) Pages(ctx context.Context, f func(*SslCertificateAggregatedList) error) error {
147853	c.ctx_ = ctx
147854	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
147855	for {
147856		x, err := c.Do()
147857		if err != nil {
147858			return err
147859		}
147860		if err := f(x); err != nil {
147861			return err
147862		}
147863		if x.NextPageToken == "" {
147864			return nil
147865		}
147866		c.PageToken(x.NextPageToken)
147867	}
147868}
147869
147870// method id "compute.sslCertificates.delete":
147871
147872type SslCertificatesDeleteCall struct {
147873	s              *Service
147874	project        string
147875	sslCertificate string
147876	urlParams_     gensupport.URLParams
147877	ctx_           context.Context
147878	header_        http.Header
147879}
147880
147881// Delete: Deletes the specified SslCertificate resource.
147882//
147883// - project: Project ID for this request.
147884// - sslCertificate: Name of the SslCertificate resource to delete.
147885func (r *SslCertificatesService) Delete(project string, sslCertificate string) *SslCertificatesDeleteCall {
147886	c := &SslCertificatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147887	c.project = project
147888	c.sslCertificate = sslCertificate
147889	return c
147890}
147891
147892// RequestId sets the optional parameter "requestId": An optional
147893// request ID to identify requests. Specify a unique request ID so that
147894// if you must retry your request, the server will know to ignore the
147895// request if it has already been completed. For example, consider a
147896// situation where you make an initial request and the request times
147897// out. If you make the request again with the same request ID, the
147898// server can check if original operation with the same request ID was
147899// received, and if so, will ignore the second request. This prevents
147900// clients from accidentally creating duplicate commitments. The request
147901// ID must be a valid UUID with the exception that zero UUID is not
147902// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
147903// MixerMutationRequestBuilder
147904func (c *SslCertificatesDeleteCall) RequestId(requestId string) *SslCertificatesDeleteCall {
147905	c.urlParams_.Set("requestId", requestId)
147906	return c
147907}
147908
147909// Fields allows partial responses to be retrieved. See
147910// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147911// for more information.
147912func (c *SslCertificatesDeleteCall) Fields(s ...googleapi.Field) *SslCertificatesDeleteCall {
147913	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147914	return c
147915}
147916
147917// Context sets the context to be used in this call's Do method. Any
147918// pending HTTP request will be aborted if the provided context is
147919// canceled.
147920func (c *SslCertificatesDeleteCall) Context(ctx context.Context) *SslCertificatesDeleteCall {
147921	c.ctx_ = ctx
147922	return c
147923}
147924
147925// Header returns an http.Header that can be modified by the caller to
147926// add HTTP headers to the request.
147927func (c *SslCertificatesDeleteCall) Header() http.Header {
147928	if c.header_ == nil {
147929		c.header_ = make(http.Header)
147930	}
147931	return c.header_
147932}
147933
147934func (c *SslCertificatesDeleteCall) doRequest(alt string) (*http.Response, error) {
147935	reqHeaders := make(http.Header)
147936	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
147937	for k, v := range c.header_ {
147938		reqHeaders[k] = v
147939	}
147940	reqHeaders.Set("User-Agent", c.s.userAgent())
147941	var body io.Reader = nil
147942	c.urlParams_.Set("alt", alt)
147943	c.urlParams_.Set("prettyPrint", "false")
147944	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates/{sslCertificate}")
147945	urls += "?" + c.urlParams_.Encode()
147946	req, err := http.NewRequest("DELETE", urls, body)
147947	if err != nil {
147948		return nil, err
147949	}
147950	req.Header = reqHeaders
147951	googleapi.Expand(req.URL, map[string]string{
147952		"project":        c.project,
147953		"sslCertificate": c.sslCertificate,
147954	})
147955	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147956}
147957
147958// Do executes the "compute.sslCertificates.delete" call.
147959// Exactly one of *Operation or error will be non-nil. Any non-2xx
147960// status code is an error. Response headers are in either
147961// *Operation.ServerResponse.Header or (if a response was returned at
147962// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
147963// to check whether the returned error was because
147964// http.StatusNotModified was returned.
147965func (c *SslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
147966	gensupport.SetOptions(c.urlParams_, opts...)
147967	res, err := c.doRequest("json")
147968	if res != nil && res.StatusCode == http.StatusNotModified {
147969		if res.Body != nil {
147970			res.Body.Close()
147971		}
147972		return nil, &googleapi.Error{
147973			Code:   res.StatusCode,
147974			Header: res.Header,
147975		}
147976	}
147977	if err != nil {
147978		return nil, err
147979	}
147980	defer googleapi.CloseBody(res)
147981	if err := googleapi.CheckResponse(res); err != nil {
147982		return nil, err
147983	}
147984	ret := &Operation{
147985		ServerResponse: googleapi.ServerResponse{
147986			Header:         res.Header,
147987			HTTPStatusCode: res.StatusCode,
147988		},
147989	}
147990	target := &ret
147991	if err := gensupport.DecodeResponse(target, res); err != nil {
147992		return nil, err
147993	}
147994	return ret, nil
147995	// {
147996	//   "description": "Deletes the specified SslCertificate resource.",
147997	//   "flatPath": "projects/{project}/global/sslCertificates/{sslCertificate}",
147998	//   "httpMethod": "DELETE",
147999	//   "id": "compute.sslCertificates.delete",
148000	//   "parameterOrder": [
148001	//     "project",
148002	//     "sslCertificate"
148003	//   ],
148004	//   "parameters": {
148005	//     "project": {
148006	//       "description": "Project ID for this request.",
148007	//       "location": "path",
148008	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148009	//       "required": true,
148010	//       "type": "string"
148011	//     },
148012	//     "requestId": {
148013	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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",
148014	//       "location": "query",
148015	//       "type": "string"
148016	//     },
148017	//     "sslCertificate": {
148018	//       "description": "Name of the SslCertificate resource to delete.",
148019	//       "location": "path",
148020	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
148021	//       "required": true,
148022	//       "type": "string"
148023	//     }
148024	//   },
148025	//   "path": "projects/{project}/global/sslCertificates/{sslCertificate}",
148026	//   "response": {
148027	//     "$ref": "Operation"
148028	//   },
148029	//   "scopes": [
148030	//     "https://www.googleapis.com/auth/cloud-platform",
148031	//     "https://www.googleapis.com/auth/compute"
148032	//   ]
148033	// }
148034
148035}
148036
148037// method id "compute.sslCertificates.get":
148038
148039type SslCertificatesGetCall struct {
148040	s              *Service
148041	project        string
148042	sslCertificate string
148043	urlParams_     gensupport.URLParams
148044	ifNoneMatch_   string
148045	ctx_           context.Context
148046	header_        http.Header
148047}
148048
148049// Get: Returns the specified SslCertificate resource. Gets a list of
148050// available SSL certificates by making a list() request.
148051//
148052// - project: Project ID for this request.
148053// - sslCertificate: Name of the SslCertificate resource to return.
148054func (r *SslCertificatesService) Get(project string, sslCertificate string) *SslCertificatesGetCall {
148055	c := &SslCertificatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148056	c.project = project
148057	c.sslCertificate = sslCertificate
148058	return c
148059}
148060
148061// Fields allows partial responses to be retrieved. See
148062// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148063// for more information.
148064func (c *SslCertificatesGetCall) Fields(s ...googleapi.Field) *SslCertificatesGetCall {
148065	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148066	return c
148067}
148068
148069// IfNoneMatch sets the optional parameter which makes the operation
148070// fail if the object's ETag matches the given value. This is useful for
148071// getting updates only after the object has changed since the last
148072// request. Use googleapi.IsNotModified to check whether the response
148073// error from Do is the result of In-None-Match.
148074func (c *SslCertificatesGetCall) IfNoneMatch(entityTag string) *SslCertificatesGetCall {
148075	c.ifNoneMatch_ = entityTag
148076	return c
148077}
148078
148079// Context sets the context to be used in this call's Do method. Any
148080// pending HTTP request will be aborted if the provided context is
148081// canceled.
148082func (c *SslCertificatesGetCall) Context(ctx context.Context) *SslCertificatesGetCall {
148083	c.ctx_ = ctx
148084	return c
148085}
148086
148087// Header returns an http.Header that can be modified by the caller to
148088// add HTTP headers to the request.
148089func (c *SslCertificatesGetCall) Header() http.Header {
148090	if c.header_ == nil {
148091		c.header_ = make(http.Header)
148092	}
148093	return c.header_
148094}
148095
148096func (c *SslCertificatesGetCall) doRequest(alt string) (*http.Response, error) {
148097	reqHeaders := make(http.Header)
148098	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
148099	for k, v := range c.header_ {
148100		reqHeaders[k] = v
148101	}
148102	reqHeaders.Set("User-Agent", c.s.userAgent())
148103	if c.ifNoneMatch_ != "" {
148104		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
148105	}
148106	var body io.Reader = nil
148107	c.urlParams_.Set("alt", alt)
148108	c.urlParams_.Set("prettyPrint", "false")
148109	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates/{sslCertificate}")
148110	urls += "?" + c.urlParams_.Encode()
148111	req, err := http.NewRequest("GET", urls, body)
148112	if err != nil {
148113		return nil, err
148114	}
148115	req.Header = reqHeaders
148116	googleapi.Expand(req.URL, map[string]string{
148117		"project":        c.project,
148118		"sslCertificate": c.sslCertificate,
148119	})
148120	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148121}
148122
148123// Do executes the "compute.sslCertificates.get" call.
148124// Exactly one of *SslCertificate or error will be non-nil. Any non-2xx
148125// status code is an error. Response headers are in either
148126// *SslCertificate.ServerResponse.Header or (if a response was returned
148127// at all) in error.(*googleapi.Error).Header. Use
148128// googleapi.IsNotModified to check whether the returned error was
148129// because http.StatusNotModified was returned.
148130func (c *SslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertificate, error) {
148131	gensupport.SetOptions(c.urlParams_, opts...)
148132	res, err := c.doRequest("json")
148133	if res != nil && res.StatusCode == http.StatusNotModified {
148134		if res.Body != nil {
148135			res.Body.Close()
148136		}
148137		return nil, &googleapi.Error{
148138			Code:   res.StatusCode,
148139			Header: res.Header,
148140		}
148141	}
148142	if err != nil {
148143		return nil, err
148144	}
148145	defer googleapi.CloseBody(res)
148146	if err := googleapi.CheckResponse(res); err != nil {
148147		return nil, err
148148	}
148149	ret := &SslCertificate{
148150		ServerResponse: googleapi.ServerResponse{
148151			Header:         res.Header,
148152			HTTPStatusCode: res.StatusCode,
148153		},
148154	}
148155	target := &ret
148156	if err := gensupport.DecodeResponse(target, res); err != nil {
148157		return nil, err
148158	}
148159	return ret, nil
148160	// {
148161	//   "description": "Returns the specified SslCertificate resource. Gets a list of available SSL certificates by making a list() request.",
148162	//   "flatPath": "projects/{project}/global/sslCertificates/{sslCertificate}",
148163	//   "httpMethod": "GET",
148164	//   "id": "compute.sslCertificates.get",
148165	//   "parameterOrder": [
148166	//     "project",
148167	//     "sslCertificate"
148168	//   ],
148169	//   "parameters": {
148170	//     "project": {
148171	//       "description": "Project ID for this request.",
148172	//       "location": "path",
148173	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148174	//       "required": true,
148175	//       "type": "string"
148176	//     },
148177	//     "sslCertificate": {
148178	//       "description": "Name of the SslCertificate resource to return.",
148179	//       "location": "path",
148180	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
148181	//       "required": true,
148182	//       "type": "string"
148183	//     }
148184	//   },
148185	//   "path": "projects/{project}/global/sslCertificates/{sslCertificate}",
148186	//   "response": {
148187	//     "$ref": "SslCertificate"
148188	//   },
148189	//   "scopes": [
148190	//     "https://www.googleapis.com/auth/cloud-platform",
148191	//     "https://www.googleapis.com/auth/compute",
148192	//     "https://www.googleapis.com/auth/compute.readonly"
148193	//   ]
148194	// }
148195
148196}
148197
148198// method id "compute.sslCertificates.insert":
148199
148200type SslCertificatesInsertCall struct {
148201	s              *Service
148202	project        string
148203	sslcertificate *SslCertificate
148204	urlParams_     gensupport.URLParams
148205	ctx_           context.Context
148206	header_        http.Header
148207}
148208
148209// Insert: Creates a SslCertificate resource in the specified project
148210// using the data included in the request.
148211//
148212// - project: Project ID for this request.
148213func (r *SslCertificatesService) Insert(project string, sslcertificate *SslCertificate) *SslCertificatesInsertCall {
148214	c := &SslCertificatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148215	c.project = project
148216	c.sslcertificate = sslcertificate
148217	return c
148218}
148219
148220// RequestId sets the optional parameter "requestId": An optional
148221// request ID to identify requests. Specify a unique request ID so that
148222// if you must retry your request, the server will know to ignore the
148223// request if it has already been completed. For example, consider a
148224// situation where you make an initial request and the request times
148225// out. If you make the request again with the same request ID, the
148226// server can check if original operation with the same request ID was
148227// received, and if so, will ignore the second request. This prevents
148228// clients from accidentally creating duplicate commitments. The request
148229// ID must be a valid UUID with the exception that zero UUID is not
148230// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
148231// MixerMutationRequestBuilder
148232func (c *SslCertificatesInsertCall) RequestId(requestId string) *SslCertificatesInsertCall {
148233	c.urlParams_.Set("requestId", requestId)
148234	return c
148235}
148236
148237// Fields allows partial responses to be retrieved. See
148238// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148239// for more information.
148240func (c *SslCertificatesInsertCall) Fields(s ...googleapi.Field) *SslCertificatesInsertCall {
148241	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148242	return c
148243}
148244
148245// Context sets the context to be used in this call's Do method. Any
148246// pending HTTP request will be aborted if the provided context is
148247// canceled.
148248func (c *SslCertificatesInsertCall) Context(ctx context.Context) *SslCertificatesInsertCall {
148249	c.ctx_ = ctx
148250	return c
148251}
148252
148253// Header returns an http.Header that can be modified by the caller to
148254// add HTTP headers to the request.
148255func (c *SslCertificatesInsertCall) Header() http.Header {
148256	if c.header_ == nil {
148257		c.header_ = make(http.Header)
148258	}
148259	return c.header_
148260}
148261
148262func (c *SslCertificatesInsertCall) doRequest(alt string) (*http.Response, error) {
148263	reqHeaders := make(http.Header)
148264	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
148265	for k, v := range c.header_ {
148266		reqHeaders[k] = v
148267	}
148268	reqHeaders.Set("User-Agent", c.s.userAgent())
148269	var body io.Reader = nil
148270	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslcertificate)
148271	if err != nil {
148272		return nil, err
148273	}
148274	reqHeaders.Set("Content-Type", "application/json")
148275	c.urlParams_.Set("alt", alt)
148276	c.urlParams_.Set("prettyPrint", "false")
148277	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates")
148278	urls += "?" + c.urlParams_.Encode()
148279	req, err := http.NewRequest("POST", urls, body)
148280	if err != nil {
148281		return nil, err
148282	}
148283	req.Header = reqHeaders
148284	googleapi.Expand(req.URL, map[string]string{
148285		"project": c.project,
148286	})
148287	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148288}
148289
148290// Do executes the "compute.sslCertificates.insert" call.
148291// Exactly one of *Operation or error will be non-nil. Any non-2xx
148292// status code is an error. Response headers are in either
148293// *Operation.ServerResponse.Header or (if a response was returned at
148294// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
148295// to check whether the returned error was because
148296// http.StatusNotModified was returned.
148297func (c *SslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
148298	gensupport.SetOptions(c.urlParams_, opts...)
148299	res, err := c.doRequest("json")
148300	if res != nil && res.StatusCode == http.StatusNotModified {
148301		if res.Body != nil {
148302			res.Body.Close()
148303		}
148304		return nil, &googleapi.Error{
148305			Code:   res.StatusCode,
148306			Header: res.Header,
148307		}
148308	}
148309	if err != nil {
148310		return nil, err
148311	}
148312	defer googleapi.CloseBody(res)
148313	if err := googleapi.CheckResponse(res); err != nil {
148314		return nil, err
148315	}
148316	ret := &Operation{
148317		ServerResponse: googleapi.ServerResponse{
148318			Header:         res.Header,
148319			HTTPStatusCode: res.StatusCode,
148320		},
148321	}
148322	target := &ret
148323	if err := gensupport.DecodeResponse(target, res); err != nil {
148324		return nil, err
148325	}
148326	return ret, nil
148327	// {
148328	//   "description": "Creates a SslCertificate resource in the specified project using the data included in the request.",
148329	//   "flatPath": "projects/{project}/global/sslCertificates",
148330	//   "httpMethod": "POST",
148331	//   "id": "compute.sslCertificates.insert",
148332	//   "parameterOrder": [
148333	//     "project"
148334	//   ],
148335	//   "parameters": {
148336	//     "project": {
148337	//       "description": "Project ID for this request.",
148338	//       "location": "path",
148339	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148340	//       "required": true,
148341	//       "type": "string"
148342	//     },
148343	//     "requestId": {
148344	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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",
148345	//       "location": "query",
148346	//       "type": "string"
148347	//     }
148348	//   },
148349	//   "path": "projects/{project}/global/sslCertificates",
148350	//   "request": {
148351	//     "$ref": "SslCertificate"
148352	//   },
148353	//   "response": {
148354	//     "$ref": "Operation"
148355	//   },
148356	//   "scopes": [
148357	//     "https://www.googleapis.com/auth/cloud-platform",
148358	//     "https://www.googleapis.com/auth/compute"
148359	//   ]
148360	// }
148361
148362}
148363
148364// method id "compute.sslCertificates.list":
148365
148366type SslCertificatesListCall struct {
148367	s            *Service
148368	project      string
148369	urlParams_   gensupport.URLParams
148370	ifNoneMatch_ string
148371	ctx_         context.Context
148372	header_      http.Header
148373}
148374
148375// List: Retrieves the list of SslCertificate resources available to the
148376// specified project.
148377//
148378// - project: Project ID for this request.
148379func (r *SslCertificatesService) List(project string) *SslCertificatesListCall {
148380	c := &SslCertificatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148381	c.project = project
148382	return c
148383}
148384
148385// Filter sets the optional parameter "filter": A filter expression that
148386// filters resources listed in the response. The expression must specify
148387// the field name, a comparison operator, and the value that you want to
148388// use for filtering. The value must be a string, a number, or a
148389// boolean. The comparison operator must be either `=`, `!=`, `>`, or
148390// `<`. For example, if you are filtering Compute Engine instances, you
148391// can exclude instances named `example-instance` by specifying `name !=
148392// example-instance`. You can also filter nested fields. For example,
148393// you could specify `scheduling.automaticRestart = false` to include
148394// instances only if they are not scheduled for automatic restarts. You
148395// can use filtering on nested fields to filter based on resource
148396// labels. To filter on multiple expressions, provide each separate
148397// expression within parentheses. For example: ```
148398// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
148399// ``` By default, each expression is an `AND` expression. However, you
148400// can include `AND` and `OR` expressions explicitly. For example: ```
148401// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
148402// AND (scheduling.automaticRestart = true) ```
148403func (c *SslCertificatesListCall) Filter(filter string) *SslCertificatesListCall {
148404	c.urlParams_.Set("filter", filter)
148405	return c
148406}
148407
148408// MaxResults sets the optional parameter "maxResults": The maximum
148409// number of results per page that should be returned. If the number of
148410// available results is larger than `maxResults`, Compute Engine returns
148411// a `nextPageToken` that can be used to get the next page of results in
148412// subsequent list requests. Acceptable values are `0` to `500`,
148413// inclusive. (Default: `500`)
148414func (c *SslCertificatesListCall) MaxResults(maxResults int64) *SslCertificatesListCall {
148415	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
148416	return c
148417}
148418
148419// OrderBy sets the optional parameter "orderBy": Sorts list results by
148420// a certain order. By default, results are returned in alphanumerical
148421// order based on the resource name. You can also sort results in
148422// descending order based on the creation timestamp using
148423// `orderBy="creationTimestamp desc". This sorts results based on the
148424// `creationTimestamp` field in reverse chronological order (newest
148425// result first). Use this to sort resources like operations so that the
148426// newest operation is returned first. Currently, only sorting by `name`
148427// or `creationTimestamp desc` is supported.
148428func (c *SslCertificatesListCall) OrderBy(orderBy string) *SslCertificatesListCall {
148429	c.urlParams_.Set("orderBy", orderBy)
148430	return c
148431}
148432
148433// PageToken sets the optional parameter "pageToken": Specifies a page
148434// token to use. Set `pageToken` to the `nextPageToken` returned by a
148435// previous list request to get the next page of results.
148436func (c *SslCertificatesListCall) PageToken(pageToken string) *SslCertificatesListCall {
148437	c.urlParams_.Set("pageToken", pageToken)
148438	return c
148439}
148440
148441// ReturnPartialSuccess sets the optional parameter
148442// "returnPartialSuccess": Opt-in for partial success behavior which
148443// provides partial results in case of failure. The default value is
148444// false.
148445func (c *SslCertificatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslCertificatesListCall {
148446	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
148447	return c
148448}
148449
148450// Fields allows partial responses to be retrieved. See
148451// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148452// for more information.
148453func (c *SslCertificatesListCall) Fields(s ...googleapi.Field) *SslCertificatesListCall {
148454	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148455	return c
148456}
148457
148458// IfNoneMatch sets the optional parameter which makes the operation
148459// fail if the object's ETag matches the given value. This is useful for
148460// getting updates only after the object has changed since the last
148461// request. Use googleapi.IsNotModified to check whether the response
148462// error from Do is the result of In-None-Match.
148463func (c *SslCertificatesListCall) IfNoneMatch(entityTag string) *SslCertificatesListCall {
148464	c.ifNoneMatch_ = entityTag
148465	return c
148466}
148467
148468// Context sets the context to be used in this call's Do method. Any
148469// pending HTTP request will be aborted if the provided context is
148470// canceled.
148471func (c *SslCertificatesListCall) Context(ctx context.Context) *SslCertificatesListCall {
148472	c.ctx_ = ctx
148473	return c
148474}
148475
148476// Header returns an http.Header that can be modified by the caller to
148477// add HTTP headers to the request.
148478func (c *SslCertificatesListCall) Header() http.Header {
148479	if c.header_ == nil {
148480		c.header_ = make(http.Header)
148481	}
148482	return c.header_
148483}
148484
148485func (c *SslCertificatesListCall) doRequest(alt string) (*http.Response, error) {
148486	reqHeaders := make(http.Header)
148487	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
148488	for k, v := range c.header_ {
148489		reqHeaders[k] = v
148490	}
148491	reqHeaders.Set("User-Agent", c.s.userAgent())
148492	if c.ifNoneMatch_ != "" {
148493		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
148494	}
148495	var body io.Reader = nil
148496	c.urlParams_.Set("alt", alt)
148497	c.urlParams_.Set("prettyPrint", "false")
148498	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates")
148499	urls += "?" + c.urlParams_.Encode()
148500	req, err := http.NewRequest("GET", urls, body)
148501	if err != nil {
148502		return nil, err
148503	}
148504	req.Header = reqHeaders
148505	googleapi.Expand(req.URL, map[string]string{
148506		"project": c.project,
148507	})
148508	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148509}
148510
148511// Do executes the "compute.sslCertificates.list" call.
148512// Exactly one of *SslCertificateList or error will be non-nil. Any
148513// non-2xx status code is an error. Response headers are in either
148514// *SslCertificateList.ServerResponse.Header or (if a response was
148515// returned at all) in error.(*googleapi.Error).Header. Use
148516// googleapi.IsNotModified to check whether the returned error was
148517// because http.StatusNotModified was returned.
148518func (c *SslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertificateList, error) {
148519	gensupport.SetOptions(c.urlParams_, opts...)
148520	res, err := c.doRequest("json")
148521	if res != nil && res.StatusCode == http.StatusNotModified {
148522		if res.Body != nil {
148523			res.Body.Close()
148524		}
148525		return nil, &googleapi.Error{
148526			Code:   res.StatusCode,
148527			Header: res.Header,
148528		}
148529	}
148530	if err != nil {
148531		return nil, err
148532	}
148533	defer googleapi.CloseBody(res)
148534	if err := googleapi.CheckResponse(res); err != nil {
148535		return nil, err
148536	}
148537	ret := &SslCertificateList{
148538		ServerResponse: googleapi.ServerResponse{
148539			Header:         res.Header,
148540			HTTPStatusCode: res.StatusCode,
148541		},
148542	}
148543	target := &ret
148544	if err := gensupport.DecodeResponse(target, res); err != nil {
148545		return nil, err
148546	}
148547	return ret, nil
148548	// {
148549	//   "description": "Retrieves the list of SslCertificate resources available to the specified project.",
148550	//   "flatPath": "projects/{project}/global/sslCertificates",
148551	//   "httpMethod": "GET",
148552	//   "id": "compute.sslCertificates.list",
148553	//   "parameterOrder": [
148554	//     "project"
148555	//   ],
148556	//   "parameters": {
148557	//     "filter": {
148558	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
148559	//       "location": "query",
148560	//       "type": "string"
148561	//     },
148562	//     "maxResults": {
148563	//       "default": "500",
148564	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
148565	//       "format": "uint32",
148566	//       "location": "query",
148567	//       "minimum": "0",
148568	//       "type": "integer"
148569	//     },
148570	//     "orderBy": {
148571	//       "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.",
148572	//       "location": "query",
148573	//       "type": "string"
148574	//     },
148575	//     "pageToken": {
148576	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
148577	//       "location": "query",
148578	//       "type": "string"
148579	//     },
148580	//     "project": {
148581	//       "description": "Project ID for this request.",
148582	//       "location": "path",
148583	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148584	//       "required": true,
148585	//       "type": "string"
148586	//     },
148587	//     "returnPartialSuccess": {
148588	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
148589	//       "location": "query",
148590	//       "type": "boolean"
148591	//     }
148592	//   },
148593	//   "path": "projects/{project}/global/sslCertificates",
148594	//   "response": {
148595	//     "$ref": "SslCertificateList"
148596	//   },
148597	//   "scopes": [
148598	//     "https://www.googleapis.com/auth/cloud-platform",
148599	//     "https://www.googleapis.com/auth/compute",
148600	//     "https://www.googleapis.com/auth/compute.readonly"
148601	//   ]
148602	// }
148603
148604}
148605
148606// Pages invokes f for each page of results.
148607// A non-nil error returned from f will halt the iteration.
148608// The provided context supersedes any context provided to the Context method.
148609func (c *SslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertificateList) error) error {
148610	c.ctx_ = ctx
148611	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
148612	for {
148613		x, err := c.Do()
148614		if err != nil {
148615			return err
148616		}
148617		if err := f(x); err != nil {
148618			return err
148619		}
148620		if x.NextPageToken == "" {
148621			return nil
148622		}
148623		c.PageToken(x.NextPageToken)
148624	}
148625}
148626
148627// method id "compute.sslPolicies.delete":
148628
148629type SslPoliciesDeleteCall struct {
148630	s          *Service
148631	project    string
148632	sslPolicy  string
148633	urlParams_ gensupport.URLParams
148634	ctx_       context.Context
148635	header_    http.Header
148636}
148637
148638// Delete: Deletes the specified SSL policy. The SSL policy resource can
148639// be deleted only if it is not in use by any TargetHttpsProxy or
148640// TargetSslProxy resources.
148641//
148642// - project: Project ID for this request.
148643// - sslPolicy: Name of the SSL policy to delete. The name must be 1-63
148644//   characters long, and comply with RFC1035.
148645func (r *SslPoliciesService) Delete(project string, sslPolicy string) *SslPoliciesDeleteCall {
148646	c := &SslPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148647	c.project = project
148648	c.sslPolicy = sslPolicy
148649	return c
148650}
148651
148652// RequestId sets the optional parameter "requestId": An optional
148653// request ID to identify requests. Specify a unique request ID so that
148654// if you must retry your request, the server will know to ignore the
148655// request if it has already been completed. For example, consider a
148656// situation where you make an initial request and the request times
148657// out. If you make the request again with the same request ID, the
148658// server can check if original operation with the same request ID was
148659// received, and if so, will ignore the second request. This prevents
148660// clients from accidentally creating duplicate commitments. The request
148661// ID must be a valid UUID with the exception that zero UUID is not
148662// supported ( 00000000-0000-0000-0000-000000000000).
148663func (c *SslPoliciesDeleteCall) RequestId(requestId string) *SslPoliciesDeleteCall {
148664	c.urlParams_.Set("requestId", requestId)
148665	return c
148666}
148667
148668// Fields allows partial responses to be retrieved. See
148669// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148670// for more information.
148671func (c *SslPoliciesDeleteCall) Fields(s ...googleapi.Field) *SslPoliciesDeleteCall {
148672	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148673	return c
148674}
148675
148676// Context sets the context to be used in this call's Do method. Any
148677// pending HTTP request will be aborted if the provided context is
148678// canceled.
148679func (c *SslPoliciesDeleteCall) Context(ctx context.Context) *SslPoliciesDeleteCall {
148680	c.ctx_ = ctx
148681	return c
148682}
148683
148684// Header returns an http.Header that can be modified by the caller to
148685// add HTTP headers to the request.
148686func (c *SslPoliciesDeleteCall) Header() http.Header {
148687	if c.header_ == nil {
148688		c.header_ = make(http.Header)
148689	}
148690	return c.header_
148691}
148692
148693func (c *SslPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
148694	reqHeaders := make(http.Header)
148695	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
148696	for k, v := range c.header_ {
148697		reqHeaders[k] = v
148698	}
148699	reqHeaders.Set("User-Agent", c.s.userAgent())
148700	var body io.Reader = nil
148701	c.urlParams_.Set("alt", alt)
148702	c.urlParams_.Set("prettyPrint", "false")
148703	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/{sslPolicy}")
148704	urls += "?" + c.urlParams_.Encode()
148705	req, err := http.NewRequest("DELETE", urls, body)
148706	if err != nil {
148707		return nil, err
148708	}
148709	req.Header = reqHeaders
148710	googleapi.Expand(req.URL, map[string]string{
148711		"project":   c.project,
148712		"sslPolicy": c.sslPolicy,
148713	})
148714	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148715}
148716
148717// Do executes the "compute.sslPolicies.delete" call.
148718// Exactly one of *Operation or error will be non-nil. Any non-2xx
148719// status code is an error. Response headers are in either
148720// *Operation.ServerResponse.Header or (if a response was returned at
148721// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
148722// to check whether the returned error was because
148723// http.StatusNotModified was returned.
148724func (c *SslPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
148725	gensupport.SetOptions(c.urlParams_, opts...)
148726	res, err := c.doRequest("json")
148727	if res != nil && res.StatusCode == http.StatusNotModified {
148728		if res.Body != nil {
148729			res.Body.Close()
148730		}
148731		return nil, &googleapi.Error{
148732			Code:   res.StatusCode,
148733			Header: res.Header,
148734		}
148735	}
148736	if err != nil {
148737		return nil, err
148738	}
148739	defer googleapi.CloseBody(res)
148740	if err := googleapi.CheckResponse(res); err != nil {
148741		return nil, err
148742	}
148743	ret := &Operation{
148744		ServerResponse: googleapi.ServerResponse{
148745			Header:         res.Header,
148746			HTTPStatusCode: res.StatusCode,
148747		},
148748	}
148749	target := &ret
148750	if err := gensupport.DecodeResponse(target, res); err != nil {
148751		return nil, err
148752	}
148753	return ret, nil
148754	// {
148755	//   "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.",
148756	//   "flatPath": "projects/{project}/global/sslPolicies/{sslPolicy}",
148757	//   "httpMethod": "DELETE",
148758	//   "id": "compute.sslPolicies.delete",
148759	//   "parameterOrder": [
148760	//     "project",
148761	//     "sslPolicy"
148762	//   ],
148763	//   "parameters": {
148764	//     "project": {
148765	//       "description": "Project ID for this request.",
148766	//       "location": "path",
148767	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148768	//       "required": true,
148769	//       "type": "string"
148770	//     },
148771	//     "requestId": {
148772	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
148773	//       "location": "query",
148774	//       "type": "string"
148775	//     },
148776	//     "sslPolicy": {
148777	//       "description": "Name of the SSL policy to delete. The name must be 1-63 characters long, and comply with RFC1035.",
148778	//       "location": "path",
148779	//       "required": true,
148780	//       "type": "string"
148781	//     }
148782	//   },
148783	//   "path": "projects/{project}/global/sslPolicies/{sslPolicy}",
148784	//   "response": {
148785	//     "$ref": "Operation"
148786	//   },
148787	//   "scopes": [
148788	//     "https://www.googleapis.com/auth/cloud-platform",
148789	//     "https://www.googleapis.com/auth/compute"
148790	//   ]
148791	// }
148792
148793}
148794
148795// method id "compute.sslPolicies.get":
148796
148797type SslPoliciesGetCall struct {
148798	s            *Service
148799	project      string
148800	sslPolicy    string
148801	urlParams_   gensupport.URLParams
148802	ifNoneMatch_ string
148803	ctx_         context.Context
148804	header_      http.Header
148805}
148806
148807// Get: Lists all of the ordered rules present in a single specified
148808// policy.
148809//
148810// - project: Project ID for this request.
148811// - sslPolicy: Name of the SSL policy to update. The name must be 1-63
148812//   characters long, and comply with RFC1035.
148813func (r *SslPoliciesService) Get(project string, sslPolicy string) *SslPoliciesGetCall {
148814	c := &SslPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148815	c.project = project
148816	c.sslPolicy = sslPolicy
148817	return c
148818}
148819
148820// Fields allows partial responses to be retrieved. See
148821// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148822// for more information.
148823func (c *SslPoliciesGetCall) Fields(s ...googleapi.Field) *SslPoliciesGetCall {
148824	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148825	return c
148826}
148827
148828// IfNoneMatch sets the optional parameter which makes the operation
148829// fail if the object's ETag matches the given value. This is useful for
148830// getting updates only after the object has changed since the last
148831// request. Use googleapi.IsNotModified to check whether the response
148832// error from Do is the result of In-None-Match.
148833func (c *SslPoliciesGetCall) IfNoneMatch(entityTag string) *SslPoliciesGetCall {
148834	c.ifNoneMatch_ = entityTag
148835	return c
148836}
148837
148838// Context sets the context to be used in this call's Do method. Any
148839// pending HTTP request will be aborted if the provided context is
148840// canceled.
148841func (c *SslPoliciesGetCall) Context(ctx context.Context) *SslPoliciesGetCall {
148842	c.ctx_ = ctx
148843	return c
148844}
148845
148846// Header returns an http.Header that can be modified by the caller to
148847// add HTTP headers to the request.
148848func (c *SslPoliciesGetCall) Header() http.Header {
148849	if c.header_ == nil {
148850		c.header_ = make(http.Header)
148851	}
148852	return c.header_
148853}
148854
148855func (c *SslPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
148856	reqHeaders := make(http.Header)
148857	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
148858	for k, v := range c.header_ {
148859		reqHeaders[k] = v
148860	}
148861	reqHeaders.Set("User-Agent", c.s.userAgent())
148862	if c.ifNoneMatch_ != "" {
148863		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
148864	}
148865	var body io.Reader = nil
148866	c.urlParams_.Set("alt", alt)
148867	c.urlParams_.Set("prettyPrint", "false")
148868	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/{sslPolicy}")
148869	urls += "?" + c.urlParams_.Encode()
148870	req, err := http.NewRequest("GET", urls, body)
148871	if err != nil {
148872		return nil, err
148873	}
148874	req.Header = reqHeaders
148875	googleapi.Expand(req.URL, map[string]string{
148876		"project":   c.project,
148877		"sslPolicy": c.sslPolicy,
148878	})
148879	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148880}
148881
148882// Do executes the "compute.sslPolicies.get" call.
148883// Exactly one of *SslPolicy or error will be non-nil. Any non-2xx
148884// status code is an error. Response headers are in either
148885// *SslPolicy.ServerResponse.Header or (if a response was returned at
148886// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
148887// to check whether the returned error was because
148888// http.StatusNotModified was returned.
148889func (c *SslPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SslPolicy, error) {
148890	gensupport.SetOptions(c.urlParams_, opts...)
148891	res, err := c.doRequest("json")
148892	if res != nil && res.StatusCode == http.StatusNotModified {
148893		if res.Body != nil {
148894			res.Body.Close()
148895		}
148896		return nil, &googleapi.Error{
148897			Code:   res.StatusCode,
148898			Header: res.Header,
148899		}
148900	}
148901	if err != nil {
148902		return nil, err
148903	}
148904	defer googleapi.CloseBody(res)
148905	if err := googleapi.CheckResponse(res); err != nil {
148906		return nil, err
148907	}
148908	ret := &SslPolicy{
148909		ServerResponse: googleapi.ServerResponse{
148910			Header:         res.Header,
148911			HTTPStatusCode: res.StatusCode,
148912		},
148913	}
148914	target := &ret
148915	if err := gensupport.DecodeResponse(target, res); err != nil {
148916		return nil, err
148917	}
148918	return ret, nil
148919	// {
148920	//   "description": "Lists all of the ordered rules present in a single specified policy.",
148921	//   "flatPath": "projects/{project}/global/sslPolicies/{sslPolicy}",
148922	//   "httpMethod": "GET",
148923	//   "id": "compute.sslPolicies.get",
148924	//   "parameterOrder": [
148925	//     "project",
148926	//     "sslPolicy"
148927	//   ],
148928	//   "parameters": {
148929	//     "project": {
148930	//       "description": "Project ID for this request.",
148931	//       "location": "path",
148932	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148933	//       "required": true,
148934	//       "type": "string"
148935	//     },
148936	//     "sslPolicy": {
148937	//       "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.",
148938	//       "location": "path",
148939	//       "required": true,
148940	//       "type": "string"
148941	//     }
148942	//   },
148943	//   "path": "projects/{project}/global/sslPolicies/{sslPolicy}",
148944	//   "response": {
148945	//     "$ref": "SslPolicy"
148946	//   },
148947	//   "scopes": [
148948	//     "https://www.googleapis.com/auth/cloud-platform",
148949	//     "https://www.googleapis.com/auth/compute",
148950	//     "https://www.googleapis.com/auth/compute.readonly"
148951	//   ]
148952	// }
148953
148954}
148955
148956// method id "compute.sslPolicies.insert":
148957
148958type SslPoliciesInsertCall struct {
148959	s          *Service
148960	project    string
148961	sslpolicy  *SslPolicy
148962	urlParams_ gensupport.URLParams
148963	ctx_       context.Context
148964	header_    http.Header
148965}
148966
148967// Insert: Returns the specified SSL policy resource. Gets a list of
148968// available SSL policies by making a list() request.
148969//
148970// - project: Project ID for this request.
148971func (r *SslPoliciesService) Insert(project string, sslpolicy *SslPolicy) *SslPoliciesInsertCall {
148972	c := &SslPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148973	c.project = project
148974	c.sslpolicy = sslpolicy
148975	return c
148976}
148977
148978// RequestId sets the optional parameter "requestId": An optional
148979// request ID to identify requests. Specify a unique request ID so that
148980// if you must retry your request, the server will know to ignore the
148981// request if it has already been completed. For example, consider a
148982// situation where you make an initial request and the request times
148983// out. If you make the request again with the same request ID, the
148984// server can check if original operation with the same request ID was
148985// received, and if so, will ignore the second request. This prevents
148986// clients from accidentally creating duplicate commitments. The request
148987// ID must be a valid UUID with the exception that zero UUID is not
148988// supported ( 00000000-0000-0000-0000-000000000000).
148989func (c *SslPoliciesInsertCall) RequestId(requestId string) *SslPoliciesInsertCall {
148990	c.urlParams_.Set("requestId", requestId)
148991	return c
148992}
148993
148994// Fields allows partial responses to be retrieved. See
148995// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148996// for more information.
148997func (c *SslPoliciesInsertCall) Fields(s ...googleapi.Field) *SslPoliciesInsertCall {
148998	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148999	return c
149000}
149001
149002// Context sets the context to be used in this call's Do method. Any
149003// pending HTTP request will be aborted if the provided context is
149004// canceled.
149005func (c *SslPoliciesInsertCall) Context(ctx context.Context) *SslPoliciesInsertCall {
149006	c.ctx_ = ctx
149007	return c
149008}
149009
149010// Header returns an http.Header that can be modified by the caller to
149011// add HTTP headers to the request.
149012func (c *SslPoliciesInsertCall) Header() http.Header {
149013	if c.header_ == nil {
149014		c.header_ = make(http.Header)
149015	}
149016	return c.header_
149017}
149018
149019func (c *SslPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
149020	reqHeaders := make(http.Header)
149021	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
149022	for k, v := range c.header_ {
149023		reqHeaders[k] = v
149024	}
149025	reqHeaders.Set("User-Agent", c.s.userAgent())
149026	var body io.Reader = nil
149027	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy)
149028	if err != nil {
149029		return nil, err
149030	}
149031	reqHeaders.Set("Content-Type", "application/json")
149032	c.urlParams_.Set("alt", alt)
149033	c.urlParams_.Set("prettyPrint", "false")
149034	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies")
149035	urls += "?" + c.urlParams_.Encode()
149036	req, err := http.NewRequest("POST", urls, body)
149037	if err != nil {
149038		return nil, err
149039	}
149040	req.Header = reqHeaders
149041	googleapi.Expand(req.URL, map[string]string{
149042		"project": c.project,
149043	})
149044	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149045}
149046
149047// Do executes the "compute.sslPolicies.insert" call.
149048// Exactly one of *Operation or error will be non-nil. Any non-2xx
149049// status code is an error. Response headers are in either
149050// *Operation.ServerResponse.Header or (if a response was returned at
149051// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
149052// to check whether the returned error was because
149053// http.StatusNotModified was returned.
149054func (c *SslPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
149055	gensupport.SetOptions(c.urlParams_, opts...)
149056	res, err := c.doRequest("json")
149057	if res != nil && res.StatusCode == http.StatusNotModified {
149058		if res.Body != nil {
149059			res.Body.Close()
149060		}
149061		return nil, &googleapi.Error{
149062			Code:   res.StatusCode,
149063			Header: res.Header,
149064		}
149065	}
149066	if err != nil {
149067		return nil, err
149068	}
149069	defer googleapi.CloseBody(res)
149070	if err := googleapi.CheckResponse(res); err != nil {
149071		return nil, err
149072	}
149073	ret := &Operation{
149074		ServerResponse: googleapi.ServerResponse{
149075			Header:         res.Header,
149076			HTTPStatusCode: res.StatusCode,
149077		},
149078	}
149079	target := &ret
149080	if err := gensupport.DecodeResponse(target, res); err != nil {
149081		return nil, err
149082	}
149083	return ret, nil
149084	// {
149085	//   "description": "Returns the specified SSL policy resource. Gets a list of available SSL policies by making a list() request.",
149086	//   "flatPath": "projects/{project}/global/sslPolicies",
149087	//   "httpMethod": "POST",
149088	//   "id": "compute.sslPolicies.insert",
149089	//   "parameterOrder": [
149090	//     "project"
149091	//   ],
149092	//   "parameters": {
149093	//     "project": {
149094	//       "description": "Project ID for this request.",
149095	//       "location": "path",
149096	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149097	//       "required": true,
149098	//       "type": "string"
149099	//     },
149100	//     "requestId": {
149101	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
149102	//       "location": "query",
149103	//       "type": "string"
149104	//     }
149105	//   },
149106	//   "path": "projects/{project}/global/sslPolicies",
149107	//   "request": {
149108	//     "$ref": "SslPolicy"
149109	//   },
149110	//   "response": {
149111	//     "$ref": "Operation"
149112	//   },
149113	//   "scopes": [
149114	//     "https://www.googleapis.com/auth/cloud-platform",
149115	//     "https://www.googleapis.com/auth/compute"
149116	//   ]
149117	// }
149118
149119}
149120
149121// method id "compute.sslPolicies.list":
149122
149123type SslPoliciesListCall struct {
149124	s            *Service
149125	project      string
149126	urlParams_   gensupport.URLParams
149127	ifNoneMatch_ string
149128	ctx_         context.Context
149129	header_      http.Header
149130}
149131
149132// List: Lists all the SSL policies that have been configured for the
149133// specified project.
149134//
149135// - project: Project ID for this request.
149136func (r *SslPoliciesService) List(project string) *SslPoliciesListCall {
149137	c := &SslPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149138	c.project = project
149139	return c
149140}
149141
149142// Filter sets the optional parameter "filter": A filter expression that
149143// filters resources listed in the response. The expression must specify
149144// the field name, a comparison operator, and the value that you want to
149145// use for filtering. The value must be a string, a number, or a
149146// boolean. The comparison operator must be either `=`, `!=`, `>`, or
149147// `<`. For example, if you are filtering Compute Engine instances, you
149148// can exclude instances named `example-instance` by specifying `name !=
149149// example-instance`. You can also filter nested fields. For example,
149150// you could specify `scheduling.automaticRestart = false` to include
149151// instances only if they are not scheduled for automatic restarts. You
149152// can use filtering on nested fields to filter based on resource
149153// labels. To filter on multiple expressions, provide each separate
149154// expression within parentheses. For example: ```
149155// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
149156// ``` By default, each expression is an `AND` expression. However, you
149157// can include `AND` and `OR` expressions explicitly. For example: ```
149158// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
149159// AND (scheduling.automaticRestart = true) ```
149160func (c *SslPoliciesListCall) Filter(filter string) *SslPoliciesListCall {
149161	c.urlParams_.Set("filter", filter)
149162	return c
149163}
149164
149165// MaxResults sets the optional parameter "maxResults": The maximum
149166// number of results per page that should be returned. If the number of
149167// available results is larger than `maxResults`, Compute Engine returns
149168// a `nextPageToken` that can be used to get the next page of results in
149169// subsequent list requests. Acceptable values are `0` to `500`,
149170// inclusive. (Default: `500`)
149171func (c *SslPoliciesListCall) MaxResults(maxResults int64) *SslPoliciesListCall {
149172	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
149173	return c
149174}
149175
149176// OrderBy sets the optional parameter "orderBy": Sorts list results by
149177// a certain order. By default, results are returned in alphanumerical
149178// order based on the resource name. You can also sort results in
149179// descending order based on the creation timestamp using
149180// `orderBy="creationTimestamp desc". This sorts results based on the
149181// `creationTimestamp` field in reverse chronological order (newest
149182// result first). Use this to sort resources like operations so that the
149183// newest operation is returned first. Currently, only sorting by `name`
149184// or `creationTimestamp desc` is supported.
149185func (c *SslPoliciesListCall) OrderBy(orderBy string) *SslPoliciesListCall {
149186	c.urlParams_.Set("orderBy", orderBy)
149187	return c
149188}
149189
149190// PageToken sets the optional parameter "pageToken": Specifies a page
149191// token to use. Set `pageToken` to the `nextPageToken` returned by a
149192// previous list request to get the next page of results.
149193func (c *SslPoliciesListCall) PageToken(pageToken string) *SslPoliciesListCall {
149194	c.urlParams_.Set("pageToken", pageToken)
149195	return c
149196}
149197
149198// ReturnPartialSuccess sets the optional parameter
149199// "returnPartialSuccess": Opt-in for partial success behavior which
149200// provides partial results in case of failure. The default value is
149201// false.
149202func (c *SslPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslPoliciesListCall {
149203	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
149204	return c
149205}
149206
149207// Fields allows partial responses to be retrieved. See
149208// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149209// for more information.
149210func (c *SslPoliciesListCall) Fields(s ...googleapi.Field) *SslPoliciesListCall {
149211	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149212	return c
149213}
149214
149215// IfNoneMatch sets the optional parameter which makes the operation
149216// fail if the object's ETag matches the given value. This is useful for
149217// getting updates only after the object has changed since the last
149218// request. Use googleapi.IsNotModified to check whether the response
149219// error from Do is the result of In-None-Match.
149220func (c *SslPoliciesListCall) IfNoneMatch(entityTag string) *SslPoliciesListCall {
149221	c.ifNoneMatch_ = entityTag
149222	return c
149223}
149224
149225// Context sets the context to be used in this call's Do method. Any
149226// pending HTTP request will be aborted if the provided context is
149227// canceled.
149228func (c *SslPoliciesListCall) Context(ctx context.Context) *SslPoliciesListCall {
149229	c.ctx_ = ctx
149230	return c
149231}
149232
149233// Header returns an http.Header that can be modified by the caller to
149234// add HTTP headers to the request.
149235func (c *SslPoliciesListCall) Header() http.Header {
149236	if c.header_ == nil {
149237		c.header_ = make(http.Header)
149238	}
149239	return c.header_
149240}
149241
149242func (c *SslPoliciesListCall) doRequest(alt string) (*http.Response, error) {
149243	reqHeaders := make(http.Header)
149244	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
149245	for k, v := range c.header_ {
149246		reqHeaders[k] = v
149247	}
149248	reqHeaders.Set("User-Agent", c.s.userAgent())
149249	if c.ifNoneMatch_ != "" {
149250		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
149251	}
149252	var body io.Reader = nil
149253	c.urlParams_.Set("alt", alt)
149254	c.urlParams_.Set("prettyPrint", "false")
149255	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies")
149256	urls += "?" + c.urlParams_.Encode()
149257	req, err := http.NewRequest("GET", urls, body)
149258	if err != nil {
149259		return nil, err
149260	}
149261	req.Header = reqHeaders
149262	googleapi.Expand(req.URL, map[string]string{
149263		"project": c.project,
149264	})
149265	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149266}
149267
149268// Do executes the "compute.sslPolicies.list" call.
149269// Exactly one of *SslPoliciesList or error will be non-nil. Any non-2xx
149270// status code is an error. Response headers are in either
149271// *SslPoliciesList.ServerResponse.Header or (if a response was returned
149272// at all) in error.(*googleapi.Error).Header. Use
149273// googleapi.IsNotModified to check whether the returned error was
149274// because http.StatusNotModified was returned.
149275func (c *SslPoliciesListCall) Do(opts ...googleapi.CallOption) (*SslPoliciesList, error) {
149276	gensupport.SetOptions(c.urlParams_, opts...)
149277	res, err := c.doRequest("json")
149278	if res != nil && res.StatusCode == http.StatusNotModified {
149279		if res.Body != nil {
149280			res.Body.Close()
149281		}
149282		return nil, &googleapi.Error{
149283			Code:   res.StatusCode,
149284			Header: res.Header,
149285		}
149286	}
149287	if err != nil {
149288		return nil, err
149289	}
149290	defer googleapi.CloseBody(res)
149291	if err := googleapi.CheckResponse(res); err != nil {
149292		return nil, err
149293	}
149294	ret := &SslPoliciesList{
149295		ServerResponse: googleapi.ServerResponse{
149296			Header:         res.Header,
149297			HTTPStatusCode: res.StatusCode,
149298		},
149299	}
149300	target := &ret
149301	if err := gensupport.DecodeResponse(target, res); err != nil {
149302		return nil, err
149303	}
149304	return ret, nil
149305	// {
149306	//   "description": "Lists all the SSL policies that have been configured for the specified project.",
149307	//   "flatPath": "projects/{project}/global/sslPolicies",
149308	//   "httpMethod": "GET",
149309	//   "id": "compute.sslPolicies.list",
149310	//   "parameterOrder": [
149311	//     "project"
149312	//   ],
149313	//   "parameters": {
149314	//     "filter": {
149315	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
149316	//       "location": "query",
149317	//       "type": "string"
149318	//     },
149319	//     "maxResults": {
149320	//       "default": "500",
149321	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
149322	//       "format": "uint32",
149323	//       "location": "query",
149324	//       "minimum": "0",
149325	//       "type": "integer"
149326	//     },
149327	//     "orderBy": {
149328	//       "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.",
149329	//       "location": "query",
149330	//       "type": "string"
149331	//     },
149332	//     "pageToken": {
149333	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
149334	//       "location": "query",
149335	//       "type": "string"
149336	//     },
149337	//     "project": {
149338	//       "description": "Project ID for this request.",
149339	//       "location": "path",
149340	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149341	//       "required": true,
149342	//       "type": "string"
149343	//     },
149344	//     "returnPartialSuccess": {
149345	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
149346	//       "location": "query",
149347	//       "type": "boolean"
149348	//     }
149349	//   },
149350	//   "path": "projects/{project}/global/sslPolicies",
149351	//   "response": {
149352	//     "$ref": "SslPoliciesList"
149353	//   },
149354	//   "scopes": [
149355	//     "https://www.googleapis.com/auth/cloud-platform",
149356	//     "https://www.googleapis.com/auth/compute",
149357	//     "https://www.googleapis.com/auth/compute.readonly"
149358	//   ]
149359	// }
149360
149361}
149362
149363// Pages invokes f for each page of results.
149364// A non-nil error returned from f will halt the iteration.
149365// The provided context supersedes any context provided to the Context method.
149366func (c *SslPoliciesListCall) Pages(ctx context.Context, f func(*SslPoliciesList) error) error {
149367	c.ctx_ = ctx
149368	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
149369	for {
149370		x, err := c.Do()
149371		if err != nil {
149372			return err
149373		}
149374		if err := f(x); err != nil {
149375			return err
149376		}
149377		if x.NextPageToken == "" {
149378			return nil
149379		}
149380		c.PageToken(x.NextPageToken)
149381	}
149382}
149383
149384// method id "compute.sslPolicies.listAvailableFeatures":
149385
149386type SslPoliciesListAvailableFeaturesCall struct {
149387	s            *Service
149388	project      string
149389	urlParams_   gensupport.URLParams
149390	ifNoneMatch_ string
149391	ctx_         context.Context
149392	header_      http.Header
149393}
149394
149395// ListAvailableFeatures: Lists all features that can be specified in
149396// the SSL policy when using custom profile.
149397//
149398// - project: Project ID for this request.
149399func (r *SslPoliciesService) ListAvailableFeatures(project string) *SslPoliciesListAvailableFeaturesCall {
149400	c := &SslPoliciesListAvailableFeaturesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149401	c.project = project
149402	return c
149403}
149404
149405// Filter sets the optional parameter "filter": A filter expression that
149406// filters resources listed in the response. The expression must specify
149407// the field name, a comparison operator, and the value that you want to
149408// use for filtering. The value must be a string, a number, or a
149409// boolean. The comparison operator must be either `=`, `!=`, `>`, or
149410// `<`. For example, if you are filtering Compute Engine instances, you
149411// can exclude instances named `example-instance` by specifying `name !=
149412// example-instance`. You can also filter nested fields. For example,
149413// you could specify `scheduling.automaticRestart = false` to include
149414// instances only if they are not scheduled for automatic restarts. You
149415// can use filtering on nested fields to filter based on resource
149416// labels. To filter on multiple expressions, provide each separate
149417// expression within parentheses. For example: ```
149418// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
149419// ``` By default, each expression is an `AND` expression. However, you
149420// can include `AND` and `OR` expressions explicitly. For example: ```
149421// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
149422// AND (scheduling.automaticRestart = true) ```
149423func (c *SslPoliciesListAvailableFeaturesCall) Filter(filter string) *SslPoliciesListAvailableFeaturesCall {
149424	c.urlParams_.Set("filter", filter)
149425	return c
149426}
149427
149428// MaxResults sets the optional parameter "maxResults": The maximum
149429// number of results per page that should be returned. If the number of
149430// available results is larger than `maxResults`, Compute Engine returns
149431// a `nextPageToken` that can be used to get the next page of results in
149432// subsequent list requests. Acceptable values are `0` to `500`,
149433// inclusive. (Default: `500`)
149434func (c *SslPoliciesListAvailableFeaturesCall) MaxResults(maxResults int64) *SslPoliciesListAvailableFeaturesCall {
149435	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
149436	return c
149437}
149438
149439// OrderBy sets the optional parameter "orderBy": Sorts list results by
149440// a certain order. By default, results are returned in alphanumerical
149441// order based on the resource name. You can also sort results in
149442// descending order based on the creation timestamp using
149443// `orderBy="creationTimestamp desc". This sorts results based on the
149444// `creationTimestamp` field in reverse chronological order (newest
149445// result first). Use this to sort resources like operations so that the
149446// newest operation is returned first. Currently, only sorting by `name`
149447// or `creationTimestamp desc` is supported.
149448func (c *SslPoliciesListAvailableFeaturesCall) OrderBy(orderBy string) *SslPoliciesListAvailableFeaturesCall {
149449	c.urlParams_.Set("orderBy", orderBy)
149450	return c
149451}
149452
149453// PageToken sets the optional parameter "pageToken": Specifies a page
149454// token to use. Set `pageToken` to the `nextPageToken` returned by a
149455// previous list request to get the next page of results.
149456func (c *SslPoliciesListAvailableFeaturesCall) PageToken(pageToken string) *SslPoliciesListAvailableFeaturesCall {
149457	c.urlParams_.Set("pageToken", pageToken)
149458	return c
149459}
149460
149461// ReturnPartialSuccess sets the optional parameter
149462// "returnPartialSuccess": Opt-in for partial success behavior which
149463// provides partial results in case of failure. The default value is
149464// false.
149465func (c *SslPoliciesListAvailableFeaturesCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslPoliciesListAvailableFeaturesCall {
149466	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
149467	return c
149468}
149469
149470// Fields allows partial responses to be retrieved. See
149471// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149472// for more information.
149473func (c *SslPoliciesListAvailableFeaturesCall) Fields(s ...googleapi.Field) *SslPoliciesListAvailableFeaturesCall {
149474	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149475	return c
149476}
149477
149478// IfNoneMatch sets the optional parameter which makes the operation
149479// fail if the object's ETag matches the given value. This is useful for
149480// getting updates only after the object has changed since the last
149481// request. Use googleapi.IsNotModified to check whether the response
149482// error from Do is the result of In-None-Match.
149483func (c *SslPoliciesListAvailableFeaturesCall) IfNoneMatch(entityTag string) *SslPoliciesListAvailableFeaturesCall {
149484	c.ifNoneMatch_ = entityTag
149485	return c
149486}
149487
149488// Context sets the context to be used in this call's Do method. Any
149489// pending HTTP request will be aborted if the provided context is
149490// canceled.
149491func (c *SslPoliciesListAvailableFeaturesCall) Context(ctx context.Context) *SslPoliciesListAvailableFeaturesCall {
149492	c.ctx_ = ctx
149493	return c
149494}
149495
149496// Header returns an http.Header that can be modified by the caller to
149497// add HTTP headers to the request.
149498func (c *SslPoliciesListAvailableFeaturesCall) Header() http.Header {
149499	if c.header_ == nil {
149500		c.header_ = make(http.Header)
149501	}
149502	return c.header_
149503}
149504
149505func (c *SslPoliciesListAvailableFeaturesCall) doRequest(alt string) (*http.Response, error) {
149506	reqHeaders := make(http.Header)
149507	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
149508	for k, v := range c.header_ {
149509		reqHeaders[k] = v
149510	}
149511	reqHeaders.Set("User-Agent", c.s.userAgent())
149512	if c.ifNoneMatch_ != "" {
149513		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
149514	}
149515	var body io.Reader = nil
149516	c.urlParams_.Set("alt", alt)
149517	c.urlParams_.Set("prettyPrint", "false")
149518	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/listAvailableFeatures")
149519	urls += "?" + c.urlParams_.Encode()
149520	req, err := http.NewRequest("GET", urls, body)
149521	if err != nil {
149522		return nil, err
149523	}
149524	req.Header = reqHeaders
149525	googleapi.Expand(req.URL, map[string]string{
149526		"project": c.project,
149527	})
149528	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149529}
149530
149531// Do executes the "compute.sslPolicies.listAvailableFeatures" call.
149532// Exactly one of *SslPoliciesListAvailableFeaturesResponse or error
149533// will be non-nil. Any non-2xx status code is an error. Response
149534// headers are in either
149535// *SslPoliciesListAvailableFeaturesResponse.ServerResponse.Header or
149536// (if a response was returned at all) in
149537// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
149538// whether the returned error was because http.StatusNotModified was
149539// returned.
149540func (c *SslPoliciesListAvailableFeaturesCall) Do(opts ...googleapi.CallOption) (*SslPoliciesListAvailableFeaturesResponse, error) {
149541	gensupport.SetOptions(c.urlParams_, opts...)
149542	res, err := c.doRequest("json")
149543	if res != nil && res.StatusCode == http.StatusNotModified {
149544		if res.Body != nil {
149545			res.Body.Close()
149546		}
149547		return nil, &googleapi.Error{
149548			Code:   res.StatusCode,
149549			Header: res.Header,
149550		}
149551	}
149552	if err != nil {
149553		return nil, err
149554	}
149555	defer googleapi.CloseBody(res)
149556	if err := googleapi.CheckResponse(res); err != nil {
149557		return nil, err
149558	}
149559	ret := &SslPoliciesListAvailableFeaturesResponse{
149560		ServerResponse: googleapi.ServerResponse{
149561			Header:         res.Header,
149562			HTTPStatusCode: res.StatusCode,
149563		},
149564	}
149565	target := &ret
149566	if err := gensupport.DecodeResponse(target, res); err != nil {
149567		return nil, err
149568	}
149569	return ret, nil
149570	// {
149571	//   "description": "Lists all features that can be specified in the SSL policy when using custom profile.",
149572	//   "flatPath": "projects/{project}/global/sslPolicies/listAvailableFeatures",
149573	//   "httpMethod": "GET",
149574	//   "id": "compute.sslPolicies.listAvailableFeatures",
149575	//   "parameterOrder": [
149576	//     "project"
149577	//   ],
149578	//   "parameters": {
149579	//     "filter": {
149580	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
149581	//       "location": "query",
149582	//       "type": "string"
149583	//     },
149584	//     "maxResults": {
149585	//       "default": "500",
149586	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
149587	//       "format": "uint32",
149588	//       "location": "query",
149589	//       "minimum": "0",
149590	//       "type": "integer"
149591	//     },
149592	//     "orderBy": {
149593	//       "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.",
149594	//       "location": "query",
149595	//       "type": "string"
149596	//     },
149597	//     "pageToken": {
149598	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
149599	//       "location": "query",
149600	//       "type": "string"
149601	//     },
149602	//     "project": {
149603	//       "description": "Project ID for this request.",
149604	//       "location": "path",
149605	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149606	//       "required": true,
149607	//       "type": "string"
149608	//     },
149609	//     "returnPartialSuccess": {
149610	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
149611	//       "location": "query",
149612	//       "type": "boolean"
149613	//     }
149614	//   },
149615	//   "path": "projects/{project}/global/sslPolicies/listAvailableFeatures",
149616	//   "response": {
149617	//     "$ref": "SslPoliciesListAvailableFeaturesResponse"
149618	//   },
149619	//   "scopes": [
149620	//     "https://www.googleapis.com/auth/cloud-platform",
149621	//     "https://www.googleapis.com/auth/compute",
149622	//     "https://www.googleapis.com/auth/compute.readonly"
149623	//   ]
149624	// }
149625
149626}
149627
149628// method id "compute.sslPolicies.patch":
149629
149630type SslPoliciesPatchCall struct {
149631	s          *Service
149632	project    string
149633	sslPolicy  string
149634	sslpolicy  *SslPolicy
149635	urlParams_ gensupport.URLParams
149636	ctx_       context.Context
149637	header_    http.Header
149638}
149639
149640// Patch: Patches the specified SSL policy with the data included in the
149641// request.
149642//
149643// - project: Project ID for this request.
149644// - sslPolicy: Name of the SSL policy to update. The name must be 1-63
149645//   characters long, and comply with RFC1035.
149646func (r *SslPoliciesService) Patch(project string, sslPolicy string, sslpolicy *SslPolicy) *SslPoliciesPatchCall {
149647	c := &SslPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149648	c.project = project
149649	c.sslPolicy = sslPolicy
149650	c.sslpolicy = sslpolicy
149651	return c
149652}
149653
149654// RequestId sets the optional parameter "requestId": An optional
149655// request ID to identify requests. Specify a unique request ID so that
149656// if you must retry your request, the server will know to ignore the
149657// request if it has already been completed. For example, consider a
149658// situation where you make an initial request and the request times
149659// out. If you make the request again with the same request ID, the
149660// server can check if original operation with the same request ID was
149661// received, and if so, will ignore the second request. This prevents
149662// clients from accidentally creating duplicate commitments. The request
149663// ID must be a valid UUID with the exception that zero UUID is not
149664// supported ( 00000000-0000-0000-0000-000000000000).
149665func (c *SslPoliciesPatchCall) RequestId(requestId string) *SslPoliciesPatchCall {
149666	c.urlParams_.Set("requestId", requestId)
149667	return c
149668}
149669
149670// Fields allows partial responses to be retrieved. See
149671// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149672// for more information.
149673func (c *SslPoliciesPatchCall) Fields(s ...googleapi.Field) *SslPoliciesPatchCall {
149674	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149675	return c
149676}
149677
149678// Context sets the context to be used in this call's Do method. Any
149679// pending HTTP request will be aborted if the provided context is
149680// canceled.
149681func (c *SslPoliciesPatchCall) Context(ctx context.Context) *SslPoliciesPatchCall {
149682	c.ctx_ = ctx
149683	return c
149684}
149685
149686// Header returns an http.Header that can be modified by the caller to
149687// add HTTP headers to the request.
149688func (c *SslPoliciesPatchCall) Header() http.Header {
149689	if c.header_ == nil {
149690		c.header_ = make(http.Header)
149691	}
149692	return c.header_
149693}
149694
149695func (c *SslPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
149696	reqHeaders := make(http.Header)
149697	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
149698	for k, v := range c.header_ {
149699		reqHeaders[k] = v
149700	}
149701	reqHeaders.Set("User-Agent", c.s.userAgent())
149702	var body io.Reader = nil
149703	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy)
149704	if err != nil {
149705		return nil, err
149706	}
149707	reqHeaders.Set("Content-Type", "application/json")
149708	c.urlParams_.Set("alt", alt)
149709	c.urlParams_.Set("prettyPrint", "false")
149710	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/{sslPolicy}")
149711	urls += "?" + c.urlParams_.Encode()
149712	req, err := http.NewRequest("PATCH", urls, body)
149713	if err != nil {
149714		return nil, err
149715	}
149716	req.Header = reqHeaders
149717	googleapi.Expand(req.URL, map[string]string{
149718		"project":   c.project,
149719		"sslPolicy": c.sslPolicy,
149720	})
149721	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149722}
149723
149724// Do executes the "compute.sslPolicies.patch" call.
149725// Exactly one of *Operation or error will be non-nil. Any non-2xx
149726// status code is an error. Response headers are in either
149727// *Operation.ServerResponse.Header or (if a response was returned at
149728// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
149729// to check whether the returned error was because
149730// http.StatusNotModified was returned.
149731func (c *SslPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
149732	gensupport.SetOptions(c.urlParams_, opts...)
149733	res, err := c.doRequest("json")
149734	if res != nil && res.StatusCode == http.StatusNotModified {
149735		if res.Body != nil {
149736			res.Body.Close()
149737		}
149738		return nil, &googleapi.Error{
149739			Code:   res.StatusCode,
149740			Header: res.Header,
149741		}
149742	}
149743	if err != nil {
149744		return nil, err
149745	}
149746	defer googleapi.CloseBody(res)
149747	if err := googleapi.CheckResponse(res); err != nil {
149748		return nil, err
149749	}
149750	ret := &Operation{
149751		ServerResponse: googleapi.ServerResponse{
149752			Header:         res.Header,
149753			HTTPStatusCode: res.StatusCode,
149754		},
149755	}
149756	target := &ret
149757	if err := gensupport.DecodeResponse(target, res); err != nil {
149758		return nil, err
149759	}
149760	return ret, nil
149761	// {
149762	//   "description": "Patches the specified SSL policy with the data included in the request.",
149763	//   "flatPath": "projects/{project}/global/sslPolicies/{sslPolicy}",
149764	//   "httpMethod": "PATCH",
149765	//   "id": "compute.sslPolicies.patch",
149766	//   "parameterOrder": [
149767	//     "project",
149768	//     "sslPolicy"
149769	//   ],
149770	//   "parameters": {
149771	//     "project": {
149772	//       "description": "Project ID for this request.",
149773	//       "location": "path",
149774	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149775	//       "required": true,
149776	//       "type": "string"
149777	//     },
149778	//     "requestId": {
149779	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
149780	//       "location": "query",
149781	//       "type": "string"
149782	//     },
149783	//     "sslPolicy": {
149784	//       "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.",
149785	//       "location": "path",
149786	//       "required": true,
149787	//       "type": "string"
149788	//     }
149789	//   },
149790	//   "path": "projects/{project}/global/sslPolicies/{sslPolicy}",
149791	//   "request": {
149792	//     "$ref": "SslPolicy"
149793	//   },
149794	//   "response": {
149795	//     "$ref": "Operation"
149796	//   },
149797	//   "scopes": [
149798	//     "https://www.googleapis.com/auth/cloud-platform",
149799	//     "https://www.googleapis.com/auth/compute"
149800	//   ]
149801	// }
149802
149803}
149804
149805// method id "compute.subnetworks.aggregatedList":
149806
149807type SubnetworksAggregatedListCall struct {
149808	s            *Service
149809	project      string
149810	urlParams_   gensupport.URLParams
149811	ifNoneMatch_ string
149812	ctx_         context.Context
149813	header_      http.Header
149814}
149815
149816// AggregatedList: Retrieves an aggregated list of subnetworks.
149817//
149818// - project: Project ID for this request.
149819func (r *SubnetworksService) AggregatedList(project string) *SubnetworksAggregatedListCall {
149820	c := &SubnetworksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149821	c.project = project
149822	return c
149823}
149824
149825// Filter sets the optional parameter "filter": A filter expression that
149826// filters resources listed in the response. The expression must specify
149827// the field name, a comparison operator, and the value that you want to
149828// use for filtering. The value must be a string, a number, or a
149829// boolean. The comparison operator must be either `=`, `!=`, `>`, or
149830// `<`. For example, if you are filtering Compute Engine instances, you
149831// can exclude instances named `example-instance` by specifying `name !=
149832// example-instance`. You can also filter nested fields. For example,
149833// you could specify `scheduling.automaticRestart = false` to include
149834// instances only if they are not scheduled for automatic restarts. You
149835// can use filtering on nested fields to filter based on resource
149836// labels. To filter on multiple expressions, provide each separate
149837// expression within parentheses. For example: ```
149838// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
149839// ``` By default, each expression is an `AND` expression. However, you
149840// can include `AND` and `OR` expressions explicitly. For example: ```
149841// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
149842// AND (scheduling.automaticRestart = true) ```
149843func (c *SubnetworksAggregatedListCall) Filter(filter string) *SubnetworksAggregatedListCall {
149844	c.urlParams_.Set("filter", filter)
149845	return c
149846}
149847
149848// IncludeAllScopes sets the optional parameter "includeAllScopes":
149849// Indicates whether every visible scope for each scope type (zone,
149850// region, global) should be included in the response. For new resource
149851// types added after this field, the flag has no effect as new resource
149852// types will always include every visible scope for each scope type in
149853// response. For resource types which predate this field, if this flag
149854// is omitted or false, only scopes of the scope types where the
149855// resource type is expected to be found will be included.
149856func (c *SubnetworksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *SubnetworksAggregatedListCall {
149857	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
149858	return c
149859}
149860
149861// MaxResults sets the optional parameter "maxResults": The maximum
149862// number of results per page that should be returned. If the number of
149863// available results is larger than `maxResults`, Compute Engine returns
149864// a `nextPageToken` that can be used to get the next page of results in
149865// subsequent list requests. Acceptable values are `0` to `500`,
149866// inclusive. (Default: `500`)
149867func (c *SubnetworksAggregatedListCall) MaxResults(maxResults int64) *SubnetworksAggregatedListCall {
149868	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
149869	return c
149870}
149871
149872// OrderBy sets the optional parameter "orderBy": Sorts list results by
149873// a certain order. By default, results are returned in alphanumerical
149874// order based on the resource name. You can also sort results in
149875// descending order based on the creation timestamp using
149876// `orderBy="creationTimestamp desc". This sorts results based on the
149877// `creationTimestamp` field in reverse chronological order (newest
149878// result first). Use this to sort resources like operations so that the
149879// newest operation is returned first. Currently, only sorting by `name`
149880// or `creationTimestamp desc` is supported.
149881func (c *SubnetworksAggregatedListCall) OrderBy(orderBy string) *SubnetworksAggregatedListCall {
149882	c.urlParams_.Set("orderBy", orderBy)
149883	return c
149884}
149885
149886// PageToken sets the optional parameter "pageToken": Specifies a page
149887// token to use. Set `pageToken` to the `nextPageToken` returned by a
149888// previous list request to get the next page of results.
149889func (c *SubnetworksAggregatedListCall) PageToken(pageToken string) *SubnetworksAggregatedListCall {
149890	c.urlParams_.Set("pageToken", pageToken)
149891	return c
149892}
149893
149894// ReturnPartialSuccess sets the optional parameter
149895// "returnPartialSuccess": Opt-in for partial success behavior which
149896// provides partial results in case of failure. The default value is
149897// false.
149898func (c *SubnetworksAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SubnetworksAggregatedListCall {
149899	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
149900	return c
149901}
149902
149903// Fields allows partial responses to be retrieved. See
149904// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149905// for more information.
149906func (c *SubnetworksAggregatedListCall) Fields(s ...googleapi.Field) *SubnetworksAggregatedListCall {
149907	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149908	return c
149909}
149910
149911// IfNoneMatch sets the optional parameter which makes the operation
149912// fail if the object's ETag matches the given value. This is useful for
149913// getting updates only after the object has changed since the last
149914// request. Use googleapi.IsNotModified to check whether the response
149915// error from Do is the result of In-None-Match.
149916func (c *SubnetworksAggregatedListCall) IfNoneMatch(entityTag string) *SubnetworksAggregatedListCall {
149917	c.ifNoneMatch_ = entityTag
149918	return c
149919}
149920
149921// Context sets the context to be used in this call's Do method. Any
149922// pending HTTP request will be aborted if the provided context is
149923// canceled.
149924func (c *SubnetworksAggregatedListCall) Context(ctx context.Context) *SubnetworksAggregatedListCall {
149925	c.ctx_ = ctx
149926	return c
149927}
149928
149929// Header returns an http.Header that can be modified by the caller to
149930// add HTTP headers to the request.
149931func (c *SubnetworksAggregatedListCall) Header() http.Header {
149932	if c.header_ == nil {
149933		c.header_ = make(http.Header)
149934	}
149935	return c.header_
149936}
149937
149938func (c *SubnetworksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
149939	reqHeaders := make(http.Header)
149940	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
149941	for k, v := range c.header_ {
149942		reqHeaders[k] = v
149943	}
149944	reqHeaders.Set("User-Agent", c.s.userAgent())
149945	if c.ifNoneMatch_ != "" {
149946		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
149947	}
149948	var body io.Reader = nil
149949	c.urlParams_.Set("alt", alt)
149950	c.urlParams_.Set("prettyPrint", "false")
149951	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/subnetworks")
149952	urls += "?" + c.urlParams_.Encode()
149953	req, err := http.NewRequest("GET", urls, body)
149954	if err != nil {
149955		return nil, err
149956	}
149957	req.Header = reqHeaders
149958	googleapi.Expand(req.URL, map[string]string{
149959		"project": c.project,
149960	})
149961	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149962}
149963
149964// Do executes the "compute.subnetworks.aggregatedList" call.
149965// Exactly one of *SubnetworkAggregatedList or error will be non-nil.
149966// Any non-2xx status code is an error. Response headers are in either
149967// *SubnetworkAggregatedList.ServerResponse.Header or (if a response was
149968// returned at all) in error.(*googleapi.Error).Header. Use
149969// googleapi.IsNotModified to check whether the returned error was
149970// because http.StatusNotModified was returned.
149971func (c *SubnetworksAggregatedListCall) Do(opts ...googleapi.CallOption) (*SubnetworkAggregatedList, error) {
149972	gensupport.SetOptions(c.urlParams_, opts...)
149973	res, err := c.doRequest("json")
149974	if res != nil && res.StatusCode == http.StatusNotModified {
149975		if res.Body != nil {
149976			res.Body.Close()
149977		}
149978		return nil, &googleapi.Error{
149979			Code:   res.StatusCode,
149980			Header: res.Header,
149981		}
149982	}
149983	if err != nil {
149984		return nil, err
149985	}
149986	defer googleapi.CloseBody(res)
149987	if err := googleapi.CheckResponse(res); err != nil {
149988		return nil, err
149989	}
149990	ret := &SubnetworkAggregatedList{
149991		ServerResponse: googleapi.ServerResponse{
149992			Header:         res.Header,
149993			HTTPStatusCode: res.StatusCode,
149994		},
149995	}
149996	target := &ret
149997	if err := gensupport.DecodeResponse(target, res); err != nil {
149998		return nil, err
149999	}
150000	return ret, nil
150001	// {
150002	//   "description": "Retrieves an aggregated list of subnetworks.",
150003	//   "flatPath": "projects/{project}/aggregated/subnetworks",
150004	//   "httpMethod": "GET",
150005	//   "id": "compute.subnetworks.aggregatedList",
150006	//   "parameterOrder": [
150007	//     "project"
150008	//   ],
150009	//   "parameters": {
150010	//     "filter": {
150011	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
150012	//       "location": "query",
150013	//       "type": "string"
150014	//     },
150015	//     "includeAllScopes": {
150016	//       "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.",
150017	//       "location": "query",
150018	//       "type": "boolean"
150019	//     },
150020	//     "maxResults": {
150021	//       "default": "500",
150022	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
150023	//       "format": "uint32",
150024	//       "location": "query",
150025	//       "minimum": "0",
150026	//       "type": "integer"
150027	//     },
150028	//     "orderBy": {
150029	//       "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.",
150030	//       "location": "query",
150031	//       "type": "string"
150032	//     },
150033	//     "pageToken": {
150034	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
150035	//       "location": "query",
150036	//       "type": "string"
150037	//     },
150038	//     "project": {
150039	//       "description": "Project ID for this request.",
150040	//       "location": "path",
150041	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150042	//       "required": true,
150043	//       "type": "string"
150044	//     },
150045	//     "returnPartialSuccess": {
150046	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
150047	//       "location": "query",
150048	//       "type": "boolean"
150049	//     }
150050	//   },
150051	//   "path": "projects/{project}/aggregated/subnetworks",
150052	//   "response": {
150053	//     "$ref": "SubnetworkAggregatedList"
150054	//   },
150055	//   "scopes": [
150056	//     "https://www.googleapis.com/auth/cloud-platform",
150057	//     "https://www.googleapis.com/auth/compute",
150058	//     "https://www.googleapis.com/auth/compute.readonly"
150059	//   ]
150060	// }
150061
150062}
150063
150064// Pages invokes f for each page of results.
150065// A non-nil error returned from f will halt the iteration.
150066// The provided context supersedes any context provided to the Context method.
150067func (c *SubnetworksAggregatedListCall) Pages(ctx context.Context, f func(*SubnetworkAggregatedList) error) error {
150068	c.ctx_ = ctx
150069	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
150070	for {
150071		x, err := c.Do()
150072		if err != nil {
150073			return err
150074		}
150075		if err := f(x); err != nil {
150076			return err
150077		}
150078		if x.NextPageToken == "" {
150079			return nil
150080		}
150081		c.PageToken(x.NextPageToken)
150082	}
150083}
150084
150085// method id "compute.subnetworks.delete":
150086
150087type SubnetworksDeleteCall struct {
150088	s          *Service
150089	project    string
150090	region     string
150091	subnetwork string
150092	urlParams_ gensupport.URLParams
150093	ctx_       context.Context
150094	header_    http.Header
150095}
150096
150097// Delete: Deletes the specified subnetwork.
150098//
150099// - project: Project ID for this request.
150100// - region: Name of the region scoping this request.
150101// - subnetwork: Name of the Subnetwork resource to delete.
150102func (r *SubnetworksService) Delete(project string, region string, subnetwork string) *SubnetworksDeleteCall {
150103	c := &SubnetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150104	c.project = project
150105	c.region = region
150106	c.subnetwork = subnetwork
150107	return c
150108}
150109
150110// RequestId sets the optional parameter "requestId": An optional
150111// request ID to identify requests. Specify a unique request ID so that
150112// if you must retry your request, the server will know to ignore the
150113// request if it has already been completed. For example, consider a
150114// situation where you make an initial request and the request times
150115// out. If you make the request again with the same request ID, the
150116// server can check if original operation with the same request ID was
150117// received, and if so, will ignore the second request. This prevents
150118// clients from accidentally creating duplicate commitments. The request
150119// ID must be a valid UUID with the exception that zero UUID is not
150120// supported ( 00000000-0000-0000-0000-000000000000).
150121func (c *SubnetworksDeleteCall) RequestId(requestId string) *SubnetworksDeleteCall {
150122	c.urlParams_.Set("requestId", requestId)
150123	return c
150124}
150125
150126// Fields allows partial responses to be retrieved. See
150127// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150128// for more information.
150129func (c *SubnetworksDeleteCall) Fields(s ...googleapi.Field) *SubnetworksDeleteCall {
150130	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150131	return c
150132}
150133
150134// Context sets the context to be used in this call's Do method. Any
150135// pending HTTP request will be aborted if the provided context is
150136// canceled.
150137func (c *SubnetworksDeleteCall) Context(ctx context.Context) *SubnetworksDeleteCall {
150138	c.ctx_ = ctx
150139	return c
150140}
150141
150142// Header returns an http.Header that can be modified by the caller to
150143// add HTTP headers to the request.
150144func (c *SubnetworksDeleteCall) Header() http.Header {
150145	if c.header_ == nil {
150146		c.header_ = make(http.Header)
150147	}
150148	return c.header_
150149}
150150
150151func (c *SubnetworksDeleteCall) doRequest(alt string) (*http.Response, error) {
150152	reqHeaders := make(http.Header)
150153	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
150154	for k, v := range c.header_ {
150155		reqHeaders[k] = v
150156	}
150157	reqHeaders.Set("User-Agent", c.s.userAgent())
150158	var body io.Reader = nil
150159	c.urlParams_.Set("alt", alt)
150160	c.urlParams_.Set("prettyPrint", "false")
150161	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}")
150162	urls += "?" + c.urlParams_.Encode()
150163	req, err := http.NewRequest("DELETE", urls, body)
150164	if err != nil {
150165		return nil, err
150166	}
150167	req.Header = reqHeaders
150168	googleapi.Expand(req.URL, map[string]string{
150169		"project":    c.project,
150170		"region":     c.region,
150171		"subnetwork": c.subnetwork,
150172	})
150173	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150174}
150175
150176// Do executes the "compute.subnetworks.delete" call.
150177// Exactly one of *Operation or error will be non-nil. Any non-2xx
150178// status code is an error. Response headers are in either
150179// *Operation.ServerResponse.Header or (if a response was returned at
150180// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150181// to check whether the returned error was because
150182// http.StatusNotModified was returned.
150183func (c *SubnetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
150184	gensupport.SetOptions(c.urlParams_, opts...)
150185	res, err := c.doRequest("json")
150186	if res != nil && res.StatusCode == http.StatusNotModified {
150187		if res.Body != nil {
150188			res.Body.Close()
150189		}
150190		return nil, &googleapi.Error{
150191			Code:   res.StatusCode,
150192			Header: res.Header,
150193		}
150194	}
150195	if err != nil {
150196		return nil, err
150197	}
150198	defer googleapi.CloseBody(res)
150199	if err := googleapi.CheckResponse(res); err != nil {
150200		return nil, err
150201	}
150202	ret := &Operation{
150203		ServerResponse: googleapi.ServerResponse{
150204			Header:         res.Header,
150205			HTTPStatusCode: res.StatusCode,
150206		},
150207	}
150208	target := &ret
150209	if err := gensupport.DecodeResponse(target, res); err != nil {
150210		return nil, err
150211	}
150212	return ret, nil
150213	// {
150214	//   "description": "Deletes the specified subnetwork.",
150215	//   "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}",
150216	//   "httpMethod": "DELETE",
150217	//   "id": "compute.subnetworks.delete",
150218	//   "parameterOrder": [
150219	//     "project",
150220	//     "region",
150221	//     "subnetwork"
150222	//   ],
150223	//   "parameters": {
150224	//     "project": {
150225	//       "description": "Project ID for this request.",
150226	//       "location": "path",
150227	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150228	//       "required": true,
150229	//       "type": "string"
150230	//     },
150231	//     "region": {
150232	//       "description": "Name of the region scoping this request.",
150233	//       "location": "path",
150234	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150235	//       "required": true,
150236	//       "type": "string"
150237	//     },
150238	//     "requestId": {
150239	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
150240	//       "location": "query",
150241	//       "type": "string"
150242	//     },
150243	//     "subnetwork": {
150244	//       "description": "Name of the Subnetwork resource to delete.",
150245	//       "location": "path",
150246	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
150247	//       "required": true,
150248	//       "type": "string"
150249	//     }
150250	//   },
150251	//   "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}",
150252	//   "response": {
150253	//     "$ref": "Operation"
150254	//   },
150255	//   "scopes": [
150256	//     "https://www.googleapis.com/auth/cloud-platform",
150257	//     "https://www.googleapis.com/auth/compute"
150258	//   ]
150259	// }
150260
150261}
150262
150263// method id "compute.subnetworks.expandIpCidrRange":
150264
150265type SubnetworksExpandIpCidrRangeCall struct {
150266	s                                   *Service
150267	project                             string
150268	region                              string
150269	subnetwork                          string
150270	subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest
150271	urlParams_                          gensupport.URLParams
150272	ctx_                                context.Context
150273	header_                             http.Header
150274}
150275
150276// ExpandIpCidrRange: Expands the IP CIDR range of the subnetwork to a
150277// specified value.
150278//
150279// - project: Project ID for this request.
150280// - region: Name of the region scoping this request.
150281// - subnetwork: Name of the Subnetwork resource to update.
150282func (r *SubnetworksService) ExpandIpCidrRange(project string, region string, subnetwork string, subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest) *SubnetworksExpandIpCidrRangeCall {
150283	c := &SubnetworksExpandIpCidrRangeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150284	c.project = project
150285	c.region = region
150286	c.subnetwork = subnetwork
150287	c.subnetworksexpandipcidrrangerequest = subnetworksexpandipcidrrangerequest
150288	return c
150289}
150290
150291// RequestId sets the optional parameter "requestId": An optional
150292// request ID to identify requests. Specify a unique request ID so that
150293// if you must retry your request, the server will know to ignore the
150294// request if it has already been completed. For example, consider a
150295// situation where you make an initial request and the request times
150296// out. If you make the request again with the same request ID, the
150297// server can check if original operation with the same request ID was
150298// received, and if so, will ignore the second request. This prevents
150299// clients from accidentally creating duplicate commitments. The request
150300// ID must be a valid UUID with the exception that zero UUID is not
150301// supported ( 00000000-0000-0000-0000-000000000000).
150302func (c *SubnetworksExpandIpCidrRangeCall) RequestId(requestId string) *SubnetworksExpandIpCidrRangeCall {
150303	c.urlParams_.Set("requestId", requestId)
150304	return c
150305}
150306
150307// Fields allows partial responses to be retrieved. See
150308// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150309// for more information.
150310func (c *SubnetworksExpandIpCidrRangeCall) Fields(s ...googleapi.Field) *SubnetworksExpandIpCidrRangeCall {
150311	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150312	return c
150313}
150314
150315// Context sets the context to be used in this call's Do method. Any
150316// pending HTTP request will be aborted if the provided context is
150317// canceled.
150318func (c *SubnetworksExpandIpCidrRangeCall) Context(ctx context.Context) *SubnetworksExpandIpCidrRangeCall {
150319	c.ctx_ = ctx
150320	return c
150321}
150322
150323// Header returns an http.Header that can be modified by the caller to
150324// add HTTP headers to the request.
150325func (c *SubnetworksExpandIpCidrRangeCall) Header() http.Header {
150326	if c.header_ == nil {
150327		c.header_ = make(http.Header)
150328	}
150329	return c.header_
150330}
150331
150332func (c *SubnetworksExpandIpCidrRangeCall) doRequest(alt string) (*http.Response, error) {
150333	reqHeaders := make(http.Header)
150334	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
150335	for k, v := range c.header_ {
150336		reqHeaders[k] = v
150337	}
150338	reqHeaders.Set("User-Agent", c.s.userAgent())
150339	var body io.Reader = nil
150340	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworksexpandipcidrrangerequest)
150341	if err != nil {
150342		return nil, err
150343	}
150344	reqHeaders.Set("Content-Type", "application/json")
150345	c.urlParams_.Set("alt", alt)
150346	c.urlParams_.Set("prettyPrint", "false")
150347	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange")
150348	urls += "?" + c.urlParams_.Encode()
150349	req, err := http.NewRequest("POST", urls, body)
150350	if err != nil {
150351		return nil, err
150352	}
150353	req.Header = reqHeaders
150354	googleapi.Expand(req.URL, map[string]string{
150355		"project":    c.project,
150356		"region":     c.region,
150357		"subnetwork": c.subnetwork,
150358	})
150359	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150360}
150361
150362// Do executes the "compute.subnetworks.expandIpCidrRange" call.
150363// Exactly one of *Operation or error will be non-nil. Any non-2xx
150364// status code is an error. Response headers are in either
150365// *Operation.ServerResponse.Header or (if a response was returned at
150366// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150367// to check whether the returned error was because
150368// http.StatusNotModified was returned.
150369func (c *SubnetworksExpandIpCidrRangeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
150370	gensupport.SetOptions(c.urlParams_, opts...)
150371	res, err := c.doRequest("json")
150372	if res != nil && res.StatusCode == http.StatusNotModified {
150373		if res.Body != nil {
150374			res.Body.Close()
150375		}
150376		return nil, &googleapi.Error{
150377			Code:   res.StatusCode,
150378			Header: res.Header,
150379		}
150380	}
150381	if err != nil {
150382		return nil, err
150383	}
150384	defer googleapi.CloseBody(res)
150385	if err := googleapi.CheckResponse(res); err != nil {
150386		return nil, err
150387	}
150388	ret := &Operation{
150389		ServerResponse: googleapi.ServerResponse{
150390			Header:         res.Header,
150391			HTTPStatusCode: res.StatusCode,
150392		},
150393	}
150394	target := &ret
150395	if err := gensupport.DecodeResponse(target, res); err != nil {
150396		return nil, err
150397	}
150398	return ret, nil
150399	// {
150400	//   "description": "Expands the IP CIDR range of the subnetwork to a specified value.",
150401	//   "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange",
150402	//   "httpMethod": "POST",
150403	//   "id": "compute.subnetworks.expandIpCidrRange",
150404	//   "parameterOrder": [
150405	//     "project",
150406	//     "region",
150407	//     "subnetwork"
150408	//   ],
150409	//   "parameters": {
150410	//     "project": {
150411	//       "description": "Project ID for this request.",
150412	//       "location": "path",
150413	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150414	//       "required": true,
150415	//       "type": "string"
150416	//     },
150417	//     "region": {
150418	//       "description": "Name of the region scoping this request.",
150419	//       "location": "path",
150420	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150421	//       "required": true,
150422	//       "type": "string"
150423	//     },
150424	//     "requestId": {
150425	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
150426	//       "location": "query",
150427	//       "type": "string"
150428	//     },
150429	//     "subnetwork": {
150430	//       "description": "Name of the Subnetwork resource to update.",
150431	//       "location": "path",
150432	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
150433	//       "required": true,
150434	//       "type": "string"
150435	//     }
150436	//   },
150437	//   "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange",
150438	//   "request": {
150439	//     "$ref": "SubnetworksExpandIpCidrRangeRequest"
150440	//   },
150441	//   "response": {
150442	//     "$ref": "Operation"
150443	//   },
150444	//   "scopes": [
150445	//     "https://www.googleapis.com/auth/cloud-platform",
150446	//     "https://www.googleapis.com/auth/compute"
150447	//   ]
150448	// }
150449
150450}
150451
150452// method id "compute.subnetworks.get":
150453
150454type SubnetworksGetCall struct {
150455	s            *Service
150456	project      string
150457	region       string
150458	subnetwork   string
150459	urlParams_   gensupport.URLParams
150460	ifNoneMatch_ string
150461	ctx_         context.Context
150462	header_      http.Header
150463}
150464
150465// Get: Returns the specified subnetwork. Gets a list of available
150466// subnetworks list() request.
150467//
150468// - project: Project ID for this request.
150469// - region: Name of the region scoping this request.
150470// - subnetwork: Name of the Subnetwork resource to return.
150471func (r *SubnetworksService) Get(project string, region string, subnetwork string) *SubnetworksGetCall {
150472	c := &SubnetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150473	c.project = project
150474	c.region = region
150475	c.subnetwork = subnetwork
150476	return c
150477}
150478
150479// Fields allows partial responses to be retrieved. See
150480// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150481// for more information.
150482func (c *SubnetworksGetCall) Fields(s ...googleapi.Field) *SubnetworksGetCall {
150483	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150484	return c
150485}
150486
150487// IfNoneMatch sets the optional parameter which makes the operation
150488// fail if the object's ETag matches the given value. This is useful for
150489// getting updates only after the object has changed since the last
150490// request. Use googleapi.IsNotModified to check whether the response
150491// error from Do is the result of In-None-Match.
150492func (c *SubnetworksGetCall) IfNoneMatch(entityTag string) *SubnetworksGetCall {
150493	c.ifNoneMatch_ = entityTag
150494	return c
150495}
150496
150497// Context sets the context to be used in this call's Do method. Any
150498// pending HTTP request will be aborted if the provided context is
150499// canceled.
150500func (c *SubnetworksGetCall) Context(ctx context.Context) *SubnetworksGetCall {
150501	c.ctx_ = ctx
150502	return c
150503}
150504
150505// Header returns an http.Header that can be modified by the caller to
150506// add HTTP headers to the request.
150507func (c *SubnetworksGetCall) Header() http.Header {
150508	if c.header_ == nil {
150509		c.header_ = make(http.Header)
150510	}
150511	return c.header_
150512}
150513
150514func (c *SubnetworksGetCall) doRequest(alt string) (*http.Response, error) {
150515	reqHeaders := make(http.Header)
150516	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
150517	for k, v := range c.header_ {
150518		reqHeaders[k] = v
150519	}
150520	reqHeaders.Set("User-Agent", c.s.userAgent())
150521	if c.ifNoneMatch_ != "" {
150522		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
150523	}
150524	var body io.Reader = nil
150525	c.urlParams_.Set("alt", alt)
150526	c.urlParams_.Set("prettyPrint", "false")
150527	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}")
150528	urls += "?" + c.urlParams_.Encode()
150529	req, err := http.NewRequest("GET", urls, body)
150530	if err != nil {
150531		return nil, err
150532	}
150533	req.Header = reqHeaders
150534	googleapi.Expand(req.URL, map[string]string{
150535		"project":    c.project,
150536		"region":     c.region,
150537		"subnetwork": c.subnetwork,
150538	})
150539	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150540}
150541
150542// Do executes the "compute.subnetworks.get" call.
150543// Exactly one of *Subnetwork or error will be non-nil. Any non-2xx
150544// status code is an error. Response headers are in either
150545// *Subnetwork.ServerResponse.Header or (if a response was returned at
150546// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150547// to check whether the returned error was because
150548// http.StatusNotModified was returned.
150549func (c *SubnetworksGetCall) Do(opts ...googleapi.CallOption) (*Subnetwork, error) {
150550	gensupport.SetOptions(c.urlParams_, opts...)
150551	res, err := c.doRequest("json")
150552	if res != nil && res.StatusCode == http.StatusNotModified {
150553		if res.Body != nil {
150554			res.Body.Close()
150555		}
150556		return nil, &googleapi.Error{
150557			Code:   res.StatusCode,
150558			Header: res.Header,
150559		}
150560	}
150561	if err != nil {
150562		return nil, err
150563	}
150564	defer googleapi.CloseBody(res)
150565	if err := googleapi.CheckResponse(res); err != nil {
150566		return nil, err
150567	}
150568	ret := &Subnetwork{
150569		ServerResponse: googleapi.ServerResponse{
150570			Header:         res.Header,
150571			HTTPStatusCode: res.StatusCode,
150572		},
150573	}
150574	target := &ret
150575	if err := gensupport.DecodeResponse(target, res); err != nil {
150576		return nil, err
150577	}
150578	return ret, nil
150579	// {
150580	//   "description": "Returns the specified subnetwork. Gets a list of available subnetworks list() request.",
150581	//   "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}",
150582	//   "httpMethod": "GET",
150583	//   "id": "compute.subnetworks.get",
150584	//   "parameterOrder": [
150585	//     "project",
150586	//     "region",
150587	//     "subnetwork"
150588	//   ],
150589	//   "parameters": {
150590	//     "project": {
150591	//       "description": "Project ID for this request.",
150592	//       "location": "path",
150593	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150594	//       "required": true,
150595	//       "type": "string"
150596	//     },
150597	//     "region": {
150598	//       "description": "Name of the region scoping this request.",
150599	//       "location": "path",
150600	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150601	//       "required": true,
150602	//       "type": "string"
150603	//     },
150604	//     "subnetwork": {
150605	//       "description": "Name of the Subnetwork resource to return.",
150606	//       "location": "path",
150607	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
150608	//       "required": true,
150609	//       "type": "string"
150610	//     }
150611	//   },
150612	//   "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}",
150613	//   "response": {
150614	//     "$ref": "Subnetwork"
150615	//   },
150616	//   "scopes": [
150617	//     "https://www.googleapis.com/auth/cloud-platform",
150618	//     "https://www.googleapis.com/auth/compute",
150619	//     "https://www.googleapis.com/auth/compute.readonly"
150620	//   ]
150621	// }
150622
150623}
150624
150625// method id "compute.subnetworks.getIamPolicy":
150626
150627type SubnetworksGetIamPolicyCall struct {
150628	s            *Service
150629	project      string
150630	region       string
150631	resource     string
150632	urlParams_   gensupport.URLParams
150633	ifNoneMatch_ string
150634	ctx_         context.Context
150635	header_      http.Header
150636}
150637
150638// GetIamPolicy: Gets the access control policy for a resource. May be
150639// empty if no such policy or resource exists.
150640//
150641// - project: Project ID for this request.
150642// - region: The name of the region for this request.
150643// - resource: Name or id of the resource for this request.
150644func (r *SubnetworksService) GetIamPolicy(project string, region string, resource string) *SubnetworksGetIamPolicyCall {
150645	c := &SubnetworksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150646	c.project = project
150647	c.region = region
150648	c.resource = resource
150649	return c
150650}
150651
150652// OptionsRequestedPolicyVersion sets the optional parameter
150653// "optionsRequestedPolicyVersion": Requested IAM Policy version.
150654func (c *SubnetworksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *SubnetworksGetIamPolicyCall {
150655	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
150656	return c
150657}
150658
150659// Fields allows partial responses to be retrieved. See
150660// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150661// for more information.
150662func (c *SubnetworksGetIamPolicyCall) Fields(s ...googleapi.Field) *SubnetworksGetIamPolicyCall {
150663	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150664	return c
150665}
150666
150667// IfNoneMatch sets the optional parameter which makes the operation
150668// fail if the object's ETag matches the given value. This is useful for
150669// getting updates only after the object has changed since the last
150670// request. Use googleapi.IsNotModified to check whether the response
150671// error from Do is the result of In-None-Match.
150672func (c *SubnetworksGetIamPolicyCall) IfNoneMatch(entityTag string) *SubnetworksGetIamPolicyCall {
150673	c.ifNoneMatch_ = entityTag
150674	return c
150675}
150676
150677// Context sets the context to be used in this call's Do method. Any
150678// pending HTTP request will be aborted if the provided context is
150679// canceled.
150680func (c *SubnetworksGetIamPolicyCall) Context(ctx context.Context) *SubnetworksGetIamPolicyCall {
150681	c.ctx_ = ctx
150682	return c
150683}
150684
150685// Header returns an http.Header that can be modified by the caller to
150686// add HTTP headers to the request.
150687func (c *SubnetworksGetIamPolicyCall) Header() http.Header {
150688	if c.header_ == nil {
150689		c.header_ = make(http.Header)
150690	}
150691	return c.header_
150692}
150693
150694func (c *SubnetworksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
150695	reqHeaders := make(http.Header)
150696	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
150697	for k, v := range c.header_ {
150698		reqHeaders[k] = v
150699	}
150700	reqHeaders.Set("User-Agent", c.s.userAgent())
150701	if c.ifNoneMatch_ != "" {
150702		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
150703	}
150704	var body io.Reader = nil
150705	c.urlParams_.Set("alt", alt)
150706	c.urlParams_.Set("prettyPrint", "false")
150707	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy")
150708	urls += "?" + c.urlParams_.Encode()
150709	req, err := http.NewRequest("GET", urls, body)
150710	if err != nil {
150711		return nil, err
150712	}
150713	req.Header = reqHeaders
150714	googleapi.Expand(req.URL, map[string]string{
150715		"project":  c.project,
150716		"region":   c.region,
150717		"resource": c.resource,
150718	})
150719	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150720}
150721
150722// Do executes the "compute.subnetworks.getIamPolicy" call.
150723// Exactly one of *Policy or error will be non-nil. Any non-2xx status
150724// code is an error. Response headers are in either
150725// *Policy.ServerResponse.Header or (if a response was returned at all)
150726// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
150727// check whether the returned error was because http.StatusNotModified
150728// was returned.
150729func (c *SubnetworksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
150730	gensupport.SetOptions(c.urlParams_, opts...)
150731	res, err := c.doRequest("json")
150732	if res != nil && res.StatusCode == http.StatusNotModified {
150733		if res.Body != nil {
150734			res.Body.Close()
150735		}
150736		return nil, &googleapi.Error{
150737			Code:   res.StatusCode,
150738			Header: res.Header,
150739		}
150740	}
150741	if err != nil {
150742		return nil, err
150743	}
150744	defer googleapi.CloseBody(res)
150745	if err := googleapi.CheckResponse(res); err != nil {
150746		return nil, err
150747	}
150748	ret := &Policy{
150749		ServerResponse: googleapi.ServerResponse{
150750			Header:         res.Header,
150751			HTTPStatusCode: res.StatusCode,
150752		},
150753	}
150754	target := &ret
150755	if err := gensupport.DecodeResponse(target, res); err != nil {
150756		return nil, err
150757	}
150758	return ret, nil
150759	// {
150760	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
150761	//   "flatPath": "projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy",
150762	//   "httpMethod": "GET",
150763	//   "id": "compute.subnetworks.getIamPolicy",
150764	//   "parameterOrder": [
150765	//     "project",
150766	//     "region",
150767	//     "resource"
150768	//   ],
150769	//   "parameters": {
150770	//     "optionsRequestedPolicyVersion": {
150771	//       "description": "Requested IAM Policy version.",
150772	//       "format": "int32",
150773	//       "location": "query",
150774	//       "type": "integer"
150775	//     },
150776	//     "project": {
150777	//       "description": "Project ID for this request.",
150778	//       "location": "path",
150779	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150780	//       "required": true,
150781	//       "type": "string"
150782	//     },
150783	//     "region": {
150784	//       "description": "The name of the region for this request.",
150785	//       "location": "path",
150786	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150787	//       "required": true,
150788	//       "type": "string"
150789	//     },
150790	//     "resource": {
150791	//       "description": "Name or id of the resource for this request.",
150792	//       "location": "path",
150793	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
150794	//       "required": true,
150795	//       "type": "string"
150796	//     }
150797	//   },
150798	//   "path": "projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy",
150799	//   "response": {
150800	//     "$ref": "Policy"
150801	//   },
150802	//   "scopes": [
150803	//     "https://www.googleapis.com/auth/cloud-platform",
150804	//     "https://www.googleapis.com/auth/compute",
150805	//     "https://www.googleapis.com/auth/compute.readonly"
150806	//   ]
150807	// }
150808
150809}
150810
150811// method id "compute.subnetworks.insert":
150812
150813type SubnetworksInsertCall struct {
150814	s          *Service
150815	project    string
150816	region     string
150817	subnetwork *Subnetwork
150818	urlParams_ gensupport.URLParams
150819	ctx_       context.Context
150820	header_    http.Header
150821}
150822
150823// Insert: Creates a subnetwork in the specified project using the data
150824// included in the request.
150825//
150826// - project: Project ID for this request.
150827// - region: Name of the region scoping this request.
150828func (r *SubnetworksService) Insert(project string, region string, subnetwork *Subnetwork) *SubnetworksInsertCall {
150829	c := &SubnetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150830	c.project = project
150831	c.region = region
150832	c.subnetwork = subnetwork
150833	return c
150834}
150835
150836// RequestId sets the optional parameter "requestId": An optional
150837// request ID to identify requests. Specify a unique request ID so that
150838// if you must retry your request, the server will know to ignore the
150839// request if it has already been completed. For example, consider a
150840// situation where you make an initial request and the request times
150841// out. If you make the request again with the same request ID, the
150842// server can check if original operation with the same request ID was
150843// received, and if so, will ignore the second request. This prevents
150844// clients from accidentally creating duplicate commitments. The request
150845// ID must be a valid UUID with the exception that zero UUID is not
150846// supported ( 00000000-0000-0000-0000-000000000000).
150847func (c *SubnetworksInsertCall) RequestId(requestId string) *SubnetworksInsertCall {
150848	c.urlParams_.Set("requestId", requestId)
150849	return c
150850}
150851
150852// Fields allows partial responses to be retrieved. See
150853// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150854// for more information.
150855func (c *SubnetworksInsertCall) Fields(s ...googleapi.Field) *SubnetworksInsertCall {
150856	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150857	return c
150858}
150859
150860// Context sets the context to be used in this call's Do method. Any
150861// pending HTTP request will be aborted if the provided context is
150862// canceled.
150863func (c *SubnetworksInsertCall) Context(ctx context.Context) *SubnetworksInsertCall {
150864	c.ctx_ = ctx
150865	return c
150866}
150867
150868// Header returns an http.Header that can be modified by the caller to
150869// add HTTP headers to the request.
150870func (c *SubnetworksInsertCall) Header() http.Header {
150871	if c.header_ == nil {
150872		c.header_ = make(http.Header)
150873	}
150874	return c.header_
150875}
150876
150877func (c *SubnetworksInsertCall) doRequest(alt string) (*http.Response, error) {
150878	reqHeaders := make(http.Header)
150879	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
150880	for k, v := range c.header_ {
150881		reqHeaders[k] = v
150882	}
150883	reqHeaders.Set("User-Agent", c.s.userAgent())
150884	var body io.Reader = nil
150885	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetwork)
150886	if err != nil {
150887		return nil, err
150888	}
150889	reqHeaders.Set("Content-Type", "application/json")
150890	c.urlParams_.Set("alt", alt)
150891	c.urlParams_.Set("prettyPrint", "false")
150892	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks")
150893	urls += "?" + c.urlParams_.Encode()
150894	req, err := http.NewRequest("POST", urls, body)
150895	if err != nil {
150896		return nil, err
150897	}
150898	req.Header = reqHeaders
150899	googleapi.Expand(req.URL, map[string]string{
150900		"project": c.project,
150901		"region":  c.region,
150902	})
150903	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150904}
150905
150906// Do executes the "compute.subnetworks.insert" call.
150907// Exactly one of *Operation or error will be non-nil. Any non-2xx
150908// status code is an error. Response headers are in either
150909// *Operation.ServerResponse.Header or (if a response was returned at
150910// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150911// to check whether the returned error was because
150912// http.StatusNotModified was returned.
150913func (c *SubnetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
150914	gensupport.SetOptions(c.urlParams_, opts...)
150915	res, err := c.doRequest("json")
150916	if res != nil && res.StatusCode == http.StatusNotModified {
150917		if res.Body != nil {
150918			res.Body.Close()
150919		}
150920		return nil, &googleapi.Error{
150921			Code:   res.StatusCode,
150922			Header: res.Header,
150923		}
150924	}
150925	if err != nil {
150926		return nil, err
150927	}
150928	defer googleapi.CloseBody(res)
150929	if err := googleapi.CheckResponse(res); err != nil {
150930		return nil, err
150931	}
150932	ret := &Operation{
150933		ServerResponse: googleapi.ServerResponse{
150934			Header:         res.Header,
150935			HTTPStatusCode: res.StatusCode,
150936		},
150937	}
150938	target := &ret
150939	if err := gensupport.DecodeResponse(target, res); err != nil {
150940		return nil, err
150941	}
150942	return ret, nil
150943	// {
150944	//   "description": "Creates a subnetwork in the specified project using the data included in the request.",
150945	//   "flatPath": "projects/{project}/regions/{region}/subnetworks",
150946	//   "httpMethod": "POST",
150947	//   "id": "compute.subnetworks.insert",
150948	//   "parameterOrder": [
150949	//     "project",
150950	//     "region"
150951	//   ],
150952	//   "parameters": {
150953	//     "project": {
150954	//       "description": "Project ID for this request.",
150955	//       "location": "path",
150956	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150957	//       "required": true,
150958	//       "type": "string"
150959	//     },
150960	//     "region": {
150961	//       "description": "Name of the region scoping this request.",
150962	//       "location": "path",
150963	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
150964	//       "required": true,
150965	//       "type": "string"
150966	//     },
150967	//     "requestId": {
150968	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
150969	//       "location": "query",
150970	//       "type": "string"
150971	//     }
150972	//   },
150973	//   "path": "projects/{project}/regions/{region}/subnetworks",
150974	//   "request": {
150975	//     "$ref": "Subnetwork"
150976	//   },
150977	//   "response": {
150978	//     "$ref": "Operation"
150979	//   },
150980	//   "scopes": [
150981	//     "https://www.googleapis.com/auth/cloud-platform",
150982	//     "https://www.googleapis.com/auth/compute"
150983	//   ]
150984	// }
150985
150986}
150987
150988// method id "compute.subnetworks.list":
150989
150990type SubnetworksListCall struct {
150991	s            *Service
150992	project      string
150993	region       string
150994	urlParams_   gensupport.URLParams
150995	ifNoneMatch_ string
150996	ctx_         context.Context
150997	header_      http.Header
150998}
150999
151000// List: Retrieves a list of subnetworks available to the specified
151001// project.
151002//
151003// - project: Project ID for this request.
151004// - region: Name of the region scoping this request.
151005func (r *SubnetworksService) List(project string, region string) *SubnetworksListCall {
151006	c := &SubnetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151007	c.project = project
151008	c.region = region
151009	return c
151010}
151011
151012// Filter sets the optional parameter "filter": A filter expression that
151013// filters resources listed in the response. The expression must specify
151014// the field name, a comparison operator, and the value that you want to
151015// use for filtering. The value must be a string, a number, or a
151016// boolean. The comparison operator must be either `=`, `!=`, `>`, or
151017// `<`. For example, if you are filtering Compute Engine instances, you
151018// can exclude instances named `example-instance` by specifying `name !=
151019// example-instance`. You can also filter nested fields. For example,
151020// you could specify `scheduling.automaticRestart = false` to include
151021// instances only if they are not scheduled for automatic restarts. You
151022// can use filtering on nested fields to filter based on resource
151023// labels. To filter on multiple expressions, provide each separate
151024// expression within parentheses. For example: ```
151025// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
151026// ``` By default, each expression is an `AND` expression. However, you
151027// can include `AND` and `OR` expressions explicitly. For example: ```
151028// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
151029// AND (scheduling.automaticRestart = true) ```
151030func (c *SubnetworksListCall) Filter(filter string) *SubnetworksListCall {
151031	c.urlParams_.Set("filter", filter)
151032	return c
151033}
151034
151035// MaxResults sets the optional parameter "maxResults": The maximum
151036// number of results per page that should be returned. If the number of
151037// available results is larger than `maxResults`, Compute Engine returns
151038// a `nextPageToken` that can be used to get the next page of results in
151039// subsequent list requests. Acceptable values are `0` to `500`,
151040// inclusive. (Default: `500`)
151041func (c *SubnetworksListCall) MaxResults(maxResults int64) *SubnetworksListCall {
151042	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
151043	return c
151044}
151045
151046// OrderBy sets the optional parameter "orderBy": Sorts list results by
151047// a certain order. By default, results are returned in alphanumerical
151048// order based on the resource name. You can also sort results in
151049// descending order based on the creation timestamp using
151050// `orderBy="creationTimestamp desc". This sorts results based on the
151051// `creationTimestamp` field in reverse chronological order (newest
151052// result first). Use this to sort resources like operations so that the
151053// newest operation is returned first. Currently, only sorting by `name`
151054// or `creationTimestamp desc` is supported.
151055func (c *SubnetworksListCall) OrderBy(orderBy string) *SubnetworksListCall {
151056	c.urlParams_.Set("orderBy", orderBy)
151057	return c
151058}
151059
151060// PageToken sets the optional parameter "pageToken": Specifies a page
151061// token to use. Set `pageToken` to the `nextPageToken` returned by a
151062// previous list request to get the next page of results.
151063func (c *SubnetworksListCall) PageToken(pageToken string) *SubnetworksListCall {
151064	c.urlParams_.Set("pageToken", pageToken)
151065	return c
151066}
151067
151068// ReturnPartialSuccess sets the optional parameter
151069// "returnPartialSuccess": Opt-in for partial success behavior which
151070// provides partial results in case of failure. The default value is
151071// false.
151072func (c *SubnetworksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SubnetworksListCall {
151073	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
151074	return c
151075}
151076
151077// Fields allows partial responses to be retrieved. See
151078// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151079// for more information.
151080func (c *SubnetworksListCall) Fields(s ...googleapi.Field) *SubnetworksListCall {
151081	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151082	return c
151083}
151084
151085// IfNoneMatch sets the optional parameter which makes the operation
151086// fail if the object's ETag matches the given value. This is useful for
151087// getting updates only after the object has changed since the last
151088// request. Use googleapi.IsNotModified to check whether the response
151089// error from Do is the result of In-None-Match.
151090func (c *SubnetworksListCall) IfNoneMatch(entityTag string) *SubnetworksListCall {
151091	c.ifNoneMatch_ = entityTag
151092	return c
151093}
151094
151095// Context sets the context to be used in this call's Do method. Any
151096// pending HTTP request will be aborted if the provided context is
151097// canceled.
151098func (c *SubnetworksListCall) Context(ctx context.Context) *SubnetworksListCall {
151099	c.ctx_ = ctx
151100	return c
151101}
151102
151103// Header returns an http.Header that can be modified by the caller to
151104// add HTTP headers to the request.
151105func (c *SubnetworksListCall) Header() http.Header {
151106	if c.header_ == nil {
151107		c.header_ = make(http.Header)
151108	}
151109	return c.header_
151110}
151111
151112func (c *SubnetworksListCall) doRequest(alt string) (*http.Response, error) {
151113	reqHeaders := make(http.Header)
151114	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
151115	for k, v := range c.header_ {
151116		reqHeaders[k] = v
151117	}
151118	reqHeaders.Set("User-Agent", c.s.userAgent())
151119	if c.ifNoneMatch_ != "" {
151120		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
151121	}
151122	var body io.Reader = nil
151123	c.urlParams_.Set("alt", alt)
151124	c.urlParams_.Set("prettyPrint", "false")
151125	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks")
151126	urls += "?" + c.urlParams_.Encode()
151127	req, err := http.NewRequest("GET", urls, body)
151128	if err != nil {
151129		return nil, err
151130	}
151131	req.Header = reqHeaders
151132	googleapi.Expand(req.URL, map[string]string{
151133		"project": c.project,
151134		"region":  c.region,
151135	})
151136	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151137}
151138
151139// Do executes the "compute.subnetworks.list" call.
151140// Exactly one of *SubnetworkList or error will be non-nil. Any non-2xx
151141// status code is an error. Response headers are in either
151142// *SubnetworkList.ServerResponse.Header or (if a response was returned
151143// at all) in error.(*googleapi.Error).Header. Use
151144// googleapi.IsNotModified to check whether the returned error was
151145// because http.StatusNotModified was returned.
151146func (c *SubnetworksListCall) Do(opts ...googleapi.CallOption) (*SubnetworkList, error) {
151147	gensupport.SetOptions(c.urlParams_, opts...)
151148	res, err := c.doRequest("json")
151149	if res != nil && res.StatusCode == http.StatusNotModified {
151150		if res.Body != nil {
151151			res.Body.Close()
151152		}
151153		return nil, &googleapi.Error{
151154			Code:   res.StatusCode,
151155			Header: res.Header,
151156		}
151157	}
151158	if err != nil {
151159		return nil, err
151160	}
151161	defer googleapi.CloseBody(res)
151162	if err := googleapi.CheckResponse(res); err != nil {
151163		return nil, err
151164	}
151165	ret := &SubnetworkList{
151166		ServerResponse: googleapi.ServerResponse{
151167			Header:         res.Header,
151168			HTTPStatusCode: res.StatusCode,
151169		},
151170	}
151171	target := &ret
151172	if err := gensupport.DecodeResponse(target, res); err != nil {
151173		return nil, err
151174	}
151175	return ret, nil
151176	// {
151177	//   "description": "Retrieves a list of subnetworks available to the specified project.",
151178	//   "flatPath": "projects/{project}/regions/{region}/subnetworks",
151179	//   "httpMethod": "GET",
151180	//   "id": "compute.subnetworks.list",
151181	//   "parameterOrder": [
151182	//     "project",
151183	//     "region"
151184	//   ],
151185	//   "parameters": {
151186	//     "filter": {
151187	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
151188	//       "location": "query",
151189	//       "type": "string"
151190	//     },
151191	//     "maxResults": {
151192	//       "default": "500",
151193	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
151194	//       "format": "uint32",
151195	//       "location": "query",
151196	//       "minimum": "0",
151197	//       "type": "integer"
151198	//     },
151199	//     "orderBy": {
151200	//       "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.",
151201	//       "location": "query",
151202	//       "type": "string"
151203	//     },
151204	//     "pageToken": {
151205	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
151206	//       "location": "query",
151207	//       "type": "string"
151208	//     },
151209	//     "project": {
151210	//       "description": "Project ID for this request.",
151211	//       "location": "path",
151212	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151213	//       "required": true,
151214	//       "type": "string"
151215	//     },
151216	//     "region": {
151217	//       "description": "Name of the region scoping this request.",
151218	//       "location": "path",
151219	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
151220	//       "required": true,
151221	//       "type": "string"
151222	//     },
151223	//     "returnPartialSuccess": {
151224	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
151225	//       "location": "query",
151226	//       "type": "boolean"
151227	//     }
151228	//   },
151229	//   "path": "projects/{project}/regions/{region}/subnetworks",
151230	//   "response": {
151231	//     "$ref": "SubnetworkList"
151232	//   },
151233	//   "scopes": [
151234	//     "https://www.googleapis.com/auth/cloud-platform",
151235	//     "https://www.googleapis.com/auth/compute",
151236	//     "https://www.googleapis.com/auth/compute.readonly"
151237	//   ]
151238	// }
151239
151240}
151241
151242// Pages invokes f for each page of results.
151243// A non-nil error returned from f will halt the iteration.
151244// The provided context supersedes any context provided to the Context method.
151245func (c *SubnetworksListCall) Pages(ctx context.Context, f func(*SubnetworkList) error) error {
151246	c.ctx_ = ctx
151247	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
151248	for {
151249		x, err := c.Do()
151250		if err != nil {
151251			return err
151252		}
151253		if err := f(x); err != nil {
151254			return err
151255		}
151256		if x.NextPageToken == "" {
151257			return nil
151258		}
151259		c.PageToken(x.NextPageToken)
151260	}
151261}
151262
151263// method id "compute.subnetworks.listUsable":
151264
151265type SubnetworksListUsableCall struct {
151266	s            *Service
151267	project      string
151268	urlParams_   gensupport.URLParams
151269	ifNoneMatch_ string
151270	ctx_         context.Context
151271	header_      http.Header
151272}
151273
151274// ListUsable: Retrieves an aggregated list of all usable subnetworks in
151275// the project.
151276//
151277// - project: Project ID for this request.
151278func (r *SubnetworksService) ListUsable(project string) *SubnetworksListUsableCall {
151279	c := &SubnetworksListUsableCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151280	c.project = project
151281	return c
151282}
151283
151284// Filter sets the optional parameter "filter": A filter expression that
151285// filters resources listed in the response. The expression must specify
151286// the field name, a comparison operator, and the value that you want to
151287// use for filtering. The value must be a string, a number, or a
151288// boolean. The comparison operator must be either `=`, `!=`, `>`, or
151289// `<`. For example, if you are filtering Compute Engine instances, you
151290// can exclude instances named `example-instance` by specifying `name !=
151291// example-instance`. You can also filter nested fields. For example,
151292// you could specify `scheduling.automaticRestart = false` to include
151293// instances only if they are not scheduled for automatic restarts. You
151294// can use filtering on nested fields to filter based on resource
151295// labels. To filter on multiple expressions, provide each separate
151296// expression within parentheses. For example: ```
151297// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
151298// ``` By default, each expression is an `AND` expression. However, you
151299// can include `AND` and `OR` expressions explicitly. For example: ```
151300// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
151301// AND (scheduling.automaticRestart = true) ```
151302func (c *SubnetworksListUsableCall) Filter(filter string) *SubnetworksListUsableCall {
151303	c.urlParams_.Set("filter", filter)
151304	return c
151305}
151306
151307// MaxResults sets the optional parameter "maxResults": The maximum
151308// number of results per page that should be returned. If the number of
151309// available results is larger than `maxResults`, Compute Engine returns
151310// a `nextPageToken` that can be used to get the next page of results in
151311// subsequent list requests. Acceptable values are `0` to `500`,
151312// inclusive. (Default: `500`)
151313func (c *SubnetworksListUsableCall) MaxResults(maxResults int64) *SubnetworksListUsableCall {
151314	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
151315	return c
151316}
151317
151318// OrderBy sets the optional parameter "orderBy": Sorts list results by
151319// a certain order. By default, results are returned in alphanumerical
151320// order based on the resource name. You can also sort results in
151321// descending order based on the creation timestamp using
151322// `orderBy="creationTimestamp desc". This sorts results based on the
151323// `creationTimestamp` field in reverse chronological order (newest
151324// result first). Use this to sort resources like operations so that the
151325// newest operation is returned first. Currently, only sorting by `name`
151326// or `creationTimestamp desc` is supported.
151327func (c *SubnetworksListUsableCall) OrderBy(orderBy string) *SubnetworksListUsableCall {
151328	c.urlParams_.Set("orderBy", orderBy)
151329	return c
151330}
151331
151332// PageToken sets the optional parameter "pageToken": Specifies a page
151333// token to use. Set `pageToken` to the `nextPageToken` returned by a
151334// previous list request to get the next page of results.
151335func (c *SubnetworksListUsableCall) PageToken(pageToken string) *SubnetworksListUsableCall {
151336	c.urlParams_.Set("pageToken", pageToken)
151337	return c
151338}
151339
151340// ReturnPartialSuccess sets the optional parameter
151341// "returnPartialSuccess": Opt-in for partial success behavior which
151342// provides partial results in case of failure. The default value is
151343// false.
151344func (c *SubnetworksListUsableCall) ReturnPartialSuccess(returnPartialSuccess bool) *SubnetworksListUsableCall {
151345	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
151346	return c
151347}
151348
151349// Fields allows partial responses to be retrieved. See
151350// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151351// for more information.
151352func (c *SubnetworksListUsableCall) Fields(s ...googleapi.Field) *SubnetworksListUsableCall {
151353	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151354	return c
151355}
151356
151357// IfNoneMatch sets the optional parameter which makes the operation
151358// fail if the object's ETag matches the given value. This is useful for
151359// getting updates only after the object has changed since the last
151360// request. Use googleapi.IsNotModified to check whether the response
151361// error from Do is the result of In-None-Match.
151362func (c *SubnetworksListUsableCall) IfNoneMatch(entityTag string) *SubnetworksListUsableCall {
151363	c.ifNoneMatch_ = entityTag
151364	return c
151365}
151366
151367// Context sets the context to be used in this call's Do method. Any
151368// pending HTTP request will be aborted if the provided context is
151369// canceled.
151370func (c *SubnetworksListUsableCall) Context(ctx context.Context) *SubnetworksListUsableCall {
151371	c.ctx_ = ctx
151372	return c
151373}
151374
151375// Header returns an http.Header that can be modified by the caller to
151376// add HTTP headers to the request.
151377func (c *SubnetworksListUsableCall) Header() http.Header {
151378	if c.header_ == nil {
151379		c.header_ = make(http.Header)
151380	}
151381	return c.header_
151382}
151383
151384func (c *SubnetworksListUsableCall) doRequest(alt string) (*http.Response, error) {
151385	reqHeaders := make(http.Header)
151386	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
151387	for k, v := range c.header_ {
151388		reqHeaders[k] = v
151389	}
151390	reqHeaders.Set("User-Agent", c.s.userAgent())
151391	if c.ifNoneMatch_ != "" {
151392		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
151393	}
151394	var body io.Reader = nil
151395	c.urlParams_.Set("alt", alt)
151396	c.urlParams_.Set("prettyPrint", "false")
151397	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/subnetworks/listUsable")
151398	urls += "?" + c.urlParams_.Encode()
151399	req, err := http.NewRequest("GET", urls, body)
151400	if err != nil {
151401		return nil, err
151402	}
151403	req.Header = reqHeaders
151404	googleapi.Expand(req.URL, map[string]string{
151405		"project": c.project,
151406	})
151407	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151408}
151409
151410// Do executes the "compute.subnetworks.listUsable" call.
151411// Exactly one of *UsableSubnetworksAggregatedList or error will be
151412// non-nil. Any non-2xx status code is an error. Response headers are in
151413// either *UsableSubnetworksAggregatedList.ServerResponse.Header or (if
151414// a response was returned at all) in error.(*googleapi.Error).Header.
151415// Use googleapi.IsNotModified to check whether the returned error was
151416// because http.StatusNotModified was returned.
151417func (c *SubnetworksListUsableCall) Do(opts ...googleapi.CallOption) (*UsableSubnetworksAggregatedList, error) {
151418	gensupport.SetOptions(c.urlParams_, opts...)
151419	res, err := c.doRequest("json")
151420	if res != nil && res.StatusCode == http.StatusNotModified {
151421		if res.Body != nil {
151422			res.Body.Close()
151423		}
151424		return nil, &googleapi.Error{
151425			Code:   res.StatusCode,
151426			Header: res.Header,
151427		}
151428	}
151429	if err != nil {
151430		return nil, err
151431	}
151432	defer googleapi.CloseBody(res)
151433	if err := googleapi.CheckResponse(res); err != nil {
151434		return nil, err
151435	}
151436	ret := &UsableSubnetworksAggregatedList{
151437		ServerResponse: googleapi.ServerResponse{
151438			Header:         res.Header,
151439			HTTPStatusCode: res.StatusCode,
151440		},
151441	}
151442	target := &ret
151443	if err := gensupport.DecodeResponse(target, res); err != nil {
151444		return nil, err
151445	}
151446	return ret, nil
151447	// {
151448	//   "description": "Retrieves an aggregated list of all usable subnetworks in the project.",
151449	//   "flatPath": "projects/{project}/aggregated/subnetworks/listUsable",
151450	//   "httpMethod": "GET",
151451	//   "id": "compute.subnetworks.listUsable",
151452	//   "parameterOrder": [
151453	//     "project"
151454	//   ],
151455	//   "parameters": {
151456	//     "filter": {
151457	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
151458	//       "location": "query",
151459	//       "type": "string"
151460	//     },
151461	//     "maxResults": {
151462	//       "default": "500",
151463	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
151464	//       "format": "uint32",
151465	//       "location": "query",
151466	//       "minimum": "0",
151467	//       "type": "integer"
151468	//     },
151469	//     "orderBy": {
151470	//       "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.",
151471	//       "location": "query",
151472	//       "type": "string"
151473	//     },
151474	//     "pageToken": {
151475	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
151476	//       "location": "query",
151477	//       "type": "string"
151478	//     },
151479	//     "project": {
151480	//       "description": "Project ID for this request.",
151481	//       "location": "path",
151482	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151483	//       "required": true,
151484	//       "type": "string"
151485	//     },
151486	//     "returnPartialSuccess": {
151487	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
151488	//       "location": "query",
151489	//       "type": "boolean"
151490	//     }
151491	//   },
151492	//   "path": "projects/{project}/aggregated/subnetworks/listUsable",
151493	//   "response": {
151494	//     "$ref": "UsableSubnetworksAggregatedList"
151495	//   },
151496	//   "scopes": [
151497	//     "https://www.googleapis.com/auth/cloud-platform",
151498	//     "https://www.googleapis.com/auth/compute",
151499	//     "https://www.googleapis.com/auth/compute.readonly"
151500	//   ]
151501	// }
151502
151503}
151504
151505// Pages invokes f for each page of results.
151506// A non-nil error returned from f will halt the iteration.
151507// The provided context supersedes any context provided to the Context method.
151508func (c *SubnetworksListUsableCall) Pages(ctx context.Context, f func(*UsableSubnetworksAggregatedList) error) error {
151509	c.ctx_ = ctx
151510	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
151511	for {
151512		x, err := c.Do()
151513		if err != nil {
151514			return err
151515		}
151516		if err := f(x); err != nil {
151517			return err
151518		}
151519		if x.NextPageToken == "" {
151520			return nil
151521		}
151522		c.PageToken(x.NextPageToken)
151523	}
151524}
151525
151526// method id "compute.subnetworks.patch":
151527
151528type SubnetworksPatchCall struct {
151529	s           *Service
151530	project     string
151531	region      string
151532	subnetwork  string
151533	subnetwork2 *Subnetwork
151534	urlParams_  gensupport.URLParams
151535	ctx_        context.Context
151536	header_     http.Header
151537}
151538
151539// Patch: Patches the specified subnetwork with the data included in the
151540// request. Only certain fields can be updated with a patch request as
151541// indicated in the field descriptions. You must specify the current
151542// fingerprint of the subnetwork resource being patched.
151543//
151544// - project: Project ID for this request.
151545// - region: Name of the region scoping this request.
151546// - subnetwork: Name of the Subnetwork resource to patch.
151547func (r *SubnetworksService) Patch(project string, region string, subnetwork string, subnetwork2 *Subnetwork) *SubnetworksPatchCall {
151548	c := &SubnetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151549	c.project = project
151550	c.region = region
151551	c.subnetwork = subnetwork
151552	c.subnetwork2 = subnetwork2
151553	return c
151554}
151555
151556// DrainTimeoutSeconds sets the optional parameter
151557// "drainTimeoutSeconds": The drain timeout specifies the upper bound in
151558// seconds on the amount of time allowed to drain connections from the
151559// current ACTIVE subnetwork to the current BACKUP subnetwork. The drain
151560// timeout is only applicable when the following conditions are true: -
151561// the subnetwork being patched has purpose =
151562// INTERNAL_HTTPS_LOAD_BALANCER - the subnetwork being patched has role
151563// = BACKUP - the patch request is setting the role to ACTIVE. Note that
151564// after this patch operation the roles of the ACTIVE and BACKUP
151565// subnetworks will be swapped.
151566func (c *SubnetworksPatchCall) DrainTimeoutSeconds(drainTimeoutSeconds int64) *SubnetworksPatchCall {
151567	c.urlParams_.Set("drainTimeoutSeconds", fmt.Sprint(drainTimeoutSeconds))
151568	return c
151569}
151570
151571// RequestId sets the optional parameter "requestId": An optional
151572// request ID to identify requests. Specify a unique request ID so that
151573// if you must retry your request, the server will know to ignore the
151574// request if it has already been completed. For example, consider a
151575// situation where you make an initial request and the request times
151576// out. If you make the request again with the same request ID, the
151577// server can check if original operation with the same request ID was
151578// received, and if so, will ignore the second request. This prevents
151579// clients from accidentally creating duplicate commitments. The request
151580// ID must be a valid UUID with the exception that zero UUID is not
151581// supported ( 00000000-0000-0000-0000-000000000000).
151582func (c *SubnetworksPatchCall) RequestId(requestId string) *SubnetworksPatchCall {
151583	c.urlParams_.Set("requestId", requestId)
151584	return c
151585}
151586
151587// Fields allows partial responses to be retrieved. See
151588// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151589// for more information.
151590func (c *SubnetworksPatchCall) Fields(s ...googleapi.Field) *SubnetworksPatchCall {
151591	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151592	return c
151593}
151594
151595// Context sets the context to be used in this call's Do method. Any
151596// pending HTTP request will be aborted if the provided context is
151597// canceled.
151598func (c *SubnetworksPatchCall) Context(ctx context.Context) *SubnetworksPatchCall {
151599	c.ctx_ = ctx
151600	return c
151601}
151602
151603// Header returns an http.Header that can be modified by the caller to
151604// add HTTP headers to the request.
151605func (c *SubnetworksPatchCall) Header() http.Header {
151606	if c.header_ == nil {
151607		c.header_ = make(http.Header)
151608	}
151609	return c.header_
151610}
151611
151612func (c *SubnetworksPatchCall) doRequest(alt string) (*http.Response, error) {
151613	reqHeaders := make(http.Header)
151614	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
151615	for k, v := range c.header_ {
151616		reqHeaders[k] = v
151617	}
151618	reqHeaders.Set("User-Agent", c.s.userAgent())
151619	var body io.Reader = nil
151620	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetwork2)
151621	if err != nil {
151622		return nil, err
151623	}
151624	reqHeaders.Set("Content-Type", "application/json")
151625	c.urlParams_.Set("alt", alt)
151626	c.urlParams_.Set("prettyPrint", "false")
151627	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}")
151628	urls += "?" + c.urlParams_.Encode()
151629	req, err := http.NewRequest("PATCH", urls, body)
151630	if err != nil {
151631		return nil, err
151632	}
151633	req.Header = reqHeaders
151634	googleapi.Expand(req.URL, map[string]string{
151635		"project":    c.project,
151636		"region":     c.region,
151637		"subnetwork": c.subnetwork,
151638	})
151639	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151640}
151641
151642// Do executes the "compute.subnetworks.patch" call.
151643// Exactly one of *Operation or error will be non-nil. Any non-2xx
151644// status code is an error. Response headers are in either
151645// *Operation.ServerResponse.Header or (if a response was returned at
151646// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
151647// to check whether the returned error was because
151648// http.StatusNotModified was returned.
151649func (c *SubnetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
151650	gensupport.SetOptions(c.urlParams_, opts...)
151651	res, err := c.doRequest("json")
151652	if res != nil && res.StatusCode == http.StatusNotModified {
151653		if res.Body != nil {
151654			res.Body.Close()
151655		}
151656		return nil, &googleapi.Error{
151657			Code:   res.StatusCode,
151658			Header: res.Header,
151659		}
151660	}
151661	if err != nil {
151662		return nil, err
151663	}
151664	defer googleapi.CloseBody(res)
151665	if err := googleapi.CheckResponse(res); err != nil {
151666		return nil, err
151667	}
151668	ret := &Operation{
151669		ServerResponse: googleapi.ServerResponse{
151670			Header:         res.Header,
151671			HTTPStatusCode: res.StatusCode,
151672		},
151673	}
151674	target := &ret
151675	if err := gensupport.DecodeResponse(target, res); err != nil {
151676		return nil, err
151677	}
151678	return ret, nil
151679	// {
151680	//   "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.",
151681	//   "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}",
151682	//   "httpMethod": "PATCH",
151683	//   "id": "compute.subnetworks.patch",
151684	//   "parameterOrder": [
151685	//     "project",
151686	//     "region",
151687	//     "subnetwork"
151688	//   ],
151689	//   "parameters": {
151690	//     "drainTimeoutSeconds": {
151691	//       "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.",
151692	//       "format": "int32",
151693	//       "location": "query",
151694	//       "type": "integer"
151695	//     },
151696	//     "project": {
151697	//       "description": "Project ID for this request.",
151698	//       "location": "path",
151699	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151700	//       "required": true,
151701	//       "type": "string"
151702	//     },
151703	//     "region": {
151704	//       "description": "Name of the region scoping this request.",
151705	//       "location": "path",
151706	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
151707	//       "required": true,
151708	//       "type": "string"
151709	//     },
151710	//     "requestId": {
151711	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
151712	//       "location": "query",
151713	//       "type": "string"
151714	//     },
151715	//     "subnetwork": {
151716	//       "description": "Name of the Subnetwork resource to patch.",
151717	//       "location": "path",
151718	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151719	//       "required": true,
151720	//       "type": "string"
151721	//     }
151722	//   },
151723	//   "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}",
151724	//   "request": {
151725	//     "$ref": "Subnetwork"
151726	//   },
151727	//   "response": {
151728	//     "$ref": "Operation"
151729	//   },
151730	//   "scopes": [
151731	//     "https://www.googleapis.com/auth/cloud-platform",
151732	//     "https://www.googleapis.com/auth/compute"
151733	//   ]
151734	// }
151735
151736}
151737
151738// method id "compute.subnetworks.setIamPolicy":
151739
151740type SubnetworksSetIamPolicyCall struct {
151741	s                      *Service
151742	project                string
151743	region                 string
151744	resource               string
151745	regionsetpolicyrequest *RegionSetPolicyRequest
151746	urlParams_             gensupport.URLParams
151747	ctx_                   context.Context
151748	header_                http.Header
151749}
151750
151751// SetIamPolicy: Sets the access control policy on the specified
151752// resource. Replaces any existing policy.
151753//
151754// - project: Project ID for this request.
151755// - region: The name of the region for this request.
151756// - resource: Name or id of the resource for this request.
151757func (r *SubnetworksService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *SubnetworksSetIamPolicyCall {
151758	c := &SubnetworksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151759	c.project = project
151760	c.region = region
151761	c.resource = resource
151762	c.regionsetpolicyrequest = regionsetpolicyrequest
151763	return c
151764}
151765
151766// Fields allows partial responses to be retrieved. See
151767// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151768// for more information.
151769func (c *SubnetworksSetIamPolicyCall) Fields(s ...googleapi.Field) *SubnetworksSetIamPolicyCall {
151770	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151771	return c
151772}
151773
151774// Context sets the context to be used in this call's Do method. Any
151775// pending HTTP request will be aborted if the provided context is
151776// canceled.
151777func (c *SubnetworksSetIamPolicyCall) Context(ctx context.Context) *SubnetworksSetIamPolicyCall {
151778	c.ctx_ = ctx
151779	return c
151780}
151781
151782// Header returns an http.Header that can be modified by the caller to
151783// add HTTP headers to the request.
151784func (c *SubnetworksSetIamPolicyCall) Header() http.Header {
151785	if c.header_ == nil {
151786		c.header_ = make(http.Header)
151787	}
151788	return c.header_
151789}
151790
151791func (c *SubnetworksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
151792	reqHeaders := make(http.Header)
151793	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
151794	for k, v := range c.header_ {
151795		reqHeaders[k] = v
151796	}
151797	reqHeaders.Set("User-Agent", c.s.userAgent())
151798	var body io.Reader = nil
151799	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
151800	if err != nil {
151801		return nil, err
151802	}
151803	reqHeaders.Set("Content-Type", "application/json")
151804	c.urlParams_.Set("alt", alt)
151805	c.urlParams_.Set("prettyPrint", "false")
151806	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy")
151807	urls += "?" + c.urlParams_.Encode()
151808	req, err := http.NewRequest("POST", urls, body)
151809	if err != nil {
151810		return nil, err
151811	}
151812	req.Header = reqHeaders
151813	googleapi.Expand(req.URL, map[string]string{
151814		"project":  c.project,
151815		"region":   c.region,
151816		"resource": c.resource,
151817	})
151818	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151819}
151820
151821// Do executes the "compute.subnetworks.setIamPolicy" call.
151822// Exactly one of *Policy or error will be non-nil. Any non-2xx status
151823// code is an error. Response headers are in either
151824// *Policy.ServerResponse.Header or (if a response was returned at all)
151825// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
151826// check whether the returned error was because http.StatusNotModified
151827// was returned.
151828func (c *SubnetworksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
151829	gensupport.SetOptions(c.urlParams_, opts...)
151830	res, err := c.doRequest("json")
151831	if res != nil && res.StatusCode == http.StatusNotModified {
151832		if res.Body != nil {
151833			res.Body.Close()
151834		}
151835		return nil, &googleapi.Error{
151836			Code:   res.StatusCode,
151837			Header: res.Header,
151838		}
151839	}
151840	if err != nil {
151841		return nil, err
151842	}
151843	defer googleapi.CloseBody(res)
151844	if err := googleapi.CheckResponse(res); err != nil {
151845		return nil, err
151846	}
151847	ret := &Policy{
151848		ServerResponse: googleapi.ServerResponse{
151849			Header:         res.Header,
151850			HTTPStatusCode: res.StatusCode,
151851		},
151852	}
151853	target := &ret
151854	if err := gensupport.DecodeResponse(target, res); err != nil {
151855		return nil, err
151856	}
151857	return ret, nil
151858	// {
151859	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
151860	//   "flatPath": "projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy",
151861	//   "httpMethod": "POST",
151862	//   "id": "compute.subnetworks.setIamPolicy",
151863	//   "parameterOrder": [
151864	//     "project",
151865	//     "region",
151866	//     "resource"
151867	//   ],
151868	//   "parameters": {
151869	//     "project": {
151870	//       "description": "Project ID for this request.",
151871	//       "location": "path",
151872	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151873	//       "required": true,
151874	//       "type": "string"
151875	//     },
151876	//     "region": {
151877	//       "description": "The name of the region for this request.",
151878	//       "location": "path",
151879	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
151880	//       "required": true,
151881	//       "type": "string"
151882	//     },
151883	//     "resource": {
151884	//       "description": "Name or id of the resource for this request.",
151885	//       "location": "path",
151886	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151887	//       "required": true,
151888	//       "type": "string"
151889	//     }
151890	//   },
151891	//   "path": "projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy",
151892	//   "request": {
151893	//     "$ref": "RegionSetPolicyRequest"
151894	//   },
151895	//   "response": {
151896	//     "$ref": "Policy"
151897	//   },
151898	//   "scopes": [
151899	//     "https://www.googleapis.com/auth/cloud-platform",
151900	//     "https://www.googleapis.com/auth/compute"
151901	//   ]
151902	// }
151903
151904}
151905
151906// method id "compute.subnetworks.setPrivateIpGoogleAccess":
151907
151908type SubnetworksSetPrivateIpGoogleAccessCall struct {
151909	s                                          *Service
151910	project                                    string
151911	region                                     string
151912	subnetwork                                 string
151913	subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest
151914	urlParams_                                 gensupport.URLParams
151915	ctx_                                       context.Context
151916	header_                                    http.Header
151917}
151918
151919// SetPrivateIpGoogleAccess: Set whether VMs in this subnet can access
151920// Google services without assigning external IP addresses through
151921// Private Google Access.
151922//
151923// - project: Project ID for this request.
151924// - region: Name of the region scoping this request.
151925// - subnetwork: Name of the Subnetwork resource.
151926func (r *SubnetworksService) SetPrivateIpGoogleAccess(project string, region string, subnetwork string, subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest) *SubnetworksSetPrivateIpGoogleAccessCall {
151927	c := &SubnetworksSetPrivateIpGoogleAccessCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151928	c.project = project
151929	c.region = region
151930	c.subnetwork = subnetwork
151931	c.subnetworkssetprivateipgoogleaccessrequest = subnetworkssetprivateipgoogleaccessrequest
151932	return c
151933}
151934
151935// RequestId sets the optional parameter "requestId": An optional
151936// request ID to identify requests. Specify a unique request ID so that
151937// if you must retry your request, the server will know to ignore the
151938// request if it has already been completed. For example, consider a
151939// situation where you make an initial request and the request times
151940// out. If you make the request again with the same request ID, the
151941// server can check if original operation with the same request ID was
151942// received, and if so, will ignore the second request. This prevents
151943// clients from accidentally creating duplicate commitments. The request
151944// ID must be a valid UUID with the exception that zero UUID is not
151945// supported ( 00000000-0000-0000-0000-000000000000).
151946func (c *SubnetworksSetPrivateIpGoogleAccessCall) RequestId(requestId string) *SubnetworksSetPrivateIpGoogleAccessCall {
151947	c.urlParams_.Set("requestId", requestId)
151948	return c
151949}
151950
151951// Fields allows partial responses to be retrieved. See
151952// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151953// for more information.
151954func (c *SubnetworksSetPrivateIpGoogleAccessCall) Fields(s ...googleapi.Field) *SubnetworksSetPrivateIpGoogleAccessCall {
151955	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151956	return c
151957}
151958
151959// Context sets the context to be used in this call's Do method. Any
151960// pending HTTP request will be aborted if the provided context is
151961// canceled.
151962func (c *SubnetworksSetPrivateIpGoogleAccessCall) Context(ctx context.Context) *SubnetworksSetPrivateIpGoogleAccessCall {
151963	c.ctx_ = ctx
151964	return c
151965}
151966
151967// Header returns an http.Header that can be modified by the caller to
151968// add HTTP headers to the request.
151969func (c *SubnetworksSetPrivateIpGoogleAccessCall) Header() http.Header {
151970	if c.header_ == nil {
151971		c.header_ = make(http.Header)
151972	}
151973	return c.header_
151974}
151975
151976func (c *SubnetworksSetPrivateIpGoogleAccessCall) doRequest(alt string) (*http.Response, error) {
151977	reqHeaders := make(http.Header)
151978	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
151979	for k, v := range c.header_ {
151980		reqHeaders[k] = v
151981	}
151982	reqHeaders.Set("User-Agent", c.s.userAgent())
151983	var body io.Reader = nil
151984	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworkssetprivateipgoogleaccessrequest)
151985	if err != nil {
151986		return nil, err
151987	}
151988	reqHeaders.Set("Content-Type", "application/json")
151989	c.urlParams_.Set("alt", alt)
151990	c.urlParams_.Set("prettyPrint", "false")
151991	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess")
151992	urls += "?" + c.urlParams_.Encode()
151993	req, err := http.NewRequest("POST", urls, body)
151994	if err != nil {
151995		return nil, err
151996	}
151997	req.Header = reqHeaders
151998	googleapi.Expand(req.URL, map[string]string{
151999		"project":    c.project,
152000		"region":     c.region,
152001		"subnetwork": c.subnetwork,
152002	})
152003	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152004}
152005
152006// Do executes the "compute.subnetworks.setPrivateIpGoogleAccess" call.
152007// Exactly one of *Operation or error will be non-nil. Any non-2xx
152008// status code is an error. Response headers are in either
152009// *Operation.ServerResponse.Header or (if a response was returned at
152010// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
152011// to check whether the returned error was because
152012// http.StatusNotModified was returned.
152013func (c *SubnetworksSetPrivateIpGoogleAccessCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
152014	gensupport.SetOptions(c.urlParams_, opts...)
152015	res, err := c.doRequest("json")
152016	if res != nil && res.StatusCode == http.StatusNotModified {
152017		if res.Body != nil {
152018			res.Body.Close()
152019		}
152020		return nil, &googleapi.Error{
152021			Code:   res.StatusCode,
152022			Header: res.Header,
152023		}
152024	}
152025	if err != nil {
152026		return nil, err
152027	}
152028	defer googleapi.CloseBody(res)
152029	if err := googleapi.CheckResponse(res); err != nil {
152030		return nil, err
152031	}
152032	ret := &Operation{
152033		ServerResponse: googleapi.ServerResponse{
152034			Header:         res.Header,
152035			HTTPStatusCode: res.StatusCode,
152036		},
152037	}
152038	target := &ret
152039	if err := gensupport.DecodeResponse(target, res); err != nil {
152040		return nil, err
152041	}
152042	return ret, nil
152043	// {
152044	//   "description": "Set whether VMs in this subnet can access Google services without assigning external IP addresses through Private Google Access.",
152045	//   "flatPath": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess",
152046	//   "httpMethod": "POST",
152047	//   "id": "compute.subnetworks.setPrivateIpGoogleAccess",
152048	//   "parameterOrder": [
152049	//     "project",
152050	//     "region",
152051	//     "subnetwork"
152052	//   ],
152053	//   "parameters": {
152054	//     "project": {
152055	//       "description": "Project ID for this request.",
152056	//       "location": "path",
152057	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152058	//       "required": true,
152059	//       "type": "string"
152060	//     },
152061	//     "region": {
152062	//       "description": "Name of the region scoping this request.",
152063	//       "location": "path",
152064	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
152065	//       "required": true,
152066	//       "type": "string"
152067	//     },
152068	//     "requestId": {
152069	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
152070	//       "location": "query",
152071	//       "type": "string"
152072	//     },
152073	//     "subnetwork": {
152074	//       "description": "Name of the Subnetwork resource.",
152075	//       "location": "path",
152076	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152077	//       "required": true,
152078	//       "type": "string"
152079	//     }
152080	//   },
152081	//   "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess",
152082	//   "request": {
152083	//     "$ref": "SubnetworksSetPrivateIpGoogleAccessRequest"
152084	//   },
152085	//   "response": {
152086	//     "$ref": "Operation"
152087	//   },
152088	//   "scopes": [
152089	//     "https://www.googleapis.com/auth/cloud-platform",
152090	//     "https://www.googleapis.com/auth/compute"
152091	//   ]
152092	// }
152093
152094}
152095
152096// method id "compute.subnetworks.testIamPermissions":
152097
152098type SubnetworksTestIamPermissionsCall struct {
152099	s                      *Service
152100	project                string
152101	region                 string
152102	resource               string
152103	testpermissionsrequest *TestPermissionsRequest
152104	urlParams_             gensupport.URLParams
152105	ctx_                   context.Context
152106	header_                http.Header
152107}
152108
152109// TestIamPermissions: Returns permissions that a caller has on the
152110// specified resource.
152111//
152112// - project: Project ID for this request.
152113// - region: The name of the region for this request.
152114// - resource: Name or id of the resource for this request.
152115func (r *SubnetworksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *SubnetworksTestIamPermissionsCall {
152116	c := &SubnetworksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152117	c.project = project
152118	c.region = region
152119	c.resource = resource
152120	c.testpermissionsrequest = testpermissionsrequest
152121	return c
152122}
152123
152124// Fields allows partial responses to be retrieved. See
152125// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152126// for more information.
152127func (c *SubnetworksTestIamPermissionsCall) Fields(s ...googleapi.Field) *SubnetworksTestIamPermissionsCall {
152128	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152129	return c
152130}
152131
152132// Context sets the context to be used in this call's Do method. Any
152133// pending HTTP request will be aborted if the provided context is
152134// canceled.
152135func (c *SubnetworksTestIamPermissionsCall) Context(ctx context.Context) *SubnetworksTestIamPermissionsCall {
152136	c.ctx_ = ctx
152137	return c
152138}
152139
152140// Header returns an http.Header that can be modified by the caller to
152141// add HTTP headers to the request.
152142func (c *SubnetworksTestIamPermissionsCall) Header() http.Header {
152143	if c.header_ == nil {
152144		c.header_ = make(http.Header)
152145	}
152146	return c.header_
152147}
152148
152149func (c *SubnetworksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
152150	reqHeaders := make(http.Header)
152151	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
152152	for k, v := range c.header_ {
152153		reqHeaders[k] = v
152154	}
152155	reqHeaders.Set("User-Agent", c.s.userAgent())
152156	var body io.Reader = nil
152157	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
152158	if err != nil {
152159		return nil, err
152160	}
152161	reqHeaders.Set("Content-Type", "application/json")
152162	c.urlParams_.Set("alt", alt)
152163	c.urlParams_.Set("prettyPrint", "false")
152164	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions")
152165	urls += "?" + c.urlParams_.Encode()
152166	req, err := http.NewRequest("POST", urls, body)
152167	if err != nil {
152168		return nil, err
152169	}
152170	req.Header = reqHeaders
152171	googleapi.Expand(req.URL, map[string]string{
152172		"project":  c.project,
152173		"region":   c.region,
152174		"resource": c.resource,
152175	})
152176	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152177}
152178
152179// Do executes the "compute.subnetworks.testIamPermissions" call.
152180// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
152181// non-2xx status code is an error. Response headers are in either
152182// *TestPermissionsResponse.ServerResponse.Header or (if a response was
152183// returned at all) in error.(*googleapi.Error).Header. Use
152184// googleapi.IsNotModified to check whether the returned error was
152185// because http.StatusNotModified was returned.
152186func (c *SubnetworksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
152187	gensupport.SetOptions(c.urlParams_, opts...)
152188	res, err := c.doRequest("json")
152189	if res != nil && res.StatusCode == http.StatusNotModified {
152190		if res.Body != nil {
152191			res.Body.Close()
152192		}
152193		return nil, &googleapi.Error{
152194			Code:   res.StatusCode,
152195			Header: res.Header,
152196		}
152197	}
152198	if err != nil {
152199		return nil, err
152200	}
152201	defer googleapi.CloseBody(res)
152202	if err := googleapi.CheckResponse(res); err != nil {
152203		return nil, err
152204	}
152205	ret := &TestPermissionsResponse{
152206		ServerResponse: googleapi.ServerResponse{
152207			Header:         res.Header,
152208			HTTPStatusCode: res.StatusCode,
152209		},
152210	}
152211	target := &ret
152212	if err := gensupport.DecodeResponse(target, res); err != nil {
152213		return nil, err
152214	}
152215	return ret, nil
152216	// {
152217	//   "description": "Returns permissions that a caller has on the specified resource.",
152218	//   "flatPath": "projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions",
152219	//   "httpMethod": "POST",
152220	//   "id": "compute.subnetworks.testIamPermissions",
152221	//   "parameterOrder": [
152222	//     "project",
152223	//     "region",
152224	//     "resource"
152225	//   ],
152226	//   "parameters": {
152227	//     "project": {
152228	//       "description": "Project ID for this request.",
152229	//       "location": "path",
152230	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152231	//       "required": true,
152232	//       "type": "string"
152233	//     },
152234	//     "region": {
152235	//       "description": "The name of the region for this request.",
152236	//       "location": "path",
152237	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
152238	//       "required": true,
152239	//       "type": "string"
152240	//     },
152241	//     "resource": {
152242	//       "description": "Name or id of the resource for this request.",
152243	//       "location": "path",
152244	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152245	//       "required": true,
152246	//       "type": "string"
152247	//     }
152248	//   },
152249	//   "path": "projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions",
152250	//   "request": {
152251	//     "$ref": "TestPermissionsRequest"
152252	//   },
152253	//   "response": {
152254	//     "$ref": "TestPermissionsResponse"
152255	//   },
152256	//   "scopes": [
152257	//     "https://www.googleapis.com/auth/cloud-platform",
152258	//     "https://www.googleapis.com/auth/compute",
152259	//     "https://www.googleapis.com/auth/compute.readonly"
152260	//   ]
152261	// }
152262
152263}
152264
152265// method id "compute.targetGrpcProxies.delete":
152266
152267type TargetGrpcProxiesDeleteCall struct {
152268	s               *Service
152269	project         string
152270	targetGrpcProxy string
152271	urlParams_      gensupport.URLParams
152272	ctx_            context.Context
152273	header_         http.Header
152274}
152275
152276// Delete: Deletes the specified TargetGrpcProxy in the given scope
152277//
152278// - project: Project ID for this request.
152279// - targetGrpcProxy: Name of the TargetGrpcProxy resource to delete.
152280func (r *TargetGrpcProxiesService) Delete(project string, targetGrpcProxy string) *TargetGrpcProxiesDeleteCall {
152281	c := &TargetGrpcProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152282	c.project = project
152283	c.targetGrpcProxy = targetGrpcProxy
152284	return c
152285}
152286
152287// RequestId sets the optional parameter "requestId": An optional
152288// request ID to identify requests. Specify a unique request ID so that
152289// if you must retry your request, the server will know to ignore the
152290// request if it has already been completed. For example, consider a
152291// situation where you make an initial request and the request times
152292// out. If you make the request again with the same request ID, the
152293// server can check if original operation with the same request ID was
152294// received, and if so, will ignore the second request. This prevents
152295// clients from accidentally creating duplicate commitments. The request
152296// ID must be a valid UUID with the exception that zero UUID is not
152297// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
152298// MixerMutationRequestBuilder
152299func (c *TargetGrpcProxiesDeleteCall) RequestId(requestId string) *TargetGrpcProxiesDeleteCall {
152300	c.urlParams_.Set("requestId", requestId)
152301	return c
152302}
152303
152304// Fields allows partial responses to be retrieved. See
152305// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152306// for more information.
152307func (c *TargetGrpcProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesDeleteCall {
152308	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152309	return c
152310}
152311
152312// Context sets the context to be used in this call's Do method. Any
152313// pending HTTP request will be aborted if the provided context is
152314// canceled.
152315func (c *TargetGrpcProxiesDeleteCall) Context(ctx context.Context) *TargetGrpcProxiesDeleteCall {
152316	c.ctx_ = ctx
152317	return c
152318}
152319
152320// Header returns an http.Header that can be modified by the caller to
152321// add HTTP headers to the request.
152322func (c *TargetGrpcProxiesDeleteCall) Header() http.Header {
152323	if c.header_ == nil {
152324		c.header_ = make(http.Header)
152325	}
152326	return c.header_
152327}
152328
152329func (c *TargetGrpcProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
152330	reqHeaders := make(http.Header)
152331	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
152332	for k, v := range c.header_ {
152333		reqHeaders[k] = v
152334	}
152335	reqHeaders.Set("User-Agent", c.s.userAgent())
152336	var body io.Reader = nil
152337	c.urlParams_.Set("alt", alt)
152338	c.urlParams_.Set("prettyPrint", "false")
152339	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}")
152340	urls += "?" + c.urlParams_.Encode()
152341	req, err := http.NewRequest("DELETE", urls, body)
152342	if err != nil {
152343		return nil, err
152344	}
152345	req.Header = reqHeaders
152346	googleapi.Expand(req.URL, map[string]string{
152347		"project":         c.project,
152348		"targetGrpcProxy": c.targetGrpcProxy,
152349	})
152350	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152351}
152352
152353// Do executes the "compute.targetGrpcProxies.delete" call.
152354// Exactly one of *Operation or error will be non-nil. Any non-2xx
152355// status code is an error. Response headers are in either
152356// *Operation.ServerResponse.Header or (if a response was returned at
152357// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
152358// to check whether the returned error was because
152359// http.StatusNotModified was returned.
152360func (c *TargetGrpcProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
152361	gensupport.SetOptions(c.urlParams_, opts...)
152362	res, err := c.doRequest("json")
152363	if res != nil && res.StatusCode == http.StatusNotModified {
152364		if res.Body != nil {
152365			res.Body.Close()
152366		}
152367		return nil, &googleapi.Error{
152368			Code:   res.StatusCode,
152369			Header: res.Header,
152370		}
152371	}
152372	if err != nil {
152373		return nil, err
152374	}
152375	defer googleapi.CloseBody(res)
152376	if err := googleapi.CheckResponse(res); err != nil {
152377		return nil, err
152378	}
152379	ret := &Operation{
152380		ServerResponse: googleapi.ServerResponse{
152381			Header:         res.Header,
152382			HTTPStatusCode: res.StatusCode,
152383		},
152384	}
152385	target := &ret
152386	if err := gensupport.DecodeResponse(target, res); err != nil {
152387		return nil, err
152388	}
152389	return ret, nil
152390	// {
152391	//   "description": "Deletes the specified TargetGrpcProxy in the given scope",
152392	//   "flatPath": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}",
152393	//   "httpMethod": "DELETE",
152394	//   "id": "compute.targetGrpcProxies.delete",
152395	//   "parameterOrder": [
152396	//     "project",
152397	//     "targetGrpcProxy"
152398	//   ],
152399	//   "parameters": {
152400	//     "project": {
152401	//       "description": "Project ID for this request.",
152402	//       "location": "path",
152403	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152404	//       "required": true,
152405	//       "type": "string"
152406	//     },
152407	//     "requestId": {
152408	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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",
152409	//       "location": "query",
152410	//       "type": "string"
152411	//     },
152412	//     "targetGrpcProxy": {
152413	//       "description": "Name of the TargetGrpcProxy resource to delete.",
152414	//       "location": "path",
152415	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152416	//       "required": true,
152417	//       "type": "string"
152418	//     }
152419	//   },
152420	//   "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}",
152421	//   "response": {
152422	//     "$ref": "Operation"
152423	//   },
152424	//   "scopes": [
152425	//     "https://www.googleapis.com/auth/cloud-platform",
152426	//     "https://www.googleapis.com/auth/compute"
152427	//   ]
152428	// }
152429
152430}
152431
152432// method id "compute.targetGrpcProxies.get":
152433
152434type TargetGrpcProxiesGetCall struct {
152435	s               *Service
152436	project         string
152437	targetGrpcProxy string
152438	urlParams_      gensupport.URLParams
152439	ifNoneMatch_    string
152440	ctx_            context.Context
152441	header_         http.Header
152442}
152443
152444// Get: Returns the specified TargetGrpcProxy resource in the given
152445// scope.
152446//
152447// - project: Project ID for this request.
152448// - targetGrpcProxy: Name of the TargetGrpcProxy resource to return.
152449func (r *TargetGrpcProxiesService) Get(project string, targetGrpcProxy string) *TargetGrpcProxiesGetCall {
152450	c := &TargetGrpcProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152451	c.project = project
152452	c.targetGrpcProxy = targetGrpcProxy
152453	return c
152454}
152455
152456// Fields allows partial responses to be retrieved. See
152457// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152458// for more information.
152459func (c *TargetGrpcProxiesGetCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesGetCall {
152460	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152461	return c
152462}
152463
152464// IfNoneMatch sets the optional parameter which makes the operation
152465// fail if the object's ETag matches the given value. This is useful for
152466// getting updates only after the object has changed since the last
152467// request. Use googleapi.IsNotModified to check whether the response
152468// error from Do is the result of In-None-Match.
152469func (c *TargetGrpcProxiesGetCall) IfNoneMatch(entityTag string) *TargetGrpcProxiesGetCall {
152470	c.ifNoneMatch_ = entityTag
152471	return c
152472}
152473
152474// Context sets the context to be used in this call's Do method. Any
152475// pending HTTP request will be aborted if the provided context is
152476// canceled.
152477func (c *TargetGrpcProxiesGetCall) Context(ctx context.Context) *TargetGrpcProxiesGetCall {
152478	c.ctx_ = ctx
152479	return c
152480}
152481
152482// Header returns an http.Header that can be modified by the caller to
152483// add HTTP headers to the request.
152484func (c *TargetGrpcProxiesGetCall) Header() http.Header {
152485	if c.header_ == nil {
152486		c.header_ = make(http.Header)
152487	}
152488	return c.header_
152489}
152490
152491func (c *TargetGrpcProxiesGetCall) doRequest(alt string) (*http.Response, error) {
152492	reqHeaders := make(http.Header)
152493	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
152494	for k, v := range c.header_ {
152495		reqHeaders[k] = v
152496	}
152497	reqHeaders.Set("User-Agent", c.s.userAgent())
152498	if c.ifNoneMatch_ != "" {
152499		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
152500	}
152501	var body io.Reader = nil
152502	c.urlParams_.Set("alt", alt)
152503	c.urlParams_.Set("prettyPrint", "false")
152504	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}")
152505	urls += "?" + c.urlParams_.Encode()
152506	req, err := http.NewRequest("GET", urls, body)
152507	if err != nil {
152508		return nil, err
152509	}
152510	req.Header = reqHeaders
152511	googleapi.Expand(req.URL, map[string]string{
152512		"project":         c.project,
152513		"targetGrpcProxy": c.targetGrpcProxy,
152514	})
152515	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152516}
152517
152518// Do executes the "compute.targetGrpcProxies.get" call.
152519// Exactly one of *TargetGrpcProxy or error will be non-nil. Any non-2xx
152520// status code is an error. Response headers are in either
152521// *TargetGrpcProxy.ServerResponse.Header or (if a response was returned
152522// at all) in error.(*googleapi.Error).Header. Use
152523// googleapi.IsNotModified to check whether the returned error was
152524// because http.StatusNotModified was returned.
152525func (c *TargetGrpcProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetGrpcProxy, error) {
152526	gensupport.SetOptions(c.urlParams_, opts...)
152527	res, err := c.doRequest("json")
152528	if res != nil && res.StatusCode == http.StatusNotModified {
152529		if res.Body != nil {
152530			res.Body.Close()
152531		}
152532		return nil, &googleapi.Error{
152533			Code:   res.StatusCode,
152534			Header: res.Header,
152535		}
152536	}
152537	if err != nil {
152538		return nil, err
152539	}
152540	defer googleapi.CloseBody(res)
152541	if err := googleapi.CheckResponse(res); err != nil {
152542		return nil, err
152543	}
152544	ret := &TargetGrpcProxy{
152545		ServerResponse: googleapi.ServerResponse{
152546			Header:         res.Header,
152547			HTTPStatusCode: res.StatusCode,
152548		},
152549	}
152550	target := &ret
152551	if err := gensupport.DecodeResponse(target, res); err != nil {
152552		return nil, err
152553	}
152554	return ret, nil
152555	// {
152556	//   "description": "Returns the specified TargetGrpcProxy resource in the given scope.",
152557	//   "flatPath": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}",
152558	//   "httpMethod": "GET",
152559	//   "id": "compute.targetGrpcProxies.get",
152560	//   "parameterOrder": [
152561	//     "project",
152562	//     "targetGrpcProxy"
152563	//   ],
152564	//   "parameters": {
152565	//     "project": {
152566	//       "description": "Project ID for this request.",
152567	//       "location": "path",
152568	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152569	//       "required": true,
152570	//       "type": "string"
152571	//     },
152572	//     "targetGrpcProxy": {
152573	//       "description": "Name of the TargetGrpcProxy resource to return.",
152574	//       "location": "path",
152575	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152576	//       "required": true,
152577	//       "type": "string"
152578	//     }
152579	//   },
152580	//   "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}",
152581	//   "response": {
152582	//     "$ref": "TargetGrpcProxy"
152583	//   },
152584	//   "scopes": [
152585	//     "https://www.googleapis.com/auth/cloud-platform",
152586	//     "https://www.googleapis.com/auth/compute",
152587	//     "https://www.googleapis.com/auth/compute.readonly"
152588	//   ]
152589	// }
152590
152591}
152592
152593// method id "compute.targetGrpcProxies.insert":
152594
152595type TargetGrpcProxiesInsertCall struct {
152596	s               *Service
152597	project         string
152598	targetgrpcproxy *TargetGrpcProxy
152599	urlParams_      gensupport.URLParams
152600	ctx_            context.Context
152601	header_         http.Header
152602}
152603
152604// Insert: Creates a TargetGrpcProxy in the specified project in the
152605// given scope using the parameters that are included in the request.
152606//
152607// - project: Project ID for this request.
152608func (r *TargetGrpcProxiesService) Insert(project string, targetgrpcproxy *TargetGrpcProxy) *TargetGrpcProxiesInsertCall {
152609	c := &TargetGrpcProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152610	c.project = project
152611	c.targetgrpcproxy = targetgrpcproxy
152612	return c
152613}
152614
152615// RequestId sets the optional parameter "requestId": An optional
152616// request ID to identify requests. Specify a unique request ID so that
152617// if you must retry your request, the server will know to ignore the
152618// request if it has already been completed. For example, consider a
152619// situation where you make an initial request and the request times
152620// out. If you make the request again with the same request ID, the
152621// server can check if original operation with the same request ID was
152622// received, and if so, will ignore the second request. This prevents
152623// clients from accidentally creating duplicate commitments. The request
152624// ID must be a valid UUID with the exception that zero UUID is not
152625// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
152626// MixerMutationRequestBuilder
152627func (c *TargetGrpcProxiesInsertCall) RequestId(requestId string) *TargetGrpcProxiesInsertCall {
152628	c.urlParams_.Set("requestId", requestId)
152629	return c
152630}
152631
152632// Fields allows partial responses to be retrieved. See
152633// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152634// for more information.
152635func (c *TargetGrpcProxiesInsertCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesInsertCall {
152636	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152637	return c
152638}
152639
152640// Context sets the context to be used in this call's Do method. Any
152641// pending HTTP request will be aborted if the provided context is
152642// canceled.
152643func (c *TargetGrpcProxiesInsertCall) Context(ctx context.Context) *TargetGrpcProxiesInsertCall {
152644	c.ctx_ = ctx
152645	return c
152646}
152647
152648// Header returns an http.Header that can be modified by the caller to
152649// add HTTP headers to the request.
152650func (c *TargetGrpcProxiesInsertCall) Header() http.Header {
152651	if c.header_ == nil {
152652		c.header_ = make(http.Header)
152653	}
152654	return c.header_
152655}
152656
152657func (c *TargetGrpcProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
152658	reqHeaders := make(http.Header)
152659	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
152660	for k, v := range c.header_ {
152661		reqHeaders[k] = v
152662	}
152663	reqHeaders.Set("User-Agent", c.s.userAgent())
152664	var body io.Reader = nil
152665	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetgrpcproxy)
152666	if err != nil {
152667		return nil, err
152668	}
152669	reqHeaders.Set("Content-Type", "application/json")
152670	c.urlParams_.Set("alt", alt)
152671	c.urlParams_.Set("prettyPrint", "false")
152672	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies")
152673	urls += "?" + c.urlParams_.Encode()
152674	req, err := http.NewRequest("POST", urls, body)
152675	if err != nil {
152676		return nil, err
152677	}
152678	req.Header = reqHeaders
152679	googleapi.Expand(req.URL, map[string]string{
152680		"project": c.project,
152681	})
152682	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152683}
152684
152685// Do executes the "compute.targetGrpcProxies.insert" call.
152686// Exactly one of *Operation or error will be non-nil. Any non-2xx
152687// status code is an error. Response headers are in either
152688// *Operation.ServerResponse.Header or (if a response was returned at
152689// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
152690// to check whether the returned error was because
152691// http.StatusNotModified was returned.
152692func (c *TargetGrpcProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
152693	gensupport.SetOptions(c.urlParams_, opts...)
152694	res, err := c.doRequest("json")
152695	if res != nil && res.StatusCode == http.StatusNotModified {
152696		if res.Body != nil {
152697			res.Body.Close()
152698		}
152699		return nil, &googleapi.Error{
152700			Code:   res.StatusCode,
152701			Header: res.Header,
152702		}
152703	}
152704	if err != nil {
152705		return nil, err
152706	}
152707	defer googleapi.CloseBody(res)
152708	if err := googleapi.CheckResponse(res); err != nil {
152709		return nil, err
152710	}
152711	ret := &Operation{
152712		ServerResponse: googleapi.ServerResponse{
152713			Header:         res.Header,
152714			HTTPStatusCode: res.StatusCode,
152715		},
152716	}
152717	target := &ret
152718	if err := gensupport.DecodeResponse(target, res); err != nil {
152719		return nil, err
152720	}
152721	return ret, nil
152722	// {
152723	//   "description": "Creates a TargetGrpcProxy in the specified project in the given scope using the parameters that are included in the request.",
152724	//   "flatPath": "projects/{project}/global/targetGrpcProxies",
152725	//   "httpMethod": "POST",
152726	//   "id": "compute.targetGrpcProxies.insert",
152727	//   "parameterOrder": [
152728	//     "project"
152729	//   ],
152730	//   "parameters": {
152731	//     "project": {
152732	//       "description": "Project ID for this request.",
152733	//       "location": "path",
152734	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152735	//       "required": true,
152736	//       "type": "string"
152737	//     },
152738	//     "requestId": {
152739	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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",
152740	//       "location": "query",
152741	//       "type": "string"
152742	//     }
152743	//   },
152744	//   "path": "projects/{project}/global/targetGrpcProxies",
152745	//   "request": {
152746	//     "$ref": "TargetGrpcProxy"
152747	//   },
152748	//   "response": {
152749	//     "$ref": "Operation"
152750	//   },
152751	//   "scopes": [
152752	//     "https://www.googleapis.com/auth/cloud-platform",
152753	//     "https://www.googleapis.com/auth/compute"
152754	//   ]
152755	// }
152756
152757}
152758
152759// method id "compute.targetGrpcProxies.list":
152760
152761type TargetGrpcProxiesListCall struct {
152762	s            *Service
152763	project      string
152764	urlParams_   gensupport.URLParams
152765	ifNoneMatch_ string
152766	ctx_         context.Context
152767	header_      http.Header
152768}
152769
152770// List: Lists the TargetGrpcProxies for a project in the given scope.
152771//
152772// - project: Project ID for this request.
152773func (r *TargetGrpcProxiesService) List(project string) *TargetGrpcProxiesListCall {
152774	c := &TargetGrpcProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152775	c.project = project
152776	return c
152777}
152778
152779// Filter sets the optional parameter "filter": A filter expression that
152780// filters resources listed in the response. The expression must specify
152781// the field name, a comparison operator, and the value that you want to
152782// use for filtering. The value must be a string, a number, or a
152783// boolean. The comparison operator must be either `=`, `!=`, `>`, or
152784// `<`. For example, if you are filtering Compute Engine instances, you
152785// can exclude instances named `example-instance` by specifying `name !=
152786// example-instance`. You can also filter nested fields. For example,
152787// you could specify `scheduling.automaticRestart = false` to include
152788// instances only if they are not scheduled for automatic restarts. You
152789// can use filtering on nested fields to filter based on resource
152790// labels. To filter on multiple expressions, provide each separate
152791// expression within parentheses. For example: ```
152792// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
152793// ``` By default, each expression is an `AND` expression. However, you
152794// can include `AND` and `OR` expressions explicitly. For example: ```
152795// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
152796// AND (scheduling.automaticRestart = true) ```
152797func (c *TargetGrpcProxiesListCall) Filter(filter string) *TargetGrpcProxiesListCall {
152798	c.urlParams_.Set("filter", filter)
152799	return c
152800}
152801
152802// MaxResults sets the optional parameter "maxResults": The maximum
152803// number of results per page that should be returned. If the number of
152804// available results is larger than `maxResults`, Compute Engine returns
152805// a `nextPageToken` that can be used to get the next page of results in
152806// subsequent list requests. Acceptable values are `0` to `500`,
152807// inclusive. (Default: `500`)
152808func (c *TargetGrpcProxiesListCall) MaxResults(maxResults int64) *TargetGrpcProxiesListCall {
152809	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
152810	return c
152811}
152812
152813// OrderBy sets the optional parameter "orderBy": Sorts list results by
152814// a certain order. By default, results are returned in alphanumerical
152815// order based on the resource name. You can also sort results in
152816// descending order based on the creation timestamp using
152817// `orderBy="creationTimestamp desc". This sorts results based on the
152818// `creationTimestamp` field in reverse chronological order (newest
152819// result first). Use this to sort resources like operations so that the
152820// newest operation is returned first. Currently, only sorting by `name`
152821// or `creationTimestamp desc` is supported.
152822func (c *TargetGrpcProxiesListCall) OrderBy(orderBy string) *TargetGrpcProxiesListCall {
152823	c.urlParams_.Set("orderBy", orderBy)
152824	return c
152825}
152826
152827// PageToken sets the optional parameter "pageToken": Specifies a page
152828// token to use. Set `pageToken` to the `nextPageToken` returned by a
152829// previous list request to get the next page of results.
152830func (c *TargetGrpcProxiesListCall) PageToken(pageToken string) *TargetGrpcProxiesListCall {
152831	c.urlParams_.Set("pageToken", pageToken)
152832	return c
152833}
152834
152835// ReturnPartialSuccess sets the optional parameter
152836// "returnPartialSuccess": Opt-in for partial success behavior which
152837// provides partial results in case of failure. The default value is
152838// false.
152839func (c *TargetGrpcProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetGrpcProxiesListCall {
152840	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
152841	return c
152842}
152843
152844// Fields allows partial responses to be retrieved. See
152845// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152846// for more information.
152847func (c *TargetGrpcProxiesListCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesListCall {
152848	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152849	return c
152850}
152851
152852// IfNoneMatch sets the optional parameter which makes the operation
152853// fail if the object's ETag matches the given value. This is useful for
152854// getting updates only after the object has changed since the last
152855// request. Use googleapi.IsNotModified to check whether the response
152856// error from Do is the result of In-None-Match.
152857func (c *TargetGrpcProxiesListCall) IfNoneMatch(entityTag string) *TargetGrpcProxiesListCall {
152858	c.ifNoneMatch_ = entityTag
152859	return c
152860}
152861
152862// Context sets the context to be used in this call's Do method. Any
152863// pending HTTP request will be aborted if the provided context is
152864// canceled.
152865func (c *TargetGrpcProxiesListCall) Context(ctx context.Context) *TargetGrpcProxiesListCall {
152866	c.ctx_ = ctx
152867	return c
152868}
152869
152870// Header returns an http.Header that can be modified by the caller to
152871// add HTTP headers to the request.
152872func (c *TargetGrpcProxiesListCall) Header() http.Header {
152873	if c.header_ == nil {
152874		c.header_ = make(http.Header)
152875	}
152876	return c.header_
152877}
152878
152879func (c *TargetGrpcProxiesListCall) doRequest(alt string) (*http.Response, error) {
152880	reqHeaders := make(http.Header)
152881	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
152882	for k, v := range c.header_ {
152883		reqHeaders[k] = v
152884	}
152885	reqHeaders.Set("User-Agent", c.s.userAgent())
152886	if c.ifNoneMatch_ != "" {
152887		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
152888	}
152889	var body io.Reader = nil
152890	c.urlParams_.Set("alt", alt)
152891	c.urlParams_.Set("prettyPrint", "false")
152892	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies")
152893	urls += "?" + c.urlParams_.Encode()
152894	req, err := http.NewRequest("GET", urls, body)
152895	if err != nil {
152896		return nil, err
152897	}
152898	req.Header = reqHeaders
152899	googleapi.Expand(req.URL, map[string]string{
152900		"project": c.project,
152901	})
152902	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152903}
152904
152905// Do executes the "compute.targetGrpcProxies.list" call.
152906// Exactly one of *TargetGrpcProxyList or error will be non-nil. Any
152907// non-2xx status code is an error. Response headers are in either
152908// *TargetGrpcProxyList.ServerResponse.Header or (if a response was
152909// returned at all) in error.(*googleapi.Error).Header. Use
152910// googleapi.IsNotModified to check whether the returned error was
152911// because http.StatusNotModified was returned.
152912func (c *TargetGrpcProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetGrpcProxyList, error) {
152913	gensupport.SetOptions(c.urlParams_, opts...)
152914	res, err := c.doRequest("json")
152915	if res != nil && res.StatusCode == http.StatusNotModified {
152916		if res.Body != nil {
152917			res.Body.Close()
152918		}
152919		return nil, &googleapi.Error{
152920			Code:   res.StatusCode,
152921			Header: res.Header,
152922		}
152923	}
152924	if err != nil {
152925		return nil, err
152926	}
152927	defer googleapi.CloseBody(res)
152928	if err := googleapi.CheckResponse(res); err != nil {
152929		return nil, err
152930	}
152931	ret := &TargetGrpcProxyList{
152932		ServerResponse: googleapi.ServerResponse{
152933			Header:         res.Header,
152934			HTTPStatusCode: res.StatusCode,
152935		},
152936	}
152937	target := &ret
152938	if err := gensupport.DecodeResponse(target, res); err != nil {
152939		return nil, err
152940	}
152941	return ret, nil
152942	// {
152943	//   "description": "Lists the TargetGrpcProxies for a project in the given scope.",
152944	//   "flatPath": "projects/{project}/global/targetGrpcProxies",
152945	//   "httpMethod": "GET",
152946	//   "id": "compute.targetGrpcProxies.list",
152947	//   "parameterOrder": [
152948	//     "project"
152949	//   ],
152950	//   "parameters": {
152951	//     "filter": {
152952	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
152953	//       "location": "query",
152954	//       "type": "string"
152955	//     },
152956	//     "maxResults": {
152957	//       "default": "500",
152958	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
152959	//       "format": "uint32",
152960	//       "location": "query",
152961	//       "minimum": "0",
152962	//       "type": "integer"
152963	//     },
152964	//     "orderBy": {
152965	//       "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.",
152966	//       "location": "query",
152967	//       "type": "string"
152968	//     },
152969	//     "pageToken": {
152970	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
152971	//       "location": "query",
152972	//       "type": "string"
152973	//     },
152974	//     "project": {
152975	//       "description": "Project ID for this request.",
152976	//       "location": "path",
152977	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152978	//       "required": true,
152979	//       "type": "string"
152980	//     },
152981	//     "returnPartialSuccess": {
152982	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
152983	//       "location": "query",
152984	//       "type": "boolean"
152985	//     }
152986	//   },
152987	//   "path": "projects/{project}/global/targetGrpcProxies",
152988	//   "response": {
152989	//     "$ref": "TargetGrpcProxyList"
152990	//   },
152991	//   "scopes": [
152992	//     "https://www.googleapis.com/auth/cloud-platform",
152993	//     "https://www.googleapis.com/auth/compute",
152994	//     "https://www.googleapis.com/auth/compute.readonly"
152995	//   ]
152996	// }
152997
152998}
152999
153000// Pages invokes f for each page of results.
153001// A non-nil error returned from f will halt the iteration.
153002// The provided context supersedes any context provided to the Context method.
153003func (c *TargetGrpcProxiesListCall) Pages(ctx context.Context, f func(*TargetGrpcProxyList) error) error {
153004	c.ctx_ = ctx
153005	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
153006	for {
153007		x, err := c.Do()
153008		if err != nil {
153009			return err
153010		}
153011		if err := f(x); err != nil {
153012			return err
153013		}
153014		if x.NextPageToken == "" {
153015			return nil
153016		}
153017		c.PageToken(x.NextPageToken)
153018	}
153019}
153020
153021// method id "compute.targetGrpcProxies.patch":
153022
153023type TargetGrpcProxiesPatchCall struct {
153024	s               *Service
153025	project         string
153026	targetGrpcProxy string
153027	targetgrpcproxy *TargetGrpcProxy
153028	urlParams_      gensupport.URLParams
153029	ctx_            context.Context
153030	header_         http.Header
153031}
153032
153033// Patch: Patches the specified TargetGrpcProxy resource with the data
153034// included in the request. This method supports PATCH semantics and
153035// uses JSON merge patch format and processing rules.
153036//
153037// - project: Project ID for this request.
153038// - targetGrpcProxy: Name of the TargetGrpcProxy resource to patch.
153039func (r *TargetGrpcProxiesService) Patch(project string, targetGrpcProxy string, targetgrpcproxy *TargetGrpcProxy) *TargetGrpcProxiesPatchCall {
153040	c := &TargetGrpcProxiesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153041	c.project = project
153042	c.targetGrpcProxy = targetGrpcProxy
153043	c.targetgrpcproxy = targetgrpcproxy
153044	return c
153045}
153046
153047// RequestId sets the optional parameter "requestId": An optional
153048// request ID to identify requests. Specify a unique request ID so that
153049// if you must retry your request, the server will know to ignore the
153050// request if it has already been completed. For example, consider a
153051// situation where you make an initial request and the request times
153052// out. If you make the request again with the same request ID, the
153053// server can check if original operation with the same request ID was
153054// received, and if so, will ignore the second request. This prevents
153055// clients from accidentally creating duplicate commitments. The request
153056// ID must be a valid UUID with the exception that zero UUID is not
153057// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
153058// MixerMutationRequestBuilder
153059func (c *TargetGrpcProxiesPatchCall) RequestId(requestId string) *TargetGrpcProxiesPatchCall {
153060	c.urlParams_.Set("requestId", requestId)
153061	return c
153062}
153063
153064// Fields allows partial responses to be retrieved. See
153065// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153066// for more information.
153067func (c *TargetGrpcProxiesPatchCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesPatchCall {
153068	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153069	return c
153070}
153071
153072// Context sets the context to be used in this call's Do method. Any
153073// pending HTTP request will be aborted if the provided context is
153074// canceled.
153075func (c *TargetGrpcProxiesPatchCall) Context(ctx context.Context) *TargetGrpcProxiesPatchCall {
153076	c.ctx_ = ctx
153077	return c
153078}
153079
153080// Header returns an http.Header that can be modified by the caller to
153081// add HTTP headers to the request.
153082func (c *TargetGrpcProxiesPatchCall) Header() http.Header {
153083	if c.header_ == nil {
153084		c.header_ = make(http.Header)
153085	}
153086	return c.header_
153087}
153088
153089func (c *TargetGrpcProxiesPatchCall) doRequest(alt string) (*http.Response, error) {
153090	reqHeaders := make(http.Header)
153091	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
153092	for k, v := range c.header_ {
153093		reqHeaders[k] = v
153094	}
153095	reqHeaders.Set("User-Agent", c.s.userAgent())
153096	var body io.Reader = nil
153097	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetgrpcproxy)
153098	if err != nil {
153099		return nil, err
153100	}
153101	reqHeaders.Set("Content-Type", "application/json")
153102	c.urlParams_.Set("alt", alt)
153103	c.urlParams_.Set("prettyPrint", "false")
153104	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}")
153105	urls += "?" + c.urlParams_.Encode()
153106	req, err := http.NewRequest("PATCH", urls, body)
153107	if err != nil {
153108		return nil, err
153109	}
153110	req.Header = reqHeaders
153111	googleapi.Expand(req.URL, map[string]string{
153112		"project":         c.project,
153113		"targetGrpcProxy": c.targetGrpcProxy,
153114	})
153115	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153116}
153117
153118// Do executes the "compute.targetGrpcProxies.patch" call.
153119// Exactly one of *Operation or error will be non-nil. Any non-2xx
153120// status code is an error. Response headers are in either
153121// *Operation.ServerResponse.Header or (if a response was returned at
153122// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
153123// to check whether the returned error was because
153124// http.StatusNotModified was returned.
153125func (c *TargetGrpcProxiesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
153126	gensupport.SetOptions(c.urlParams_, opts...)
153127	res, err := c.doRequest("json")
153128	if res != nil && res.StatusCode == http.StatusNotModified {
153129		if res.Body != nil {
153130			res.Body.Close()
153131		}
153132		return nil, &googleapi.Error{
153133			Code:   res.StatusCode,
153134			Header: res.Header,
153135		}
153136	}
153137	if err != nil {
153138		return nil, err
153139	}
153140	defer googleapi.CloseBody(res)
153141	if err := googleapi.CheckResponse(res); err != nil {
153142		return nil, err
153143	}
153144	ret := &Operation{
153145		ServerResponse: googleapi.ServerResponse{
153146			Header:         res.Header,
153147			HTTPStatusCode: res.StatusCode,
153148		},
153149	}
153150	target := &ret
153151	if err := gensupport.DecodeResponse(target, res); err != nil {
153152		return nil, err
153153	}
153154	return ret, nil
153155	// {
153156	//   "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.",
153157	//   "flatPath": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}",
153158	//   "httpMethod": "PATCH",
153159	//   "id": "compute.targetGrpcProxies.patch",
153160	//   "parameterOrder": [
153161	//     "project",
153162	//     "targetGrpcProxy"
153163	//   ],
153164	//   "parameters": {
153165	//     "project": {
153166	//       "description": "Project ID for this request.",
153167	//       "location": "path",
153168	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153169	//       "required": true,
153170	//       "type": "string"
153171	//     },
153172	//     "requestId": {
153173	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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",
153174	//       "location": "query",
153175	//       "type": "string"
153176	//     },
153177	//     "targetGrpcProxy": {
153178	//       "description": "Name of the TargetGrpcProxy resource to patch.",
153179	//       "location": "path",
153180	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
153181	//       "required": true,
153182	//       "type": "string"
153183	//     }
153184	//   },
153185	//   "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}",
153186	//   "request": {
153187	//     "$ref": "TargetGrpcProxy"
153188	//   },
153189	//   "response": {
153190	//     "$ref": "Operation"
153191	//   },
153192	//   "scopes": [
153193	//     "https://www.googleapis.com/auth/cloud-platform",
153194	//     "https://www.googleapis.com/auth/compute"
153195	//   ]
153196	// }
153197
153198}
153199
153200// method id "compute.targetHttpProxies.aggregatedList":
153201
153202type TargetHttpProxiesAggregatedListCall struct {
153203	s            *Service
153204	project      string
153205	urlParams_   gensupport.URLParams
153206	ifNoneMatch_ string
153207	ctx_         context.Context
153208	header_      http.Header
153209}
153210
153211// AggregatedList: Retrieves the list of all TargetHttpProxy resources,
153212// regional and global, available to the specified project.
153213//
153214// - project: Name of the project scoping this request.
153215func (r *TargetHttpProxiesService) AggregatedList(project string) *TargetHttpProxiesAggregatedListCall {
153216	c := &TargetHttpProxiesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153217	c.project = project
153218	return c
153219}
153220
153221// Filter sets the optional parameter "filter": A filter expression that
153222// filters resources listed in the response. The expression must specify
153223// the field name, a comparison operator, and the value that you want to
153224// use for filtering. The value must be a string, a number, or a
153225// boolean. The comparison operator must be either `=`, `!=`, `>`, or
153226// `<`. For example, if you are filtering Compute Engine instances, you
153227// can exclude instances named `example-instance` by specifying `name !=
153228// example-instance`. You can also filter nested fields. For example,
153229// you could specify `scheduling.automaticRestart = false` to include
153230// instances only if they are not scheduled for automatic restarts. You
153231// can use filtering on nested fields to filter based on resource
153232// labels. To filter on multiple expressions, provide each separate
153233// expression within parentheses. For example: ```
153234// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
153235// ``` By default, each expression is an `AND` expression. However, you
153236// can include `AND` and `OR` expressions explicitly. For example: ```
153237// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
153238// AND (scheduling.automaticRestart = true) ```
153239func (c *TargetHttpProxiesAggregatedListCall) Filter(filter string) *TargetHttpProxiesAggregatedListCall {
153240	c.urlParams_.Set("filter", filter)
153241	return c
153242}
153243
153244// IncludeAllScopes sets the optional parameter "includeAllScopes":
153245// Indicates whether every visible scope for each scope type (zone,
153246// region, global) should be included in the response. For new resource
153247// types added after this field, the flag has no effect as new resource
153248// types will always include every visible scope for each scope type in
153249// response. For resource types which predate this field, if this flag
153250// is omitted or false, only scopes of the scope types where the
153251// resource type is expected to be found will be included.
153252func (c *TargetHttpProxiesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetHttpProxiesAggregatedListCall {
153253	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
153254	return c
153255}
153256
153257// MaxResults sets the optional parameter "maxResults": The maximum
153258// number of results per page that should be returned. If the number of
153259// available results is larger than `maxResults`, Compute Engine returns
153260// a `nextPageToken` that can be used to get the next page of results in
153261// subsequent list requests. Acceptable values are `0` to `500`,
153262// inclusive. (Default: `500`)
153263func (c *TargetHttpProxiesAggregatedListCall) MaxResults(maxResults int64) *TargetHttpProxiesAggregatedListCall {
153264	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
153265	return c
153266}
153267
153268// OrderBy sets the optional parameter "orderBy": Sorts list results by
153269// a certain order. By default, results are returned in alphanumerical
153270// order based on the resource name. You can also sort results in
153271// descending order based on the creation timestamp using
153272// `orderBy="creationTimestamp desc". This sorts results based on the
153273// `creationTimestamp` field in reverse chronological order (newest
153274// result first). Use this to sort resources like operations so that the
153275// newest operation is returned first. Currently, only sorting by `name`
153276// or `creationTimestamp desc` is supported.
153277func (c *TargetHttpProxiesAggregatedListCall) OrderBy(orderBy string) *TargetHttpProxiesAggregatedListCall {
153278	c.urlParams_.Set("orderBy", orderBy)
153279	return c
153280}
153281
153282// PageToken sets the optional parameter "pageToken": Specifies a page
153283// token to use. Set `pageToken` to the `nextPageToken` returned by a
153284// previous list request to get the next page of results.
153285func (c *TargetHttpProxiesAggregatedListCall) PageToken(pageToken string) *TargetHttpProxiesAggregatedListCall {
153286	c.urlParams_.Set("pageToken", pageToken)
153287	return c
153288}
153289
153290// ReturnPartialSuccess sets the optional parameter
153291// "returnPartialSuccess": Opt-in for partial success behavior which
153292// provides partial results in case of failure. The default value is
153293// false.
153294func (c *TargetHttpProxiesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpProxiesAggregatedListCall {
153295	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
153296	return c
153297}
153298
153299// Fields allows partial responses to be retrieved. See
153300// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153301// for more information.
153302func (c *TargetHttpProxiesAggregatedListCall) Fields(s ...googleapi.Field) *TargetHttpProxiesAggregatedListCall {
153303	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153304	return c
153305}
153306
153307// IfNoneMatch sets the optional parameter which makes the operation
153308// fail if the object's ETag matches the given value. This is useful for
153309// getting updates only after the object has changed since the last
153310// request. Use googleapi.IsNotModified to check whether the response
153311// error from Do is the result of In-None-Match.
153312func (c *TargetHttpProxiesAggregatedListCall) IfNoneMatch(entityTag string) *TargetHttpProxiesAggregatedListCall {
153313	c.ifNoneMatch_ = entityTag
153314	return c
153315}
153316
153317// Context sets the context to be used in this call's Do method. Any
153318// pending HTTP request will be aborted if the provided context is
153319// canceled.
153320func (c *TargetHttpProxiesAggregatedListCall) Context(ctx context.Context) *TargetHttpProxiesAggregatedListCall {
153321	c.ctx_ = ctx
153322	return c
153323}
153324
153325// Header returns an http.Header that can be modified by the caller to
153326// add HTTP headers to the request.
153327func (c *TargetHttpProxiesAggregatedListCall) Header() http.Header {
153328	if c.header_ == nil {
153329		c.header_ = make(http.Header)
153330	}
153331	return c.header_
153332}
153333
153334func (c *TargetHttpProxiesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
153335	reqHeaders := make(http.Header)
153336	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
153337	for k, v := range c.header_ {
153338		reqHeaders[k] = v
153339	}
153340	reqHeaders.Set("User-Agent", c.s.userAgent())
153341	if c.ifNoneMatch_ != "" {
153342		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
153343	}
153344	var body io.Reader = nil
153345	c.urlParams_.Set("alt", alt)
153346	c.urlParams_.Set("prettyPrint", "false")
153347	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetHttpProxies")
153348	urls += "?" + c.urlParams_.Encode()
153349	req, err := http.NewRequest("GET", urls, body)
153350	if err != nil {
153351		return nil, err
153352	}
153353	req.Header = reqHeaders
153354	googleapi.Expand(req.URL, map[string]string{
153355		"project": c.project,
153356	})
153357	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153358}
153359
153360// Do executes the "compute.targetHttpProxies.aggregatedList" call.
153361// Exactly one of *TargetHttpProxyAggregatedList or error will be
153362// non-nil. Any non-2xx status code is an error. Response headers are in
153363// either *TargetHttpProxyAggregatedList.ServerResponse.Header or (if a
153364// response was returned at all) in error.(*googleapi.Error).Header. Use
153365// googleapi.IsNotModified to check whether the returned error was
153366// because http.StatusNotModified was returned.
153367func (c *TargetHttpProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyAggregatedList, error) {
153368	gensupport.SetOptions(c.urlParams_, opts...)
153369	res, err := c.doRequest("json")
153370	if res != nil && res.StatusCode == http.StatusNotModified {
153371		if res.Body != nil {
153372			res.Body.Close()
153373		}
153374		return nil, &googleapi.Error{
153375			Code:   res.StatusCode,
153376			Header: res.Header,
153377		}
153378	}
153379	if err != nil {
153380		return nil, err
153381	}
153382	defer googleapi.CloseBody(res)
153383	if err := googleapi.CheckResponse(res); err != nil {
153384		return nil, err
153385	}
153386	ret := &TargetHttpProxyAggregatedList{
153387		ServerResponse: googleapi.ServerResponse{
153388			Header:         res.Header,
153389			HTTPStatusCode: res.StatusCode,
153390		},
153391	}
153392	target := &ret
153393	if err := gensupport.DecodeResponse(target, res); err != nil {
153394		return nil, err
153395	}
153396	return ret, nil
153397	// {
153398	//   "description": "Retrieves the list of all TargetHttpProxy resources, regional and global, available to the specified project.",
153399	//   "flatPath": "projects/{project}/aggregated/targetHttpProxies",
153400	//   "httpMethod": "GET",
153401	//   "id": "compute.targetHttpProxies.aggregatedList",
153402	//   "parameterOrder": [
153403	//     "project"
153404	//   ],
153405	//   "parameters": {
153406	//     "filter": {
153407	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
153408	//       "location": "query",
153409	//       "type": "string"
153410	//     },
153411	//     "includeAllScopes": {
153412	//       "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.",
153413	//       "location": "query",
153414	//       "type": "boolean"
153415	//     },
153416	//     "maxResults": {
153417	//       "default": "500",
153418	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
153419	//       "format": "uint32",
153420	//       "location": "query",
153421	//       "minimum": "0",
153422	//       "type": "integer"
153423	//     },
153424	//     "orderBy": {
153425	//       "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.",
153426	//       "location": "query",
153427	//       "type": "string"
153428	//     },
153429	//     "pageToken": {
153430	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
153431	//       "location": "query",
153432	//       "type": "string"
153433	//     },
153434	//     "project": {
153435	//       "description": "Name of the project scoping this request.",
153436	//       "location": "path",
153437	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153438	//       "required": true,
153439	//       "type": "string"
153440	//     },
153441	//     "returnPartialSuccess": {
153442	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
153443	//       "location": "query",
153444	//       "type": "boolean"
153445	//     }
153446	//   },
153447	//   "path": "projects/{project}/aggregated/targetHttpProxies",
153448	//   "response": {
153449	//     "$ref": "TargetHttpProxyAggregatedList"
153450	//   },
153451	//   "scopes": [
153452	//     "https://www.googleapis.com/auth/cloud-platform",
153453	//     "https://www.googleapis.com/auth/compute",
153454	//     "https://www.googleapis.com/auth/compute.readonly"
153455	//   ]
153456	// }
153457
153458}
153459
153460// Pages invokes f for each page of results.
153461// A non-nil error returned from f will halt the iteration.
153462// The provided context supersedes any context provided to the Context method.
153463func (c *TargetHttpProxiesAggregatedListCall) Pages(ctx context.Context, f func(*TargetHttpProxyAggregatedList) error) error {
153464	c.ctx_ = ctx
153465	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
153466	for {
153467		x, err := c.Do()
153468		if err != nil {
153469			return err
153470		}
153471		if err := f(x); err != nil {
153472			return err
153473		}
153474		if x.NextPageToken == "" {
153475			return nil
153476		}
153477		c.PageToken(x.NextPageToken)
153478	}
153479}
153480
153481// method id "compute.targetHttpProxies.delete":
153482
153483type TargetHttpProxiesDeleteCall struct {
153484	s               *Service
153485	project         string
153486	targetHttpProxy string
153487	urlParams_      gensupport.URLParams
153488	ctx_            context.Context
153489	header_         http.Header
153490}
153491
153492// Delete: Deletes the specified TargetHttpProxy resource.
153493//
153494// - project: Project ID for this request.
153495// - targetHttpProxy: Name of the TargetHttpProxy resource to delete.
153496func (r *TargetHttpProxiesService) Delete(project string, targetHttpProxy string) *TargetHttpProxiesDeleteCall {
153497	c := &TargetHttpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153498	c.project = project
153499	c.targetHttpProxy = targetHttpProxy
153500	return c
153501}
153502
153503// RequestId sets the optional parameter "requestId": An optional
153504// request ID to identify requests. Specify a unique request ID so that
153505// if you must retry your request, the server will know to ignore the
153506// request if it has already been completed. For example, consider a
153507// situation where you make an initial request and the request times
153508// out. If you make the request again with the same request ID, the
153509// server can check if original operation with the same request ID was
153510// received, and if so, will ignore the second request. This prevents
153511// clients from accidentally creating duplicate commitments. The request
153512// ID must be a valid UUID with the exception that zero UUID is not
153513// supported ( 00000000-0000-0000-0000-000000000000).
153514func (c *TargetHttpProxiesDeleteCall) RequestId(requestId string) *TargetHttpProxiesDeleteCall {
153515	c.urlParams_.Set("requestId", requestId)
153516	return c
153517}
153518
153519// Fields allows partial responses to be retrieved. See
153520// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153521// for more information.
153522func (c *TargetHttpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpProxiesDeleteCall {
153523	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153524	return c
153525}
153526
153527// Context sets the context to be used in this call's Do method. Any
153528// pending HTTP request will be aborted if the provided context is
153529// canceled.
153530func (c *TargetHttpProxiesDeleteCall) Context(ctx context.Context) *TargetHttpProxiesDeleteCall {
153531	c.ctx_ = ctx
153532	return c
153533}
153534
153535// Header returns an http.Header that can be modified by the caller to
153536// add HTTP headers to the request.
153537func (c *TargetHttpProxiesDeleteCall) Header() http.Header {
153538	if c.header_ == nil {
153539		c.header_ = make(http.Header)
153540	}
153541	return c.header_
153542}
153543
153544func (c *TargetHttpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
153545	reqHeaders := make(http.Header)
153546	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
153547	for k, v := range c.header_ {
153548		reqHeaders[k] = v
153549	}
153550	reqHeaders.Set("User-Agent", c.s.userAgent())
153551	var body io.Reader = nil
153552	c.urlParams_.Set("alt", alt)
153553	c.urlParams_.Set("prettyPrint", "false")
153554	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies/{targetHttpProxy}")
153555	urls += "?" + c.urlParams_.Encode()
153556	req, err := http.NewRequest("DELETE", urls, body)
153557	if err != nil {
153558		return nil, err
153559	}
153560	req.Header = reqHeaders
153561	googleapi.Expand(req.URL, map[string]string{
153562		"project":         c.project,
153563		"targetHttpProxy": c.targetHttpProxy,
153564	})
153565	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153566}
153567
153568// Do executes the "compute.targetHttpProxies.delete" call.
153569// Exactly one of *Operation or error will be non-nil. Any non-2xx
153570// status code is an error. Response headers are in either
153571// *Operation.ServerResponse.Header or (if a response was returned at
153572// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
153573// to check whether the returned error was because
153574// http.StatusNotModified was returned.
153575func (c *TargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
153576	gensupport.SetOptions(c.urlParams_, opts...)
153577	res, err := c.doRequest("json")
153578	if res != nil && res.StatusCode == http.StatusNotModified {
153579		if res.Body != nil {
153580			res.Body.Close()
153581		}
153582		return nil, &googleapi.Error{
153583			Code:   res.StatusCode,
153584			Header: res.Header,
153585		}
153586	}
153587	if err != nil {
153588		return nil, err
153589	}
153590	defer googleapi.CloseBody(res)
153591	if err := googleapi.CheckResponse(res); err != nil {
153592		return nil, err
153593	}
153594	ret := &Operation{
153595		ServerResponse: googleapi.ServerResponse{
153596			Header:         res.Header,
153597			HTTPStatusCode: res.StatusCode,
153598		},
153599	}
153600	target := &ret
153601	if err := gensupport.DecodeResponse(target, res); err != nil {
153602		return nil, err
153603	}
153604	return ret, nil
153605	// {
153606	//   "description": "Deletes the specified TargetHttpProxy resource.",
153607	//   "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}",
153608	//   "httpMethod": "DELETE",
153609	//   "id": "compute.targetHttpProxies.delete",
153610	//   "parameterOrder": [
153611	//     "project",
153612	//     "targetHttpProxy"
153613	//   ],
153614	//   "parameters": {
153615	//     "project": {
153616	//       "description": "Project ID for this request.",
153617	//       "location": "path",
153618	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153619	//       "required": true,
153620	//       "type": "string"
153621	//     },
153622	//     "requestId": {
153623	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
153624	//       "location": "query",
153625	//       "type": "string"
153626	//     },
153627	//     "targetHttpProxy": {
153628	//       "description": "Name of the TargetHttpProxy resource to delete.",
153629	//       "location": "path",
153630	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
153631	//       "required": true,
153632	//       "type": "string"
153633	//     }
153634	//   },
153635	//   "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}",
153636	//   "response": {
153637	//     "$ref": "Operation"
153638	//   },
153639	//   "scopes": [
153640	//     "https://www.googleapis.com/auth/cloud-platform",
153641	//     "https://www.googleapis.com/auth/compute"
153642	//   ]
153643	// }
153644
153645}
153646
153647// method id "compute.targetHttpProxies.get":
153648
153649type TargetHttpProxiesGetCall struct {
153650	s               *Service
153651	project         string
153652	targetHttpProxy string
153653	urlParams_      gensupport.URLParams
153654	ifNoneMatch_    string
153655	ctx_            context.Context
153656	header_         http.Header
153657}
153658
153659// Get: Returns the specified TargetHttpProxy resource. Gets a list of
153660// available target HTTP proxies by making a list() request.
153661//
153662// - project: Project ID for this request.
153663// - targetHttpProxy: Name of the TargetHttpProxy resource to return.
153664func (r *TargetHttpProxiesService) Get(project string, targetHttpProxy string) *TargetHttpProxiesGetCall {
153665	c := &TargetHttpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153666	c.project = project
153667	c.targetHttpProxy = targetHttpProxy
153668	return c
153669}
153670
153671// Fields allows partial responses to be retrieved. See
153672// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153673// for more information.
153674func (c *TargetHttpProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpProxiesGetCall {
153675	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153676	return c
153677}
153678
153679// IfNoneMatch sets the optional parameter which makes the operation
153680// fail if the object's ETag matches the given value. This is useful for
153681// getting updates only after the object has changed since the last
153682// request. Use googleapi.IsNotModified to check whether the response
153683// error from Do is the result of In-None-Match.
153684func (c *TargetHttpProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpProxiesGetCall {
153685	c.ifNoneMatch_ = entityTag
153686	return c
153687}
153688
153689// Context sets the context to be used in this call's Do method. Any
153690// pending HTTP request will be aborted if the provided context is
153691// canceled.
153692func (c *TargetHttpProxiesGetCall) Context(ctx context.Context) *TargetHttpProxiesGetCall {
153693	c.ctx_ = ctx
153694	return c
153695}
153696
153697// Header returns an http.Header that can be modified by the caller to
153698// add HTTP headers to the request.
153699func (c *TargetHttpProxiesGetCall) Header() http.Header {
153700	if c.header_ == nil {
153701		c.header_ = make(http.Header)
153702	}
153703	return c.header_
153704}
153705
153706func (c *TargetHttpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
153707	reqHeaders := make(http.Header)
153708	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
153709	for k, v := range c.header_ {
153710		reqHeaders[k] = v
153711	}
153712	reqHeaders.Set("User-Agent", c.s.userAgent())
153713	if c.ifNoneMatch_ != "" {
153714		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
153715	}
153716	var body io.Reader = nil
153717	c.urlParams_.Set("alt", alt)
153718	c.urlParams_.Set("prettyPrint", "false")
153719	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies/{targetHttpProxy}")
153720	urls += "?" + c.urlParams_.Encode()
153721	req, err := http.NewRequest("GET", urls, body)
153722	if err != nil {
153723		return nil, err
153724	}
153725	req.Header = reqHeaders
153726	googleapi.Expand(req.URL, map[string]string{
153727		"project":         c.project,
153728		"targetHttpProxy": c.targetHttpProxy,
153729	})
153730	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153731}
153732
153733// Do executes the "compute.targetHttpProxies.get" call.
153734// Exactly one of *TargetHttpProxy or error will be non-nil. Any non-2xx
153735// status code is an error. Response headers are in either
153736// *TargetHttpProxy.ServerResponse.Header or (if a response was returned
153737// at all) in error.(*googleapi.Error).Header. Use
153738// googleapi.IsNotModified to check whether the returned error was
153739// because http.StatusNotModified was returned.
153740func (c *TargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxy, error) {
153741	gensupport.SetOptions(c.urlParams_, opts...)
153742	res, err := c.doRequest("json")
153743	if res != nil && res.StatusCode == http.StatusNotModified {
153744		if res.Body != nil {
153745			res.Body.Close()
153746		}
153747		return nil, &googleapi.Error{
153748			Code:   res.StatusCode,
153749			Header: res.Header,
153750		}
153751	}
153752	if err != nil {
153753		return nil, err
153754	}
153755	defer googleapi.CloseBody(res)
153756	if err := googleapi.CheckResponse(res); err != nil {
153757		return nil, err
153758	}
153759	ret := &TargetHttpProxy{
153760		ServerResponse: googleapi.ServerResponse{
153761			Header:         res.Header,
153762			HTTPStatusCode: res.StatusCode,
153763		},
153764	}
153765	target := &ret
153766	if err := gensupport.DecodeResponse(target, res); err != nil {
153767		return nil, err
153768	}
153769	return ret, nil
153770	// {
153771	//   "description": "Returns the specified TargetHttpProxy resource. Gets a list of available target HTTP proxies by making a list() request.",
153772	//   "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}",
153773	//   "httpMethod": "GET",
153774	//   "id": "compute.targetHttpProxies.get",
153775	//   "parameterOrder": [
153776	//     "project",
153777	//     "targetHttpProxy"
153778	//   ],
153779	//   "parameters": {
153780	//     "project": {
153781	//       "description": "Project ID for this request.",
153782	//       "location": "path",
153783	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153784	//       "required": true,
153785	//       "type": "string"
153786	//     },
153787	//     "targetHttpProxy": {
153788	//       "description": "Name of the TargetHttpProxy resource to return.",
153789	//       "location": "path",
153790	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
153791	//       "required": true,
153792	//       "type": "string"
153793	//     }
153794	//   },
153795	//   "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}",
153796	//   "response": {
153797	//     "$ref": "TargetHttpProxy"
153798	//   },
153799	//   "scopes": [
153800	//     "https://www.googleapis.com/auth/cloud-platform",
153801	//     "https://www.googleapis.com/auth/compute",
153802	//     "https://www.googleapis.com/auth/compute.readonly"
153803	//   ]
153804	// }
153805
153806}
153807
153808// method id "compute.targetHttpProxies.insert":
153809
153810type TargetHttpProxiesInsertCall struct {
153811	s               *Service
153812	project         string
153813	targethttpproxy *TargetHttpProxy
153814	urlParams_      gensupport.URLParams
153815	ctx_            context.Context
153816	header_         http.Header
153817}
153818
153819// Insert: Creates a TargetHttpProxy resource in the specified project
153820// using the data included in the request.
153821//
153822// - project: Project ID for this request.
153823func (r *TargetHttpProxiesService) Insert(project string, targethttpproxy *TargetHttpProxy) *TargetHttpProxiesInsertCall {
153824	c := &TargetHttpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153825	c.project = project
153826	c.targethttpproxy = targethttpproxy
153827	return c
153828}
153829
153830// RequestId sets the optional parameter "requestId": An optional
153831// request ID to identify requests. Specify a unique request ID so that
153832// if you must retry your request, the server will know to ignore the
153833// request if it has already been completed. For example, consider a
153834// situation where you make an initial request and the request times
153835// out. If you make the request again with the same request ID, the
153836// server can check if original operation with the same request ID was
153837// received, and if so, will ignore the second request. This prevents
153838// clients from accidentally creating duplicate commitments. The request
153839// ID must be a valid UUID with the exception that zero UUID is not
153840// supported ( 00000000-0000-0000-0000-000000000000).
153841func (c *TargetHttpProxiesInsertCall) RequestId(requestId string) *TargetHttpProxiesInsertCall {
153842	c.urlParams_.Set("requestId", requestId)
153843	return c
153844}
153845
153846// Fields allows partial responses to be retrieved. See
153847// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153848// for more information.
153849func (c *TargetHttpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpProxiesInsertCall {
153850	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153851	return c
153852}
153853
153854// Context sets the context to be used in this call's Do method. Any
153855// pending HTTP request will be aborted if the provided context is
153856// canceled.
153857func (c *TargetHttpProxiesInsertCall) Context(ctx context.Context) *TargetHttpProxiesInsertCall {
153858	c.ctx_ = ctx
153859	return c
153860}
153861
153862// Header returns an http.Header that can be modified by the caller to
153863// add HTTP headers to the request.
153864func (c *TargetHttpProxiesInsertCall) Header() http.Header {
153865	if c.header_ == nil {
153866		c.header_ = make(http.Header)
153867	}
153868	return c.header_
153869}
153870
153871func (c *TargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
153872	reqHeaders := make(http.Header)
153873	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
153874	for k, v := range c.header_ {
153875		reqHeaders[k] = v
153876	}
153877	reqHeaders.Set("User-Agent", c.s.userAgent())
153878	var body io.Reader = nil
153879	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
153880	if err != nil {
153881		return nil, err
153882	}
153883	reqHeaders.Set("Content-Type", "application/json")
153884	c.urlParams_.Set("alt", alt)
153885	c.urlParams_.Set("prettyPrint", "false")
153886	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies")
153887	urls += "?" + c.urlParams_.Encode()
153888	req, err := http.NewRequest("POST", urls, body)
153889	if err != nil {
153890		return nil, err
153891	}
153892	req.Header = reqHeaders
153893	googleapi.Expand(req.URL, map[string]string{
153894		"project": c.project,
153895	})
153896	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153897}
153898
153899// Do executes the "compute.targetHttpProxies.insert" call.
153900// Exactly one of *Operation or error will be non-nil. Any non-2xx
153901// status code is an error. Response headers are in either
153902// *Operation.ServerResponse.Header or (if a response was returned at
153903// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
153904// to check whether the returned error was because
153905// http.StatusNotModified was returned.
153906func (c *TargetHttpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
153907	gensupport.SetOptions(c.urlParams_, opts...)
153908	res, err := c.doRequest("json")
153909	if res != nil && res.StatusCode == http.StatusNotModified {
153910		if res.Body != nil {
153911			res.Body.Close()
153912		}
153913		return nil, &googleapi.Error{
153914			Code:   res.StatusCode,
153915			Header: res.Header,
153916		}
153917	}
153918	if err != nil {
153919		return nil, err
153920	}
153921	defer googleapi.CloseBody(res)
153922	if err := googleapi.CheckResponse(res); err != nil {
153923		return nil, err
153924	}
153925	ret := &Operation{
153926		ServerResponse: googleapi.ServerResponse{
153927			Header:         res.Header,
153928			HTTPStatusCode: res.StatusCode,
153929		},
153930	}
153931	target := &ret
153932	if err := gensupport.DecodeResponse(target, res); err != nil {
153933		return nil, err
153934	}
153935	return ret, nil
153936	// {
153937	//   "description": "Creates a TargetHttpProxy resource in the specified project using the data included in the request.",
153938	//   "flatPath": "projects/{project}/global/targetHttpProxies",
153939	//   "httpMethod": "POST",
153940	//   "id": "compute.targetHttpProxies.insert",
153941	//   "parameterOrder": [
153942	//     "project"
153943	//   ],
153944	//   "parameters": {
153945	//     "project": {
153946	//       "description": "Project ID for this request.",
153947	//       "location": "path",
153948	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153949	//       "required": true,
153950	//       "type": "string"
153951	//     },
153952	//     "requestId": {
153953	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
153954	//       "location": "query",
153955	//       "type": "string"
153956	//     }
153957	//   },
153958	//   "path": "projects/{project}/global/targetHttpProxies",
153959	//   "request": {
153960	//     "$ref": "TargetHttpProxy"
153961	//   },
153962	//   "response": {
153963	//     "$ref": "Operation"
153964	//   },
153965	//   "scopes": [
153966	//     "https://www.googleapis.com/auth/cloud-platform",
153967	//     "https://www.googleapis.com/auth/compute"
153968	//   ]
153969	// }
153970
153971}
153972
153973// method id "compute.targetHttpProxies.list":
153974
153975type TargetHttpProxiesListCall struct {
153976	s            *Service
153977	project      string
153978	urlParams_   gensupport.URLParams
153979	ifNoneMatch_ string
153980	ctx_         context.Context
153981	header_      http.Header
153982}
153983
153984// List: Retrieves the list of TargetHttpProxy resources available to
153985// the specified project.
153986//
153987// - project: Project ID for this request.
153988func (r *TargetHttpProxiesService) List(project string) *TargetHttpProxiesListCall {
153989	c := &TargetHttpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153990	c.project = project
153991	return c
153992}
153993
153994// Filter sets the optional parameter "filter": A filter expression that
153995// filters resources listed in the response. The expression must specify
153996// the field name, a comparison operator, and the value that you want to
153997// use for filtering. The value must be a string, a number, or a
153998// boolean. The comparison operator must be either `=`, `!=`, `>`, or
153999// `<`. For example, if you are filtering Compute Engine instances, you
154000// can exclude instances named `example-instance` by specifying `name !=
154001// example-instance`. You can also filter nested fields. For example,
154002// you could specify `scheduling.automaticRestart = false` to include
154003// instances only if they are not scheduled for automatic restarts. You
154004// can use filtering on nested fields to filter based on resource
154005// labels. To filter on multiple expressions, provide each separate
154006// expression within parentheses. For example: ```
154007// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
154008// ``` By default, each expression is an `AND` expression. However, you
154009// can include `AND` and `OR` expressions explicitly. For example: ```
154010// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
154011// AND (scheduling.automaticRestart = true) ```
154012func (c *TargetHttpProxiesListCall) Filter(filter string) *TargetHttpProxiesListCall {
154013	c.urlParams_.Set("filter", filter)
154014	return c
154015}
154016
154017// MaxResults sets the optional parameter "maxResults": The maximum
154018// number of results per page that should be returned. If the number of
154019// available results is larger than `maxResults`, Compute Engine returns
154020// a `nextPageToken` that can be used to get the next page of results in
154021// subsequent list requests. Acceptable values are `0` to `500`,
154022// inclusive. (Default: `500`)
154023func (c *TargetHttpProxiesListCall) MaxResults(maxResults int64) *TargetHttpProxiesListCall {
154024	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
154025	return c
154026}
154027
154028// OrderBy sets the optional parameter "orderBy": Sorts list results by
154029// a certain order. By default, results are returned in alphanumerical
154030// order based on the resource name. You can also sort results in
154031// descending order based on the creation timestamp using
154032// `orderBy="creationTimestamp desc". This sorts results based on the
154033// `creationTimestamp` field in reverse chronological order (newest
154034// result first). Use this to sort resources like operations so that the
154035// newest operation is returned first. Currently, only sorting by `name`
154036// or `creationTimestamp desc` is supported.
154037func (c *TargetHttpProxiesListCall) OrderBy(orderBy string) *TargetHttpProxiesListCall {
154038	c.urlParams_.Set("orderBy", orderBy)
154039	return c
154040}
154041
154042// PageToken sets the optional parameter "pageToken": Specifies a page
154043// token to use. Set `pageToken` to the `nextPageToken` returned by a
154044// previous list request to get the next page of results.
154045func (c *TargetHttpProxiesListCall) PageToken(pageToken string) *TargetHttpProxiesListCall {
154046	c.urlParams_.Set("pageToken", pageToken)
154047	return c
154048}
154049
154050// ReturnPartialSuccess sets the optional parameter
154051// "returnPartialSuccess": Opt-in for partial success behavior which
154052// provides partial results in case of failure. The default value is
154053// false.
154054func (c *TargetHttpProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpProxiesListCall {
154055	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
154056	return c
154057}
154058
154059// Fields allows partial responses to be retrieved. See
154060// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154061// for more information.
154062func (c *TargetHttpProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpProxiesListCall {
154063	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154064	return c
154065}
154066
154067// IfNoneMatch sets the optional parameter which makes the operation
154068// fail if the object's ETag matches the given value. This is useful for
154069// getting updates only after the object has changed since the last
154070// request. Use googleapi.IsNotModified to check whether the response
154071// error from Do is the result of In-None-Match.
154072func (c *TargetHttpProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpProxiesListCall {
154073	c.ifNoneMatch_ = entityTag
154074	return c
154075}
154076
154077// Context sets the context to be used in this call's Do method. Any
154078// pending HTTP request will be aborted if the provided context is
154079// canceled.
154080func (c *TargetHttpProxiesListCall) Context(ctx context.Context) *TargetHttpProxiesListCall {
154081	c.ctx_ = ctx
154082	return c
154083}
154084
154085// Header returns an http.Header that can be modified by the caller to
154086// add HTTP headers to the request.
154087func (c *TargetHttpProxiesListCall) Header() http.Header {
154088	if c.header_ == nil {
154089		c.header_ = make(http.Header)
154090	}
154091	return c.header_
154092}
154093
154094func (c *TargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error) {
154095	reqHeaders := make(http.Header)
154096	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
154097	for k, v := range c.header_ {
154098		reqHeaders[k] = v
154099	}
154100	reqHeaders.Set("User-Agent", c.s.userAgent())
154101	if c.ifNoneMatch_ != "" {
154102		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
154103	}
154104	var body io.Reader = nil
154105	c.urlParams_.Set("alt", alt)
154106	c.urlParams_.Set("prettyPrint", "false")
154107	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies")
154108	urls += "?" + c.urlParams_.Encode()
154109	req, err := http.NewRequest("GET", urls, body)
154110	if err != nil {
154111		return nil, err
154112	}
154113	req.Header = reqHeaders
154114	googleapi.Expand(req.URL, map[string]string{
154115		"project": c.project,
154116	})
154117	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154118}
154119
154120// Do executes the "compute.targetHttpProxies.list" call.
154121// Exactly one of *TargetHttpProxyList or error will be non-nil. Any
154122// non-2xx status code is an error. Response headers are in either
154123// *TargetHttpProxyList.ServerResponse.Header or (if a response was
154124// returned at all) in error.(*googleapi.Error).Header. Use
154125// googleapi.IsNotModified to check whether the returned error was
154126// because http.StatusNotModified was returned.
154127func (c *TargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyList, error) {
154128	gensupport.SetOptions(c.urlParams_, opts...)
154129	res, err := c.doRequest("json")
154130	if res != nil && res.StatusCode == http.StatusNotModified {
154131		if res.Body != nil {
154132			res.Body.Close()
154133		}
154134		return nil, &googleapi.Error{
154135			Code:   res.StatusCode,
154136			Header: res.Header,
154137		}
154138	}
154139	if err != nil {
154140		return nil, err
154141	}
154142	defer googleapi.CloseBody(res)
154143	if err := googleapi.CheckResponse(res); err != nil {
154144		return nil, err
154145	}
154146	ret := &TargetHttpProxyList{
154147		ServerResponse: googleapi.ServerResponse{
154148			Header:         res.Header,
154149			HTTPStatusCode: res.StatusCode,
154150		},
154151	}
154152	target := &ret
154153	if err := gensupport.DecodeResponse(target, res); err != nil {
154154		return nil, err
154155	}
154156	return ret, nil
154157	// {
154158	//   "description": "Retrieves the list of TargetHttpProxy resources available to the specified project.",
154159	//   "flatPath": "projects/{project}/global/targetHttpProxies",
154160	//   "httpMethod": "GET",
154161	//   "id": "compute.targetHttpProxies.list",
154162	//   "parameterOrder": [
154163	//     "project"
154164	//   ],
154165	//   "parameters": {
154166	//     "filter": {
154167	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
154168	//       "location": "query",
154169	//       "type": "string"
154170	//     },
154171	//     "maxResults": {
154172	//       "default": "500",
154173	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
154174	//       "format": "uint32",
154175	//       "location": "query",
154176	//       "minimum": "0",
154177	//       "type": "integer"
154178	//     },
154179	//     "orderBy": {
154180	//       "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.",
154181	//       "location": "query",
154182	//       "type": "string"
154183	//     },
154184	//     "pageToken": {
154185	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
154186	//       "location": "query",
154187	//       "type": "string"
154188	//     },
154189	//     "project": {
154190	//       "description": "Project ID for this request.",
154191	//       "location": "path",
154192	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154193	//       "required": true,
154194	//       "type": "string"
154195	//     },
154196	//     "returnPartialSuccess": {
154197	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
154198	//       "location": "query",
154199	//       "type": "boolean"
154200	//     }
154201	//   },
154202	//   "path": "projects/{project}/global/targetHttpProxies",
154203	//   "response": {
154204	//     "$ref": "TargetHttpProxyList"
154205	//   },
154206	//   "scopes": [
154207	//     "https://www.googleapis.com/auth/cloud-platform",
154208	//     "https://www.googleapis.com/auth/compute",
154209	//     "https://www.googleapis.com/auth/compute.readonly"
154210	//   ]
154211	// }
154212
154213}
154214
154215// Pages invokes f for each page of results.
154216// A non-nil error returned from f will halt the iteration.
154217// The provided context supersedes any context provided to the Context method.
154218func (c *TargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpProxyList) error) error {
154219	c.ctx_ = ctx
154220	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
154221	for {
154222		x, err := c.Do()
154223		if err != nil {
154224			return err
154225		}
154226		if err := f(x); err != nil {
154227			return err
154228		}
154229		if x.NextPageToken == "" {
154230			return nil
154231		}
154232		c.PageToken(x.NextPageToken)
154233	}
154234}
154235
154236// method id "compute.targetHttpProxies.patch":
154237
154238type TargetHttpProxiesPatchCall struct {
154239	s               *Service
154240	project         string
154241	targetHttpProxy string
154242	targethttpproxy *TargetHttpProxy
154243	urlParams_      gensupport.URLParams
154244	ctx_            context.Context
154245	header_         http.Header
154246}
154247
154248// Patch: Patches the specified TargetHttpProxy resource with the data
154249// included in the request. This method supports PATCH semantics and
154250// uses JSON merge patch format and processing rules.
154251//
154252// - project: Project ID for this request.
154253// - targetHttpProxy: Name of the TargetHttpProxy resource to patch.
154254func (r *TargetHttpProxiesService) Patch(project string, targetHttpProxy string, targethttpproxy *TargetHttpProxy) *TargetHttpProxiesPatchCall {
154255	c := &TargetHttpProxiesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154256	c.project = project
154257	c.targetHttpProxy = targetHttpProxy
154258	c.targethttpproxy = targethttpproxy
154259	return c
154260}
154261
154262// RequestId sets the optional parameter "requestId": An optional
154263// request ID to identify requests. Specify a unique request ID so that
154264// if you must retry your request, the server will know to ignore the
154265// request if it has already been completed. For example, consider a
154266// situation where you make an initial request and the request times
154267// out. If you make the request again with the same request ID, the
154268// server can check if original operation with the same request ID was
154269// received, and if so, will ignore the second request. This prevents
154270// clients from accidentally creating duplicate commitments. The request
154271// ID must be a valid UUID with the exception that zero UUID is not
154272// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
154273// MixerMutationRequestBuilder
154274func (c *TargetHttpProxiesPatchCall) RequestId(requestId string) *TargetHttpProxiesPatchCall {
154275	c.urlParams_.Set("requestId", requestId)
154276	return c
154277}
154278
154279// Fields allows partial responses to be retrieved. See
154280// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154281// for more information.
154282func (c *TargetHttpProxiesPatchCall) Fields(s ...googleapi.Field) *TargetHttpProxiesPatchCall {
154283	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154284	return c
154285}
154286
154287// Context sets the context to be used in this call's Do method. Any
154288// pending HTTP request will be aborted if the provided context is
154289// canceled.
154290func (c *TargetHttpProxiesPatchCall) Context(ctx context.Context) *TargetHttpProxiesPatchCall {
154291	c.ctx_ = ctx
154292	return c
154293}
154294
154295// Header returns an http.Header that can be modified by the caller to
154296// add HTTP headers to the request.
154297func (c *TargetHttpProxiesPatchCall) Header() http.Header {
154298	if c.header_ == nil {
154299		c.header_ = make(http.Header)
154300	}
154301	return c.header_
154302}
154303
154304func (c *TargetHttpProxiesPatchCall) doRequest(alt string) (*http.Response, error) {
154305	reqHeaders := make(http.Header)
154306	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
154307	for k, v := range c.header_ {
154308		reqHeaders[k] = v
154309	}
154310	reqHeaders.Set("User-Agent", c.s.userAgent())
154311	var body io.Reader = nil
154312	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
154313	if err != nil {
154314		return nil, err
154315	}
154316	reqHeaders.Set("Content-Type", "application/json")
154317	c.urlParams_.Set("alt", alt)
154318	c.urlParams_.Set("prettyPrint", "false")
154319	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies/{targetHttpProxy}")
154320	urls += "?" + c.urlParams_.Encode()
154321	req, err := http.NewRequest("PATCH", urls, body)
154322	if err != nil {
154323		return nil, err
154324	}
154325	req.Header = reqHeaders
154326	googleapi.Expand(req.URL, map[string]string{
154327		"project":         c.project,
154328		"targetHttpProxy": c.targetHttpProxy,
154329	})
154330	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154331}
154332
154333// Do executes the "compute.targetHttpProxies.patch" call.
154334// Exactly one of *Operation or error will be non-nil. Any non-2xx
154335// status code is an error. Response headers are in either
154336// *Operation.ServerResponse.Header or (if a response was returned at
154337// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154338// to check whether the returned error was because
154339// http.StatusNotModified was returned.
154340func (c *TargetHttpProxiesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154341	gensupport.SetOptions(c.urlParams_, opts...)
154342	res, err := c.doRequest("json")
154343	if res != nil && res.StatusCode == http.StatusNotModified {
154344		if res.Body != nil {
154345			res.Body.Close()
154346		}
154347		return nil, &googleapi.Error{
154348			Code:   res.StatusCode,
154349			Header: res.Header,
154350		}
154351	}
154352	if err != nil {
154353		return nil, err
154354	}
154355	defer googleapi.CloseBody(res)
154356	if err := googleapi.CheckResponse(res); err != nil {
154357		return nil, err
154358	}
154359	ret := &Operation{
154360		ServerResponse: googleapi.ServerResponse{
154361			Header:         res.Header,
154362			HTTPStatusCode: res.StatusCode,
154363		},
154364	}
154365	target := &ret
154366	if err := gensupport.DecodeResponse(target, res); err != nil {
154367		return nil, err
154368	}
154369	return ret, nil
154370	// {
154371	//   "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.",
154372	//   "flatPath": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}",
154373	//   "httpMethod": "PATCH",
154374	//   "id": "compute.targetHttpProxies.patch",
154375	//   "parameterOrder": [
154376	//     "project",
154377	//     "targetHttpProxy"
154378	//   ],
154379	//   "parameters": {
154380	//     "project": {
154381	//       "description": "Project ID for this request.",
154382	//       "location": "path",
154383	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154384	//       "required": true,
154385	//       "type": "string"
154386	//     },
154387	//     "requestId": {
154388	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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",
154389	//       "location": "query",
154390	//       "type": "string"
154391	//     },
154392	//     "targetHttpProxy": {
154393	//       "description": "Name of the TargetHttpProxy resource to patch.",
154394	//       "location": "path",
154395	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154396	//       "required": true,
154397	//       "type": "string"
154398	//     }
154399	//   },
154400	//   "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}",
154401	//   "request": {
154402	//     "$ref": "TargetHttpProxy"
154403	//   },
154404	//   "response": {
154405	//     "$ref": "Operation"
154406	//   },
154407	//   "scopes": [
154408	//     "https://www.googleapis.com/auth/cloud-platform",
154409	//     "https://www.googleapis.com/auth/compute"
154410	//   ]
154411	// }
154412
154413}
154414
154415// method id "compute.targetHttpProxies.setUrlMap":
154416
154417type TargetHttpProxiesSetUrlMapCall struct {
154418	s               *Service
154419	project         string
154420	targetHttpProxy string
154421	urlmapreference *UrlMapReference
154422	urlParams_      gensupport.URLParams
154423	ctx_            context.Context
154424	header_         http.Header
154425}
154426
154427// SetUrlMap: Changes the URL map for TargetHttpProxy.
154428//
154429// - project: Project ID for this request.
154430// - targetHttpProxy: Name of the TargetHttpProxy to set a URL map for.
154431func (r *TargetHttpProxiesService) SetUrlMap(project string, targetHttpProxy string, urlmapreference *UrlMapReference) *TargetHttpProxiesSetUrlMapCall {
154432	c := &TargetHttpProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154433	c.project = project
154434	c.targetHttpProxy = targetHttpProxy
154435	c.urlmapreference = urlmapreference
154436	return c
154437}
154438
154439// RequestId sets the optional parameter "requestId": An optional
154440// request ID to identify requests. Specify a unique request ID so that
154441// if you must retry your request, the server will know to ignore the
154442// request if it has already been completed. For example, consider a
154443// situation where you make an initial request and the request times
154444// out. If you make the request again with the same request ID, the
154445// server can check if original operation with the same request ID was
154446// received, and if so, will ignore the second request. This prevents
154447// clients from accidentally creating duplicate commitments. The request
154448// ID must be a valid UUID with the exception that zero UUID is not
154449// supported ( 00000000-0000-0000-0000-000000000000).
154450func (c *TargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpProxiesSetUrlMapCall {
154451	c.urlParams_.Set("requestId", requestId)
154452	return c
154453}
154454
154455// Fields allows partial responses to be retrieved. See
154456// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154457// for more information.
154458func (c *TargetHttpProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpProxiesSetUrlMapCall {
154459	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154460	return c
154461}
154462
154463// Context sets the context to be used in this call's Do method. Any
154464// pending HTTP request will be aborted if the provided context is
154465// canceled.
154466func (c *TargetHttpProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpProxiesSetUrlMapCall {
154467	c.ctx_ = ctx
154468	return c
154469}
154470
154471// Header returns an http.Header that can be modified by the caller to
154472// add HTTP headers to the request.
154473func (c *TargetHttpProxiesSetUrlMapCall) Header() http.Header {
154474	if c.header_ == nil {
154475		c.header_ = make(http.Header)
154476	}
154477	return c.header_
154478}
154479
154480func (c *TargetHttpProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
154481	reqHeaders := make(http.Header)
154482	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
154483	for k, v := range c.header_ {
154484		reqHeaders[k] = v
154485	}
154486	reqHeaders.Set("User-Agent", c.s.userAgent())
154487	var body io.Reader = nil
154488	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
154489	if err != nil {
154490		return nil, err
154491	}
154492	reqHeaders.Set("Content-Type", "application/json")
154493	c.urlParams_.Set("alt", alt)
154494	c.urlParams_.Set("prettyPrint", "false")
154495	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap")
154496	urls += "?" + c.urlParams_.Encode()
154497	req, err := http.NewRequest("POST", urls, body)
154498	if err != nil {
154499		return nil, err
154500	}
154501	req.Header = reqHeaders
154502	googleapi.Expand(req.URL, map[string]string{
154503		"project":         c.project,
154504		"targetHttpProxy": c.targetHttpProxy,
154505	})
154506	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154507}
154508
154509// Do executes the "compute.targetHttpProxies.setUrlMap" call.
154510// Exactly one of *Operation or error will be non-nil. Any non-2xx
154511// status code is an error. Response headers are in either
154512// *Operation.ServerResponse.Header or (if a response was returned at
154513// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154514// to check whether the returned error was because
154515// http.StatusNotModified was returned.
154516func (c *TargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154517	gensupport.SetOptions(c.urlParams_, opts...)
154518	res, err := c.doRequest("json")
154519	if res != nil && res.StatusCode == http.StatusNotModified {
154520		if res.Body != nil {
154521			res.Body.Close()
154522		}
154523		return nil, &googleapi.Error{
154524			Code:   res.StatusCode,
154525			Header: res.Header,
154526		}
154527	}
154528	if err != nil {
154529		return nil, err
154530	}
154531	defer googleapi.CloseBody(res)
154532	if err := googleapi.CheckResponse(res); err != nil {
154533		return nil, err
154534	}
154535	ret := &Operation{
154536		ServerResponse: googleapi.ServerResponse{
154537			Header:         res.Header,
154538			HTTPStatusCode: res.StatusCode,
154539		},
154540	}
154541	target := &ret
154542	if err := gensupport.DecodeResponse(target, res); err != nil {
154543		return nil, err
154544	}
154545	return ret, nil
154546	// {
154547	//   "description": "Changes the URL map for TargetHttpProxy.",
154548	//   "flatPath": "projects/{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
154549	//   "httpMethod": "POST",
154550	//   "id": "compute.targetHttpProxies.setUrlMap",
154551	//   "parameterOrder": [
154552	//     "project",
154553	//     "targetHttpProxy"
154554	//   ],
154555	//   "parameters": {
154556	//     "project": {
154557	//       "description": "Project ID for this request.",
154558	//       "location": "path",
154559	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154560	//       "required": true,
154561	//       "type": "string"
154562	//     },
154563	//     "requestId": {
154564	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
154565	//       "location": "query",
154566	//       "type": "string"
154567	//     },
154568	//     "targetHttpProxy": {
154569	//       "description": "Name of the TargetHttpProxy to set a URL map for.",
154570	//       "location": "path",
154571	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154572	//       "required": true,
154573	//       "type": "string"
154574	//     }
154575	//   },
154576	//   "path": "projects/{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
154577	//   "request": {
154578	//     "$ref": "UrlMapReference"
154579	//   },
154580	//   "response": {
154581	//     "$ref": "Operation"
154582	//   },
154583	//   "scopes": [
154584	//     "https://www.googleapis.com/auth/cloud-platform",
154585	//     "https://www.googleapis.com/auth/compute"
154586	//   ]
154587	// }
154588
154589}
154590
154591// method id "compute.targetHttpsProxies.aggregatedList":
154592
154593type TargetHttpsProxiesAggregatedListCall struct {
154594	s            *Service
154595	project      string
154596	urlParams_   gensupport.URLParams
154597	ifNoneMatch_ string
154598	ctx_         context.Context
154599	header_      http.Header
154600}
154601
154602// AggregatedList: Retrieves the list of all TargetHttpsProxy resources,
154603// regional and global, available to the specified project.
154604//
154605// - project: Name of the project scoping this request.
154606func (r *TargetHttpsProxiesService) AggregatedList(project string) *TargetHttpsProxiesAggregatedListCall {
154607	c := &TargetHttpsProxiesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154608	c.project = project
154609	return c
154610}
154611
154612// Filter sets the optional parameter "filter": A filter expression that
154613// filters resources listed in the response. The expression must specify
154614// the field name, a comparison operator, and the value that you want to
154615// use for filtering. The value must be a string, a number, or a
154616// boolean. The comparison operator must be either `=`, `!=`, `>`, or
154617// `<`. For example, if you are filtering Compute Engine instances, you
154618// can exclude instances named `example-instance` by specifying `name !=
154619// example-instance`. You can also filter nested fields. For example,
154620// you could specify `scheduling.automaticRestart = false` to include
154621// instances only if they are not scheduled for automatic restarts. You
154622// can use filtering on nested fields to filter based on resource
154623// labels. To filter on multiple expressions, provide each separate
154624// expression within parentheses. For example: ```
154625// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
154626// ``` By default, each expression is an `AND` expression. However, you
154627// can include `AND` and `OR` expressions explicitly. For example: ```
154628// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
154629// AND (scheduling.automaticRestart = true) ```
154630func (c *TargetHttpsProxiesAggregatedListCall) Filter(filter string) *TargetHttpsProxiesAggregatedListCall {
154631	c.urlParams_.Set("filter", filter)
154632	return c
154633}
154634
154635// IncludeAllScopes sets the optional parameter "includeAllScopes":
154636// Indicates whether every visible scope for each scope type (zone,
154637// region, global) should be included in the response. For new resource
154638// types added after this field, the flag has no effect as new resource
154639// types will always include every visible scope for each scope type in
154640// response. For resource types which predate this field, if this flag
154641// is omitted or false, only scopes of the scope types where the
154642// resource type is expected to be found will be included.
154643func (c *TargetHttpsProxiesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetHttpsProxiesAggregatedListCall {
154644	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
154645	return c
154646}
154647
154648// MaxResults sets the optional parameter "maxResults": The maximum
154649// number of results per page that should be returned. If the number of
154650// available results is larger than `maxResults`, Compute Engine returns
154651// a `nextPageToken` that can be used to get the next page of results in
154652// subsequent list requests. Acceptable values are `0` to `500`,
154653// inclusive. (Default: `500`)
154654func (c *TargetHttpsProxiesAggregatedListCall) MaxResults(maxResults int64) *TargetHttpsProxiesAggregatedListCall {
154655	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
154656	return c
154657}
154658
154659// OrderBy sets the optional parameter "orderBy": Sorts list results by
154660// a certain order. By default, results are returned in alphanumerical
154661// order based on the resource name. You can also sort results in
154662// descending order based on the creation timestamp using
154663// `orderBy="creationTimestamp desc". This sorts results based on the
154664// `creationTimestamp` field in reverse chronological order (newest
154665// result first). Use this to sort resources like operations so that the
154666// newest operation is returned first. Currently, only sorting by `name`
154667// or `creationTimestamp desc` is supported.
154668func (c *TargetHttpsProxiesAggregatedListCall) OrderBy(orderBy string) *TargetHttpsProxiesAggregatedListCall {
154669	c.urlParams_.Set("orderBy", orderBy)
154670	return c
154671}
154672
154673// PageToken sets the optional parameter "pageToken": Specifies a page
154674// token to use. Set `pageToken` to the `nextPageToken` returned by a
154675// previous list request to get the next page of results.
154676func (c *TargetHttpsProxiesAggregatedListCall) PageToken(pageToken string) *TargetHttpsProxiesAggregatedListCall {
154677	c.urlParams_.Set("pageToken", pageToken)
154678	return c
154679}
154680
154681// ReturnPartialSuccess sets the optional parameter
154682// "returnPartialSuccess": Opt-in for partial success behavior which
154683// provides partial results in case of failure. The default value is
154684// false.
154685func (c *TargetHttpsProxiesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpsProxiesAggregatedListCall {
154686	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
154687	return c
154688}
154689
154690// Fields allows partial responses to be retrieved. See
154691// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154692// for more information.
154693func (c *TargetHttpsProxiesAggregatedListCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesAggregatedListCall {
154694	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154695	return c
154696}
154697
154698// IfNoneMatch sets the optional parameter which makes the operation
154699// fail if the object's ETag matches the given value. This is useful for
154700// getting updates only after the object has changed since the last
154701// request. Use googleapi.IsNotModified to check whether the response
154702// error from Do is the result of In-None-Match.
154703func (c *TargetHttpsProxiesAggregatedListCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesAggregatedListCall {
154704	c.ifNoneMatch_ = entityTag
154705	return c
154706}
154707
154708// Context sets the context to be used in this call's Do method. Any
154709// pending HTTP request will be aborted if the provided context is
154710// canceled.
154711func (c *TargetHttpsProxiesAggregatedListCall) Context(ctx context.Context) *TargetHttpsProxiesAggregatedListCall {
154712	c.ctx_ = ctx
154713	return c
154714}
154715
154716// Header returns an http.Header that can be modified by the caller to
154717// add HTTP headers to the request.
154718func (c *TargetHttpsProxiesAggregatedListCall) Header() http.Header {
154719	if c.header_ == nil {
154720		c.header_ = make(http.Header)
154721	}
154722	return c.header_
154723}
154724
154725func (c *TargetHttpsProxiesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
154726	reqHeaders := make(http.Header)
154727	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
154728	for k, v := range c.header_ {
154729		reqHeaders[k] = v
154730	}
154731	reqHeaders.Set("User-Agent", c.s.userAgent())
154732	if c.ifNoneMatch_ != "" {
154733		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
154734	}
154735	var body io.Reader = nil
154736	c.urlParams_.Set("alt", alt)
154737	c.urlParams_.Set("prettyPrint", "false")
154738	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetHttpsProxies")
154739	urls += "?" + c.urlParams_.Encode()
154740	req, err := http.NewRequest("GET", urls, body)
154741	if err != nil {
154742		return nil, err
154743	}
154744	req.Header = reqHeaders
154745	googleapi.Expand(req.URL, map[string]string{
154746		"project": c.project,
154747	})
154748	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154749}
154750
154751// Do executes the "compute.targetHttpsProxies.aggregatedList" call.
154752// Exactly one of *TargetHttpsProxyAggregatedList or error will be
154753// non-nil. Any non-2xx status code is an error. Response headers are in
154754// either *TargetHttpsProxyAggregatedList.ServerResponse.Header or (if a
154755// response was returned at all) in error.(*googleapi.Error).Header. Use
154756// googleapi.IsNotModified to check whether the returned error was
154757// because http.StatusNotModified was returned.
154758func (c *TargetHttpsProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyAggregatedList, error) {
154759	gensupport.SetOptions(c.urlParams_, opts...)
154760	res, err := c.doRequest("json")
154761	if res != nil && res.StatusCode == http.StatusNotModified {
154762		if res.Body != nil {
154763			res.Body.Close()
154764		}
154765		return nil, &googleapi.Error{
154766			Code:   res.StatusCode,
154767			Header: res.Header,
154768		}
154769	}
154770	if err != nil {
154771		return nil, err
154772	}
154773	defer googleapi.CloseBody(res)
154774	if err := googleapi.CheckResponse(res); err != nil {
154775		return nil, err
154776	}
154777	ret := &TargetHttpsProxyAggregatedList{
154778		ServerResponse: googleapi.ServerResponse{
154779			Header:         res.Header,
154780			HTTPStatusCode: res.StatusCode,
154781		},
154782	}
154783	target := &ret
154784	if err := gensupport.DecodeResponse(target, res); err != nil {
154785		return nil, err
154786	}
154787	return ret, nil
154788	// {
154789	//   "description": "Retrieves the list of all TargetHttpsProxy resources, regional and global, available to the specified project.",
154790	//   "flatPath": "projects/{project}/aggregated/targetHttpsProxies",
154791	//   "httpMethod": "GET",
154792	//   "id": "compute.targetHttpsProxies.aggregatedList",
154793	//   "parameterOrder": [
154794	//     "project"
154795	//   ],
154796	//   "parameters": {
154797	//     "filter": {
154798	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
154799	//       "location": "query",
154800	//       "type": "string"
154801	//     },
154802	//     "includeAllScopes": {
154803	//       "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.",
154804	//       "location": "query",
154805	//       "type": "boolean"
154806	//     },
154807	//     "maxResults": {
154808	//       "default": "500",
154809	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
154810	//       "format": "uint32",
154811	//       "location": "query",
154812	//       "minimum": "0",
154813	//       "type": "integer"
154814	//     },
154815	//     "orderBy": {
154816	//       "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.",
154817	//       "location": "query",
154818	//       "type": "string"
154819	//     },
154820	//     "pageToken": {
154821	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
154822	//       "location": "query",
154823	//       "type": "string"
154824	//     },
154825	//     "project": {
154826	//       "description": "Name of the project scoping this request.",
154827	//       "location": "path",
154828	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154829	//       "required": true,
154830	//       "type": "string"
154831	//     },
154832	//     "returnPartialSuccess": {
154833	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
154834	//       "location": "query",
154835	//       "type": "boolean"
154836	//     }
154837	//   },
154838	//   "path": "projects/{project}/aggregated/targetHttpsProxies",
154839	//   "response": {
154840	//     "$ref": "TargetHttpsProxyAggregatedList"
154841	//   },
154842	//   "scopes": [
154843	//     "https://www.googleapis.com/auth/cloud-platform",
154844	//     "https://www.googleapis.com/auth/compute",
154845	//     "https://www.googleapis.com/auth/compute.readonly"
154846	//   ]
154847	// }
154848
154849}
154850
154851// Pages invokes f for each page of results.
154852// A non-nil error returned from f will halt the iteration.
154853// The provided context supersedes any context provided to the Context method.
154854func (c *TargetHttpsProxiesAggregatedListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyAggregatedList) error) error {
154855	c.ctx_ = ctx
154856	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
154857	for {
154858		x, err := c.Do()
154859		if err != nil {
154860			return err
154861		}
154862		if err := f(x); err != nil {
154863			return err
154864		}
154865		if x.NextPageToken == "" {
154866			return nil
154867		}
154868		c.PageToken(x.NextPageToken)
154869	}
154870}
154871
154872// method id "compute.targetHttpsProxies.delete":
154873
154874type TargetHttpsProxiesDeleteCall struct {
154875	s                *Service
154876	project          string
154877	targetHttpsProxy string
154878	urlParams_       gensupport.URLParams
154879	ctx_             context.Context
154880	header_          http.Header
154881}
154882
154883// Delete: Deletes the specified TargetHttpsProxy resource.
154884//
154885// - project: Project ID for this request.
154886// - targetHttpsProxy: Name of the TargetHttpsProxy resource to delete.
154887func (r *TargetHttpsProxiesService) Delete(project string, targetHttpsProxy string) *TargetHttpsProxiesDeleteCall {
154888	c := &TargetHttpsProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154889	c.project = project
154890	c.targetHttpsProxy = targetHttpsProxy
154891	return c
154892}
154893
154894// RequestId sets the optional parameter "requestId": An optional
154895// request ID to identify requests. Specify a unique request ID so that
154896// if you must retry your request, the server will know to ignore the
154897// request if it has already been completed. For example, consider a
154898// situation where you make an initial request and the request times
154899// out. If you make the request again with the same request ID, the
154900// server can check if original operation with the same request ID was
154901// received, and if so, will ignore the second request. This prevents
154902// clients from accidentally creating duplicate commitments. The request
154903// ID must be a valid UUID with the exception that zero UUID is not
154904// supported ( 00000000-0000-0000-0000-000000000000).
154905func (c *TargetHttpsProxiesDeleteCall) RequestId(requestId string) *TargetHttpsProxiesDeleteCall {
154906	c.urlParams_.Set("requestId", requestId)
154907	return c
154908}
154909
154910// Fields allows partial responses to be retrieved. See
154911// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154912// for more information.
154913func (c *TargetHttpsProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesDeleteCall {
154914	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154915	return c
154916}
154917
154918// Context sets the context to be used in this call's Do method. Any
154919// pending HTTP request will be aborted if the provided context is
154920// canceled.
154921func (c *TargetHttpsProxiesDeleteCall) Context(ctx context.Context) *TargetHttpsProxiesDeleteCall {
154922	c.ctx_ = ctx
154923	return c
154924}
154925
154926// Header returns an http.Header that can be modified by the caller to
154927// add HTTP headers to the request.
154928func (c *TargetHttpsProxiesDeleteCall) Header() http.Header {
154929	if c.header_ == nil {
154930		c.header_ = make(http.Header)
154931	}
154932	return c.header_
154933}
154934
154935func (c *TargetHttpsProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
154936	reqHeaders := make(http.Header)
154937	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
154938	for k, v := range c.header_ {
154939		reqHeaders[k] = v
154940	}
154941	reqHeaders.Set("User-Agent", c.s.userAgent())
154942	var body io.Reader = nil
154943	c.urlParams_.Set("alt", alt)
154944	c.urlParams_.Set("prettyPrint", "false")
154945	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}")
154946	urls += "?" + c.urlParams_.Encode()
154947	req, err := http.NewRequest("DELETE", urls, body)
154948	if err != nil {
154949		return nil, err
154950	}
154951	req.Header = reqHeaders
154952	googleapi.Expand(req.URL, map[string]string{
154953		"project":          c.project,
154954		"targetHttpsProxy": c.targetHttpsProxy,
154955	})
154956	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154957}
154958
154959// Do executes the "compute.targetHttpsProxies.delete" call.
154960// Exactly one of *Operation or error will be non-nil. Any non-2xx
154961// status code is an error. Response headers are in either
154962// *Operation.ServerResponse.Header or (if a response was returned at
154963// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154964// to check whether the returned error was because
154965// http.StatusNotModified was returned.
154966func (c *TargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154967	gensupport.SetOptions(c.urlParams_, opts...)
154968	res, err := c.doRequest("json")
154969	if res != nil && res.StatusCode == http.StatusNotModified {
154970		if res.Body != nil {
154971			res.Body.Close()
154972		}
154973		return nil, &googleapi.Error{
154974			Code:   res.StatusCode,
154975			Header: res.Header,
154976		}
154977	}
154978	if err != nil {
154979		return nil, err
154980	}
154981	defer googleapi.CloseBody(res)
154982	if err := googleapi.CheckResponse(res); err != nil {
154983		return nil, err
154984	}
154985	ret := &Operation{
154986		ServerResponse: googleapi.ServerResponse{
154987			Header:         res.Header,
154988			HTTPStatusCode: res.StatusCode,
154989		},
154990	}
154991	target := &ret
154992	if err := gensupport.DecodeResponse(target, res); err != nil {
154993		return nil, err
154994	}
154995	return ret, nil
154996	// {
154997	//   "description": "Deletes the specified TargetHttpsProxy resource.",
154998	//   "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}",
154999	//   "httpMethod": "DELETE",
155000	//   "id": "compute.targetHttpsProxies.delete",
155001	//   "parameterOrder": [
155002	//     "project",
155003	//     "targetHttpsProxy"
155004	//   ],
155005	//   "parameters": {
155006	//     "project": {
155007	//       "description": "Project ID for this request.",
155008	//       "location": "path",
155009	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155010	//       "required": true,
155011	//       "type": "string"
155012	//     },
155013	//     "requestId": {
155014	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
155015	//       "location": "query",
155016	//       "type": "string"
155017	//     },
155018	//     "targetHttpsProxy": {
155019	//       "description": "Name of the TargetHttpsProxy resource to delete.",
155020	//       "location": "path",
155021	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
155022	//       "required": true,
155023	//       "type": "string"
155024	//     }
155025	//   },
155026	//   "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}",
155027	//   "response": {
155028	//     "$ref": "Operation"
155029	//   },
155030	//   "scopes": [
155031	//     "https://www.googleapis.com/auth/cloud-platform",
155032	//     "https://www.googleapis.com/auth/compute"
155033	//   ]
155034	// }
155035
155036}
155037
155038// method id "compute.targetHttpsProxies.get":
155039
155040type TargetHttpsProxiesGetCall struct {
155041	s                *Service
155042	project          string
155043	targetHttpsProxy string
155044	urlParams_       gensupport.URLParams
155045	ifNoneMatch_     string
155046	ctx_             context.Context
155047	header_          http.Header
155048}
155049
155050// Get: Returns the specified TargetHttpsProxy resource. Gets a list of
155051// available target HTTPS proxies by making a list() request.
155052//
155053// - project: Project ID for this request.
155054// - targetHttpsProxy: Name of the TargetHttpsProxy resource to return.
155055func (r *TargetHttpsProxiesService) Get(project string, targetHttpsProxy string) *TargetHttpsProxiesGetCall {
155056	c := &TargetHttpsProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155057	c.project = project
155058	c.targetHttpsProxy = targetHttpsProxy
155059	return c
155060}
155061
155062// Fields allows partial responses to be retrieved. See
155063// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155064// for more information.
155065func (c *TargetHttpsProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesGetCall {
155066	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155067	return c
155068}
155069
155070// IfNoneMatch sets the optional parameter which makes the operation
155071// fail if the object's ETag matches the given value. This is useful for
155072// getting updates only after the object has changed since the last
155073// request. Use googleapi.IsNotModified to check whether the response
155074// error from Do is the result of In-None-Match.
155075func (c *TargetHttpsProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesGetCall {
155076	c.ifNoneMatch_ = entityTag
155077	return c
155078}
155079
155080// Context sets the context to be used in this call's Do method. Any
155081// pending HTTP request will be aborted if the provided context is
155082// canceled.
155083func (c *TargetHttpsProxiesGetCall) Context(ctx context.Context) *TargetHttpsProxiesGetCall {
155084	c.ctx_ = ctx
155085	return c
155086}
155087
155088// Header returns an http.Header that can be modified by the caller to
155089// add HTTP headers to the request.
155090func (c *TargetHttpsProxiesGetCall) Header() http.Header {
155091	if c.header_ == nil {
155092		c.header_ = make(http.Header)
155093	}
155094	return c.header_
155095}
155096
155097func (c *TargetHttpsProxiesGetCall) doRequest(alt string) (*http.Response, error) {
155098	reqHeaders := make(http.Header)
155099	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
155100	for k, v := range c.header_ {
155101		reqHeaders[k] = v
155102	}
155103	reqHeaders.Set("User-Agent", c.s.userAgent())
155104	if c.ifNoneMatch_ != "" {
155105		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
155106	}
155107	var body io.Reader = nil
155108	c.urlParams_.Set("alt", alt)
155109	c.urlParams_.Set("prettyPrint", "false")
155110	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}")
155111	urls += "?" + c.urlParams_.Encode()
155112	req, err := http.NewRequest("GET", urls, body)
155113	if err != nil {
155114		return nil, err
155115	}
155116	req.Header = reqHeaders
155117	googleapi.Expand(req.URL, map[string]string{
155118		"project":          c.project,
155119		"targetHttpsProxy": c.targetHttpsProxy,
155120	})
155121	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155122}
155123
155124// Do executes the "compute.targetHttpsProxies.get" call.
155125// Exactly one of *TargetHttpsProxy or error will be non-nil. Any
155126// non-2xx status code is an error. Response headers are in either
155127// *TargetHttpsProxy.ServerResponse.Header or (if a response was
155128// returned at all) in error.(*googleapi.Error).Header. Use
155129// googleapi.IsNotModified to check whether the returned error was
155130// because http.StatusNotModified was returned.
155131func (c *TargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxy, error) {
155132	gensupport.SetOptions(c.urlParams_, opts...)
155133	res, err := c.doRequest("json")
155134	if res != nil && res.StatusCode == http.StatusNotModified {
155135		if res.Body != nil {
155136			res.Body.Close()
155137		}
155138		return nil, &googleapi.Error{
155139			Code:   res.StatusCode,
155140			Header: res.Header,
155141		}
155142	}
155143	if err != nil {
155144		return nil, err
155145	}
155146	defer googleapi.CloseBody(res)
155147	if err := googleapi.CheckResponse(res); err != nil {
155148		return nil, err
155149	}
155150	ret := &TargetHttpsProxy{
155151		ServerResponse: googleapi.ServerResponse{
155152			Header:         res.Header,
155153			HTTPStatusCode: res.StatusCode,
155154		},
155155	}
155156	target := &ret
155157	if err := gensupport.DecodeResponse(target, res); err != nil {
155158		return nil, err
155159	}
155160	return ret, nil
155161	// {
155162	//   "description": "Returns the specified TargetHttpsProxy resource. Gets a list of available target HTTPS proxies by making a list() request.",
155163	//   "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}",
155164	//   "httpMethod": "GET",
155165	//   "id": "compute.targetHttpsProxies.get",
155166	//   "parameterOrder": [
155167	//     "project",
155168	//     "targetHttpsProxy"
155169	//   ],
155170	//   "parameters": {
155171	//     "project": {
155172	//       "description": "Project ID for this request.",
155173	//       "location": "path",
155174	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155175	//       "required": true,
155176	//       "type": "string"
155177	//     },
155178	//     "targetHttpsProxy": {
155179	//       "description": "Name of the TargetHttpsProxy resource to return.",
155180	//       "location": "path",
155181	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
155182	//       "required": true,
155183	//       "type": "string"
155184	//     }
155185	//   },
155186	//   "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}",
155187	//   "response": {
155188	//     "$ref": "TargetHttpsProxy"
155189	//   },
155190	//   "scopes": [
155191	//     "https://www.googleapis.com/auth/cloud-platform",
155192	//     "https://www.googleapis.com/auth/compute",
155193	//     "https://www.googleapis.com/auth/compute.readonly"
155194	//   ]
155195	// }
155196
155197}
155198
155199// method id "compute.targetHttpsProxies.insert":
155200
155201type TargetHttpsProxiesInsertCall struct {
155202	s                *Service
155203	project          string
155204	targethttpsproxy *TargetHttpsProxy
155205	urlParams_       gensupport.URLParams
155206	ctx_             context.Context
155207	header_          http.Header
155208}
155209
155210// Insert: Creates a TargetHttpsProxy resource in the specified project
155211// using the data included in the request.
155212//
155213// - project: Project ID for this request.
155214func (r *TargetHttpsProxiesService) Insert(project string, targethttpsproxy *TargetHttpsProxy) *TargetHttpsProxiesInsertCall {
155215	c := &TargetHttpsProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155216	c.project = project
155217	c.targethttpsproxy = targethttpsproxy
155218	return c
155219}
155220
155221// RequestId sets the optional parameter "requestId": An optional
155222// request ID to identify requests. Specify a unique request ID so that
155223// if you must retry your request, the server will know to ignore the
155224// request if it has already been completed. For example, consider a
155225// situation where you make an initial request and the request times
155226// out. If you make the request again with the same request ID, the
155227// server can check if original operation with the same request ID was
155228// received, and if so, will ignore the second request. This prevents
155229// clients from accidentally creating duplicate commitments. The request
155230// ID must be a valid UUID with the exception that zero UUID is not
155231// supported ( 00000000-0000-0000-0000-000000000000).
155232func (c *TargetHttpsProxiesInsertCall) RequestId(requestId string) *TargetHttpsProxiesInsertCall {
155233	c.urlParams_.Set("requestId", requestId)
155234	return c
155235}
155236
155237// Fields allows partial responses to be retrieved. See
155238// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155239// for more information.
155240func (c *TargetHttpsProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesInsertCall {
155241	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155242	return c
155243}
155244
155245// Context sets the context to be used in this call's Do method. Any
155246// pending HTTP request will be aborted if the provided context is
155247// canceled.
155248func (c *TargetHttpsProxiesInsertCall) Context(ctx context.Context) *TargetHttpsProxiesInsertCall {
155249	c.ctx_ = ctx
155250	return c
155251}
155252
155253// Header returns an http.Header that can be modified by the caller to
155254// add HTTP headers to the request.
155255func (c *TargetHttpsProxiesInsertCall) Header() http.Header {
155256	if c.header_ == nil {
155257		c.header_ = make(http.Header)
155258	}
155259	return c.header_
155260}
155261
155262func (c *TargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
155263	reqHeaders := make(http.Header)
155264	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
155265	for k, v := range c.header_ {
155266		reqHeaders[k] = v
155267	}
155268	reqHeaders.Set("User-Agent", c.s.userAgent())
155269	var body io.Reader = nil
155270	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
155271	if err != nil {
155272		return nil, err
155273	}
155274	reqHeaders.Set("Content-Type", "application/json")
155275	c.urlParams_.Set("alt", alt)
155276	c.urlParams_.Set("prettyPrint", "false")
155277	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies")
155278	urls += "?" + c.urlParams_.Encode()
155279	req, err := http.NewRequest("POST", urls, body)
155280	if err != nil {
155281		return nil, err
155282	}
155283	req.Header = reqHeaders
155284	googleapi.Expand(req.URL, map[string]string{
155285		"project": c.project,
155286	})
155287	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155288}
155289
155290// Do executes the "compute.targetHttpsProxies.insert" call.
155291// Exactly one of *Operation or error will be non-nil. Any non-2xx
155292// status code is an error. Response headers are in either
155293// *Operation.ServerResponse.Header or (if a response was returned at
155294// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
155295// to check whether the returned error was because
155296// http.StatusNotModified was returned.
155297func (c *TargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
155298	gensupport.SetOptions(c.urlParams_, opts...)
155299	res, err := c.doRequest("json")
155300	if res != nil && res.StatusCode == http.StatusNotModified {
155301		if res.Body != nil {
155302			res.Body.Close()
155303		}
155304		return nil, &googleapi.Error{
155305			Code:   res.StatusCode,
155306			Header: res.Header,
155307		}
155308	}
155309	if err != nil {
155310		return nil, err
155311	}
155312	defer googleapi.CloseBody(res)
155313	if err := googleapi.CheckResponse(res); err != nil {
155314		return nil, err
155315	}
155316	ret := &Operation{
155317		ServerResponse: googleapi.ServerResponse{
155318			Header:         res.Header,
155319			HTTPStatusCode: res.StatusCode,
155320		},
155321	}
155322	target := &ret
155323	if err := gensupport.DecodeResponse(target, res); err != nil {
155324		return nil, err
155325	}
155326	return ret, nil
155327	// {
155328	//   "description": "Creates a TargetHttpsProxy resource in the specified project using the data included in the request.",
155329	//   "flatPath": "projects/{project}/global/targetHttpsProxies",
155330	//   "httpMethod": "POST",
155331	//   "id": "compute.targetHttpsProxies.insert",
155332	//   "parameterOrder": [
155333	//     "project"
155334	//   ],
155335	//   "parameters": {
155336	//     "project": {
155337	//       "description": "Project ID for this request.",
155338	//       "location": "path",
155339	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155340	//       "required": true,
155341	//       "type": "string"
155342	//     },
155343	//     "requestId": {
155344	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
155345	//       "location": "query",
155346	//       "type": "string"
155347	//     }
155348	//   },
155349	//   "path": "projects/{project}/global/targetHttpsProxies",
155350	//   "request": {
155351	//     "$ref": "TargetHttpsProxy"
155352	//   },
155353	//   "response": {
155354	//     "$ref": "Operation"
155355	//   },
155356	//   "scopes": [
155357	//     "https://www.googleapis.com/auth/cloud-platform",
155358	//     "https://www.googleapis.com/auth/compute"
155359	//   ]
155360	// }
155361
155362}
155363
155364// method id "compute.targetHttpsProxies.list":
155365
155366type TargetHttpsProxiesListCall struct {
155367	s            *Service
155368	project      string
155369	urlParams_   gensupport.URLParams
155370	ifNoneMatch_ string
155371	ctx_         context.Context
155372	header_      http.Header
155373}
155374
155375// List: Retrieves the list of TargetHttpsProxy resources available to
155376// the specified project.
155377//
155378// - project: Project ID for this request.
155379func (r *TargetHttpsProxiesService) List(project string) *TargetHttpsProxiesListCall {
155380	c := &TargetHttpsProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155381	c.project = project
155382	return c
155383}
155384
155385// Filter sets the optional parameter "filter": A filter expression that
155386// filters resources listed in the response. The expression must specify
155387// the field name, a comparison operator, and the value that you want to
155388// use for filtering. The value must be a string, a number, or a
155389// boolean. The comparison operator must be either `=`, `!=`, `>`, or
155390// `<`. For example, if you are filtering Compute Engine instances, you
155391// can exclude instances named `example-instance` by specifying `name !=
155392// example-instance`. You can also filter nested fields. For example,
155393// you could specify `scheduling.automaticRestart = false` to include
155394// instances only if they are not scheduled for automatic restarts. You
155395// can use filtering on nested fields to filter based on resource
155396// labels. To filter on multiple expressions, provide each separate
155397// expression within parentheses. For example: ```
155398// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
155399// ``` By default, each expression is an `AND` expression. However, you
155400// can include `AND` and `OR` expressions explicitly. For example: ```
155401// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
155402// AND (scheduling.automaticRestart = true) ```
155403func (c *TargetHttpsProxiesListCall) Filter(filter string) *TargetHttpsProxiesListCall {
155404	c.urlParams_.Set("filter", filter)
155405	return c
155406}
155407
155408// MaxResults sets the optional parameter "maxResults": The maximum
155409// number of results per page that should be returned. If the number of
155410// available results is larger than `maxResults`, Compute Engine returns
155411// a `nextPageToken` that can be used to get the next page of results in
155412// subsequent list requests. Acceptable values are `0` to `500`,
155413// inclusive. (Default: `500`)
155414func (c *TargetHttpsProxiesListCall) MaxResults(maxResults int64) *TargetHttpsProxiesListCall {
155415	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
155416	return c
155417}
155418
155419// OrderBy sets the optional parameter "orderBy": Sorts list results by
155420// a certain order. By default, results are returned in alphanumerical
155421// order based on the resource name. You can also sort results in
155422// descending order based on the creation timestamp using
155423// `orderBy="creationTimestamp desc". This sorts results based on the
155424// `creationTimestamp` field in reverse chronological order (newest
155425// result first). Use this to sort resources like operations so that the
155426// newest operation is returned first. Currently, only sorting by `name`
155427// or `creationTimestamp desc` is supported.
155428func (c *TargetHttpsProxiesListCall) OrderBy(orderBy string) *TargetHttpsProxiesListCall {
155429	c.urlParams_.Set("orderBy", orderBy)
155430	return c
155431}
155432
155433// PageToken sets the optional parameter "pageToken": Specifies a page
155434// token to use. Set `pageToken` to the `nextPageToken` returned by a
155435// previous list request to get the next page of results.
155436func (c *TargetHttpsProxiesListCall) PageToken(pageToken string) *TargetHttpsProxiesListCall {
155437	c.urlParams_.Set("pageToken", pageToken)
155438	return c
155439}
155440
155441// ReturnPartialSuccess sets the optional parameter
155442// "returnPartialSuccess": Opt-in for partial success behavior which
155443// provides partial results in case of failure. The default value is
155444// false.
155445func (c *TargetHttpsProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpsProxiesListCall {
155446	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
155447	return c
155448}
155449
155450// Fields allows partial responses to be retrieved. See
155451// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155452// for more information.
155453func (c *TargetHttpsProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesListCall {
155454	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155455	return c
155456}
155457
155458// IfNoneMatch sets the optional parameter which makes the operation
155459// fail if the object's ETag matches the given value. This is useful for
155460// getting updates only after the object has changed since the last
155461// request. Use googleapi.IsNotModified to check whether the response
155462// error from Do is the result of In-None-Match.
155463func (c *TargetHttpsProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesListCall {
155464	c.ifNoneMatch_ = entityTag
155465	return c
155466}
155467
155468// Context sets the context to be used in this call's Do method. Any
155469// pending HTTP request will be aborted if the provided context is
155470// canceled.
155471func (c *TargetHttpsProxiesListCall) Context(ctx context.Context) *TargetHttpsProxiesListCall {
155472	c.ctx_ = ctx
155473	return c
155474}
155475
155476// Header returns an http.Header that can be modified by the caller to
155477// add HTTP headers to the request.
155478func (c *TargetHttpsProxiesListCall) Header() http.Header {
155479	if c.header_ == nil {
155480		c.header_ = make(http.Header)
155481	}
155482	return c.header_
155483}
155484
155485func (c *TargetHttpsProxiesListCall) doRequest(alt string) (*http.Response, error) {
155486	reqHeaders := make(http.Header)
155487	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
155488	for k, v := range c.header_ {
155489		reqHeaders[k] = v
155490	}
155491	reqHeaders.Set("User-Agent", c.s.userAgent())
155492	if c.ifNoneMatch_ != "" {
155493		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
155494	}
155495	var body io.Reader = nil
155496	c.urlParams_.Set("alt", alt)
155497	c.urlParams_.Set("prettyPrint", "false")
155498	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies")
155499	urls += "?" + c.urlParams_.Encode()
155500	req, err := http.NewRequest("GET", urls, body)
155501	if err != nil {
155502		return nil, err
155503	}
155504	req.Header = reqHeaders
155505	googleapi.Expand(req.URL, map[string]string{
155506		"project": c.project,
155507	})
155508	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155509}
155510
155511// Do executes the "compute.targetHttpsProxies.list" call.
155512// Exactly one of *TargetHttpsProxyList or error will be non-nil. Any
155513// non-2xx status code is an error. Response headers are in either
155514// *TargetHttpsProxyList.ServerResponse.Header or (if a response was
155515// returned at all) in error.(*googleapi.Error).Header. Use
155516// googleapi.IsNotModified to check whether the returned error was
155517// because http.StatusNotModified was returned.
155518func (c *TargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyList, error) {
155519	gensupport.SetOptions(c.urlParams_, opts...)
155520	res, err := c.doRequest("json")
155521	if res != nil && res.StatusCode == http.StatusNotModified {
155522		if res.Body != nil {
155523			res.Body.Close()
155524		}
155525		return nil, &googleapi.Error{
155526			Code:   res.StatusCode,
155527			Header: res.Header,
155528		}
155529	}
155530	if err != nil {
155531		return nil, err
155532	}
155533	defer googleapi.CloseBody(res)
155534	if err := googleapi.CheckResponse(res); err != nil {
155535		return nil, err
155536	}
155537	ret := &TargetHttpsProxyList{
155538		ServerResponse: googleapi.ServerResponse{
155539			Header:         res.Header,
155540			HTTPStatusCode: res.StatusCode,
155541		},
155542	}
155543	target := &ret
155544	if err := gensupport.DecodeResponse(target, res); err != nil {
155545		return nil, err
155546	}
155547	return ret, nil
155548	// {
155549	//   "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project.",
155550	//   "flatPath": "projects/{project}/global/targetHttpsProxies",
155551	//   "httpMethod": "GET",
155552	//   "id": "compute.targetHttpsProxies.list",
155553	//   "parameterOrder": [
155554	//     "project"
155555	//   ],
155556	//   "parameters": {
155557	//     "filter": {
155558	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
155559	//       "location": "query",
155560	//       "type": "string"
155561	//     },
155562	//     "maxResults": {
155563	//       "default": "500",
155564	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
155565	//       "format": "uint32",
155566	//       "location": "query",
155567	//       "minimum": "0",
155568	//       "type": "integer"
155569	//     },
155570	//     "orderBy": {
155571	//       "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.",
155572	//       "location": "query",
155573	//       "type": "string"
155574	//     },
155575	//     "pageToken": {
155576	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
155577	//       "location": "query",
155578	//       "type": "string"
155579	//     },
155580	//     "project": {
155581	//       "description": "Project ID for this request.",
155582	//       "location": "path",
155583	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155584	//       "required": true,
155585	//       "type": "string"
155586	//     },
155587	//     "returnPartialSuccess": {
155588	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
155589	//       "location": "query",
155590	//       "type": "boolean"
155591	//     }
155592	//   },
155593	//   "path": "projects/{project}/global/targetHttpsProxies",
155594	//   "response": {
155595	//     "$ref": "TargetHttpsProxyList"
155596	//   },
155597	//   "scopes": [
155598	//     "https://www.googleapis.com/auth/cloud-platform",
155599	//     "https://www.googleapis.com/auth/compute",
155600	//     "https://www.googleapis.com/auth/compute.readonly"
155601	//   ]
155602	// }
155603
155604}
155605
155606// Pages invokes f for each page of results.
155607// A non-nil error returned from f will halt the iteration.
155608// The provided context supersedes any context provided to the Context method.
155609func (c *TargetHttpsProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyList) error) error {
155610	c.ctx_ = ctx
155611	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
155612	for {
155613		x, err := c.Do()
155614		if err != nil {
155615			return err
155616		}
155617		if err := f(x); err != nil {
155618			return err
155619		}
155620		if x.NextPageToken == "" {
155621			return nil
155622		}
155623		c.PageToken(x.NextPageToken)
155624	}
155625}
155626
155627// method id "compute.targetHttpsProxies.patch":
155628
155629type TargetHttpsProxiesPatchCall struct {
155630	s                *Service
155631	project          string
155632	targetHttpsProxy string
155633	targethttpsproxy *TargetHttpsProxy
155634	urlParams_       gensupport.URLParams
155635	ctx_             context.Context
155636	header_          http.Header
155637}
155638
155639// Patch: Patches the specified TargetHttpsProxy resource with the data
155640// included in the request. This method supports PATCH semantics and
155641// uses JSON merge patch format and processing rules.
155642//
155643// - project: Project ID for this request.
155644// - targetHttpsProxy: Name of the TargetHttpsProxy resource to patch.
155645func (r *TargetHttpsProxiesService) Patch(project string, targetHttpsProxy string, targethttpsproxy *TargetHttpsProxy) *TargetHttpsProxiesPatchCall {
155646	c := &TargetHttpsProxiesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155647	c.project = project
155648	c.targetHttpsProxy = targetHttpsProxy
155649	c.targethttpsproxy = targethttpsproxy
155650	return c
155651}
155652
155653// RequestId sets the optional parameter "requestId": An optional
155654// request ID to identify requests. Specify a unique request ID so that
155655// if you must retry your request, the server will know to ignore the
155656// request if it has already been completed. For example, consider a
155657// situation where you make an initial request and the request times
155658// out. If you make the request again with the same request ID, the
155659// server can check if original operation with the same request ID was
155660// received, and if so, will ignore the second request. This prevents
155661// clients from accidentally creating duplicate commitments. The request
155662// ID must be a valid UUID with the exception that zero UUID is not
155663// supported ( 00000000-0000-0000-0000-000000000000). end_interface:
155664// MixerMutationRequestBuilder
155665func (c *TargetHttpsProxiesPatchCall) RequestId(requestId string) *TargetHttpsProxiesPatchCall {
155666	c.urlParams_.Set("requestId", requestId)
155667	return c
155668}
155669
155670// Fields allows partial responses to be retrieved. See
155671// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155672// for more information.
155673func (c *TargetHttpsProxiesPatchCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesPatchCall {
155674	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155675	return c
155676}
155677
155678// Context sets the context to be used in this call's Do method. Any
155679// pending HTTP request will be aborted if the provided context is
155680// canceled.
155681func (c *TargetHttpsProxiesPatchCall) Context(ctx context.Context) *TargetHttpsProxiesPatchCall {
155682	c.ctx_ = ctx
155683	return c
155684}
155685
155686// Header returns an http.Header that can be modified by the caller to
155687// add HTTP headers to the request.
155688func (c *TargetHttpsProxiesPatchCall) Header() http.Header {
155689	if c.header_ == nil {
155690		c.header_ = make(http.Header)
155691	}
155692	return c.header_
155693}
155694
155695func (c *TargetHttpsProxiesPatchCall) doRequest(alt string) (*http.Response, error) {
155696	reqHeaders := make(http.Header)
155697	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
155698	for k, v := range c.header_ {
155699		reqHeaders[k] = v
155700	}
155701	reqHeaders.Set("User-Agent", c.s.userAgent())
155702	var body io.Reader = nil
155703	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
155704	if err != nil {
155705		return nil, err
155706	}
155707	reqHeaders.Set("Content-Type", "application/json")
155708	c.urlParams_.Set("alt", alt)
155709	c.urlParams_.Set("prettyPrint", "false")
155710	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}")
155711	urls += "?" + c.urlParams_.Encode()
155712	req, err := http.NewRequest("PATCH", urls, body)
155713	if err != nil {
155714		return nil, err
155715	}
155716	req.Header = reqHeaders
155717	googleapi.Expand(req.URL, map[string]string{
155718		"project":          c.project,
155719		"targetHttpsProxy": c.targetHttpsProxy,
155720	})
155721	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155722}
155723
155724// Do executes the "compute.targetHttpsProxies.patch" call.
155725// Exactly one of *Operation or error will be non-nil. Any non-2xx
155726// status code is an error. Response headers are in either
155727// *Operation.ServerResponse.Header or (if a response was returned at
155728// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
155729// to check whether the returned error was because
155730// http.StatusNotModified was returned.
155731func (c *TargetHttpsProxiesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
155732	gensupport.SetOptions(c.urlParams_, opts...)
155733	res, err := c.doRequest("json")
155734	if res != nil && res.StatusCode == http.StatusNotModified {
155735		if res.Body != nil {
155736			res.Body.Close()
155737		}
155738		return nil, &googleapi.Error{
155739			Code:   res.StatusCode,
155740			Header: res.Header,
155741		}
155742	}
155743	if err != nil {
155744		return nil, err
155745	}
155746	defer googleapi.CloseBody(res)
155747	if err := googleapi.CheckResponse(res); err != nil {
155748		return nil, err
155749	}
155750	ret := &Operation{
155751		ServerResponse: googleapi.ServerResponse{
155752			Header:         res.Header,
155753			HTTPStatusCode: res.StatusCode,
155754		},
155755	}
155756	target := &ret
155757	if err := gensupport.DecodeResponse(target, res); err != nil {
155758		return nil, err
155759	}
155760	return ret, nil
155761	// {
155762	//   "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.",
155763	//   "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}",
155764	//   "httpMethod": "PATCH",
155765	//   "id": "compute.targetHttpsProxies.patch",
155766	//   "parameterOrder": [
155767	//     "project",
155768	//     "targetHttpsProxy"
155769	//   ],
155770	//   "parameters": {
155771	//     "project": {
155772	//       "description": "Project ID for this request.",
155773	//       "location": "path",
155774	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155775	//       "required": true,
155776	//       "type": "string"
155777	//     },
155778	//     "requestId": {
155779	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating 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",
155780	//       "location": "query",
155781	//       "type": "string"
155782	//     },
155783	//     "targetHttpsProxy": {
155784	//       "description": "Name of the TargetHttpsProxy resource to patch.",
155785	//       "location": "path",
155786	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
155787	//       "required": true,
155788	//       "type": "string"
155789	//     }
155790	//   },
155791	//   "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}",
155792	//   "request": {
155793	//     "$ref": "TargetHttpsProxy"
155794	//   },
155795	//   "response": {
155796	//     "$ref": "Operation"
155797	//   },
155798	//   "scopes": [
155799	//     "https://www.googleapis.com/auth/cloud-platform",
155800	//     "https://www.googleapis.com/auth/compute"
155801	//   ]
155802	// }
155803
155804}
155805
155806// method id "compute.targetHttpsProxies.setQuicOverride":
155807
155808type TargetHttpsProxiesSetQuicOverrideCall struct {
155809	s                                        *Service
155810	project                                  string
155811	targetHttpsProxy                         string
155812	targethttpsproxiessetquicoverriderequest *TargetHttpsProxiesSetQuicOverrideRequest
155813	urlParams_                               gensupport.URLParams
155814	ctx_                                     context.Context
155815	header_                                  http.Header
155816}
155817
155818// SetQuicOverride: Sets the QUIC override policy for TargetHttpsProxy.
155819//
155820// - project: Project ID for this request.
155821// - targetHttpsProxy: Name of the TargetHttpsProxy resource to set the
155822//   QUIC override policy for. The name should conform to RFC1035.
155823func (r *TargetHttpsProxiesService) SetQuicOverride(project string, targetHttpsProxy string, targethttpsproxiessetquicoverriderequest *TargetHttpsProxiesSetQuicOverrideRequest) *TargetHttpsProxiesSetQuicOverrideCall {
155824	c := &TargetHttpsProxiesSetQuicOverrideCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155825	c.project = project
155826	c.targetHttpsProxy = targetHttpsProxy
155827	c.targethttpsproxiessetquicoverriderequest = targethttpsproxiessetquicoverriderequest
155828	return c
155829}
155830
155831// RequestId sets the optional parameter "requestId": An optional
155832// request ID to identify requests. Specify a unique request ID so that
155833// if you must retry your request, the server will know to ignore the
155834// request if it has already been completed. For example, consider a
155835// situation where you make an initial request and the request times
155836// out. If you make the request again with the same request ID, the
155837// server can check if original operation with the same request ID was
155838// received, and if so, will ignore the second request. This prevents
155839// clients from accidentally creating duplicate commitments. The request
155840// ID must be a valid UUID with the exception that zero UUID is not
155841// supported ( 00000000-0000-0000-0000-000000000000).
155842func (c *TargetHttpsProxiesSetQuicOverrideCall) RequestId(requestId string) *TargetHttpsProxiesSetQuicOverrideCall {
155843	c.urlParams_.Set("requestId", requestId)
155844	return c
155845}
155846
155847// Fields allows partial responses to be retrieved. See
155848// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155849// for more information.
155850func (c *TargetHttpsProxiesSetQuicOverrideCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetQuicOverrideCall {
155851	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155852	return c
155853}
155854
155855// Context sets the context to be used in this call's Do method. Any
155856// pending HTTP request will be aborted if the provided context is
155857// canceled.
155858func (c *TargetHttpsProxiesSetQuicOverrideCall) Context(ctx context.Context) *TargetHttpsProxiesSetQuicOverrideCall {
155859	c.ctx_ = ctx
155860	return c
155861}
155862
155863// Header returns an http.Header that can be modified by the caller to
155864// add HTTP headers to the request.
155865func (c *TargetHttpsProxiesSetQuicOverrideCall) Header() http.Header {
155866	if c.header_ == nil {
155867		c.header_ = make(http.Header)
155868	}
155869	return c.header_
155870}
155871
155872func (c *TargetHttpsProxiesSetQuicOverrideCall) doRequest(alt string) (*http.Response, error) {
155873	reqHeaders := make(http.Header)
155874	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
155875	for k, v := range c.header_ {
155876		reqHeaders[k] = v
155877	}
155878	reqHeaders.Set("User-Agent", c.s.userAgent())
155879	var body io.Reader = nil
155880	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxiessetquicoverriderequest)
155881	if err != nil {
155882		return nil, err
155883	}
155884	reqHeaders.Set("Content-Type", "application/json")
155885	c.urlParams_.Set("alt", alt)
155886	c.urlParams_.Set("prettyPrint", "false")
155887	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride")
155888	urls += "?" + c.urlParams_.Encode()
155889	req, err := http.NewRequest("POST", urls, body)
155890	if err != nil {
155891		return nil, err
155892	}
155893	req.Header = reqHeaders
155894	googleapi.Expand(req.URL, map[string]string{
155895		"project":          c.project,
155896		"targetHttpsProxy": c.targetHttpsProxy,
155897	})
155898	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155899}
155900
155901// Do executes the "compute.targetHttpsProxies.setQuicOverride" call.
155902// Exactly one of *Operation or error will be non-nil. Any non-2xx
155903// status code is an error. Response headers are in either
155904// *Operation.ServerResponse.Header or (if a response was returned at
155905// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
155906// to check whether the returned error was because
155907// http.StatusNotModified was returned.
155908func (c *TargetHttpsProxiesSetQuicOverrideCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
155909	gensupport.SetOptions(c.urlParams_, opts...)
155910	res, err := c.doRequest("json")
155911	if res != nil && res.StatusCode == http.StatusNotModified {
155912		if res.Body != nil {
155913			res.Body.Close()
155914		}
155915		return nil, &googleapi.Error{
155916			Code:   res.StatusCode,
155917			Header: res.Header,
155918		}
155919	}
155920	if err != nil {
155921		return nil, err
155922	}
155923	defer googleapi.CloseBody(res)
155924	if err := googleapi.CheckResponse(res); err != nil {
155925		return nil, err
155926	}
155927	ret := &Operation{
155928		ServerResponse: googleapi.ServerResponse{
155929			Header:         res.Header,
155930			HTTPStatusCode: res.StatusCode,
155931		},
155932	}
155933	target := &ret
155934	if err := gensupport.DecodeResponse(target, res); err != nil {
155935		return nil, err
155936	}
155937	return ret, nil
155938	// {
155939	//   "description": "Sets the QUIC override policy for TargetHttpsProxy.",
155940	//   "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride",
155941	//   "httpMethod": "POST",
155942	//   "id": "compute.targetHttpsProxies.setQuicOverride",
155943	//   "parameterOrder": [
155944	//     "project",
155945	//     "targetHttpsProxy"
155946	//   ],
155947	//   "parameters": {
155948	//     "project": {
155949	//       "description": "Project ID for this request.",
155950	//       "location": "path",
155951	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155952	//       "required": true,
155953	//       "type": "string"
155954	//     },
155955	//     "requestId": {
155956	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
155957	//       "location": "query",
155958	//       "type": "string"
155959	//     },
155960	//     "targetHttpsProxy": {
155961	//       "description": "Name of the TargetHttpsProxy resource to set the QUIC override policy for. The name should conform to RFC1035.",
155962	//       "location": "path",
155963	//       "required": true,
155964	//       "type": "string"
155965	//     }
155966	//   },
155967	//   "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride",
155968	//   "request": {
155969	//     "$ref": "TargetHttpsProxiesSetQuicOverrideRequest"
155970	//   },
155971	//   "response": {
155972	//     "$ref": "Operation"
155973	//   },
155974	//   "scopes": [
155975	//     "https://www.googleapis.com/auth/cloud-platform",
155976	//     "https://www.googleapis.com/auth/compute"
155977	//   ]
155978	// }
155979
155980}
155981
155982// method id "compute.targetHttpsProxies.setSslCertificates":
155983
155984type TargetHttpsProxiesSetSslCertificatesCall struct {
155985	s                                           *Service
155986	project                                     string
155987	targetHttpsProxy                            string
155988	targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest
155989	urlParams_                                  gensupport.URLParams
155990	ctx_                                        context.Context
155991	header_                                     http.Header
155992}
155993
155994// SetSslCertificates: Replaces SslCertificates for TargetHttpsProxy.
155995//
155996// - project: Project ID for this request.
155997// - targetHttpsProxy: Name of the TargetHttpsProxy resource to set an
155998//   SslCertificates resource for.
155999func (r *TargetHttpsProxiesService) SetSslCertificates(project string, targetHttpsProxy string, targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest) *TargetHttpsProxiesSetSslCertificatesCall {
156000	c := &TargetHttpsProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156001	c.project = project
156002	c.targetHttpsProxy = targetHttpsProxy
156003	c.targethttpsproxiessetsslcertificatesrequest = targethttpsproxiessetsslcertificatesrequest
156004	return c
156005}
156006
156007// RequestId sets the optional parameter "requestId": An optional
156008// request ID to identify requests. Specify a unique request ID so that
156009// if you must retry your request, the server will know to ignore the
156010// request if it has already been completed. For example, consider a
156011// situation where you make an initial request and the request times
156012// out. If you make the request again with the same request ID, the
156013// server can check if original operation with the same request ID was
156014// received, and if so, will ignore the second request. This prevents
156015// clients from accidentally creating duplicate commitments. The request
156016// ID must be a valid UUID with the exception that zero UUID is not
156017// supported ( 00000000-0000-0000-0000-000000000000).
156018func (c *TargetHttpsProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetHttpsProxiesSetSslCertificatesCall {
156019	c.urlParams_.Set("requestId", requestId)
156020	return c
156021}
156022
156023// Fields allows partial responses to be retrieved. See
156024// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156025// for more information.
156026func (c *TargetHttpsProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslCertificatesCall {
156027	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156028	return c
156029}
156030
156031// Context sets the context to be used in this call's Do method. Any
156032// pending HTTP request will be aborted if the provided context is
156033// canceled.
156034func (c *TargetHttpsProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslCertificatesCall {
156035	c.ctx_ = ctx
156036	return c
156037}
156038
156039// Header returns an http.Header that can be modified by the caller to
156040// add HTTP headers to the request.
156041func (c *TargetHttpsProxiesSetSslCertificatesCall) Header() http.Header {
156042	if c.header_ == nil {
156043		c.header_ = make(http.Header)
156044	}
156045	return c.header_
156046}
156047
156048func (c *TargetHttpsProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
156049	reqHeaders := make(http.Header)
156050	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
156051	for k, v := range c.header_ {
156052		reqHeaders[k] = v
156053	}
156054	reqHeaders.Set("User-Agent", c.s.userAgent())
156055	var body io.Reader = nil
156056	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxiessetsslcertificatesrequest)
156057	if err != nil {
156058		return nil, err
156059	}
156060	reqHeaders.Set("Content-Type", "application/json")
156061	c.urlParams_.Set("alt", alt)
156062	c.urlParams_.Set("prettyPrint", "false")
156063	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates")
156064	urls += "?" + c.urlParams_.Encode()
156065	req, err := http.NewRequest("POST", urls, body)
156066	if err != nil {
156067		return nil, err
156068	}
156069	req.Header = reqHeaders
156070	googleapi.Expand(req.URL, map[string]string{
156071		"project":          c.project,
156072		"targetHttpsProxy": c.targetHttpsProxy,
156073	})
156074	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156075}
156076
156077// Do executes the "compute.targetHttpsProxies.setSslCertificates" call.
156078// Exactly one of *Operation or error will be non-nil. Any non-2xx
156079// status code is an error. Response headers are in either
156080// *Operation.ServerResponse.Header or (if a response was returned at
156081// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
156082// to check whether the returned error was because
156083// http.StatusNotModified was returned.
156084func (c *TargetHttpsProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
156085	gensupport.SetOptions(c.urlParams_, opts...)
156086	res, err := c.doRequest("json")
156087	if res != nil && res.StatusCode == http.StatusNotModified {
156088		if res.Body != nil {
156089			res.Body.Close()
156090		}
156091		return nil, &googleapi.Error{
156092			Code:   res.StatusCode,
156093			Header: res.Header,
156094		}
156095	}
156096	if err != nil {
156097		return nil, err
156098	}
156099	defer googleapi.CloseBody(res)
156100	if err := googleapi.CheckResponse(res); err != nil {
156101		return nil, err
156102	}
156103	ret := &Operation{
156104		ServerResponse: googleapi.ServerResponse{
156105			Header:         res.Header,
156106			HTTPStatusCode: res.StatusCode,
156107		},
156108	}
156109	target := &ret
156110	if err := gensupport.DecodeResponse(target, res); err != nil {
156111		return nil, err
156112	}
156113	return ret, nil
156114	// {
156115	//   "description": "Replaces SslCertificates for TargetHttpsProxy.",
156116	//   "flatPath": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
156117	//   "httpMethod": "POST",
156118	//   "id": "compute.targetHttpsProxies.setSslCertificates",
156119	//   "parameterOrder": [
156120	//     "project",
156121	//     "targetHttpsProxy"
156122	//   ],
156123	//   "parameters": {
156124	//     "project": {
156125	//       "description": "Project ID for this request.",
156126	//       "location": "path",
156127	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156128	//       "required": true,
156129	//       "type": "string"
156130	//     },
156131	//     "requestId": {
156132	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
156133	//       "location": "query",
156134	//       "type": "string"
156135	//     },
156136	//     "targetHttpsProxy": {
156137	//       "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.",
156138	//       "location": "path",
156139	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156140	//       "required": true,
156141	//       "type": "string"
156142	//     }
156143	//   },
156144	//   "path": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
156145	//   "request": {
156146	//     "$ref": "TargetHttpsProxiesSetSslCertificatesRequest"
156147	//   },
156148	//   "response": {
156149	//     "$ref": "Operation"
156150	//   },
156151	//   "scopes": [
156152	//     "https://www.googleapis.com/auth/cloud-platform",
156153	//     "https://www.googleapis.com/auth/compute"
156154	//   ]
156155	// }
156156
156157}
156158
156159// method id "compute.targetHttpsProxies.setSslPolicy":
156160
156161type TargetHttpsProxiesSetSslPolicyCall struct {
156162	s                  *Service
156163	project            string
156164	targetHttpsProxy   string
156165	sslpolicyreference *SslPolicyReference
156166	urlParams_         gensupport.URLParams
156167	ctx_               context.Context
156168	header_            http.Header
156169}
156170
156171// SetSslPolicy: Sets the SSL policy for TargetHttpsProxy. The SSL
156172// policy specifies the server-side support for SSL features. This
156173// affects connections between clients and the HTTPS proxy load
156174// balancer. They do not affect the connection between the load balancer
156175// and the backends.
156176//
156177// - project: Project ID for this request.
156178// - targetHttpsProxy: Name of the TargetHttpsProxy resource whose SSL
156179//   policy is to be set. The name must be 1-63 characters long, and
156180//   comply with RFC1035.
156181func (r *TargetHttpsProxiesService) SetSslPolicy(project string, targetHttpsProxy string, sslpolicyreference *SslPolicyReference) *TargetHttpsProxiesSetSslPolicyCall {
156182	c := &TargetHttpsProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156183	c.project = project
156184	c.targetHttpsProxy = targetHttpsProxy
156185	c.sslpolicyreference = sslpolicyreference
156186	return c
156187}
156188
156189// RequestId sets the optional parameter "requestId": An optional
156190// request ID to identify requests. Specify a unique request ID so that
156191// if you must retry your request, the server will know to ignore the
156192// request if it has already been completed. For example, consider a
156193// situation where you make an initial request and the request times
156194// out. If you make the request again with the same request ID, the
156195// server can check if original operation with the same request ID was
156196// received, and if so, will ignore the second request. This prevents
156197// clients from accidentally creating duplicate commitments. The request
156198// ID must be a valid UUID with the exception that zero UUID is not
156199// supported ( 00000000-0000-0000-0000-000000000000).
156200func (c *TargetHttpsProxiesSetSslPolicyCall) RequestId(requestId string) *TargetHttpsProxiesSetSslPolicyCall {
156201	c.urlParams_.Set("requestId", requestId)
156202	return c
156203}
156204
156205// Fields allows partial responses to be retrieved. See
156206// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156207// for more information.
156208func (c *TargetHttpsProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslPolicyCall {
156209	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156210	return c
156211}
156212
156213// Context sets the context to be used in this call's Do method. Any
156214// pending HTTP request will be aborted if the provided context is
156215// canceled.
156216func (c *TargetHttpsProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslPolicyCall {
156217	c.ctx_ = ctx
156218	return c
156219}
156220
156221// Header returns an http.Header that can be modified by the caller to
156222// add HTTP headers to the request.
156223func (c *TargetHttpsProxiesSetSslPolicyCall) Header() http.Header {
156224	if c.header_ == nil {
156225		c.header_ = make(http.Header)
156226	}
156227	return c.header_
156228}
156229
156230func (c *TargetHttpsProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) {
156231	reqHeaders := make(http.Header)
156232	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
156233	for k, v := range c.header_ {
156234		reqHeaders[k] = v
156235	}
156236	reqHeaders.Set("User-Agent", c.s.userAgent())
156237	var body io.Reader = nil
156238	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicyreference)
156239	if err != nil {
156240		return nil, err
156241	}
156242	reqHeaders.Set("Content-Type", "application/json")
156243	c.urlParams_.Set("alt", alt)
156244	c.urlParams_.Set("prettyPrint", "false")
156245	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy")
156246	urls += "?" + c.urlParams_.Encode()
156247	req, err := http.NewRequest("POST", urls, body)
156248	if err != nil {
156249		return nil, err
156250	}
156251	req.Header = reqHeaders
156252	googleapi.Expand(req.URL, map[string]string{
156253		"project":          c.project,
156254		"targetHttpsProxy": c.targetHttpsProxy,
156255	})
156256	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156257}
156258
156259// Do executes the "compute.targetHttpsProxies.setSslPolicy" call.
156260// Exactly one of *Operation or error will be non-nil. Any non-2xx
156261// status code is an error. Response headers are in either
156262// *Operation.ServerResponse.Header or (if a response was returned at
156263// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
156264// to check whether the returned error was because
156265// http.StatusNotModified was returned.
156266func (c *TargetHttpsProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
156267	gensupport.SetOptions(c.urlParams_, opts...)
156268	res, err := c.doRequest("json")
156269	if res != nil && res.StatusCode == http.StatusNotModified {
156270		if res.Body != nil {
156271			res.Body.Close()
156272		}
156273		return nil, &googleapi.Error{
156274			Code:   res.StatusCode,
156275			Header: res.Header,
156276		}
156277	}
156278	if err != nil {
156279		return nil, err
156280	}
156281	defer googleapi.CloseBody(res)
156282	if err := googleapi.CheckResponse(res); err != nil {
156283		return nil, err
156284	}
156285	ret := &Operation{
156286		ServerResponse: googleapi.ServerResponse{
156287			Header:         res.Header,
156288			HTTPStatusCode: res.StatusCode,
156289		},
156290	}
156291	target := &ret
156292	if err := gensupport.DecodeResponse(target, res); err != nil {
156293		return nil, err
156294	}
156295	return ret, nil
156296	// {
156297	//   "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.",
156298	//   "flatPath": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy",
156299	//   "httpMethod": "POST",
156300	//   "id": "compute.targetHttpsProxies.setSslPolicy",
156301	//   "parameterOrder": [
156302	//     "project",
156303	//     "targetHttpsProxy"
156304	//   ],
156305	//   "parameters": {
156306	//     "project": {
156307	//       "description": "Project ID for this request.",
156308	//       "location": "path",
156309	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156310	//       "required": true,
156311	//       "type": "string"
156312	//     },
156313	//     "requestId": {
156314	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
156315	//       "location": "query",
156316	//       "type": "string"
156317	//     },
156318	//     "targetHttpsProxy": {
156319	//       "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.",
156320	//       "location": "path",
156321	//       "required": true,
156322	//       "type": "string"
156323	//     }
156324	//   },
156325	//   "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy",
156326	//   "request": {
156327	//     "$ref": "SslPolicyReference"
156328	//   },
156329	//   "response": {
156330	//     "$ref": "Operation"
156331	//   },
156332	//   "scopes": [
156333	//     "https://www.googleapis.com/auth/cloud-platform",
156334	//     "https://www.googleapis.com/auth/compute"
156335	//   ]
156336	// }
156337
156338}
156339
156340// method id "compute.targetHttpsProxies.setUrlMap":
156341
156342type TargetHttpsProxiesSetUrlMapCall struct {
156343	s                *Service
156344	project          string
156345	targetHttpsProxy string
156346	urlmapreference  *UrlMapReference
156347	urlParams_       gensupport.URLParams
156348	ctx_             context.Context
156349	header_          http.Header
156350}
156351
156352// SetUrlMap: Changes the URL map for TargetHttpsProxy.
156353//
156354// - project: Project ID for this request.
156355// - targetHttpsProxy: Name of the TargetHttpsProxy resource whose URL
156356//   map is to be set.
156357func (r *TargetHttpsProxiesService) SetUrlMap(project string, targetHttpsProxy string, urlmapreference *UrlMapReference) *TargetHttpsProxiesSetUrlMapCall {
156358	c := &TargetHttpsProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156359	c.project = project
156360	c.targetHttpsProxy = targetHttpsProxy
156361	c.urlmapreference = urlmapreference
156362	return c
156363}
156364
156365// RequestId sets the optional parameter "requestId": An optional
156366// request ID to identify requests. Specify a unique request ID so that
156367// if you must retry your request, the server will know to ignore the
156368// request if it has already been completed. For example, consider a
156369// situation where you make an initial request and the request times
156370// out. If you make the request again with the same request ID, the
156371// server can check if original operation with the same request ID was
156372// received, and if so, will ignore the second request. This prevents
156373// clients from accidentally creating duplicate commitments. The request
156374// ID must be a valid UUID with the exception that zero UUID is not
156375// supported ( 00000000-0000-0000-0000-000000000000).
156376func (c *TargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpsProxiesSetUrlMapCall {
156377	c.urlParams_.Set("requestId", requestId)
156378	return c
156379}
156380
156381// Fields allows partial responses to be retrieved. See
156382// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156383// for more information.
156384func (c *TargetHttpsProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetUrlMapCall {
156385	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156386	return c
156387}
156388
156389// Context sets the context to be used in this call's Do method. Any
156390// pending HTTP request will be aborted if the provided context is
156391// canceled.
156392func (c *TargetHttpsProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpsProxiesSetUrlMapCall {
156393	c.ctx_ = ctx
156394	return c
156395}
156396
156397// Header returns an http.Header that can be modified by the caller to
156398// add HTTP headers to the request.
156399func (c *TargetHttpsProxiesSetUrlMapCall) Header() http.Header {
156400	if c.header_ == nil {
156401		c.header_ = make(http.Header)
156402	}
156403	return c.header_
156404}
156405
156406func (c *TargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
156407	reqHeaders := make(http.Header)
156408	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
156409	for k, v := range c.header_ {
156410		reqHeaders[k] = v
156411	}
156412	reqHeaders.Set("User-Agent", c.s.userAgent())
156413	var body io.Reader = nil
156414	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
156415	if err != nil {
156416		return nil, err
156417	}
156418	reqHeaders.Set("Content-Type", "application/json")
156419	c.urlParams_.Set("alt", alt)
156420	c.urlParams_.Set("prettyPrint", "false")
156421	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap")
156422	urls += "?" + c.urlParams_.Encode()
156423	req, err := http.NewRequest("POST", urls, body)
156424	if err != nil {
156425		return nil, err
156426	}
156427	req.Header = reqHeaders
156428	googleapi.Expand(req.URL, map[string]string{
156429		"project":          c.project,
156430		"targetHttpsProxy": c.targetHttpsProxy,
156431	})
156432	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156433}
156434
156435// Do executes the "compute.targetHttpsProxies.setUrlMap" call.
156436// Exactly one of *Operation or error will be non-nil. Any non-2xx
156437// status code is an error. Response headers are in either
156438// *Operation.ServerResponse.Header or (if a response was returned at
156439// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
156440// to check whether the returned error was because
156441// http.StatusNotModified was returned.
156442func (c *TargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
156443	gensupport.SetOptions(c.urlParams_, opts...)
156444	res, err := c.doRequest("json")
156445	if res != nil && res.StatusCode == http.StatusNotModified {
156446		if res.Body != nil {
156447			res.Body.Close()
156448		}
156449		return nil, &googleapi.Error{
156450			Code:   res.StatusCode,
156451			Header: res.Header,
156452		}
156453	}
156454	if err != nil {
156455		return nil, err
156456	}
156457	defer googleapi.CloseBody(res)
156458	if err := googleapi.CheckResponse(res); err != nil {
156459		return nil, err
156460	}
156461	ret := &Operation{
156462		ServerResponse: googleapi.ServerResponse{
156463			Header:         res.Header,
156464			HTTPStatusCode: res.StatusCode,
156465		},
156466	}
156467	target := &ret
156468	if err := gensupport.DecodeResponse(target, res); err != nil {
156469		return nil, err
156470	}
156471	return ret, nil
156472	// {
156473	//   "description": "Changes the URL map for TargetHttpsProxy.",
156474	//   "flatPath": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
156475	//   "httpMethod": "POST",
156476	//   "id": "compute.targetHttpsProxies.setUrlMap",
156477	//   "parameterOrder": [
156478	//     "project",
156479	//     "targetHttpsProxy"
156480	//   ],
156481	//   "parameters": {
156482	//     "project": {
156483	//       "description": "Project ID for this request.",
156484	//       "location": "path",
156485	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156486	//       "required": true,
156487	//       "type": "string"
156488	//     },
156489	//     "requestId": {
156490	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
156491	//       "location": "query",
156492	//       "type": "string"
156493	//     },
156494	//     "targetHttpsProxy": {
156495	//       "description": "Name of the TargetHttpsProxy resource whose URL map is to be set.",
156496	//       "location": "path",
156497	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156498	//       "required": true,
156499	//       "type": "string"
156500	//     }
156501	//   },
156502	//   "path": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
156503	//   "request": {
156504	//     "$ref": "UrlMapReference"
156505	//   },
156506	//   "response": {
156507	//     "$ref": "Operation"
156508	//   },
156509	//   "scopes": [
156510	//     "https://www.googleapis.com/auth/cloud-platform",
156511	//     "https://www.googleapis.com/auth/compute"
156512	//   ]
156513	// }
156514
156515}
156516
156517// method id "compute.targetInstances.aggregatedList":
156518
156519type TargetInstancesAggregatedListCall struct {
156520	s            *Service
156521	project      string
156522	urlParams_   gensupport.URLParams
156523	ifNoneMatch_ string
156524	ctx_         context.Context
156525	header_      http.Header
156526}
156527
156528// AggregatedList: Retrieves an aggregated list of target instances.
156529//
156530// - project: Project ID for this request.
156531func (r *TargetInstancesService) AggregatedList(project string) *TargetInstancesAggregatedListCall {
156532	c := &TargetInstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156533	c.project = project
156534	return c
156535}
156536
156537// Filter sets the optional parameter "filter": A filter expression that
156538// filters resources listed in the response. The expression must specify
156539// the field name, a comparison operator, and the value that you want to
156540// use for filtering. The value must be a string, a number, or a
156541// boolean. The comparison operator must be either `=`, `!=`, `>`, or
156542// `<`. For example, if you are filtering Compute Engine instances, you
156543// can exclude instances named `example-instance` by specifying `name !=
156544// example-instance`. You can also filter nested fields. For example,
156545// you could specify `scheduling.automaticRestart = false` to include
156546// instances only if they are not scheduled for automatic restarts. You
156547// can use filtering on nested fields to filter based on resource
156548// labels. To filter on multiple expressions, provide each separate
156549// expression within parentheses. For example: ```
156550// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
156551// ``` By default, each expression is an `AND` expression. However, you
156552// can include `AND` and `OR` expressions explicitly. For example: ```
156553// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
156554// AND (scheduling.automaticRestart = true) ```
156555func (c *TargetInstancesAggregatedListCall) Filter(filter string) *TargetInstancesAggregatedListCall {
156556	c.urlParams_.Set("filter", filter)
156557	return c
156558}
156559
156560// IncludeAllScopes sets the optional parameter "includeAllScopes":
156561// Indicates whether every visible scope for each scope type (zone,
156562// region, global) should be included in the response. For new resource
156563// types added after this field, the flag has no effect as new resource
156564// types will always include every visible scope for each scope type in
156565// response. For resource types which predate this field, if this flag
156566// is omitted or false, only scopes of the scope types where the
156567// resource type is expected to be found will be included.
156568func (c *TargetInstancesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetInstancesAggregatedListCall {
156569	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
156570	return c
156571}
156572
156573// MaxResults sets the optional parameter "maxResults": The maximum
156574// number of results per page that should be returned. If the number of
156575// available results is larger than `maxResults`, Compute Engine returns
156576// a `nextPageToken` that can be used to get the next page of results in
156577// subsequent list requests. Acceptable values are `0` to `500`,
156578// inclusive. (Default: `500`)
156579func (c *TargetInstancesAggregatedListCall) MaxResults(maxResults int64) *TargetInstancesAggregatedListCall {
156580	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
156581	return c
156582}
156583
156584// OrderBy sets the optional parameter "orderBy": Sorts list results by
156585// a certain order. By default, results are returned in alphanumerical
156586// order based on the resource name. You can also sort results in
156587// descending order based on the creation timestamp using
156588// `orderBy="creationTimestamp desc". This sorts results based on the
156589// `creationTimestamp` field in reverse chronological order (newest
156590// result first). Use this to sort resources like operations so that the
156591// newest operation is returned first. Currently, only sorting by `name`
156592// or `creationTimestamp desc` is supported.
156593func (c *TargetInstancesAggregatedListCall) OrderBy(orderBy string) *TargetInstancesAggregatedListCall {
156594	c.urlParams_.Set("orderBy", orderBy)
156595	return c
156596}
156597
156598// PageToken sets the optional parameter "pageToken": Specifies a page
156599// token to use. Set `pageToken` to the `nextPageToken` returned by a
156600// previous list request to get the next page of results.
156601func (c *TargetInstancesAggregatedListCall) PageToken(pageToken string) *TargetInstancesAggregatedListCall {
156602	c.urlParams_.Set("pageToken", pageToken)
156603	return c
156604}
156605
156606// ReturnPartialSuccess sets the optional parameter
156607// "returnPartialSuccess": Opt-in for partial success behavior which
156608// provides partial results in case of failure. The default value is
156609// false.
156610func (c *TargetInstancesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetInstancesAggregatedListCall {
156611	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
156612	return c
156613}
156614
156615// Fields allows partial responses to be retrieved. See
156616// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156617// for more information.
156618func (c *TargetInstancesAggregatedListCall) Fields(s ...googleapi.Field) *TargetInstancesAggregatedListCall {
156619	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156620	return c
156621}
156622
156623// IfNoneMatch sets the optional parameter which makes the operation
156624// fail if the object's ETag matches the given value. This is useful for
156625// getting updates only after the object has changed since the last
156626// request. Use googleapi.IsNotModified to check whether the response
156627// error from Do is the result of In-None-Match.
156628func (c *TargetInstancesAggregatedListCall) IfNoneMatch(entityTag string) *TargetInstancesAggregatedListCall {
156629	c.ifNoneMatch_ = entityTag
156630	return c
156631}
156632
156633// Context sets the context to be used in this call's Do method. Any
156634// pending HTTP request will be aborted if the provided context is
156635// canceled.
156636func (c *TargetInstancesAggregatedListCall) Context(ctx context.Context) *TargetInstancesAggregatedListCall {
156637	c.ctx_ = ctx
156638	return c
156639}
156640
156641// Header returns an http.Header that can be modified by the caller to
156642// add HTTP headers to the request.
156643func (c *TargetInstancesAggregatedListCall) Header() http.Header {
156644	if c.header_ == nil {
156645		c.header_ = make(http.Header)
156646	}
156647	return c.header_
156648}
156649
156650func (c *TargetInstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
156651	reqHeaders := make(http.Header)
156652	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
156653	for k, v := range c.header_ {
156654		reqHeaders[k] = v
156655	}
156656	reqHeaders.Set("User-Agent", c.s.userAgent())
156657	if c.ifNoneMatch_ != "" {
156658		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
156659	}
156660	var body io.Reader = nil
156661	c.urlParams_.Set("alt", alt)
156662	c.urlParams_.Set("prettyPrint", "false")
156663	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetInstances")
156664	urls += "?" + c.urlParams_.Encode()
156665	req, err := http.NewRequest("GET", urls, body)
156666	if err != nil {
156667		return nil, err
156668	}
156669	req.Header = reqHeaders
156670	googleapi.Expand(req.URL, map[string]string{
156671		"project": c.project,
156672	})
156673	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156674}
156675
156676// Do executes the "compute.targetInstances.aggregatedList" call.
156677// Exactly one of *TargetInstanceAggregatedList or error will be
156678// non-nil. Any non-2xx status code is an error. Response headers are in
156679// either *TargetInstanceAggregatedList.ServerResponse.Header or (if a
156680// response was returned at all) in error.(*googleapi.Error).Header. Use
156681// googleapi.IsNotModified to check whether the returned error was
156682// because http.StatusNotModified was returned.
156683func (c *TargetInstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceAggregatedList, error) {
156684	gensupport.SetOptions(c.urlParams_, opts...)
156685	res, err := c.doRequest("json")
156686	if res != nil && res.StatusCode == http.StatusNotModified {
156687		if res.Body != nil {
156688			res.Body.Close()
156689		}
156690		return nil, &googleapi.Error{
156691			Code:   res.StatusCode,
156692			Header: res.Header,
156693		}
156694	}
156695	if err != nil {
156696		return nil, err
156697	}
156698	defer googleapi.CloseBody(res)
156699	if err := googleapi.CheckResponse(res); err != nil {
156700		return nil, err
156701	}
156702	ret := &TargetInstanceAggregatedList{
156703		ServerResponse: googleapi.ServerResponse{
156704			Header:         res.Header,
156705			HTTPStatusCode: res.StatusCode,
156706		},
156707	}
156708	target := &ret
156709	if err := gensupport.DecodeResponse(target, res); err != nil {
156710		return nil, err
156711	}
156712	return ret, nil
156713	// {
156714	//   "description": "Retrieves an aggregated list of target instances.",
156715	//   "flatPath": "projects/{project}/aggregated/targetInstances",
156716	//   "httpMethod": "GET",
156717	//   "id": "compute.targetInstances.aggregatedList",
156718	//   "parameterOrder": [
156719	//     "project"
156720	//   ],
156721	//   "parameters": {
156722	//     "filter": {
156723	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
156724	//       "location": "query",
156725	//       "type": "string"
156726	//     },
156727	//     "includeAllScopes": {
156728	//       "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.",
156729	//       "location": "query",
156730	//       "type": "boolean"
156731	//     },
156732	//     "maxResults": {
156733	//       "default": "500",
156734	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
156735	//       "format": "uint32",
156736	//       "location": "query",
156737	//       "minimum": "0",
156738	//       "type": "integer"
156739	//     },
156740	//     "orderBy": {
156741	//       "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.",
156742	//       "location": "query",
156743	//       "type": "string"
156744	//     },
156745	//     "pageToken": {
156746	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
156747	//       "location": "query",
156748	//       "type": "string"
156749	//     },
156750	//     "project": {
156751	//       "description": "Project ID for this request.",
156752	//       "location": "path",
156753	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156754	//       "required": true,
156755	//       "type": "string"
156756	//     },
156757	//     "returnPartialSuccess": {
156758	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
156759	//       "location": "query",
156760	//       "type": "boolean"
156761	//     }
156762	//   },
156763	//   "path": "projects/{project}/aggregated/targetInstances",
156764	//   "response": {
156765	//     "$ref": "TargetInstanceAggregatedList"
156766	//   },
156767	//   "scopes": [
156768	//     "https://www.googleapis.com/auth/cloud-platform",
156769	//     "https://www.googleapis.com/auth/compute",
156770	//     "https://www.googleapis.com/auth/compute.readonly"
156771	//   ]
156772	// }
156773
156774}
156775
156776// Pages invokes f for each page of results.
156777// A non-nil error returned from f will halt the iteration.
156778// The provided context supersedes any context provided to the Context method.
156779func (c *TargetInstancesAggregatedListCall) Pages(ctx context.Context, f func(*TargetInstanceAggregatedList) error) error {
156780	c.ctx_ = ctx
156781	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
156782	for {
156783		x, err := c.Do()
156784		if err != nil {
156785			return err
156786		}
156787		if err := f(x); err != nil {
156788			return err
156789		}
156790		if x.NextPageToken == "" {
156791			return nil
156792		}
156793		c.PageToken(x.NextPageToken)
156794	}
156795}
156796
156797// method id "compute.targetInstances.delete":
156798
156799type TargetInstancesDeleteCall struct {
156800	s              *Service
156801	project        string
156802	zone           string
156803	targetInstance string
156804	urlParams_     gensupport.URLParams
156805	ctx_           context.Context
156806	header_        http.Header
156807}
156808
156809// Delete: Deletes the specified TargetInstance resource.
156810//
156811// - project: Project ID for this request.
156812// - targetInstance: Name of the TargetInstance resource to delete.
156813// - zone: Name of the zone scoping this request.
156814func (r *TargetInstancesService) Delete(project string, zone string, targetInstance string) *TargetInstancesDeleteCall {
156815	c := &TargetInstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156816	c.project = project
156817	c.zone = zone
156818	c.targetInstance = targetInstance
156819	return c
156820}
156821
156822// RequestId sets the optional parameter "requestId": An optional
156823// request ID to identify requests. Specify a unique request ID so that
156824// if you must retry your request, the server will know to ignore the
156825// request if it has already been completed. For example, consider a
156826// situation where you make an initial request and the request times
156827// out. If you make the request again with the same request ID, the
156828// server can check if original operation with the same request ID was
156829// received, and if so, will ignore the second request. This prevents
156830// clients from accidentally creating duplicate commitments. The request
156831// ID must be a valid UUID with the exception that zero UUID is not
156832// supported ( 00000000-0000-0000-0000-000000000000).
156833func (c *TargetInstancesDeleteCall) RequestId(requestId string) *TargetInstancesDeleteCall {
156834	c.urlParams_.Set("requestId", requestId)
156835	return c
156836}
156837
156838// Fields allows partial responses to be retrieved. See
156839// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156840// for more information.
156841func (c *TargetInstancesDeleteCall) Fields(s ...googleapi.Field) *TargetInstancesDeleteCall {
156842	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156843	return c
156844}
156845
156846// Context sets the context to be used in this call's Do method. Any
156847// pending HTTP request will be aborted if the provided context is
156848// canceled.
156849func (c *TargetInstancesDeleteCall) Context(ctx context.Context) *TargetInstancesDeleteCall {
156850	c.ctx_ = ctx
156851	return c
156852}
156853
156854// Header returns an http.Header that can be modified by the caller to
156855// add HTTP headers to the request.
156856func (c *TargetInstancesDeleteCall) Header() http.Header {
156857	if c.header_ == nil {
156858		c.header_ = make(http.Header)
156859	}
156860	return c.header_
156861}
156862
156863func (c *TargetInstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
156864	reqHeaders := make(http.Header)
156865	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
156866	for k, v := range c.header_ {
156867		reqHeaders[k] = v
156868	}
156869	reqHeaders.Set("User-Agent", c.s.userAgent())
156870	var body io.Reader = nil
156871	c.urlParams_.Set("alt", alt)
156872	c.urlParams_.Set("prettyPrint", "false")
156873	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances/{targetInstance}")
156874	urls += "?" + c.urlParams_.Encode()
156875	req, err := http.NewRequest("DELETE", urls, body)
156876	if err != nil {
156877		return nil, err
156878	}
156879	req.Header = reqHeaders
156880	googleapi.Expand(req.URL, map[string]string{
156881		"project":        c.project,
156882		"zone":           c.zone,
156883		"targetInstance": c.targetInstance,
156884	})
156885	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156886}
156887
156888// Do executes the "compute.targetInstances.delete" call.
156889// Exactly one of *Operation or error will be non-nil. Any non-2xx
156890// status code is an error. Response headers are in either
156891// *Operation.ServerResponse.Header or (if a response was returned at
156892// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
156893// to check whether the returned error was because
156894// http.StatusNotModified was returned.
156895func (c *TargetInstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
156896	gensupport.SetOptions(c.urlParams_, opts...)
156897	res, err := c.doRequest("json")
156898	if res != nil && res.StatusCode == http.StatusNotModified {
156899		if res.Body != nil {
156900			res.Body.Close()
156901		}
156902		return nil, &googleapi.Error{
156903			Code:   res.StatusCode,
156904			Header: res.Header,
156905		}
156906	}
156907	if err != nil {
156908		return nil, err
156909	}
156910	defer googleapi.CloseBody(res)
156911	if err := googleapi.CheckResponse(res); err != nil {
156912		return nil, err
156913	}
156914	ret := &Operation{
156915		ServerResponse: googleapi.ServerResponse{
156916			Header:         res.Header,
156917			HTTPStatusCode: res.StatusCode,
156918		},
156919	}
156920	target := &ret
156921	if err := gensupport.DecodeResponse(target, res); err != nil {
156922		return nil, err
156923	}
156924	return ret, nil
156925	// {
156926	//   "description": "Deletes the specified TargetInstance resource.",
156927	//   "flatPath": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}",
156928	//   "httpMethod": "DELETE",
156929	//   "id": "compute.targetInstances.delete",
156930	//   "parameterOrder": [
156931	//     "project",
156932	//     "zone",
156933	//     "targetInstance"
156934	//   ],
156935	//   "parameters": {
156936	//     "project": {
156937	//       "description": "Project ID for this request.",
156938	//       "location": "path",
156939	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156940	//       "required": true,
156941	//       "type": "string"
156942	//     },
156943	//     "requestId": {
156944	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
156945	//       "location": "query",
156946	//       "type": "string"
156947	//     },
156948	//     "targetInstance": {
156949	//       "description": "Name of the TargetInstance resource to delete.",
156950	//       "location": "path",
156951	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156952	//       "required": true,
156953	//       "type": "string"
156954	//     },
156955	//     "zone": {
156956	//       "description": "Name of the zone scoping this request.",
156957	//       "location": "path",
156958	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
156959	//       "required": true,
156960	//       "type": "string"
156961	//     }
156962	//   },
156963	//   "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}",
156964	//   "response": {
156965	//     "$ref": "Operation"
156966	//   },
156967	//   "scopes": [
156968	//     "https://www.googleapis.com/auth/cloud-platform",
156969	//     "https://www.googleapis.com/auth/compute"
156970	//   ]
156971	// }
156972
156973}
156974
156975// method id "compute.targetInstances.get":
156976
156977type TargetInstancesGetCall struct {
156978	s              *Service
156979	project        string
156980	zone           string
156981	targetInstance string
156982	urlParams_     gensupport.URLParams
156983	ifNoneMatch_   string
156984	ctx_           context.Context
156985	header_        http.Header
156986}
156987
156988// Get: Returns the specified TargetInstance resource. Gets a list of
156989// available target instances by making a list() request.
156990//
156991// - project: Project ID for this request.
156992// - targetInstance: Name of the TargetInstance resource to return.
156993// - zone: Name of the zone scoping this request.
156994func (r *TargetInstancesService) Get(project string, zone string, targetInstance string) *TargetInstancesGetCall {
156995	c := &TargetInstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156996	c.project = project
156997	c.zone = zone
156998	c.targetInstance = targetInstance
156999	return c
157000}
157001
157002// Fields allows partial responses to be retrieved. See
157003// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157004// for more information.
157005func (c *TargetInstancesGetCall) Fields(s ...googleapi.Field) *TargetInstancesGetCall {
157006	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157007	return c
157008}
157009
157010// IfNoneMatch sets the optional parameter which makes the operation
157011// fail if the object's ETag matches the given value. This is useful for
157012// getting updates only after the object has changed since the last
157013// request. Use googleapi.IsNotModified to check whether the response
157014// error from Do is the result of In-None-Match.
157015func (c *TargetInstancesGetCall) IfNoneMatch(entityTag string) *TargetInstancesGetCall {
157016	c.ifNoneMatch_ = entityTag
157017	return c
157018}
157019
157020// Context sets the context to be used in this call's Do method. Any
157021// pending HTTP request will be aborted if the provided context is
157022// canceled.
157023func (c *TargetInstancesGetCall) Context(ctx context.Context) *TargetInstancesGetCall {
157024	c.ctx_ = ctx
157025	return c
157026}
157027
157028// Header returns an http.Header that can be modified by the caller to
157029// add HTTP headers to the request.
157030func (c *TargetInstancesGetCall) Header() http.Header {
157031	if c.header_ == nil {
157032		c.header_ = make(http.Header)
157033	}
157034	return c.header_
157035}
157036
157037func (c *TargetInstancesGetCall) doRequest(alt string) (*http.Response, error) {
157038	reqHeaders := make(http.Header)
157039	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
157040	for k, v := range c.header_ {
157041		reqHeaders[k] = v
157042	}
157043	reqHeaders.Set("User-Agent", c.s.userAgent())
157044	if c.ifNoneMatch_ != "" {
157045		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
157046	}
157047	var body io.Reader = nil
157048	c.urlParams_.Set("alt", alt)
157049	c.urlParams_.Set("prettyPrint", "false")
157050	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances/{targetInstance}")
157051	urls += "?" + c.urlParams_.Encode()
157052	req, err := http.NewRequest("GET", urls, body)
157053	if err != nil {
157054		return nil, err
157055	}
157056	req.Header = reqHeaders
157057	googleapi.Expand(req.URL, map[string]string{
157058		"project":        c.project,
157059		"zone":           c.zone,
157060		"targetInstance": c.targetInstance,
157061	})
157062	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157063}
157064
157065// Do executes the "compute.targetInstances.get" call.
157066// Exactly one of *TargetInstance or error will be non-nil. Any non-2xx
157067// status code is an error. Response headers are in either
157068// *TargetInstance.ServerResponse.Header or (if a response was returned
157069// at all) in error.(*googleapi.Error).Header. Use
157070// googleapi.IsNotModified to check whether the returned error was
157071// because http.StatusNotModified was returned.
157072func (c *TargetInstancesGetCall) Do(opts ...googleapi.CallOption) (*TargetInstance, error) {
157073	gensupport.SetOptions(c.urlParams_, opts...)
157074	res, err := c.doRequest("json")
157075	if res != nil && res.StatusCode == http.StatusNotModified {
157076		if res.Body != nil {
157077			res.Body.Close()
157078		}
157079		return nil, &googleapi.Error{
157080			Code:   res.StatusCode,
157081			Header: res.Header,
157082		}
157083	}
157084	if err != nil {
157085		return nil, err
157086	}
157087	defer googleapi.CloseBody(res)
157088	if err := googleapi.CheckResponse(res); err != nil {
157089		return nil, err
157090	}
157091	ret := &TargetInstance{
157092		ServerResponse: googleapi.ServerResponse{
157093			Header:         res.Header,
157094			HTTPStatusCode: res.StatusCode,
157095		},
157096	}
157097	target := &ret
157098	if err := gensupport.DecodeResponse(target, res); err != nil {
157099		return nil, err
157100	}
157101	return ret, nil
157102	// {
157103	//   "description": "Returns the specified TargetInstance resource. Gets a list of available target instances by making a list() request.",
157104	//   "flatPath": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}",
157105	//   "httpMethod": "GET",
157106	//   "id": "compute.targetInstances.get",
157107	//   "parameterOrder": [
157108	//     "project",
157109	//     "zone",
157110	//     "targetInstance"
157111	//   ],
157112	//   "parameters": {
157113	//     "project": {
157114	//       "description": "Project ID for this request.",
157115	//       "location": "path",
157116	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157117	//       "required": true,
157118	//       "type": "string"
157119	//     },
157120	//     "targetInstance": {
157121	//       "description": "Name of the TargetInstance resource to return.",
157122	//       "location": "path",
157123	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157124	//       "required": true,
157125	//       "type": "string"
157126	//     },
157127	//     "zone": {
157128	//       "description": "Name of the zone scoping this request.",
157129	//       "location": "path",
157130	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
157131	//       "required": true,
157132	//       "type": "string"
157133	//     }
157134	//   },
157135	//   "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}",
157136	//   "response": {
157137	//     "$ref": "TargetInstance"
157138	//   },
157139	//   "scopes": [
157140	//     "https://www.googleapis.com/auth/cloud-platform",
157141	//     "https://www.googleapis.com/auth/compute",
157142	//     "https://www.googleapis.com/auth/compute.readonly"
157143	//   ]
157144	// }
157145
157146}
157147
157148// method id "compute.targetInstances.insert":
157149
157150type TargetInstancesInsertCall struct {
157151	s              *Service
157152	project        string
157153	zone           string
157154	targetinstance *TargetInstance
157155	urlParams_     gensupport.URLParams
157156	ctx_           context.Context
157157	header_        http.Header
157158}
157159
157160// Insert: Creates a TargetInstance resource in the specified project
157161// and zone using the data included in the request.
157162//
157163// - project: Project ID for this request.
157164// - zone: Name of the zone scoping this request.
157165func (r *TargetInstancesService) Insert(project string, zone string, targetinstance *TargetInstance) *TargetInstancesInsertCall {
157166	c := &TargetInstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157167	c.project = project
157168	c.zone = zone
157169	c.targetinstance = targetinstance
157170	return c
157171}
157172
157173// RequestId sets the optional parameter "requestId": An optional
157174// request ID to identify requests. Specify a unique request ID so that
157175// if you must retry your request, the server will know to ignore the
157176// request if it has already been completed. For example, consider a
157177// situation where you make an initial request and the request times
157178// out. If you make the request again with the same request ID, the
157179// server can check if original operation with the same request ID was
157180// received, and if so, will ignore the second request. This prevents
157181// clients from accidentally creating duplicate commitments. The request
157182// ID must be a valid UUID with the exception that zero UUID is not
157183// supported ( 00000000-0000-0000-0000-000000000000).
157184func (c *TargetInstancesInsertCall) RequestId(requestId string) *TargetInstancesInsertCall {
157185	c.urlParams_.Set("requestId", requestId)
157186	return c
157187}
157188
157189// Fields allows partial responses to be retrieved. See
157190// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157191// for more information.
157192func (c *TargetInstancesInsertCall) Fields(s ...googleapi.Field) *TargetInstancesInsertCall {
157193	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157194	return c
157195}
157196
157197// Context sets the context to be used in this call's Do method. Any
157198// pending HTTP request will be aborted if the provided context is
157199// canceled.
157200func (c *TargetInstancesInsertCall) Context(ctx context.Context) *TargetInstancesInsertCall {
157201	c.ctx_ = ctx
157202	return c
157203}
157204
157205// Header returns an http.Header that can be modified by the caller to
157206// add HTTP headers to the request.
157207func (c *TargetInstancesInsertCall) Header() http.Header {
157208	if c.header_ == nil {
157209		c.header_ = make(http.Header)
157210	}
157211	return c.header_
157212}
157213
157214func (c *TargetInstancesInsertCall) doRequest(alt string) (*http.Response, error) {
157215	reqHeaders := make(http.Header)
157216	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
157217	for k, v := range c.header_ {
157218		reqHeaders[k] = v
157219	}
157220	reqHeaders.Set("User-Agent", c.s.userAgent())
157221	var body io.Reader = nil
157222	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetinstance)
157223	if err != nil {
157224		return nil, err
157225	}
157226	reqHeaders.Set("Content-Type", "application/json")
157227	c.urlParams_.Set("alt", alt)
157228	c.urlParams_.Set("prettyPrint", "false")
157229	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances")
157230	urls += "?" + c.urlParams_.Encode()
157231	req, err := http.NewRequest("POST", urls, body)
157232	if err != nil {
157233		return nil, err
157234	}
157235	req.Header = reqHeaders
157236	googleapi.Expand(req.URL, map[string]string{
157237		"project": c.project,
157238		"zone":    c.zone,
157239	})
157240	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157241}
157242
157243// Do executes the "compute.targetInstances.insert" call.
157244// Exactly one of *Operation or error will be non-nil. Any non-2xx
157245// status code is an error. Response headers are in either
157246// *Operation.ServerResponse.Header or (if a response was returned at
157247// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
157248// to check whether the returned error was because
157249// http.StatusNotModified was returned.
157250func (c *TargetInstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
157251	gensupport.SetOptions(c.urlParams_, opts...)
157252	res, err := c.doRequest("json")
157253	if res != nil && res.StatusCode == http.StatusNotModified {
157254		if res.Body != nil {
157255			res.Body.Close()
157256		}
157257		return nil, &googleapi.Error{
157258			Code:   res.StatusCode,
157259			Header: res.Header,
157260		}
157261	}
157262	if err != nil {
157263		return nil, err
157264	}
157265	defer googleapi.CloseBody(res)
157266	if err := googleapi.CheckResponse(res); err != nil {
157267		return nil, err
157268	}
157269	ret := &Operation{
157270		ServerResponse: googleapi.ServerResponse{
157271			Header:         res.Header,
157272			HTTPStatusCode: res.StatusCode,
157273		},
157274	}
157275	target := &ret
157276	if err := gensupport.DecodeResponse(target, res); err != nil {
157277		return nil, err
157278	}
157279	return ret, nil
157280	// {
157281	//   "description": "Creates a TargetInstance resource in the specified project and zone using the data included in the request.",
157282	//   "flatPath": "projects/{project}/zones/{zone}/targetInstances",
157283	//   "httpMethod": "POST",
157284	//   "id": "compute.targetInstances.insert",
157285	//   "parameterOrder": [
157286	//     "project",
157287	//     "zone"
157288	//   ],
157289	//   "parameters": {
157290	//     "project": {
157291	//       "description": "Project ID for this request.",
157292	//       "location": "path",
157293	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157294	//       "required": true,
157295	//       "type": "string"
157296	//     },
157297	//     "requestId": {
157298	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
157299	//       "location": "query",
157300	//       "type": "string"
157301	//     },
157302	//     "zone": {
157303	//       "description": "Name of the zone scoping this request.",
157304	//       "location": "path",
157305	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
157306	//       "required": true,
157307	//       "type": "string"
157308	//     }
157309	//   },
157310	//   "path": "projects/{project}/zones/{zone}/targetInstances",
157311	//   "request": {
157312	//     "$ref": "TargetInstance"
157313	//   },
157314	//   "response": {
157315	//     "$ref": "Operation"
157316	//   },
157317	//   "scopes": [
157318	//     "https://www.googleapis.com/auth/cloud-platform",
157319	//     "https://www.googleapis.com/auth/compute"
157320	//   ]
157321	// }
157322
157323}
157324
157325// method id "compute.targetInstances.list":
157326
157327type TargetInstancesListCall struct {
157328	s            *Service
157329	project      string
157330	zone         string
157331	urlParams_   gensupport.URLParams
157332	ifNoneMatch_ string
157333	ctx_         context.Context
157334	header_      http.Header
157335}
157336
157337// List: Retrieves a list of TargetInstance resources available to the
157338// specified project and zone.
157339//
157340// - project: Project ID for this request.
157341// - zone: Name of the zone scoping this request.
157342func (r *TargetInstancesService) List(project string, zone string) *TargetInstancesListCall {
157343	c := &TargetInstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157344	c.project = project
157345	c.zone = zone
157346	return c
157347}
157348
157349// Filter sets the optional parameter "filter": A filter expression that
157350// filters resources listed in the response. The expression must specify
157351// the field name, a comparison operator, and the value that you want to
157352// use for filtering. The value must be a string, a number, or a
157353// boolean. The comparison operator must be either `=`, `!=`, `>`, or
157354// `<`. For example, if you are filtering Compute Engine instances, you
157355// can exclude instances named `example-instance` by specifying `name !=
157356// example-instance`. You can also filter nested fields. For example,
157357// you could specify `scheduling.automaticRestart = false` to include
157358// instances only if they are not scheduled for automatic restarts. You
157359// can use filtering on nested fields to filter based on resource
157360// labels. To filter on multiple expressions, provide each separate
157361// expression within parentheses. For example: ```
157362// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
157363// ``` By default, each expression is an `AND` expression. However, you
157364// can include `AND` and `OR` expressions explicitly. For example: ```
157365// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
157366// AND (scheduling.automaticRestart = true) ```
157367func (c *TargetInstancesListCall) Filter(filter string) *TargetInstancesListCall {
157368	c.urlParams_.Set("filter", filter)
157369	return c
157370}
157371
157372// MaxResults sets the optional parameter "maxResults": The maximum
157373// number of results per page that should be returned. If the number of
157374// available results is larger than `maxResults`, Compute Engine returns
157375// a `nextPageToken` that can be used to get the next page of results in
157376// subsequent list requests. Acceptable values are `0` to `500`,
157377// inclusive. (Default: `500`)
157378func (c *TargetInstancesListCall) MaxResults(maxResults int64) *TargetInstancesListCall {
157379	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
157380	return c
157381}
157382
157383// OrderBy sets the optional parameter "orderBy": Sorts list results by
157384// a certain order. By default, results are returned in alphanumerical
157385// order based on the resource name. You can also sort results in
157386// descending order based on the creation timestamp using
157387// `orderBy="creationTimestamp desc". This sorts results based on the
157388// `creationTimestamp` field in reverse chronological order (newest
157389// result first). Use this to sort resources like operations so that the
157390// newest operation is returned first. Currently, only sorting by `name`
157391// or `creationTimestamp desc` is supported.
157392func (c *TargetInstancesListCall) OrderBy(orderBy string) *TargetInstancesListCall {
157393	c.urlParams_.Set("orderBy", orderBy)
157394	return c
157395}
157396
157397// PageToken sets the optional parameter "pageToken": Specifies a page
157398// token to use. Set `pageToken` to the `nextPageToken` returned by a
157399// previous list request to get the next page of results.
157400func (c *TargetInstancesListCall) PageToken(pageToken string) *TargetInstancesListCall {
157401	c.urlParams_.Set("pageToken", pageToken)
157402	return c
157403}
157404
157405// ReturnPartialSuccess sets the optional parameter
157406// "returnPartialSuccess": Opt-in for partial success behavior which
157407// provides partial results in case of failure. The default value is
157408// false.
157409func (c *TargetInstancesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetInstancesListCall {
157410	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
157411	return c
157412}
157413
157414// Fields allows partial responses to be retrieved. See
157415// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157416// for more information.
157417func (c *TargetInstancesListCall) Fields(s ...googleapi.Field) *TargetInstancesListCall {
157418	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157419	return c
157420}
157421
157422// IfNoneMatch sets the optional parameter which makes the operation
157423// fail if the object's ETag matches the given value. This is useful for
157424// getting updates only after the object has changed since the last
157425// request. Use googleapi.IsNotModified to check whether the response
157426// error from Do is the result of In-None-Match.
157427func (c *TargetInstancesListCall) IfNoneMatch(entityTag string) *TargetInstancesListCall {
157428	c.ifNoneMatch_ = entityTag
157429	return c
157430}
157431
157432// Context sets the context to be used in this call's Do method. Any
157433// pending HTTP request will be aborted if the provided context is
157434// canceled.
157435func (c *TargetInstancesListCall) Context(ctx context.Context) *TargetInstancesListCall {
157436	c.ctx_ = ctx
157437	return c
157438}
157439
157440// Header returns an http.Header that can be modified by the caller to
157441// add HTTP headers to the request.
157442func (c *TargetInstancesListCall) Header() http.Header {
157443	if c.header_ == nil {
157444		c.header_ = make(http.Header)
157445	}
157446	return c.header_
157447}
157448
157449func (c *TargetInstancesListCall) doRequest(alt string) (*http.Response, error) {
157450	reqHeaders := make(http.Header)
157451	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
157452	for k, v := range c.header_ {
157453		reqHeaders[k] = v
157454	}
157455	reqHeaders.Set("User-Agent", c.s.userAgent())
157456	if c.ifNoneMatch_ != "" {
157457		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
157458	}
157459	var body io.Reader = nil
157460	c.urlParams_.Set("alt", alt)
157461	c.urlParams_.Set("prettyPrint", "false")
157462	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances")
157463	urls += "?" + c.urlParams_.Encode()
157464	req, err := http.NewRequest("GET", urls, body)
157465	if err != nil {
157466		return nil, err
157467	}
157468	req.Header = reqHeaders
157469	googleapi.Expand(req.URL, map[string]string{
157470		"project": c.project,
157471		"zone":    c.zone,
157472	})
157473	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157474}
157475
157476// Do executes the "compute.targetInstances.list" call.
157477// Exactly one of *TargetInstanceList or error will be non-nil. Any
157478// non-2xx status code is an error. Response headers are in either
157479// *TargetInstanceList.ServerResponse.Header or (if a response was
157480// returned at all) in error.(*googleapi.Error).Header. Use
157481// googleapi.IsNotModified to check whether the returned error was
157482// because http.StatusNotModified was returned.
157483func (c *TargetInstancesListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceList, error) {
157484	gensupport.SetOptions(c.urlParams_, opts...)
157485	res, err := c.doRequest("json")
157486	if res != nil && res.StatusCode == http.StatusNotModified {
157487		if res.Body != nil {
157488			res.Body.Close()
157489		}
157490		return nil, &googleapi.Error{
157491			Code:   res.StatusCode,
157492			Header: res.Header,
157493		}
157494	}
157495	if err != nil {
157496		return nil, err
157497	}
157498	defer googleapi.CloseBody(res)
157499	if err := googleapi.CheckResponse(res); err != nil {
157500		return nil, err
157501	}
157502	ret := &TargetInstanceList{
157503		ServerResponse: googleapi.ServerResponse{
157504			Header:         res.Header,
157505			HTTPStatusCode: res.StatusCode,
157506		},
157507	}
157508	target := &ret
157509	if err := gensupport.DecodeResponse(target, res); err != nil {
157510		return nil, err
157511	}
157512	return ret, nil
157513	// {
157514	//   "description": "Retrieves a list of TargetInstance resources available to the specified project and zone.",
157515	//   "flatPath": "projects/{project}/zones/{zone}/targetInstances",
157516	//   "httpMethod": "GET",
157517	//   "id": "compute.targetInstances.list",
157518	//   "parameterOrder": [
157519	//     "project",
157520	//     "zone"
157521	//   ],
157522	//   "parameters": {
157523	//     "filter": {
157524	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
157525	//       "location": "query",
157526	//       "type": "string"
157527	//     },
157528	//     "maxResults": {
157529	//       "default": "500",
157530	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
157531	//       "format": "uint32",
157532	//       "location": "query",
157533	//       "minimum": "0",
157534	//       "type": "integer"
157535	//     },
157536	//     "orderBy": {
157537	//       "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.",
157538	//       "location": "query",
157539	//       "type": "string"
157540	//     },
157541	//     "pageToken": {
157542	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
157543	//       "location": "query",
157544	//       "type": "string"
157545	//     },
157546	//     "project": {
157547	//       "description": "Project ID for this request.",
157548	//       "location": "path",
157549	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157550	//       "required": true,
157551	//       "type": "string"
157552	//     },
157553	//     "returnPartialSuccess": {
157554	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
157555	//       "location": "query",
157556	//       "type": "boolean"
157557	//     },
157558	//     "zone": {
157559	//       "description": "Name of the zone scoping this request.",
157560	//       "location": "path",
157561	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
157562	//       "required": true,
157563	//       "type": "string"
157564	//     }
157565	//   },
157566	//   "path": "projects/{project}/zones/{zone}/targetInstances",
157567	//   "response": {
157568	//     "$ref": "TargetInstanceList"
157569	//   },
157570	//   "scopes": [
157571	//     "https://www.googleapis.com/auth/cloud-platform",
157572	//     "https://www.googleapis.com/auth/compute",
157573	//     "https://www.googleapis.com/auth/compute.readonly"
157574	//   ]
157575	// }
157576
157577}
157578
157579// Pages invokes f for each page of results.
157580// A non-nil error returned from f will halt the iteration.
157581// The provided context supersedes any context provided to the Context method.
157582func (c *TargetInstancesListCall) Pages(ctx context.Context, f func(*TargetInstanceList) error) error {
157583	c.ctx_ = ctx
157584	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
157585	for {
157586		x, err := c.Do()
157587		if err != nil {
157588			return err
157589		}
157590		if err := f(x); err != nil {
157591			return err
157592		}
157593		if x.NextPageToken == "" {
157594			return nil
157595		}
157596		c.PageToken(x.NextPageToken)
157597	}
157598}
157599
157600// method id "compute.targetPools.addHealthCheck":
157601
157602type TargetPoolsAddHealthCheckCall struct {
157603	s                                *Service
157604	project                          string
157605	region                           string
157606	targetPool                       string
157607	targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest
157608	urlParams_                       gensupport.URLParams
157609	ctx_                             context.Context
157610	header_                          http.Header
157611}
157612
157613// AddHealthCheck: Adds health check URLs to a target pool.
157614//
157615// - project: Project ID for this request.
157616// - region: Name of the region scoping this request.
157617// - targetPool: Name of the target pool to add a health check to.
157618func (r *TargetPoolsService) AddHealthCheck(project string, region string, targetPool string, targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest) *TargetPoolsAddHealthCheckCall {
157619	c := &TargetPoolsAddHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157620	c.project = project
157621	c.region = region
157622	c.targetPool = targetPool
157623	c.targetpoolsaddhealthcheckrequest = targetpoolsaddhealthcheckrequest
157624	return c
157625}
157626
157627// RequestId sets the optional parameter "requestId": An optional
157628// request ID to identify requests. Specify a unique request ID so that
157629// if you must retry your request, the server will know to ignore the
157630// request if it has already been completed. For example, consider a
157631// situation where you make an initial request and the request times
157632// out. If you make the request again with the same request ID, the
157633// server can check if original operation with the same request ID was
157634// received, and if so, will ignore the second request. This prevents
157635// clients from accidentally creating duplicate commitments. The request
157636// ID must be a valid UUID with the exception that zero UUID is not
157637// supported ( 00000000-0000-0000-0000-000000000000).
157638func (c *TargetPoolsAddHealthCheckCall) RequestId(requestId string) *TargetPoolsAddHealthCheckCall {
157639	c.urlParams_.Set("requestId", requestId)
157640	return c
157641}
157642
157643// Fields allows partial responses to be retrieved. See
157644// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157645// for more information.
157646func (c *TargetPoolsAddHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsAddHealthCheckCall {
157647	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157648	return c
157649}
157650
157651// Context sets the context to be used in this call's Do method. Any
157652// pending HTTP request will be aborted if the provided context is
157653// canceled.
157654func (c *TargetPoolsAddHealthCheckCall) Context(ctx context.Context) *TargetPoolsAddHealthCheckCall {
157655	c.ctx_ = ctx
157656	return c
157657}
157658
157659// Header returns an http.Header that can be modified by the caller to
157660// add HTTP headers to the request.
157661func (c *TargetPoolsAddHealthCheckCall) Header() http.Header {
157662	if c.header_ == nil {
157663		c.header_ = make(http.Header)
157664	}
157665	return c.header_
157666}
157667
157668func (c *TargetPoolsAddHealthCheckCall) doRequest(alt string) (*http.Response, error) {
157669	reqHeaders := make(http.Header)
157670	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
157671	for k, v := range c.header_ {
157672		reqHeaders[k] = v
157673	}
157674	reqHeaders.Set("User-Agent", c.s.userAgent())
157675	var body io.Reader = nil
157676	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddhealthcheckrequest)
157677	if err != nil {
157678		return nil, err
157679	}
157680	reqHeaders.Set("Content-Type", "application/json")
157681	c.urlParams_.Set("alt", alt)
157682	c.urlParams_.Set("prettyPrint", "false")
157683	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck")
157684	urls += "?" + c.urlParams_.Encode()
157685	req, err := http.NewRequest("POST", urls, body)
157686	if err != nil {
157687		return nil, err
157688	}
157689	req.Header = reqHeaders
157690	googleapi.Expand(req.URL, map[string]string{
157691		"project":    c.project,
157692		"region":     c.region,
157693		"targetPool": c.targetPool,
157694	})
157695	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157696}
157697
157698// Do executes the "compute.targetPools.addHealthCheck" call.
157699// Exactly one of *Operation or error will be non-nil. Any non-2xx
157700// status code is an error. Response headers are in either
157701// *Operation.ServerResponse.Header or (if a response was returned at
157702// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
157703// to check whether the returned error was because
157704// http.StatusNotModified was returned.
157705func (c *TargetPoolsAddHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
157706	gensupport.SetOptions(c.urlParams_, opts...)
157707	res, err := c.doRequest("json")
157708	if res != nil && res.StatusCode == http.StatusNotModified {
157709		if res.Body != nil {
157710			res.Body.Close()
157711		}
157712		return nil, &googleapi.Error{
157713			Code:   res.StatusCode,
157714			Header: res.Header,
157715		}
157716	}
157717	if err != nil {
157718		return nil, err
157719	}
157720	defer googleapi.CloseBody(res)
157721	if err := googleapi.CheckResponse(res); err != nil {
157722		return nil, err
157723	}
157724	ret := &Operation{
157725		ServerResponse: googleapi.ServerResponse{
157726			Header:         res.Header,
157727			HTTPStatusCode: res.StatusCode,
157728		},
157729	}
157730	target := &ret
157731	if err := gensupport.DecodeResponse(target, res); err != nil {
157732		return nil, err
157733	}
157734	return ret, nil
157735	// {
157736	//   "description": "Adds health check URLs to a target pool.",
157737	//   "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck",
157738	//   "httpMethod": "POST",
157739	//   "id": "compute.targetPools.addHealthCheck",
157740	//   "parameterOrder": [
157741	//     "project",
157742	//     "region",
157743	//     "targetPool"
157744	//   ],
157745	//   "parameters": {
157746	//     "project": {
157747	//       "description": "Project ID for this request.",
157748	//       "location": "path",
157749	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157750	//       "required": true,
157751	//       "type": "string"
157752	//     },
157753	//     "region": {
157754	//       "description": "Name of the region scoping this request.",
157755	//       "location": "path",
157756	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
157757	//       "required": true,
157758	//       "type": "string"
157759	//     },
157760	//     "requestId": {
157761	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
157762	//       "location": "query",
157763	//       "type": "string"
157764	//     },
157765	//     "targetPool": {
157766	//       "description": "Name of the target pool to add a health check to.",
157767	//       "location": "path",
157768	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157769	//       "required": true,
157770	//       "type": "string"
157771	//     }
157772	//   },
157773	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck",
157774	//   "request": {
157775	//     "$ref": "TargetPoolsAddHealthCheckRequest"
157776	//   },
157777	//   "response": {
157778	//     "$ref": "Operation"
157779	//   },
157780	//   "scopes": [
157781	//     "https://www.googleapis.com/auth/cloud-platform",
157782	//     "https://www.googleapis.com/auth/compute"
157783	//   ]
157784	// }
157785
157786}
157787
157788// method id "compute.targetPools.addInstance":
157789
157790type TargetPoolsAddInstanceCall struct {
157791	s                             *Service
157792	project                       string
157793	region                        string
157794	targetPool                    string
157795	targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest
157796	urlParams_                    gensupport.URLParams
157797	ctx_                          context.Context
157798	header_                       http.Header
157799}
157800
157801// AddInstance: Adds an instance to a target pool.
157802//
157803// - project: Project ID for this request.
157804// - region: Name of the region scoping this request.
157805// - targetPool: Name of the TargetPool resource to add instances to.
157806func (r *TargetPoolsService) AddInstance(project string, region string, targetPool string, targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest) *TargetPoolsAddInstanceCall {
157807	c := &TargetPoolsAddInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157808	c.project = project
157809	c.region = region
157810	c.targetPool = targetPool
157811	c.targetpoolsaddinstancerequest = targetpoolsaddinstancerequest
157812	return c
157813}
157814
157815// RequestId sets the optional parameter "requestId": An optional
157816// request ID to identify requests. Specify a unique request ID so that
157817// if you must retry your request, the server will know to ignore the
157818// request if it has already been completed. For example, consider a
157819// situation where you make an initial request and the request times
157820// out. If you make the request again with the same request ID, the
157821// server can check if original operation with the same request ID was
157822// received, and if so, will ignore the second request. This prevents
157823// clients from accidentally creating duplicate commitments. The request
157824// ID must be a valid UUID with the exception that zero UUID is not
157825// supported ( 00000000-0000-0000-0000-000000000000).
157826func (c *TargetPoolsAddInstanceCall) RequestId(requestId string) *TargetPoolsAddInstanceCall {
157827	c.urlParams_.Set("requestId", requestId)
157828	return c
157829}
157830
157831// Fields allows partial responses to be retrieved. See
157832// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157833// for more information.
157834func (c *TargetPoolsAddInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsAddInstanceCall {
157835	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157836	return c
157837}
157838
157839// Context sets the context to be used in this call's Do method. Any
157840// pending HTTP request will be aborted if the provided context is
157841// canceled.
157842func (c *TargetPoolsAddInstanceCall) Context(ctx context.Context) *TargetPoolsAddInstanceCall {
157843	c.ctx_ = ctx
157844	return c
157845}
157846
157847// Header returns an http.Header that can be modified by the caller to
157848// add HTTP headers to the request.
157849func (c *TargetPoolsAddInstanceCall) Header() http.Header {
157850	if c.header_ == nil {
157851		c.header_ = make(http.Header)
157852	}
157853	return c.header_
157854}
157855
157856func (c *TargetPoolsAddInstanceCall) doRequest(alt string) (*http.Response, error) {
157857	reqHeaders := make(http.Header)
157858	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
157859	for k, v := range c.header_ {
157860		reqHeaders[k] = v
157861	}
157862	reqHeaders.Set("User-Agent", c.s.userAgent())
157863	var body io.Reader = nil
157864	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddinstancerequest)
157865	if err != nil {
157866		return nil, err
157867	}
157868	reqHeaders.Set("Content-Type", "application/json")
157869	c.urlParams_.Set("alt", alt)
157870	c.urlParams_.Set("prettyPrint", "false")
157871	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance")
157872	urls += "?" + c.urlParams_.Encode()
157873	req, err := http.NewRequest("POST", urls, body)
157874	if err != nil {
157875		return nil, err
157876	}
157877	req.Header = reqHeaders
157878	googleapi.Expand(req.URL, map[string]string{
157879		"project":    c.project,
157880		"region":     c.region,
157881		"targetPool": c.targetPool,
157882	})
157883	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157884}
157885
157886// Do executes the "compute.targetPools.addInstance" call.
157887// Exactly one of *Operation or error will be non-nil. Any non-2xx
157888// status code is an error. Response headers are in either
157889// *Operation.ServerResponse.Header or (if a response was returned at
157890// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
157891// to check whether the returned error was because
157892// http.StatusNotModified was returned.
157893func (c *TargetPoolsAddInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
157894	gensupport.SetOptions(c.urlParams_, opts...)
157895	res, err := c.doRequest("json")
157896	if res != nil && res.StatusCode == http.StatusNotModified {
157897		if res.Body != nil {
157898			res.Body.Close()
157899		}
157900		return nil, &googleapi.Error{
157901			Code:   res.StatusCode,
157902			Header: res.Header,
157903		}
157904	}
157905	if err != nil {
157906		return nil, err
157907	}
157908	defer googleapi.CloseBody(res)
157909	if err := googleapi.CheckResponse(res); err != nil {
157910		return nil, err
157911	}
157912	ret := &Operation{
157913		ServerResponse: googleapi.ServerResponse{
157914			Header:         res.Header,
157915			HTTPStatusCode: res.StatusCode,
157916		},
157917	}
157918	target := &ret
157919	if err := gensupport.DecodeResponse(target, res); err != nil {
157920		return nil, err
157921	}
157922	return ret, nil
157923	// {
157924	//   "description": "Adds an instance to a target pool.",
157925	//   "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance",
157926	//   "httpMethod": "POST",
157927	//   "id": "compute.targetPools.addInstance",
157928	//   "parameterOrder": [
157929	//     "project",
157930	//     "region",
157931	//     "targetPool"
157932	//   ],
157933	//   "parameters": {
157934	//     "project": {
157935	//       "description": "Project ID for this request.",
157936	//       "location": "path",
157937	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157938	//       "required": true,
157939	//       "type": "string"
157940	//     },
157941	//     "region": {
157942	//       "description": "Name of the region scoping this request.",
157943	//       "location": "path",
157944	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
157945	//       "required": true,
157946	//       "type": "string"
157947	//     },
157948	//     "requestId": {
157949	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
157950	//       "location": "query",
157951	//       "type": "string"
157952	//     },
157953	//     "targetPool": {
157954	//       "description": "Name of the TargetPool resource to add instances to.",
157955	//       "location": "path",
157956	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157957	//       "required": true,
157958	//       "type": "string"
157959	//     }
157960	//   },
157961	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance",
157962	//   "request": {
157963	//     "$ref": "TargetPoolsAddInstanceRequest"
157964	//   },
157965	//   "response": {
157966	//     "$ref": "Operation"
157967	//   },
157968	//   "scopes": [
157969	//     "https://www.googleapis.com/auth/cloud-platform",
157970	//     "https://www.googleapis.com/auth/compute"
157971	//   ]
157972	// }
157973
157974}
157975
157976// method id "compute.targetPools.aggregatedList":
157977
157978type TargetPoolsAggregatedListCall struct {
157979	s            *Service
157980	project      string
157981	urlParams_   gensupport.URLParams
157982	ifNoneMatch_ string
157983	ctx_         context.Context
157984	header_      http.Header
157985}
157986
157987// AggregatedList: Retrieves an aggregated list of target pools.
157988//
157989// - project: Project ID for this request.
157990func (r *TargetPoolsService) AggregatedList(project string) *TargetPoolsAggregatedListCall {
157991	c := &TargetPoolsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157992	c.project = project
157993	return c
157994}
157995
157996// Filter sets the optional parameter "filter": A filter expression that
157997// filters resources listed in the response. The expression must specify
157998// the field name, a comparison operator, and the value that you want to
157999// use for filtering. The value must be a string, a number, or a
158000// boolean. The comparison operator must be either `=`, `!=`, `>`, or
158001// `<`. For example, if you are filtering Compute Engine instances, you
158002// can exclude instances named `example-instance` by specifying `name !=
158003// example-instance`. You can also filter nested fields. For example,
158004// you could specify `scheduling.automaticRestart = false` to include
158005// instances only if they are not scheduled for automatic restarts. You
158006// can use filtering on nested fields to filter based on resource
158007// labels. To filter on multiple expressions, provide each separate
158008// expression within parentheses. For example: ```
158009// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
158010// ``` By default, each expression is an `AND` expression. However, you
158011// can include `AND` and `OR` expressions explicitly. For example: ```
158012// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
158013// AND (scheduling.automaticRestart = true) ```
158014func (c *TargetPoolsAggregatedListCall) Filter(filter string) *TargetPoolsAggregatedListCall {
158015	c.urlParams_.Set("filter", filter)
158016	return c
158017}
158018
158019// IncludeAllScopes sets the optional parameter "includeAllScopes":
158020// Indicates whether every visible scope for each scope type (zone,
158021// region, global) should be included in the response. For new resource
158022// types added after this field, the flag has no effect as new resource
158023// types will always include every visible scope for each scope type in
158024// response. For resource types which predate this field, if this flag
158025// is omitted or false, only scopes of the scope types where the
158026// resource type is expected to be found will be included.
158027func (c *TargetPoolsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetPoolsAggregatedListCall {
158028	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
158029	return c
158030}
158031
158032// MaxResults sets the optional parameter "maxResults": The maximum
158033// number of results per page that should be returned. If the number of
158034// available results is larger than `maxResults`, Compute Engine returns
158035// a `nextPageToken` that can be used to get the next page of results in
158036// subsequent list requests. Acceptable values are `0` to `500`,
158037// inclusive. (Default: `500`)
158038func (c *TargetPoolsAggregatedListCall) MaxResults(maxResults int64) *TargetPoolsAggregatedListCall {
158039	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
158040	return c
158041}
158042
158043// OrderBy sets the optional parameter "orderBy": Sorts list results by
158044// a certain order. By default, results are returned in alphanumerical
158045// order based on the resource name. You can also sort results in
158046// descending order based on the creation timestamp using
158047// `orderBy="creationTimestamp desc". This sorts results based on the
158048// `creationTimestamp` field in reverse chronological order (newest
158049// result first). Use this to sort resources like operations so that the
158050// newest operation is returned first. Currently, only sorting by `name`
158051// or `creationTimestamp desc` is supported.
158052func (c *TargetPoolsAggregatedListCall) OrderBy(orderBy string) *TargetPoolsAggregatedListCall {
158053	c.urlParams_.Set("orderBy", orderBy)
158054	return c
158055}
158056
158057// PageToken sets the optional parameter "pageToken": Specifies a page
158058// token to use. Set `pageToken` to the `nextPageToken` returned by a
158059// previous list request to get the next page of results.
158060func (c *TargetPoolsAggregatedListCall) PageToken(pageToken string) *TargetPoolsAggregatedListCall {
158061	c.urlParams_.Set("pageToken", pageToken)
158062	return c
158063}
158064
158065// ReturnPartialSuccess sets the optional parameter
158066// "returnPartialSuccess": Opt-in for partial success behavior which
158067// provides partial results in case of failure. The default value is
158068// false.
158069func (c *TargetPoolsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetPoolsAggregatedListCall {
158070	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
158071	return c
158072}
158073
158074// Fields allows partial responses to be retrieved. See
158075// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158076// for more information.
158077func (c *TargetPoolsAggregatedListCall) Fields(s ...googleapi.Field) *TargetPoolsAggregatedListCall {
158078	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158079	return c
158080}
158081
158082// IfNoneMatch sets the optional parameter which makes the operation
158083// fail if the object's ETag matches the given value. This is useful for
158084// getting updates only after the object has changed since the last
158085// request. Use googleapi.IsNotModified to check whether the response
158086// error from Do is the result of In-None-Match.
158087func (c *TargetPoolsAggregatedListCall) IfNoneMatch(entityTag string) *TargetPoolsAggregatedListCall {
158088	c.ifNoneMatch_ = entityTag
158089	return c
158090}
158091
158092// Context sets the context to be used in this call's Do method. Any
158093// pending HTTP request will be aborted if the provided context is
158094// canceled.
158095func (c *TargetPoolsAggregatedListCall) Context(ctx context.Context) *TargetPoolsAggregatedListCall {
158096	c.ctx_ = ctx
158097	return c
158098}
158099
158100// Header returns an http.Header that can be modified by the caller to
158101// add HTTP headers to the request.
158102func (c *TargetPoolsAggregatedListCall) Header() http.Header {
158103	if c.header_ == nil {
158104		c.header_ = make(http.Header)
158105	}
158106	return c.header_
158107}
158108
158109func (c *TargetPoolsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
158110	reqHeaders := make(http.Header)
158111	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
158112	for k, v := range c.header_ {
158113		reqHeaders[k] = v
158114	}
158115	reqHeaders.Set("User-Agent", c.s.userAgent())
158116	if c.ifNoneMatch_ != "" {
158117		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
158118	}
158119	var body io.Reader = nil
158120	c.urlParams_.Set("alt", alt)
158121	c.urlParams_.Set("prettyPrint", "false")
158122	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetPools")
158123	urls += "?" + c.urlParams_.Encode()
158124	req, err := http.NewRequest("GET", urls, body)
158125	if err != nil {
158126		return nil, err
158127	}
158128	req.Header = reqHeaders
158129	googleapi.Expand(req.URL, map[string]string{
158130		"project": c.project,
158131	})
158132	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158133}
158134
158135// Do executes the "compute.targetPools.aggregatedList" call.
158136// Exactly one of *TargetPoolAggregatedList or error will be non-nil.
158137// Any non-2xx status code is an error. Response headers are in either
158138// *TargetPoolAggregatedList.ServerResponse.Header or (if a response was
158139// returned at all) in error.(*googleapi.Error).Header. Use
158140// googleapi.IsNotModified to check whether the returned error was
158141// because http.StatusNotModified was returned.
158142func (c *TargetPoolsAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetPoolAggregatedList, error) {
158143	gensupport.SetOptions(c.urlParams_, opts...)
158144	res, err := c.doRequest("json")
158145	if res != nil && res.StatusCode == http.StatusNotModified {
158146		if res.Body != nil {
158147			res.Body.Close()
158148		}
158149		return nil, &googleapi.Error{
158150			Code:   res.StatusCode,
158151			Header: res.Header,
158152		}
158153	}
158154	if err != nil {
158155		return nil, err
158156	}
158157	defer googleapi.CloseBody(res)
158158	if err := googleapi.CheckResponse(res); err != nil {
158159		return nil, err
158160	}
158161	ret := &TargetPoolAggregatedList{
158162		ServerResponse: googleapi.ServerResponse{
158163			Header:         res.Header,
158164			HTTPStatusCode: res.StatusCode,
158165		},
158166	}
158167	target := &ret
158168	if err := gensupport.DecodeResponse(target, res); err != nil {
158169		return nil, err
158170	}
158171	return ret, nil
158172	// {
158173	//   "description": "Retrieves an aggregated list of target pools.",
158174	//   "flatPath": "projects/{project}/aggregated/targetPools",
158175	//   "httpMethod": "GET",
158176	//   "id": "compute.targetPools.aggregatedList",
158177	//   "parameterOrder": [
158178	//     "project"
158179	//   ],
158180	//   "parameters": {
158181	//     "filter": {
158182	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
158183	//       "location": "query",
158184	//       "type": "string"
158185	//     },
158186	//     "includeAllScopes": {
158187	//       "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.",
158188	//       "location": "query",
158189	//       "type": "boolean"
158190	//     },
158191	//     "maxResults": {
158192	//       "default": "500",
158193	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
158194	//       "format": "uint32",
158195	//       "location": "query",
158196	//       "minimum": "0",
158197	//       "type": "integer"
158198	//     },
158199	//     "orderBy": {
158200	//       "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.",
158201	//       "location": "query",
158202	//       "type": "string"
158203	//     },
158204	//     "pageToken": {
158205	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
158206	//       "location": "query",
158207	//       "type": "string"
158208	//     },
158209	//     "project": {
158210	//       "description": "Project ID for this request.",
158211	//       "location": "path",
158212	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158213	//       "required": true,
158214	//       "type": "string"
158215	//     },
158216	//     "returnPartialSuccess": {
158217	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
158218	//       "location": "query",
158219	//       "type": "boolean"
158220	//     }
158221	//   },
158222	//   "path": "projects/{project}/aggregated/targetPools",
158223	//   "response": {
158224	//     "$ref": "TargetPoolAggregatedList"
158225	//   },
158226	//   "scopes": [
158227	//     "https://www.googleapis.com/auth/cloud-platform",
158228	//     "https://www.googleapis.com/auth/compute",
158229	//     "https://www.googleapis.com/auth/compute.readonly"
158230	//   ]
158231	// }
158232
158233}
158234
158235// Pages invokes f for each page of results.
158236// A non-nil error returned from f will halt the iteration.
158237// The provided context supersedes any context provided to the Context method.
158238func (c *TargetPoolsAggregatedListCall) Pages(ctx context.Context, f func(*TargetPoolAggregatedList) error) error {
158239	c.ctx_ = ctx
158240	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
158241	for {
158242		x, err := c.Do()
158243		if err != nil {
158244			return err
158245		}
158246		if err := f(x); err != nil {
158247			return err
158248		}
158249		if x.NextPageToken == "" {
158250			return nil
158251		}
158252		c.PageToken(x.NextPageToken)
158253	}
158254}
158255
158256// method id "compute.targetPools.delete":
158257
158258type TargetPoolsDeleteCall struct {
158259	s          *Service
158260	project    string
158261	region     string
158262	targetPool string
158263	urlParams_ gensupport.URLParams
158264	ctx_       context.Context
158265	header_    http.Header
158266}
158267
158268// Delete: Deletes the specified target pool.
158269//
158270// - project: Project ID for this request.
158271// - region: Name of the region scoping this request.
158272// - targetPool: Name of the TargetPool resource to delete.
158273func (r *TargetPoolsService) Delete(project string, region string, targetPool string) *TargetPoolsDeleteCall {
158274	c := &TargetPoolsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158275	c.project = project
158276	c.region = region
158277	c.targetPool = targetPool
158278	return c
158279}
158280
158281// RequestId sets the optional parameter "requestId": An optional
158282// request ID to identify requests. Specify a unique request ID so that
158283// if you must retry your request, the server will know to ignore the
158284// request if it has already been completed. For example, consider a
158285// situation where you make an initial request and the request times
158286// out. If you make the request again with the same request ID, the
158287// server can check if original operation with the same request ID was
158288// received, and if so, will ignore the second request. This prevents
158289// clients from accidentally creating duplicate commitments. The request
158290// ID must be a valid UUID with the exception that zero UUID is not
158291// supported ( 00000000-0000-0000-0000-000000000000).
158292func (c *TargetPoolsDeleteCall) RequestId(requestId string) *TargetPoolsDeleteCall {
158293	c.urlParams_.Set("requestId", requestId)
158294	return c
158295}
158296
158297// Fields allows partial responses to be retrieved. See
158298// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158299// for more information.
158300func (c *TargetPoolsDeleteCall) Fields(s ...googleapi.Field) *TargetPoolsDeleteCall {
158301	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158302	return c
158303}
158304
158305// Context sets the context to be used in this call's Do method. Any
158306// pending HTTP request will be aborted if the provided context is
158307// canceled.
158308func (c *TargetPoolsDeleteCall) Context(ctx context.Context) *TargetPoolsDeleteCall {
158309	c.ctx_ = ctx
158310	return c
158311}
158312
158313// Header returns an http.Header that can be modified by the caller to
158314// add HTTP headers to the request.
158315func (c *TargetPoolsDeleteCall) Header() http.Header {
158316	if c.header_ == nil {
158317		c.header_ = make(http.Header)
158318	}
158319	return c.header_
158320}
158321
158322func (c *TargetPoolsDeleteCall) doRequest(alt string) (*http.Response, error) {
158323	reqHeaders := make(http.Header)
158324	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
158325	for k, v := range c.header_ {
158326		reqHeaders[k] = v
158327	}
158328	reqHeaders.Set("User-Agent", c.s.userAgent())
158329	var body io.Reader = nil
158330	c.urlParams_.Set("alt", alt)
158331	c.urlParams_.Set("prettyPrint", "false")
158332	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}")
158333	urls += "?" + c.urlParams_.Encode()
158334	req, err := http.NewRequest("DELETE", urls, body)
158335	if err != nil {
158336		return nil, err
158337	}
158338	req.Header = reqHeaders
158339	googleapi.Expand(req.URL, map[string]string{
158340		"project":    c.project,
158341		"region":     c.region,
158342		"targetPool": c.targetPool,
158343	})
158344	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158345}
158346
158347// Do executes the "compute.targetPools.delete" call.
158348// Exactly one of *Operation or error will be non-nil. Any non-2xx
158349// status code is an error. Response headers are in either
158350// *Operation.ServerResponse.Header or (if a response was returned at
158351// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
158352// to check whether the returned error was because
158353// http.StatusNotModified was returned.
158354func (c *TargetPoolsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
158355	gensupport.SetOptions(c.urlParams_, opts...)
158356	res, err := c.doRequest("json")
158357	if res != nil && res.StatusCode == http.StatusNotModified {
158358		if res.Body != nil {
158359			res.Body.Close()
158360		}
158361		return nil, &googleapi.Error{
158362			Code:   res.StatusCode,
158363			Header: res.Header,
158364		}
158365	}
158366	if err != nil {
158367		return nil, err
158368	}
158369	defer googleapi.CloseBody(res)
158370	if err := googleapi.CheckResponse(res); err != nil {
158371		return nil, err
158372	}
158373	ret := &Operation{
158374		ServerResponse: googleapi.ServerResponse{
158375			Header:         res.Header,
158376			HTTPStatusCode: res.StatusCode,
158377		},
158378	}
158379	target := &ret
158380	if err := gensupport.DecodeResponse(target, res); err != nil {
158381		return nil, err
158382	}
158383	return ret, nil
158384	// {
158385	//   "description": "Deletes the specified target pool.",
158386	//   "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}",
158387	//   "httpMethod": "DELETE",
158388	//   "id": "compute.targetPools.delete",
158389	//   "parameterOrder": [
158390	//     "project",
158391	//     "region",
158392	//     "targetPool"
158393	//   ],
158394	//   "parameters": {
158395	//     "project": {
158396	//       "description": "Project ID for this request.",
158397	//       "location": "path",
158398	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158399	//       "required": true,
158400	//       "type": "string"
158401	//     },
158402	//     "region": {
158403	//       "description": "Name of the region scoping this request.",
158404	//       "location": "path",
158405	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
158406	//       "required": true,
158407	//       "type": "string"
158408	//     },
158409	//     "requestId": {
158410	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
158411	//       "location": "query",
158412	//       "type": "string"
158413	//     },
158414	//     "targetPool": {
158415	//       "description": "Name of the TargetPool resource to delete.",
158416	//       "location": "path",
158417	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
158418	//       "required": true,
158419	//       "type": "string"
158420	//     }
158421	//   },
158422	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}",
158423	//   "response": {
158424	//     "$ref": "Operation"
158425	//   },
158426	//   "scopes": [
158427	//     "https://www.googleapis.com/auth/cloud-platform",
158428	//     "https://www.googleapis.com/auth/compute"
158429	//   ]
158430	// }
158431
158432}
158433
158434// method id "compute.targetPools.get":
158435
158436type TargetPoolsGetCall struct {
158437	s            *Service
158438	project      string
158439	region       string
158440	targetPool   string
158441	urlParams_   gensupport.URLParams
158442	ifNoneMatch_ string
158443	ctx_         context.Context
158444	header_      http.Header
158445}
158446
158447// Get: Returns the specified target pool. Gets a list of available
158448// target pools by making a list() request.
158449//
158450// - project: Project ID for this request.
158451// - region: Name of the region scoping this request.
158452// - targetPool: Name of the TargetPool resource to return.
158453func (r *TargetPoolsService) Get(project string, region string, targetPool string) *TargetPoolsGetCall {
158454	c := &TargetPoolsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158455	c.project = project
158456	c.region = region
158457	c.targetPool = targetPool
158458	return c
158459}
158460
158461// Fields allows partial responses to be retrieved. See
158462// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158463// for more information.
158464func (c *TargetPoolsGetCall) Fields(s ...googleapi.Field) *TargetPoolsGetCall {
158465	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158466	return c
158467}
158468
158469// IfNoneMatch sets the optional parameter which makes the operation
158470// fail if the object's ETag matches the given value. This is useful for
158471// getting updates only after the object has changed since the last
158472// request. Use googleapi.IsNotModified to check whether the response
158473// error from Do is the result of In-None-Match.
158474func (c *TargetPoolsGetCall) IfNoneMatch(entityTag string) *TargetPoolsGetCall {
158475	c.ifNoneMatch_ = entityTag
158476	return c
158477}
158478
158479// Context sets the context to be used in this call's Do method. Any
158480// pending HTTP request will be aborted if the provided context is
158481// canceled.
158482func (c *TargetPoolsGetCall) Context(ctx context.Context) *TargetPoolsGetCall {
158483	c.ctx_ = ctx
158484	return c
158485}
158486
158487// Header returns an http.Header that can be modified by the caller to
158488// add HTTP headers to the request.
158489func (c *TargetPoolsGetCall) Header() http.Header {
158490	if c.header_ == nil {
158491		c.header_ = make(http.Header)
158492	}
158493	return c.header_
158494}
158495
158496func (c *TargetPoolsGetCall) doRequest(alt string) (*http.Response, error) {
158497	reqHeaders := make(http.Header)
158498	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
158499	for k, v := range c.header_ {
158500		reqHeaders[k] = v
158501	}
158502	reqHeaders.Set("User-Agent", c.s.userAgent())
158503	if c.ifNoneMatch_ != "" {
158504		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
158505	}
158506	var body io.Reader = nil
158507	c.urlParams_.Set("alt", alt)
158508	c.urlParams_.Set("prettyPrint", "false")
158509	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}")
158510	urls += "?" + c.urlParams_.Encode()
158511	req, err := http.NewRequest("GET", urls, body)
158512	if err != nil {
158513		return nil, err
158514	}
158515	req.Header = reqHeaders
158516	googleapi.Expand(req.URL, map[string]string{
158517		"project":    c.project,
158518		"region":     c.region,
158519		"targetPool": c.targetPool,
158520	})
158521	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158522}
158523
158524// Do executes the "compute.targetPools.get" call.
158525// Exactly one of *TargetPool or error will be non-nil. Any non-2xx
158526// status code is an error. Response headers are in either
158527// *TargetPool.ServerResponse.Header or (if a response was returned at
158528// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
158529// to check whether the returned error was because
158530// http.StatusNotModified was returned.
158531func (c *TargetPoolsGetCall) Do(opts ...googleapi.CallOption) (*TargetPool, error) {
158532	gensupport.SetOptions(c.urlParams_, opts...)
158533	res, err := c.doRequest("json")
158534	if res != nil && res.StatusCode == http.StatusNotModified {
158535		if res.Body != nil {
158536			res.Body.Close()
158537		}
158538		return nil, &googleapi.Error{
158539			Code:   res.StatusCode,
158540			Header: res.Header,
158541		}
158542	}
158543	if err != nil {
158544		return nil, err
158545	}
158546	defer googleapi.CloseBody(res)
158547	if err := googleapi.CheckResponse(res); err != nil {
158548		return nil, err
158549	}
158550	ret := &TargetPool{
158551		ServerResponse: googleapi.ServerResponse{
158552			Header:         res.Header,
158553			HTTPStatusCode: res.StatusCode,
158554		},
158555	}
158556	target := &ret
158557	if err := gensupport.DecodeResponse(target, res); err != nil {
158558		return nil, err
158559	}
158560	return ret, nil
158561	// {
158562	//   "description": "Returns the specified target pool. Gets a list of available target pools by making a list() request.",
158563	//   "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}",
158564	//   "httpMethod": "GET",
158565	//   "id": "compute.targetPools.get",
158566	//   "parameterOrder": [
158567	//     "project",
158568	//     "region",
158569	//     "targetPool"
158570	//   ],
158571	//   "parameters": {
158572	//     "project": {
158573	//       "description": "Project ID for this request.",
158574	//       "location": "path",
158575	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158576	//       "required": true,
158577	//       "type": "string"
158578	//     },
158579	//     "region": {
158580	//       "description": "Name of the region scoping this request.",
158581	//       "location": "path",
158582	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
158583	//       "required": true,
158584	//       "type": "string"
158585	//     },
158586	//     "targetPool": {
158587	//       "description": "Name of the TargetPool resource to return.",
158588	//       "location": "path",
158589	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
158590	//       "required": true,
158591	//       "type": "string"
158592	//     }
158593	//   },
158594	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}",
158595	//   "response": {
158596	//     "$ref": "TargetPool"
158597	//   },
158598	//   "scopes": [
158599	//     "https://www.googleapis.com/auth/cloud-platform",
158600	//     "https://www.googleapis.com/auth/compute",
158601	//     "https://www.googleapis.com/auth/compute.readonly"
158602	//   ]
158603	// }
158604
158605}
158606
158607// method id "compute.targetPools.getHealth":
158608
158609type TargetPoolsGetHealthCall struct {
158610	s                 *Service
158611	project           string
158612	region            string
158613	targetPool        string
158614	instancereference *InstanceReference
158615	urlParams_        gensupport.URLParams
158616	ctx_              context.Context
158617	header_           http.Header
158618}
158619
158620// GetHealth: Gets the most recent health check results for each IP for
158621// the instance that is referenced by the given target pool.
158622//
158623// - project: Project ID for this request.
158624// - region: Name of the region scoping this request.
158625// - targetPool: Name of the TargetPool resource to which the queried
158626//   instance belongs.
158627func (r *TargetPoolsService) GetHealth(project string, region string, targetPool string, instancereference *InstanceReference) *TargetPoolsGetHealthCall {
158628	c := &TargetPoolsGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158629	c.project = project
158630	c.region = region
158631	c.targetPool = targetPool
158632	c.instancereference = instancereference
158633	return c
158634}
158635
158636// Fields allows partial responses to be retrieved. See
158637// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158638// for more information.
158639func (c *TargetPoolsGetHealthCall) Fields(s ...googleapi.Field) *TargetPoolsGetHealthCall {
158640	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158641	return c
158642}
158643
158644// Context sets the context to be used in this call's Do method. Any
158645// pending HTTP request will be aborted if the provided context is
158646// canceled.
158647func (c *TargetPoolsGetHealthCall) Context(ctx context.Context) *TargetPoolsGetHealthCall {
158648	c.ctx_ = ctx
158649	return c
158650}
158651
158652// Header returns an http.Header that can be modified by the caller to
158653// add HTTP headers to the request.
158654func (c *TargetPoolsGetHealthCall) Header() http.Header {
158655	if c.header_ == nil {
158656		c.header_ = make(http.Header)
158657	}
158658	return c.header_
158659}
158660
158661func (c *TargetPoolsGetHealthCall) doRequest(alt string) (*http.Response, error) {
158662	reqHeaders := make(http.Header)
158663	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
158664	for k, v := range c.header_ {
158665		reqHeaders[k] = v
158666	}
158667	reqHeaders.Set("User-Agent", c.s.userAgent())
158668	var body io.Reader = nil
158669	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancereference)
158670	if err != nil {
158671		return nil, err
158672	}
158673	reqHeaders.Set("Content-Type", "application/json")
158674	c.urlParams_.Set("alt", alt)
158675	c.urlParams_.Set("prettyPrint", "false")
158676	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth")
158677	urls += "?" + c.urlParams_.Encode()
158678	req, err := http.NewRequest("POST", urls, body)
158679	if err != nil {
158680		return nil, err
158681	}
158682	req.Header = reqHeaders
158683	googleapi.Expand(req.URL, map[string]string{
158684		"project":    c.project,
158685		"region":     c.region,
158686		"targetPool": c.targetPool,
158687	})
158688	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158689}
158690
158691// Do executes the "compute.targetPools.getHealth" call.
158692// Exactly one of *TargetPoolInstanceHealth or error will be non-nil.
158693// Any non-2xx status code is an error. Response headers are in either
158694// *TargetPoolInstanceHealth.ServerResponse.Header or (if a response was
158695// returned at all) in error.(*googleapi.Error).Header. Use
158696// googleapi.IsNotModified to check whether the returned error was
158697// because http.StatusNotModified was returned.
158698func (c *TargetPoolsGetHealthCall) Do(opts ...googleapi.CallOption) (*TargetPoolInstanceHealth, error) {
158699	gensupport.SetOptions(c.urlParams_, opts...)
158700	res, err := c.doRequest("json")
158701	if res != nil && res.StatusCode == http.StatusNotModified {
158702		if res.Body != nil {
158703			res.Body.Close()
158704		}
158705		return nil, &googleapi.Error{
158706			Code:   res.StatusCode,
158707			Header: res.Header,
158708		}
158709	}
158710	if err != nil {
158711		return nil, err
158712	}
158713	defer googleapi.CloseBody(res)
158714	if err := googleapi.CheckResponse(res); err != nil {
158715		return nil, err
158716	}
158717	ret := &TargetPoolInstanceHealth{
158718		ServerResponse: googleapi.ServerResponse{
158719			Header:         res.Header,
158720			HTTPStatusCode: res.StatusCode,
158721		},
158722	}
158723	target := &ret
158724	if err := gensupport.DecodeResponse(target, res); err != nil {
158725		return nil, err
158726	}
158727	return ret, nil
158728	// {
158729	//   "description": "Gets the most recent health check results for each IP for the instance that is referenced by the given target pool.",
158730	//   "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth",
158731	//   "httpMethod": "POST",
158732	//   "id": "compute.targetPools.getHealth",
158733	//   "parameterOrder": [
158734	//     "project",
158735	//     "region",
158736	//     "targetPool"
158737	//   ],
158738	//   "parameters": {
158739	//     "project": {
158740	//       "description": "Project ID for this request.",
158741	//       "location": "path",
158742	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158743	//       "required": true,
158744	//       "type": "string"
158745	//     },
158746	//     "region": {
158747	//       "description": "Name of the region scoping this request.",
158748	//       "location": "path",
158749	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
158750	//       "required": true,
158751	//       "type": "string"
158752	//     },
158753	//     "targetPool": {
158754	//       "description": "Name of the TargetPool resource to which the queried instance belongs.",
158755	//       "location": "path",
158756	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
158757	//       "required": true,
158758	//       "type": "string"
158759	//     }
158760	//   },
158761	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth",
158762	//   "request": {
158763	//     "$ref": "InstanceReference"
158764	//   },
158765	//   "response": {
158766	//     "$ref": "TargetPoolInstanceHealth"
158767	//   },
158768	//   "scopes": [
158769	//     "https://www.googleapis.com/auth/cloud-platform",
158770	//     "https://www.googleapis.com/auth/compute",
158771	//     "https://www.googleapis.com/auth/compute.readonly"
158772	//   ]
158773	// }
158774
158775}
158776
158777// method id "compute.targetPools.insert":
158778
158779type TargetPoolsInsertCall struct {
158780	s          *Service
158781	project    string
158782	region     string
158783	targetpool *TargetPool
158784	urlParams_ gensupport.URLParams
158785	ctx_       context.Context
158786	header_    http.Header
158787}
158788
158789// Insert: Creates a target pool in the specified project and region
158790// using the data included in the request.
158791//
158792// - project: Project ID for this request.
158793// - region: Name of the region scoping this request.
158794func (r *TargetPoolsService) Insert(project string, region string, targetpool *TargetPool) *TargetPoolsInsertCall {
158795	c := &TargetPoolsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158796	c.project = project
158797	c.region = region
158798	c.targetpool = targetpool
158799	return c
158800}
158801
158802// RequestId sets the optional parameter "requestId": An optional
158803// request ID to identify requests. Specify a unique request ID so that
158804// if you must retry your request, the server will know to ignore the
158805// request if it has already been completed. For example, consider a
158806// situation where you make an initial request and the request times
158807// out. If you make the request again with the same request ID, the
158808// server can check if original operation with the same request ID was
158809// received, and if so, will ignore the second request. This prevents
158810// clients from accidentally creating duplicate commitments. The request
158811// ID must be a valid UUID with the exception that zero UUID is not
158812// supported ( 00000000-0000-0000-0000-000000000000).
158813func (c *TargetPoolsInsertCall) RequestId(requestId string) *TargetPoolsInsertCall {
158814	c.urlParams_.Set("requestId", requestId)
158815	return c
158816}
158817
158818// Fields allows partial responses to be retrieved. See
158819// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158820// for more information.
158821func (c *TargetPoolsInsertCall) Fields(s ...googleapi.Field) *TargetPoolsInsertCall {
158822	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158823	return c
158824}
158825
158826// Context sets the context to be used in this call's Do method. Any
158827// pending HTTP request will be aborted if the provided context is
158828// canceled.
158829func (c *TargetPoolsInsertCall) Context(ctx context.Context) *TargetPoolsInsertCall {
158830	c.ctx_ = ctx
158831	return c
158832}
158833
158834// Header returns an http.Header that can be modified by the caller to
158835// add HTTP headers to the request.
158836func (c *TargetPoolsInsertCall) Header() http.Header {
158837	if c.header_ == nil {
158838		c.header_ = make(http.Header)
158839	}
158840	return c.header_
158841}
158842
158843func (c *TargetPoolsInsertCall) doRequest(alt string) (*http.Response, error) {
158844	reqHeaders := make(http.Header)
158845	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
158846	for k, v := range c.header_ {
158847		reqHeaders[k] = v
158848	}
158849	reqHeaders.Set("User-Agent", c.s.userAgent())
158850	var body io.Reader = nil
158851	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpool)
158852	if err != nil {
158853		return nil, err
158854	}
158855	reqHeaders.Set("Content-Type", "application/json")
158856	c.urlParams_.Set("alt", alt)
158857	c.urlParams_.Set("prettyPrint", "false")
158858	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools")
158859	urls += "?" + c.urlParams_.Encode()
158860	req, err := http.NewRequest("POST", urls, body)
158861	if err != nil {
158862		return nil, err
158863	}
158864	req.Header = reqHeaders
158865	googleapi.Expand(req.URL, map[string]string{
158866		"project": c.project,
158867		"region":  c.region,
158868	})
158869	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158870}
158871
158872// Do executes the "compute.targetPools.insert" call.
158873// Exactly one of *Operation or error will be non-nil. Any non-2xx
158874// status code is an error. Response headers are in either
158875// *Operation.ServerResponse.Header or (if a response was returned at
158876// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
158877// to check whether the returned error was because
158878// http.StatusNotModified was returned.
158879func (c *TargetPoolsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
158880	gensupport.SetOptions(c.urlParams_, opts...)
158881	res, err := c.doRequest("json")
158882	if res != nil && res.StatusCode == http.StatusNotModified {
158883		if res.Body != nil {
158884			res.Body.Close()
158885		}
158886		return nil, &googleapi.Error{
158887			Code:   res.StatusCode,
158888			Header: res.Header,
158889		}
158890	}
158891	if err != nil {
158892		return nil, err
158893	}
158894	defer googleapi.CloseBody(res)
158895	if err := googleapi.CheckResponse(res); err != nil {
158896		return nil, err
158897	}
158898	ret := &Operation{
158899		ServerResponse: googleapi.ServerResponse{
158900			Header:         res.Header,
158901			HTTPStatusCode: res.StatusCode,
158902		},
158903	}
158904	target := &ret
158905	if err := gensupport.DecodeResponse(target, res); err != nil {
158906		return nil, err
158907	}
158908	return ret, nil
158909	// {
158910	//   "description": "Creates a target pool in the specified project and region using the data included in the request.",
158911	//   "flatPath": "projects/{project}/regions/{region}/targetPools",
158912	//   "httpMethod": "POST",
158913	//   "id": "compute.targetPools.insert",
158914	//   "parameterOrder": [
158915	//     "project",
158916	//     "region"
158917	//   ],
158918	//   "parameters": {
158919	//     "project": {
158920	//       "description": "Project ID for this request.",
158921	//       "location": "path",
158922	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158923	//       "required": true,
158924	//       "type": "string"
158925	//     },
158926	//     "region": {
158927	//       "description": "Name of the region scoping this request.",
158928	//       "location": "path",
158929	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
158930	//       "required": true,
158931	//       "type": "string"
158932	//     },
158933	//     "requestId": {
158934	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
158935	//       "location": "query",
158936	//       "type": "string"
158937	//     }
158938	//   },
158939	//   "path": "projects/{project}/regions/{region}/targetPools",
158940	//   "request": {
158941	//     "$ref": "TargetPool"
158942	//   },
158943	//   "response": {
158944	//     "$ref": "Operation"
158945	//   },
158946	//   "scopes": [
158947	//     "https://www.googleapis.com/auth/cloud-platform",
158948	//     "https://www.googleapis.com/auth/compute"
158949	//   ]
158950	// }
158951
158952}
158953
158954// method id "compute.targetPools.list":
158955
158956type TargetPoolsListCall struct {
158957	s            *Service
158958	project      string
158959	region       string
158960	urlParams_   gensupport.URLParams
158961	ifNoneMatch_ string
158962	ctx_         context.Context
158963	header_      http.Header
158964}
158965
158966// List: Retrieves a list of target pools available to the specified
158967// project and region.
158968//
158969// - project: Project ID for this request.
158970// - region: Name of the region scoping this request.
158971func (r *TargetPoolsService) List(project string, region string) *TargetPoolsListCall {
158972	c := &TargetPoolsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158973	c.project = project
158974	c.region = region
158975	return c
158976}
158977
158978// Filter sets the optional parameter "filter": A filter expression that
158979// filters resources listed in the response. The expression must specify
158980// the field name, a comparison operator, and the value that you want to
158981// use for filtering. The value must be a string, a number, or a
158982// boolean. The comparison operator must be either `=`, `!=`, `>`, or
158983// `<`. For example, if you are filtering Compute Engine instances, you
158984// can exclude instances named `example-instance` by specifying `name !=
158985// example-instance`. You can also filter nested fields. For example,
158986// you could specify `scheduling.automaticRestart = false` to include
158987// instances only if they are not scheduled for automatic restarts. You
158988// can use filtering on nested fields to filter based on resource
158989// labels. To filter on multiple expressions, provide each separate
158990// expression within parentheses. For example: ```
158991// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
158992// ``` By default, each expression is an `AND` expression. However, you
158993// can include `AND` and `OR` expressions explicitly. For example: ```
158994// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
158995// AND (scheduling.automaticRestart = true) ```
158996func (c *TargetPoolsListCall) Filter(filter string) *TargetPoolsListCall {
158997	c.urlParams_.Set("filter", filter)
158998	return c
158999}
159000
159001// MaxResults sets the optional parameter "maxResults": The maximum
159002// number of results per page that should be returned. If the number of
159003// available results is larger than `maxResults`, Compute Engine returns
159004// a `nextPageToken` that can be used to get the next page of results in
159005// subsequent list requests. Acceptable values are `0` to `500`,
159006// inclusive. (Default: `500`)
159007func (c *TargetPoolsListCall) MaxResults(maxResults int64) *TargetPoolsListCall {
159008	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
159009	return c
159010}
159011
159012// OrderBy sets the optional parameter "orderBy": Sorts list results by
159013// a certain order. By default, results are returned in alphanumerical
159014// order based on the resource name. You can also sort results in
159015// descending order based on the creation timestamp using
159016// `orderBy="creationTimestamp desc". This sorts results based on the
159017// `creationTimestamp` field in reverse chronological order (newest
159018// result first). Use this to sort resources like operations so that the
159019// newest operation is returned first. Currently, only sorting by `name`
159020// or `creationTimestamp desc` is supported.
159021func (c *TargetPoolsListCall) OrderBy(orderBy string) *TargetPoolsListCall {
159022	c.urlParams_.Set("orderBy", orderBy)
159023	return c
159024}
159025
159026// PageToken sets the optional parameter "pageToken": Specifies a page
159027// token to use. Set `pageToken` to the `nextPageToken` returned by a
159028// previous list request to get the next page of results.
159029func (c *TargetPoolsListCall) PageToken(pageToken string) *TargetPoolsListCall {
159030	c.urlParams_.Set("pageToken", pageToken)
159031	return c
159032}
159033
159034// ReturnPartialSuccess sets the optional parameter
159035// "returnPartialSuccess": Opt-in for partial success behavior which
159036// provides partial results in case of failure. The default value is
159037// false.
159038func (c *TargetPoolsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetPoolsListCall {
159039	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
159040	return c
159041}
159042
159043// Fields allows partial responses to be retrieved. See
159044// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159045// for more information.
159046func (c *TargetPoolsListCall) Fields(s ...googleapi.Field) *TargetPoolsListCall {
159047	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159048	return c
159049}
159050
159051// IfNoneMatch sets the optional parameter which makes the operation
159052// fail if the object's ETag matches the given value. This is useful for
159053// getting updates only after the object has changed since the last
159054// request. Use googleapi.IsNotModified to check whether the response
159055// error from Do is the result of In-None-Match.
159056func (c *TargetPoolsListCall) IfNoneMatch(entityTag string) *TargetPoolsListCall {
159057	c.ifNoneMatch_ = entityTag
159058	return c
159059}
159060
159061// Context sets the context to be used in this call's Do method. Any
159062// pending HTTP request will be aborted if the provided context is
159063// canceled.
159064func (c *TargetPoolsListCall) Context(ctx context.Context) *TargetPoolsListCall {
159065	c.ctx_ = ctx
159066	return c
159067}
159068
159069// Header returns an http.Header that can be modified by the caller to
159070// add HTTP headers to the request.
159071func (c *TargetPoolsListCall) Header() http.Header {
159072	if c.header_ == nil {
159073		c.header_ = make(http.Header)
159074	}
159075	return c.header_
159076}
159077
159078func (c *TargetPoolsListCall) doRequest(alt string) (*http.Response, error) {
159079	reqHeaders := make(http.Header)
159080	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
159081	for k, v := range c.header_ {
159082		reqHeaders[k] = v
159083	}
159084	reqHeaders.Set("User-Agent", c.s.userAgent())
159085	if c.ifNoneMatch_ != "" {
159086		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
159087	}
159088	var body io.Reader = nil
159089	c.urlParams_.Set("alt", alt)
159090	c.urlParams_.Set("prettyPrint", "false")
159091	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools")
159092	urls += "?" + c.urlParams_.Encode()
159093	req, err := http.NewRequest("GET", urls, body)
159094	if err != nil {
159095		return nil, err
159096	}
159097	req.Header = reqHeaders
159098	googleapi.Expand(req.URL, map[string]string{
159099		"project": c.project,
159100		"region":  c.region,
159101	})
159102	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159103}
159104
159105// Do executes the "compute.targetPools.list" call.
159106// Exactly one of *TargetPoolList or error will be non-nil. Any non-2xx
159107// status code is an error. Response headers are in either
159108// *TargetPoolList.ServerResponse.Header or (if a response was returned
159109// at all) in error.(*googleapi.Error).Header. Use
159110// googleapi.IsNotModified to check whether the returned error was
159111// because http.StatusNotModified was returned.
159112func (c *TargetPoolsListCall) Do(opts ...googleapi.CallOption) (*TargetPoolList, error) {
159113	gensupport.SetOptions(c.urlParams_, opts...)
159114	res, err := c.doRequest("json")
159115	if res != nil && res.StatusCode == http.StatusNotModified {
159116		if res.Body != nil {
159117			res.Body.Close()
159118		}
159119		return nil, &googleapi.Error{
159120			Code:   res.StatusCode,
159121			Header: res.Header,
159122		}
159123	}
159124	if err != nil {
159125		return nil, err
159126	}
159127	defer googleapi.CloseBody(res)
159128	if err := googleapi.CheckResponse(res); err != nil {
159129		return nil, err
159130	}
159131	ret := &TargetPoolList{
159132		ServerResponse: googleapi.ServerResponse{
159133			Header:         res.Header,
159134			HTTPStatusCode: res.StatusCode,
159135		},
159136	}
159137	target := &ret
159138	if err := gensupport.DecodeResponse(target, res); err != nil {
159139		return nil, err
159140	}
159141	return ret, nil
159142	// {
159143	//   "description": "Retrieves a list of target pools available to the specified project and region.",
159144	//   "flatPath": "projects/{project}/regions/{region}/targetPools",
159145	//   "httpMethod": "GET",
159146	//   "id": "compute.targetPools.list",
159147	//   "parameterOrder": [
159148	//     "project",
159149	//     "region"
159150	//   ],
159151	//   "parameters": {
159152	//     "filter": {
159153	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
159154	//       "location": "query",
159155	//       "type": "string"
159156	//     },
159157	//     "maxResults": {
159158	//       "default": "500",
159159	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
159160	//       "format": "uint32",
159161	//       "location": "query",
159162	//       "minimum": "0",
159163	//       "type": "integer"
159164	//     },
159165	//     "orderBy": {
159166	//       "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.",
159167	//       "location": "query",
159168	//       "type": "string"
159169	//     },
159170	//     "pageToken": {
159171	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
159172	//       "location": "query",
159173	//       "type": "string"
159174	//     },
159175	//     "project": {
159176	//       "description": "Project ID for this request.",
159177	//       "location": "path",
159178	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159179	//       "required": true,
159180	//       "type": "string"
159181	//     },
159182	//     "region": {
159183	//       "description": "Name of the region scoping this request.",
159184	//       "location": "path",
159185	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
159186	//       "required": true,
159187	//       "type": "string"
159188	//     },
159189	//     "returnPartialSuccess": {
159190	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
159191	//       "location": "query",
159192	//       "type": "boolean"
159193	//     }
159194	//   },
159195	//   "path": "projects/{project}/regions/{region}/targetPools",
159196	//   "response": {
159197	//     "$ref": "TargetPoolList"
159198	//   },
159199	//   "scopes": [
159200	//     "https://www.googleapis.com/auth/cloud-platform",
159201	//     "https://www.googleapis.com/auth/compute",
159202	//     "https://www.googleapis.com/auth/compute.readonly"
159203	//   ]
159204	// }
159205
159206}
159207
159208// Pages invokes f for each page of results.
159209// A non-nil error returned from f will halt the iteration.
159210// The provided context supersedes any context provided to the Context method.
159211func (c *TargetPoolsListCall) Pages(ctx context.Context, f func(*TargetPoolList) error) error {
159212	c.ctx_ = ctx
159213	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
159214	for {
159215		x, err := c.Do()
159216		if err != nil {
159217			return err
159218		}
159219		if err := f(x); err != nil {
159220			return err
159221		}
159222		if x.NextPageToken == "" {
159223			return nil
159224		}
159225		c.PageToken(x.NextPageToken)
159226	}
159227}
159228
159229// method id "compute.targetPools.removeHealthCheck":
159230
159231type TargetPoolsRemoveHealthCheckCall struct {
159232	s                                   *Service
159233	project                             string
159234	region                              string
159235	targetPool                          string
159236	targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest
159237	urlParams_                          gensupport.URLParams
159238	ctx_                                context.Context
159239	header_                             http.Header
159240}
159241
159242// RemoveHealthCheck: Removes health check URL from a target pool.
159243//
159244// - project: Project ID for this request.
159245// - region: Name of the region for this request.
159246// - targetPool: Name of the target pool to remove health checks from.
159247func (r *TargetPoolsService) RemoveHealthCheck(project string, region string, targetPool string, targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest) *TargetPoolsRemoveHealthCheckCall {
159248	c := &TargetPoolsRemoveHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159249	c.project = project
159250	c.region = region
159251	c.targetPool = targetPool
159252	c.targetpoolsremovehealthcheckrequest = targetpoolsremovehealthcheckrequest
159253	return c
159254}
159255
159256// RequestId sets the optional parameter "requestId": An optional
159257// request ID to identify requests. Specify a unique request ID so that
159258// if you must retry your request, the server will know to ignore the
159259// request if it has already been completed. For example, consider a
159260// situation where you make an initial request and the request times
159261// out. If you make the request again with the same request ID, the
159262// server can check if original operation with the same request ID was
159263// received, and if so, will ignore the second request. This prevents
159264// clients from accidentally creating duplicate commitments. The request
159265// ID must be a valid UUID with the exception that zero UUID is not
159266// supported ( 00000000-0000-0000-0000-000000000000).
159267func (c *TargetPoolsRemoveHealthCheckCall) RequestId(requestId string) *TargetPoolsRemoveHealthCheckCall {
159268	c.urlParams_.Set("requestId", requestId)
159269	return c
159270}
159271
159272// Fields allows partial responses to be retrieved. See
159273// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159274// for more information.
159275func (c *TargetPoolsRemoveHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveHealthCheckCall {
159276	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159277	return c
159278}
159279
159280// Context sets the context to be used in this call's Do method. Any
159281// pending HTTP request will be aborted if the provided context is
159282// canceled.
159283func (c *TargetPoolsRemoveHealthCheckCall) Context(ctx context.Context) *TargetPoolsRemoveHealthCheckCall {
159284	c.ctx_ = ctx
159285	return c
159286}
159287
159288// Header returns an http.Header that can be modified by the caller to
159289// add HTTP headers to the request.
159290func (c *TargetPoolsRemoveHealthCheckCall) Header() http.Header {
159291	if c.header_ == nil {
159292		c.header_ = make(http.Header)
159293	}
159294	return c.header_
159295}
159296
159297func (c *TargetPoolsRemoveHealthCheckCall) doRequest(alt string) (*http.Response, error) {
159298	reqHeaders := make(http.Header)
159299	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
159300	for k, v := range c.header_ {
159301		reqHeaders[k] = v
159302	}
159303	reqHeaders.Set("User-Agent", c.s.userAgent())
159304	var body io.Reader = nil
159305	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremovehealthcheckrequest)
159306	if err != nil {
159307		return nil, err
159308	}
159309	reqHeaders.Set("Content-Type", "application/json")
159310	c.urlParams_.Set("alt", alt)
159311	c.urlParams_.Set("prettyPrint", "false")
159312	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck")
159313	urls += "?" + c.urlParams_.Encode()
159314	req, err := http.NewRequest("POST", urls, body)
159315	if err != nil {
159316		return nil, err
159317	}
159318	req.Header = reqHeaders
159319	googleapi.Expand(req.URL, map[string]string{
159320		"project":    c.project,
159321		"region":     c.region,
159322		"targetPool": c.targetPool,
159323	})
159324	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159325}
159326
159327// Do executes the "compute.targetPools.removeHealthCheck" call.
159328// Exactly one of *Operation or error will be non-nil. Any non-2xx
159329// status code is an error. Response headers are in either
159330// *Operation.ServerResponse.Header or (if a response was returned at
159331// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
159332// to check whether the returned error was because
159333// http.StatusNotModified was returned.
159334func (c *TargetPoolsRemoveHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
159335	gensupport.SetOptions(c.urlParams_, opts...)
159336	res, err := c.doRequest("json")
159337	if res != nil && res.StatusCode == http.StatusNotModified {
159338		if res.Body != nil {
159339			res.Body.Close()
159340		}
159341		return nil, &googleapi.Error{
159342			Code:   res.StatusCode,
159343			Header: res.Header,
159344		}
159345	}
159346	if err != nil {
159347		return nil, err
159348	}
159349	defer googleapi.CloseBody(res)
159350	if err := googleapi.CheckResponse(res); err != nil {
159351		return nil, err
159352	}
159353	ret := &Operation{
159354		ServerResponse: googleapi.ServerResponse{
159355			Header:         res.Header,
159356			HTTPStatusCode: res.StatusCode,
159357		},
159358	}
159359	target := &ret
159360	if err := gensupport.DecodeResponse(target, res); err != nil {
159361		return nil, err
159362	}
159363	return ret, nil
159364	// {
159365	//   "description": "Removes health check URL from a target pool.",
159366	//   "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck",
159367	//   "httpMethod": "POST",
159368	//   "id": "compute.targetPools.removeHealthCheck",
159369	//   "parameterOrder": [
159370	//     "project",
159371	//     "region",
159372	//     "targetPool"
159373	//   ],
159374	//   "parameters": {
159375	//     "project": {
159376	//       "description": "Project ID for this request.",
159377	//       "location": "path",
159378	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159379	//       "required": true,
159380	//       "type": "string"
159381	//     },
159382	//     "region": {
159383	//       "description": "Name of the region for this request.",
159384	//       "location": "path",
159385	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
159386	//       "required": true,
159387	//       "type": "string"
159388	//     },
159389	//     "requestId": {
159390	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
159391	//       "location": "query",
159392	//       "type": "string"
159393	//     },
159394	//     "targetPool": {
159395	//       "description": "Name of the target pool to remove health checks from.",
159396	//       "location": "path",
159397	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
159398	//       "required": true,
159399	//       "type": "string"
159400	//     }
159401	//   },
159402	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck",
159403	//   "request": {
159404	//     "$ref": "TargetPoolsRemoveHealthCheckRequest"
159405	//   },
159406	//   "response": {
159407	//     "$ref": "Operation"
159408	//   },
159409	//   "scopes": [
159410	//     "https://www.googleapis.com/auth/cloud-platform",
159411	//     "https://www.googleapis.com/auth/compute"
159412	//   ]
159413	// }
159414
159415}
159416
159417// method id "compute.targetPools.removeInstance":
159418
159419type TargetPoolsRemoveInstanceCall struct {
159420	s                                *Service
159421	project                          string
159422	region                           string
159423	targetPool                       string
159424	targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest
159425	urlParams_                       gensupport.URLParams
159426	ctx_                             context.Context
159427	header_                          http.Header
159428}
159429
159430// RemoveInstance: Removes instance URL from a target pool.
159431//
159432// - project: Project ID for this request.
159433// - region: Name of the region scoping this request.
159434// - targetPool: Name of the TargetPool resource to remove instances
159435//   from.
159436func (r *TargetPoolsService) RemoveInstance(project string, region string, targetPool string, targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest) *TargetPoolsRemoveInstanceCall {
159437	c := &TargetPoolsRemoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159438	c.project = project
159439	c.region = region
159440	c.targetPool = targetPool
159441	c.targetpoolsremoveinstancerequest = targetpoolsremoveinstancerequest
159442	return c
159443}
159444
159445// RequestId sets the optional parameter "requestId": An optional
159446// request ID to identify requests. Specify a unique request ID so that
159447// if you must retry your request, the server will know to ignore the
159448// request if it has already been completed. For example, consider a
159449// situation where you make an initial request and the request times
159450// out. If you make the request again with the same request ID, the
159451// server can check if original operation with the same request ID was
159452// received, and if so, will ignore the second request. This prevents
159453// clients from accidentally creating duplicate commitments. The request
159454// ID must be a valid UUID with the exception that zero UUID is not
159455// supported ( 00000000-0000-0000-0000-000000000000).
159456func (c *TargetPoolsRemoveInstanceCall) RequestId(requestId string) *TargetPoolsRemoveInstanceCall {
159457	c.urlParams_.Set("requestId", requestId)
159458	return c
159459}
159460
159461// Fields allows partial responses to be retrieved. See
159462// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159463// for more information.
159464func (c *TargetPoolsRemoveInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveInstanceCall {
159465	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159466	return c
159467}
159468
159469// Context sets the context to be used in this call's Do method. Any
159470// pending HTTP request will be aborted if the provided context is
159471// canceled.
159472func (c *TargetPoolsRemoveInstanceCall) Context(ctx context.Context) *TargetPoolsRemoveInstanceCall {
159473	c.ctx_ = ctx
159474	return c
159475}
159476
159477// Header returns an http.Header that can be modified by the caller to
159478// add HTTP headers to the request.
159479func (c *TargetPoolsRemoveInstanceCall) Header() http.Header {
159480	if c.header_ == nil {
159481		c.header_ = make(http.Header)
159482	}
159483	return c.header_
159484}
159485
159486func (c *TargetPoolsRemoveInstanceCall) doRequest(alt string) (*http.Response, error) {
159487	reqHeaders := make(http.Header)
159488	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
159489	for k, v := range c.header_ {
159490		reqHeaders[k] = v
159491	}
159492	reqHeaders.Set("User-Agent", c.s.userAgent())
159493	var body io.Reader = nil
159494	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremoveinstancerequest)
159495	if err != nil {
159496		return nil, err
159497	}
159498	reqHeaders.Set("Content-Type", "application/json")
159499	c.urlParams_.Set("alt", alt)
159500	c.urlParams_.Set("prettyPrint", "false")
159501	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance")
159502	urls += "?" + c.urlParams_.Encode()
159503	req, err := http.NewRequest("POST", urls, body)
159504	if err != nil {
159505		return nil, err
159506	}
159507	req.Header = reqHeaders
159508	googleapi.Expand(req.URL, map[string]string{
159509		"project":    c.project,
159510		"region":     c.region,
159511		"targetPool": c.targetPool,
159512	})
159513	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159514}
159515
159516// Do executes the "compute.targetPools.removeInstance" call.
159517// Exactly one of *Operation or error will be non-nil. Any non-2xx
159518// status code is an error. Response headers are in either
159519// *Operation.ServerResponse.Header or (if a response was returned at
159520// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
159521// to check whether the returned error was because
159522// http.StatusNotModified was returned.
159523func (c *TargetPoolsRemoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
159524	gensupport.SetOptions(c.urlParams_, opts...)
159525	res, err := c.doRequest("json")
159526	if res != nil && res.StatusCode == http.StatusNotModified {
159527		if res.Body != nil {
159528			res.Body.Close()
159529		}
159530		return nil, &googleapi.Error{
159531			Code:   res.StatusCode,
159532			Header: res.Header,
159533		}
159534	}
159535	if err != nil {
159536		return nil, err
159537	}
159538	defer googleapi.CloseBody(res)
159539	if err := googleapi.CheckResponse(res); err != nil {
159540		return nil, err
159541	}
159542	ret := &Operation{
159543		ServerResponse: googleapi.ServerResponse{
159544			Header:         res.Header,
159545			HTTPStatusCode: res.StatusCode,
159546		},
159547	}
159548	target := &ret
159549	if err := gensupport.DecodeResponse(target, res); err != nil {
159550		return nil, err
159551	}
159552	return ret, nil
159553	// {
159554	//   "description": "Removes instance URL from a target pool.",
159555	//   "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance",
159556	//   "httpMethod": "POST",
159557	//   "id": "compute.targetPools.removeInstance",
159558	//   "parameterOrder": [
159559	//     "project",
159560	//     "region",
159561	//     "targetPool"
159562	//   ],
159563	//   "parameters": {
159564	//     "project": {
159565	//       "description": "Project ID for this request.",
159566	//       "location": "path",
159567	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159568	//       "required": true,
159569	//       "type": "string"
159570	//     },
159571	//     "region": {
159572	//       "description": "Name of the region scoping this request.",
159573	//       "location": "path",
159574	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
159575	//       "required": true,
159576	//       "type": "string"
159577	//     },
159578	//     "requestId": {
159579	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
159580	//       "location": "query",
159581	//       "type": "string"
159582	//     },
159583	//     "targetPool": {
159584	//       "description": "Name of the TargetPool resource to remove instances from.",
159585	//       "location": "path",
159586	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
159587	//       "required": true,
159588	//       "type": "string"
159589	//     }
159590	//   },
159591	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance",
159592	//   "request": {
159593	//     "$ref": "TargetPoolsRemoveInstanceRequest"
159594	//   },
159595	//   "response": {
159596	//     "$ref": "Operation"
159597	//   },
159598	//   "scopes": [
159599	//     "https://www.googleapis.com/auth/cloud-platform",
159600	//     "https://www.googleapis.com/auth/compute"
159601	//   ]
159602	// }
159603
159604}
159605
159606// method id "compute.targetPools.setBackup":
159607
159608type TargetPoolsSetBackupCall struct {
159609	s               *Service
159610	project         string
159611	region          string
159612	targetPool      string
159613	targetreference *TargetReference
159614	urlParams_      gensupport.URLParams
159615	ctx_            context.Context
159616	header_         http.Header
159617}
159618
159619// SetBackup: Changes a backup target pool's configurations.
159620//
159621// - project: Project ID for this request.
159622// - region: Name of the region scoping this request.
159623// - targetPool: Name of the TargetPool resource to set a backup pool
159624//   for.
159625func (r *TargetPoolsService) SetBackup(project string, region string, targetPool string, targetreference *TargetReference) *TargetPoolsSetBackupCall {
159626	c := &TargetPoolsSetBackupCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159627	c.project = project
159628	c.region = region
159629	c.targetPool = targetPool
159630	c.targetreference = targetreference
159631	return c
159632}
159633
159634// FailoverRatio sets the optional parameter "failoverRatio": New
159635// failoverRatio value for the target pool.
159636func (c *TargetPoolsSetBackupCall) FailoverRatio(failoverRatio float64) *TargetPoolsSetBackupCall {
159637	c.urlParams_.Set("failoverRatio", fmt.Sprint(failoverRatio))
159638	return c
159639}
159640
159641// RequestId sets the optional parameter "requestId": An optional
159642// request ID to identify requests. Specify a unique request ID so that
159643// if you must retry your request, the server will know to ignore the
159644// request if it has already been completed. For example, consider a
159645// situation where you make an initial request and the request times
159646// out. If you make the request again with the same request ID, the
159647// server can check if original operation with the same request ID was
159648// received, and if so, will ignore the second request. This prevents
159649// clients from accidentally creating duplicate commitments. The request
159650// ID must be a valid UUID with the exception that zero UUID is not
159651// supported ( 00000000-0000-0000-0000-000000000000).
159652func (c *TargetPoolsSetBackupCall) RequestId(requestId string) *TargetPoolsSetBackupCall {
159653	c.urlParams_.Set("requestId", requestId)
159654	return c
159655}
159656
159657// Fields allows partial responses to be retrieved. See
159658// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159659// for more information.
159660func (c *TargetPoolsSetBackupCall) Fields(s ...googleapi.Field) *TargetPoolsSetBackupCall {
159661	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159662	return c
159663}
159664
159665// Context sets the context to be used in this call's Do method. Any
159666// pending HTTP request will be aborted if the provided context is
159667// canceled.
159668func (c *TargetPoolsSetBackupCall) Context(ctx context.Context) *TargetPoolsSetBackupCall {
159669	c.ctx_ = ctx
159670	return c
159671}
159672
159673// Header returns an http.Header that can be modified by the caller to
159674// add HTTP headers to the request.
159675func (c *TargetPoolsSetBackupCall) Header() http.Header {
159676	if c.header_ == nil {
159677		c.header_ = make(http.Header)
159678	}
159679	return c.header_
159680}
159681
159682func (c *TargetPoolsSetBackupCall) doRequest(alt string) (*http.Response, error) {
159683	reqHeaders := make(http.Header)
159684	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
159685	for k, v := range c.header_ {
159686		reqHeaders[k] = v
159687	}
159688	reqHeaders.Set("User-Agent", c.s.userAgent())
159689	var body io.Reader = nil
159690	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
159691	if err != nil {
159692		return nil, err
159693	}
159694	reqHeaders.Set("Content-Type", "application/json")
159695	c.urlParams_.Set("alt", alt)
159696	c.urlParams_.Set("prettyPrint", "false")
159697	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup")
159698	urls += "?" + c.urlParams_.Encode()
159699	req, err := http.NewRequest("POST", urls, body)
159700	if err != nil {
159701		return nil, err
159702	}
159703	req.Header = reqHeaders
159704	googleapi.Expand(req.URL, map[string]string{
159705		"project":    c.project,
159706		"region":     c.region,
159707		"targetPool": c.targetPool,
159708	})
159709	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159710}
159711
159712// Do executes the "compute.targetPools.setBackup" call.
159713// Exactly one of *Operation or error will be non-nil. Any non-2xx
159714// status code is an error. Response headers are in either
159715// *Operation.ServerResponse.Header or (if a response was returned at
159716// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
159717// to check whether the returned error was because
159718// http.StatusNotModified was returned.
159719func (c *TargetPoolsSetBackupCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
159720	gensupport.SetOptions(c.urlParams_, opts...)
159721	res, err := c.doRequest("json")
159722	if res != nil && res.StatusCode == http.StatusNotModified {
159723		if res.Body != nil {
159724			res.Body.Close()
159725		}
159726		return nil, &googleapi.Error{
159727			Code:   res.StatusCode,
159728			Header: res.Header,
159729		}
159730	}
159731	if err != nil {
159732		return nil, err
159733	}
159734	defer googleapi.CloseBody(res)
159735	if err := googleapi.CheckResponse(res); err != nil {
159736		return nil, err
159737	}
159738	ret := &Operation{
159739		ServerResponse: googleapi.ServerResponse{
159740			Header:         res.Header,
159741			HTTPStatusCode: res.StatusCode,
159742		},
159743	}
159744	target := &ret
159745	if err := gensupport.DecodeResponse(target, res); err != nil {
159746		return nil, err
159747	}
159748	return ret, nil
159749	// {
159750	//   "description": "Changes a backup target pool's configurations.",
159751	//   "flatPath": "projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup",
159752	//   "httpMethod": "POST",
159753	//   "id": "compute.targetPools.setBackup",
159754	//   "parameterOrder": [
159755	//     "project",
159756	//     "region",
159757	//     "targetPool"
159758	//   ],
159759	//   "parameters": {
159760	//     "failoverRatio": {
159761	//       "description": "New failoverRatio value for the target pool.",
159762	//       "format": "float",
159763	//       "location": "query",
159764	//       "type": "number"
159765	//     },
159766	//     "project": {
159767	//       "description": "Project ID for this request.",
159768	//       "location": "path",
159769	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159770	//       "required": true,
159771	//       "type": "string"
159772	//     },
159773	//     "region": {
159774	//       "description": "Name of the region scoping this request.",
159775	//       "location": "path",
159776	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
159777	//       "required": true,
159778	//       "type": "string"
159779	//     },
159780	//     "requestId": {
159781	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
159782	//       "location": "query",
159783	//       "type": "string"
159784	//     },
159785	//     "targetPool": {
159786	//       "description": "Name of the TargetPool resource to set a backup pool for.",
159787	//       "location": "path",
159788	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
159789	//       "required": true,
159790	//       "type": "string"
159791	//     }
159792	//   },
159793	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup",
159794	//   "request": {
159795	//     "$ref": "TargetReference"
159796	//   },
159797	//   "response": {
159798	//     "$ref": "Operation"
159799	//   },
159800	//   "scopes": [
159801	//     "https://www.googleapis.com/auth/cloud-platform",
159802	//     "https://www.googleapis.com/auth/compute"
159803	//   ]
159804	// }
159805
159806}
159807
159808// method id "compute.targetSslProxies.delete":
159809
159810type TargetSslProxiesDeleteCall struct {
159811	s              *Service
159812	project        string
159813	targetSslProxy string
159814	urlParams_     gensupport.URLParams
159815	ctx_           context.Context
159816	header_        http.Header
159817}
159818
159819// Delete: Deletes the specified TargetSslProxy resource.
159820//
159821// - project: Project ID for this request.
159822// - targetSslProxy: Name of the TargetSslProxy resource to delete.
159823func (r *TargetSslProxiesService) Delete(project string, targetSslProxy string) *TargetSslProxiesDeleteCall {
159824	c := &TargetSslProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159825	c.project = project
159826	c.targetSslProxy = targetSslProxy
159827	return c
159828}
159829
159830// RequestId sets the optional parameter "requestId": An optional
159831// request ID to identify requests. Specify a unique request ID so that
159832// if you must retry your request, the server will know to ignore the
159833// request if it has already been completed. For example, consider a
159834// situation where you make an initial request and the request times
159835// out. If you make the request again with the same request ID, the
159836// server can check if original operation with the same request ID was
159837// received, and if so, will ignore the second request. This prevents
159838// clients from accidentally creating duplicate commitments. The request
159839// ID must be a valid UUID with the exception that zero UUID is not
159840// supported ( 00000000-0000-0000-0000-000000000000).
159841func (c *TargetSslProxiesDeleteCall) RequestId(requestId string) *TargetSslProxiesDeleteCall {
159842	c.urlParams_.Set("requestId", requestId)
159843	return c
159844}
159845
159846// Fields allows partial responses to be retrieved. See
159847// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159848// for more information.
159849func (c *TargetSslProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetSslProxiesDeleteCall {
159850	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159851	return c
159852}
159853
159854// Context sets the context to be used in this call's Do method. Any
159855// pending HTTP request will be aborted if the provided context is
159856// canceled.
159857func (c *TargetSslProxiesDeleteCall) Context(ctx context.Context) *TargetSslProxiesDeleteCall {
159858	c.ctx_ = ctx
159859	return c
159860}
159861
159862// Header returns an http.Header that can be modified by the caller to
159863// add HTTP headers to the request.
159864func (c *TargetSslProxiesDeleteCall) Header() http.Header {
159865	if c.header_ == nil {
159866		c.header_ = make(http.Header)
159867	}
159868	return c.header_
159869}
159870
159871func (c *TargetSslProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
159872	reqHeaders := make(http.Header)
159873	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
159874	for k, v := range c.header_ {
159875		reqHeaders[k] = v
159876	}
159877	reqHeaders.Set("User-Agent", c.s.userAgent())
159878	var body io.Reader = nil
159879	c.urlParams_.Set("alt", alt)
159880	c.urlParams_.Set("prettyPrint", "false")
159881	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}")
159882	urls += "?" + c.urlParams_.Encode()
159883	req, err := http.NewRequest("DELETE", urls, body)
159884	if err != nil {
159885		return nil, err
159886	}
159887	req.Header = reqHeaders
159888	googleapi.Expand(req.URL, map[string]string{
159889		"project":        c.project,
159890		"targetSslProxy": c.targetSslProxy,
159891	})
159892	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159893}
159894
159895// Do executes the "compute.targetSslProxies.delete" call.
159896// Exactly one of *Operation or error will be non-nil. Any non-2xx
159897// status code is an error. Response headers are in either
159898// *Operation.ServerResponse.Header or (if a response was returned at
159899// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
159900// to check whether the returned error was because
159901// http.StatusNotModified was returned.
159902func (c *TargetSslProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
159903	gensupport.SetOptions(c.urlParams_, opts...)
159904	res, err := c.doRequest("json")
159905	if res != nil && res.StatusCode == http.StatusNotModified {
159906		if res.Body != nil {
159907			res.Body.Close()
159908		}
159909		return nil, &googleapi.Error{
159910			Code:   res.StatusCode,
159911			Header: res.Header,
159912		}
159913	}
159914	if err != nil {
159915		return nil, err
159916	}
159917	defer googleapi.CloseBody(res)
159918	if err := googleapi.CheckResponse(res); err != nil {
159919		return nil, err
159920	}
159921	ret := &Operation{
159922		ServerResponse: googleapi.ServerResponse{
159923			Header:         res.Header,
159924			HTTPStatusCode: res.StatusCode,
159925		},
159926	}
159927	target := &ret
159928	if err := gensupport.DecodeResponse(target, res); err != nil {
159929		return nil, err
159930	}
159931	return ret, nil
159932	// {
159933	//   "description": "Deletes the specified TargetSslProxy resource.",
159934	//   "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}",
159935	//   "httpMethod": "DELETE",
159936	//   "id": "compute.targetSslProxies.delete",
159937	//   "parameterOrder": [
159938	//     "project",
159939	//     "targetSslProxy"
159940	//   ],
159941	//   "parameters": {
159942	//     "project": {
159943	//       "description": "Project ID for this request.",
159944	//       "location": "path",
159945	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159946	//       "required": true,
159947	//       "type": "string"
159948	//     },
159949	//     "requestId": {
159950	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
159951	//       "location": "query",
159952	//       "type": "string"
159953	//     },
159954	//     "targetSslProxy": {
159955	//       "description": "Name of the TargetSslProxy resource to delete.",
159956	//       "location": "path",
159957	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
159958	//       "required": true,
159959	//       "type": "string"
159960	//     }
159961	//   },
159962	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}",
159963	//   "response": {
159964	//     "$ref": "Operation"
159965	//   },
159966	//   "scopes": [
159967	//     "https://www.googleapis.com/auth/cloud-platform",
159968	//     "https://www.googleapis.com/auth/compute"
159969	//   ]
159970	// }
159971
159972}
159973
159974// method id "compute.targetSslProxies.get":
159975
159976type TargetSslProxiesGetCall struct {
159977	s              *Service
159978	project        string
159979	targetSslProxy string
159980	urlParams_     gensupport.URLParams
159981	ifNoneMatch_   string
159982	ctx_           context.Context
159983	header_        http.Header
159984}
159985
159986// Get: Returns the specified TargetSslProxy resource. Gets a list of
159987// available target SSL proxies by making a list() request.
159988//
159989// - project: Project ID for this request.
159990// - targetSslProxy: Name of the TargetSslProxy resource to return.
159991func (r *TargetSslProxiesService) Get(project string, targetSslProxy string) *TargetSslProxiesGetCall {
159992	c := &TargetSslProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159993	c.project = project
159994	c.targetSslProxy = targetSslProxy
159995	return c
159996}
159997
159998// Fields allows partial responses to be retrieved. See
159999// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160000// for more information.
160001func (c *TargetSslProxiesGetCall) Fields(s ...googleapi.Field) *TargetSslProxiesGetCall {
160002	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160003	return c
160004}
160005
160006// IfNoneMatch sets the optional parameter which makes the operation
160007// fail if the object's ETag matches the given value. This is useful for
160008// getting updates only after the object has changed since the last
160009// request. Use googleapi.IsNotModified to check whether the response
160010// error from Do is the result of In-None-Match.
160011func (c *TargetSslProxiesGetCall) IfNoneMatch(entityTag string) *TargetSslProxiesGetCall {
160012	c.ifNoneMatch_ = entityTag
160013	return c
160014}
160015
160016// Context sets the context to be used in this call's Do method. Any
160017// pending HTTP request will be aborted if the provided context is
160018// canceled.
160019func (c *TargetSslProxiesGetCall) Context(ctx context.Context) *TargetSslProxiesGetCall {
160020	c.ctx_ = ctx
160021	return c
160022}
160023
160024// Header returns an http.Header that can be modified by the caller to
160025// add HTTP headers to the request.
160026func (c *TargetSslProxiesGetCall) Header() http.Header {
160027	if c.header_ == nil {
160028		c.header_ = make(http.Header)
160029	}
160030	return c.header_
160031}
160032
160033func (c *TargetSslProxiesGetCall) doRequest(alt string) (*http.Response, error) {
160034	reqHeaders := make(http.Header)
160035	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
160036	for k, v := range c.header_ {
160037		reqHeaders[k] = v
160038	}
160039	reqHeaders.Set("User-Agent", c.s.userAgent())
160040	if c.ifNoneMatch_ != "" {
160041		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
160042	}
160043	var body io.Reader = nil
160044	c.urlParams_.Set("alt", alt)
160045	c.urlParams_.Set("prettyPrint", "false")
160046	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}")
160047	urls += "?" + c.urlParams_.Encode()
160048	req, err := http.NewRequest("GET", urls, body)
160049	if err != nil {
160050		return nil, err
160051	}
160052	req.Header = reqHeaders
160053	googleapi.Expand(req.URL, map[string]string{
160054		"project":        c.project,
160055		"targetSslProxy": c.targetSslProxy,
160056	})
160057	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160058}
160059
160060// Do executes the "compute.targetSslProxies.get" call.
160061// Exactly one of *TargetSslProxy or error will be non-nil. Any non-2xx
160062// status code is an error. Response headers are in either
160063// *TargetSslProxy.ServerResponse.Header or (if a response was returned
160064// at all) in error.(*googleapi.Error).Header. Use
160065// googleapi.IsNotModified to check whether the returned error was
160066// because http.StatusNotModified was returned.
160067func (c *TargetSslProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetSslProxy, error) {
160068	gensupport.SetOptions(c.urlParams_, opts...)
160069	res, err := c.doRequest("json")
160070	if res != nil && res.StatusCode == http.StatusNotModified {
160071		if res.Body != nil {
160072			res.Body.Close()
160073		}
160074		return nil, &googleapi.Error{
160075			Code:   res.StatusCode,
160076			Header: res.Header,
160077		}
160078	}
160079	if err != nil {
160080		return nil, err
160081	}
160082	defer googleapi.CloseBody(res)
160083	if err := googleapi.CheckResponse(res); err != nil {
160084		return nil, err
160085	}
160086	ret := &TargetSslProxy{
160087		ServerResponse: googleapi.ServerResponse{
160088			Header:         res.Header,
160089			HTTPStatusCode: res.StatusCode,
160090		},
160091	}
160092	target := &ret
160093	if err := gensupport.DecodeResponse(target, res); err != nil {
160094		return nil, err
160095	}
160096	return ret, nil
160097	// {
160098	//   "description": "Returns the specified TargetSslProxy resource. Gets a list of available target SSL proxies by making a list() request.",
160099	//   "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}",
160100	//   "httpMethod": "GET",
160101	//   "id": "compute.targetSslProxies.get",
160102	//   "parameterOrder": [
160103	//     "project",
160104	//     "targetSslProxy"
160105	//   ],
160106	//   "parameters": {
160107	//     "project": {
160108	//       "description": "Project ID for this request.",
160109	//       "location": "path",
160110	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160111	//       "required": true,
160112	//       "type": "string"
160113	//     },
160114	//     "targetSslProxy": {
160115	//       "description": "Name of the TargetSslProxy resource to return.",
160116	//       "location": "path",
160117	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160118	//       "required": true,
160119	//       "type": "string"
160120	//     }
160121	//   },
160122	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}",
160123	//   "response": {
160124	//     "$ref": "TargetSslProxy"
160125	//   },
160126	//   "scopes": [
160127	//     "https://www.googleapis.com/auth/cloud-platform",
160128	//     "https://www.googleapis.com/auth/compute",
160129	//     "https://www.googleapis.com/auth/compute.readonly"
160130	//   ]
160131	// }
160132
160133}
160134
160135// method id "compute.targetSslProxies.insert":
160136
160137type TargetSslProxiesInsertCall struct {
160138	s              *Service
160139	project        string
160140	targetsslproxy *TargetSslProxy
160141	urlParams_     gensupport.URLParams
160142	ctx_           context.Context
160143	header_        http.Header
160144}
160145
160146// Insert: Creates a TargetSslProxy resource in the specified project
160147// using the data included in the request.
160148//
160149// - project: Project ID for this request.
160150func (r *TargetSslProxiesService) Insert(project string, targetsslproxy *TargetSslProxy) *TargetSslProxiesInsertCall {
160151	c := &TargetSslProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160152	c.project = project
160153	c.targetsslproxy = targetsslproxy
160154	return c
160155}
160156
160157// RequestId sets the optional parameter "requestId": An optional
160158// request ID to identify requests. Specify a unique request ID so that
160159// if you must retry your request, the server will know to ignore the
160160// request if it has already been completed. For example, consider a
160161// situation where you make an initial request and the request times
160162// out. If you make the request again with the same request ID, the
160163// server can check if original operation with the same request ID was
160164// received, and if so, will ignore the second request. This prevents
160165// clients from accidentally creating duplicate commitments. The request
160166// ID must be a valid UUID with the exception that zero UUID is not
160167// supported ( 00000000-0000-0000-0000-000000000000).
160168func (c *TargetSslProxiesInsertCall) RequestId(requestId string) *TargetSslProxiesInsertCall {
160169	c.urlParams_.Set("requestId", requestId)
160170	return c
160171}
160172
160173// Fields allows partial responses to be retrieved. See
160174// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160175// for more information.
160176func (c *TargetSslProxiesInsertCall) Fields(s ...googleapi.Field) *TargetSslProxiesInsertCall {
160177	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160178	return c
160179}
160180
160181// Context sets the context to be used in this call's Do method. Any
160182// pending HTTP request will be aborted if the provided context is
160183// canceled.
160184func (c *TargetSslProxiesInsertCall) Context(ctx context.Context) *TargetSslProxiesInsertCall {
160185	c.ctx_ = ctx
160186	return c
160187}
160188
160189// Header returns an http.Header that can be modified by the caller to
160190// add HTTP headers to the request.
160191func (c *TargetSslProxiesInsertCall) Header() http.Header {
160192	if c.header_ == nil {
160193		c.header_ = make(http.Header)
160194	}
160195	return c.header_
160196}
160197
160198func (c *TargetSslProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
160199	reqHeaders := make(http.Header)
160200	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
160201	for k, v := range c.header_ {
160202		reqHeaders[k] = v
160203	}
160204	reqHeaders.Set("User-Agent", c.s.userAgent())
160205	var body io.Reader = nil
160206	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxy)
160207	if err != nil {
160208		return nil, err
160209	}
160210	reqHeaders.Set("Content-Type", "application/json")
160211	c.urlParams_.Set("alt", alt)
160212	c.urlParams_.Set("prettyPrint", "false")
160213	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies")
160214	urls += "?" + c.urlParams_.Encode()
160215	req, err := http.NewRequest("POST", urls, body)
160216	if err != nil {
160217		return nil, err
160218	}
160219	req.Header = reqHeaders
160220	googleapi.Expand(req.URL, map[string]string{
160221		"project": c.project,
160222	})
160223	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160224}
160225
160226// Do executes the "compute.targetSslProxies.insert" call.
160227// Exactly one of *Operation or error will be non-nil. Any non-2xx
160228// status code is an error. Response headers are in either
160229// *Operation.ServerResponse.Header or (if a response was returned at
160230// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160231// to check whether the returned error was because
160232// http.StatusNotModified was returned.
160233func (c *TargetSslProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
160234	gensupport.SetOptions(c.urlParams_, opts...)
160235	res, err := c.doRequest("json")
160236	if res != nil && res.StatusCode == http.StatusNotModified {
160237		if res.Body != nil {
160238			res.Body.Close()
160239		}
160240		return nil, &googleapi.Error{
160241			Code:   res.StatusCode,
160242			Header: res.Header,
160243		}
160244	}
160245	if err != nil {
160246		return nil, err
160247	}
160248	defer googleapi.CloseBody(res)
160249	if err := googleapi.CheckResponse(res); err != nil {
160250		return nil, err
160251	}
160252	ret := &Operation{
160253		ServerResponse: googleapi.ServerResponse{
160254			Header:         res.Header,
160255			HTTPStatusCode: res.StatusCode,
160256		},
160257	}
160258	target := &ret
160259	if err := gensupport.DecodeResponse(target, res); err != nil {
160260		return nil, err
160261	}
160262	return ret, nil
160263	// {
160264	//   "description": "Creates a TargetSslProxy resource in the specified project using the data included in the request.",
160265	//   "flatPath": "projects/{project}/global/targetSslProxies",
160266	//   "httpMethod": "POST",
160267	//   "id": "compute.targetSslProxies.insert",
160268	//   "parameterOrder": [
160269	//     "project"
160270	//   ],
160271	//   "parameters": {
160272	//     "project": {
160273	//       "description": "Project ID for this request.",
160274	//       "location": "path",
160275	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160276	//       "required": true,
160277	//       "type": "string"
160278	//     },
160279	//     "requestId": {
160280	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
160281	//       "location": "query",
160282	//       "type": "string"
160283	//     }
160284	//   },
160285	//   "path": "projects/{project}/global/targetSslProxies",
160286	//   "request": {
160287	//     "$ref": "TargetSslProxy"
160288	//   },
160289	//   "response": {
160290	//     "$ref": "Operation"
160291	//   },
160292	//   "scopes": [
160293	//     "https://www.googleapis.com/auth/cloud-platform",
160294	//     "https://www.googleapis.com/auth/compute"
160295	//   ]
160296	// }
160297
160298}
160299
160300// method id "compute.targetSslProxies.list":
160301
160302type TargetSslProxiesListCall struct {
160303	s            *Service
160304	project      string
160305	urlParams_   gensupport.URLParams
160306	ifNoneMatch_ string
160307	ctx_         context.Context
160308	header_      http.Header
160309}
160310
160311// List: Retrieves the list of TargetSslProxy resources available to the
160312// specified project.
160313//
160314// - project: Project ID for this request.
160315func (r *TargetSslProxiesService) List(project string) *TargetSslProxiesListCall {
160316	c := &TargetSslProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160317	c.project = project
160318	return c
160319}
160320
160321// Filter sets the optional parameter "filter": A filter expression that
160322// filters resources listed in the response. The expression must specify
160323// the field name, a comparison operator, and the value that you want to
160324// use for filtering. The value must be a string, a number, or a
160325// boolean. The comparison operator must be either `=`, `!=`, `>`, or
160326// `<`. For example, if you are filtering Compute Engine instances, you
160327// can exclude instances named `example-instance` by specifying `name !=
160328// example-instance`. You can also filter nested fields. For example,
160329// you could specify `scheduling.automaticRestart = false` to include
160330// instances only if they are not scheduled for automatic restarts. You
160331// can use filtering on nested fields to filter based on resource
160332// labels. To filter on multiple expressions, provide each separate
160333// expression within parentheses. For example: ```
160334// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
160335// ``` By default, each expression is an `AND` expression. However, you
160336// can include `AND` and `OR` expressions explicitly. For example: ```
160337// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
160338// AND (scheduling.automaticRestart = true) ```
160339func (c *TargetSslProxiesListCall) Filter(filter string) *TargetSslProxiesListCall {
160340	c.urlParams_.Set("filter", filter)
160341	return c
160342}
160343
160344// MaxResults sets the optional parameter "maxResults": The maximum
160345// number of results per page that should be returned. If the number of
160346// available results is larger than `maxResults`, Compute Engine returns
160347// a `nextPageToken` that can be used to get the next page of results in
160348// subsequent list requests. Acceptable values are `0` to `500`,
160349// inclusive. (Default: `500`)
160350func (c *TargetSslProxiesListCall) MaxResults(maxResults int64) *TargetSslProxiesListCall {
160351	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
160352	return c
160353}
160354
160355// OrderBy sets the optional parameter "orderBy": Sorts list results by
160356// a certain order. By default, results are returned in alphanumerical
160357// order based on the resource name. You can also sort results in
160358// descending order based on the creation timestamp using
160359// `orderBy="creationTimestamp desc". This sorts results based on the
160360// `creationTimestamp` field in reverse chronological order (newest
160361// result first). Use this to sort resources like operations so that the
160362// newest operation is returned first. Currently, only sorting by `name`
160363// or `creationTimestamp desc` is supported.
160364func (c *TargetSslProxiesListCall) OrderBy(orderBy string) *TargetSslProxiesListCall {
160365	c.urlParams_.Set("orderBy", orderBy)
160366	return c
160367}
160368
160369// PageToken sets the optional parameter "pageToken": Specifies a page
160370// token to use. Set `pageToken` to the `nextPageToken` returned by a
160371// previous list request to get the next page of results.
160372func (c *TargetSslProxiesListCall) PageToken(pageToken string) *TargetSslProxiesListCall {
160373	c.urlParams_.Set("pageToken", pageToken)
160374	return c
160375}
160376
160377// ReturnPartialSuccess sets the optional parameter
160378// "returnPartialSuccess": Opt-in for partial success behavior which
160379// provides partial results in case of failure. The default value is
160380// false.
160381func (c *TargetSslProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetSslProxiesListCall {
160382	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
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 *TargetSslProxiesListCall) Fields(s ...googleapi.Field) *TargetSslProxiesListCall {
160390	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160391	return c
160392}
160393
160394// IfNoneMatch sets the optional parameter which makes the operation
160395// fail if the object's ETag matches the given value. This is useful for
160396// getting updates only after the object has changed since the last
160397// request. Use googleapi.IsNotModified to check whether the response
160398// error from Do is the result of In-None-Match.
160399func (c *TargetSslProxiesListCall) IfNoneMatch(entityTag string) *TargetSslProxiesListCall {
160400	c.ifNoneMatch_ = entityTag
160401	return c
160402}
160403
160404// Context sets the context to be used in this call's Do method. Any
160405// pending HTTP request will be aborted if the provided context is
160406// canceled.
160407func (c *TargetSslProxiesListCall) Context(ctx context.Context) *TargetSslProxiesListCall {
160408	c.ctx_ = ctx
160409	return c
160410}
160411
160412// Header returns an http.Header that can be modified by the caller to
160413// add HTTP headers to the request.
160414func (c *TargetSslProxiesListCall) Header() http.Header {
160415	if c.header_ == nil {
160416		c.header_ = make(http.Header)
160417	}
160418	return c.header_
160419}
160420
160421func (c *TargetSslProxiesListCall) doRequest(alt string) (*http.Response, error) {
160422	reqHeaders := make(http.Header)
160423	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
160424	for k, v := range c.header_ {
160425		reqHeaders[k] = v
160426	}
160427	reqHeaders.Set("User-Agent", c.s.userAgent())
160428	if c.ifNoneMatch_ != "" {
160429		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
160430	}
160431	var body io.Reader = nil
160432	c.urlParams_.Set("alt", alt)
160433	c.urlParams_.Set("prettyPrint", "false")
160434	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies")
160435	urls += "?" + c.urlParams_.Encode()
160436	req, err := http.NewRequest("GET", urls, body)
160437	if err != nil {
160438		return nil, err
160439	}
160440	req.Header = reqHeaders
160441	googleapi.Expand(req.URL, map[string]string{
160442		"project": c.project,
160443	})
160444	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160445}
160446
160447// Do executes the "compute.targetSslProxies.list" call.
160448// Exactly one of *TargetSslProxyList or error will be non-nil. Any
160449// non-2xx status code is an error. Response headers are in either
160450// *TargetSslProxyList.ServerResponse.Header or (if a response was
160451// returned at all) in error.(*googleapi.Error).Header. Use
160452// googleapi.IsNotModified to check whether the returned error was
160453// because http.StatusNotModified was returned.
160454func (c *TargetSslProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetSslProxyList, error) {
160455	gensupport.SetOptions(c.urlParams_, opts...)
160456	res, err := c.doRequest("json")
160457	if res != nil && res.StatusCode == http.StatusNotModified {
160458		if res.Body != nil {
160459			res.Body.Close()
160460		}
160461		return nil, &googleapi.Error{
160462			Code:   res.StatusCode,
160463			Header: res.Header,
160464		}
160465	}
160466	if err != nil {
160467		return nil, err
160468	}
160469	defer googleapi.CloseBody(res)
160470	if err := googleapi.CheckResponse(res); err != nil {
160471		return nil, err
160472	}
160473	ret := &TargetSslProxyList{
160474		ServerResponse: googleapi.ServerResponse{
160475			Header:         res.Header,
160476			HTTPStatusCode: res.StatusCode,
160477		},
160478	}
160479	target := &ret
160480	if err := gensupport.DecodeResponse(target, res); err != nil {
160481		return nil, err
160482	}
160483	return ret, nil
160484	// {
160485	//   "description": "Retrieves the list of TargetSslProxy resources available to the specified project.",
160486	//   "flatPath": "projects/{project}/global/targetSslProxies",
160487	//   "httpMethod": "GET",
160488	//   "id": "compute.targetSslProxies.list",
160489	//   "parameterOrder": [
160490	//     "project"
160491	//   ],
160492	//   "parameters": {
160493	//     "filter": {
160494	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
160495	//       "location": "query",
160496	//       "type": "string"
160497	//     },
160498	//     "maxResults": {
160499	//       "default": "500",
160500	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
160501	//       "format": "uint32",
160502	//       "location": "query",
160503	//       "minimum": "0",
160504	//       "type": "integer"
160505	//     },
160506	//     "orderBy": {
160507	//       "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.",
160508	//       "location": "query",
160509	//       "type": "string"
160510	//     },
160511	//     "pageToken": {
160512	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
160513	//       "location": "query",
160514	//       "type": "string"
160515	//     },
160516	//     "project": {
160517	//       "description": "Project ID for this request.",
160518	//       "location": "path",
160519	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160520	//       "required": true,
160521	//       "type": "string"
160522	//     },
160523	//     "returnPartialSuccess": {
160524	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
160525	//       "location": "query",
160526	//       "type": "boolean"
160527	//     }
160528	//   },
160529	//   "path": "projects/{project}/global/targetSslProxies",
160530	//   "response": {
160531	//     "$ref": "TargetSslProxyList"
160532	//   },
160533	//   "scopes": [
160534	//     "https://www.googleapis.com/auth/cloud-platform",
160535	//     "https://www.googleapis.com/auth/compute",
160536	//     "https://www.googleapis.com/auth/compute.readonly"
160537	//   ]
160538	// }
160539
160540}
160541
160542// Pages invokes f for each page of results.
160543// A non-nil error returned from f will halt the iteration.
160544// The provided context supersedes any context provided to the Context method.
160545func (c *TargetSslProxiesListCall) Pages(ctx context.Context, f func(*TargetSslProxyList) error) error {
160546	c.ctx_ = ctx
160547	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
160548	for {
160549		x, err := c.Do()
160550		if err != nil {
160551			return err
160552		}
160553		if err := f(x); err != nil {
160554			return err
160555		}
160556		if x.NextPageToken == "" {
160557			return nil
160558		}
160559		c.PageToken(x.NextPageToken)
160560	}
160561}
160562
160563// method id "compute.targetSslProxies.setBackendService":
160564
160565type TargetSslProxiesSetBackendServiceCall struct {
160566	s                                        *Service
160567	project                                  string
160568	targetSslProxy                           string
160569	targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest
160570	urlParams_                               gensupport.URLParams
160571	ctx_                                     context.Context
160572	header_                                  http.Header
160573}
160574
160575// SetBackendService: Changes the BackendService for TargetSslProxy.
160576//
160577// - project: Project ID for this request.
160578// - targetSslProxy: Name of the TargetSslProxy resource whose
160579//   BackendService resource is to be set.
160580func (r *TargetSslProxiesService) SetBackendService(project string, targetSslProxy string, targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest) *TargetSslProxiesSetBackendServiceCall {
160581	c := &TargetSslProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160582	c.project = project
160583	c.targetSslProxy = targetSslProxy
160584	c.targetsslproxiessetbackendservicerequest = targetsslproxiessetbackendservicerequest
160585	return c
160586}
160587
160588// RequestId sets the optional parameter "requestId": An optional
160589// request ID to identify requests. Specify a unique request ID so that
160590// if you must retry your request, the server will know to ignore the
160591// request if it has already been completed. For example, consider a
160592// situation where you make an initial request and the request times
160593// out. If you make the request again with the same request ID, the
160594// server can check if original operation with the same request ID was
160595// received, and if so, will ignore the second request. This prevents
160596// clients from accidentally creating duplicate commitments. The request
160597// ID must be a valid UUID with the exception that zero UUID is not
160598// supported ( 00000000-0000-0000-0000-000000000000).
160599func (c *TargetSslProxiesSetBackendServiceCall) RequestId(requestId string) *TargetSslProxiesSetBackendServiceCall {
160600	c.urlParams_.Set("requestId", requestId)
160601	return c
160602}
160603
160604// Fields allows partial responses to be retrieved. See
160605// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160606// for more information.
160607func (c *TargetSslProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetBackendServiceCall {
160608	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160609	return c
160610}
160611
160612// Context sets the context to be used in this call's Do method. Any
160613// pending HTTP request will be aborted if the provided context is
160614// canceled.
160615func (c *TargetSslProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetSslProxiesSetBackendServiceCall {
160616	c.ctx_ = ctx
160617	return c
160618}
160619
160620// Header returns an http.Header that can be modified by the caller to
160621// add HTTP headers to the request.
160622func (c *TargetSslProxiesSetBackendServiceCall) Header() http.Header {
160623	if c.header_ == nil {
160624		c.header_ = make(http.Header)
160625	}
160626	return c.header_
160627}
160628
160629func (c *TargetSslProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) {
160630	reqHeaders := make(http.Header)
160631	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
160632	for k, v := range c.header_ {
160633		reqHeaders[k] = v
160634	}
160635	reqHeaders.Set("User-Agent", c.s.userAgent())
160636	var body io.Reader = nil
160637	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetbackendservicerequest)
160638	if err != nil {
160639		return nil, err
160640	}
160641	reqHeaders.Set("Content-Type", "application/json")
160642	c.urlParams_.Set("alt", alt)
160643	c.urlParams_.Set("prettyPrint", "false")
160644	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setBackendService")
160645	urls += "?" + c.urlParams_.Encode()
160646	req, err := http.NewRequest("POST", urls, body)
160647	if err != nil {
160648		return nil, err
160649	}
160650	req.Header = reqHeaders
160651	googleapi.Expand(req.URL, map[string]string{
160652		"project":        c.project,
160653		"targetSslProxy": c.targetSslProxy,
160654	})
160655	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160656}
160657
160658// Do executes the "compute.targetSslProxies.setBackendService" call.
160659// Exactly one of *Operation or error will be non-nil. Any non-2xx
160660// status code is an error. Response headers are in either
160661// *Operation.ServerResponse.Header or (if a response was returned at
160662// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160663// to check whether the returned error was because
160664// http.StatusNotModified was returned.
160665func (c *TargetSslProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
160666	gensupport.SetOptions(c.urlParams_, opts...)
160667	res, err := c.doRequest("json")
160668	if res != nil && res.StatusCode == http.StatusNotModified {
160669		if res.Body != nil {
160670			res.Body.Close()
160671		}
160672		return nil, &googleapi.Error{
160673			Code:   res.StatusCode,
160674			Header: res.Header,
160675		}
160676	}
160677	if err != nil {
160678		return nil, err
160679	}
160680	defer googleapi.CloseBody(res)
160681	if err := googleapi.CheckResponse(res); err != nil {
160682		return nil, err
160683	}
160684	ret := &Operation{
160685		ServerResponse: googleapi.ServerResponse{
160686			Header:         res.Header,
160687			HTTPStatusCode: res.StatusCode,
160688		},
160689	}
160690	target := &ret
160691	if err := gensupport.DecodeResponse(target, res); err != nil {
160692		return nil, err
160693	}
160694	return ret, nil
160695	// {
160696	//   "description": "Changes the BackendService for TargetSslProxy.",
160697	//   "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setBackendService",
160698	//   "httpMethod": "POST",
160699	//   "id": "compute.targetSslProxies.setBackendService",
160700	//   "parameterOrder": [
160701	//     "project",
160702	//     "targetSslProxy"
160703	//   ],
160704	//   "parameters": {
160705	//     "project": {
160706	//       "description": "Project ID for this request.",
160707	//       "location": "path",
160708	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160709	//       "required": true,
160710	//       "type": "string"
160711	//     },
160712	//     "requestId": {
160713	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
160714	//       "location": "query",
160715	//       "type": "string"
160716	//     },
160717	//     "targetSslProxy": {
160718	//       "description": "Name of the TargetSslProxy resource whose BackendService resource is to be set.",
160719	//       "location": "path",
160720	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160721	//       "required": true,
160722	//       "type": "string"
160723	//     }
160724	//   },
160725	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setBackendService",
160726	//   "request": {
160727	//     "$ref": "TargetSslProxiesSetBackendServiceRequest"
160728	//   },
160729	//   "response": {
160730	//     "$ref": "Operation"
160731	//   },
160732	//   "scopes": [
160733	//     "https://www.googleapis.com/auth/cloud-platform",
160734	//     "https://www.googleapis.com/auth/compute"
160735	//   ]
160736	// }
160737
160738}
160739
160740// method id "compute.targetSslProxies.setProxyHeader":
160741
160742type TargetSslProxiesSetProxyHeaderCall struct {
160743	s                                     *Service
160744	project                               string
160745	targetSslProxy                        string
160746	targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest
160747	urlParams_                            gensupport.URLParams
160748	ctx_                                  context.Context
160749	header_                               http.Header
160750}
160751
160752// SetProxyHeader: Changes the ProxyHeaderType for TargetSslProxy.
160753//
160754// - project: Project ID for this request.
160755// - targetSslProxy: Name of the TargetSslProxy resource whose
160756//   ProxyHeader is to be set.
160757func (r *TargetSslProxiesService) SetProxyHeader(project string, targetSslProxy string, targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest) *TargetSslProxiesSetProxyHeaderCall {
160758	c := &TargetSslProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160759	c.project = project
160760	c.targetSslProxy = targetSslProxy
160761	c.targetsslproxiessetproxyheaderrequest = targetsslproxiessetproxyheaderrequest
160762	return c
160763}
160764
160765// RequestId sets the optional parameter "requestId": An optional
160766// request ID to identify requests. Specify a unique request ID so that
160767// if you must retry your request, the server will know to ignore the
160768// request if it has already been completed. For example, consider a
160769// situation where you make an initial request and the request times
160770// out. If you make the request again with the same request ID, the
160771// server can check if original operation with the same request ID was
160772// received, and if so, will ignore the second request. This prevents
160773// clients from accidentally creating duplicate commitments. The request
160774// ID must be a valid UUID with the exception that zero UUID is not
160775// supported ( 00000000-0000-0000-0000-000000000000).
160776func (c *TargetSslProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetSslProxiesSetProxyHeaderCall {
160777	c.urlParams_.Set("requestId", requestId)
160778	return c
160779}
160780
160781// Fields allows partial responses to be retrieved. See
160782// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160783// for more information.
160784func (c *TargetSslProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetProxyHeaderCall {
160785	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160786	return c
160787}
160788
160789// Context sets the context to be used in this call's Do method. Any
160790// pending HTTP request will be aborted if the provided context is
160791// canceled.
160792func (c *TargetSslProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetSslProxiesSetProxyHeaderCall {
160793	c.ctx_ = ctx
160794	return c
160795}
160796
160797// Header returns an http.Header that can be modified by the caller to
160798// add HTTP headers to the request.
160799func (c *TargetSslProxiesSetProxyHeaderCall) Header() http.Header {
160800	if c.header_ == nil {
160801		c.header_ = make(http.Header)
160802	}
160803	return c.header_
160804}
160805
160806func (c *TargetSslProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) {
160807	reqHeaders := make(http.Header)
160808	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
160809	for k, v := range c.header_ {
160810		reqHeaders[k] = v
160811	}
160812	reqHeaders.Set("User-Agent", c.s.userAgent())
160813	var body io.Reader = nil
160814	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetproxyheaderrequest)
160815	if err != nil {
160816		return nil, err
160817	}
160818	reqHeaders.Set("Content-Type", "application/json")
160819	c.urlParams_.Set("alt", alt)
160820	c.urlParams_.Set("prettyPrint", "false")
160821	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader")
160822	urls += "?" + c.urlParams_.Encode()
160823	req, err := http.NewRequest("POST", urls, body)
160824	if err != nil {
160825		return nil, err
160826	}
160827	req.Header = reqHeaders
160828	googleapi.Expand(req.URL, map[string]string{
160829		"project":        c.project,
160830		"targetSslProxy": c.targetSslProxy,
160831	})
160832	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160833}
160834
160835// Do executes the "compute.targetSslProxies.setProxyHeader" call.
160836// Exactly one of *Operation or error will be non-nil. Any non-2xx
160837// status code is an error. Response headers are in either
160838// *Operation.ServerResponse.Header or (if a response was returned at
160839// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160840// to check whether the returned error was because
160841// http.StatusNotModified was returned.
160842func (c *TargetSslProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
160843	gensupport.SetOptions(c.urlParams_, opts...)
160844	res, err := c.doRequest("json")
160845	if res != nil && res.StatusCode == http.StatusNotModified {
160846		if res.Body != nil {
160847			res.Body.Close()
160848		}
160849		return nil, &googleapi.Error{
160850			Code:   res.StatusCode,
160851			Header: res.Header,
160852		}
160853	}
160854	if err != nil {
160855		return nil, err
160856	}
160857	defer googleapi.CloseBody(res)
160858	if err := googleapi.CheckResponse(res); err != nil {
160859		return nil, err
160860	}
160861	ret := &Operation{
160862		ServerResponse: googleapi.ServerResponse{
160863			Header:         res.Header,
160864			HTTPStatusCode: res.StatusCode,
160865		},
160866	}
160867	target := &ret
160868	if err := gensupport.DecodeResponse(target, res); err != nil {
160869		return nil, err
160870	}
160871	return ret, nil
160872	// {
160873	//   "description": "Changes the ProxyHeaderType for TargetSslProxy.",
160874	//   "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader",
160875	//   "httpMethod": "POST",
160876	//   "id": "compute.targetSslProxies.setProxyHeader",
160877	//   "parameterOrder": [
160878	//     "project",
160879	//     "targetSslProxy"
160880	//   ],
160881	//   "parameters": {
160882	//     "project": {
160883	//       "description": "Project ID for this request.",
160884	//       "location": "path",
160885	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160886	//       "required": true,
160887	//       "type": "string"
160888	//     },
160889	//     "requestId": {
160890	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
160891	//       "location": "query",
160892	//       "type": "string"
160893	//     },
160894	//     "targetSslProxy": {
160895	//       "description": "Name of the TargetSslProxy resource whose ProxyHeader is to be set.",
160896	//       "location": "path",
160897	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160898	//       "required": true,
160899	//       "type": "string"
160900	//     }
160901	//   },
160902	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader",
160903	//   "request": {
160904	//     "$ref": "TargetSslProxiesSetProxyHeaderRequest"
160905	//   },
160906	//   "response": {
160907	//     "$ref": "Operation"
160908	//   },
160909	//   "scopes": [
160910	//     "https://www.googleapis.com/auth/cloud-platform",
160911	//     "https://www.googleapis.com/auth/compute"
160912	//   ]
160913	// }
160914
160915}
160916
160917// method id "compute.targetSslProxies.setSslCertificates":
160918
160919type TargetSslProxiesSetSslCertificatesCall struct {
160920	s                                         *Service
160921	project                                   string
160922	targetSslProxy                            string
160923	targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest
160924	urlParams_                                gensupport.URLParams
160925	ctx_                                      context.Context
160926	header_                                   http.Header
160927}
160928
160929// SetSslCertificates: Changes SslCertificates for TargetSslProxy.
160930//
160931// - project: Project ID for this request.
160932// - targetSslProxy: Name of the TargetSslProxy resource whose
160933//   SslCertificate resource is to be set.
160934func (r *TargetSslProxiesService) SetSslCertificates(project string, targetSslProxy string, targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest) *TargetSslProxiesSetSslCertificatesCall {
160935	c := &TargetSslProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160936	c.project = project
160937	c.targetSslProxy = targetSslProxy
160938	c.targetsslproxiessetsslcertificatesrequest = targetsslproxiessetsslcertificatesrequest
160939	return c
160940}
160941
160942// RequestId sets the optional parameter "requestId": An optional
160943// request ID to identify requests. Specify a unique request ID so that
160944// if you must retry your request, the server will know to ignore the
160945// request if it has already been completed. For example, consider a
160946// situation where you make an initial request and the request times
160947// out. If you make the request again with the same request ID, the
160948// server can check if original operation with the same request ID was
160949// received, and if so, will ignore the second request. This prevents
160950// clients from accidentally creating duplicate commitments. The request
160951// ID must be a valid UUID with the exception that zero UUID is not
160952// supported ( 00000000-0000-0000-0000-000000000000).
160953func (c *TargetSslProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetSslProxiesSetSslCertificatesCall {
160954	c.urlParams_.Set("requestId", requestId)
160955	return c
160956}
160957
160958// Fields allows partial responses to be retrieved. See
160959// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160960// for more information.
160961func (c *TargetSslProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslCertificatesCall {
160962	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160963	return c
160964}
160965
160966// Context sets the context to be used in this call's Do method. Any
160967// pending HTTP request will be aborted if the provided context is
160968// canceled.
160969func (c *TargetSslProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetSslProxiesSetSslCertificatesCall {
160970	c.ctx_ = ctx
160971	return c
160972}
160973
160974// Header returns an http.Header that can be modified by the caller to
160975// add HTTP headers to the request.
160976func (c *TargetSslProxiesSetSslCertificatesCall) Header() http.Header {
160977	if c.header_ == nil {
160978		c.header_ = make(http.Header)
160979	}
160980	return c.header_
160981}
160982
160983func (c *TargetSslProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
160984	reqHeaders := make(http.Header)
160985	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
160986	for k, v := range c.header_ {
160987		reqHeaders[k] = v
160988	}
160989	reqHeaders.Set("User-Agent", c.s.userAgent())
160990	var body io.Reader = nil
160991	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetsslcertificatesrequest)
160992	if err != nil {
160993		return nil, err
160994	}
160995	reqHeaders.Set("Content-Type", "application/json")
160996	c.urlParams_.Set("alt", alt)
160997	c.urlParams_.Set("prettyPrint", "false")
160998	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates")
160999	urls += "?" + c.urlParams_.Encode()
161000	req, err := http.NewRequest("POST", urls, body)
161001	if err != nil {
161002		return nil, err
161003	}
161004	req.Header = reqHeaders
161005	googleapi.Expand(req.URL, map[string]string{
161006		"project":        c.project,
161007		"targetSslProxy": c.targetSslProxy,
161008	})
161009	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161010}
161011
161012// Do executes the "compute.targetSslProxies.setSslCertificates" call.
161013// Exactly one of *Operation or error will be non-nil. Any non-2xx
161014// status code is an error. Response headers are in either
161015// *Operation.ServerResponse.Header or (if a response was returned at
161016// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
161017// to check whether the returned error was because
161018// http.StatusNotModified was returned.
161019func (c *TargetSslProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
161020	gensupport.SetOptions(c.urlParams_, opts...)
161021	res, err := c.doRequest("json")
161022	if res != nil && res.StatusCode == http.StatusNotModified {
161023		if res.Body != nil {
161024			res.Body.Close()
161025		}
161026		return nil, &googleapi.Error{
161027			Code:   res.StatusCode,
161028			Header: res.Header,
161029		}
161030	}
161031	if err != nil {
161032		return nil, err
161033	}
161034	defer googleapi.CloseBody(res)
161035	if err := googleapi.CheckResponse(res); err != nil {
161036		return nil, err
161037	}
161038	ret := &Operation{
161039		ServerResponse: googleapi.ServerResponse{
161040			Header:         res.Header,
161041			HTTPStatusCode: res.StatusCode,
161042		},
161043	}
161044	target := &ret
161045	if err := gensupport.DecodeResponse(target, res); err != nil {
161046		return nil, err
161047	}
161048	return ret, nil
161049	// {
161050	//   "description": "Changes SslCertificates for TargetSslProxy.",
161051	//   "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates",
161052	//   "httpMethod": "POST",
161053	//   "id": "compute.targetSslProxies.setSslCertificates",
161054	//   "parameterOrder": [
161055	//     "project",
161056	//     "targetSslProxy"
161057	//   ],
161058	//   "parameters": {
161059	//     "project": {
161060	//       "description": "Project ID for this request.",
161061	//       "location": "path",
161062	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161063	//       "required": true,
161064	//       "type": "string"
161065	//     },
161066	//     "requestId": {
161067	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
161068	//       "location": "query",
161069	//       "type": "string"
161070	//     },
161071	//     "targetSslProxy": {
161072	//       "description": "Name of the TargetSslProxy resource whose SslCertificate resource is to be set.",
161073	//       "location": "path",
161074	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
161075	//       "required": true,
161076	//       "type": "string"
161077	//     }
161078	//   },
161079	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates",
161080	//   "request": {
161081	//     "$ref": "TargetSslProxiesSetSslCertificatesRequest"
161082	//   },
161083	//   "response": {
161084	//     "$ref": "Operation"
161085	//   },
161086	//   "scopes": [
161087	//     "https://www.googleapis.com/auth/cloud-platform",
161088	//     "https://www.googleapis.com/auth/compute"
161089	//   ]
161090	// }
161091
161092}
161093
161094// method id "compute.targetSslProxies.setSslPolicy":
161095
161096type TargetSslProxiesSetSslPolicyCall struct {
161097	s                  *Service
161098	project            string
161099	targetSslProxy     string
161100	sslpolicyreference *SslPolicyReference
161101	urlParams_         gensupport.URLParams
161102	ctx_               context.Context
161103	header_            http.Header
161104}
161105
161106// SetSslPolicy: Sets the SSL policy for TargetSslProxy. The SSL policy
161107// specifies the server-side support for SSL features. This affects
161108// connections between clients and the SSL proxy load balancer. They do
161109// not affect the connection between the load balancer and the backends.
161110//
161111// - project: Project ID for this request.
161112// - targetSslProxy: Name of the TargetSslProxy resource whose SSL
161113//   policy is to be set. The name must be 1-63 characters long, and
161114//   comply with RFC1035.
161115func (r *TargetSslProxiesService) SetSslPolicy(project string, targetSslProxy string, sslpolicyreference *SslPolicyReference) *TargetSslProxiesSetSslPolicyCall {
161116	c := &TargetSslProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161117	c.project = project
161118	c.targetSslProxy = targetSslProxy
161119	c.sslpolicyreference = sslpolicyreference
161120	return c
161121}
161122
161123// RequestId sets the optional parameter "requestId": An optional
161124// request ID to identify requests. Specify a unique request ID so that
161125// if you must retry your request, the server will know to ignore the
161126// request if it has already been completed. For example, consider a
161127// situation where you make an initial request and the request times
161128// out. If you make the request again with the same request ID, the
161129// server can check if original operation with the same request ID was
161130// received, and if so, will ignore the second request. This prevents
161131// clients from accidentally creating duplicate commitments. The request
161132// ID must be a valid UUID with the exception that zero UUID is not
161133// supported ( 00000000-0000-0000-0000-000000000000).
161134func (c *TargetSslProxiesSetSslPolicyCall) RequestId(requestId string) *TargetSslProxiesSetSslPolicyCall {
161135	c.urlParams_.Set("requestId", requestId)
161136	return c
161137}
161138
161139// Fields allows partial responses to be retrieved. See
161140// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161141// for more information.
161142func (c *TargetSslProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslPolicyCall {
161143	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161144	return c
161145}
161146
161147// Context sets the context to be used in this call's Do method. Any
161148// pending HTTP request will be aborted if the provided context is
161149// canceled.
161150func (c *TargetSslProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetSslProxiesSetSslPolicyCall {
161151	c.ctx_ = ctx
161152	return c
161153}
161154
161155// Header returns an http.Header that can be modified by the caller to
161156// add HTTP headers to the request.
161157func (c *TargetSslProxiesSetSslPolicyCall) Header() http.Header {
161158	if c.header_ == nil {
161159		c.header_ = make(http.Header)
161160	}
161161	return c.header_
161162}
161163
161164func (c *TargetSslProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) {
161165	reqHeaders := make(http.Header)
161166	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
161167	for k, v := range c.header_ {
161168		reqHeaders[k] = v
161169	}
161170	reqHeaders.Set("User-Agent", c.s.userAgent())
161171	var body io.Reader = nil
161172	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicyreference)
161173	if err != nil {
161174		return nil, err
161175	}
161176	reqHeaders.Set("Content-Type", "application/json")
161177	c.urlParams_.Set("alt", alt)
161178	c.urlParams_.Set("prettyPrint", "false")
161179	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy")
161180	urls += "?" + c.urlParams_.Encode()
161181	req, err := http.NewRequest("POST", urls, body)
161182	if err != nil {
161183		return nil, err
161184	}
161185	req.Header = reqHeaders
161186	googleapi.Expand(req.URL, map[string]string{
161187		"project":        c.project,
161188		"targetSslProxy": c.targetSslProxy,
161189	})
161190	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161191}
161192
161193// Do executes the "compute.targetSslProxies.setSslPolicy" call.
161194// Exactly one of *Operation or error will be non-nil. Any non-2xx
161195// status code is an error. Response headers are in either
161196// *Operation.ServerResponse.Header or (if a response was returned at
161197// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
161198// to check whether the returned error was because
161199// http.StatusNotModified was returned.
161200func (c *TargetSslProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
161201	gensupport.SetOptions(c.urlParams_, opts...)
161202	res, err := c.doRequest("json")
161203	if res != nil && res.StatusCode == http.StatusNotModified {
161204		if res.Body != nil {
161205			res.Body.Close()
161206		}
161207		return nil, &googleapi.Error{
161208			Code:   res.StatusCode,
161209			Header: res.Header,
161210		}
161211	}
161212	if err != nil {
161213		return nil, err
161214	}
161215	defer googleapi.CloseBody(res)
161216	if err := googleapi.CheckResponse(res); err != nil {
161217		return nil, err
161218	}
161219	ret := &Operation{
161220		ServerResponse: googleapi.ServerResponse{
161221			Header:         res.Header,
161222			HTTPStatusCode: res.StatusCode,
161223		},
161224	}
161225	target := &ret
161226	if err := gensupport.DecodeResponse(target, res); err != nil {
161227		return nil, err
161228	}
161229	return ret, nil
161230	// {
161231	//   "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.",
161232	//   "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy",
161233	//   "httpMethod": "POST",
161234	//   "id": "compute.targetSslProxies.setSslPolicy",
161235	//   "parameterOrder": [
161236	//     "project",
161237	//     "targetSslProxy"
161238	//   ],
161239	//   "parameters": {
161240	//     "project": {
161241	//       "description": "Project ID for this request.",
161242	//       "location": "path",
161243	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161244	//       "required": true,
161245	//       "type": "string"
161246	//     },
161247	//     "requestId": {
161248	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
161249	//       "location": "query",
161250	//       "type": "string"
161251	//     },
161252	//     "targetSslProxy": {
161253	//       "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.",
161254	//       "location": "path",
161255	//       "required": true,
161256	//       "type": "string"
161257	//     }
161258	//   },
161259	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy",
161260	//   "request": {
161261	//     "$ref": "SslPolicyReference"
161262	//   },
161263	//   "response": {
161264	//     "$ref": "Operation"
161265	//   },
161266	//   "scopes": [
161267	//     "https://www.googleapis.com/auth/cloud-platform",
161268	//     "https://www.googleapis.com/auth/compute"
161269	//   ]
161270	// }
161271
161272}
161273
161274// method id "compute.targetTcpProxies.delete":
161275
161276type TargetTcpProxiesDeleteCall struct {
161277	s              *Service
161278	project        string
161279	targetTcpProxy string
161280	urlParams_     gensupport.URLParams
161281	ctx_           context.Context
161282	header_        http.Header
161283}
161284
161285// Delete: Deletes the specified TargetTcpProxy resource.
161286//
161287// - project: Project ID for this request.
161288// - targetTcpProxy: Name of the TargetTcpProxy resource to delete.
161289func (r *TargetTcpProxiesService) Delete(project string, targetTcpProxy string) *TargetTcpProxiesDeleteCall {
161290	c := &TargetTcpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161291	c.project = project
161292	c.targetTcpProxy = targetTcpProxy
161293	return c
161294}
161295
161296// RequestId sets the optional parameter "requestId": An optional
161297// request ID to identify requests. Specify a unique request ID so that
161298// if you must retry your request, the server will know to ignore the
161299// request if it has already been completed. For example, consider a
161300// situation where you make an initial request and the request times
161301// out. If you make the request again with the same request ID, the
161302// server can check if original operation with the same request ID was
161303// received, and if so, will ignore the second request. This prevents
161304// clients from accidentally creating duplicate commitments. The request
161305// ID must be a valid UUID with the exception that zero UUID is not
161306// supported ( 00000000-0000-0000-0000-000000000000).
161307func (c *TargetTcpProxiesDeleteCall) RequestId(requestId string) *TargetTcpProxiesDeleteCall {
161308	c.urlParams_.Set("requestId", requestId)
161309	return c
161310}
161311
161312// Fields allows partial responses to be retrieved. See
161313// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161314// for more information.
161315func (c *TargetTcpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetTcpProxiesDeleteCall {
161316	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161317	return c
161318}
161319
161320// Context sets the context to be used in this call's Do method. Any
161321// pending HTTP request will be aborted if the provided context is
161322// canceled.
161323func (c *TargetTcpProxiesDeleteCall) Context(ctx context.Context) *TargetTcpProxiesDeleteCall {
161324	c.ctx_ = ctx
161325	return c
161326}
161327
161328// Header returns an http.Header that can be modified by the caller to
161329// add HTTP headers to the request.
161330func (c *TargetTcpProxiesDeleteCall) Header() http.Header {
161331	if c.header_ == nil {
161332		c.header_ = make(http.Header)
161333	}
161334	return c.header_
161335}
161336
161337func (c *TargetTcpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
161338	reqHeaders := make(http.Header)
161339	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
161340	for k, v := range c.header_ {
161341		reqHeaders[k] = v
161342	}
161343	reqHeaders.Set("User-Agent", c.s.userAgent())
161344	var body io.Reader = nil
161345	c.urlParams_.Set("alt", alt)
161346	c.urlParams_.Set("prettyPrint", "false")
161347	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{targetTcpProxy}")
161348	urls += "?" + c.urlParams_.Encode()
161349	req, err := http.NewRequest("DELETE", urls, body)
161350	if err != nil {
161351		return nil, err
161352	}
161353	req.Header = reqHeaders
161354	googleapi.Expand(req.URL, map[string]string{
161355		"project":        c.project,
161356		"targetTcpProxy": c.targetTcpProxy,
161357	})
161358	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161359}
161360
161361// Do executes the "compute.targetTcpProxies.delete" call.
161362// Exactly one of *Operation or error will be non-nil. Any non-2xx
161363// status code is an error. Response headers are in either
161364// *Operation.ServerResponse.Header or (if a response was returned at
161365// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
161366// to check whether the returned error was because
161367// http.StatusNotModified was returned.
161368func (c *TargetTcpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
161369	gensupport.SetOptions(c.urlParams_, opts...)
161370	res, err := c.doRequest("json")
161371	if res != nil && res.StatusCode == http.StatusNotModified {
161372		if res.Body != nil {
161373			res.Body.Close()
161374		}
161375		return nil, &googleapi.Error{
161376			Code:   res.StatusCode,
161377			Header: res.Header,
161378		}
161379	}
161380	if err != nil {
161381		return nil, err
161382	}
161383	defer googleapi.CloseBody(res)
161384	if err := googleapi.CheckResponse(res); err != nil {
161385		return nil, err
161386	}
161387	ret := &Operation{
161388		ServerResponse: googleapi.ServerResponse{
161389			Header:         res.Header,
161390			HTTPStatusCode: res.StatusCode,
161391		},
161392	}
161393	target := &ret
161394	if err := gensupport.DecodeResponse(target, res); err != nil {
161395		return nil, err
161396	}
161397	return ret, nil
161398	// {
161399	//   "description": "Deletes the specified TargetTcpProxy resource.",
161400	//   "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}",
161401	//   "httpMethod": "DELETE",
161402	//   "id": "compute.targetTcpProxies.delete",
161403	//   "parameterOrder": [
161404	//     "project",
161405	//     "targetTcpProxy"
161406	//   ],
161407	//   "parameters": {
161408	//     "project": {
161409	//       "description": "Project ID for this request.",
161410	//       "location": "path",
161411	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161412	//       "required": true,
161413	//       "type": "string"
161414	//     },
161415	//     "requestId": {
161416	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
161417	//       "location": "query",
161418	//       "type": "string"
161419	//     },
161420	//     "targetTcpProxy": {
161421	//       "description": "Name of the TargetTcpProxy resource to delete.",
161422	//       "location": "path",
161423	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
161424	//       "required": true,
161425	//       "type": "string"
161426	//     }
161427	//   },
161428	//   "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}",
161429	//   "response": {
161430	//     "$ref": "Operation"
161431	//   },
161432	//   "scopes": [
161433	//     "https://www.googleapis.com/auth/cloud-platform",
161434	//     "https://www.googleapis.com/auth/compute"
161435	//   ]
161436	// }
161437
161438}
161439
161440// method id "compute.targetTcpProxies.get":
161441
161442type TargetTcpProxiesGetCall struct {
161443	s              *Service
161444	project        string
161445	targetTcpProxy string
161446	urlParams_     gensupport.URLParams
161447	ifNoneMatch_   string
161448	ctx_           context.Context
161449	header_        http.Header
161450}
161451
161452// Get: Returns the specified TargetTcpProxy resource. Gets a list of
161453// available target TCP proxies by making a list() request.
161454//
161455// - project: Project ID for this request.
161456// - targetTcpProxy: Name of the TargetTcpProxy resource to return.
161457func (r *TargetTcpProxiesService) Get(project string, targetTcpProxy string) *TargetTcpProxiesGetCall {
161458	c := &TargetTcpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161459	c.project = project
161460	c.targetTcpProxy = targetTcpProxy
161461	return c
161462}
161463
161464// Fields allows partial responses to be retrieved. See
161465// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161466// for more information.
161467func (c *TargetTcpProxiesGetCall) Fields(s ...googleapi.Field) *TargetTcpProxiesGetCall {
161468	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161469	return c
161470}
161471
161472// IfNoneMatch sets the optional parameter which makes the operation
161473// fail if the object's ETag matches the given value. This is useful for
161474// getting updates only after the object has changed since the last
161475// request. Use googleapi.IsNotModified to check whether the response
161476// error from Do is the result of In-None-Match.
161477func (c *TargetTcpProxiesGetCall) IfNoneMatch(entityTag string) *TargetTcpProxiesGetCall {
161478	c.ifNoneMatch_ = entityTag
161479	return c
161480}
161481
161482// Context sets the context to be used in this call's Do method. Any
161483// pending HTTP request will be aborted if the provided context is
161484// canceled.
161485func (c *TargetTcpProxiesGetCall) Context(ctx context.Context) *TargetTcpProxiesGetCall {
161486	c.ctx_ = ctx
161487	return c
161488}
161489
161490// Header returns an http.Header that can be modified by the caller to
161491// add HTTP headers to the request.
161492func (c *TargetTcpProxiesGetCall) Header() http.Header {
161493	if c.header_ == nil {
161494		c.header_ = make(http.Header)
161495	}
161496	return c.header_
161497}
161498
161499func (c *TargetTcpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
161500	reqHeaders := make(http.Header)
161501	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
161502	for k, v := range c.header_ {
161503		reqHeaders[k] = v
161504	}
161505	reqHeaders.Set("User-Agent", c.s.userAgent())
161506	if c.ifNoneMatch_ != "" {
161507		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
161508	}
161509	var body io.Reader = nil
161510	c.urlParams_.Set("alt", alt)
161511	c.urlParams_.Set("prettyPrint", "false")
161512	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{targetTcpProxy}")
161513	urls += "?" + c.urlParams_.Encode()
161514	req, err := http.NewRequest("GET", urls, body)
161515	if err != nil {
161516		return nil, err
161517	}
161518	req.Header = reqHeaders
161519	googleapi.Expand(req.URL, map[string]string{
161520		"project":        c.project,
161521		"targetTcpProxy": c.targetTcpProxy,
161522	})
161523	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161524}
161525
161526// Do executes the "compute.targetTcpProxies.get" call.
161527// Exactly one of *TargetTcpProxy or error will be non-nil. Any non-2xx
161528// status code is an error. Response headers are in either
161529// *TargetTcpProxy.ServerResponse.Header or (if a response was returned
161530// at all) in error.(*googleapi.Error).Header. Use
161531// googleapi.IsNotModified to check whether the returned error was
161532// because http.StatusNotModified was returned.
161533func (c *TargetTcpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxy, error) {
161534	gensupport.SetOptions(c.urlParams_, opts...)
161535	res, err := c.doRequest("json")
161536	if res != nil && res.StatusCode == http.StatusNotModified {
161537		if res.Body != nil {
161538			res.Body.Close()
161539		}
161540		return nil, &googleapi.Error{
161541			Code:   res.StatusCode,
161542			Header: res.Header,
161543		}
161544	}
161545	if err != nil {
161546		return nil, err
161547	}
161548	defer googleapi.CloseBody(res)
161549	if err := googleapi.CheckResponse(res); err != nil {
161550		return nil, err
161551	}
161552	ret := &TargetTcpProxy{
161553		ServerResponse: googleapi.ServerResponse{
161554			Header:         res.Header,
161555			HTTPStatusCode: res.StatusCode,
161556		},
161557	}
161558	target := &ret
161559	if err := gensupport.DecodeResponse(target, res); err != nil {
161560		return nil, err
161561	}
161562	return ret, nil
161563	// {
161564	//   "description": "Returns the specified TargetTcpProxy resource. Gets a list of available target TCP proxies by making a list() request.",
161565	//   "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}",
161566	//   "httpMethod": "GET",
161567	//   "id": "compute.targetTcpProxies.get",
161568	//   "parameterOrder": [
161569	//     "project",
161570	//     "targetTcpProxy"
161571	//   ],
161572	//   "parameters": {
161573	//     "project": {
161574	//       "description": "Project ID for this request.",
161575	//       "location": "path",
161576	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161577	//       "required": true,
161578	//       "type": "string"
161579	//     },
161580	//     "targetTcpProxy": {
161581	//       "description": "Name of the TargetTcpProxy resource to return.",
161582	//       "location": "path",
161583	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
161584	//       "required": true,
161585	//       "type": "string"
161586	//     }
161587	//   },
161588	//   "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}",
161589	//   "response": {
161590	//     "$ref": "TargetTcpProxy"
161591	//   },
161592	//   "scopes": [
161593	//     "https://www.googleapis.com/auth/cloud-platform",
161594	//     "https://www.googleapis.com/auth/compute",
161595	//     "https://www.googleapis.com/auth/compute.readonly"
161596	//   ]
161597	// }
161598
161599}
161600
161601// method id "compute.targetTcpProxies.insert":
161602
161603type TargetTcpProxiesInsertCall struct {
161604	s              *Service
161605	project        string
161606	targettcpproxy *TargetTcpProxy
161607	urlParams_     gensupport.URLParams
161608	ctx_           context.Context
161609	header_        http.Header
161610}
161611
161612// Insert: Creates a TargetTcpProxy resource in the specified project
161613// using the data included in the request.
161614//
161615// - project: Project ID for this request.
161616func (r *TargetTcpProxiesService) Insert(project string, targettcpproxy *TargetTcpProxy) *TargetTcpProxiesInsertCall {
161617	c := &TargetTcpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161618	c.project = project
161619	c.targettcpproxy = targettcpproxy
161620	return c
161621}
161622
161623// RequestId sets the optional parameter "requestId": An optional
161624// request ID to identify requests. Specify a unique request ID so that
161625// if you must retry your request, the server will know to ignore the
161626// request if it has already been completed. For example, consider a
161627// situation where you make an initial request and the request times
161628// out. If you make the request again with the same request ID, the
161629// server can check if original operation with the same request ID was
161630// received, and if so, will ignore the second request. This prevents
161631// clients from accidentally creating duplicate commitments. The request
161632// ID must be a valid UUID with the exception that zero UUID is not
161633// supported ( 00000000-0000-0000-0000-000000000000).
161634func (c *TargetTcpProxiesInsertCall) RequestId(requestId string) *TargetTcpProxiesInsertCall {
161635	c.urlParams_.Set("requestId", requestId)
161636	return c
161637}
161638
161639// Fields allows partial responses to be retrieved. See
161640// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161641// for more information.
161642func (c *TargetTcpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetTcpProxiesInsertCall {
161643	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161644	return c
161645}
161646
161647// Context sets the context to be used in this call's Do method. Any
161648// pending HTTP request will be aborted if the provided context is
161649// canceled.
161650func (c *TargetTcpProxiesInsertCall) Context(ctx context.Context) *TargetTcpProxiesInsertCall {
161651	c.ctx_ = ctx
161652	return c
161653}
161654
161655// Header returns an http.Header that can be modified by the caller to
161656// add HTTP headers to the request.
161657func (c *TargetTcpProxiesInsertCall) Header() http.Header {
161658	if c.header_ == nil {
161659		c.header_ = make(http.Header)
161660	}
161661	return c.header_
161662}
161663
161664func (c *TargetTcpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
161665	reqHeaders := make(http.Header)
161666	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
161667	for k, v := range c.header_ {
161668		reqHeaders[k] = v
161669	}
161670	reqHeaders.Set("User-Agent", c.s.userAgent())
161671	var body io.Reader = nil
161672	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxy)
161673	if err != nil {
161674		return nil, err
161675	}
161676	reqHeaders.Set("Content-Type", "application/json")
161677	c.urlParams_.Set("alt", alt)
161678	c.urlParams_.Set("prettyPrint", "false")
161679	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies")
161680	urls += "?" + c.urlParams_.Encode()
161681	req, err := http.NewRequest("POST", urls, body)
161682	if err != nil {
161683		return nil, err
161684	}
161685	req.Header = reqHeaders
161686	googleapi.Expand(req.URL, map[string]string{
161687		"project": c.project,
161688	})
161689	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161690}
161691
161692// Do executes the "compute.targetTcpProxies.insert" call.
161693// Exactly one of *Operation or error will be non-nil. Any non-2xx
161694// status code is an error. Response headers are in either
161695// *Operation.ServerResponse.Header or (if a response was returned at
161696// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
161697// to check whether the returned error was because
161698// http.StatusNotModified was returned.
161699func (c *TargetTcpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
161700	gensupport.SetOptions(c.urlParams_, opts...)
161701	res, err := c.doRequest("json")
161702	if res != nil && res.StatusCode == http.StatusNotModified {
161703		if res.Body != nil {
161704			res.Body.Close()
161705		}
161706		return nil, &googleapi.Error{
161707			Code:   res.StatusCode,
161708			Header: res.Header,
161709		}
161710	}
161711	if err != nil {
161712		return nil, err
161713	}
161714	defer googleapi.CloseBody(res)
161715	if err := googleapi.CheckResponse(res); err != nil {
161716		return nil, err
161717	}
161718	ret := &Operation{
161719		ServerResponse: googleapi.ServerResponse{
161720			Header:         res.Header,
161721			HTTPStatusCode: res.StatusCode,
161722		},
161723	}
161724	target := &ret
161725	if err := gensupport.DecodeResponse(target, res); err != nil {
161726		return nil, err
161727	}
161728	return ret, nil
161729	// {
161730	//   "description": "Creates a TargetTcpProxy resource in the specified project using the data included in the request.",
161731	//   "flatPath": "projects/{project}/global/targetTcpProxies",
161732	//   "httpMethod": "POST",
161733	//   "id": "compute.targetTcpProxies.insert",
161734	//   "parameterOrder": [
161735	//     "project"
161736	//   ],
161737	//   "parameters": {
161738	//     "project": {
161739	//       "description": "Project ID for this request.",
161740	//       "location": "path",
161741	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161742	//       "required": true,
161743	//       "type": "string"
161744	//     },
161745	//     "requestId": {
161746	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
161747	//       "location": "query",
161748	//       "type": "string"
161749	//     }
161750	//   },
161751	//   "path": "projects/{project}/global/targetTcpProxies",
161752	//   "request": {
161753	//     "$ref": "TargetTcpProxy"
161754	//   },
161755	//   "response": {
161756	//     "$ref": "Operation"
161757	//   },
161758	//   "scopes": [
161759	//     "https://www.googleapis.com/auth/cloud-platform",
161760	//     "https://www.googleapis.com/auth/compute"
161761	//   ]
161762	// }
161763
161764}
161765
161766// method id "compute.targetTcpProxies.list":
161767
161768type TargetTcpProxiesListCall struct {
161769	s            *Service
161770	project      string
161771	urlParams_   gensupport.URLParams
161772	ifNoneMatch_ string
161773	ctx_         context.Context
161774	header_      http.Header
161775}
161776
161777// List: Retrieves the list of TargetTcpProxy resources available to the
161778// specified project.
161779//
161780// - project: Project ID for this request.
161781func (r *TargetTcpProxiesService) List(project string) *TargetTcpProxiesListCall {
161782	c := &TargetTcpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161783	c.project = project
161784	return c
161785}
161786
161787// Filter sets the optional parameter "filter": A filter expression that
161788// filters resources listed in the response. The expression must specify
161789// the field name, a comparison operator, and the value that you want to
161790// use for filtering. The value must be a string, a number, or a
161791// boolean. The comparison operator must be either `=`, `!=`, `>`, or
161792// `<`. For example, if you are filtering Compute Engine instances, you
161793// can exclude instances named `example-instance` by specifying `name !=
161794// example-instance`. You can also filter nested fields. For example,
161795// you could specify `scheduling.automaticRestart = false` to include
161796// instances only if they are not scheduled for automatic restarts. You
161797// can use filtering on nested fields to filter based on resource
161798// labels. To filter on multiple expressions, provide each separate
161799// expression within parentheses. For example: ```
161800// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
161801// ``` By default, each expression is an `AND` expression. However, you
161802// can include `AND` and `OR` expressions explicitly. For example: ```
161803// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
161804// AND (scheduling.automaticRestart = true) ```
161805func (c *TargetTcpProxiesListCall) Filter(filter string) *TargetTcpProxiesListCall {
161806	c.urlParams_.Set("filter", filter)
161807	return c
161808}
161809
161810// MaxResults sets the optional parameter "maxResults": The maximum
161811// number of results per page that should be returned. If the number of
161812// available results is larger than `maxResults`, Compute Engine returns
161813// a `nextPageToken` that can be used to get the next page of results in
161814// subsequent list requests. Acceptable values are `0` to `500`,
161815// inclusive. (Default: `500`)
161816func (c *TargetTcpProxiesListCall) MaxResults(maxResults int64) *TargetTcpProxiesListCall {
161817	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
161818	return c
161819}
161820
161821// OrderBy sets the optional parameter "orderBy": Sorts list results by
161822// a certain order. By default, results are returned in alphanumerical
161823// order based on the resource name. You can also sort results in
161824// descending order based on the creation timestamp using
161825// `orderBy="creationTimestamp desc". This sorts results based on the
161826// `creationTimestamp` field in reverse chronological order (newest
161827// result first). Use this to sort resources like operations so that the
161828// newest operation is returned first. Currently, only sorting by `name`
161829// or `creationTimestamp desc` is supported.
161830func (c *TargetTcpProxiesListCall) OrderBy(orderBy string) *TargetTcpProxiesListCall {
161831	c.urlParams_.Set("orderBy", orderBy)
161832	return c
161833}
161834
161835// PageToken sets the optional parameter "pageToken": Specifies a page
161836// token to use. Set `pageToken` to the `nextPageToken` returned by a
161837// previous list request to get the next page of results.
161838func (c *TargetTcpProxiesListCall) PageToken(pageToken string) *TargetTcpProxiesListCall {
161839	c.urlParams_.Set("pageToken", pageToken)
161840	return c
161841}
161842
161843// ReturnPartialSuccess sets the optional parameter
161844// "returnPartialSuccess": Opt-in for partial success behavior which
161845// provides partial results in case of failure. The default value is
161846// false.
161847func (c *TargetTcpProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetTcpProxiesListCall {
161848	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
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 *TargetTcpProxiesListCall) Fields(s ...googleapi.Field) *TargetTcpProxiesListCall {
161856	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161857	return c
161858}
161859
161860// IfNoneMatch sets the optional parameter which makes the operation
161861// fail if the object's ETag matches the given value. This is useful for
161862// getting updates only after the object has changed since the last
161863// request. Use googleapi.IsNotModified to check whether the response
161864// error from Do is the result of In-None-Match.
161865func (c *TargetTcpProxiesListCall) IfNoneMatch(entityTag string) *TargetTcpProxiesListCall {
161866	c.ifNoneMatch_ = entityTag
161867	return c
161868}
161869
161870// Context sets the context to be used in this call's Do method. Any
161871// pending HTTP request will be aborted if the provided context is
161872// canceled.
161873func (c *TargetTcpProxiesListCall) Context(ctx context.Context) *TargetTcpProxiesListCall {
161874	c.ctx_ = ctx
161875	return c
161876}
161877
161878// Header returns an http.Header that can be modified by the caller to
161879// add HTTP headers to the request.
161880func (c *TargetTcpProxiesListCall) Header() http.Header {
161881	if c.header_ == nil {
161882		c.header_ = make(http.Header)
161883	}
161884	return c.header_
161885}
161886
161887func (c *TargetTcpProxiesListCall) doRequest(alt string) (*http.Response, error) {
161888	reqHeaders := make(http.Header)
161889	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
161890	for k, v := range c.header_ {
161891		reqHeaders[k] = v
161892	}
161893	reqHeaders.Set("User-Agent", c.s.userAgent())
161894	if c.ifNoneMatch_ != "" {
161895		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
161896	}
161897	var body io.Reader = nil
161898	c.urlParams_.Set("alt", alt)
161899	c.urlParams_.Set("prettyPrint", "false")
161900	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies")
161901	urls += "?" + c.urlParams_.Encode()
161902	req, err := http.NewRequest("GET", urls, body)
161903	if err != nil {
161904		return nil, err
161905	}
161906	req.Header = reqHeaders
161907	googleapi.Expand(req.URL, map[string]string{
161908		"project": c.project,
161909	})
161910	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161911}
161912
161913// Do executes the "compute.targetTcpProxies.list" call.
161914// Exactly one of *TargetTcpProxyList or error will be non-nil. Any
161915// non-2xx status code is an error. Response headers are in either
161916// *TargetTcpProxyList.ServerResponse.Header or (if a response was
161917// returned at all) in error.(*googleapi.Error).Header. Use
161918// googleapi.IsNotModified to check whether the returned error was
161919// because http.StatusNotModified was returned.
161920func (c *TargetTcpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxyList, error) {
161921	gensupport.SetOptions(c.urlParams_, opts...)
161922	res, err := c.doRequest("json")
161923	if res != nil && res.StatusCode == http.StatusNotModified {
161924		if res.Body != nil {
161925			res.Body.Close()
161926		}
161927		return nil, &googleapi.Error{
161928			Code:   res.StatusCode,
161929			Header: res.Header,
161930		}
161931	}
161932	if err != nil {
161933		return nil, err
161934	}
161935	defer googleapi.CloseBody(res)
161936	if err := googleapi.CheckResponse(res); err != nil {
161937		return nil, err
161938	}
161939	ret := &TargetTcpProxyList{
161940		ServerResponse: googleapi.ServerResponse{
161941			Header:         res.Header,
161942			HTTPStatusCode: res.StatusCode,
161943		},
161944	}
161945	target := &ret
161946	if err := gensupport.DecodeResponse(target, res); err != nil {
161947		return nil, err
161948	}
161949	return ret, nil
161950	// {
161951	//   "description": "Retrieves the list of TargetTcpProxy resources available to the specified project.",
161952	//   "flatPath": "projects/{project}/global/targetTcpProxies",
161953	//   "httpMethod": "GET",
161954	//   "id": "compute.targetTcpProxies.list",
161955	//   "parameterOrder": [
161956	//     "project"
161957	//   ],
161958	//   "parameters": {
161959	//     "filter": {
161960	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
161961	//       "location": "query",
161962	//       "type": "string"
161963	//     },
161964	//     "maxResults": {
161965	//       "default": "500",
161966	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
161967	//       "format": "uint32",
161968	//       "location": "query",
161969	//       "minimum": "0",
161970	//       "type": "integer"
161971	//     },
161972	//     "orderBy": {
161973	//       "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.",
161974	//       "location": "query",
161975	//       "type": "string"
161976	//     },
161977	//     "pageToken": {
161978	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
161979	//       "location": "query",
161980	//       "type": "string"
161981	//     },
161982	//     "project": {
161983	//       "description": "Project ID for this request.",
161984	//       "location": "path",
161985	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161986	//       "required": true,
161987	//       "type": "string"
161988	//     },
161989	//     "returnPartialSuccess": {
161990	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
161991	//       "location": "query",
161992	//       "type": "boolean"
161993	//     }
161994	//   },
161995	//   "path": "projects/{project}/global/targetTcpProxies",
161996	//   "response": {
161997	//     "$ref": "TargetTcpProxyList"
161998	//   },
161999	//   "scopes": [
162000	//     "https://www.googleapis.com/auth/cloud-platform",
162001	//     "https://www.googleapis.com/auth/compute",
162002	//     "https://www.googleapis.com/auth/compute.readonly"
162003	//   ]
162004	// }
162005
162006}
162007
162008// Pages invokes f for each page of results.
162009// A non-nil error returned from f will halt the iteration.
162010// The provided context supersedes any context provided to the Context method.
162011func (c *TargetTcpProxiesListCall) Pages(ctx context.Context, f func(*TargetTcpProxyList) error) error {
162012	c.ctx_ = ctx
162013	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
162014	for {
162015		x, err := c.Do()
162016		if err != nil {
162017			return err
162018		}
162019		if err := f(x); err != nil {
162020			return err
162021		}
162022		if x.NextPageToken == "" {
162023			return nil
162024		}
162025		c.PageToken(x.NextPageToken)
162026	}
162027}
162028
162029// method id "compute.targetTcpProxies.setBackendService":
162030
162031type TargetTcpProxiesSetBackendServiceCall struct {
162032	s                                        *Service
162033	project                                  string
162034	targetTcpProxy                           string
162035	targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest
162036	urlParams_                               gensupport.URLParams
162037	ctx_                                     context.Context
162038	header_                                  http.Header
162039}
162040
162041// SetBackendService: Changes the BackendService for TargetTcpProxy.
162042//
162043// - project: Project ID for this request.
162044// - targetTcpProxy: Name of the TargetTcpProxy resource whose
162045//   BackendService resource is to be set.
162046func (r *TargetTcpProxiesService) SetBackendService(project string, targetTcpProxy string, targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest) *TargetTcpProxiesSetBackendServiceCall {
162047	c := &TargetTcpProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162048	c.project = project
162049	c.targetTcpProxy = targetTcpProxy
162050	c.targettcpproxiessetbackendservicerequest = targettcpproxiessetbackendservicerequest
162051	return c
162052}
162053
162054// RequestId sets the optional parameter "requestId": An optional
162055// request ID to identify requests. Specify a unique request ID so that
162056// if you must retry your request, the server will know to ignore the
162057// request if it has already been completed. For example, consider a
162058// situation where you make an initial request and the request times
162059// out. If you make the request again with the same request ID, the
162060// server can check if original operation with the same request ID was
162061// received, and if so, will ignore the second request. This prevents
162062// clients from accidentally creating duplicate commitments. The request
162063// ID must be a valid UUID with the exception that zero UUID is not
162064// supported ( 00000000-0000-0000-0000-000000000000).
162065func (c *TargetTcpProxiesSetBackendServiceCall) RequestId(requestId string) *TargetTcpProxiesSetBackendServiceCall {
162066	c.urlParams_.Set("requestId", requestId)
162067	return c
162068}
162069
162070// Fields allows partial responses to be retrieved. See
162071// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162072// for more information.
162073func (c *TargetTcpProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetBackendServiceCall {
162074	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162075	return c
162076}
162077
162078// Context sets the context to be used in this call's Do method. Any
162079// pending HTTP request will be aborted if the provided context is
162080// canceled.
162081func (c *TargetTcpProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetTcpProxiesSetBackendServiceCall {
162082	c.ctx_ = ctx
162083	return c
162084}
162085
162086// Header returns an http.Header that can be modified by the caller to
162087// add HTTP headers to the request.
162088func (c *TargetTcpProxiesSetBackendServiceCall) Header() http.Header {
162089	if c.header_ == nil {
162090		c.header_ = make(http.Header)
162091	}
162092	return c.header_
162093}
162094
162095func (c *TargetTcpProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) {
162096	reqHeaders := make(http.Header)
162097	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
162098	for k, v := range c.header_ {
162099		reqHeaders[k] = v
162100	}
162101	reqHeaders.Set("User-Agent", c.s.userAgent())
162102	var body io.Reader = nil
162103	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetbackendservicerequest)
162104	if err != nil {
162105		return nil, err
162106	}
162107	reqHeaders.Set("Content-Type", "application/json")
162108	c.urlParams_.Set("alt", alt)
162109	c.urlParams_.Set("prettyPrint", "false")
162110	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService")
162111	urls += "?" + c.urlParams_.Encode()
162112	req, err := http.NewRequest("POST", urls, body)
162113	if err != nil {
162114		return nil, err
162115	}
162116	req.Header = reqHeaders
162117	googleapi.Expand(req.URL, map[string]string{
162118		"project":        c.project,
162119		"targetTcpProxy": c.targetTcpProxy,
162120	})
162121	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162122}
162123
162124// Do executes the "compute.targetTcpProxies.setBackendService" call.
162125// Exactly one of *Operation or error will be non-nil. Any non-2xx
162126// status code is an error. Response headers are in either
162127// *Operation.ServerResponse.Header or (if a response was returned at
162128// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
162129// to check whether the returned error was because
162130// http.StatusNotModified was returned.
162131func (c *TargetTcpProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
162132	gensupport.SetOptions(c.urlParams_, opts...)
162133	res, err := c.doRequest("json")
162134	if res != nil && res.StatusCode == http.StatusNotModified {
162135		if res.Body != nil {
162136			res.Body.Close()
162137		}
162138		return nil, &googleapi.Error{
162139			Code:   res.StatusCode,
162140			Header: res.Header,
162141		}
162142	}
162143	if err != nil {
162144		return nil, err
162145	}
162146	defer googleapi.CloseBody(res)
162147	if err := googleapi.CheckResponse(res); err != nil {
162148		return nil, err
162149	}
162150	ret := &Operation{
162151		ServerResponse: googleapi.ServerResponse{
162152			Header:         res.Header,
162153			HTTPStatusCode: res.StatusCode,
162154		},
162155	}
162156	target := &ret
162157	if err := gensupport.DecodeResponse(target, res); err != nil {
162158		return nil, err
162159	}
162160	return ret, nil
162161	// {
162162	//   "description": "Changes the BackendService for TargetTcpProxy.",
162163	//   "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService",
162164	//   "httpMethod": "POST",
162165	//   "id": "compute.targetTcpProxies.setBackendService",
162166	//   "parameterOrder": [
162167	//     "project",
162168	//     "targetTcpProxy"
162169	//   ],
162170	//   "parameters": {
162171	//     "project": {
162172	//       "description": "Project ID for this request.",
162173	//       "location": "path",
162174	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162175	//       "required": true,
162176	//       "type": "string"
162177	//     },
162178	//     "requestId": {
162179	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
162180	//       "location": "query",
162181	//       "type": "string"
162182	//     },
162183	//     "targetTcpProxy": {
162184	//       "description": "Name of the TargetTcpProxy resource whose BackendService resource is to be set.",
162185	//       "location": "path",
162186	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
162187	//       "required": true,
162188	//       "type": "string"
162189	//     }
162190	//   },
162191	//   "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService",
162192	//   "request": {
162193	//     "$ref": "TargetTcpProxiesSetBackendServiceRequest"
162194	//   },
162195	//   "response": {
162196	//     "$ref": "Operation"
162197	//   },
162198	//   "scopes": [
162199	//     "https://www.googleapis.com/auth/cloud-platform",
162200	//     "https://www.googleapis.com/auth/compute"
162201	//   ]
162202	// }
162203
162204}
162205
162206// method id "compute.targetTcpProxies.setProxyHeader":
162207
162208type TargetTcpProxiesSetProxyHeaderCall struct {
162209	s                                     *Service
162210	project                               string
162211	targetTcpProxy                        string
162212	targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest
162213	urlParams_                            gensupport.URLParams
162214	ctx_                                  context.Context
162215	header_                               http.Header
162216}
162217
162218// SetProxyHeader: Changes the ProxyHeaderType for TargetTcpProxy.
162219//
162220// - project: Project ID for this request.
162221// - targetTcpProxy: Name of the TargetTcpProxy resource whose
162222//   ProxyHeader is to be set.
162223func (r *TargetTcpProxiesService) SetProxyHeader(project string, targetTcpProxy string, targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest) *TargetTcpProxiesSetProxyHeaderCall {
162224	c := &TargetTcpProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162225	c.project = project
162226	c.targetTcpProxy = targetTcpProxy
162227	c.targettcpproxiessetproxyheaderrequest = targettcpproxiessetproxyheaderrequest
162228	return c
162229}
162230
162231// RequestId sets the optional parameter "requestId": An optional
162232// request ID to identify requests. Specify a unique request ID so that
162233// if you must retry your request, the server will know to ignore the
162234// request if it has already been completed. For example, consider a
162235// situation where you make an initial request and the request times
162236// out. If you make the request again with the same request ID, the
162237// server can check if original operation with the same request ID was
162238// received, and if so, will ignore the second request. This prevents
162239// clients from accidentally creating duplicate commitments. The request
162240// ID must be a valid UUID with the exception that zero UUID is not
162241// supported ( 00000000-0000-0000-0000-000000000000).
162242func (c *TargetTcpProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetTcpProxiesSetProxyHeaderCall {
162243	c.urlParams_.Set("requestId", requestId)
162244	return c
162245}
162246
162247// Fields allows partial responses to be retrieved. See
162248// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162249// for more information.
162250func (c *TargetTcpProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetProxyHeaderCall {
162251	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162252	return c
162253}
162254
162255// Context sets the context to be used in this call's Do method. Any
162256// pending HTTP request will be aborted if the provided context is
162257// canceled.
162258func (c *TargetTcpProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetTcpProxiesSetProxyHeaderCall {
162259	c.ctx_ = ctx
162260	return c
162261}
162262
162263// Header returns an http.Header that can be modified by the caller to
162264// add HTTP headers to the request.
162265func (c *TargetTcpProxiesSetProxyHeaderCall) Header() http.Header {
162266	if c.header_ == nil {
162267		c.header_ = make(http.Header)
162268	}
162269	return c.header_
162270}
162271
162272func (c *TargetTcpProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) {
162273	reqHeaders := make(http.Header)
162274	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
162275	for k, v := range c.header_ {
162276		reqHeaders[k] = v
162277	}
162278	reqHeaders.Set("User-Agent", c.s.userAgent())
162279	var body io.Reader = nil
162280	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetproxyheaderrequest)
162281	if err != nil {
162282		return nil, err
162283	}
162284	reqHeaders.Set("Content-Type", "application/json")
162285	c.urlParams_.Set("alt", alt)
162286	c.urlParams_.Set("prettyPrint", "false")
162287	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader")
162288	urls += "?" + c.urlParams_.Encode()
162289	req, err := http.NewRequest("POST", urls, body)
162290	if err != nil {
162291		return nil, err
162292	}
162293	req.Header = reqHeaders
162294	googleapi.Expand(req.URL, map[string]string{
162295		"project":        c.project,
162296		"targetTcpProxy": c.targetTcpProxy,
162297	})
162298	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162299}
162300
162301// Do executes the "compute.targetTcpProxies.setProxyHeader" call.
162302// Exactly one of *Operation or error will be non-nil. Any non-2xx
162303// status code is an error. Response headers are in either
162304// *Operation.ServerResponse.Header or (if a response was returned at
162305// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
162306// to check whether the returned error was because
162307// http.StatusNotModified was returned.
162308func (c *TargetTcpProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
162309	gensupport.SetOptions(c.urlParams_, opts...)
162310	res, err := c.doRequest("json")
162311	if res != nil && res.StatusCode == http.StatusNotModified {
162312		if res.Body != nil {
162313			res.Body.Close()
162314		}
162315		return nil, &googleapi.Error{
162316			Code:   res.StatusCode,
162317			Header: res.Header,
162318		}
162319	}
162320	if err != nil {
162321		return nil, err
162322	}
162323	defer googleapi.CloseBody(res)
162324	if err := googleapi.CheckResponse(res); err != nil {
162325		return nil, err
162326	}
162327	ret := &Operation{
162328		ServerResponse: googleapi.ServerResponse{
162329			Header:         res.Header,
162330			HTTPStatusCode: res.StatusCode,
162331		},
162332	}
162333	target := &ret
162334	if err := gensupport.DecodeResponse(target, res); err != nil {
162335		return nil, err
162336	}
162337	return ret, nil
162338	// {
162339	//   "description": "Changes the ProxyHeaderType for TargetTcpProxy.",
162340	//   "flatPath": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader",
162341	//   "httpMethod": "POST",
162342	//   "id": "compute.targetTcpProxies.setProxyHeader",
162343	//   "parameterOrder": [
162344	//     "project",
162345	//     "targetTcpProxy"
162346	//   ],
162347	//   "parameters": {
162348	//     "project": {
162349	//       "description": "Project ID for this request.",
162350	//       "location": "path",
162351	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162352	//       "required": true,
162353	//       "type": "string"
162354	//     },
162355	//     "requestId": {
162356	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
162357	//       "location": "query",
162358	//       "type": "string"
162359	//     },
162360	//     "targetTcpProxy": {
162361	//       "description": "Name of the TargetTcpProxy resource whose ProxyHeader is to be set.",
162362	//       "location": "path",
162363	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
162364	//       "required": true,
162365	//       "type": "string"
162366	//     }
162367	//   },
162368	//   "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader",
162369	//   "request": {
162370	//     "$ref": "TargetTcpProxiesSetProxyHeaderRequest"
162371	//   },
162372	//   "response": {
162373	//     "$ref": "Operation"
162374	//   },
162375	//   "scopes": [
162376	//     "https://www.googleapis.com/auth/cloud-platform",
162377	//     "https://www.googleapis.com/auth/compute"
162378	//   ]
162379	// }
162380
162381}
162382
162383// method id "compute.targetVpnGateways.aggregatedList":
162384
162385type TargetVpnGatewaysAggregatedListCall struct {
162386	s            *Service
162387	project      string
162388	urlParams_   gensupport.URLParams
162389	ifNoneMatch_ string
162390	ctx_         context.Context
162391	header_      http.Header
162392}
162393
162394// AggregatedList: Retrieves an aggregated list of target VPN gateways.
162395//
162396// - project: Project ID for this request.
162397func (r *TargetVpnGatewaysService) AggregatedList(project string) *TargetVpnGatewaysAggregatedListCall {
162398	c := &TargetVpnGatewaysAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162399	c.project = project
162400	return c
162401}
162402
162403// Filter sets the optional parameter "filter": A filter expression that
162404// filters resources listed in the response. The expression must specify
162405// the field name, a comparison operator, and the value that you want to
162406// use for filtering. The value must be a string, a number, or a
162407// boolean. The comparison operator must be either `=`, `!=`, `>`, or
162408// `<`. For example, if you are filtering Compute Engine instances, you
162409// can exclude instances named `example-instance` by specifying `name !=
162410// example-instance`. You can also filter nested fields. For example,
162411// you could specify `scheduling.automaticRestart = false` to include
162412// instances only if they are not scheduled for automatic restarts. You
162413// can use filtering on nested fields to filter based on resource
162414// labels. To filter on multiple expressions, provide each separate
162415// expression within parentheses. For example: ```
162416// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
162417// ``` By default, each expression is an `AND` expression. However, you
162418// can include `AND` and `OR` expressions explicitly. For example: ```
162419// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
162420// AND (scheduling.automaticRestart = true) ```
162421func (c *TargetVpnGatewaysAggregatedListCall) Filter(filter string) *TargetVpnGatewaysAggregatedListCall {
162422	c.urlParams_.Set("filter", filter)
162423	return c
162424}
162425
162426// IncludeAllScopes sets the optional parameter "includeAllScopes":
162427// Indicates whether every visible scope for each scope type (zone,
162428// region, global) should be included in the response. For new resource
162429// types added after this field, the flag has no effect as new resource
162430// types will always include every visible scope for each scope type in
162431// response. For resource types which predate this field, if this flag
162432// is omitted or false, only scopes of the scope types where the
162433// resource type is expected to be found will be included.
162434func (c *TargetVpnGatewaysAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetVpnGatewaysAggregatedListCall {
162435	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
162436	return c
162437}
162438
162439// MaxResults sets the optional parameter "maxResults": The maximum
162440// number of results per page that should be returned. If the number of
162441// available results is larger than `maxResults`, Compute Engine returns
162442// a `nextPageToken` that can be used to get the next page of results in
162443// subsequent list requests. Acceptable values are `0` to `500`,
162444// inclusive. (Default: `500`)
162445func (c *TargetVpnGatewaysAggregatedListCall) MaxResults(maxResults int64) *TargetVpnGatewaysAggregatedListCall {
162446	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
162447	return c
162448}
162449
162450// OrderBy sets the optional parameter "orderBy": Sorts list results by
162451// a certain order. By default, results are returned in alphanumerical
162452// order based on the resource name. You can also sort results in
162453// descending order based on the creation timestamp using
162454// `orderBy="creationTimestamp desc". This sorts results based on the
162455// `creationTimestamp` field in reverse chronological order (newest
162456// result first). Use this to sort resources like operations so that the
162457// newest operation is returned first. Currently, only sorting by `name`
162458// or `creationTimestamp desc` is supported.
162459func (c *TargetVpnGatewaysAggregatedListCall) OrderBy(orderBy string) *TargetVpnGatewaysAggregatedListCall {
162460	c.urlParams_.Set("orderBy", orderBy)
162461	return c
162462}
162463
162464// PageToken sets the optional parameter "pageToken": Specifies a page
162465// token to use. Set `pageToken` to the `nextPageToken` returned by a
162466// previous list request to get the next page of results.
162467func (c *TargetVpnGatewaysAggregatedListCall) PageToken(pageToken string) *TargetVpnGatewaysAggregatedListCall {
162468	c.urlParams_.Set("pageToken", pageToken)
162469	return c
162470}
162471
162472// ReturnPartialSuccess sets the optional parameter
162473// "returnPartialSuccess": Opt-in for partial success behavior which
162474// provides partial results in case of failure. The default value is
162475// false.
162476func (c *TargetVpnGatewaysAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetVpnGatewaysAggregatedListCall {
162477	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
162478	return c
162479}
162480
162481// Fields allows partial responses to be retrieved. See
162482// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162483// for more information.
162484func (c *TargetVpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysAggregatedListCall {
162485	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162486	return c
162487}
162488
162489// IfNoneMatch sets the optional parameter which makes the operation
162490// fail if the object's ETag matches the given value. This is useful for
162491// getting updates only after the object has changed since the last
162492// request. Use googleapi.IsNotModified to check whether the response
162493// error from Do is the result of In-None-Match.
162494func (c *TargetVpnGatewaysAggregatedListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysAggregatedListCall {
162495	c.ifNoneMatch_ = entityTag
162496	return c
162497}
162498
162499// Context sets the context to be used in this call's Do method. Any
162500// pending HTTP request will be aborted if the provided context is
162501// canceled.
162502func (c *TargetVpnGatewaysAggregatedListCall) Context(ctx context.Context) *TargetVpnGatewaysAggregatedListCall {
162503	c.ctx_ = ctx
162504	return c
162505}
162506
162507// Header returns an http.Header that can be modified by the caller to
162508// add HTTP headers to the request.
162509func (c *TargetVpnGatewaysAggregatedListCall) Header() http.Header {
162510	if c.header_ == nil {
162511		c.header_ = make(http.Header)
162512	}
162513	return c.header_
162514}
162515
162516func (c *TargetVpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, error) {
162517	reqHeaders := make(http.Header)
162518	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
162519	for k, v := range c.header_ {
162520		reqHeaders[k] = v
162521	}
162522	reqHeaders.Set("User-Agent", c.s.userAgent())
162523	if c.ifNoneMatch_ != "" {
162524		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
162525	}
162526	var body io.Reader = nil
162527	c.urlParams_.Set("alt", alt)
162528	c.urlParams_.Set("prettyPrint", "false")
162529	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetVpnGateways")
162530	urls += "?" + c.urlParams_.Encode()
162531	req, err := http.NewRequest("GET", urls, body)
162532	if err != nil {
162533		return nil, err
162534	}
162535	req.Header = reqHeaders
162536	googleapi.Expand(req.URL, map[string]string{
162537		"project": c.project,
162538	})
162539	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162540}
162541
162542// Do executes the "compute.targetVpnGateways.aggregatedList" call.
162543// Exactly one of *TargetVpnGatewayAggregatedList or error will be
162544// non-nil. Any non-2xx status code is an error. Response headers are in
162545// either *TargetVpnGatewayAggregatedList.ServerResponse.Header or (if a
162546// response was returned at all) in error.(*googleapi.Error).Header. Use
162547// googleapi.IsNotModified to check whether the returned error was
162548// because http.StatusNotModified was returned.
162549func (c *TargetVpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayAggregatedList, error) {
162550	gensupport.SetOptions(c.urlParams_, opts...)
162551	res, err := c.doRequest("json")
162552	if res != nil && res.StatusCode == http.StatusNotModified {
162553		if res.Body != nil {
162554			res.Body.Close()
162555		}
162556		return nil, &googleapi.Error{
162557			Code:   res.StatusCode,
162558			Header: res.Header,
162559		}
162560	}
162561	if err != nil {
162562		return nil, err
162563	}
162564	defer googleapi.CloseBody(res)
162565	if err := googleapi.CheckResponse(res); err != nil {
162566		return nil, err
162567	}
162568	ret := &TargetVpnGatewayAggregatedList{
162569		ServerResponse: googleapi.ServerResponse{
162570			Header:         res.Header,
162571			HTTPStatusCode: res.StatusCode,
162572		},
162573	}
162574	target := &ret
162575	if err := gensupport.DecodeResponse(target, res); err != nil {
162576		return nil, err
162577	}
162578	return ret, nil
162579	// {
162580	//   "description": "Retrieves an aggregated list of target VPN gateways.",
162581	//   "flatPath": "projects/{project}/aggregated/targetVpnGateways",
162582	//   "httpMethod": "GET",
162583	//   "id": "compute.targetVpnGateways.aggregatedList",
162584	//   "parameterOrder": [
162585	//     "project"
162586	//   ],
162587	//   "parameters": {
162588	//     "filter": {
162589	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
162590	//       "location": "query",
162591	//       "type": "string"
162592	//     },
162593	//     "includeAllScopes": {
162594	//       "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.",
162595	//       "location": "query",
162596	//       "type": "boolean"
162597	//     },
162598	//     "maxResults": {
162599	//       "default": "500",
162600	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
162601	//       "format": "uint32",
162602	//       "location": "query",
162603	//       "minimum": "0",
162604	//       "type": "integer"
162605	//     },
162606	//     "orderBy": {
162607	//       "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.",
162608	//       "location": "query",
162609	//       "type": "string"
162610	//     },
162611	//     "pageToken": {
162612	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
162613	//       "location": "query",
162614	//       "type": "string"
162615	//     },
162616	//     "project": {
162617	//       "description": "Project ID for this request.",
162618	//       "location": "path",
162619	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162620	//       "required": true,
162621	//       "type": "string"
162622	//     },
162623	//     "returnPartialSuccess": {
162624	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
162625	//       "location": "query",
162626	//       "type": "boolean"
162627	//     }
162628	//   },
162629	//   "path": "projects/{project}/aggregated/targetVpnGateways",
162630	//   "response": {
162631	//     "$ref": "TargetVpnGatewayAggregatedList"
162632	//   },
162633	//   "scopes": [
162634	//     "https://www.googleapis.com/auth/cloud-platform",
162635	//     "https://www.googleapis.com/auth/compute",
162636	//     "https://www.googleapis.com/auth/compute.readonly"
162637	//   ]
162638	// }
162639
162640}
162641
162642// Pages invokes f for each page of results.
162643// A non-nil error returned from f will halt the iteration.
162644// The provided context supersedes any context provided to the Context method.
162645func (c *TargetVpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayAggregatedList) error) error {
162646	c.ctx_ = ctx
162647	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
162648	for {
162649		x, err := c.Do()
162650		if err != nil {
162651			return err
162652		}
162653		if err := f(x); err != nil {
162654			return err
162655		}
162656		if x.NextPageToken == "" {
162657			return nil
162658		}
162659		c.PageToken(x.NextPageToken)
162660	}
162661}
162662
162663// method id "compute.targetVpnGateways.delete":
162664
162665type TargetVpnGatewaysDeleteCall struct {
162666	s                *Service
162667	project          string
162668	region           string
162669	targetVpnGateway string
162670	urlParams_       gensupport.URLParams
162671	ctx_             context.Context
162672	header_          http.Header
162673}
162674
162675// Delete: Deletes the specified target VPN gateway.
162676//
162677// - project: Project ID for this request.
162678// - region: Name of the region for this request.
162679// - targetVpnGateway: Name of the target VPN gateway to delete.
162680func (r *TargetVpnGatewaysService) Delete(project string, region string, targetVpnGateway string) *TargetVpnGatewaysDeleteCall {
162681	c := &TargetVpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162682	c.project = project
162683	c.region = region
162684	c.targetVpnGateway = targetVpnGateway
162685	return c
162686}
162687
162688// RequestId sets the optional parameter "requestId": An optional
162689// request ID to identify requests. Specify a unique request ID so that
162690// if you must retry your request, the server will know to ignore the
162691// request if it has already been completed. For example, consider a
162692// situation where you make an initial request and the request times
162693// out. If you make the request again with the same request ID, the
162694// server can check if original operation with the same request ID was
162695// received, and if so, will ignore the second request. This prevents
162696// clients from accidentally creating duplicate commitments. The request
162697// ID must be a valid UUID with the exception that zero UUID is not
162698// supported ( 00000000-0000-0000-0000-000000000000).
162699func (c *TargetVpnGatewaysDeleteCall) RequestId(requestId string) *TargetVpnGatewaysDeleteCall {
162700	c.urlParams_.Set("requestId", requestId)
162701	return c
162702}
162703
162704// Fields allows partial responses to be retrieved. See
162705// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162706// for more information.
162707func (c *TargetVpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysDeleteCall {
162708	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162709	return c
162710}
162711
162712// Context sets the context to be used in this call's Do method. Any
162713// pending HTTP request will be aborted if the provided context is
162714// canceled.
162715func (c *TargetVpnGatewaysDeleteCall) Context(ctx context.Context) *TargetVpnGatewaysDeleteCall {
162716	c.ctx_ = ctx
162717	return c
162718}
162719
162720// Header returns an http.Header that can be modified by the caller to
162721// add HTTP headers to the request.
162722func (c *TargetVpnGatewaysDeleteCall) Header() http.Header {
162723	if c.header_ == nil {
162724		c.header_ = make(http.Header)
162725	}
162726	return c.header_
162727}
162728
162729func (c *TargetVpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
162730	reqHeaders := make(http.Header)
162731	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
162732	for k, v := range c.header_ {
162733		reqHeaders[k] = v
162734	}
162735	reqHeaders.Set("User-Agent", c.s.userAgent())
162736	var body io.Reader = nil
162737	c.urlParams_.Set("alt", alt)
162738	c.urlParams_.Set("prettyPrint", "false")
162739	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}")
162740	urls += "?" + c.urlParams_.Encode()
162741	req, err := http.NewRequest("DELETE", urls, body)
162742	if err != nil {
162743		return nil, err
162744	}
162745	req.Header = reqHeaders
162746	googleapi.Expand(req.URL, map[string]string{
162747		"project":          c.project,
162748		"region":           c.region,
162749		"targetVpnGateway": c.targetVpnGateway,
162750	})
162751	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162752}
162753
162754// Do executes the "compute.targetVpnGateways.delete" call.
162755// Exactly one of *Operation or error will be non-nil. Any non-2xx
162756// status code is an error. Response headers are in either
162757// *Operation.ServerResponse.Header or (if a response was returned at
162758// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
162759// to check whether the returned error was because
162760// http.StatusNotModified was returned.
162761func (c *TargetVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
162762	gensupport.SetOptions(c.urlParams_, opts...)
162763	res, err := c.doRequest("json")
162764	if res != nil && res.StatusCode == http.StatusNotModified {
162765		if res.Body != nil {
162766			res.Body.Close()
162767		}
162768		return nil, &googleapi.Error{
162769			Code:   res.StatusCode,
162770			Header: res.Header,
162771		}
162772	}
162773	if err != nil {
162774		return nil, err
162775	}
162776	defer googleapi.CloseBody(res)
162777	if err := googleapi.CheckResponse(res); err != nil {
162778		return nil, err
162779	}
162780	ret := &Operation{
162781		ServerResponse: googleapi.ServerResponse{
162782			Header:         res.Header,
162783			HTTPStatusCode: res.StatusCode,
162784		},
162785	}
162786	target := &ret
162787	if err := gensupport.DecodeResponse(target, res); err != nil {
162788		return nil, err
162789	}
162790	return ret, nil
162791	// {
162792	//   "description": "Deletes the specified target VPN gateway.",
162793	//   "flatPath": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
162794	//   "httpMethod": "DELETE",
162795	//   "id": "compute.targetVpnGateways.delete",
162796	//   "parameterOrder": [
162797	//     "project",
162798	//     "region",
162799	//     "targetVpnGateway"
162800	//   ],
162801	//   "parameters": {
162802	//     "project": {
162803	//       "description": "Project ID for this request.",
162804	//       "location": "path",
162805	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162806	//       "required": true,
162807	//       "type": "string"
162808	//     },
162809	//     "region": {
162810	//       "description": "Name of the region for this request.",
162811	//       "location": "path",
162812	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
162813	//       "required": true,
162814	//       "type": "string"
162815	//     },
162816	//     "requestId": {
162817	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
162818	//       "location": "query",
162819	//       "type": "string"
162820	//     },
162821	//     "targetVpnGateway": {
162822	//       "description": "Name of the target VPN gateway to delete.",
162823	//       "location": "path",
162824	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
162825	//       "required": true,
162826	//       "type": "string"
162827	//     }
162828	//   },
162829	//   "path": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
162830	//   "response": {
162831	//     "$ref": "Operation"
162832	//   },
162833	//   "scopes": [
162834	//     "https://www.googleapis.com/auth/cloud-platform",
162835	//     "https://www.googleapis.com/auth/compute"
162836	//   ]
162837	// }
162838
162839}
162840
162841// method id "compute.targetVpnGateways.get":
162842
162843type TargetVpnGatewaysGetCall struct {
162844	s                *Service
162845	project          string
162846	region           string
162847	targetVpnGateway string
162848	urlParams_       gensupport.URLParams
162849	ifNoneMatch_     string
162850	ctx_             context.Context
162851	header_          http.Header
162852}
162853
162854// Get: Returns the specified target VPN gateway. Gets a list of
162855// available target VPN gateways by making a list() request.
162856//
162857// - project: Project ID for this request.
162858// - region: Name of the region for this request.
162859// - targetVpnGateway: Name of the target VPN gateway to return.
162860func (r *TargetVpnGatewaysService) Get(project string, region string, targetVpnGateway string) *TargetVpnGatewaysGetCall {
162861	c := &TargetVpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162862	c.project = project
162863	c.region = region
162864	c.targetVpnGateway = targetVpnGateway
162865	return c
162866}
162867
162868// Fields allows partial responses to be retrieved. See
162869// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162870// for more information.
162871func (c *TargetVpnGatewaysGetCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysGetCall {
162872	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162873	return c
162874}
162875
162876// IfNoneMatch sets the optional parameter which makes the operation
162877// fail if the object's ETag matches the given value. This is useful for
162878// getting updates only after the object has changed since the last
162879// request. Use googleapi.IsNotModified to check whether the response
162880// error from Do is the result of In-None-Match.
162881func (c *TargetVpnGatewaysGetCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysGetCall {
162882	c.ifNoneMatch_ = entityTag
162883	return c
162884}
162885
162886// Context sets the context to be used in this call's Do method. Any
162887// pending HTTP request will be aborted if the provided context is
162888// canceled.
162889func (c *TargetVpnGatewaysGetCall) Context(ctx context.Context) *TargetVpnGatewaysGetCall {
162890	c.ctx_ = ctx
162891	return c
162892}
162893
162894// Header returns an http.Header that can be modified by the caller to
162895// add HTTP headers to the request.
162896func (c *TargetVpnGatewaysGetCall) Header() http.Header {
162897	if c.header_ == nil {
162898		c.header_ = make(http.Header)
162899	}
162900	return c.header_
162901}
162902
162903func (c *TargetVpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
162904	reqHeaders := make(http.Header)
162905	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
162906	for k, v := range c.header_ {
162907		reqHeaders[k] = v
162908	}
162909	reqHeaders.Set("User-Agent", c.s.userAgent())
162910	if c.ifNoneMatch_ != "" {
162911		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
162912	}
162913	var body io.Reader = nil
162914	c.urlParams_.Set("alt", alt)
162915	c.urlParams_.Set("prettyPrint", "false")
162916	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}")
162917	urls += "?" + c.urlParams_.Encode()
162918	req, err := http.NewRequest("GET", urls, body)
162919	if err != nil {
162920		return nil, err
162921	}
162922	req.Header = reqHeaders
162923	googleapi.Expand(req.URL, map[string]string{
162924		"project":          c.project,
162925		"region":           c.region,
162926		"targetVpnGateway": c.targetVpnGateway,
162927	})
162928	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162929}
162930
162931// Do executes the "compute.targetVpnGateways.get" call.
162932// Exactly one of *TargetVpnGateway or error will be non-nil. Any
162933// non-2xx status code is an error. Response headers are in either
162934// *TargetVpnGateway.ServerResponse.Header or (if a response was
162935// returned at all) in error.(*googleapi.Error).Header. Use
162936// googleapi.IsNotModified to check whether the returned error was
162937// because http.StatusNotModified was returned.
162938func (c *TargetVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*TargetVpnGateway, error) {
162939	gensupport.SetOptions(c.urlParams_, opts...)
162940	res, err := c.doRequest("json")
162941	if res != nil && res.StatusCode == http.StatusNotModified {
162942		if res.Body != nil {
162943			res.Body.Close()
162944		}
162945		return nil, &googleapi.Error{
162946			Code:   res.StatusCode,
162947			Header: res.Header,
162948		}
162949	}
162950	if err != nil {
162951		return nil, err
162952	}
162953	defer googleapi.CloseBody(res)
162954	if err := googleapi.CheckResponse(res); err != nil {
162955		return nil, err
162956	}
162957	ret := &TargetVpnGateway{
162958		ServerResponse: googleapi.ServerResponse{
162959			Header:         res.Header,
162960			HTTPStatusCode: res.StatusCode,
162961		},
162962	}
162963	target := &ret
162964	if err := gensupport.DecodeResponse(target, res); err != nil {
162965		return nil, err
162966	}
162967	return ret, nil
162968	// {
162969	//   "description": "Returns the specified target VPN gateway. Gets a list of available target VPN gateways by making a list() request.",
162970	//   "flatPath": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
162971	//   "httpMethod": "GET",
162972	//   "id": "compute.targetVpnGateways.get",
162973	//   "parameterOrder": [
162974	//     "project",
162975	//     "region",
162976	//     "targetVpnGateway"
162977	//   ],
162978	//   "parameters": {
162979	//     "project": {
162980	//       "description": "Project ID for this request.",
162981	//       "location": "path",
162982	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162983	//       "required": true,
162984	//       "type": "string"
162985	//     },
162986	//     "region": {
162987	//       "description": "Name of the region for this request.",
162988	//       "location": "path",
162989	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
162990	//       "required": true,
162991	//       "type": "string"
162992	//     },
162993	//     "targetVpnGateway": {
162994	//       "description": "Name of the target VPN gateway to return.",
162995	//       "location": "path",
162996	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
162997	//       "required": true,
162998	//       "type": "string"
162999	//     }
163000	//   },
163001	//   "path": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
163002	//   "response": {
163003	//     "$ref": "TargetVpnGateway"
163004	//   },
163005	//   "scopes": [
163006	//     "https://www.googleapis.com/auth/cloud-platform",
163007	//     "https://www.googleapis.com/auth/compute",
163008	//     "https://www.googleapis.com/auth/compute.readonly"
163009	//   ]
163010	// }
163011
163012}
163013
163014// method id "compute.targetVpnGateways.insert":
163015
163016type TargetVpnGatewaysInsertCall struct {
163017	s                *Service
163018	project          string
163019	region           string
163020	targetvpngateway *TargetVpnGateway
163021	urlParams_       gensupport.URLParams
163022	ctx_             context.Context
163023	header_          http.Header
163024}
163025
163026// Insert: Creates a target VPN gateway in the specified project and
163027// region using the data included in the request.
163028//
163029// - project: Project ID for this request.
163030// - region: Name of the region for this request.
163031func (r *TargetVpnGatewaysService) Insert(project string, region string, targetvpngateway *TargetVpnGateway) *TargetVpnGatewaysInsertCall {
163032	c := &TargetVpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163033	c.project = project
163034	c.region = region
163035	c.targetvpngateway = targetvpngateway
163036	return c
163037}
163038
163039// RequestId sets the optional parameter "requestId": An optional
163040// request ID to identify requests. Specify a unique request ID so that
163041// if you must retry your request, the server will know to ignore the
163042// request if it has already been completed. For example, consider a
163043// situation where you make an initial request and the request times
163044// out. If you make the request again with the same request ID, the
163045// server can check if original operation with the same request ID was
163046// received, and if so, will ignore the second request. This prevents
163047// clients from accidentally creating duplicate commitments. The request
163048// ID must be a valid UUID with the exception that zero UUID is not
163049// supported ( 00000000-0000-0000-0000-000000000000).
163050func (c *TargetVpnGatewaysInsertCall) RequestId(requestId string) *TargetVpnGatewaysInsertCall {
163051	c.urlParams_.Set("requestId", requestId)
163052	return c
163053}
163054
163055// Fields allows partial responses to be retrieved. See
163056// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163057// for more information.
163058func (c *TargetVpnGatewaysInsertCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysInsertCall {
163059	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163060	return c
163061}
163062
163063// Context sets the context to be used in this call's Do method. Any
163064// pending HTTP request will be aborted if the provided context is
163065// canceled.
163066func (c *TargetVpnGatewaysInsertCall) Context(ctx context.Context) *TargetVpnGatewaysInsertCall {
163067	c.ctx_ = ctx
163068	return c
163069}
163070
163071// Header returns an http.Header that can be modified by the caller to
163072// add HTTP headers to the request.
163073func (c *TargetVpnGatewaysInsertCall) Header() http.Header {
163074	if c.header_ == nil {
163075		c.header_ = make(http.Header)
163076	}
163077	return c.header_
163078}
163079
163080func (c *TargetVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
163081	reqHeaders := make(http.Header)
163082	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
163083	for k, v := range c.header_ {
163084		reqHeaders[k] = v
163085	}
163086	reqHeaders.Set("User-Agent", c.s.userAgent())
163087	var body io.Reader = nil
163088	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetvpngateway)
163089	if err != nil {
163090		return nil, err
163091	}
163092	reqHeaders.Set("Content-Type", "application/json")
163093	c.urlParams_.Set("alt", alt)
163094	c.urlParams_.Set("prettyPrint", "false")
163095	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways")
163096	urls += "?" + c.urlParams_.Encode()
163097	req, err := http.NewRequest("POST", urls, body)
163098	if err != nil {
163099		return nil, err
163100	}
163101	req.Header = reqHeaders
163102	googleapi.Expand(req.URL, map[string]string{
163103		"project": c.project,
163104		"region":  c.region,
163105	})
163106	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163107}
163108
163109// Do executes the "compute.targetVpnGateways.insert" call.
163110// Exactly one of *Operation or error will be non-nil. Any non-2xx
163111// status code is an error. Response headers are in either
163112// *Operation.ServerResponse.Header or (if a response was returned at
163113// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
163114// to check whether the returned error was because
163115// http.StatusNotModified was returned.
163116func (c *TargetVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
163117	gensupport.SetOptions(c.urlParams_, opts...)
163118	res, err := c.doRequest("json")
163119	if res != nil && res.StatusCode == http.StatusNotModified {
163120		if res.Body != nil {
163121			res.Body.Close()
163122		}
163123		return nil, &googleapi.Error{
163124			Code:   res.StatusCode,
163125			Header: res.Header,
163126		}
163127	}
163128	if err != nil {
163129		return nil, err
163130	}
163131	defer googleapi.CloseBody(res)
163132	if err := googleapi.CheckResponse(res); err != nil {
163133		return nil, err
163134	}
163135	ret := &Operation{
163136		ServerResponse: googleapi.ServerResponse{
163137			Header:         res.Header,
163138			HTTPStatusCode: res.StatusCode,
163139		},
163140	}
163141	target := &ret
163142	if err := gensupport.DecodeResponse(target, res); err != nil {
163143		return nil, err
163144	}
163145	return ret, nil
163146	// {
163147	//   "description": "Creates a target VPN gateway in the specified project and region using the data included in the request.",
163148	//   "flatPath": "projects/{project}/regions/{region}/targetVpnGateways",
163149	//   "httpMethod": "POST",
163150	//   "id": "compute.targetVpnGateways.insert",
163151	//   "parameterOrder": [
163152	//     "project",
163153	//     "region"
163154	//   ],
163155	//   "parameters": {
163156	//     "project": {
163157	//       "description": "Project ID for this request.",
163158	//       "location": "path",
163159	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163160	//       "required": true,
163161	//       "type": "string"
163162	//     },
163163	//     "region": {
163164	//       "description": "Name of the region for this request.",
163165	//       "location": "path",
163166	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
163167	//       "required": true,
163168	//       "type": "string"
163169	//     },
163170	//     "requestId": {
163171	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
163172	//       "location": "query",
163173	//       "type": "string"
163174	//     }
163175	//   },
163176	//   "path": "projects/{project}/regions/{region}/targetVpnGateways",
163177	//   "request": {
163178	//     "$ref": "TargetVpnGateway"
163179	//   },
163180	//   "response": {
163181	//     "$ref": "Operation"
163182	//   },
163183	//   "scopes": [
163184	//     "https://www.googleapis.com/auth/cloud-platform",
163185	//     "https://www.googleapis.com/auth/compute"
163186	//   ]
163187	// }
163188
163189}
163190
163191// method id "compute.targetVpnGateways.list":
163192
163193type TargetVpnGatewaysListCall struct {
163194	s            *Service
163195	project      string
163196	region       string
163197	urlParams_   gensupport.URLParams
163198	ifNoneMatch_ string
163199	ctx_         context.Context
163200	header_      http.Header
163201}
163202
163203// List: Retrieves a list of target VPN gateways available to the
163204// specified project and region.
163205//
163206// - project: Project ID for this request.
163207// - region: Name of the region for this request.
163208func (r *TargetVpnGatewaysService) List(project string, region string) *TargetVpnGatewaysListCall {
163209	c := &TargetVpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163210	c.project = project
163211	c.region = region
163212	return c
163213}
163214
163215// Filter sets the optional parameter "filter": A filter expression that
163216// filters resources listed in the response. The expression must specify
163217// the field name, a comparison operator, and the value that you want to
163218// use for filtering. The value must be a string, a number, or a
163219// boolean. The comparison operator must be either `=`, `!=`, `>`, or
163220// `<`. For example, if you are filtering Compute Engine instances, you
163221// can exclude instances named `example-instance` by specifying `name !=
163222// example-instance`. You can also filter nested fields. For example,
163223// you could specify `scheduling.automaticRestart = false` to include
163224// instances only if they are not scheduled for automatic restarts. You
163225// can use filtering on nested fields to filter based on resource
163226// labels. To filter on multiple expressions, provide each separate
163227// expression within parentheses. For example: ```
163228// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
163229// ``` By default, each expression is an `AND` expression. However, you
163230// can include `AND` and `OR` expressions explicitly. For example: ```
163231// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
163232// AND (scheduling.automaticRestart = true) ```
163233func (c *TargetVpnGatewaysListCall) Filter(filter string) *TargetVpnGatewaysListCall {
163234	c.urlParams_.Set("filter", filter)
163235	return c
163236}
163237
163238// MaxResults sets the optional parameter "maxResults": The maximum
163239// number of results per page that should be returned. If the number of
163240// available results is larger than `maxResults`, Compute Engine returns
163241// a `nextPageToken` that can be used to get the next page of results in
163242// subsequent list requests. Acceptable values are `0` to `500`,
163243// inclusive. (Default: `500`)
163244func (c *TargetVpnGatewaysListCall) MaxResults(maxResults int64) *TargetVpnGatewaysListCall {
163245	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
163246	return c
163247}
163248
163249// OrderBy sets the optional parameter "orderBy": Sorts list results by
163250// a certain order. By default, results are returned in alphanumerical
163251// order based on the resource name. You can also sort results in
163252// descending order based on the creation timestamp using
163253// `orderBy="creationTimestamp desc". This sorts results based on the
163254// `creationTimestamp` field in reverse chronological order (newest
163255// result first). Use this to sort resources like operations so that the
163256// newest operation is returned first. Currently, only sorting by `name`
163257// or `creationTimestamp desc` is supported.
163258func (c *TargetVpnGatewaysListCall) OrderBy(orderBy string) *TargetVpnGatewaysListCall {
163259	c.urlParams_.Set("orderBy", orderBy)
163260	return c
163261}
163262
163263// PageToken sets the optional parameter "pageToken": Specifies a page
163264// token to use. Set `pageToken` to the `nextPageToken` returned by a
163265// previous list request to get the next page of results.
163266func (c *TargetVpnGatewaysListCall) PageToken(pageToken string) *TargetVpnGatewaysListCall {
163267	c.urlParams_.Set("pageToken", pageToken)
163268	return c
163269}
163270
163271// ReturnPartialSuccess sets the optional parameter
163272// "returnPartialSuccess": Opt-in for partial success behavior which
163273// provides partial results in case of failure. The default value is
163274// false.
163275func (c *TargetVpnGatewaysListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetVpnGatewaysListCall {
163276	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
163277	return c
163278}
163279
163280// Fields allows partial responses to be retrieved. See
163281// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163282// for more information.
163283func (c *TargetVpnGatewaysListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysListCall {
163284	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163285	return c
163286}
163287
163288// IfNoneMatch sets the optional parameter which makes the operation
163289// fail if the object's ETag matches the given value. This is useful for
163290// getting updates only after the object has changed since the last
163291// request. Use googleapi.IsNotModified to check whether the response
163292// error from Do is the result of In-None-Match.
163293func (c *TargetVpnGatewaysListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysListCall {
163294	c.ifNoneMatch_ = entityTag
163295	return c
163296}
163297
163298// Context sets the context to be used in this call's Do method. Any
163299// pending HTTP request will be aborted if the provided context is
163300// canceled.
163301func (c *TargetVpnGatewaysListCall) Context(ctx context.Context) *TargetVpnGatewaysListCall {
163302	c.ctx_ = ctx
163303	return c
163304}
163305
163306// Header returns an http.Header that can be modified by the caller to
163307// add HTTP headers to the request.
163308func (c *TargetVpnGatewaysListCall) Header() http.Header {
163309	if c.header_ == nil {
163310		c.header_ = make(http.Header)
163311	}
163312	return c.header_
163313}
163314
163315func (c *TargetVpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
163316	reqHeaders := make(http.Header)
163317	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
163318	for k, v := range c.header_ {
163319		reqHeaders[k] = v
163320	}
163321	reqHeaders.Set("User-Agent", c.s.userAgent())
163322	if c.ifNoneMatch_ != "" {
163323		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
163324	}
163325	var body io.Reader = nil
163326	c.urlParams_.Set("alt", alt)
163327	c.urlParams_.Set("prettyPrint", "false")
163328	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways")
163329	urls += "?" + c.urlParams_.Encode()
163330	req, err := http.NewRequest("GET", urls, body)
163331	if err != nil {
163332		return nil, err
163333	}
163334	req.Header = reqHeaders
163335	googleapi.Expand(req.URL, map[string]string{
163336		"project": c.project,
163337		"region":  c.region,
163338	})
163339	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163340}
163341
163342// Do executes the "compute.targetVpnGateways.list" call.
163343// Exactly one of *TargetVpnGatewayList or error will be non-nil. Any
163344// non-2xx status code is an error. Response headers are in either
163345// *TargetVpnGatewayList.ServerResponse.Header or (if a response was
163346// returned at all) in error.(*googleapi.Error).Header. Use
163347// googleapi.IsNotModified to check whether the returned error was
163348// because http.StatusNotModified was returned.
163349func (c *TargetVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayList, error) {
163350	gensupport.SetOptions(c.urlParams_, opts...)
163351	res, err := c.doRequest("json")
163352	if res != nil && res.StatusCode == http.StatusNotModified {
163353		if res.Body != nil {
163354			res.Body.Close()
163355		}
163356		return nil, &googleapi.Error{
163357			Code:   res.StatusCode,
163358			Header: res.Header,
163359		}
163360	}
163361	if err != nil {
163362		return nil, err
163363	}
163364	defer googleapi.CloseBody(res)
163365	if err := googleapi.CheckResponse(res); err != nil {
163366		return nil, err
163367	}
163368	ret := &TargetVpnGatewayList{
163369		ServerResponse: googleapi.ServerResponse{
163370			Header:         res.Header,
163371			HTTPStatusCode: res.StatusCode,
163372		},
163373	}
163374	target := &ret
163375	if err := gensupport.DecodeResponse(target, res); err != nil {
163376		return nil, err
163377	}
163378	return ret, nil
163379	// {
163380	//   "description": "Retrieves a list of target VPN gateways available to the specified project and region.",
163381	//   "flatPath": "projects/{project}/regions/{region}/targetVpnGateways",
163382	//   "httpMethod": "GET",
163383	//   "id": "compute.targetVpnGateways.list",
163384	//   "parameterOrder": [
163385	//     "project",
163386	//     "region"
163387	//   ],
163388	//   "parameters": {
163389	//     "filter": {
163390	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
163391	//       "location": "query",
163392	//       "type": "string"
163393	//     },
163394	//     "maxResults": {
163395	//       "default": "500",
163396	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
163397	//       "format": "uint32",
163398	//       "location": "query",
163399	//       "minimum": "0",
163400	//       "type": "integer"
163401	//     },
163402	//     "orderBy": {
163403	//       "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.",
163404	//       "location": "query",
163405	//       "type": "string"
163406	//     },
163407	//     "pageToken": {
163408	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
163409	//       "location": "query",
163410	//       "type": "string"
163411	//     },
163412	//     "project": {
163413	//       "description": "Project ID for this request.",
163414	//       "location": "path",
163415	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163416	//       "required": true,
163417	//       "type": "string"
163418	//     },
163419	//     "region": {
163420	//       "description": "Name of the region for this request.",
163421	//       "location": "path",
163422	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
163423	//       "required": true,
163424	//       "type": "string"
163425	//     },
163426	//     "returnPartialSuccess": {
163427	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
163428	//       "location": "query",
163429	//       "type": "boolean"
163430	//     }
163431	//   },
163432	//   "path": "projects/{project}/regions/{region}/targetVpnGateways",
163433	//   "response": {
163434	//     "$ref": "TargetVpnGatewayList"
163435	//   },
163436	//   "scopes": [
163437	//     "https://www.googleapis.com/auth/cloud-platform",
163438	//     "https://www.googleapis.com/auth/compute",
163439	//     "https://www.googleapis.com/auth/compute.readonly"
163440	//   ]
163441	// }
163442
163443}
163444
163445// Pages invokes f for each page of results.
163446// A non-nil error returned from f will halt the iteration.
163447// The provided context supersedes any context provided to the Context method.
163448func (c *TargetVpnGatewaysListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayList) error) error {
163449	c.ctx_ = ctx
163450	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
163451	for {
163452		x, err := c.Do()
163453		if err != nil {
163454			return err
163455		}
163456		if err := f(x); err != nil {
163457			return err
163458		}
163459		if x.NextPageToken == "" {
163460			return nil
163461		}
163462		c.PageToken(x.NextPageToken)
163463	}
163464}
163465
163466// method id "compute.urlMaps.aggregatedList":
163467
163468type UrlMapsAggregatedListCall struct {
163469	s            *Service
163470	project      string
163471	urlParams_   gensupport.URLParams
163472	ifNoneMatch_ string
163473	ctx_         context.Context
163474	header_      http.Header
163475}
163476
163477// AggregatedList: Retrieves the list of all UrlMap resources, regional
163478// and global, available to the specified project.
163479//
163480// - project: Name of the project scoping this request.
163481func (r *UrlMapsService) AggregatedList(project string) *UrlMapsAggregatedListCall {
163482	c := &UrlMapsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163483	c.project = project
163484	return c
163485}
163486
163487// Filter sets the optional parameter "filter": A filter expression that
163488// filters resources listed in the response. The expression must specify
163489// the field name, a comparison operator, and the value that you want to
163490// use for filtering. The value must be a string, a number, or a
163491// boolean. The comparison operator must be either `=`, `!=`, `>`, or
163492// `<`. For example, if you are filtering Compute Engine instances, you
163493// can exclude instances named `example-instance` by specifying `name !=
163494// example-instance`. You can also filter nested fields. For example,
163495// you could specify `scheduling.automaticRestart = false` to include
163496// instances only if they are not scheduled for automatic restarts. You
163497// can use filtering on nested fields to filter based on resource
163498// labels. To filter on multiple expressions, provide each separate
163499// expression within parentheses. For example: ```
163500// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
163501// ``` By default, each expression is an `AND` expression. However, you
163502// can include `AND` and `OR` expressions explicitly. For example: ```
163503// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
163504// AND (scheduling.automaticRestart = true) ```
163505func (c *UrlMapsAggregatedListCall) Filter(filter string) *UrlMapsAggregatedListCall {
163506	c.urlParams_.Set("filter", filter)
163507	return c
163508}
163509
163510// IncludeAllScopes sets the optional parameter "includeAllScopes":
163511// Indicates whether every visible scope for each scope type (zone,
163512// region, global) should be included in the response. For new resource
163513// types added after this field, the flag has no effect as new resource
163514// types will always include every visible scope for each scope type in
163515// response. For resource types which predate this field, if this flag
163516// is omitted or false, only scopes of the scope types where the
163517// resource type is expected to be found will be included.
163518func (c *UrlMapsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *UrlMapsAggregatedListCall {
163519	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
163520	return c
163521}
163522
163523// MaxResults sets the optional parameter "maxResults": The maximum
163524// number of results per page that should be returned. If the number of
163525// available results is larger than `maxResults`, Compute Engine returns
163526// a `nextPageToken` that can be used to get the next page of results in
163527// subsequent list requests. Acceptable values are `0` to `500`,
163528// inclusive. (Default: `500`)
163529func (c *UrlMapsAggregatedListCall) MaxResults(maxResults int64) *UrlMapsAggregatedListCall {
163530	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
163531	return c
163532}
163533
163534// OrderBy sets the optional parameter "orderBy": Sorts list results by
163535// a certain order. By default, results are returned in alphanumerical
163536// order based on the resource name. You can also sort results in
163537// descending order based on the creation timestamp using
163538// `orderBy="creationTimestamp desc". This sorts results based on the
163539// `creationTimestamp` field in reverse chronological order (newest
163540// result first). Use this to sort resources like operations so that the
163541// newest operation is returned first. Currently, only sorting by `name`
163542// or `creationTimestamp desc` is supported.
163543func (c *UrlMapsAggregatedListCall) OrderBy(orderBy string) *UrlMapsAggregatedListCall {
163544	c.urlParams_.Set("orderBy", orderBy)
163545	return c
163546}
163547
163548// PageToken sets the optional parameter "pageToken": Specifies a page
163549// token to use. Set `pageToken` to the `nextPageToken` returned by a
163550// previous list request to get the next page of results.
163551func (c *UrlMapsAggregatedListCall) PageToken(pageToken string) *UrlMapsAggregatedListCall {
163552	c.urlParams_.Set("pageToken", pageToken)
163553	return c
163554}
163555
163556// ReturnPartialSuccess sets the optional parameter
163557// "returnPartialSuccess": Opt-in for partial success behavior which
163558// provides partial results in case of failure. The default value is
163559// false.
163560func (c *UrlMapsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *UrlMapsAggregatedListCall {
163561	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
163562	return c
163563}
163564
163565// Fields allows partial responses to be retrieved. See
163566// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163567// for more information.
163568func (c *UrlMapsAggregatedListCall) Fields(s ...googleapi.Field) *UrlMapsAggregatedListCall {
163569	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163570	return c
163571}
163572
163573// IfNoneMatch sets the optional parameter which makes the operation
163574// fail if the object's ETag matches the given value. This is useful for
163575// getting updates only after the object has changed since the last
163576// request. Use googleapi.IsNotModified to check whether the response
163577// error from Do is the result of In-None-Match.
163578func (c *UrlMapsAggregatedListCall) IfNoneMatch(entityTag string) *UrlMapsAggregatedListCall {
163579	c.ifNoneMatch_ = entityTag
163580	return c
163581}
163582
163583// Context sets the context to be used in this call's Do method. Any
163584// pending HTTP request will be aborted if the provided context is
163585// canceled.
163586func (c *UrlMapsAggregatedListCall) Context(ctx context.Context) *UrlMapsAggregatedListCall {
163587	c.ctx_ = ctx
163588	return c
163589}
163590
163591// Header returns an http.Header that can be modified by the caller to
163592// add HTTP headers to the request.
163593func (c *UrlMapsAggregatedListCall) Header() http.Header {
163594	if c.header_ == nil {
163595		c.header_ = make(http.Header)
163596	}
163597	return c.header_
163598}
163599
163600func (c *UrlMapsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
163601	reqHeaders := make(http.Header)
163602	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
163603	for k, v := range c.header_ {
163604		reqHeaders[k] = v
163605	}
163606	reqHeaders.Set("User-Agent", c.s.userAgent())
163607	if c.ifNoneMatch_ != "" {
163608		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
163609	}
163610	var body io.Reader = nil
163611	c.urlParams_.Set("alt", alt)
163612	c.urlParams_.Set("prettyPrint", "false")
163613	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/urlMaps")
163614	urls += "?" + c.urlParams_.Encode()
163615	req, err := http.NewRequest("GET", urls, body)
163616	if err != nil {
163617		return nil, err
163618	}
163619	req.Header = reqHeaders
163620	googleapi.Expand(req.URL, map[string]string{
163621		"project": c.project,
163622	})
163623	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163624}
163625
163626// Do executes the "compute.urlMaps.aggregatedList" call.
163627// Exactly one of *UrlMapsAggregatedList or error will be non-nil. Any
163628// non-2xx status code is an error. Response headers are in either
163629// *UrlMapsAggregatedList.ServerResponse.Header or (if a response was
163630// returned at all) in error.(*googleapi.Error).Header. Use
163631// googleapi.IsNotModified to check whether the returned error was
163632// because http.StatusNotModified was returned.
163633func (c *UrlMapsAggregatedListCall) Do(opts ...googleapi.CallOption) (*UrlMapsAggregatedList, error) {
163634	gensupport.SetOptions(c.urlParams_, opts...)
163635	res, err := c.doRequest("json")
163636	if res != nil && res.StatusCode == http.StatusNotModified {
163637		if res.Body != nil {
163638			res.Body.Close()
163639		}
163640		return nil, &googleapi.Error{
163641			Code:   res.StatusCode,
163642			Header: res.Header,
163643		}
163644	}
163645	if err != nil {
163646		return nil, err
163647	}
163648	defer googleapi.CloseBody(res)
163649	if err := googleapi.CheckResponse(res); err != nil {
163650		return nil, err
163651	}
163652	ret := &UrlMapsAggregatedList{
163653		ServerResponse: googleapi.ServerResponse{
163654			Header:         res.Header,
163655			HTTPStatusCode: res.StatusCode,
163656		},
163657	}
163658	target := &ret
163659	if err := gensupport.DecodeResponse(target, res); err != nil {
163660		return nil, err
163661	}
163662	return ret, nil
163663	// {
163664	//   "description": "Retrieves the list of all UrlMap resources, regional and global, available to the specified project.",
163665	//   "flatPath": "projects/{project}/aggregated/urlMaps",
163666	//   "httpMethod": "GET",
163667	//   "id": "compute.urlMaps.aggregatedList",
163668	//   "parameterOrder": [
163669	//     "project"
163670	//   ],
163671	//   "parameters": {
163672	//     "filter": {
163673	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
163674	//       "location": "query",
163675	//       "type": "string"
163676	//     },
163677	//     "includeAllScopes": {
163678	//       "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.",
163679	//       "location": "query",
163680	//       "type": "boolean"
163681	//     },
163682	//     "maxResults": {
163683	//       "default": "500",
163684	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
163685	//       "format": "uint32",
163686	//       "location": "query",
163687	//       "minimum": "0",
163688	//       "type": "integer"
163689	//     },
163690	//     "orderBy": {
163691	//       "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.",
163692	//       "location": "query",
163693	//       "type": "string"
163694	//     },
163695	//     "pageToken": {
163696	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
163697	//       "location": "query",
163698	//       "type": "string"
163699	//     },
163700	//     "project": {
163701	//       "description": "Name of the project scoping this request.",
163702	//       "location": "path",
163703	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163704	//       "required": true,
163705	//       "type": "string"
163706	//     },
163707	//     "returnPartialSuccess": {
163708	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
163709	//       "location": "query",
163710	//       "type": "boolean"
163711	//     }
163712	//   },
163713	//   "path": "projects/{project}/aggregated/urlMaps",
163714	//   "response": {
163715	//     "$ref": "UrlMapsAggregatedList"
163716	//   },
163717	//   "scopes": [
163718	//     "https://www.googleapis.com/auth/cloud-platform",
163719	//     "https://www.googleapis.com/auth/compute",
163720	//     "https://www.googleapis.com/auth/compute.readonly"
163721	//   ]
163722	// }
163723
163724}
163725
163726// Pages invokes f for each page of results.
163727// A non-nil error returned from f will halt the iteration.
163728// The provided context supersedes any context provided to the Context method.
163729func (c *UrlMapsAggregatedListCall) Pages(ctx context.Context, f func(*UrlMapsAggregatedList) error) error {
163730	c.ctx_ = ctx
163731	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
163732	for {
163733		x, err := c.Do()
163734		if err != nil {
163735			return err
163736		}
163737		if err := f(x); err != nil {
163738			return err
163739		}
163740		if x.NextPageToken == "" {
163741			return nil
163742		}
163743		c.PageToken(x.NextPageToken)
163744	}
163745}
163746
163747// method id "compute.urlMaps.delete":
163748
163749type UrlMapsDeleteCall struct {
163750	s          *Service
163751	project    string
163752	urlMap     string
163753	urlParams_ gensupport.URLParams
163754	ctx_       context.Context
163755	header_    http.Header
163756}
163757
163758// Delete: Deletes the specified UrlMap resource.
163759//
163760// - project: Project ID for this request.
163761// - urlMap: Name of the UrlMap resource to delete.
163762func (r *UrlMapsService) Delete(project string, urlMap string) *UrlMapsDeleteCall {
163763	c := &UrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163764	c.project = project
163765	c.urlMap = urlMap
163766	return c
163767}
163768
163769// RequestId sets the optional parameter "requestId": An optional
163770// request ID to identify requests. Specify a unique request ID so that
163771// if you must retry your request, the server will know to ignore the
163772// request if it has already been completed. For example, consider a
163773// situation where you make an initial request and the request times
163774// out. If you make the request again with the same request ID, the
163775// server can check if original operation with the same request ID was
163776// received, and if so, will ignore the second request. This prevents
163777// clients from accidentally creating duplicate commitments. The request
163778// ID must be a valid UUID with the exception that zero UUID is not
163779// supported ( 00000000-0000-0000-0000-000000000000).
163780func (c *UrlMapsDeleteCall) RequestId(requestId string) *UrlMapsDeleteCall {
163781	c.urlParams_.Set("requestId", requestId)
163782	return c
163783}
163784
163785// Fields allows partial responses to be retrieved. See
163786// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163787// for more information.
163788func (c *UrlMapsDeleteCall) Fields(s ...googleapi.Field) *UrlMapsDeleteCall {
163789	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163790	return c
163791}
163792
163793// Context sets the context to be used in this call's Do method. Any
163794// pending HTTP request will be aborted if the provided context is
163795// canceled.
163796func (c *UrlMapsDeleteCall) Context(ctx context.Context) *UrlMapsDeleteCall {
163797	c.ctx_ = ctx
163798	return c
163799}
163800
163801// Header returns an http.Header that can be modified by the caller to
163802// add HTTP headers to the request.
163803func (c *UrlMapsDeleteCall) Header() http.Header {
163804	if c.header_ == nil {
163805		c.header_ = make(http.Header)
163806	}
163807	return c.header_
163808}
163809
163810func (c *UrlMapsDeleteCall) doRequest(alt string) (*http.Response, error) {
163811	reqHeaders := make(http.Header)
163812	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
163813	for k, v := range c.header_ {
163814		reqHeaders[k] = v
163815	}
163816	reqHeaders.Set("User-Agent", c.s.userAgent())
163817	var body io.Reader = nil
163818	c.urlParams_.Set("alt", alt)
163819	c.urlParams_.Set("prettyPrint", "false")
163820	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}")
163821	urls += "?" + c.urlParams_.Encode()
163822	req, err := http.NewRequest("DELETE", urls, body)
163823	if err != nil {
163824		return nil, err
163825	}
163826	req.Header = reqHeaders
163827	googleapi.Expand(req.URL, map[string]string{
163828		"project": c.project,
163829		"urlMap":  c.urlMap,
163830	})
163831	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163832}
163833
163834// Do executes the "compute.urlMaps.delete" call.
163835// Exactly one of *Operation or error will be non-nil. Any non-2xx
163836// status code is an error. Response headers are in either
163837// *Operation.ServerResponse.Header or (if a response was returned at
163838// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
163839// to check whether the returned error was because
163840// http.StatusNotModified was returned.
163841func (c *UrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
163842	gensupport.SetOptions(c.urlParams_, opts...)
163843	res, err := c.doRequest("json")
163844	if res != nil && res.StatusCode == http.StatusNotModified {
163845		if res.Body != nil {
163846			res.Body.Close()
163847		}
163848		return nil, &googleapi.Error{
163849			Code:   res.StatusCode,
163850			Header: res.Header,
163851		}
163852	}
163853	if err != nil {
163854		return nil, err
163855	}
163856	defer googleapi.CloseBody(res)
163857	if err := googleapi.CheckResponse(res); err != nil {
163858		return nil, err
163859	}
163860	ret := &Operation{
163861		ServerResponse: googleapi.ServerResponse{
163862			Header:         res.Header,
163863			HTTPStatusCode: res.StatusCode,
163864		},
163865	}
163866	target := &ret
163867	if err := gensupport.DecodeResponse(target, res); err != nil {
163868		return nil, err
163869	}
163870	return ret, nil
163871	// {
163872	//   "description": "Deletes the specified UrlMap resource.",
163873	//   "flatPath": "projects/{project}/global/urlMaps/{urlMap}",
163874	//   "httpMethod": "DELETE",
163875	//   "id": "compute.urlMaps.delete",
163876	//   "parameterOrder": [
163877	//     "project",
163878	//     "urlMap"
163879	//   ],
163880	//   "parameters": {
163881	//     "project": {
163882	//       "description": "Project ID for this request.",
163883	//       "location": "path",
163884	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163885	//       "required": true,
163886	//       "type": "string"
163887	//     },
163888	//     "requestId": {
163889	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
163890	//       "location": "query",
163891	//       "type": "string"
163892	//     },
163893	//     "urlMap": {
163894	//       "description": "Name of the UrlMap resource to delete.",
163895	//       "location": "path",
163896	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
163897	//       "required": true,
163898	//       "type": "string"
163899	//     }
163900	//   },
163901	//   "path": "projects/{project}/global/urlMaps/{urlMap}",
163902	//   "response": {
163903	//     "$ref": "Operation"
163904	//   },
163905	//   "scopes": [
163906	//     "https://www.googleapis.com/auth/cloud-platform",
163907	//     "https://www.googleapis.com/auth/compute"
163908	//   ]
163909	// }
163910
163911}
163912
163913// method id "compute.urlMaps.get":
163914
163915type UrlMapsGetCall struct {
163916	s            *Service
163917	project      string
163918	urlMap       string
163919	urlParams_   gensupport.URLParams
163920	ifNoneMatch_ string
163921	ctx_         context.Context
163922	header_      http.Header
163923}
163924
163925// Get: Returns the specified UrlMap resource. Gets a list of available
163926// URL maps by making a list() request.
163927//
163928// - project: Project ID for this request.
163929// - urlMap: Name of the UrlMap resource to return.
163930func (r *UrlMapsService) Get(project string, urlMap string) *UrlMapsGetCall {
163931	c := &UrlMapsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163932	c.project = project
163933	c.urlMap = urlMap
163934	return c
163935}
163936
163937// Fields allows partial responses to be retrieved. See
163938// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163939// for more information.
163940func (c *UrlMapsGetCall) Fields(s ...googleapi.Field) *UrlMapsGetCall {
163941	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163942	return c
163943}
163944
163945// IfNoneMatch sets the optional parameter which makes the operation
163946// fail if the object's ETag matches the given value. This is useful for
163947// getting updates only after the object has changed since the last
163948// request. Use googleapi.IsNotModified to check whether the response
163949// error from Do is the result of In-None-Match.
163950func (c *UrlMapsGetCall) IfNoneMatch(entityTag string) *UrlMapsGetCall {
163951	c.ifNoneMatch_ = entityTag
163952	return c
163953}
163954
163955// Context sets the context to be used in this call's Do method. Any
163956// pending HTTP request will be aborted if the provided context is
163957// canceled.
163958func (c *UrlMapsGetCall) Context(ctx context.Context) *UrlMapsGetCall {
163959	c.ctx_ = ctx
163960	return c
163961}
163962
163963// Header returns an http.Header that can be modified by the caller to
163964// add HTTP headers to the request.
163965func (c *UrlMapsGetCall) Header() http.Header {
163966	if c.header_ == nil {
163967		c.header_ = make(http.Header)
163968	}
163969	return c.header_
163970}
163971
163972func (c *UrlMapsGetCall) doRequest(alt string) (*http.Response, error) {
163973	reqHeaders := make(http.Header)
163974	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
163975	for k, v := range c.header_ {
163976		reqHeaders[k] = v
163977	}
163978	reqHeaders.Set("User-Agent", c.s.userAgent())
163979	if c.ifNoneMatch_ != "" {
163980		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
163981	}
163982	var body io.Reader = nil
163983	c.urlParams_.Set("alt", alt)
163984	c.urlParams_.Set("prettyPrint", "false")
163985	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}")
163986	urls += "?" + c.urlParams_.Encode()
163987	req, err := http.NewRequest("GET", urls, body)
163988	if err != nil {
163989		return nil, err
163990	}
163991	req.Header = reqHeaders
163992	googleapi.Expand(req.URL, map[string]string{
163993		"project": c.project,
163994		"urlMap":  c.urlMap,
163995	})
163996	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163997}
163998
163999// Do executes the "compute.urlMaps.get" call.
164000// Exactly one of *UrlMap or error will be non-nil. Any non-2xx status
164001// code is an error. Response headers are in either
164002// *UrlMap.ServerResponse.Header or (if a response was returned at all)
164003// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
164004// check whether the returned error was because http.StatusNotModified
164005// was returned.
164006func (c *UrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) {
164007	gensupport.SetOptions(c.urlParams_, opts...)
164008	res, err := c.doRequest("json")
164009	if res != nil && res.StatusCode == http.StatusNotModified {
164010		if res.Body != nil {
164011			res.Body.Close()
164012		}
164013		return nil, &googleapi.Error{
164014			Code:   res.StatusCode,
164015			Header: res.Header,
164016		}
164017	}
164018	if err != nil {
164019		return nil, err
164020	}
164021	defer googleapi.CloseBody(res)
164022	if err := googleapi.CheckResponse(res); err != nil {
164023		return nil, err
164024	}
164025	ret := &UrlMap{
164026		ServerResponse: googleapi.ServerResponse{
164027			Header:         res.Header,
164028			HTTPStatusCode: res.StatusCode,
164029		},
164030	}
164031	target := &ret
164032	if err := gensupport.DecodeResponse(target, res); err != nil {
164033		return nil, err
164034	}
164035	return ret, nil
164036	// {
164037	//   "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.",
164038	//   "flatPath": "projects/{project}/global/urlMaps/{urlMap}",
164039	//   "httpMethod": "GET",
164040	//   "id": "compute.urlMaps.get",
164041	//   "parameterOrder": [
164042	//     "project",
164043	//     "urlMap"
164044	//   ],
164045	//   "parameters": {
164046	//     "project": {
164047	//       "description": "Project ID for this request.",
164048	//       "location": "path",
164049	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164050	//       "required": true,
164051	//       "type": "string"
164052	//     },
164053	//     "urlMap": {
164054	//       "description": "Name of the UrlMap resource to return.",
164055	//       "location": "path",
164056	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
164057	//       "required": true,
164058	//       "type": "string"
164059	//     }
164060	//   },
164061	//   "path": "projects/{project}/global/urlMaps/{urlMap}",
164062	//   "response": {
164063	//     "$ref": "UrlMap"
164064	//   },
164065	//   "scopes": [
164066	//     "https://www.googleapis.com/auth/cloud-platform",
164067	//     "https://www.googleapis.com/auth/compute",
164068	//     "https://www.googleapis.com/auth/compute.readonly"
164069	//   ]
164070	// }
164071
164072}
164073
164074// method id "compute.urlMaps.insert":
164075
164076type UrlMapsInsertCall struct {
164077	s          *Service
164078	project    string
164079	urlmap     *UrlMap
164080	urlParams_ gensupport.URLParams
164081	ctx_       context.Context
164082	header_    http.Header
164083}
164084
164085// Insert: Creates a UrlMap resource in the specified project using the
164086// data included in the request.
164087//
164088// - project: Project ID for this request.
164089func (r *UrlMapsService) Insert(project string, urlmap *UrlMap) *UrlMapsInsertCall {
164090	c := &UrlMapsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164091	c.project = project
164092	c.urlmap = urlmap
164093	return c
164094}
164095
164096// RequestId sets the optional parameter "requestId": An optional
164097// request ID to identify requests. Specify a unique request ID so that
164098// if you must retry your request, the server will know to ignore the
164099// request if it has already been completed. For example, consider a
164100// situation where you make an initial request and the request times
164101// out. If you make the request again with the same request ID, the
164102// server can check if original operation with the same request ID was
164103// received, and if so, will ignore the second request. This prevents
164104// clients from accidentally creating duplicate commitments. The request
164105// ID must be a valid UUID with the exception that zero UUID is not
164106// supported ( 00000000-0000-0000-0000-000000000000).
164107func (c *UrlMapsInsertCall) RequestId(requestId string) *UrlMapsInsertCall {
164108	c.urlParams_.Set("requestId", requestId)
164109	return c
164110}
164111
164112// Fields allows partial responses to be retrieved. See
164113// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164114// for more information.
164115func (c *UrlMapsInsertCall) Fields(s ...googleapi.Field) *UrlMapsInsertCall {
164116	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164117	return c
164118}
164119
164120// Context sets the context to be used in this call's Do method. Any
164121// pending HTTP request will be aborted if the provided context is
164122// canceled.
164123func (c *UrlMapsInsertCall) Context(ctx context.Context) *UrlMapsInsertCall {
164124	c.ctx_ = ctx
164125	return c
164126}
164127
164128// Header returns an http.Header that can be modified by the caller to
164129// add HTTP headers to the request.
164130func (c *UrlMapsInsertCall) Header() http.Header {
164131	if c.header_ == nil {
164132		c.header_ = make(http.Header)
164133	}
164134	return c.header_
164135}
164136
164137func (c *UrlMapsInsertCall) doRequest(alt string) (*http.Response, error) {
164138	reqHeaders := make(http.Header)
164139	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
164140	for k, v := range c.header_ {
164141		reqHeaders[k] = v
164142	}
164143	reqHeaders.Set("User-Agent", c.s.userAgent())
164144	var body io.Reader = nil
164145	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
164146	if err != nil {
164147		return nil, err
164148	}
164149	reqHeaders.Set("Content-Type", "application/json")
164150	c.urlParams_.Set("alt", alt)
164151	c.urlParams_.Set("prettyPrint", "false")
164152	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps")
164153	urls += "?" + c.urlParams_.Encode()
164154	req, err := http.NewRequest("POST", urls, body)
164155	if err != nil {
164156		return nil, err
164157	}
164158	req.Header = reqHeaders
164159	googleapi.Expand(req.URL, map[string]string{
164160		"project": c.project,
164161	})
164162	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164163}
164164
164165// Do executes the "compute.urlMaps.insert" call.
164166// Exactly one of *Operation or error will be non-nil. Any non-2xx
164167// status code is an error. Response headers are in either
164168// *Operation.ServerResponse.Header or (if a response was returned at
164169// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
164170// to check whether the returned error was because
164171// http.StatusNotModified was returned.
164172func (c *UrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
164173	gensupport.SetOptions(c.urlParams_, opts...)
164174	res, err := c.doRequest("json")
164175	if res != nil && res.StatusCode == http.StatusNotModified {
164176		if res.Body != nil {
164177			res.Body.Close()
164178		}
164179		return nil, &googleapi.Error{
164180			Code:   res.StatusCode,
164181			Header: res.Header,
164182		}
164183	}
164184	if err != nil {
164185		return nil, err
164186	}
164187	defer googleapi.CloseBody(res)
164188	if err := googleapi.CheckResponse(res); err != nil {
164189		return nil, err
164190	}
164191	ret := &Operation{
164192		ServerResponse: googleapi.ServerResponse{
164193			Header:         res.Header,
164194			HTTPStatusCode: res.StatusCode,
164195		},
164196	}
164197	target := &ret
164198	if err := gensupport.DecodeResponse(target, res); err != nil {
164199		return nil, err
164200	}
164201	return ret, nil
164202	// {
164203	//   "description": "Creates a UrlMap resource in the specified project using the data included in the request.",
164204	//   "flatPath": "projects/{project}/global/urlMaps",
164205	//   "httpMethod": "POST",
164206	//   "id": "compute.urlMaps.insert",
164207	//   "parameterOrder": [
164208	//     "project"
164209	//   ],
164210	//   "parameters": {
164211	//     "project": {
164212	//       "description": "Project ID for this request.",
164213	//       "location": "path",
164214	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164215	//       "required": true,
164216	//       "type": "string"
164217	//     },
164218	//     "requestId": {
164219	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
164220	//       "location": "query",
164221	//       "type": "string"
164222	//     }
164223	//   },
164224	//   "path": "projects/{project}/global/urlMaps",
164225	//   "request": {
164226	//     "$ref": "UrlMap"
164227	//   },
164228	//   "response": {
164229	//     "$ref": "Operation"
164230	//   },
164231	//   "scopes": [
164232	//     "https://www.googleapis.com/auth/cloud-platform",
164233	//     "https://www.googleapis.com/auth/compute"
164234	//   ]
164235	// }
164236
164237}
164238
164239// method id "compute.urlMaps.invalidateCache":
164240
164241type UrlMapsInvalidateCacheCall struct {
164242	s                     *Service
164243	project               string
164244	urlMap                string
164245	cacheinvalidationrule *CacheInvalidationRule
164246	urlParams_            gensupport.URLParams
164247	ctx_                  context.Context
164248	header_               http.Header
164249}
164250
164251// InvalidateCache: Initiates a cache invalidation operation,
164252// invalidating the specified path, scoped to the specified UrlMap. For
164253// more information, see Invalidating cached content
164254// (/cdn/docs/invalidating-cached-content).
164255//
164256// - project: Project ID for this request.
164257// - urlMap: Name of the UrlMap scoping this request.
164258func (r *UrlMapsService) InvalidateCache(project string, urlMap string, cacheinvalidationrule *CacheInvalidationRule) *UrlMapsInvalidateCacheCall {
164259	c := &UrlMapsInvalidateCacheCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164260	c.project = project
164261	c.urlMap = urlMap
164262	c.cacheinvalidationrule = cacheinvalidationrule
164263	return c
164264}
164265
164266// RequestId sets the optional parameter "requestId": An optional
164267// request ID to identify requests. Specify a unique request ID so that
164268// if you must retry your request, the server will know to ignore the
164269// request if it has already been completed. For example, consider a
164270// situation where you make an initial request and the request times
164271// out. If you make the request again with the same request ID, the
164272// server can check if original operation with the same request ID was
164273// received, and if so, will ignore the second request. This prevents
164274// clients from accidentally creating duplicate commitments. The request
164275// ID must be a valid UUID with the exception that zero UUID is not
164276// supported ( 00000000-0000-0000-0000-000000000000).
164277func (c *UrlMapsInvalidateCacheCall) RequestId(requestId string) *UrlMapsInvalidateCacheCall {
164278	c.urlParams_.Set("requestId", requestId)
164279	return c
164280}
164281
164282// Fields allows partial responses to be retrieved. See
164283// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164284// for more information.
164285func (c *UrlMapsInvalidateCacheCall) Fields(s ...googleapi.Field) *UrlMapsInvalidateCacheCall {
164286	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164287	return c
164288}
164289
164290// Context sets the context to be used in this call's Do method. Any
164291// pending HTTP request will be aborted if the provided context is
164292// canceled.
164293func (c *UrlMapsInvalidateCacheCall) Context(ctx context.Context) *UrlMapsInvalidateCacheCall {
164294	c.ctx_ = ctx
164295	return c
164296}
164297
164298// Header returns an http.Header that can be modified by the caller to
164299// add HTTP headers to the request.
164300func (c *UrlMapsInvalidateCacheCall) Header() http.Header {
164301	if c.header_ == nil {
164302		c.header_ = make(http.Header)
164303	}
164304	return c.header_
164305}
164306
164307func (c *UrlMapsInvalidateCacheCall) doRequest(alt string) (*http.Response, error) {
164308	reqHeaders := make(http.Header)
164309	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
164310	for k, v := range c.header_ {
164311		reqHeaders[k] = v
164312	}
164313	reqHeaders.Set("User-Agent", c.s.userAgent())
164314	var body io.Reader = nil
164315	body, err := googleapi.WithoutDataWrapper.JSONReader(c.cacheinvalidationrule)
164316	if err != nil {
164317		return nil, err
164318	}
164319	reqHeaders.Set("Content-Type", "application/json")
164320	c.urlParams_.Set("alt", alt)
164321	c.urlParams_.Set("prettyPrint", "false")
164322	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}/invalidateCache")
164323	urls += "?" + c.urlParams_.Encode()
164324	req, err := http.NewRequest("POST", urls, body)
164325	if err != nil {
164326		return nil, err
164327	}
164328	req.Header = reqHeaders
164329	googleapi.Expand(req.URL, map[string]string{
164330		"project": c.project,
164331		"urlMap":  c.urlMap,
164332	})
164333	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164334}
164335
164336// Do executes the "compute.urlMaps.invalidateCache" call.
164337// Exactly one of *Operation or error will be non-nil. Any non-2xx
164338// status code is an error. Response headers are in either
164339// *Operation.ServerResponse.Header or (if a response was returned at
164340// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
164341// to check whether the returned error was because
164342// http.StatusNotModified was returned.
164343func (c *UrlMapsInvalidateCacheCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
164344	gensupport.SetOptions(c.urlParams_, opts...)
164345	res, err := c.doRequest("json")
164346	if res != nil && res.StatusCode == http.StatusNotModified {
164347		if res.Body != nil {
164348			res.Body.Close()
164349		}
164350		return nil, &googleapi.Error{
164351			Code:   res.StatusCode,
164352			Header: res.Header,
164353		}
164354	}
164355	if err != nil {
164356		return nil, err
164357	}
164358	defer googleapi.CloseBody(res)
164359	if err := googleapi.CheckResponse(res); err != nil {
164360		return nil, err
164361	}
164362	ret := &Operation{
164363		ServerResponse: googleapi.ServerResponse{
164364			Header:         res.Header,
164365			HTTPStatusCode: res.StatusCode,
164366		},
164367	}
164368	target := &ret
164369	if err := gensupport.DecodeResponse(target, res); err != nil {
164370		return nil, err
164371	}
164372	return ret, nil
164373	// {
164374	//   "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).",
164375	//   "flatPath": "projects/{project}/global/urlMaps/{urlMap}/invalidateCache",
164376	//   "httpMethod": "POST",
164377	//   "id": "compute.urlMaps.invalidateCache",
164378	//   "parameterOrder": [
164379	//     "project",
164380	//     "urlMap"
164381	//   ],
164382	//   "parameters": {
164383	//     "project": {
164384	//       "description": "Project ID for this request.",
164385	//       "location": "path",
164386	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164387	//       "required": true,
164388	//       "type": "string"
164389	//     },
164390	//     "requestId": {
164391	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
164392	//       "location": "query",
164393	//       "type": "string"
164394	//     },
164395	//     "urlMap": {
164396	//       "description": "Name of the UrlMap scoping this request.",
164397	//       "location": "path",
164398	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
164399	//       "required": true,
164400	//       "type": "string"
164401	//     }
164402	//   },
164403	//   "path": "projects/{project}/global/urlMaps/{urlMap}/invalidateCache",
164404	//   "request": {
164405	//     "$ref": "CacheInvalidationRule"
164406	//   },
164407	//   "response": {
164408	//     "$ref": "Operation"
164409	//   },
164410	//   "scopes": [
164411	//     "https://www.googleapis.com/auth/cloud-platform",
164412	//     "https://www.googleapis.com/auth/compute"
164413	//   ]
164414	// }
164415
164416}
164417
164418// method id "compute.urlMaps.list":
164419
164420type UrlMapsListCall struct {
164421	s            *Service
164422	project      string
164423	urlParams_   gensupport.URLParams
164424	ifNoneMatch_ string
164425	ctx_         context.Context
164426	header_      http.Header
164427}
164428
164429// List: Retrieves the list of UrlMap resources available to the
164430// specified project.
164431//
164432// - project: Project ID for this request.
164433func (r *UrlMapsService) List(project string) *UrlMapsListCall {
164434	c := &UrlMapsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164435	c.project = project
164436	return c
164437}
164438
164439// Filter sets the optional parameter "filter": A filter expression that
164440// filters resources listed in the response. The expression must specify
164441// the field name, a comparison operator, and the value that you want to
164442// use for filtering. The value must be a string, a number, or a
164443// boolean. The comparison operator must be either `=`, `!=`, `>`, or
164444// `<`. For example, if you are filtering Compute Engine instances, you
164445// can exclude instances named `example-instance` by specifying `name !=
164446// example-instance`. You can also filter nested fields. For example,
164447// you could specify `scheduling.automaticRestart = false` to include
164448// instances only if they are not scheduled for automatic restarts. You
164449// can use filtering on nested fields to filter based on resource
164450// labels. To filter on multiple expressions, provide each separate
164451// expression within parentheses. For example: ```
164452// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
164453// ``` By default, each expression is an `AND` expression. However, you
164454// can include `AND` and `OR` expressions explicitly. For example: ```
164455// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
164456// AND (scheduling.automaticRestart = true) ```
164457func (c *UrlMapsListCall) Filter(filter string) *UrlMapsListCall {
164458	c.urlParams_.Set("filter", filter)
164459	return c
164460}
164461
164462// MaxResults sets the optional parameter "maxResults": The maximum
164463// number of results per page that should be returned. If the number of
164464// available results is larger than `maxResults`, Compute Engine returns
164465// a `nextPageToken` that can be used to get the next page of results in
164466// subsequent list requests. Acceptable values are `0` to `500`,
164467// inclusive. (Default: `500`)
164468func (c *UrlMapsListCall) MaxResults(maxResults int64) *UrlMapsListCall {
164469	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
164470	return c
164471}
164472
164473// OrderBy sets the optional parameter "orderBy": Sorts list results by
164474// a certain order. By default, results are returned in alphanumerical
164475// order based on the resource name. You can also sort results in
164476// descending order based on the creation timestamp using
164477// `orderBy="creationTimestamp desc". This sorts results based on the
164478// `creationTimestamp` field in reverse chronological order (newest
164479// result first). Use this to sort resources like operations so that the
164480// newest operation is returned first. Currently, only sorting by `name`
164481// or `creationTimestamp desc` is supported.
164482func (c *UrlMapsListCall) OrderBy(orderBy string) *UrlMapsListCall {
164483	c.urlParams_.Set("orderBy", orderBy)
164484	return c
164485}
164486
164487// PageToken sets the optional parameter "pageToken": Specifies a page
164488// token to use. Set `pageToken` to the `nextPageToken` returned by a
164489// previous list request to get the next page of results.
164490func (c *UrlMapsListCall) PageToken(pageToken string) *UrlMapsListCall {
164491	c.urlParams_.Set("pageToken", pageToken)
164492	return c
164493}
164494
164495// ReturnPartialSuccess sets the optional parameter
164496// "returnPartialSuccess": Opt-in for partial success behavior which
164497// provides partial results in case of failure. The default value is
164498// false.
164499func (c *UrlMapsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *UrlMapsListCall {
164500	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
164501	return c
164502}
164503
164504// Fields allows partial responses to be retrieved. See
164505// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164506// for more information.
164507func (c *UrlMapsListCall) Fields(s ...googleapi.Field) *UrlMapsListCall {
164508	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164509	return c
164510}
164511
164512// IfNoneMatch sets the optional parameter which makes the operation
164513// fail if the object's ETag matches the given value. This is useful for
164514// getting updates only after the object has changed since the last
164515// request. Use googleapi.IsNotModified to check whether the response
164516// error from Do is the result of In-None-Match.
164517func (c *UrlMapsListCall) IfNoneMatch(entityTag string) *UrlMapsListCall {
164518	c.ifNoneMatch_ = entityTag
164519	return c
164520}
164521
164522// Context sets the context to be used in this call's Do method. Any
164523// pending HTTP request will be aborted if the provided context is
164524// canceled.
164525func (c *UrlMapsListCall) Context(ctx context.Context) *UrlMapsListCall {
164526	c.ctx_ = ctx
164527	return c
164528}
164529
164530// Header returns an http.Header that can be modified by the caller to
164531// add HTTP headers to the request.
164532func (c *UrlMapsListCall) Header() http.Header {
164533	if c.header_ == nil {
164534		c.header_ = make(http.Header)
164535	}
164536	return c.header_
164537}
164538
164539func (c *UrlMapsListCall) doRequest(alt string) (*http.Response, error) {
164540	reqHeaders := make(http.Header)
164541	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
164542	for k, v := range c.header_ {
164543		reqHeaders[k] = v
164544	}
164545	reqHeaders.Set("User-Agent", c.s.userAgent())
164546	if c.ifNoneMatch_ != "" {
164547		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
164548	}
164549	var body io.Reader = nil
164550	c.urlParams_.Set("alt", alt)
164551	c.urlParams_.Set("prettyPrint", "false")
164552	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps")
164553	urls += "?" + c.urlParams_.Encode()
164554	req, err := http.NewRequest("GET", urls, body)
164555	if err != nil {
164556		return nil, err
164557	}
164558	req.Header = reqHeaders
164559	googleapi.Expand(req.URL, map[string]string{
164560		"project": c.project,
164561	})
164562	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164563}
164564
164565// Do executes the "compute.urlMaps.list" call.
164566// Exactly one of *UrlMapList or error will be non-nil. Any non-2xx
164567// status code is an error. Response headers are in either
164568// *UrlMapList.ServerResponse.Header or (if a response was returned at
164569// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
164570// to check whether the returned error was because
164571// http.StatusNotModified was returned.
164572func (c *UrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, error) {
164573	gensupport.SetOptions(c.urlParams_, opts...)
164574	res, err := c.doRequest("json")
164575	if res != nil && res.StatusCode == http.StatusNotModified {
164576		if res.Body != nil {
164577			res.Body.Close()
164578		}
164579		return nil, &googleapi.Error{
164580			Code:   res.StatusCode,
164581			Header: res.Header,
164582		}
164583	}
164584	if err != nil {
164585		return nil, err
164586	}
164587	defer googleapi.CloseBody(res)
164588	if err := googleapi.CheckResponse(res); err != nil {
164589		return nil, err
164590	}
164591	ret := &UrlMapList{
164592		ServerResponse: googleapi.ServerResponse{
164593			Header:         res.Header,
164594			HTTPStatusCode: res.StatusCode,
164595		},
164596	}
164597	target := &ret
164598	if err := gensupport.DecodeResponse(target, res); err != nil {
164599		return nil, err
164600	}
164601	return ret, nil
164602	// {
164603	//   "description": "Retrieves the list of UrlMap resources available to the specified project.",
164604	//   "flatPath": "projects/{project}/global/urlMaps",
164605	//   "httpMethod": "GET",
164606	//   "id": "compute.urlMaps.list",
164607	//   "parameterOrder": [
164608	//     "project"
164609	//   ],
164610	//   "parameters": {
164611	//     "filter": {
164612	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
164613	//       "location": "query",
164614	//       "type": "string"
164615	//     },
164616	//     "maxResults": {
164617	//       "default": "500",
164618	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
164619	//       "format": "uint32",
164620	//       "location": "query",
164621	//       "minimum": "0",
164622	//       "type": "integer"
164623	//     },
164624	//     "orderBy": {
164625	//       "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.",
164626	//       "location": "query",
164627	//       "type": "string"
164628	//     },
164629	//     "pageToken": {
164630	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
164631	//       "location": "query",
164632	//       "type": "string"
164633	//     },
164634	//     "project": {
164635	//       "description": "Project ID for this request.",
164636	//       "location": "path",
164637	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164638	//       "required": true,
164639	//       "type": "string"
164640	//     },
164641	//     "returnPartialSuccess": {
164642	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
164643	//       "location": "query",
164644	//       "type": "boolean"
164645	//     }
164646	//   },
164647	//   "path": "projects/{project}/global/urlMaps",
164648	//   "response": {
164649	//     "$ref": "UrlMapList"
164650	//   },
164651	//   "scopes": [
164652	//     "https://www.googleapis.com/auth/cloud-platform",
164653	//     "https://www.googleapis.com/auth/compute",
164654	//     "https://www.googleapis.com/auth/compute.readonly"
164655	//   ]
164656	// }
164657
164658}
164659
164660// Pages invokes f for each page of results.
164661// A non-nil error returned from f will halt the iteration.
164662// The provided context supersedes any context provided to the Context method.
164663func (c *UrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) error {
164664	c.ctx_ = ctx
164665	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
164666	for {
164667		x, err := c.Do()
164668		if err != nil {
164669			return err
164670		}
164671		if err := f(x); err != nil {
164672			return err
164673		}
164674		if x.NextPageToken == "" {
164675			return nil
164676		}
164677		c.PageToken(x.NextPageToken)
164678	}
164679}
164680
164681// method id "compute.urlMaps.patch":
164682
164683type UrlMapsPatchCall struct {
164684	s          *Service
164685	project    string
164686	urlMap     string
164687	urlmap     *UrlMap
164688	urlParams_ gensupport.URLParams
164689	ctx_       context.Context
164690	header_    http.Header
164691}
164692
164693// Patch: Patches the specified UrlMap resource with the data included
164694// in the request. This method supports PATCH semantics and uses the
164695// JSON merge patch format and processing rules.
164696//
164697// - project: Project ID for this request.
164698// - urlMap: Name of the UrlMap resource to patch.
164699func (r *UrlMapsService) Patch(project string, urlMap string, urlmap *UrlMap) *UrlMapsPatchCall {
164700	c := &UrlMapsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164701	c.project = project
164702	c.urlMap = urlMap
164703	c.urlmap = urlmap
164704	return c
164705}
164706
164707// RequestId sets the optional parameter "requestId": An optional
164708// request ID to identify requests. Specify a unique request ID so that
164709// if you must retry your request, the server will know to ignore the
164710// request if it has already been completed. For example, consider a
164711// situation where you make an initial request and the request times
164712// out. If you make the request again with the same request ID, the
164713// server can check if original operation with the same request ID was
164714// received, and if so, will ignore the second request. This prevents
164715// clients from accidentally creating duplicate commitments. The request
164716// ID must be a valid UUID with the exception that zero UUID is not
164717// supported ( 00000000-0000-0000-0000-000000000000).
164718func (c *UrlMapsPatchCall) RequestId(requestId string) *UrlMapsPatchCall {
164719	c.urlParams_.Set("requestId", requestId)
164720	return c
164721}
164722
164723// Fields allows partial responses to be retrieved. See
164724// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164725// for more information.
164726func (c *UrlMapsPatchCall) Fields(s ...googleapi.Field) *UrlMapsPatchCall {
164727	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164728	return c
164729}
164730
164731// Context sets the context to be used in this call's Do method. Any
164732// pending HTTP request will be aborted if the provided context is
164733// canceled.
164734func (c *UrlMapsPatchCall) Context(ctx context.Context) *UrlMapsPatchCall {
164735	c.ctx_ = ctx
164736	return c
164737}
164738
164739// Header returns an http.Header that can be modified by the caller to
164740// add HTTP headers to the request.
164741func (c *UrlMapsPatchCall) Header() http.Header {
164742	if c.header_ == nil {
164743		c.header_ = make(http.Header)
164744	}
164745	return c.header_
164746}
164747
164748func (c *UrlMapsPatchCall) doRequest(alt string) (*http.Response, error) {
164749	reqHeaders := make(http.Header)
164750	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
164751	for k, v := range c.header_ {
164752		reqHeaders[k] = v
164753	}
164754	reqHeaders.Set("User-Agent", c.s.userAgent())
164755	var body io.Reader = nil
164756	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
164757	if err != nil {
164758		return nil, err
164759	}
164760	reqHeaders.Set("Content-Type", "application/json")
164761	c.urlParams_.Set("alt", alt)
164762	c.urlParams_.Set("prettyPrint", "false")
164763	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}")
164764	urls += "?" + c.urlParams_.Encode()
164765	req, err := http.NewRequest("PATCH", urls, body)
164766	if err != nil {
164767		return nil, err
164768	}
164769	req.Header = reqHeaders
164770	googleapi.Expand(req.URL, map[string]string{
164771		"project": c.project,
164772		"urlMap":  c.urlMap,
164773	})
164774	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164775}
164776
164777// Do executes the "compute.urlMaps.patch" call.
164778// Exactly one of *Operation or error will be non-nil. Any non-2xx
164779// status code is an error. Response headers are in either
164780// *Operation.ServerResponse.Header or (if a response was returned at
164781// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
164782// to check whether the returned error was because
164783// http.StatusNotModified was returned.
164784func (c *UrlMapsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
164785	gensupport.SetOptions(c.urlParams_, opts...)
164786	res, err := c.doRequest("json")
164787	if res != nil && res.StatusCode == http.StatusNotModified {
164788		if res.Body != nil {
164789			res.Body.Close()
164790		}
164791		return nil, &googleapi.Error{
164792			Code:   res.StatusCode,
164793			Header: res.Header,
164794		}
164795	}
164796	if err != nil {
164797		return nil, err
164798	}
164799	defer googleapi.CloseBody(res)
164800	if err := googleapi.CheckResponse(res); err != nil {
164801		return nil, err
164802	}
164803	ret := &Operation{
164804		ServerResponse: googleapi.ServerResponse{
164805			Header:         res.Header,
164806			HTTPStatusCode: res.StatusCode,
164807		},
164808	}
164809	target := &ret
164810	if err := gensupport.DecodeResponse(target, res); err != nil {
164811		return nil, err
164812	}
164813	return ret, nil
164814	// {
164815	//   "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.",
164816	//   "flatPath": "projects/{project}/global/urlMaps/{urlMap}",
164817	//   "httpMethod": "PATCH",
164818	//   "id": "compute.urlMaps.patch",
164819	//   "parameterOrder": [
164820	//     "project",
164821	//     "urlMap"
164822	//   ],
164823	//   "parameters": {
164824	//     "project": {
164825	//       "description": "Project ID for this request.",
164826	//       "location": "path",
164827	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
164828	//       "required": true,
164829	//       "type": "string"
164830	//     },
164831	//     "requestId": {
164832	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
164833	//       "location": "query",
164834	//       "type": "string"
164835	//     },
164836	//     "urlMap": {
164837	//       "description": "Name of the UrlMap resource to patch.",
164838	//       "location": "path",
164839	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
164840	//       "required": true,
164841	//       "type": "string"
164842	//     }
164843	//   },
164844	//   "path": "projects/{project}/global/urlMaps/{urlMap}",
164845	//   "request": {
164846	//     "$ref": "UrlMap"
164847	//   },
164848	//   "response": {
164849	//     "$ref": "Operation"
164850	//   },
164851	//   "scopes": [
164852	//     "https://www.googleapis.com/auth/cloud-platform",
164853	//     "https://www.googleapis.com/auth/compute"
164854	//   ]
164855	// }
164856
164857}
164858
164859// method id "compute.urlMaps.update":
164860
164861type UrlMapsUpdateCall struct {
164862	s          *Service
164863	project    string
164864	urlMap     string
164865	urlmap     *UrlMap
164866	urlParams_ gensupport.URLParams
164867	ctx_       context.Context
164868	header_    http.Header
164869}
164870
164871// Update: Updates the specified UrlMap resource with the data included
164872// in the request.
164873//
164874// - project: Project ID for this request.
164875// - urlMap: Name of the UrlMap resource to update.
164876func (r *UrlMapsService) Update(project string, urlMap string, urlmap *UrlMap) *UrlMapsUpdateCall {
164877	c := &UrlMapsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
164878	c.project = project
164879	c.urlMap = urlMap
164880	c.urlmap = urlmap
164881	return c
164882}
164883
164884// RequestId sets the optional parameter "requestId": An optional
164885// request ID to identify requests. Specify a unique request ID so that
164886// if you must retry your request, the server will know to ignore the
164887// request if it has already been completed. For example, consider a
164888// situation where you make an initial request and the request times
164889// out. If you make the request again with the same request ID, the
164890// server can check if original operation with the same request ID was
164891// received, and if so, will ignore the second request. This prevents
164892// clients from accidentally creating duplicate commitments. The request
164893// ID must be a valid UUID with the exception that zero UUID is not
164894// supported ( 00000000-0000-0000-0000-000000000000).
164895func (c *UrlMapsUpdateCall) RequestId(requestId string) *UrlMapsUpdateCall {
164896	c.urlParams_.Set("requestId", requestId)
164897	return c
164898}
164899
164900// Fields allows partial responses to be retrieved. See
164901// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
164902// for more information.
164903func (c *UrlMapsUpdateCall) Fields(s ...googleapi.Field) *UrlMapsUpdateCall {
164904	c.urlParams_.Set("fields", googleapi.CombineFields(s))
164905	return c
164906}
164907
164908// Context sets the context to be used in this call's Do method. Any
164909// pending HTTP request will be aborted if the provided context is
164910// canceled.
164911func (c *UrlMapsUpdateCall) Context(ctx context.Context) *UrlMapsUpdateCall {
164912	c.ctx_ = ctx
164913	return c
164914}
164915
164916// Header returns an http.Header that can be modified by the caller to
164917// add HTTP headers to the request.
164918func (c *UrlMapsUpdateCall) Header() http.Header {
164919	if c.header_ == nil {
164920		c.header_ = make(http.Header)
164921	}
164922	return c.header_
164923}
164924
164925func (c *UrlMapsUpdateCall) doRequest(alt string) (*http.Response, error) {
164926	reqHeaders := make(http.Header)
164927	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
164928	for k, v := range c.header_ {
164929		reqHeaders[k] = v
164930	}
164931	reqHeaders.Set("User-Agent", c.s.userAgent())
164932	var body io.Reader = nil
164933	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
164934	if err != nil {
164935		return nil, err
164936	}
164937	reqHeaders.Set("Content-Type", "application/json")
164938	c.urlParams_.Set("alt", alt)
164939	c.urlParams_.Set("prettyPrint", "false")
164940	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}")
164941	urls += "?" + c.urlParams_.Encode()
164942	req, err := http.NewRequest("PUT", urls, body)
164943	if err != nil {
164944		return nil, err
164945	}
164946	req.Header = reqHeaders
164947	googleapi.Expand(req.URL, map[string]string{
164948		"project": c.project,
164949		"urlMap":  c.urlMap,
164950	})
164951	return gensupport.SendRequest(c.ctx_, c.s.client, req)
164952}
164953
164954// Do executes the "compute.urlMaps.update" call.
164955// Exactly one of *Operation or error will be non-nil. Any non-2xx
164956// status code is an error. Response headers are in either
164957// *Operation.ServerResponse.Header or (if a response was returned at
164958// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
164959// to check whether the returned error was because
164960// http.StatusNotModified was returned.
164961func (c *UrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
164962	gensupport.SetOptions(c.urlParams_, opts...)
164963	res, err := c.doRequest("json")
164964	if res != nil && res.StatusCode == http.StatusNotModified {
164965		if res.Body != nil {
164966			res.Body.Close()
164967		}
164968		return nil, &googleapi.Error{
164969			Code:   res.StatusCode,
164970			Header: res.Header,
164971		}
164972	}
164973	if err != nil {
164974		return nil, err
164975	}
164976	defer googleapi.CloseBody(res)
164977	if err := googleapi.CheckResponse(res); err != nil {
164978		return nil, err
164979	}
164980	ret := &Operation{
164981		ServerResponse: googleapi.ServerResponse{
164982			Header:         res.Header,
164983			HTTPStatusCode: res.StatusCode,
164984		},
164985	}
164986	target := &ret
164987	if err := gensupport.DecodeResponse(target, res); err != nil {
164988		return nil, err
164989	}
164990	return ret, nil
164991	// {
164992	//   "description": "Updates the specified UrlMap resource with the data included in the request.",
164993	//   "flatPath": "projects/{project}/global/urlMaps/{urlMap}",
164994	//   "httpMethod": "PUT",
164995	//   "id": "compute.urlMaps.update",
164996	//   "parameterOrder": [
164997	//     "project",
164998	//     "urlMap"
164999	//   ],
165000	//   "parameters": {
165001	//     "project": {
165002	//       "description": "Project ID for this request.",
165003	//       "location": "path",
165004	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165005	//       "required": true,
165006	//       "type": "string"
165007	//     },
165008	//     "requestId": {
165009	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
165010	//       "location": "query",
165011	//       "type": "string"
165012	//     },
165013	//     "urlMap": {
165014	//       "description": "Name of the UrlMap resource to update.",
165015	//       "location": "path",
165016	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
165017	//       "required": true,
165018	//       "type": "string"
165019	//     }
165020	//   },
165021	//   "path": "projects/{project}/global/urlMaps/{urlMap}",
165022	//   "request": {
165023	//     "$ref": "UrlMap"
165024	//   },
165025	//   "response": {
165026	//     "$ref": "Operation"
165027	//   },
165028	//   "scopes": [
165029	//     "https://www.googleapis.com/auth/cloud-platform",
165030	//     "https://www.googleapis.com/auth/compute"
165031	//   ]
165032	// }
165033
165034}
165035
165036// method id "compute.urlMaps.validate":
165037
165038type UrlMapsValidateCall struct {
165039	s                      *Service
165040	project                string
165041	urlMap                 string
165042	urlmapsvalidaterequest *UrlMapsValidateRequest
165043	urlParams_             gensupport.URLParams
165044	ctx_                   context.Context
165045	header_                http.Header
165046}
165047
165048// Validate: Runs static validation for the UrlMap. In particular, the
165049// tests of the provided UrlMap will be run. Calling this method does
165050// NOT create the UrlMap.
165051//
165052// - project: Project ID for this request.
165053// - urlMap: Name of the UrlMap resource to be validated as.
165054func (r *UrlMapsService) Validate(project string, urlMap string, urlmapsvalidaterequest *UrlMapsValidateRequest) *UrlMapsValidateCall {
165055	c := &UrlMapsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165056	c.project = project
165057	c.urlMap = urlMap
165058	c.urlmapsvalidaterequest = urlmapsvalidaterequest
165059	return c
165060}
165061
165062// Fields allows partial responses to be retrieved. See
165063// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165064// for more information.
165065func (c *UrlMapsValidateCall) Fields(s ...googleapi.Field) *UrlMapsValidateCall {
165066	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165067	return c
165068}
165069
165070// Context sets the context to be used in this call's Do method. Any
165071// pending HTTP request will be aborted if the provided context is
165072// canceled.
165073func (c *UrlMapsValidateCall) Context(ctx context.Context) *UrlMapsValidateCall {
165074	c.ctx_ = ctx
165075	return c
165076}
165077
165078// Header returns an http.Header that can be modified by the caller to
165079// add HTTP headers to the request.
165080func (c *UrlMapsValidateCall) Header() http.Header {
165081	if c.header_ == nil {
165082		c.header_ = make(http.Header)
165083	}
165084	return c.header_
165085}
165086
165087func (c *UrlMapsValidateCall) doRequest(alt string) (*http.Response, error) {
165088	reqHeaders := make(http.Header)
165089	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
165090	for k, v := range c.header_ {
165091		reqHeaders[k] = v
165092	}
165093	reqHeaders.Set("User-Agent", c.s.userAgent())
165094	var body io.Reader = nil
165095	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapsvalidaterequest)
165096	if err != nil {
165097		return nil, err
165098	}
165099	reqHeaders.Set("Content-Type", "application/json")
165100	c.urlParams_.Set("alt", alt)
165101	c.urlParams_.Set("prettyPrint", "false")
165102	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}/validate")
165103	urls += "?" + c.urlParams_.Encode()
165104	req, err := http.NewRequest("POST", urls, body)
165105	if err != nil {
165106		return nil, err
165107	}
165108	req.Header = reqHeaders
165109	googleapi.Expand(req.URL, map[string]string{
165110		"project": c.project,
165111		"urlMap":  c.urlMap,
165112	})
165113	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165114}
165115
165116// Do executes the "compute.urlMaps.validate" call.
165117// Exactly one of *UrlMapsValidateResponse or error will be non-nil. Any
165118// non-2xx status code is an error. Response headers are in either
165119// *UrlMapsValidateResponse.ServerResponse.Header or (if a response was
165120// returned at all) in error.(*googleapi.Error).Header. Use
165121// googleapi.IsNotModified to check whether the returned error was
165122// because http.StatusNotModified was returned.
165123func (c *UrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidateResponse, error) {
165124	gensupport.SetOptions(c.urlParams_, opts...)
165125	res, err := c.doRequest("json")
165126	if res != nil && res.StatusCode == http.StatusNotModified {
165127		if res.Body != nil {
165128			res.Body.Close()
165129		}
165130		return nil, &googleapi.Error{
165131			Code:   res.StatusCode,
165132			Header: res.Header,
165133		}
165134	}
165135	if err != nil {
165136		return nil, err
165137	}
165138	defer googleapi.CloseBody(res)
165139	if err := googleapi.CheckResponse(res); err != nil {
165140		return nil, err
165141	}
165142	ret := &UrlMapsValidateResponse{
165143		ServerResponse: googleapi.ServerResponse{
165144			Header:         res.Header,
165145			HTTPStatusCode: res.StatusCode,
165146		},
165147	}
165148	target := &ret
165149	if err := gensupport.DecodeResponse(target, res); err != nil {
165150		return nil, err
165151	}
165152	return ret, nil
165153	// {
165154	//   "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.",
165155	//   "flatPath": "projects/{project}/global/urlMaps/{urlMap}/validate",
165156	//   "httpMethod": "POST",
165157	//   "id": "compute.urlMaps.validate",
165158	//   "parameterOrder": [
165159	//     "project",
165160	//     "urlMap"
165161	//   ],
165162	//   "parameters": {
165163	//     "project": {
165164	//       "description": "Project ID for this request.",
165165	//       "location": "path",
165166	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165167	//       "required": true,
165168	//       "type": "string"
165169	//     },
165170	//     "urlMap": {
165171	//       "description": "Name of the UrlMap resource to be validated as.",
165172	//       "location": "path",
165173	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
165174	//       "required": true,
165175	//       "type": "string"
165176	//     }
165177	//   },
165178	//   "path": "projects/{project}/global/urlMaps/{urlMap}/validate",
165179	//   "request": {
165180	//     "$ref": "UrlMapsValidateRequest"
165181	//   },
165182	//   "response": {
165183	//     "$ref": "UrlMapsValidateResponse"
165184	//   },
165185	//   "scopes": [
165186	//     "https://www.googleapis.com/auth/cloud-platform",
165187	//     "https://www.googleapis.com/auth/compute"
165188	//   ]
165189	// }
165190
165191}
165192
165193// method id "compute.vpnGateways.aggregatedList":
165194
165195type VpnGatewaysAggregatedListCall struct {
165196	s            *Service
165197	project      string
165198	urlParams_   gensupport.URLParams
165199	ifNoneMatch_ string
165200	ctx_         context.Context
165201	header_      http.Header
165202}
165203
165204// AggregatedList: Retrieves an aggregated list of VPN gateways.
165205//
165206// - project: Project ID for this request.
165207func (r *VpnGatewaysService) AggregatedList(project string) *VpnGatewaysAggregatedListCall {
165208	c := &VpnGatewaysAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165209	c.project = project
165210	return c
165211}
165212
165213// Filter sets the optional parameter "filter": A filter expression that
165214// filters resources listed in the response. The expression must specify
165215// the field name, a comparison operator, and the value that you want to
165216// use for filtering. The value must be a string, a number, or a
165217// boolean. The comparison operator must be either `=`, `!=`, `>`, or
165218// `<`. For example, if you are filtering Compute Engine instances, you
165219// can exclude instances named `example-instance` by specifying `name !=
165220// example-instance`. You can also filter nested fields. For example,
165221// you could specify `scheduling.automaticRestart = false` to include
165222// instances only if they are not scheduled for automatic restarts. You
165223// can use filtering on nested fields to filter based on resource
165224// labels. To filter on multiple expressions, provide each separate
165225// expression within parentheses. For example: ```
165226// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
165227// ``` By default, each expression is an `AND` expression. However, you
165228// can include `AND` and `OR` expressions explicitly. For example: ```
165229// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
165230// AND (scheduling.automaticRestart = true) ```
165231func (c *VpnGatewaysAggregatedListCall) Filter(filter string) *VpnGatewaysAggregatedListCall {
165232	c.urlParams_.Set("filter", filter)
165233	return c
165234}
165235
165236// IncludeAllScopes sets the optional parameter "includeAllScopes":
165237// Indicates whether every visible scope for each scope type (zone,
165238// region, global) should be included in the response. For new resource
165239// types added after this field, the flag has no effect as new resource
165240// types will always include every visible scope for each scope type in
165241// response. For resource types which predate this field, if this flag
165242// is omitted or false, only scopes of the scope types where the
165243// resource type is expected to be found will be included.
165244func (c *VpnGatewaysAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *VpnGatewaysAggregatedListCall {
165245	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
165246	return c
165247}
165248
165249// MaxResults sets the optional parameter "maxResults": The maximum
165250// number of results per page that should be returned. If the number of
165251// available results is larger than `maxResults`, Compute Engine returns
165252// a `nextPageToken` that can be used to get the next page of results in
165253// subsequent list requests. Acceptable values are `0` to `500`,
165254// inclusive. (Default: `500`)
165255func (c *VpnGatewaysAggregatedListCall) MaxResults(maxResults int64) *VpnGatewaysAggregatedListCall {
165256	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
165257	return c
165258}
165259
165260// OrderBy sets the optional parameter "orderBy": Sorts list results by
165261// a certain order. By default, results are returned in alphanumerical
165262// order based on the resource name. You can also sort results in
165263// descending order based on the creation timestamp using
165264// `orderBy="creationTimestamp desc". This sorts results based on the
165265// `creationTimestamp` field in reverse chronological order (newest
165266// result first). Use this to sort resources like operations so that the
165267// newest operation is returned first. Currently, only sorting by `name`
165268// or `creationTimestamp desc` is supported.
165269func (c *VpnGatewaysAggregatedListCall) OrderBy(orderBy string) *VpnGatewaysAggregatedListCall {
165270	c.urlParams_.Set("orderBy", orderBy)
165271	return c
165272}
165273
165274// PageToken sets the optional parameter "pageToken": Specifies a page
165275// token to use. Set `pageToken` to the `nextPageToken` returned by a
165276// previous list request to get the next page of results.
165277func (c *VpnGatewaysAggregatedListCall) PageToken(pageToken string) *VpnGatewaysAggregatedListCall {
165278	c.urlParams_.Set("pageToken", pageToken)
165279	return c
165280}
165281
165282// ReturnPartialSuccess sets the optional parameter
165283// "returnPartialSuccess": Opt-in for partial success behavior which
165284// provides partial results in case of failure. The default value is
165285// false.
165286func (c *VpnGatewaysAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnGatewaysAggregatedListCall {
165287	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
165288	return c
165289}
165290
165291// Fields allows partial responses to be retrieved. See
165292// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165293// for more information.
165294func (c *VpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *VpnGatewaysAggregatedListCall {
165295	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165296	return c
165297}
165298
165299// IfNoneMatch sets the optional parameter which makes the operation
165300// fail if the object's ETag matches the given value. This is useful for
165301// getting updates only after the object has changed since the last
165302// request. Use googleapi.IsNotModified to check whether the response
165303// error from Do is the result of In-None-Match.
165304func (c *VpnGatewaysAggregatedListCall) IfNoneMatch(entityTag string) *VpnGatewaysAggregatedListCall {
165305	c.ifNoneMatch_ = entityTag
165306	return c
165307}
165308
165309// Context sets the context to be used in this call's Do method. Any
165310// pending HTTP request will be aborted if the provided context is
165311// canceled.
165312func (c *VpnGatewaysAggregatedListCall) Context(ctx context.Context) *VpnGatewaysAggregatedListCall {
165313	c.ctx_ = ctx
165314	return c
165315}
165316
165317// Header returns an http.Header that can be modified by the caller to
165318// add HTTP headers to the request.
165319func (c *VpnGatewaysAggregatedListCall) Header() http.Header {
165320	if c.header_ == nil {
165321		c.header_ = make(http.Header)
165322	}
165323	return c.header_
165324}
165325
165326func (c *VpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, error) {
165327	reqHeaders := make(http.Header)
165328	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
165329	for k, v := range c.header_ {
165330		reqHeaders[k] = v
165331	}
165332	reqHeaders.Set("User-Agent", c.s.userAgent())
165333	if c.ifNoneMatch_ != "" {
165334		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
165335	}
165336	var body io.Reader = nil
165337	c.urlParams_.Set("alt", alt)
165338	c.urlParams_.Set("prettyPrint", "false")
165339	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/vpnGateways")
165340	urls += "?" + c.urlParams_.Encode()
165341	req, err := http.NewRequest("GET", urls, body)
165342	if err != nil {
165343		return nil, err
165344	}
165345	req.Header = reqHeaders
165346	googleapi.Expand(req.URL, map[string]string{
165347		"project": c.project,
165348	})
165349	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165350}
165351
165352// Do executes the "compute.vpnGateways.aggregatedList" call.
165353// Exactly one of *VpnGatewayAggregatedList or error will be non-nil.
165354// Any non-2xx status code is an error. Response headers are in either
165355// *VpnGatewayAggregatedList.ServerResponse.Header or (if a response was
165356// returned at all) in error.(*googleapi.Error).Header. Use
165357// googleapi.IsNotModified to check whether the returned error was
165358// because http.StatusNotModified was returned.
165359func (c *VpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnGatewayAggregatedList, error) {
165360	gensupport.SetOptions(c.urlParams_, opts...)
165361	res, err := c.doRequest("json")
165362	if res != nil && res.StatusCode == http.StatusNotModified {
165363		if res.Body != nil {
165364			res.Body.Close()
165365		}
165366		return nil, &googleapi.Error{
165367			Code:   res.StatusCode,
165368			Header: res.Header,
165369		}
165370	}
165371	if err != nil {
165372		return nil, err
165373	}
165374	defer googleapi.CloseBody(res)
165375	if err := googleapi.CheckResponse(res); err != nil {
165376		return nil, err
165377	}
165378	ret := &VpnGatewayAggregatedList{
165379		ServerResponse: googleapi.ServerResponse{
165380			Header:         res.Header,
165381			HTTPStatusCode: res.StatusCode,
165382		},
165383	}
165384	target := &ret
165385	if err := gensupport.DecodeResponse(target, res); err != nil {
165386		return nil, err
165387	}
165388	return ret, nil
165389	// {
165390	//   "description": "Retrieves an aggregated list of VPN gateways.",
165391	//   "flatPath": "projects/{project}/aggregated/vpnGateways",
165392	//   "httpMethod": "GET",
165393	//   "id": "compute.vpnGateways.aggregatedList",
165394	//   "parameterOrder": [
165395	//     "project"
165396	//   ],
165397	//   "parameters": {
165398	//     "filter": {
165399	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
165400	//       "location": "query",
165401	//       "type": "string"
165402	//     },
165403	//     "includeAllScopes": {
165404	//       "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.",
165405	//       "location": "query",
165406	//       "type": "boolean"
165407	//     },
165408	//     "maxResults": {
165409	//       "default": "500",
165410	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
165411	//       "format": "uint32",
165412	//       "location": "query",
165413	//       "minimum": "0",
165414	//       "type": "integer"
165415	//     },
165416	//     "orderBy": {
165417	//       "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.",
165418	//       "location": "query",
165419	//       "type": "string"
165420	//     },
165421	//     "pageToken": {
165422	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
165423	//       "location": "query",
165424	//       "type": "string"
165425	//     },
165426	//     "project": {
165427	//       "description": "Project ID for this request.",
165428	//       "location": "path",
165429	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165430	//       "required": true,
165431	//       "type": "string"
165432	//     },
165433	//     "returnPartialSuccess": {
165434	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
165435	//       "location": "query",
165436	//       "type": "boolean"
165437	//     }
165438	//   },
165439	//   "path": "projects/{project}/aggregated/vpnGateways",
165440	//   "response": {
165441	//     "$ref": "VpnGatewayAggregatedList"
165442	//   },
165443	//   "scopes": [
165444	//     "https://www.googleapis.com/auth/cloud-platform",
165445	//     "https://www.googleapis.com/auth/compute",
165446	//     "https://www.googleapis.com/auth/compute.readonly"
165447	//   ]
165448	// }
165449
165450}
165451
165452// Pages invokes f for each page of results.
165453// A non-nil error returned from f will halt the iteration.
165454// The provided context supersedes any context provided to the Context method.
165455func (c *VpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*VpnGatewayAggregatedList) error) error {
165456	c.ctx_ = ctx
165457	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
165458	for {
165459		x, err := c.Do()
165460		if err != nil {
165461			return err
165462		}
165463		if err := f(x); err != nil {
165464			return err
165465		}
165466		if x.NextPageToken == "" {
165467			return nil
165468		}
165469		c.PageToken(x.NextPageToken)
165470	}
165471}
165472
165473// method id "compute.vpnGateways.delete":
165474
165475type VpnGatewaysDeleteCall struct {
165476	s          *Service
165477	project    string
165478	region     string
165479	vpnGateway string
165480	urlParams_ gensupport.URLParams
165481	ctx_       context.Context
165482	header_    http.Header
165483}
165484
165485// Delete: Deletes the specified VPN gateway.
165486//
165487// - project: Project ID for this request.
165488// - region: Name of the region for this request.
165489// - vpnGateway: Name of the VPN gateway to delete.
165490func (r *VpnGatewaysService) Delete(project string, region string, vpnGateway string) *VpnGatewaysDeleteCall {
165491	c := &VpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165492	c.project = project
165493	c.region = region
165494	c.vpnGateway = vpnGateway
165495	return c
165496}
165497
165498// RequestId sets the optional parameter "requestId": An optional
165499// request ID to identify requests. Specify a unique request ID so that
165500// if you must retry your request, the server will know to ignore the
165501// request if it has already been completed. For example, consider a
165502// situation where you make an initial request and the request times
165503// out. If you make the request again with the same request ID, the
165504// server can check if original operation with the same request ID was
165505// received, and if so, will ignore the second request. This prevents
165506// clients from accidentally creating duplicate commitments. The request
165507// ID must be a valid UUID with the exception that zero UUID is not
165508// supported ( 00000000-0000-0000-0000-000000000000).
165509func (c *VpnGatewaysDeleteCall) RequestId(requestId string) *VpnGatewaysDeleteCall {
165510	c.urlParams_.Set("requestId", requestId)
165511	return c
165512}
165513
165514// Fields allows partial responses to be retrieved. See
165515// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165516// for more information.
165517func (c *VpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *VpnGatewaysDeleteCall {
165518	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165519	return c
165520}
165521
165522// Context sets the context to be used in this call's Do method. Any
165523// pending HTTP request will be aborted if the provided context is
165524// canceled.
165525func (c *VpnGatewaysDeleteCall) Context(ctx context.Context) *VpnGatewaysDeleteCall {
165526	c.ctx_ = ctx
165527	return c
165528}
165529
165530// Header returns an http.Header that can be modified by the caller to
165531// add HTTP headers to the request.
165532func (c *VpnGatewaysDeleteCall) Header() http.Header {
165533	if c.header_ == nil {
165534		c.header_ = make(http.Header)
165535	}
165536	return c.header_
165537}
165538
165539func (c *VpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
165540	reqHeaders := make(http.Header)
165541	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
165542	for k, v := range c.header_ {
165543		reqHeaders[k] = v
165544	}
165545	reqHeaders.Set("User-Agent", c.s.userAgent())
165546	var body io.Reader = nil
165547	c.urlParams_.Set("alt", alt)
165548	c.urlParams_.Set("prettyPrint", "false")
165549	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}")
165550	urls += "?" + c.urlParams_.Encode()
165551	req, err := http.NewRequest("DELETE", urls, body)
165552	if err != nil {
165553		return nil, err
165554	}
165555	req.Header = reqHeaders
165556	googleapi.Expand(req.URL, map[string]string{
165557		"project":    c.project,
165558		"region":     c.region,
165559		"vpnGateway": c.vpnGateway,
165560	})
165561	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165562}
165563
165564// Do executes the "compute.vpnGateways.delete" call.
165565// Exactly one of *Operation or error will be non-nil. Any non-2xx
165566// status code is an error. Response headers are in either
165567// *Operation.ServerResponse.Header or (if a response was returned at
165568// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
165569// to check whether the returned error was because
165570// http.StatusNotModified was returned.
165571func (c *VpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
165572	gensupport.SetOptions(c.urlParams_, opts...)
165573	res, err := c.doRequest("json")
165574	if res != nil && res.StatusCode == http.StatusNotModified {
165575		if res.Body != nil {
165576			res.Body.Close()
165577		}
165578		return nil, &googleapi.Error{
165579			Code:   res.StatusCode,
165580			Header: res.Header,
165581		}
165582	}
165583	if err != nil {
165584		return nil, err
165585	}
165586	defer googleapi.CloseBody(res)
165587	if err := googleapi.CheckResponse(res); err != nil {
165588		return nil, err
165589	}
165590	ret := &Operation{
165591		ServerResponse: googleapi.ServerResponse{
165592			Header:         res.Header,
165593			HTTPStatusCode: res.StatusCode,
165594		},
165595	}
165596	target := &ret
165597	if err := gensupport.DecodeResponse(target, res); err != nil {
165598		return nil, err
165599	}
165600	return ret, nil
165601	// {
165602	//   "description": "Deletes the specified VPN gateway.",
165603	//   "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}",
165604	//   "httpMethod": "DELETE",
165605	//   "id": "compute.vpnGateways.delete",
165606	//   "parameterOrder": [
165607	//     "project",
165608	//     "region",
165609	//     "vpnGateway"
165610	//   ],
165611	//   "parameters": {
165612	//     "project": {
165613	//       "description": "Project ID for this request.",
165614	//       "location": "path",
165615	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165616	//       "required": true,
165617	//       "type": "string"
165618	//     },
165619	//     "region": {
165620	//       "description": "Name of the region for this request.",
165621	//       "location": "path",
165622	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
165623	//       "required": true,
165624	//       "type": "string"
165625	//     },
165626	//     "requestId": {
165627	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
165628	//       "location": "query",
165629	//       "type": "string"
165630	//     },
165631	//     "vpnGateway": {
165632	//       "description": "Name of the VPN gateway to delete.",
165633	//       "location": "path",
165634	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
165635	//       "required": true,
165636	//       "type": "string"
165637	//     }
165638	//   },
165639	//   "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}",
165640	//   "response": {
165641	//     "$ref": "Operation"
165642	//   },
165643	//   "scopes": [
165644	//     "https://www.googleapis.com/auth/cloud-platform",
165645	//     "https://www.googleapis.com/auth/compute"
165646	//   ]
165647	// }
165648
165649}
165650
165651// method id "compute.vpnGateways.get":
165652
165653type VpnGatewaysGetCall struct {
165654	s            *Service
165655	project      string
165656	region       string
165657	vpnGateway   string
165658	urlParams_   gensupport.URLParams
165659	ifNoneMatch_ string
165660	ctx_         context.Context
165661	header_      http.Header
165662}
165663
165664// Get: Returns the specified VPN gateway. Gets a list of available VPN
165665// gateways by making a list() request.
165666//
165667// - project: Project ID for this request.
165668// - region: Name of the region for this request.
165669// - vpnGateway: Name of the VPN gateway to return.
165670func (r *VpnGatewaysService) Get(project string, region string, vpnGateway string) *VpnGatewaysGetCall {
165671	c := &VpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165672	c.project = project
165673	c.region = region
165674	c.vpnGateway = vpnGateway
165675	return c
165676}
165677
165678// Fields allows partial responses to be retrieved. See
165679// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165680// for more information.
165681func (c *VpnGatewaysGetCall) Fields(s ...googleapi.Field) *VpnGatewaysGetCall {
165682	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165683	return c
165684}
165685
165686// IfNoneMatch sets the optional parameter which makes the operation
165687// fail if the object's ETag matches the given value. This is useful for
165688// getting updates only after the object has changed since the last
165689// request. Use googleapi.IsNotModified to check whether the response
165690// error from Do is the result of In-None-Match.
165691func (c *VpnGatewaysGetCall) IfNoneMatch(entityTag string) *VpnGatewaysGetCall {
165692	c.ifNoneMatch_ = entityTag
165693	return c
165694}
165695
165696// Context sets the context to be used in this call's Do method. Any
165697// pending HTTP request will be aborted if the provided context is
165698// canceled.
165699func (c *VpnGatewaysGetCall) Context(ctx context.Context) *VpnGatewaysGetCall {
165700	c.ctx_ = ctx
165701	return c
165702}
165703
165704// Header returns an http.Header that can be modified by the caller to
165705// add HTTP headers to the request.
165706func (c *VpnGatewaysGetCall) Header() http.Header {
165707	if c.header_ == nil {
165708		c.header_ = make(http.Header)
165709	}
165710	return c.header_
165711}
165712
165713func (c *VpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
165714	reqHeaders := make(http.Header)
165715	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
165716	for k, v := range c.header_ {
165717		reqHeaders[k] = v
165718	}
165719	reqHeaders.Set("User-Agent", c.s.userAgent())
165720	if c.ifNoneMatch_ != "" {
165721		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
165722	}
165723	var body io.Reader = nil
165724	c.urlParams_.Set("alt", alt)
165725	c.urlParams_.Set("prettyPrint", "false")
165726	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}")
165727	urls += "?" + c.urlParams_.Encode()
165728	req, err := http.NewRequest("GET", urls, body)
165729	if err != nil {
165730		return nil, err
165731	}
165732	req.Header = reqHeaders
165733	googleapi.Expand(req.URL, map[string]string{
165734		"project":    c.project,
165735		"region":     c.region,
165736		"vpnGateway": c.vpnGateway,
165737	})
165738	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165739}
165740
165741// Do executes the "compute.vpnGateways.get" call.
165742// Exactly one of *VpnGateway or error will be non-nil. Any non-2xx
165743// status code is an error. Response headers are in either
165744// *VpnGateway.ServerResponse.Header or (if a response was returned at
165745// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
165746// to check whether the returned error was because
165747// http.StatusNotModified was returned.
165748func (c *VpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*VpnGateway, error) {
165749	gensupport.SetOptions(c.urlParams_, opts...)
165750	res, err := c.doRequest("json")
165751	if res != nil && res.StatusCode == http.StatusNotModified {
165752		if res.Body != nil {
165753			res.Body.Close()
165754		}
165755		return nil, &googleapi.Error{
165756			Code:   res.StatusCode,
165757			Header: res.Header,
165758		}
165759	}
165760	if err != nil {
165761		return nil, err
165762	}
165763	defer googleapi.CloseBody(res)
165764	if err := googleapi.CheckResponse(res); err != nil {
165765		return nil, err
165766	}
165767	ret := &VpnGateway{
165768		ServerResponse: googleapi.ServerResponse{
165769			Header:         res.Header,
165770			HTTPStatusCode: res.StatusCode,
165771		},
165772	}
165773	target := &ret
165774	if err := gensupport.DecodeResponse(target, res); err != nil {
165775		return nil, err
165776	}
165777	return ret, nil
165778	// {
165779	//   "description": "Returns the specified VPN gateway. Gets a list of available VPN gateways by making a list() request.",
165780	//   "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}",
165781	//   "httpMethod": "GET",
165782	//   "id": "compute.vpnGateways.get",
165783	//   "parameterOrder": [
165784	//     "project",
165785	//     "region",
165786	//     "vpnGateway"
165787	//   ],
165788	//   "parameters": {
165789	//     "project": {
165790	//       "description": "Project ID for this request.",
165791	//       "location": "path",
165792	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165793	//       "required": true,
165794	//       "type": "string"
165795	//     },
165796	//     "region": {
165797	//       "description": "Name of the region for this request.",
165798	//       "location": "path",
165799	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
165800	//       "required": true,
165801	//       "type": "string"
165802	//     },
165803	//     "vpnGateway": {
165804	//       "description": "Name of the VPN gateway to return.",
165805	//       "location": "path",
165806	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
165807	//       "required": true,
165808	//       "type": "string"
165809	//     }
165810	//   },
165811	//   "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}",
165812	//   "response": {
165813	//     "$ref": "VpnGateway"
165814	//   },
165815	//   "scopes": [
165816	//     "https://www.googleapis.com/auth/cloud-platform",
165817	//     "https://www.googleapis.com/auth/compute",
165818	//     "https://www.googleapis.com/auth/compute.readonly"
165819	//   ]
165820	// }
165821
165822}
165823
165824// method id "compute.vpnGateways.getStatus":
165825
165826type VpnGatewaysGetStatusCall struct {
165827	s            *Service
165828	project      string
165829	region       string
165830	vpnGateway   string
165831	urlParams_   gensupport.URLParams
165832	ifNoneMatch_ string
165833	ctx_         context.Context
165834	header_      http.Header
165835}
165836
165837// GetStatus: Returns the status for the specified VPN gateway.
165838//
165839// - project: Project ID for this request.
165840// - region: Name of the region for this request.
165841// - vpnGateway: Name of the VPN gateway to return.
165842func (r *VpnGatewaysService) GetStatus(project string, region string, vpnGateway string) *VpnGatewaysGetStatusCall {
165843	c := &VpnGatewaysGetStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
165844	c.project = project
165845	c.region = region
165846	c.vpnGateway = vpnGateway
165847	return c
165848}
165849
165850// Fields allows partial responses to be retrieved. See
165851// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
165852// for more information.
165853func (c *VpnGatewaysGetStatusCall) Fields(s ...googleapi.Field) *VpnGatewaysGetStatusCall {
165854	c.urlParams_.Set("fields", googleapi.CombineFields(s))
165855	return c
165856}
165857
165858// IfNoneMatch sets the optional parameter which makes the operation
165859// fail if the object's ETag matches the given value. This is useful for
165860// getting updates only after the object has changed since the last
165861// request. Use googleapi.IsNotModified to check whether the response
165862// error from Do is the result of In-None-Match.
165863func (c *VpnGatewaysGetStatusCall) IfNoneMatch(entityTag string) *VpnGatewaysGetStatusCall {
165864	c.ifNoneMatch_ = entityTag
165865	return c
165866}
165867
165868// Context sets the context to be used in this call's Do method. Any
165869// pending HTTP request will be aborted if the provided context is
165870// canceled.
165871func (c *VpnGatewaysGetStatusCall) Context(ctx context.Context) *VpnGatewaysGetStatusCall {
165872	c.ctx_ = ctx
165873	return c
165874}
165875
165876// Header returns an http.Header that can be modified by the caller to
165877// add HTTP headers to the request.
165878func (c *VpnGatewaysGetStatusCall) Header() http.Header {
165879	if c.header_ == nil {
165880		c.header_ = make(http.Header)
165881	}
165882	return c.header_
165883}
165884
165885func (c *VpnGatewaysGetStatusCall) doRequest(alt string) (*http.Response, error) {
165886	reqHeaders := make(http.Header)
165887	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
165888	for k, v := range c.header_ {
165889		reqHeaders[k] = v
165890	}
165891	reqHeaders.Set("User-Agent", c.s.userAgent())
165892	if c.ifNoneMatch_ != "" {
165893		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
165894	}
165895	var body io.Reader = nil
165896	c.urlParams_.Set("alt", alt)
165897	c.urlParams_.Set("prettyPrint", "false")
165898	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus")
165899	urls += "?" + c.urlParams_.Encode()
165900	req, err := http.NewRequest("GET", urls, body)
165901	if err != nil {
165902		return nil, err
165903	}
165904	req.Header = reqHeaders
165905	googleapi.Expand(req.URL, map[string]string{
165906		"project":    c.project,
165907		"region":     c.region,
165908		"vpnGateway": c.vpnGateway,
165909	})
165910	return gensupport.SendRequest(c.ctx_, c.s.client, req)
165911}
165912
165913// Do executes the "compute.vpnGateways.getStatus" call.
165914// Exactly one of *VpnGatewaysGetStatusResponse or error will be
165915// non-nil. Any non-2xx status code is an error. Response headers are in
165916// either *VpnGatewaysGetStatusResponse.ServerResponse.Header or (if a
165917// response was returned at all) in error.(*googleapi.Error).Header. Use
165918// googleapi.IsNotModified to check whether the returned error was
165919// because http.StatusNotModified was returned.
165920func (c *VpnGatewaysGetStatusCall) Do(opts ...googleapi.CallOption) (*VpnGatewaysGetStatusResponse, error) {
165921	gensupport.SetOptions(c.urlParams_, opts...)
165922	res, err := c.doRequest("json")
165923	if res != nil && res.StatusCode == http.StatusNotModified {
165924		if res.Body != nil {
165925			res.Body.Close()
165926		}
165927		return nil, &googleapi.Error{
165928			Code:   res.StatusCode,
165929			Header: res.Header,
165930		}
165931	}
165932	if err != nil {
165933		return nil, err
165934	}
165935	defer googleapi.CloseBody(res)
165936	if err := googleapi.CheckResponse(res); err != nil {
165937		return nil, err
165938	}
165939	ret := &VpnGatewaysGetStatusResponse{
165940		ServerResponse: googleapi.ServerResponse{
165941			Header:         res.Header,
165942			HTTPStatusCode: res.StatusCode,
165943		},
165944	}
165945	target := &ret
165946	if err := gensupport.DecodeResponse(target, res); err != nil {
165947		return nil, err
165948	}
165949	return ret, nil
165950	// {
165951	//   "description": "Returns the status for the specified VPN gateway.",
165952	//   "flatPath": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus",
165953	//   "httpMethod": "GET",
165954	//   "id": "compute.vpnGateways.getStatus",
165955	//   "parameterOrder": [
165956	//     "project",
165957	//     "region",
165958	//     "vpnGateway"
165959	//   ],
165960	//   "parameters": {
165961	//     "project": {
165962	//       "description": "Project ID for this request.",
165963	//       "location": "path",
165964	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
165965	//       "required": true,
165966	//       "type": "string"
165967	//     },
165968	//     "region": {
165969	//       "description": "Name of the region for this request.",
165970	//       "location": "path",
165971	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
165972	//       "required": true,
165973	//       "type": "string"
165974	//     },
165975	//     "vpnGateway": {
165976	//       "description": "Name of the VPN gateway to return.",
165977	//       "location": "path",
165978	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
165979	//       "required": true,
165980	//       "type": "string"
165981	//     }
165982	//   },
165983	//   "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus",
165984	//   "response": {
165985	//     "$ref": "VpnGatewaysGetStatusResponse"
165986	//   },
165987	//   "scopes": [
165988	//     "https://www.googleapis.com/auth/cloud-platform",
165989	//     "https://www.googleapis.com/auth/compute",
165990	//     "https://www.googleapis.com/auth/compute.readonly"
165991	//   ]
165992	// }
165993
165994}
165995
165996// method id "compute.vpnGateways.insert":
165997
165998type VpnGatewaysInsertCall struct {
165999	s          *Service
166000	project    string
166001	region     string
166002	vpngateway *VpnGateway
166003	urlParams_ gensupport.URLParams
166004	ctx_       context.Context
166005	header_    http.Header
166006}
166007
166008// Insert: Creates a VPN gateway in the specified project and region
166009// using the data included in the request.
166010//
166011// - project: Project ID for this request.
166012// - region: Name of the region for this request.
166013func (r *VpnGatewaysService) Insert(project string, region string, vpngateway *VpnGateway) *VpnGatewaysInsertCall {
166014	c := &VpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166015	c.project = project
166016	c.region = region
166017	c.vpngateway = vpngateway
166018	return c
166019}
166020
166021// RequestId sets the optional parameter "requestId": An optional
166022// request ID to identify requests. Specify a unique request ID so that
166023// if you must retry your request, the server will know to ignore the
166024// request if it has already been completed. For example, consider a
166025// situation where you make an initial request and the request times
166026// out. If you make the request again with the same request ID, the
166027// server can check if original operation with the same request ID was
166028// received, and if so, will ignore the second request. This prevents
166029// clients from accidentally creating duplicate commitments. The request
166030// ID must be a valid UUID with the exception that zero UUID is not
166031// supported ( 00000000-0000-0000-0000-000000000000).
166032func (c *VpnGatewaysInsertCall) RequestId(requestId string) *VpnGatewaysInsertCall {
166033	c.urlParams_.Set("requestId", requestId)
166034	return c
166035}
166036
166037// Fields allows partial responses to be retrieved. See
166038// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166039// for more information.
166040func (c *VpnGatewaysInsertCall) Fields(s ...googleapi.Field) *VpnGatewaysInsertCall {
166041	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166042	return c
166043}
166044
166045// Context sets the context to be used in this call's Do method. Any
166046// pending HTTP request will be aborted if the provided context is
166047// canceled.
166048func (c *VpnGatewaysInsertCall) Context(ctx context.Context) *VpnGatewaysInsertCall {
166049	c.ctx_ = ctx
166050	return c
166051}
166052
166053// Header returns an http.Header that can be modified by the caller to
166054// add HTTP headers to the request.
166055func (c *VpnGatewaysInsertCall) Header() http.Header {
166056	if c.header_ == nil {
166057		c.header_ = make(http.Header)
166058	}
166059	return c.header_
166060}
166061
166062func (c *VpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
166063	reqHeaders := make(http.Header)
166064	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
166065	for k, v := range c.header_ {
166066		reqHeaders[k] = v
166067	}
166068	reqHeaders.Set("User-Agent", c.s.userAgent())
166069	var body io.Reader = nil
166070	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vpngateway)
166071	if err != nil {
166072		return nil, err
166073	}
166074	reqHeaders.Set("Content-Type", "application/json")
166075	c.urlParams_.Set("alt", alt)
166076	c.urlParams_.Set("prettyPrint", "false")
166077	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways")
166078	urls += "?" + c.urlParams_.Encode()
166079	req, err := http.NewRequest("POST", urls, body)
166080	if err != nil {
166081		return nil, err
166082	}
166083	req.Header = reqHeaders
166084	googleapi.Expand(req.URL, map[string]string{
166085		"project": c.project,
166086		"region":  c.region,
166087	})
166088	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166089}
166090
166091// Do executes the "compute.vpnGateways.insert" call.
166092// Exactly one of *Operation or error will be non-nil. Any non-2xx
166093// status code is an error. Response headers are in either
166094// *Operation.ServerResponse.Header or (if a response was returned at
166095// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
166096// to check whether the returned error was because
166097// http.StatusNotModified was returned.
166098func (c *VpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
166099	gensupport.SetOptions(c.urlParams_, opts...)
166100	res, err := c.doRequest("json")
166101	if res != nil && res.StatusCode == http.StatusNotModified {
166102		if res.Body != nil {
166103			res.Body.Close()
166104		}
166105		return nil, &googleapi.Error{
166106			Code:   res.StatusCode,
166107			Header: res.Header,
166108		}
166109	}
166110	if err != nil {
166111		return nil, err
166112	}
166113	defer googleapi.CloseBody(res)
166114	if err := googleapi.CheckResponse(res); err != nil {
166115		return nil, err
166116	}
166117	ret := &Operation{
166118		ServerResponse: googleapi.ServerResponse{
166119			Header:         res.Header,
166120			HTTPStatusCode: res.StatusCode,
166121		},
166122	}
166123	target := &ret
166124	if err := gensupport.DecodeResponse(target, res); err != nil {
166125		return nil, err
166126	}
166127	return ret, nil
166128	// {
166129	//   "description": "Creates a VPN gateway in the specified project and region using the data included in the request.",
166130	//   "flatPath": "projects/{project}/regions/{region}/vpnGateways",
166131	//   "httpMethod": "POST",
166132	//   "id": "compute.vpnGateways.insert",
166133	//   "parameterOrder": [
166134	//     "project",
166135	//     "region"
166136	//   ],
166137	//   "parameters": {
166138	//     "project": {
166139	//       "description": "Project ID for this request.",
166140	//       "location": "path",
166141	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166142	//       "required": true,
166143	//       "type": "string"
166144	//     },
166145	//     "region": {
166146	//       "description": "Name of the region for this request.",
166147	//       "location": "path",
166148	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
166149	//       "required": true,
166150	//       "type": "string"
166151	//     },
166152	//     "requestId": {
166153	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
166154	//       "location": "query",
166155	//       "type": "string"
166156	//     }
166157	//   },
166158	//   "path": "projects/{project}/regions/{region}/vpnGateways",
166159	//   "request": {
166160	//     "$ref": "VpnGateway"
166161	//   },
166162	//   "response": {
166163	//     "$ref": "Operation"
166164	//   },
166165	//   "scopes": [
166166	//     "https://www.googleapis.com/auth/cloud-platform",
166167	//     "https://www.googleapis.com/auth/compute"
166168	//   ]
166169	// }
166170
166171}
166172
166173// method id "compute.vpnGateways.list":
166174
166175type VpnGatewaysListCall struct {
166176	s            *Service
166177	project      string
166178	region       string
166179	urlParams_   gensupport.URLParams
166180	ifNoneMatch_ string
166181	ctx_         context.Context
166182	header_      http.Header
166183}
166184
166185// List: Retrieves a list of VPN gateways available to the specified
166186// project and region.
166187//
166188// - project: Project ID for this request.
166189// - region: Name of the region for this request.
166190func (r *VpnGatewaysService) List(project string, region string) *VpnGatewaysListCall {
166191	c := &VpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166192	c.project = project
166193	c.region = region
166194	return c
166195}
166196
166197// Filter sets the optional parameter "filter": A filter expression that
166198// filters resources listed in the response. The expression must specify
166199// the field name, a comparison operator, and the value that you want to
166200// use for filtering. The value must be a string, a number, or a
166201// boolean. The comparison operator must be either `=`, `!=`, `>`, or
166202// `<`. For example, if you are filtering Compute Engine instances, you
166203// can exclude instances named `example-instance` by specifying `name !=
166204// example-instance`. You can also filter nested fields. For example,
166205// you could specify `scheduling.automaticRestart = false` to include
166206// instances only if they are not scheduled for automatic restarts. You
166207// can use filtering on nested fields to filter based on resource
166208// labels. To filter on multiple expressions, provide each separate
166209// expression within parentheses. For example: ```
166210// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
166211// ``` By default, each expression is an `AND` expression. However, you
166212// can include `AND` and `OR` expressions explicitly. For example: ```
166213// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
166214// AND (scheduling.automaticRestart = true) ```
166215func (c *VpnGatewaysListCall) Filter(filter string) *VpnGatewaysListCall {
166216	c.urlParams_.Set("filter", filter)
166217	return c
166218}
166219
166220// MaxResults sets the optional parameter "maxResults": The maximum
166221// number of results per page that should be returned. If the number of
166222// available results is larger than `maxResults`, Compute Engine returns
166223// a `nextPageToken` that can be used to get the next page of results in
166224// subsequent list requests. Acceptable values are `0` to `500`,
166225// inclusive. (Default: `500`)
166226func (c *VpnGatewaysListCall) MaxResults(maxResults int64) *VpnGatewaysListCall {
166227	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
166228	return c
166229}
166230
166231// OrderBy sets the optional parameter "orderBy": Sorts list results by
166232// a certain order. By default, results are returned in alphanumerical
166233// order based on the resource name. You can also sort results in
166234// descending order based on the creation timestamp using
166235// `orderBy="creationTimestamp desc". This sorts results based on the
166236// `creationTimestamp` field in reverse chronological order (newest
166237// result first). Use this to sort resources like operations so that the
166238// newest operation is returned first. Currently, only sorting by `name`
166239// or `creationTimestamp desc` is supported.
166240func (c *VpnGatewaysListCall) OrderBy(orderBy string) *VpnGatewaysListCall {
166241	c.urlParams_.Set("orderBy", orderBy)
166242	return c
166243}
166244
166245// PageToken sets the optional parameter "pageToken": Specifies a page
166246// token to use. Set `pageToken` to the `nextPageToken` returned by a
166247// previous list request to get the next page of results.
166248func (c *VpnGatewaysListCall) PageToken(pageToken string) *VpnGatewaysListCall {
166249	c.urlParams_.Set("pageToken", pageToken)
166250	return c
166251}
166252
166253// ReturnPartialSuccess sets the optional parameter
166254// "returnPartialSuccess": Opt-in for partial success behavior which
166255// provides partial results in case of failure. The default value is
166256// false.
166257func (c *VpnGatewaysListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnGatewaysListCall {
166258	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
166259	return c
166260}
166261
166262// Fields allows partial responses to be retrieved. See
166263// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166264// for more information.
166265func (c *VpnGatewaysListCall) Fields(s ...googleapi.Field) *VpnGatewaysListCall {
166266	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166267	return c
166268}
166269
166270// IfNoneMatch sets the optional parameter which makes the operation
166271// fail if the object's ETag matches the given value. This is useful for
166272// getting updates only after the object has changed since the last
166273// request. Use googleapi.IsNotModified to check whether the response
166274// error from Do is the result of In-None-Match.
166275func (c *VpnGatewaysListCall) IfNoneMatch(entityTag string) *VpnGatewaysListCall {
166276	c.ifNoneMatch_ = entityTag
166277	return c
166278}
166279
166280// Context sets the context to be used in this call's Do method. Any
166281// pending HTTP request will be aborted if the provided context is
166282// canceled.
166283func (c *VpnGatewaysListCall) Context(ctx context.Context) *VpnGatewaysListCall {
166284	c.ctx_ = ctx
166285	return c
166286}
166287
166288// Header returns an http.Header that can be modified by the caller to
166289// add HTTP headers to the request.
166290func (c *VpnGatewaysListCall) Header() http.Header {
166291	if c.header_ == nil {
166292		c.header_ = make(http.Header)
166293	}
166294	return c.header_
166295}
166296
166297func (c *VpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
166298	reqHeaders := make(http.Header)
166299	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
166300	for k, v := range c.header_ {
166301		reqHeaders[k] = v
166302	}
166303	reqHeaders.Set("User-Agent", c.s.userAgent())
166304	if c.ifNoneMatch_ != "" {
166305		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
166306	}
166307	var body io.Reader = nil
166308	c.urlParams_.Set("alt", alt)
166309	c.urlParams_.Set("prettyPrint", "false")
166310	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways")
166311	urls += "?" + c.urlParams_.Encode()
166312	req, err := http.NewRequest("GET", 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	})
166321	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166322}
166323
166324// Do executes the "compute.vpnGateways.list" call.
166325// Exactly one of *VpnGatewayList or error will be non-nil. Any non-2xx
166326// status code is an error. Response headers are in either
166327// *VpnGatewayList.ServerResponse.Header or (if a response was returned
166328// at all) in error.(*googleapi.Error).Header. Use
166329// googleapi.IsNotModified to check whether the returned error was
166330// because http.StatusNotModified was returned.
166331func (c *VpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*VpnGatewayList, error) {
166332	gensupport.SetOptions(c.urlParams_, opts...)
166333	res, err := c.doRequest("json")
166334	if res != nil && res.StatusCode == http.StatusNotModified {
166335		if res.Body != nil {
166336			res.Body.Close()
166337		}
166338		return nil, &googleapi.Error{
166339			Code:   res.StatusCode,
166340			Header: res.Header,
166341		}
166342	}
166343	if err != nil {
166344		return nil, err
166345	}
166346	defer googleapi.CloseBody(res)
166347	if err := googleapi.CheckResponse(res); err != nil {
166348		return nil, err
166349	}
166350	ret := &VpnGatewayList{
166351		ServerResponse: googleapi.ServerResponse{
166352			Header:         res.Header,
166353			HTTPStatusCode: res.StatusCode,
166354		},
166355	}
166356	target := &ret
166357	if err := gensupport.DecodeResponse(target, res); err != nil {
166358		return nil, err
166359	}
166360	return ret, nil
166361	// {
166362	//   "description": "Retrieves a list of VPN gateways available to the specified project and region.",
166363	//   "flatPath": "projects/{project}/regions/{region}/vpnGateways",
166364	//   "httpMethod": "GET",
166365	//   "id": "compute.vpnGateways.list",
166366	//   "parameterOrder": [
166367	//     "project",
166368	//     "region"
166369	//   ],
166370	//   "parameters": {
166371	//     "filter": {
166372	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
166373	//       "location": "query",
166374	//       "type": "string"
166375	//     },
166376	//     "maxResults": {
166377	//       "default": "500",
166378	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
166379	//       "format": "uint32",
166380	//       "location": "query",
166381	//       "minimum": "0",
166382	//       "type": "integer"
166383	//     },
166384	//     "orderBy": {
166385	//       "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.",
166386	//       "location": "query",
166387	//       "type": "string"
166388	//     },
166389	//     "pageToken": {
166390	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
166391	//       "location": "query",
166392	//       "type": "string"
166393	//     },
166394	//     "project": {
166395	//       "description": "Project ID for this request.",
166396	//       "location": "path",
166397	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166398	//       "required": true,
166399	//       "type": "string"
166400	//     },
166401	//     "region": {
166402	//       "description": "Name of the region for this request.",
166403	//       "location": "path",
166404	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
166405	//       "required": true,
166406	//       "type": "string"
166407	//     },
166408	//     "returnPartialSuccess": {
166409	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
166410	//       "location": "query",
166411	//       "type": "boolean"
166412	//     }
166413	//   },
166414	//   "path": "projects/{project}/regions/{region}/vpnGateways",
166415	//   "response": {
166416	//     "$ref": "VpnGatewayList"
166417	//   },
166418	//   "scopes": [
166419	//     "https://www.googleapis.com/auth/cloud-platform",
166420	//     "https://www.googleapis.com/auth/compute",
166421	//     "https://www.googleapis.com/auth/compute.readonly"
166422	//   ]
166423	// }
166424
166425}
166426
166427// Pages invokes f for each page of results.
166428// A non-nil error returned from f will halt the iteration.
166429// The provided context supersedes any context provided to the Context method.
166430func (c *VpnGatewaysListCall) Pages(ctx context.Context, f func(*VpnGatewayList) error) error {
166431	c.ctx_ = ctx
166432	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
166433	for {
166434		x, err := c.Do()
166435		if err != nil {
166436			return err
166437		}
166438		if err := f(x); err != nil {
166439			return err
166440		}
166441		if x.NextPageToken == "" {
166442			return nil
166443		}
166444		c.PageToken(x.NextPageToken)
166445	}
166446}
166447
166448// method id "compute.vpnGateways.setLabels":
166449
166450type VpnGatewaysSetLabelsCall struct {
166451	s                      *Service
166452	project                string
166453	region                 string
166454	resource               string
166455	regionsetlabelsrequest *RegionSetLabelsRequest
166456	urlParams_             gensupport.URLParams
166457	ctx_                   context.Context
166458	header_                http.Header
166459}
166460
166461// SetLabels: Sets the labels on a VpnGateway. To learn more about
166462// labels, read the Labeling Resources documentation.
166463//
166464// - project: Project ID for this request.
166465// - region: The region for this request.
166466// - resource: Name or id of the resource for this request.
166467func (r *VpnGatewaysService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *VpnGatewaysSetLabelsCall {
166468	c := &VpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166469	c.project = project
166470	c.region = region
166471	c.resource = resource
166472	c.regionsetlabelsrequest = regionsetlabelsrequest
166473	return c
166474}
166475
166476// RequestId sets the optional parameter "requestId": An optional
166477// request ID to identify requests. Specify a unique request ID so that
166478// if you must retry your request, the server will know to ignore the
166479// request if it has already been completed. For example, consider a
166480// situation where you make an initial request and the request times
166481// out. If you make the request again with the same request ID, the
166482// server can check if original operation with the same request ID was
166483// received, and if so, will ignore the second request. This prevents
166484// clients from accidentally creating duplicate commitments. The request
166485// ID must be a valid UUID with the exception that zero UUID is not
166486// supported ( 00000000-0000-0000-0000-000000000000).
166487func (c *VpnGatewaysSetLabelsCall) RequestId(requestId string) *VpnGatewaysSetLabelsCall {
166488	c.urlParams_.Set("requestId", requestId)
166489	return c
166490}
166491
166492// Fields allows partial responses to be retrieved. See
166493// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166494// for more information.
166495func (c *VpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *VpnGatewaysSetLabelsCall {
166496	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166497	return c
166498}
166499
166500// Context sets the context to be used in this call's Do method. Any
166501// pending HTTP request will be aborted if the provided context is
166502// canceled.
166503func (c *VpnGatewaysSetLabelsCall) Context(ctx context.Context) *VpnGatewaysSetLabelsCall {
166504	c.ctx_ = ctx
166505	return c
166506}
166507
166508// Header returns an http.Header that can be modified by the caller to
166509// add HTTP headers to the request.
166510func (c *VpnGatewaysSetLabelsCall) Header() http.Header {
166511	if c.header_ == nil {
166512		c.header_ = make(http.Header)
166513	}
166514	return c.header_
166515}
166516
166517func (c *VpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) {
166518	reqHeaders := make(http.Header)
166519	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
166520	for k, v := range c.header_ {
166521		reqHeaders[k] = v
166522	}
166523	reqHeaders.Set("User-Agent", c.s.userAgent())
166524	var body io.Reader = nil
166525	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
166526	if err != nil {
166527		return nil, err
166528	}
166529	reqHeaders.Set("Content-Type", "application/json")
166530	c.urlParams_.Set("alt", alt)
166531	c.urlParams_.Set("prettyPrint", "false")
166532	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels")
166533	urls += "?" + c.urlParams_.Encode()
166534	req, err := http.NewRequest("POST", urls, body)
166535	if err != nil {
166536		return nil, err
166537	}
166538	req.Header = reqHeaders
166539	googleapi.Expand(req.URL, map[string]string{
166540		"project":  c.project,
166541		"region":   c.region,
166542		"resource": c.resource,
166543	})
166544	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166545}
166546
166547// Do executes the "compute.vpnGateways.setLabels" call.
166548// Exactly one of *Operation or error will be non-nil. Any non-2xx
166549// status code is an error. Response headers are in either
166550// *Operation.ServerResponse.Header or (if a response was returned at
166551// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
166552// to check whether the returned error was because
166553// http.StatusNotModified was returned.
166554func (c *VpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
166555	gensupport.SetOptions(c.urlParams_, opts...)
166556	res, err := c.doRequest("json")
166557	if res != nil && res.StatusCode == http.StatusNotModified {
166558		if res.Body != nil {
166559			res.Body.Close()
166560		}
166561		return nil, &googleapi.Error{
166562			Code:   res.StatusCode,
166563			Header: res.Header,
166564		}
166565	}
166566	if err != nil {
166567		return nil, err
166568	}
166569	defer googleapi.CloseBody(res)
166570	if err := googleapi.CheckResponse(res); err != nil {
166571		return nil, err
166572	}
166573	ret := &Operation{
166574		ServerResponse: googleapi.ServerResponse{
166575			Header:         res.Header,
166576			HTTPStatusCode: res.StatusCode,
166577		},
166578	}
166579	target := &ret
166580	if err := gensupport.DecodeResponse(target, res); err != nil {
166581		return nil, err
166582	}
166583	return ret, nil
166584	// {
166585	//   "description": "Sets the labels on a VpnGateway. To learn more about labels, read the Labeling Resources documentation.",
166586	//   "flatPath": "projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels",
166587	//   "httpMethod": "POST",
166588	//   "id": "compute.vpnGateways.setLabels",
166589	//   "parameterOrder": [
166590	//     "project",
166591	//     "region",
166592	//     "resource"
166593	//   ],
166594	//   "parameters": {
166595	//     "project": {
166596	//       "description": "Project ID for this request.",
166597	//       "location": "path",
166598	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166599	//       "required": true,
166600	//       "type": "string"
166601	//     },
166602	//     "region": {
166603	//       "description": "The region for this request.",
166604	//       "location": "path",
166605	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
166606	//       "required": true,
166607	//       "type": "string"
166608	//     },
166609	//     "requestId": {
166610	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
166611	//       "location": "query",
166612	//       "type": "string"
166613	//     },
166614	//     "resource": {
166615	//       "description": "Name or id of the resource for this request.",
166616	//       "location": "path",
166617	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
166618	//       "required": true,
166619	//       "type": "string"
166620	//     }
166621	//   },
166622	//   "path": "projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels",
166623	//   "request": {
166624	//     "$ref": "RegionSetLabelsRequest"
166625	//   },
166626	//   "response": {
166627	//     "$ref": "Operation"
166628	//   },
166629	//   "scopes": [
166630	//     "https://www.googleapis.com/auth/cloud-platform",
166631	//     "https://www.googleapis.com/auth/compute"
166632	//   ]
166633	// }
166634
166635}
166636
166637// method id "compute.vpnGateways.testIamPermissions":
166638
166639type VpnGatewaysTestIamPermissionsCall struct {
166640	s                      *Service
166641	project                string
166642	region                 string
166643	resource               string
166644	testpermissionsrequest *TestPermissionsRequest
166645	urlParams_             gensupport.URLParams
166646	ctx_                   context.Context
166647	header_                http.Header
166648}
166649
166650// TestIamPermissions: Returns permissions that a caller has on the
166651// specified resource.
166652//
166653// - project: Project ID for this request.
166654// - region: The name of the region for this request.
166655// - resource: Name or id of the resource for this request.
166656func (r *VpnGatewaysService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *VpnGatewaysTestIamPermissionsCall {
166657	c := &VpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166658	c.project = project
166659	c.region = region
166660	c.resource = resource
166661	c.testpermissionsrequest = testpermissionsrequest
166662	return c
166663}
166664
166665// Fields allows partial responses to be retrieved. See
166666// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166667// for more information.
166668func (c *VpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *VpnGatewaysTestIamPermissionsCall {
166669	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166670	return c
166671}
166672
166673// Context sets the context to be used in this call's Do method. Any
166674// pending HTTP request will be aborted if the provided context is
166675// canceled.
166676func (c *VpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *VpnGatewaysTestIamPermissionsCall {
166677	c.ctx_ = ctx
166678	return c
166679}
166680
166681// Header returns an http.Header that can be modified by the caller to
166682// add HTTP headers to the request.
166683func (c *VpnGatewaysTestIamPermissionsCall) Header() http.Header {
166684	if c.header_ == nil {
166685		c.header_ = make(http.Header)
166686	}
166687	return c.header_
166688}
166689
166690func (c *VpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
166691	reqHeaders := make(http.Header)
166692	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
166693	for k, v := range c.header_ {
166694		reqHeaders[k] = v
166695	}
166696	reqHeaders.Set("User-Agent", c.s.userAgent())
166697	var body io.Reader = nil
166698	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
166699	if err != nil {
166700		return nil, err
166701	}
166702	reqHeaders.Set("Content-Type", "application/json")
166703	c.urlParams_.Set("alt", alt)
166704	c.urlParams_.Set("prettyPrint", "false")
166705	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions")
166706	urls += "?" + c.urlParams_.Encode()
166707	req, err := http.NewRequest("POST", urls, body)
166708	if err != nil {
166709		return nil, err
166710	}
166711	req.Header = reqHeaders
166712	googleapi.Expand(req.URL, map[string]string{
166713		"project":  c.project,
166714		"region":   c.region,
166715		"resource": c.resource,
166716	})
166717	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166718}
166719
166720// Do executes the "compute.vpnGateways.testIamPermissions" call.
166721// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
166722// non-2xx status code is an error. Response headers are in either
166723// *TestPermissionsResponse.ServerResponse.Header or (if a response was
166724// returned at all) in error.(*googleapi.Error).Header. Use
166725// googleapi.IsNotModified to check whether the returned error was
166726// because http.StatusNotModified was returned.
166727func (c *VpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
166728	gensupport.SetOptions(c.urlParams_, opts...)
166729	res, err := c.doRequest("json")
166730	if res != nil && res.StatusCode == http.StatusNotModified {
166731		if res.Body != nil {
166732			res.Body.Close()
166733		}
166734		return nil, &googleapi.Error{
166735			Code:   res.StatusCode,
166736			Header: res.Header,
166737		}
166738	}
166739	if err != nil {
166740		return nil, err
166741	}
166742	defer googleapi.CloseBody(res)
166743	if err := googleapi.CheckResponse(res); err != nil {
166744		return nil, err
166745	}
166746	ret := &TestPermissionsResponse{
166747		ServerResponse: googleapi.ServerResponse{
166748			Header:         res.Header,
166749			HTTPStatusCode: res.StatusCode,
166750		},
166751	}
166752	target := &ret
166753	if err := gensupport.DecodeResponse(target, res); err != nil {
166754		return nil, err
166755	}
166756	return ret, nil
166757	// {
166758	//   "description": "Returns permissions that a caller has on the specified resource.",
166759	//   "flatPath": "projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions",
166760	//   "httpMethod": "POST",
166761	//   "id": "compute.vpnGateways.testIamPermissions",
166762	//   "parameterOrder": [
166763	//     "project",
166764	//     "region",
166765	//     "resource"
166766	//   ],
166767	//   "parameters": {
166768	//     "project": {
166769	//       "description": "Project ID for this request.",
166770	//       "location": "path",
166771	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
166772	//       "required": true,
166773	//       "type": "string"
166774	//     },
166775	//     "region": {
166776	//       "description": "The name of the region for this request.",
166777	//       "location": "path",
166778	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
166779	//       "required": true,
166780	//       "type": "string"
166781	//     },
166782	//     "resource": {
166783	//       "description": "Name or id of the resource for this request.",
166784	//       "location": "path",
166785	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
166786	//       "required": true,
166787	//       "type": "string"
166788	//     }
166789	//   },
166790	//   "path": "projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions",
166791	//   "request": {
166792	//     "$ref": "TestPermissionsRequest"
166793	//   },
166794	//   "response": {
166795	//     "$ref": "TestPermissionsResponse"
166796	//   },
166797	//   "scopes": [
166798	//     "https://www.googleapis.com/auth/cloud-platform",
166799	//     "https://www.googleapis.com/auth/compute",
166800	//     "https://www.googleapis.com/auth/compute.readonly"
166801	//   ]
166802	// }
166803
166804}
166805
166806// method id "compute.vpnTunnels.aggregatedList":
166807
166808type VpnTunnelsAggregatedListCall struct {
166809	s            *Service
166810	project      string
166811	urlParams_   gensupport.URLParams
166812	ifNoneMatch_ string
166813	ctx_         context.Context
166814	header_      http.Header
166815}
166816
166817// AggregatedList: Retrieves an aggregated list of VPN tunnels.
166818//
166819// - project: Project ID for this request.
166820func (r *VpnTunnelsService) AggregatedList(project string) *VpnTunnelsAggregatedListCall {
166821	c := &VpnTunnelsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
166822	c.project = project
166823	return c
166824}
166825
166826// Filter sets the optional parameter "filter": A filter expression that
166827// filters resources listed in the response. The expression must specify
166828// the field name, a comparison operator, and the value that you want to
166829// use for filtering. The value must be a string, a number, or a
166830// boolean. The comparison operator must be either `=`, `!=`, `>`, or
166831// `<`. For example, if you are filtering Compute Engine instances, you
166832// can exclude instances named `example-instance` by specifying `name !=
166833// example-instance`. You can also filter nested fields. For example,
166834// you could specify `scheduling.automaticRestart = false` to include
166835// instances only if they are not scheduled for automatic restarts. You
166836// can use filtering on nested fields to filter based on resource
166837// labels. To filter on multiple expressions, provide each separate
166838// expression within parentheses. For example: ```
166839// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
166840// ``` By default, each expression is an `AND` expression. However, you
166841// can include `AND` and `OR` expressions explicitly. For example: ```
166842// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
166843// AND (scheduling.automaticRestart = true) ```
166844func (c *VpnTunnelsAggregatedListCall) Filter(filter string) *VpnTunnelsAggregatedListCall {
166845	c.urlParams_.Set("filter", filter)
166846	return c
166847}
166848
166849// IncludeAllScopes sets the optional parameter "includeAllScopes":
166850// Indicates whether every visible scope for each scope type (zone,
166851// region, global) should be included in the response. For new resource
166852// types added after this field, the flag has no effect as new resource
166853// types will always include every visible scope for each scope type in
166854// response. For resource types which predate this field, if this flag
166855// is omitted or false, only scopes of the scope types where the
166856// resource type is expected to be found will be included.
166857func (c *VpnTunnelsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *VpnTunnelsAggregatedListCall {
166858	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
166859	return c
166860}
166861
166862// MaxResults sets the optional parameter "maxResults": The maximum
166863// number of results per page that should be returned. If the number of
166864// available results is larger than `maxResults`, Compute Engine returns
166865// a `nextPageToken` that can be used to get the next page of results in
166866// subsequent list requests. Acceptable values are `0` to `500`,
166867// inclusive. (Default: `500`)
166868func (c *VpnTunnelsAggregatedListCall) MaxResults(maxResults int64) *VpnTunnelsAggregatedListCall {
166869	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
166870	return c
166871}
166872
166873// OrderBy sets the optional parameter "orderBy": Sorts list results by
166874// a certain order. By default, results are returned in alphanumerical
166875// order based on the resource name. You can also sort results in
166876// descending order based on the creation timestamp using
166877// `orderBy="creationTimestamp desc". This sorts results based on the
166878// `creationTimestamp` field in reverse chronological order (newest
166879// result first). Use this to sort resources like operations so that the
166880// newest operation is returned first. Currently, only sorting by `name`
166881// or `creationTimestamp desc` is supported.
166882func (c *VpnTunnelsAggregatedListCall) OrderBy(orderBy string) *VpnTunnelsAggregatedListCall {
166883	c.urlParams_.Set("orderBy", orderBy)
166884	return c
166885}
166886
166887// PageToken sets the optional parameter "pageToken": Specifies a page
166888// token to use. Set `pageToken` to the `nextPageToken` returned by a
166889// previous list request to get the next page of results.
166890func (c *VpnTunnelsAggregatedListCall) PageToken(pageToken string) *VpnTunnelsAggregatedListCall {
166891	c.urlParams_.Set("pageToken", pageToken)
166892	return c
166893}
166894
166895// ReturnPartialSuccess sets the optional parameter
166896// "returnPartialSuccess": Opt-in for partial success behavior which
166897// provides partial results in case of failure. The default value is
166898// false.
166899func (c *VpnTunnelsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnTunnelsAggregatedListCall {
166900	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
166901	return c
166902}
166903
166904// Fields allows partial responses to be retrieved. See
166905// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
166906// for more information.
166907func (c *VpnTunnelsAggregatedListCall) Fields(s ...googleapi.Field) *VpnTunnelsAggregatedListCall {
166908	c.urlParams_.Set("fields", googleapi.CombineFields(s))
166909	return c
166910}
166911
166912// IfNoneMatch sets the optional parameter which makes the operation
166913// fail if the object's ETag matches the given value. This is useful for
166914// getting updates only after the object has changed since the last
166915// request. Use googleapi.IsNotModified to check whether the response
166916// error from Do is the result of In-None-Match.
166917func (c *VpnTunnelsAggregatedListCall) IfNoneMatch(entityTag string) *VpnTunnelsAggregatedListCall {
166918	c.ifNoneMatch_ = entityTag
166919	return c
166920}
166921
166922// Context sets the context to be used in this call's Do method. Any
166923// pending HTTP request will be aborted if the provided context is
166924// canceled.
166925func (c *VpnTunnelsAggregatedListCall) Context(ctx context.Context) *VpnTunnelsAggregatedListCall {
166926	c.ctx_ = ctx
166927	return c
166928}
166929
166930// Header returns an http.Header that can be modified by the caller to
166931// add HTTP headers to the request.
166932func (c *VpnTunnelsAggregatedListCall) Header() http.Header {
166933	if c.header_ == nil {
166934		c.header_ = make(http.Header)
166935	}
166936	return c.header_
166937}
166938
166939func (c *VpnTunnelsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
166940	reqHeaders := make(http.Header)
166941	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
166942	for k, v := range c.header_ {
166943		reqHeaders[k] = v
166944	}
166945	reqHeaders.Set("User-Agent", c.s.userAgent())
166946	if c.ifNoneMatch_ != "" {
166947		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
166948	}
166949	var body io.Reader = nil
166950	c.urlParams_.Set("alt", alt)
166951	c.urlParams_.Set("prettyPrint", "false")
166952	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/vpnTunnels")
166953	urls += "?" + c.urlParams_.Encode()
166954	req, err := http.NewRequest("GET", urls, body)
166955	if err != nil {
166956		return nil, err
166957	}
166958	req.Header = reqHeaders
166959	googleapi.Expand(req.URL, map[string]string{
166960		"project": c.project,
166961	})
166962	return gensupport.SendRequest(c.ctx_, c.s.client, req)
166963}
166964
166965// Do executes the "compute.vpnTunnels.aggregatedList" call.
166966// Exactly one of *VpnTunnelAggregatedList or error will be non-nil. Any
166967// non-2xx status code is an error. Response headers are in either
166968// *VpnTunnelAggregatedList.ServerResponse.Header or (if a response was
166969// returned at all) in error.(*googleapi.Error).Header. Use
166970// googleapi.IsNotModified to check whether the returned error was
166971// because http.StatusNotModified was returned.
166972func (c *VpnTunnelsAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelAggregatedList, error) {
166973	gensupport.SetOptions(c.urlParams_, opts...)
166974	res, err := c.doRequest("json")
166975	if res != nil && res.StatusCode == http.StatusNotModified {
166976		if res.Body != nil {
166977			res.Body.Close()
166978		}
166979		return nil, &googleapi.Error{
166980			Code:   res.StatusCode,
166981			Header: res.Header,
166982		}
166983	}
166984	if err != nil {
166985		return nil, err
166986	}
166987	defer googleapi.CloseBody(res)
166988	if err := googleapi.CheckResponse(res); err != nil {
166989		return nil, err
166990	}
166991	ret := &VpnTunnelAggregatedList{
166992		ServerResponse: googleapi.ServerResponse{
166993			Header:         res.Header,
166994			HTTPStatusCode: res.StatusCode,
166995		},
166996	}
166997	target := &ret
166998	if err := gensupport.DecodeResponse(target, res); err != nil {
166999		return nil, err
167000	}
167001	return ret, nil
167002	// {
167003	//   "description": "Retrieves an aggregated list of VPN tunnels.",
167004	//   "flatPath": "projects/{project}/aggregated/vpnTunnels",
167005	//   "httpMethod": "GET",
167006	//   "id": "compute.vpnTunnels.aggregatedList",
167007	//   "parameterOrder": [
167008	//     "project"
167009	//   ],
167010	//   "parameters": {
167011	//     "filter": {
167012	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
167013	//       "location": "query",
167014	//       "type": "string"
167015	//     },
167016	//     "includeAllScopes": {
167017	//       "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.",
167018	//       "location": "query",
167019	//       "type": "boolean"
167020	//     },
167021	//     "maxResults": {
167022	//       "default": "500",
167023	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
167024	//       "format": "uint32",
167025	//       "location": "query",
167026	//       "minimum": "0",
167027	//       "type": "integer"
167028	//     },
167029	//     "orderBy": {
167030	//       "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.",
167031	//       "location": "query",
167032	//       "type": "string"
167033	//     },
167034	//     "pageToken": {
167035	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
167036	//       "location": "query",
167037	//       "type": "string"
167038	//     },
167039	//     "project": {
167040	//       "description": "Project ID for this request.",
167041	//       "location": "path",
167042	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167043	//       "required": true,
167044	//       "type": "string"
167045	//     },
167046	//     "returnPartialSuccess": {
167047	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
167048	//       "location": "query",
167049	//       "type": "boolean"
167050	//     }
167051	//   },
167052	//   "path": "projects/{project}/aggregated/vpnTunnels",
167053	//   "response": {
167054	//     "$ref": "VpnTunnelAggregatedList"
167055	//   },
167056	//   "scopes": [
167057	//     "https://www.googleapis.com/auth/cloud-platform",
167058	//     "https://www.googleapis.com/auth/compute",
167059	//     "https://www.googleapis.com/auth/compute.readonly"
167060	//   ]
167061	// }
167062
167063}
167064
167065// Pages invokes f for each page of results.
167066// A non-nil error returned from f will halt the iteration.
167067// The provided context supersedes any context provided to the Context method.
167068func (c *VpnTunnelsAggregatedListCall) Pages(ctx context.Context, f func(*VpnTunnelAggregatedList) error) error {
167069	c.ctx_ = ctx
167070	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
167071	for {
167072		x, err := c.Do()
167073		if err != nil {
167074			return err
167075		}
167076		if err := f(x); err != nil {
167077			return err
167078		}
167079		if x.NextPageToken == "" {
167080			return nil
167081		}
167082		c.PageToken(x.NextPageToken)
167083	}
167084}
167085
167086// method id "compute.vpnTunnels.delete":
167087
167088type VpnTunnelsDeleteCall struct {
167089	s          *Service
167090	project    string
167091	region     string
167092	vpnTunnel  string
167093	urlParams_ gensupport.URLParams
167094	ctx_       context.Context
167095	header_    http.Header
167096}
167097
167098// Delete: Deletes the specified VpnTunnel resource.
167099//
167100// - project: Project ID for this request.
167101// - region: Name of the region for this request.
167102// - vpnTunnel: Name of the VpnTunnel resource to delete.
167103func (r *VpnTunnelsService) Delete(project string, region string, vpnTunnel string) *VpnTunnelsDeleteCall {
167104	c := &VpnTunnelsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167105	c.project = project
167106	c.region = region
167107	c.vpnTunnel = vpnTunnel
167108	return c
167109}
167110
167111// RequestId sets the optional parameter "requestId": An optional
167112// request ID to identify requests. Specify a unique request ID so that
167113// if you must retry your request, the server will know to ignore the
167114// request if it has already been completed. For example, consider a
167115// situation where you make an initial request and the request times
167116// out. If you make the request again with the same request ID, the
167117// server can check if original operation with the same request ID was
167118// received, and if so, will ignore the second request. This prevents
167119// clients from accidentally creating duplicate commitments. The request
167120// ID must be a valid UUID with the exception that zero UUID is not
167121// supported ( 00000000-0000-0000-0000-000000000000).
167122func (c *VpnTunnelsDeleteCall) RequestId(requestId string) *VpnTunnelsDeleteCall {
167123	c.urlParams_.Set("requestId", requestId)
167124	return c
167125}
167126
167127// Fields allows partial responses to be retrieved. See
167128// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167129// for more information.
167130func (c *VpnTunnelsDeleteCall) Fields(s ...googleapi.Field) *VpnTunnelsDeleteCall {
167131	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167132	return c
167133}
167134
167135// Context sets the context to be used in this call's Do method. Any
167136// pending HTTP request will be aborted if the provided context is
167137// canceled.
167138func (c *VpnTunnelsDeleteCall) Context(ctx context.Context) *VpnTunnelsDeleteCall {
167139	c.ctx_ = ctx
167140	return c
167141}
167142
167143// Header returns an http.Header that can be modified by the caller to
167144// add HTTP headers to the request.
167145func (c *VpnTunnelsDeleteCall) Header() http.Header {
167146	if c.header_ == nil {
167147		c.header_ = make(http.Header)
167148	}
167149	return c.header_
167150}
167151
167152func (c *VpnTunnelsDeleteCall) doRequest(alt string) (*http.Response, error) {
167153	reqHeaders := make(http.Header)
167154	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
167155	for k, v := range c.header_ {
167156		reqHeaders[k] = v
167157	}
167158	reqHeaders.Set("User-Agent", c.s.userAgent())
167159	var body io.Reader = nil
167160	c.urlParams_.Set("alt", alt)
167161	c.urlParams_.Set("prettyPrint", "false")
167162	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}")
167163	urls += "?" + c.urlParams_.Encode()
167164	req, err := http.NewRequest("DELETE", urls, body)
167165	if err != nil {
167166		return nil, err
167167	}
167168	req.Header = reqHeaders
167169	googleapi.Expand(req.URL, map[string]string{
167170		"project":   c.project,
167171		"region":    c.region,
167172		"vpnTunnel": c.vpnTunnel,
167173	})
167174	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167175}
167176
167177// Do executes the "compute.vpnTunnels.delete" call.
167178// Exactly one of *Operation or error will be non-nil. Any non-2xx
167179// status code is an error. Response headers are in either
167180// *Operation.ServerResponse.Header or (if a response was returned at
167181// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
167182// to check whether the returned error was because
167183// http.StatusNotModified was returned.
167184func (c *VpnTunnelsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
167185	gensupport.SetOptions(c.urlParams_, opts...)
167186	res, err := c.doRequest("json")
167187	if res != nil && res.StatusCode == http.StatusNotModified {
167188		if res.Body != nil {
167189			res.Body.Close()
167190		}
167191		return nil, &googleapi.Error{
167192			Code:   res.StatusCode,
167193			Header: res.Header,
167194		}
167195	}
167196	if err != nil {
167197		return nil, err
167198	}
167199	defer googleapi.CloseBody(res)
167200	if err := googleapi.CheckResponse(res); err != nil {
167201		return nil, err
167202	}
167203	ret := &Operation{
167204		ServerResponse: googleapi.ServerResponse{
167205			Header:         res.Header,
167206			HTTPStatusCode: res.StatusCode,
167207		},
167208	}
167209	target := &ret
167210	if err := gensupport.DecodeResponse(target, res); err != nil {
167211		return nil, err
167212	}
167213	return ret, nil
167214	// {
167215	//   "description": "Deletes the specified VpnTunnel resource.",
167216	//   "flatPath": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
167217	//   "httpMethod": "DELETE",
167218	//   "id": "compute.vpnTunnels.delete",
167219	//   "parameterOrder": [
167220	//     "project",
167221	//     "region",
167222	//     "vpnTunnel"
167223	//   ],
167224	//   "parameters": {
167225	//     "project": {
167226	//       "description": "Project ID for this request.",
167227	//       "location": "path",
167228	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167229	//       "required": true,
167230	//       "type": "string"
167231	//     },
167232	//     "region": {
167233	//       "description": "Name of the region for this request.",
167234	//       "location": "path",
167235	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
167236	//       "required": true,
167237	//       "type": "string"
167238	//     },
167239	//     "requestId": {
167240	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
167241	//       "location": "query",
167242	//       "type": "string"
167243	//     },
167244	//     "vpnTunnel": {
167245	//       "description": "Name of the VpnTunnel resource to delete.",
167246	//       "location": "path",
167247	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
167248	//       "required": true,
167249	//       "type": "string"
167250	//     }
167251	//   },
167252	//   "path": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
167253	//   "response": {
167254	//     "$ref": "Operation"
167255	//   },
167256	//   "scopes": [
167257	//     "https://www.googleapis.com/auth/cloud-platform",
167258	//     "https://www.googleapis.com/auth/compute"
167259	//   ]
167260	// }
167261
167262}
167263
167264// method id "compute.vpnTunnels.get":
167265
167266type VpnTunnelsGetCall struct {
167267	s            *Service
167268	project      string
167269	region       string
167270	vpnTunnel    string
167271	urlParams_   gensupport.URLParams
167272	ifNoneMatch_ string
167273	ctx_         context.Context
167274	header_      http.Header
167275}
167276
167277// Get: Returns the specified VpnTunnel resource. Gets a list of
167278// available VPN tunnels by making a list() request.
167279//
167280// - project: Project ID for this request.
167281// - region: Name of the region for this request.
167282// - vpnTunnel: Name of the VpnTunnel resource to return.
167283func (r *VpnTunnelsService) Get(project string, region string, vpnTunnel string) *VpnTunnelsGetCall {
167284	c := &VpnTunnelsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167285	c.project = project
167286	c.region = region
167287	c.vpnTunnel = vpnTunnel
167288	return c
167289}
167290
167291// Fields allows partial responses to be retrieved. See
167292// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167293// for more information.
167294func (c *VpnTunnelsGetCall) Fields(s ...googleapi.Field) *VpnTunnelsGetCall {
167295	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167296	return c
167297}
167298
167299// IfNoneMatch sets the optional parameter which makes the operation
167300// fail if the object's ETag matches the given value. This is useful for
167301// getting updates only after the object has changed since the last
167302// request. Use googleapi.IsNotModified to check whether the response
167303// error from Do is the result of In-None-Match.
167304func (c *VpnTunnelsGetCall) IfNoneMatch(entityTag string) *VpnTunnelsGetCall {
167305	c.ifNoneMatch_ = entityTag
167306	return c
167307}
167308
167309// Context sets the context to be used in this call's Do method. Any
167310// pending HTTP request will be aborted if the provided context is
167311// canceled.
167312func (c *VpnTunnelsGetCall) Context(ctx context.Context) *VpnTunnelsGetCall {
167313	c.ctx_ = ctx
167314	return c
167315}
167316
167317// Header returns an http.Header that can be modified by the caller to
167318// add HTTP headers to the request.
167319func (c *VpnTunnelsGetCall) Header() http.Header {
167320	if c.header_ == nil {
167321		c.header_ = make(http.Header)
167322	}
167323	return c.header_
167324}
167325
167326func (c *VpnTunnelsGetCall) doRequest(alt string) (*http.Response, error) {
167327	reqHeaders := make(http.Header)
167328	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
167329	for k, v := range c.header_ {
167330		reqHeaders[k] = v
167331	}
167332	reqHeaders.Set("User-Agent", c.s.userAgent())
167333	if c.ifNoneMatch_ != "" {
167334		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
167335	}
167336	var body io.Reader = nil
167337	c.urlParams_.Set("alt", alt)
167338	c.urlParams_.Set("prettyPrint", "false")
167339	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}")
167340	urls += "?" + c.urlParams_.Encode()
167341	req, err := http.NewRequest("GET", urls, body)
167342	if err != nil {
167343		return nil, err
167344	}
167345	req.Header = reqHeaders
167346	googleapi.Expand(req.URL, map[string]string{
167347		"project":   c.project,
167348		"region":    c.region,
167349		"vpnTunnel": c.vpnTunnel,
167350	})
167351	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167352}
167353
167354// Do executes the "compute.vpnTunnels.get" call.
167355// Exactly one of *VpnTunnel or error will be non-nil. Any non-2xx
167356// status code is an error. Response headers are in either
167357// *VpnTunnel.ServerResponse.Header or (if a response was returned at
167358// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
167359// to check whether the returned error was because
167360// http.StatusNotModified was returned.
167361func (c *VpnTunnelsGetCall) Do(opts ...googleapi.CallOption) (*VpnTunnel, error) {
167362	gensupport.SetOptions(c.urlParams_, opts...)
167363	res, err := c.doRequest("json")
167364	if res != nil && res.StatusCode == http.StatusNotModified {
167365		if res.Body != nil {
167366			res.Body.Close()
167367		}
167368		return nil, &googleapi.Error{
167369			Code:   res.StatusCode,
167370			Header: res.Header,
167371		}
167372	}
167373	if err != nil {
167374		return nil, err
167375	}
167376	defer googleapi.CloseBody(res)
167377	if err := googleapi.CheckResponse(res); err != nil {
167378		return nil, err
167379	}
167380	ret := &VpnTunnel{
167381		ServerResponse: googleapi.ServerResponse{
167382			Header:         res.Header,
167383			HTTPStatusCode: res.StatusCode,
167384		},
167385	}
167386	target := &ret
167387	if err := gensupport.DecodeResponse(target, res); err != nil {
167388		return nil, err
167389	}
167390	return ret, nil
167391	// {
167392	//   "description": "Returns the specified VpnTunnel resource. Gets a list of available VPN tunnels by making a list() request.",
167393	//   "flatPath": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
167394	//   "httpMethod": "GET",
167395	//   "id": "compute.vpnTunnels.get",
167396	//   "parameterOrder": [
167397	//     "project",
167398	//     "region",
167399	//     "vpnTunnel"
167400	//   ],
167401	//   "parameters": {
167402	//     "project": {
167403	//       "description": "Project ID for this request.",
167404	//       "location": "path",
167405	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167406	//       "required": true,
167407	//       "type": "string"
167408	//     },
167409	//     "region": {
167410	//       "description": "Name of the region for this request.",
167411	//       "location": "path",
167412	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
167413	//       "required": true,
167414	//       "type": "string"
167415	//     },
167416	//     "vpnTunnel": {
167417	//       "description": "Name of the VpnTunnel resource to return.",
167418	//       "location": "path",
167419	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
167420	//       "required": true,
167421	//       "type": "string"
167422	//     }
167423	//   },
167424	//   "path": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
167425	//   "response": {
167426	//     "$ref": "VpnTunnel"
167427	//   },
167428	//   "scopes": [
167429	//     "https://www.googleapis.com/auth/cloud-platform",
167430	//     "https://www.googleapis.com/auth/compute",
167431	//     "https://www.googleapis.com/auth/compute.readonly"
167432	//   ]
167433	// }
167434
167435}
167436
167437// method id "compute.vpnTunnels.insert":
167438
167439type VpnTunnelsInsertCall struct {
167440	s          *Service
167441	project    string
167442	region     string
167443	vpntunnel  *VpnTunnel
167444	urlParams_ gensupport.URLParams
167445	ctx_       context.Context
167446	header_    http.Header
167447}
167448
167449// Insert: Creates a VpnTunnel resource in the specified project and
167450// region using the data included in the request.
167451//
167452// - project: Project ID for this request.
167453// - region: Name of the region for this request.
167454func (r *VpnTunnelsService) Insert(project string, region string, vpntunnel *VpnTunnel) *VpnTunnelsInsertCall {
167455	c := &VpnTunnelsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167456	c.project = project
167457	c.region = region
167458	c.vpntunnel = vpntunnel
167459	return c
167460}
167461
167462// RequestId sets the optional parameter "requestId": An optional
167463// request ID to identify requests. Specify a unique request ID so that
167464// if you must retry your request, the server will know to ignore the
167465// request if it has already been completed. For example, consider a
167466// situation where you make an initial request and the request times
167467// out. If you make the request again with the same request ID, the
167468// server can check if original operation with the same request ID was
167469// received, and if so, will ignore the second request. This prevents
167470// clients from accidentally creating duplicate commitments. The request
167471// ID must be a valid UUID with the exception that zero UUID is not
167472// supported ( 00000000-0000-0000-0000-000000000000).
167473func (c *VpnTunnelsInsertCall) RequestId(requestId string) *VpnTunnelsInsertCall {
167474	c.urlParams_.Set("requestId", requestId)
167475	return c
167476}
167477
167478// Fields allows partial responses to be retrieved. See
167479// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167480// for more information.
167481func (c *VpnTunnelsInsertCall) Fields(s ...googleapi.Field) *VpnTunnelsInsertCall {
167482	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167483	return c
167484}
167485
167486// Context sets the context to be used in this call's Do method. Any
167487// pending HTTP request will be aborted if the provided context is
167488// canceled.
167489func (c *VpnTunnelsInsertCall) Context(ctx context.Context) *VpnTunnelsInsertCall {
167490	c.ctx_ = ctx
167491	return c
167492}
167493
167494// Header returns an http.Header that can be modified by the caller to
167495// add HTTP headers to the request.
167496func (c *VpnTunnelsInsertCall) Header() http.Header {
167497	if c.header_ == nil {
167498		c.header_ = make(http.Header)
167499	}
167500	return c.header_
167501}
167502
167503func (c *VpnTunnelsInsertCall) doRequest(alt string) (*http.Response, error) {
167504	reqHeaders := make(http.Header)
167505	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
167506	for k, v := range c.header_ {
167507		reqHeaders[k] = v
167508	}
167509	reqHeaders.Set("User-Agent", c.s.userAgent())
167510	var body io.Reader = nil
167511	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vpntunnel)
167512	if err != nil {
167513		return nil, err
167514	}
167515	reqHeaders.Set("Content-Type", "application/json")
167516	c.urlParams_.Set("alt", alt)
167517	c.urlParams_.Set("prettyPrint", "false")
167518	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels")
167519	urls += "?" + c.urlParams_.Encode()
167520	req, err := http.NewRequest("POST", urls, body)
167521	if err != nil {
167522		return nil, err
167523	}
167524	req.Header = reqHeaders
167525	googleapi.Expand(req.URL, map[string]string{
167526		"project": c.project,
167527		"region":  c.region,
167528	})
167529	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167530}
167531
167532// Do executes the "compute.vpnTunnels.insert" call.
167533// Exactly one of *Operation or error will be non-nil. Any non-2xx
167534// status code is an error. Response headers are in either
167535// *Operation.ServerResponse.Header or (if a response was returned at
167536// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
167537// to check whether the returned error was because
167538// http.StatusNotModified was returned.
167539func (c *VpnTunnelsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
167540	gensupport.SetOptions(c.urlParams_, opts...)
167541	res, err := c.doRequest("json")
167542	if res != nil && res.StatusCode == http.StatusNotModified {
167543		if res.Body != nil {
167544			res.Body.Close()
167545		}
167546		return nil, &googleapi.Error{
167547			Code:   res.StatusCode,
167548			Header: res.Header,
167549		}
167550	}
167551	if err != nil {
167552		return nil, err
167553	}
167554	defer googleapi.CloseBody(res)
167555	if err := googleapi.CheckResponse(res); err != nil {
167556		return nil, err
167557	}
167558	ret := &Operation{
167559		ServerResponse: googleapi.ServerResponse{
167560			Header:         res.Header,
167561			HTTPStatusCode: res.StatusCode,
167562		},
167563	}
167564	target := &ret
167565	if err := gensupport.DecodeResponse(target, res); err != nil {
167566		return nil, err
167567	}
167568	return ret, nil
167569	// {
167570	//   "description": "Creates a VpnTunnel resource in the specified project and region using the data included in the request.",
167571	//   "flatPath": "projects/{project}/regions/{region}/vpnTunnels",
167572	//   "httpMethod": "POST",
167573	//   "id": "compute.vpnTunnels.insert",
167574	//   "parameterOrder": [
167575	//     "project",
167576	//     "region"
167577	//   ],
167578	//   "parameters": {
167579	//     "project": {
167580	//       "description": "Project ID for this request.",
167581	//       "location": "path",
167582	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167583	//       "required": true,
167584	//       "type": "string"
167585	//     },
167586	//     "region": {
167587	//       "description": "Name of the region for this request.",
167588	//       "location": "path",
167589	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
167590	//       "required": true,
167591	//       "type": "string"
167592	//     },
167593	//     "requestId": {
167594	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).",
167595	//       "location": "query",
167596	//       "type": "string"
167597	//     }
167598	//   },
167599	//   "path": "projects/{project}/regions/{region}/vpnTunnels",
167600	//   "request": {
167601	//     "$ref": "VpnTunnel"
167602	//   },
167603	//   "response": {
167604	//     "$ref": "Operation"
167605	//   },
167606	//   "scopes": [
167607	//     "https://www.googleapis.com/auth/cloud-platform",
167608	//     "https://www.googleapis.com/auth/compute"
167609	//   ]
167610	// }
167611
167612}
167613
167614// method id "compute.vpnTunnels.list":
167615
167616type VpnTunnelsListCall struct {
167617	s            *Service
167618	project      string
167619	region       string
167620	urlParams_   gensupport.URLParams
167621	ifNoneMatch_ string
167622	ctx_         context.Context
167623	header_      http.Header
167624}
167625
167626// List: Retrieves a list of VpnTunnel resources contained in the
167627// specified project and region.
167628//
167629// - project: Project ID for this request.
167630// - region: Name of the region for this request.
167631func (r *VpnTunnelsService) List(project string, region string) *VpnTunnelsListCall {
167632	c := &VpnTunnelsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167633	c.project = project
167634	c.region = region
167635	return c
167636}
167637
167638// Filter sets the optional parameter "filter": A filter expression that
167639// filters resources listed in the response. The expression must specify
167640// the field name, a comparison operator, and the value that you want to
167641// use for filtering. The value must be a string, a number, or a
167642// boolean. The comparison operator must be either `=`, `!=`, `>`, or
167643// `<`. For example, if you are filtering Compute Engine instances, you
167644// can exclude instances named `example-instance` by specifying `name !=
167645// example-instance`. You can also filter nested fields. For example,
167646// you could specify `scheduling.automaticRestart = false` to include
167647// instances only if they are not scheduled for automatic restarts. You
167648// can use filtering on nested fields to filter based on resource
167649// labels. To filter on multiple expressions, provide each separate
167650// expression within parentheses. For example: ```
167651// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
167652// ``` By default, each expression is an `AND` expression. However, you
167653// can include `AND` and `OR` expressions explicitly. For example: ```
167654// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
167655// AND (scheduling.automaticRestart = true) ```
167656func (c *VpnTunnelsListCall) Filter(filter string) *VpnTunnelsListCall {
167657	c.urlParams_.Set("filter", filter)
167658	return c
167659}
167660
167661// MaxResults sets the optional parameter "maxResults": The maximum
167662// number of results per page that should be returned. If the number of
167663// available results is larger than `maxResults`, Compute Engine returns
167664// a `nextPageToken` that can be used to get the next page of results in
167665// subsequent list requests. Acceptable values are `0` to `500`,
167666// inclusive. (Default: `500`)
167667func (c *VpnTunnelsListCall) MaxResults(maxResults int64) *VpnTunnelsListCall {
167668	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
167669	return c
167670}
167671
167672// OrderBy sets the optional parameter "orderBy": Sorts list results by
167673// a certain order. By default, results are returned in alphanumerical
167674// order based on the resource name. You can also sort results in
167675// descending order based on the creation timestamp using
167676// `orderBy="creationTimestamp desc". This sorts results based on the
167677// `creationTimestamp` field in reverse chronological order (newest
167678// result first). Use this to sort resources like operations so that the
167679// newest operation is returned first. Currently, only sorting by `name`
167680// or `creationTimestamp desc` is supported.
167681func (c *VpnTunnelsListCall) OrderBy(orderBy string) *VpnTunnelsListCall {
167682	c.urlParams_.Set("orderBy", orderBy)
167683	return c
167684}
167685
167686// PageToken sets the optional parameter "pageToken": Specifies a page
167687// token to use. Set `pageToken` to the `nextPageToken` returned by a
167688// previous list request to get the next page of results.
167689func (c *VpnTunnelsListCall) PageToken(pageToken string) *VpnTunnelsListCall {
167690	c.urlParams_.Set("pageToken", pageToken)
167691	return c
167692}
167693
167694// ReturnPartialSuccess sets the optional parameter
167695// "returnPartialSuccess": Opt-in for partial success behavior which
167696// provides partial results in case of failure. The default value is
167697// false.
167698func (c *VpnTunnelsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnTunnelsListCall {
167699	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
167700	return c
167701}
167702
167703// Fields allows partial responses to be retrieved. See
167704// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167705// for more information.
167706func (c *VpnTunnelsListCall) Fields(s ...googleapi.Field) *VpnTunnelsListCall {
167707	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167708	return c
167709}
167710
167711// IfNoneMatch sets the optional parameter which makes the operation
167712// fail if the object's ETag matches the given value. This is useful for
167713// getting updates only after the object has changed since the last
167714// request. Use googleapi.IsNotModified to check whether the response
167715// error from Do is the result of In-None-Match.
167716func (c *VpnTunnelsListCall) IfNoneMatch(entityTag string) *VpnTunnelsListCall {
167717	c.ifNoneMatch_ = entityTag
167718	return c
167719}
167720
167721// Context sets the context to be used in this call's Do method. Any
167722// pending HTTP request will be aborted if the provided context is
167723// canceled.
167724func (c *VpnTunnelsListCall) Context(ctx context.Context) *VpnTunnelsListCall {
167725	c.ctx_ = ctx
167726	return c
167727}
167728
167729// Header returns an http.Header that can be modified by the caller to
167730// add HTTP headers to the request.
167731func (c *VpnTunnelsListCall) Header() http.Header {
167732	if c.header_ == nil {
167733		c.header_ = make(http.Header)
167734	}
167735	return c.header_
167736}
167737
167738func (c *VpnTunnelsListCall) doRequest(alt string) (*http.Response, error) {
167739	reqHeaders := make(http.Header)
167740	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
167741	for k, v := range c.header_ {
167742		reqHeaders[k] = v
167743	}
167744	reqHeaders.Set("User-Agent", c.s.userAgent())
167745	if c.ifNoneMatch_ != "" {
167746		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
167747	}
167748	var body io.Reader = nil
167749	c.urlParams_.Set("alt", alt)
167750	c.urlParams_.Set("prettyPrint", "false")
167751	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels")
167752	urls += "?" + c.urlParams_.Encode()
167753	req, err := http.NewRequest("GET", urls, body)
167754	if err != nil {
167755		return nil, err
167756	}
167757	req.Header = reqHeaders
167758	googleapi.Expand(req.URL, map[string]string{
167759		"project": c.project,
167760		"region":  c.region,
167761	})
167762	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167763}
167764
167765// Do executes the "compute.vpnTunnels.list" call.
167766// Exactly one of *VpnTunnelList or error will be non-nil. Any non-2xx
167767// status code is an error. Response headers are in either
167768// *VpnTunnelList.ServerResponse.Header or (if a response was returned
167769// at all) in error.(*googleapi.Error).Header. Use
167770// googleapi.IsNotModified to check whether the returned error was
167771// because http.StatusNotModified was returned.
167772func (c *VpnTunnelsListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelList, error) {
167773	gensupport.SetOptions(c.urlParams_, opts...)
167774	res, err := c.doRequest("json")
167775	if res != nil && res.StatusCode == http.StatusNotModified {
167776		if res.Body != nil {
167777			res.Body.Close()
167778		}
167779		return nil, &googleapi.Error{
167780			Code:   res.StatusCode,
167781			Header: res.Header,
167782		}
167783	}
167784	if err != nil {
167785		return nil, err
167786	}
167787	defer googleapi.CloseBody(res)
167788	if err := googleapi.CheckResponse(res); err != nil {
167789		return nil, err
167790	}
167791	ret := &VpnTunnelList{
167792		ServerResponse: googleapi.ServerResponse{
167793			Header:         res.Header,
167794			HTTPStatusCode: res.StatusCode,
167795		},
167796	}
167797	target := &ret
167798	if err := gensupport.DecodeResponse(target, res); err != nil {
167799		return nil, err
167800	}
167801	return ret, nil
167802	// {
167803	//   "description": "Retrieves a list of VpnTunnel resources contained in the specified project and region.",
167804	//   "flatPath": "projects/{project}/regions/{region}/vpnTunnels",
167805	//   "httpMethod": "GET",
167806	//   "id": "compute.vpnTunnels.list",
167807	//   "parameterOrder": [
167808	//     "project",
167809	//     "region"
167810	//   ],
167811	//   "parameters": {
167812	//     "filter": {
167813	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
167814	//       "location": "query",
167815	//       "type": "string"
167816	//     },
167817	//     "maxResults": {
167818	//       "default": "500",
167819	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
167820	//       "format": "uint32",
167821	//       "location": "query",
167822	//       "minimum": "0",
167823	//       "type": "integer"
167824	//     },
167825	//     "orderBy": {
167826	//       "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.",
167827	//       "location": "query",
167828	//       "type": "string"
167829	//     },
167830	//     "pageToken": {
167831	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
167832	//       "location": "query",
167833	//       "type": "string"
167834	//     },
167835	//     "project": {
167836	//       "description": "Project ID for this request.",
167837	//       "location": "path",
167838	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167839	//       "required": true,
167840	//       "type": "string"
167841	//     },
167842	//     "region": {
167843	//       "description": "Name of the region for this request.",
167844	//       "location": "path",
167845	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
167846	//       "required": true,
167847	//       "type": "string"
167848	//     },
167849	//     "returnPartialSuccess": {
167850	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
167851	//       "location": "query",
167852	//       "type": "boolean"
167853	//     }
167854	//   },
167855	//   "path": "projects/{project}/regions/{region}/vpnTunnels",
167856	//   "response": {
167857	//     "$ref": "VpnTunnelList"
167858	//   },
167859	//   "scopes": [
167860	//     "https://www.googleapis.com/auth/cloud-platform",
167861	//     "https://www.googleapis.com/auth/compute",
167862	//     "https://www.googleapis.com/auth/compute.readonly"
167863	//   ]
167864	// }
167865
167866}
167867
167868// Pages invokes f for each page of results.
167869// A non-nil error returned from f will halt the iteration.
167870// The provided context supersedes any context provided to the Context method.
167871func (c *VpnTunnelsListCall) Pages(ctx context.Context, f func(*VpnTunnelList) error) error {
167872	c.ctx_ = ctx
167873	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
167874	for {
167875		x, err := c.Do()
167876		if err != nil {
167877			return err
167878		}
167879		if err := f(x); err != nil {
167880			return err
167881		}
167882		if x.NextPageToken == "" {
167883			return nil
167884		}
167885		c.PageToken(x.NextPageToken)
167886	}
167887}
167888
167889// method id "compute.zoneOperations.delete":
167890
167891type ZoneOperationsDeleteCall struct {
167892	s          *Service
167893	project    string
167894	zone       string
167895	operation  string
167896	urlParams_ gensupport.URLParams
167897	ctx_       context.Context
167898	header_    http.Header
167899}
167900
167901// Delete: Deletes the specified zone-specific Operations resource.
167902//
167903// - operation: Name of the Operations resource to delete.
167904// - project: Project ID for this request.
167905// - zone: Name of the zone for this request.
167906func (r *ZoneOperationsService) Delete(project string, zone string, operation string) *ZoneOperationsDeleteCall {
167907	c := &ZoneOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
167908	c.project = project
167909	c.zone = zone
167910	c.operation = operation
167911	return c
167912}
167913
167914// Fields allows partial responses to be retrieved. See
167915// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
167916// for more information.
167917func (c *ZoneOperationsDeleteCall) Fields(s ...googleapi.Field) *ZoneOperationsDeleteCall {
167918	c.urlParams_.Set("fields", googleapi.CombineFields(s))
167919	return c
167920}
167921
167922// Context sets the context to be used in this call's Do method. Any
167923// pending HTTP request will be aborted if the provided context is
167924// canceled.
167925func (c *ZoneOperationsDeleteCall) Context(ctx context.Context) *ZoneOperationsDeleteCall {
167926	c.ctx_ = ctx
167927	return c
167928}
167929
167930// Header returns an http.Header that can be modified by the caller to
167931// add HTTP headers to the request.
167932func (c *ZoneOperationsDeleteCall) Header() http.Header {
167933	if c.header_ == nil {
167934		c.header_ = make(http.Header)
167935	}
167936	return c.header_
167937}
167938
167939func (c *ZoneOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
167940	reqHeaders := make(http.Header)
167941	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
167942	for k, v := range c.header_ {
167943		reqHeaders[k] = v
167944	}
167945	reqHeaders.Set("User-Agent", c.s.userAgent())
167946	var body io.Reader = nil
167947	c.urlParams_.Set("alt", alt)
167948	c.urlParams_.Set("prettyPrint", "false")
167949	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/operations/{operation}")
167950	urls += "?" + c.urlParams_.Encode()
167951	req, err := http.NewRequest("DELETE", urls, body)
167952	if err != nil {
167953		return nil, err
167954	}
167955	req.Header = reqHeaders
167956	googleapi.Expand(req.URL, map[string]string{
167957		"project":   c.project,
167958		"zone":      c.zone,
167959		"operation": c.operation,
167960	})
167961	return gensupport.SendRequest(c.ctx_, c.s.client, req)
167962}
167963
167964// Do executes the "compute.zoneOperations.delete" call.
167965func (c *ZoneOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
167966	gensupport.SetOptions(c.urlParams_, opts...)
167967	res, err := c.doRequest("json")
167968	if err != nil {
167969		return err
167970	}
167971	defer googleapi.CloseBody(res)
167972	if err := googleapi.CheckResponse(res); err != nil {
167973		return err
167974	}
167975	return nil
167976	// {
167977	//   "description": "Deletes the specified zone-specific Operations resource.",
167978	//   "flatPath": "projects/{project}/zones/{zone}/operations/{operation}",
167979	//   "httpMethod": "DELETE",
167980	//   "id": "compute.zoneOperations.delete",
167981	//   "parameterOrder": [
167982	//     "project",
167983	//     "zone",
167984	//     "operation"
167985	//   ],
167986	//   "parameters": {
167987	//     "operation": {
167988	//       "description": "Name of the Operations resource to delete.",
167989	//       "location": "path",
167990	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
167991	//       "required": true,
167992	//       "type": "string"
167993	//     },
167994	//     "project": {
167995	//       "description": "Project ID for this request.",
167996	//       "location": "path",
167997	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
167998	//       "required": true,
167999	//       "type": "string"
168000	//     },
168001	//     "zone": {
168002	//       "description": "Name of the zone for this request.",
168003	//       "location": "path",
168004	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
168005	//       "required": true,
168006	//       "type": "string"
168007	//     }
168008	//   },
168009	//   "path": "projects/{project}/zones/{zone}/operations/{operation}",
168010	//   "scopes": [
168011	//     "https://www.googleapis.com/auth/cloud-platform",
168012	//     "https://www.googleapis.com/auth/compute"
168013	//   ]
168014	// }
168015
168016}
168017
168018// method id "compute.zoneOperations.get":
168019
168020type ZoneOperationsGetCall struct {
168021	s            *Service
168022	project      string
168023	zone         string
168024	operation    string
168025	urlParams_   gensupport.URLParams
168026	ifNoneMatch_ string
168027	ctx_         context.Context
168028	header_      http.Header
168029}
168030
168031// Get: Retrieves the specified zone-specific Operations resource.
168032//
168033// - operation: Name of the Operations resource to return.
168034// - project: Project ID for this request.
168035// - zone: Name of the zone for this request.
168036func (r *ZoneOperationsService) Get(project string, zone string, operation string) *ZoneOperationsGetCall {
168037	c := &ZoneOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168038	c.project = project
168039	c.zone = zone
168040	c.operation = operation
168041	return c
168042}
168043
168044// Fields allows partial responses to be retrieved. See
168045// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168046// for more information.
168047func (c *ZoneOperationsGetCall) Fields(s ...googleapi.Field) *ZoneOperationsGetCall {
168048	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168049	return c
168050}
168051
168052// IfNoneMatch sets the optional parameter which makes the operation
168053// fail if the object's ETag matches the given value. This is useful for
168054// getting updates only after the object has changed since the last
168055// request. Use googleapi.IsNotModified to check whether the response
168056// error from Do is the result of In-None-Match.
168057func (c *ZoneOperationsGetCall) IfNoneMatch(entityTag string) *ZoneOperationsGetCall {
168058	c.ifNoneMatch_ = entityTag
168059	return c
168060}
168061
168062// Context sets the context to be used in this call's Do method. Any
168063// pending HTTP request will be aborted if the provided context is
168064// canceled.
168065func (c *ZoneOperationsGetCall) Context(ctx context.Context) *ZoneOperationsGetCall {
168066	c.ctx_ = ctx
168067	return c
168068}
168069
168070// Header returns an http.Header that can be modified by the caller to
168071// add HTTP headers to the request.
168072func (c *ZoneOperationsGetCall) Header() http.Header {
168073	if c.header_ == nil {
168074		c.header_ = make(http.Header)
168075	}
168076	return c.header_
168077}
168078
168079func (c *ZoneOperationsGetCall) doRequest(alt string) (*http.Response, error) {
168080	reqHeaders := make(http.Header)
168081	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
168082	for k, v := range c.header_ {
168083		reqHeaders[k] = v
168084	}
168085	reqHeaders.Set("User-Agent", c.s.userAgent())
168086	if c.ifNoneMatch_ != "" {
168087		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
168088	}
168089	var body io.Reader = nil
168090	c.urlParams_.Set("alt", alt)
168091	c.urlParams_.Set("prettyPrint", "false")
168092	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/operations/{operation}")
168093	urls += "?" + c.urlParams_.Encode()
168094	req, err := http.NewRequest("GET", urls, body)
168095	if err != nil {
168096		return nil, err
168097	}
168098	req.Header = reqHeaders
168099	googleapi.Expand(req.URL, map[string]string{
168100		"project":   c.project,
168101		"zone":      c.zone,
168102		"operation": c.operation,
168103	})
168104	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168105}
168106
168107// Do executes the "compute.zoneOperations.get" call.
168108// Exactly one of *Operation or error will be non-nil. Any non-2xx
168109// status code is an error. Response headers are in either
168110// *Operation.ServerResponse.Header or (if a response was returned at
168111// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
168112// to check whether the returned error was because
168113// http.StatusNotModified was returned.
168114func (c *ZoneOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
168115	gensupport.SetOptions(c.urlParams_, opts...)
168116	res, err := c.doRequest("json")
168117	if res != nil && res.StatusCode == http.StatusNotModified {
168118		if res.Body != nil {
168119			res.Body.Close()
168120		}
168121		return nil, &googleapi.Error{
168122			Code:   res.StatusCode,
168123			Header: res.Header,
168124		}
168125	}
168126	if err != nil {
168127		return nil, err
168128	}
168129	defer googleapi.CloseBody(res)
168130	if err := googleapi.CheckResponse(res); err != nil {
168131		return nil, err
168132	}
168133	ret := &Operation{
168134		ServerResponse: googleapi.ServerResponse{
168135			Header:         res.Header,
168136			HTTPStatusCode: res.StatusCode,
168137		},
168138	}
168139	target := &ret
168140	if err := gensupport.DecodeResponse(target, res); err != nil {
168141		return nil, err
168142	}
168143	return ret, nil
168144	// {
168145	//   "description": "Retrieves the specified zone-specific Operations resource.",
168146	//   "flatPath": "projects/{project}/zones/{zone}/operations/{operation}",
168147	//   "httpMethod": "GET",
168148	//   "id": "compute.zoneOperations.get",
168149	//   "parameterOrder": [
168150	//     "project",
168151	//     "zone",
168152	//     "operation"
168153	//   ],
168154	//   "parameters": {
168155	//     "operation": {
168156	//       "description": "Name of the Operations resource to return.",
168157	//       "location": "path",
168158	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
168159	//       "required": true,
168160	//       "type": "string"
168161	//     },
168162	//     "project": {
168163	//       "description": "Project ID for this request.",
168164	//       "location": "path",
168165	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168166	//       "required": true,
168167	//       "type": "string"
168168	//     },
168169	//     "zone": {
168170	//       "description": "Name of the zone for this request.",
168171	//       "location": "path",
168172	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
168173	//       "required": true,
168174	//       "type": "string"
168175	//     }
168176	//   },
168177	//   "path": "projects/{project}/zones/{zone}/operations/{operation}",
168178	//   "response": {
168179	//     "$ref": "Operation"
168180	//   },
168181	//   "scopes": [
168182	//     "https://www.googleapis.com/auth/cloud-platform",
168183	//     "https://www.googleapis.com/auth/compute",
168184	//     "https://www.googleapis.com/auth/compute.readonly"
168185	//   ]
168186	// }
168187
168188}
168189
168190// method id "compute.zoneOperations.list":
168191
168192type ZoneOperationsListCall struct {
168193	s            *Service
168194	project      string
168195	zone         string
168196	urlParams_   gensupport.URLParams
168197	ifNoneMatch_ string
168198	ctx_         context.Context
168199	header_      http.Header
168200}
168201
168202// List: Retrieves a list of Operation resources contained within the
168203// specified zone.
168204//
168205// - project: Project ID for this request.
168206// - zone: Name of the zone for request.
168207func (r *ZoneOperationsService) List(project string, zone string) *ZoneOperationsListCall {
168208	c := &ZoneOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168209	c.project = project
168210	c.zone = zone
168211	return c
168212}
168213
168214// Filter sets the optional parameter "filter": A filter expression that
168215// filters resources listed in the response. The expression must specify
168216// the field name, a comparison operator, and the value that you want to
168217// use for filtering. The value must be a string, a number, or a
168218// boolean. The comparison operator must be either `=`, `!=`, `>`, or
168219// `<`. For example, if you are filtering Compute Engine instances, you
168220// can exclude instances named `example-instance` by specifying `name !=
168221// example-instance`. You can also filter nested fields. For example,
168222// you could specify `scheduling.automaticRestart = false` to include
168223// instances only if they are not scheduled for automatic restarts. You
168224// can use filtering on nested fields to filter based on resource
168225// labels. To filter on multiple expressions, provide each separate
168226// expression within parentheses. For example: ```
168227// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
168228// ``` By default, each expression is an `AND` expression. However, you
168229// can include `AND` and `OR` expressions explicitly. For example: ```
168230// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
168231// AND (scheduling.automaticRestart = true) ```
168232func (c *ZoneOperationsListCall) Filter(filter string) *ZoneOperationsListCall {
168233	c.urlParams_.Set("filter", filter)
168234	return c
168235}
168236
168237// MaxResults sets the optional parameter "maxResults": The maximum
168238// number of results per page that should be returned. If the number of
168239// available results is larger than `maxResults`, Compute Engine returns
168240// a `nextPageToken` that can be used to get the next page of results in
168241// subsequent list requests. Acceptable values are `0` to `500`,
168242// inclusive. (Default: `500`)
168243func (c *ZoneOperationsListCall) MaxResults(maxResults int64) *ZoneOperationsListCall {
168244	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
168245	return c
168246}
168247
168248// OrderBy sets the optional parameter "orderBy": Sorts list results by
168249// a certain order. By default, results are returned in alphanumerical
168250// order based on the resource name. You can also sort results in
168251// descending order based on the creation timestamp using
168252// `orderBy="creationTimestamp desc". This sorts results based on the
168253// `creationTimestamp` field in reverse chronological order (newest
168254// result first). Use this to sort resources like operations so that the
168255// newest operation is returned first. Currently, only sorting by `name`
168256// or `creationTimestamp desc` is supported.
168257func (c *ZoneOperationsListCall) OrderBy(orderBy string) *ZoneOperationsListCall {
168258	c.urlParams_.Set("orderBy", orderBy)
168259	return c
168260}
168261
168262// PageToken sets the optional parameter "pageToken": Specifies a page
168263// token to use. Set `pageToken` to the `nextPageToken` returned by a
168264// previous list request to get the next page of results.
168265func (c *ZoneOperationsListCall) PageToken(pageToken string) *ZoneOperationsListCall {
168266	c.urlParams_.Set("pageToken", pageToken)
168267	return c
168268}
168269
168270// ReturnPartialSuccess sets the optional parameter
168271// "returnPartialSuccess": Opt-in for partial success behavior which
168272// provides partial results in case of failure. The default value is
168273// false.
168274func (c *ZoneOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ZoneOperationsListCall {
168275	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
168276	return c
168277}
168278
168279// Fields allows partial responses to be retrieved. See
168280// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168281// for more information.
168282func (c *ZoneOperationsListCall) Fields(s ...googleapi.Field) *ZoneOperationsListCall {
168283	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168284	return c
168285}
168286
168287// IfNoneMatch sets the optional parameter which makes the operation
168288// fail if the object's ETag matches the given value. This is useful for
168289// getting updates only after the object has changed since the last
168290// request. Use googleapi.IsNotModified to check whether the response
168291// error from Do is the result of In-None-Match.
168292func (c *ZoneOperationsListCall) IfNoneMatch(entityTag string) *ZoneOperationsListCall {
168293	c.ifNoneMatch_ = entityTag
168294	return c
168295}
168296
168297// Context sets the context to be used in this call's Do method. Any
168298// pending HTTP request will be aborted if the provided context is
168299// canceled.
168300func (c *ZoneOperationsListCall) Context(ctx context.Context) *ZoneOperationsListCall {
168301	c.ctx_ = ctx
168302	return c
168303}
168304
168305// Header returns an http.Header that can be modified by the caller to
168306// add HTTP headers to the request.
168307func (c *ZoneOperationsListCall) Header() http.Header {
168308	if c.header_ == nil {
168309		c.header_ = make(http.Header)
168310	}
168311	return c.header_
168312}
168313
168314func (c *ZoneOperationsListCall) doRequest(alt string) (*http.Response, error) {
168315	reqHeaders := make(http.Header)
168316	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
168317	for k, v := range c.header_ {
168318		reqHeaders[k] = v
168319	}
168320	reqHeaders.Set("User-Agent", c.s.userAgent())
168321	if c.ifNoneMatch_ != "" {
168322		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
168323	}
168324	var body io.Reader = nil
168325	c.urlParams_.Set("alt", alt)
168326	c.urlParams_.Set("prettyPrint", "false")
168327	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/operations")
168328	urls += "?" + c.urlParams_.Encode()
168329	req, err := http.NewRequest("GET", urls, body)
168330	if err != nil {
168331		return nil, err
168332	}
168333	req.Header = reqHeaders
168334	googleapi.Expand(req.URL, map[string]string{
168335		"project": c.project,
168336		"zone":    c.zone,
168337	})
168338	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168339}
168340
168341// Do executes the "compute.zoneOperations.list" call.
168342// Exactly one of *OperationList or error will be non-nil. Any non-2xx
168343// status code is an error. Response headers are in either
168344// *OperationList.ServerResponse.Header or (if a response was returned
168345// at all) in error.(*googleapi.Error).Header. Use
168346// googleapi.IsNotModified to check whether the returned error was
168347// because http.StatusNotModified was returned.
168348func (c *ZoneOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
168349	gensupport.SetOptions(c.urlParams_, opts...)
168350	res, err := c.doRequest("json")
168351	if res != nil && res.StatusCode == http.StatusNotModified {
168352		if res.Body != nil {
168353			res.Body.Close()
168354		}
168355		return nil, &googleapi.Error{
168356			Code:   res.StatusCode,
168357			Header: res.Header,
168358		}
168359	}
168360	if err != nil {
168361		return nil, err
168362	}
168363	defer googleapi.CloseBody(res)
168364	if err := googleapi.CheckResponse(res); err != nil {
168365		return nil, err
168366	}
168367	ret := &OperationList{
168368		ServerResponse: googleapi.ServerResponse{
168369			Header:         res.Header,
168370			HTTPStatusCode: res.StatusCode,
168371		},
168372	}
168373	target := &ret
168374	if err := gensupport.DecodeResponse(target, res); err != nil {
168375		return nil, err
168376	}
168377	return ret, nil
168378	// {
168379	//   "description": "Retrieves a list of Operation resources contained within the specified zone.",
168380	//   "flatPath": "projects/{project}/zones/{zone}/operations",
168381	//   "httpMethod": "GET",
168382	//   "id": "compute.zoneOperations.list",
168383	//   "parameterOrder": [
168384	//     "project",
168385	//     "zone"
168386	//   ],
168387	//   "parameters": {
168388	//     "filter": {
168389	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
168390	//       "location": "query",
168391	//       "type": "string"
168392	//     },
168393	//     "maxResults": {
168394	//       "default": "500",
168395	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
168396	//       "format": "uint32",
168397	//       "location": "query",
168398	//       "minimum": "0",
168399	//       "type": "integer"
168400	//     },
168401	//     "orderBy": {
168402	//       "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.",
168403	//       "location": "query",
168404	//       "type": "string"
168405	//     },
168406	//     "pageToken": {
168407	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
168408	//       "location": "query",
168409	//       "type": "string"
168410	//     },
168411	//     "project": {
168412	//       "description": "Project ID for this request.",
168413	//       "location": "path",
168414	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168415	//       "required": true,
168416	//       "type": "string"
168417	//     },
168418	//     "returnPartialSuccess": {
168419	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
168420	//       "location": "query",
168421	//       "type": "boolean"
168422	//     },
168423	//     "zone": {
168424	//       "description": "Name of the zone for request.",
168425	//       "location": "path",
168426	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
168427	//       "required": true,
168428	//       "type": "string"
168429	//     }
168430	//   },
168431	//   "path": "projects/{project}/zones/{zone}/operations",
168432	//   "response": {
168433	//     "$ref": "OperationList"
168434	//   },
168435	//   "scopes": [
168436	//     "https://www.googleapis.com/auth/cloud-platform",
168437	//     "https://www.googleapis.com/auth/compute",
168438	//     "https://www.googleapis.com/auth/compute.readonly"
168439	//   ]
168440	// }
168441
168442}
168443
168444// Pages invokes f for each page of results.
168445// A non-nil error returned from f will halt the iteration.
168446// The provided context supersedes any context provided to the Context method.
168447func (c *ZoneOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
168448	c.ctx_ = ctx
168449	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
168450	for {
168451		x, err := c.Do()
168452		if err != nil {
168453			return err
168454		}
168455		if err := f(x); err != nil {
168456			return err
168457		}
168458		if x.NextPageToken == "" {
168459			return nil
168460		}
168461		c.PageToken(x.NextPageToken)
168462	}
168463}
168464
168465// method id "compute.zoneOperations.wait":
168466
168467type ZoneOperationsWaitCall struct {
168468	s          *Service
168469	project    string
168470	zone       string
168471	operation  string
168472	urlParams_ gensupport.URLParams
168473	ctx_       context.Context
168474	header_    http.Header
168475}
168476
168477// Wait: Waits for the specified Operation resource to return as `DONE`
168478// or for the request to approach the 2 minute deadline, and retrieves
168479// the specified Operation resource. This method waits for no more than
168480// the 2 minutes and then returns the current state of the operation,
168481// which might be `DONE` or still in progress. This method is called on
168482// a best-effort basis. Specifically: - In uncommon cases, when the
168483// server is overloaded, the request might return before the default
168484// deadline is reached, or might return after zero seconds. - If the
168485// default deadline is reached, there is no guarantee that the operation
168486// is actually done when the method returns. Be prepared to retry if the
168487// operation is not `DONE`.
168488//
168489// - operation: Name of the Operations resource to return.
168490// - project: Project ID for this request.
168491// - zone: Name of the zone for this request.
168492func (r *ZoneOperationsService) Wait(project string, zone string, operation string) *ZoneOperationsWaitCall {
168493	c := &ZoneOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168494	c.project = project
168495	c.zone = zone
168496	c.operation = operation
168497	return c
168498}
168499
168500// Fields allows partial responses to be retrieved. See
168501// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168502// for more information.
168503func (c *ZoneOperationsWaitCall) Fields(s ...googleapi.Field) *ZoneOperationsWaitCall {
168504	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168505	return c
168506}
168507
168508// Context sets the context to be used in this call's Do method. Any
168509// pending HTTP request will be aborted if the provided context is
168510// canceled.
168511func (c *ZoneOperationsWaitCall) Context(ctx context.Context) *ZoneOperationsWaitCall {
168512	c.ctx_ = ctx
168513	return c
168514}
168515
168516// Header returns an http.Header that can be modified by the caller to
168517// add HTTP headers to the request.
168518func (c *ZoneOperationsWaitCall) Header() http.Header {
168519	if c.header_ == nil {
168520		c.header_ = make(http.Header)
168521	}
168522	return c.header_
168523}
168524
168525func (c *ZoneOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
168526	reqHeaders := make(http.Header)
168527	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
168528	for k, v := range c.header_ {
168529		reqHeaders[k] = v
168530	}
168531	reqHeaders.Set("User-Agent", c.s.userAgent())
168532	var body io.Reader = nil
168533	c.urlParams_.Set("alt", alt)
168534	c.urlParams_.Set("prettyPrint", "false")
168535	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/operations/{operation}/wait")
168536	urls += "?" + c.urlParams_.Encode()
168537	req, err := http.NewRequest("POST", urls, body)
168538	if err != nil {
168539		return nil, err
168540	}
168541	req.Header = reqHeaders
168542	googleapi.Expand(req.URL, map[string]string{
168543		"project":   c.project,
168544		"zone":      c.zone,
168545		"operation": c.operation,
168546	})
168547	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168548}
168549
168550// Do executes the "compute.zoneOperations.wait" call.
168551// Exactly one of *Operation or error will be non-nil. Any non-2xx
168552// status code is an error. Response headers are in either
168553// *Operation.ServerResponse.Header or (if a response was returned at
168554// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
168555// to check whether the returned error was because
168556// http.StatusNotModified was returned.
168557func (c *ZoneOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
168558	gensupport.SetOptions(c.urlParams_, opts...)
168559	res, err := c.doRequest("json")
168560	if res != nil && res.StatusCode == http.StatusNotModified {
168561		if res.Body != nil {
168562			res.Body.Close()
168563		}
168564		return nil, &googleapi.Error{
168565			Code:   res.StatusCode,
168566			Header: res.Header,
168567		}
168568	}
168569	if err != nil {
168570		return nil, err
168571	}
168572	defer googleapi.CloseBody(res)
168573	if err := googleapi.CheckResponse(res); err != nil {
168574		return nil, err
168575	}
168576	ret := &Operation{
168577		ServerResponse: googleapi.ServerResponse{
168578			Header:         res.Header,
168579			HTTPStatusCode: res.StatusCode,
168580		},
168581	}
168582	target := &ret
168583	if err := gensupport.DecodeResponse(target, res); err != nil {
168584		return nil, err
168585	}
168586	return ret, nil
168587	// {
168588	//   "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 waits for no more than the 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`. ",
168589	//   "flatPath": "projects/{project}/zones/{zone}/operations/{operation}/wait",
168590	//   "httpMethod": "POST",
168591	//   "id": "compute.zoneOperations.wait",
168592	//   "parameterOrder": [
168593	//     "project",
168594	//     "zone",
168595	//     "operation"
168596	//   ],
168597	//   "parameters": {
168598	//     "operation": {
168599	//       "description": "Name of the Operations resource to return.",
168600	//       "location": "path",
168601	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
168602	//       "required": true,
168603	//       "type": "string"
168604	//     },
168605	//     "project": {
168606	//       "description": "Project ID for this request.",
168607	//       "location": "path",
168608	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168609	//       "required": true,
168610	//       "type": "string"
168611	//     },
168612	//     "zone": {
168613	//       "description": "Name of the zone for this request.",
168614	//       "location": "path",
168615	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
168616	//       "required": true,
168617	//       "type": "string"
168618	//     }
168619	//   },
168620	//   "path": "projects/{project}/zones/{zone}/operations/{operation}/wait",
168621	//   "response": {
168622	//     "$ref": "Operation"
168623	//   },
168624	//   "scopes": [
168625	//     "https://www.googleapis.com/auth/cloud-platform",
168626	//     "https://www.googleapis.com/auth/compute",
168627	//     "https://www.googleapis.com/auth/compute.readonly"
168628	//   ]
168629	// }
168630
168631}
168632
168633// method id "compute.zones.get":
168634
168635type ZonesGetCall struct {
168636	s            *Service
168637	project      string
168638	zone         string
168639	urlParams_   gensupport.URLParams
168640	ifNoneMatch_ string
168641	ctx_         context.Context
168642	header_      http.Header
168643}
168644
168645// Get: Returns the specified Zone resource. Gets a list of available
168646// zones by making a list() request.
168647//
168648// - project: Project ID for this request.
168649// - zone: Name of the zone resource to return.
168650func (r *ZonesService) Get(project string, zone string) *ZonesGetCall {
168651	c := &ZonesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168652	c.project = project
168653	c.zone = zone
168654	return c
168655}
168656
168657// Fields allows partial responses to be retrieved. See
168658// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168659// for more information.
168660func (c *ZonesGetCall) Fields(s ...googleapi.Field) *ZonesGetCall {
168661	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168662	return c
168663}
168664
168665// IfNoneMatch sets the optional parameter which makes the operation
168666// fail if the object's ETag matches the given value. This is useful for
168667// getting updates only after the object has changed since the last
168668// request. Use googleapi.IsNotModified to check whether the response
168669// error from Do is the result of In-None-Match.
168670func (c *ZonesGetCall) IfNoneMatch(entityTag string) *ZonesGetCall {
168671	c.ifNoneMatch_ = entityTag
168672	return c
168673}
168674
168675// Context sets the context to be used in this call's Do method. Any
168676// pending HTTP request will be aborted if the provided context is
168677// canceled.
168678func (c *ZonesGetCall) Context(ctx context.Context) *ZonesGetCall {
168679	c.ctx_ = ctx
168680	return c
168681}
168682
168683// Header returns an http.Header that can be modified by the caller to
168684// add HTTP headers to the request.
168685func (c *ZonesGetCall) Header() http.Header {
168686	if c.header_ == nil {
168687		c.header_ = make(http.Header)
168688	}
168689	return c.header_
168690}
168691
168692func (c *ZonesGetCall) doRequest(alt string) (*http.Response, error) {
168693	reqHeaders := make(http.Header)
168694	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
168695	for k, v := range c.header_ {
168696		reqHeaders[k] = v
168697	}
168698	reqHeaders.Set("User-Agent", c.s.userAgent())
168699	if c.ifNoneMatch_ != "" {
168700		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
168701	}
168702	var body io.Reader = nil
168703	c.urlParams_.Set("alt", alt)
168704	c.urlParams_.Set("prettyPrint", "false")
168705	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}")
168706	urls += "?" + c.urlParams_.Encode()
168707	req, err := http.NewRequest("GET", urls, body)
168708	if err != nil {
168709		return nil, err
168710	}
168711	req.Header = reqHeaders
168712	googleapi.Expand(req.URL, map[string]string{
168713		"project": c.project,
168714		"zone":    c.zone,
168715	})
168716	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168717}
168718
168719// Do executes the "compute.zones.get" call.
168720// Exactly one of *Zone or error will be non-nil. Any non-2xx status
168721// code is an error. Response headers are in either
168722// *Zone.ServerResponse.Header or (if a response was returned at all) in
168723// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
168724// whether the returned error was because http.StatusNotModified was
168725// returned.
168726func (c *ZonesGetCall) Do(opts ...googleapi.CallOption) (*Zone, error) {
168727	gensupport.SetOptions(c.urlParams_, opts...)
168728	res, err := c.doRequest("json")
168729	if res != nil && res.StatusCode == http.StatusNotModified {
168730		if res.Body != nil {
168731			res.Body.Close()
168732		}
168733		return nil, &googleapi.Error{
168734			Code:   res.StatusCode,
168735			Header: res.Header,
168736		}
168737	}
168738	if err != nil {
168739		return nil, err
168740	}
168741	defer googleapi.CloseBody(res)
168742	if err := googleapi.CheckResponse(res); err != nil {
168743		return nil, err
168744	}
168745	ret := &Zone{
168746		ServerResponse: googleapi.ServerResponse{
168747			Header:         res.Header,
168748			HTTPStatusCode: res.StatusCode,
168749		},
168750	}
168751	target := &ret
168752	if err := gensupport.DecodeResponse(target, res); err != nil {
168753		return nil, err
168754	}
168755	return ret, nil
168756	// {
168757	//   "description": "Returns the specified Zone resource. Gets a list of available zones by making a list() request.",
168758	//   "flatPath": "projects/{project}/zones/{zone}",
168759	//   "httpMethod": "GET",
168760	//   "id": "compute.zones.get",
168761	//   "parameterOrder": [
168762	//     "project",
168763	//     "zone"
168764	//   ],
168765	//   "parameters": {
168766	//     "project": {
168767	//       "description": "Project ID for this request.",
168768	//       "location": "path",
168769	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
168770	//       "required": true,
168771	//       "type": "string"
168772	//     },
168773	//     "zone": {
168774	//       "description": "Name of the zone resource to return.",
168775	//       "location": "path",
168776	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
168777	//       "required": true,
168778	//       "type": "string"
168779	//     }
168780	//   },
168781	//   "path": "projects/{project}/zones/{zone}",
168782	//   "response": {
168783	//     "$ref": "Zone"
168784	//   },
168785	//   "scopes": [
168786	//     "https://www.googleapis.com/auth/cloud-platform",
168787	//     "https://www.googleapis.com/auth/compute",
168788	//     "https://www.googleapis.com/auth/compute.readonly"
168789	//   ]
168790	// }
168791
168792}
168793
168794// method id "compute.zones.list":
168795
168796type ZonesListCall struct {
168797	s            *Service
168798	project      string
168799	urlParams_   gensupport.URLParams
168800	ifNoneMatch_ string
168801	ctx_         context.Context
168802	header_      http.Header
168803}
168804
168805// List: Retrieves the list of Zone resources available to the specified
168806// project.
168807//
168808// - project: Project ID for this request.
168809func (r *ZonesService) List(project string) *ZonesListCall {
168810	c := &ZonesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
168811	c.project = project
168812	return c
168813}
168814
168815// Filter sets the optional parameter "filter": A filter expression that
168816// filters resources listed in the response. The expression must specify
168817// the field name, a comparison operator, and the value that you want to
168818// use for filtering. The value must be a string, a number, or a
168819// boolean. The comparison operator must be either `=`, `!=`, `>`, or
168820// `<`. For example, if you are filtering Compute Engine instances, you
168821// can exclude instances named `example-instance` by specifying `name !=
168822// example-instance`. You can also filter nested fields. For example,
168823// you could specify `scheduling.automaticRestart = false` to include
168824// instances only if they are not scheduled for automatic restarts. You
168825// can use filtering on nested fields to filter based on resource
168826// labels. To filter on multiple expressions, provide each separate
168827// expression within parentheses. For example: ```
168828// (scheduling.automaticRestart = true) (cpuPlatform = "Intel Skylake")
168829// ``` By default, each expression is an `AND` expression. However, you
168830// can include `AND` and `OR` expressions explicitly. For example: ```
168831// (cpuPlatform = "Intel Skylake") OR (cpuPlatform = "Intel Broadwell")
168832// AND (scheduling.automaticRestart = true) ```
168833func (c *ZonesListCall) Filter(filter string) *ZonesListCall {
168834	c.urlParams_.Set("filter", filter)
168835	return c
168836}
168837
168838// MaxResults sets the optional parameter "maxResults": The maximum
168839// number of results per page that should be returned. If the number of
168840// available results is larger than `maxResults`, Compute Engine returns
168841// a `nextPageToken` that can be used to get the next page of results in
168842// subsequent list requests. Acceptable values are `0` to `500`,
168843// inclusive. (Default: `500`)
168844func (c *ZonesListCall) MaxResults(maxResults int64) *ZonesListCall {
168845	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
168846	return c
168847}
168848
168849// OrderBy sets the optional parameter "orderBy": Sorts list results by
168850// a certain order. By default, results are returned in alphanumerical
168851// order based on the resource name. You can also sort results in
168852// descending order based on the creation timestamp using
168853// `orderBy="creationTimestamp desc". This sorts results based on the
168854// `creationTimestamp` field in reverse chronological order (newest
168855// result first). Use this to sort resources like operations so that the
168856// newest operation is returned first. Currently, only sorting by `name`
168857// or `creationTimestamp desc` is supported.
168858func (c *ZonesListCall) OrderBy(orderBy string) *ZonesListCall {
168859	c.urlParams_.Set("orderBy", orderBy)
168860	return c
168861}
168862
168863// PageToken sets the optional parameter "pageToken": Specifies a page
168864// token to use. Set `pageToken` to the `nextPageToken` returned by a
168865// previous list request to get the next page of results.
168866func (c *ZonesListCall) PageToken(pageToken string) *ZonesListCall {
168867	c.urlParams_.Set("pageToken", pageToken)
168868	return c
168869}
168870
168871// ReturnPartialSuccess sets the optional parameter
168872// "returnPartialSuccess": Opt-in for partial success behavior which
168873// provides partial results in case of failure. The default value is
168874// false.
168875func (c *ZonesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ZonesListCall {
168876	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
168877	return c
168878}
168879
168880// Fields allows partial responses to be retrieved. See
168881// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
168882// for more information.
168883func (c *ZonesListCall) Fields(s ...googleapi.Field) *ZonesListCall {
168884	c.urlParams_.Set("fields", googleapi.CombineFields(s))
168885	return c
168886}
168887
168888// IfNoneMatch sets the optional parameter which makes the operation
168889// fail if the object's ETag matches the given value. This is useful for
168890// getting updates only after the object has changed since the last
168891// request. Use googleapi.IsNotModified to check whether the response
168892// error from Do is the result of In-None-Match.
168893func (c *ZonesListCall) IfNoneMatch(entityTag string) *ZonesListCall {
168894	c.ifNoneMatch_ = entityTag
168895	return c
168896}
168897
168898// Context sets the context to be used in this call's Do method. Any
168899// pending HTTP request will be aborted if the provided context is
168900// canceled.
168901func (c *ZonesListCall) Context(ctx context.Context) *ZonesListCall {
168902	c.ctx_ = ctx
168903	return c
168904}
168905
168906// Header returns an http.Header that can be modified by the caller to
168907// add HTTP headers to the request.
168908func (c *ZonesListCall) Header() http.Header {
168909	if c.header_ == nil {
168910		c.header_ = make(http.Header)
168911	}
168912	return c.header_
168913}
168914
168915func (c *ZonesListCall) doRequest(alt string) (*http.Response, error) {
168916	reqHeaders := make(http.Header)
168917	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20211201")
168918	for k, v := range c.header_ {
168919		reqHeaders[k] = v
168920	}
168921	reqHeaders.Set("User-Agent", c.s.userAgent())
168922	if c.ifNoneMatch_ != "" {
168923		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
168924	}
168925	var body io.Reader = nil
168926	c.urlParams_.Set("alt", alt)
168927	c.urlParams_.Set("prettyPrint", "false")
168928	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones")
168929	urls += "?" + c.urlParams_.Encode()
168930	req, err := http.NewRequest("GET", urls, body)
168931	if err != nil {
168932		return nil, err
168933	}
168934	req.Header = reqHeaders
168935	googleapi.Expand(req.URL, map[string]string{
168936		"project": c.project,
168937	})
168938	return gensupport.SendRequest(c.ctx_, c.s.client, req)
168939}
168940
168941// Do executes the "compute.zones.list" call.
168942// Exactly one of *ZoneList or error will be non-nil. Any non-2xx status
168943// code is an error. Response headers are in either
168944// *ZoneList.ServerResponse.Header or (if a response was returned at
168945// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
168946// to check whether the returned error was because
168947// http.StatusNotModified was returned.
168948func (c *ZonesListCall) Do(opts ...googleapi.CallOption) (*ZoneList, error) {
168949	gensupport.SetOptions(c.urlParams_, opts...)
168950	res, err := c.doRequest("json")
168951	if res != nil && res.StatusCode == http.StatusNotModified {
168952		if res.Body != nil {
168953			res.Body.Close()
168954		}
168955		return nil, &googleapi.Error{
168956			Code:   res.StatusCode,
168957			Header: res.Header,
168958		}
168959	}
168960	if err != nil {
168961		return nil, err
168962	}
168963	defer googleapi.CloseBody(res)
168964	if err := googleapi.CheckResponse(res); err != nil {
168965		return nil, err
168966	}
168967	ret := &ZoneList{
168968		ServerResponse: googleapi.ServerResponse{
168969			Header:         res.Header,
168970			HTTPStatusCode: res.StatusCode,
168971		},
168972	}
168973	target := &ret
168974	if err := gensupport.DecodeResponse(target, res); err != nil {
168975		return nil, err
168976	}
168977	return ret, nil
168978	// {
168979	//   "description": "Retrieves the list of Zone resources available to the specified project.",
168980	//   "flatPath": "projects/{project}/zones",
168981	//   "httpMethod": "GET",
168982	//   "id": "compute.zones.list",
168983	//   "parameterOrder": [
168984	//     "project"
168985	//   ],
168986	//   "parameters": {
168987	//     "filter": {
168988	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want 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) ```",
168989	//       "location": "query",
168990	//       "type": "string"
168991	//     },
168992	//     "maxResults": {
168993	//       "default": "500",
168994	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
168995	//       "format": "uint32",
168996	//       "location": "query",
168997	//       "minimum": "0",
168998	//       "type": "integer"
168999	//     },
169000	//     "orderBy": {
169001	//       "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.",
169002	//       "location": "query",
169003	//       "type": "string"
169004	//     },
169005	//     "pageToken": {
169006	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
169007	//       "location": "query",
169008	//       "type": "string"
169009	//     },
169010	//     "project": {
169011	//       "description": "Project ID for this request.",
169012	//       "location": "path",
169013	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
169014	//       "required": true,
169015	//       "type": "string"
169016	//     },
169017	//     "returnPartialSuccess": {
169018	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
169019	//       "location": "query",
169020	//       "type": "boolean"
169021	//     }
169022	//   },
169023	//   "path": "projects/{project}/zones",
169024	//   "response": {
169025	//     "$ref": "ZoneList"
169026	//   },
169027	//   "scopes": [
169028	//     "https://www.googleapis.com/auth/cloud-platform",
169029	//     "https://www.googleapis.com/auth/compute",
169030	//     "https://www.googleapis.com/auth/compute.readonly"
169031	//   ]
169032	// }
169033
169034}
169035
169036// Pages invokes f for each page of results.
169037// A non-nil error returned from f will halt the iteration.
169038// The provided context supersedes any context provided to the Context method.
169039func (c *ZonesListCall) Pages(ctx context.Context, f func(*ZoneList) error) error {
169040	c.ctx_ = ctx
169041	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
169042	for {
169043		x, err := c.Do()
169044		if err != nil {
169045			return err
169046		}
169047		if err := f(x); err != nil {
169048			return err
169049		}
169050		if x.NextPageToken == "" {
169051			return nil
169052		}
169053		c.PageToken(x.NextPageToken)
169054	}
169055}
169056